update libs
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df1fca726619f2f4fae3bd93b0ef5a8b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace AssetStoreTools.Uploader.Services.Analytics.Data
|
||||
{
|
||||
interface IAssetStoreAnalyticData
|
||||
#if UNITY_2023_2_OR_NEWER
|
||||
: UnityEngine.Analytics.IAnalytic.IData
|
||||
#endif
|
||||
{ }
|
||||
}
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user