update libs

This commit is contained in:
Kirill Chikalin
2025-02-13 17:48:12 +03:00
parent e17e7c2786
commit 275dc598c7
816 changed files with 22479 additions and 10792 deletions

View File

@@ -0,0 +1,45 @@
using AssetStoreTools.Uploader.Services.Analytics.Data;
using UnityEditor;
using UnityEngine.Analytics;
#if !UNITY_2023_2_OR_NEWER
using AnalyticsConstants = AssetStoreTools.Constants.Uploader.Analytics;
#endif
namespace AssetStoreTools.Uploader.Services.Analytics
{
internal class AnalyticsService : IAnalyticsService
{
public AnalyticsResult Send(IAssetStoreAnalytic analytic)
{
if (!EditorAnalytics.enabled)
return AnalyticsResult.AnalyticsDisabled;
if (!Register(analytic))
return AnalyticsResult.AnalyticsDisabled;
#if UNITY_2023_2_OR_NEWER
return EditorAnalytics.SendAnalytic(analytic);
#else
return EditorAnalytics.SendEventWithLimit(analytic.EventName,
analytic.Data,
analytic.EventVersion);
#endif
}
private bool Register(IAssetStoreAnalytic analytic)
{
#if UNITY_2023_2_OR_NEWER
return true;
#else
var result = EditorAnalytics.RegisterEventWithLimit(
eventName: analytic.EventName,
maxEventPerHour: AnalyticsConstants.MaxEventsPerHour,
maxItems: AnalyticsConstants.MaxNumberOfElements,
vendorKey: AnalyticsConstants.VendorKey,
ver: analytic.EventVersion);
return result == AnalyticsResult.Ok;
#endif
}
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 408b5b0136da9ca4f9598b8688f6210e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/AnalyticsService.cs
uploadId: 724584

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: df1fca726619f2f4fae3bd93b0ef5a8b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
using AssetStoreTools.Api;
using System;
#if UNITY_2023_2_OR_NEWER
using UnityEngine.Analytics;
#endif
using AnalyticsConstants = AssetStoreTools.Constants.Uploader.Analytics;
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
#if UNITY_2023_2_OR_NEWER
[AnalyticInfo
(eventName: AnalyticsConstants.AuthenticationAnalytics.EventName,
vendorKey: AnalyticsConstants.VendorKey,
version: AnalyticsConstants.AuthenticationAnalytics.EventVersion,
maxEventsPerHour: AnalyticsConstants.MaxEventsPerHour,
maxNumberOfElements: AnalyticsConstants.MaxNumberOfElements)]
#endif
internal class AuthenticationAnalytic : BaseAnalytic
{
[Serializable]
public class AuthenticationAnalyticData : BaseAnalyticData
{
public string AuthenticationType;
public string PublisherId;
}
public override string EventName => AnalyticsConstants.AuthenticationAnalytics.EventName;
public override int EventVersion => AnalyticsConstants.AuthenticationAnalytics.EventVersion;
private AuthenticationAnalyticData _data;
public AuthenticationAnalytic(IAuthenticationType authenticationType, string publisherId)
{
_data = new AuthenticationAnalyticData
{
AuthenticationType = authenticationType.GetType().Name,
PublisherId = publisherId
};
}
protected override BaseAnalyticData GetData()
{
return _data;
}
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 4b9389e3ee578484493d36775c75baa1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/AuthenticationAnalytic.cs
uploadId: 724584

View File

@@ -0,0 +1,35 @@
using System;
#if UNITY_2023_2_OR_NEWER
using UnityEngine.Analytics;
#endif
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
internal abstract class BaseAnalytic : IAssetStoreAnalytic
{
[Serializable]
public class BaseAnalyticData : IAssetStoreAnalyticData
{
public string ToolVersion = Constants.Api.ApiVersion;
}
public abstract string EventName { get; }
public abstract int EventVersion { get; }
public IAssetStoreAnalyticData Data => GetData();
protected abstract BaseAnalyticData GetData();
#if UNITY_2023_2_OR_NEWER
public bool TryGatherData(out IAnalytic.IData data, [System.Diagnostics.CodeAnalysis.NotNullWhen(false)] out Exception error)
{
error = null;
data = Data;
if (data == null)
error = new Exception("Analytic data is null");
return error == null;
}
#endif
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 51ec1e4b6505b694ab01f7c523744fbc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/BaseAnalytic.cs
uploadId: 724584

View File

@@ -0,0 +1,16 @@
#if UNITY_2023_2_OR_NEWER
using UnityEngine.Analytics;
#endif
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
internal interface IAssetStoreAnalytic
#if UNITY_2023_2_OR_NEWER
: IAnalytic
#endif
{
string EventName { get; }
int EventVersion { get; }
IAssetStoreAnalyticData Data { get; }
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 6e9b53aa176bbed48bafa538c26df304
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/IAssetStoreAnalytic.cs
uploadId: 724584

View File

@@ -0,0 +1,8 @@
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
interface IAssetStoreAnalyticData
#if UNITY_2023_2_OR_NEWER
: UnityEngine.Analytics.IAnalytic.IData
#endif
{ }
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: b639e25d9b9abd34d8eb67b0e17dde86
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/IAssetStoreAnalyticData.cs
uploadId: 724584

View File

@@ -0,0 +1,72 @@
using AssetStoreTools.Api;
using AssetStoreTools.Validator.Data;
using System;
#if UNITY_2023_2_OR_NEWER
using UnityEngine.Analytics;
#endif
using AnalyticsConstants = AssetStoreTools.Constants.Uploader.Analytics;
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
#if UNITY_2023_2_OR_NEWER
[AnalyticInfo
(eventName: AnalyticsConstants.PackageUploadAnalytics.EventName,
vendorKey: AnalyticsConstants.VendorKey,
version: AnalyticsConstants.PackageUploadAnalytics.EventVersion,
maxEventsPerHour: AnalyticsConstants.MaxEventsPerHour,
maxNumberOfElements: AnalyticsConstants.MaxNumberOfElements)]
#endif
internal class PackageUploadAnalytic : BaseAnalytic
{
[Serializable]
public class PackageUploadAnalyticData : BaseAnalyticData
{
public string PackageId;
public string Category;
public bool UsedValidator;
public string ValidatorResults;
public string UploadFinishedReason;
public double TimeTaken;
public long PackageSize;
public string Workflow;
public string EndpointUrl;
}
public override string EventName => AnalyticsConstants.PackageUploadAnalytics.EventName;
public override int EventVersion => AnalyticsConstants.PackageUploadAnalytics.EventVersion;
private PackageUploadAnalyticData _data;
public PackageUploadAnalytic(
string packageId,
string category,
bool usedValidator,
ValidationSettings validationSettings,
ValidationResult validationResult,
UploadStatus uploadFinishedReason,
double timeTaken,
long packageSize,
string workflow
)
{
_data = new PackageUploadAnalyticData()
{
PackageId = packageId,
Category = category,
UsedValidator = usedValidator,
ValidatorResults = usedValidator ?
ValidationResultsSerializer.ConstructValidationResultsJson(validationSettings, validationResult) : null,
UploadFinishedReason = uploadFinishedReason.ToString(),
TimeTaken = timeTaken,
PackageSize = packageSize,
Workflow = workflow,
EndpointUrl = Constants.Api.AssetStoreBaseUrl
};
}
protected override BaseAnalyticData GetData()
{
return _data;
}
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 6cc34de12dce9964b9c900d5bb159966
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/PackageUploadAnalytic.cs
uploadId: 724584

View File

@@ -0,0 +1,91 @@
using AssetStoreTools.Validator.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Collections.Generic;
using System.Reflection;
namespace AssetStoreTools.Uploader.Services.Analytics.Data
{
internal class ValidationResultsSerializer
{
private class ValidationResults
{
public bool HasCompilationErrors;
public string[] Paths;
public Dictionary<string, TestResultOutcome> Results;
}
private class TestResultOutcome
{
public int IntegerValue;
public string StringValue;
public TestResultOutcome(TestResultStatus status)
{
IntegerValue = (int)status;
StringValue = status.ToString();
}
}
private class ValidationResultsResolver : DefaultContractResolver
{
private static ValidationResultsResolver _instance;
public static ValidationResultsResolver Instance => _instance ?? (_instance = new ValidationResultsResolver());
private Dictionary<string, string> _propertyConversion;
private ValidationResultsResolver()
{
_propertyConversion = new Dictionary<string, string>()
{
{ nameof(ValidationResults.HasCompilationErrors), "has_compilation_errors" },
{ nameof(ValidationResults.Paths), "validation_paths" },
{ nameof(ValidationResults.Results), "validation_results" },
{ nameof(TestResultOutcome.IntegerValue), "int" },
{ nameof(TestResultOutcome.StringValue), "string" },
};
}
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
var property = base.CreateProperty(member, memberSerialization);
if (_propertyConversion.ContainsKey(property.PropertyName))
property.PropertyName = _propertyConversion[property.PropertyName];
return property;
}
}
public static string ConstructValidationResultsJson(ValidationSettings settings, ValidationResult result)
{
if (result == null)
return string.Empty;
var resultObject = new ValidationResults();
resultObject.HasCompilationErrors = result.HadCompilationErrors;
switch (settings)
{
case CurrentProjectValidationSettings currentProjectValidationSettings:
resultObject.Paths = currentProjectValidationSettings.ValidationPaths.ToArray();
break;
case ExternalProjectValidationSettings externalProjectValidationSettings:
resultObject.Paths = new string[] { externalProjectValidationSettings.PackagePath };
break;
}
resultObject.Results = new Dictionary<string, TestResultOutcome>();
foreach (var test in result.Tests)
{
resultObject.Results.Add(test.Id.ToString(), new TestResultOutcome(test.Result.Status));
}
var serializerSettings = new JsonSerializerSettings()
{
ContractResolver = ValidationResultsResolver.Instance
};
return JsonConvert.SerializeObject(resultObject, serializerSettings);
}
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: fa15fc27c7f3d044884885b3dad73efc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/Data/ValidationResultsSerializer.cs
uploadId: 724584

View File

@@ -0,0 +1,10 @@
using AssetStoreTools.Uploader.Services.Analytics.Data;
using UnityEngine.Analytics;
namespace AssetStoreTools.Uploader.Services.Analytics
{
internal interface IAnalyticsService : IUploaderService
{
AnalyticsResult Send(IAssetStoreAnalytic analytic);
}
}

View File

@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: faa1f39fc83b86b438f6e0f34f01167b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 115
packageName: Asset Store Publishing Tools
packageVersion: 12.0.1
assetPath: Packages/com.unity.asset-store-tools/Editor/Uploader/Scripts/Services/Analytics/IAnalyticsService.cs
uploadId: 724584