eas-cli 18.4.0 → 18.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -90
- package/build/build/android/prepareJob.js +2 -2
- package/build/build/ios/prepareJob.js +2 -2
- package/build/build/metadata.js +2 -1
- package/build/commandUtils/EasCommand.js +23 -2
- package/build/commandUtils/context/contextUtils/getProjectIdAsync.js +2 -0
- package/build/commandUtils/pagination.d.ts +2 -1
- package/build/commandUtils/pagination.js +3 -2
- package/build/commandUtils/workflow/fetchLogs.js +11 -2
- package/build/commandUtils/workflow/types.d.ts +5 -1
- package/build/commandUtils/workflow/utils.js +22 -16
- package/build/commands/deploy/index.js +18 -2
- package/build/commands/metadata/pull.d.ts +1 -0
- package/build/commands/metadata/pull.js +9 -4
- package/build/commands/metadata/push.d.ts +1 -0
- package/build/commands/metadata/push.js +9 -4
- package/build/commands/observe/events.d.ts +27 -0
- package/build/commands/observe/events.js +140 -0
- package/build/commands/observe/metrics.d.ts +21 -0
- package/build/commands/observe/metrics.js +111 -0
- package/build/commands/observe/versions.d.ts +19 -0
- package/build/commands/observe/versions.js +69 -0
- package/build/commands/project/onboarding.js +3 -0
- package/build/commands/workflow/logs.js +12 -12
- package/build/credentials/ios/IosCredentialsProvider.js +8 -4
- package/build/credentials/ios/utils/provisioningProfile.d.ts +1 -0
- package/build/credentials/ios/utils/provisioningProfile.js +15 -1
- package/build/graphql/generated.d.ts +1273 -73
- package/build/graphql/generated.js +59 -19
- package/build/graphql/queries/ObserveQuery.d.ts +35 -0
- package/build/graphql/queries/ObserveQuery.js +109 -0
- package/build/graphql/queries/UserQuery.js +3 -0
- package/build/graphql/types/Observe.d.ts +3 -0
- package/build/graphql/types/Observe.js +84 -0
- package/build/graphql/types/Update.js +3 -0
- package/build/metadata/apple/config/reader.d.ts +13 -1
- package/build/metadata/apple/config/reader.js +33 -0
- package/build/metadata/apple/config/writer.d.ts +11 -1
- package/build/metadata/apple/config/writer.js +57 -0
- package/build/metadata/apple/data.d.ts +7 -2
- package/build/metadata/apple/rules/infoRestrictedWords.js +6 -1
- package/build/metadata/apple/tasks/age-rating.d.ts +1 -1
- package/build/metadata/apple/tasks/age-rating.js +19 -3
- package/build/metadata/apple/tasks/app-clip.d.ts +37 -0
- package/build/metadata/apple/tasks/app-clip.js +404 -0
- package/build/metadata/apple/tasks/app-review-detail.js +7 -2
- package/build/metadata/apple/tasks/index.js +6 -0
- package/build/metadata/apple/tasks/previews.d.ts +18 -0
- package/build/metadata/apple/tasks/previews.js +212 -0
- package/build/metadata/apple/tasks/screenshots.d.ts +18 -0
- package/build/metadata/apple/tasks/screenshots.js +235 -0
- package/build/metadata/apple/types.d.ts +61 -1
- package/build/metadata/auth.d.ts +11 -1
- package/build/metadata/auth.js +96 -2
- package/build/metadata/download.d.ts +5 -1
- package/build/metadata/download.js +16 -8
- package/build/metadata/upload.d.ts +5 -1
- package/build/metadata/upload.js +11 -4
- package/build/observe/fetchEvents.d.ts +27 -0
- package/build/observe/fetchEvents.js +83 -0
- package/build/observe/fetchMetrics.d.ts +11 -0
- package/build/observe/fetchMetrics.js +78 -0
- package/build/observe/fetchVersions.d.ts +7 -0
- package/build/observe/fetchVersions.js +31 -0
- package/build/observe/formatEvents.d.ts +31 -0
- package/build/observe/formatEvents.js +99 -0
- package/build/observe/formatMetrics.d.ts +38 -0
- package/build/observe/formatMetrics.js +206 -0
- package/build/observe/formatVersions.d.ts +32 -0
- package/build/observe/formatVersions.js +92 -0
- package/build/observe/metricNames.d.ts +4 -0
- package/build/observe/metricNames.js +33 -0
- package/build/observe/startAndEndTime.d.ts +18 -0
- package/build/observe/startAndEndTime.js +36 -0
- package/build/project/projectUtils.d.ts +0 -2
- package/build/project/projectUtils.js +0 -12
- package/build/project/workflow.js +1 -1
- package/build/sentry.d.ts +2 -0
- package/build/sentry.js +22 -0
- package/build/update/utils.d.ts +2 -2
- package/build/update/utils.js +1 -0
- package/build/user/SessionManager.js +11 -0
- package/build/user/User.d.ts +2 -2
- package/build/user/User.js +3 -0
- package/build/user/expoBrowserAuthFlowLauncher.js +70 -13
- package/build/worker/upload.js +15 -5
- package/oclif.manifest.json +1794 -1306
- package/package.json +15 -11
- package/schema/metadata-0.json +213 -0
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.DashboardViewPin = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BuildAnnotationType = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppProfileImageWidth = exports.AppPrivacy = exports.AppPlatform = exports.AppObservePlatform = exports.AppObserveEventsOrderByField = exports.AppObserveEventsOrderByDirection = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountMemberType = exports.AccountAppsSortByField = void 0;
|
|
10
|
-
exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.
|
|
11
|
-
exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = void 0;
|
|
10
|
+
exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.OAuthProvider = exports.NotificationType = exports.NotificationEvent = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EchoVersionSource = exports.EchoProjectVisibility = exports.EchoProjectUploadSessionType = exports.EchoMessageRole = exports.EchoMessagePartType = exports.EchoChatState = exports.EchoChangeType = exports.EchoBuildStatus = exports.EchoAgentType = exports.EasTotalPlanEnablementUnit = void 0;
|
|
11
|
+
exports.WorkflowsInsightsRunsOverTimeGranularity = exports.WorkflowsInsightsExportFormat = exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkflowDeviceTestCaseStatus = exports.WorkflowArtifactStorageType = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserSpecifiedAccountUsage = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.UpdateDiffReceiptStateValue = exports.UpdateDiffReceiptOrderByField = exports.UpdateDiffReceiptOrderByDirection = exports.TargetEntityMutationType = exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -225,12 +225,17 @@ var BuildMode;
|
|
|
225
225
|
var BuildPhase;
|
|
226
226
|
(function (BuildPhase) {
|
|
227
227
|
BuildPhase["BuilderInfo"] = "BUILDER_INFO";
|
|
228
|
+
BuildPhase["CacheStats"] = "CACHE_STATS";
|
|
229
|
+
BuildPhase["CalculateExpoUpdatesRuntimeVersion"] = "CALCULATE_EXPO_UPDATES_RUNTIME_VERSION";
|
|
228
230
|
BuildPhase["CleanUpCredentials"] = "CLEAN_UP_CREDENTIALS";
|
|
229
231
|
BuildPhase["CompleteBuild"] = "COMPLETE_BUILD";
|
|
232
|
+
BuildPhase["CompleteJob"] = "COMPLETE_JOB";
|
|
233
|
+
BuildPhase["ConfigureAndroidVersion"] = "CONFIGURE_ANDROID_VERSION";
|
|
230
234
|
BuildPhase["ConfigureExpoUpdates"] = "CONFIGURE_EXPO_UPDATES";
|
|
231
235
|
BuildPhase["ConfigureXcodeProject"] = "CONFIGURE_XCODE_PROJECT";
|
|
232
236
|
BuildPhase["Custom"] = "CUSTOM";
|
|
233
237
|
BuildPhase["DownloadApplicationArchive"] = "DOWNLOAD_APPLICATION_ARCHIVE";
|
|
238
|
+
BuildPhase["EagerBundle"] = "EAGER_BUNDLE";
|
|
234
239
|
BuildPhase["EasBuildInternal"] = "EAS_BUILD_INTERNAL";
|
|
235
240
|
BuildPhase["FailBuild"] = "FAIL_BUILD";
|
|
236
241
|
BuildPhase["FixGradlew"] = "FIX_GRADLEW";
|
|
@@ -251,6 +256,7 @@ var BuildPhase;
|
|
|
251
256
|
BuildPhase["PreUploadArtifactsHook"] = "PRE_UPLOAD_ARTIFACTS_HOOK";
|
|
252
257
|
BuildPhase["Queue"] = "QUEUE";
|
|
253
258
|
BuildPhase["ReadAppConfig"] = "READ_APP_CONFIG";
|
|
259
|
+
BuildPhase["ReadEasJson"] = "READ_EAS_JSON";
|
|
254
260
|
BuildPhase["ReadPackageJson"] = "READ_PACKAGE_JSON";
|
|
255
261
|
BuildPhase["RestoreCache"] = "RESTORE_CACHE";
|
|
256
262
|
BuildPhase["RunExpoDoctor"] = "RUN_EXPO_DOCTOR";
|
|
@@ -380,8 +386,10 @@ var EasBuildWaiverType;
|
|
|
380
386
|
})(EasBuildWaiverType || (exports.EasBuildWaiverType = EasBuildWaiverType = {}));
|
|
381
387
|
var EasService;
|
|
382
388
|
(function (EasService) {
|
|
389
|
+
EasService["Agent"] = "AGENT";
|
|
383
390
|
EasService["Builds"] = "BUILDS";
|
|
384
391
|
EasService["Jobs"] = "JOBS";
|
|
392
|
+
EasService["Mcp"] = "MCP";
|
|
385
393
|
EasService["Updates"] = "UPDATES";
|
|
386
394
|
})(EasService || (exports.EasService = EasService = {}));
|
|
387
395
|
var EasServiceMetric;
|
|
@@ -389,8 +397,10 @@ var EasServiceMetric;
|
|
|
389
397
|
EasServiceMetric["AssetsRequests"] = "ASSETS_REQUESTS";
|
|
390
398
|
EasServiceMetric["BandwidthUsage"] = "BANDWIDTH_USAGE";
|
|
391
399
|
EasServiceMetric["Builds"] = "BUILDS";
|
|
400
|
+
EasServiceMetric["CreditUsage"] = "CREDIT_USAGE";
|
|
392
401
|
EasServiceMetric["LocalBuilds"] = "LOCAL_BUILDS";
|
|
393
402
|
EasServiceMetric["ManifestRequests"] = "MANIFEST_REQUESTS";
|
|
403
|
+
EasServiceMetric["McpRequests"] = "MCP_REQUESTS";
|
|
394
404
|
EasServiceMetric["RunTime"] = "RUN_TIME";
|
|
395
405
|
EasServiceMetric["UniqueUpdaters"] = "UNIQUE_UPDATERS";
|
|
396
406
|
EasServiceMetric["UniqueUsers"] = "UNIQUE_USERS";
|
|
@@ -447,6 +457,10 @@ var EchoMessageRole;
|
|
|
447
457
|
EchoMessageRole["Assistant"] = "ASSISTANT";
|
|
448
458
|
EchoMessageRole["User"] = "USER";
|
|
449
459
|
})(EchoMessageRole || (exports.EchoMessageRole = EchoMessageRole = {}));
|
|
460
|
+
var EchoProjectUploadSessionType;
|
|
461
|
+
(function (EchoProjectUploadSessionType) {
|
|
462
|
+
EchoProjectUploadSessionType["ImageUpload"] = "IMAGE_UPLOAD";
|
|
463
|
+
})(EchoProjectUploadSessionType || (exports.EchoProjectUploadSessionType = EchoProjectUploadSessionType = {}));
|
|
450
464
|
var EchoProjectVisibility;
|
|
451
465
|
(function (EchoProjectVisibility) {
|
|
452
466
|
EchoProjectVisibility["Private"] = "PRIVATE";
|
|
@@ -467,16 +481,15 @@ var EntityTypeName;
|
|
|
467
481
|
EntityTypeName["AndroidKeystoreEntity"] = "AndroidKeystoreEntity";
|
|
468
482
|
EntityTypeName["AppEntity"] = "AppEntity";
|
|
469
483
|
EntityTypeName["AppStoreConnectApiKeyEntity"] = "AppStoreConnectApiKeyEntity";
|
|
484
|
+
EntityTypeName["AppStoreConnectAppEntity"] = "AppStoreConnectAppEntity";
|
|
470
485
|
EntityTypeName["AppleDeviceEntity"] = "AppleDeviceEntity";
|
|
471
486
|
EntityTypeName["AppleDistributionCertificateEntity"] = "AppleDistributionCertificateEntity";
|
|
472
487
|
EntityTypeName["AppleProvisioningProfileEntity"] = "AppleProvisioningProfileEntity";
|
|
473
488
|
EntityTypeName["AppleTeamEntity"] = "AppleTeamEntity";
|
|
489
|
+
EntityTypeName["BillingContractEntity"] = "BillingContractEntity";
|
|
474
490
|
EntityTypeName["BranchEntity"] = "BranchEntity";
|
|
475
491
|
EntityTypeName["ChannelEntity"] = "ChannelEntity";
|
|
476
492
|
EntityTypeName["CustomerEntity"] = "CustomerEntity";
|
|
477
|
-
EntityTypeName["EchoChatEntity"] = "EchoChatEntity";
|
|
478
|
-
EntityTypeName["EchoMessageEntity"] = "EchoMessageEntity";
|
|
479
|
-
EntityTypeName["EchoMessagePartEntity"] = "EchoMessagePartEntity";
|
|
480
493
|
EntityTypeName["EchoProjectEntity"] = "EchoProjectEntity";
|
|
481
494
|
EntityTypeName["EchoVersionEntity"] = "EchoVersionEntity";
|
|
482
495
|
EntityTypeName["GoogleServiceAccountKeyEntity"] = "GoogleServiceAccountKeyEntity";
|
|
@@ -501,6 +514,7 @@ var EnvironmentSecretType;
|
|
|
501
514
|
})(EnvironmentSecretType || (exports.EnvironmentSecretType = EnvironmentSecretType = {}));
|
|
502
515
|
var EnvironmentVariableScope;
|
|
503
516
|
(function (EnvironmentVariableScope) {
|
|
517
|
+
EnvironmentVariableScope["EchoProject"] = "ECHO_PROJECT";
|
|
504
518
|
EnvironmentVariableScope["Project"] = "PROJECT";
|
|
505
519
|
EnvironmentVariableScope["Shared"] = "SHARED";
|
|
506
520
|
})(EnvironmentVariableScope || (exports.EnvironmentVariableScope = EnvironmentVariableScope = {}));
|
|
@@ -628,20 +642,6 @@ var LocalBuildArchiveSourceType;
|
|
|
628
642
|
(function (LocalBuildArchiveSourceType) {
|
|
629
643
|
LocalBuildArchiveSourceType["Gcs"] = "GCS";
|
|
630
644
|
})(LocalBuildArchiveSourceType || (exports.LocalBuildArchiveSourceType = LocalBuildArchiveSourceType = {}));
|
|
631
|
-
var MailchimpAudience;
|
|
632
|
-
(function (MailchimpAudience) {
|
|
633
|
-
MailchimpAudience["ExpoDevelopers"] = "EXPO_DEVELOPERS";
|
|
634
|
-
MailchimpAudience["ExpoDeveloperOnboarding"] = "EXPO_DEVELOPER_ONBOARDING";
|
|
635
|
-
MailchimpAudience["LaunchParty_2024"] = "LAUNCH_PARTY_2024";
|
|
636
|
-
MailchimpAudience["NonprodExpoDevelopers"] = "NONPROD_EXPO_DEVELOPERS";
|
|
637
|
-
})(MailchimpAudience || (exports.MailchimpAudience = MailchimpAudience = {}));
|
|
638
|
-
var MailchimpTag;
|
|
639
|
-
(function (MailchimpTag) {
|
|
640
|
-
MailchimpTag["DevClientUsers"] = "DEV_CLIENT_USERS";
|
|
641
|
-
MailchimpTag["DidSubscribeToEasAtLeastOnce"] = "DID_SUBSCRIBE_TO_EAS_AT_LEAST_ONCE";
|
|
642
|
-
MailchimpTag["EasMasterList"] = "EAS_MASTER_LIST";
|
|
643
|
-
MailchimpTag["NewsletterSignupList"] = "NEWSLETTER_SIGNUP_LIST";
|
|
644
|
-
})(MailchimpTag || (exports.MailchimpTag = MailchimpTag = {}));
|
|
645
645
|
var NotificationEvent;
|
|
646
646
|
(function (NotificationEvent) {
|
|
647
647
|
NotificationEvent["BuildComplete"] = "BUILD_COMPLETE";
|
|
@@ -657,6 +657,11 @@ var NotificationType;
|
|
|
657
657
|
NotificationType["Email"] = "EMAIL";
|
|
658
658
|
NotificationType["Web"] = "WEB";
|
|
659
659
|
})(NotificationType || (exports.NotificationType = NotificationType = {}));
|
|
660
|
+
var OAuthProvider;
|
|
661
|
+
(function (OAuthProvider) {
|
|
662
|
+
OAuthProvider["Apple"] = "apple";
|
|
663
|
+
OAuthProvider["Google"] = "google";
|
|
664
|
+
})(OAuthProvider || (exports.OAuthProvider = OAuthProvider = {}));
|
|
660
665
|
var OfferType;
|
|
661
666
|
(function (OfferType) {
|
|
662
667
|
/** Addon, or supplementary subscription */
|
|
@@ -852,6 +857,24 @@ var TargetEntityMutationType;
|
|
|
852
857
|
TargetEntityMutationType["Delete"] = "DELETE";
|
|
853
858
|
TargetEntityMutationType["Update"] = "UPDATE";
|
|
854
859
|
})(TargetEntityMutationType || (exports.TargetEntityMutationType = TargetEntityMutationType = {}));
|
|
860
|
+
var UpdateDiffReceiptOrderByDirection;
|
|
861
|
+
(function (UpdateDiffReceiptOrderByDirection) {
|
|
862
|
+
UpdateDiffReceiptOrderByDirection["Asc"] = "ASC";
|
|
863
|
+
UpdateDiffReceiptOrderByDirection["Desc"] = "DESC";
|
|
864
|
+
})(UpdateDiffReceiptOrderByDirection || (exports.UpdateDiffReceiptOrderByDirection = UpdateDiffReceiptOrderByDirection = {}));
|
|
865
|
+
var UpdateDiffReceiptOrderByField;
|
|
866
|
+
(function (UpdateDiffReceiptOrderByField) {
|
|
867
|
+
UpdateDiffReceiptOrderByField["CreatedAt"] = "CREATED_AT";
|
|
868
|
+
UpdateDiffReceiptOrderByField["State"] = "STATE";
|
|
869
|
+
})(UpdateDiffReceiptOrderByField || (exports.UpdateDiffReceiptOrderByField = UpdateDiffReceiptOrderByField = {}));
|
|
870
|
+
var UpdateDiffReceiptStateValue;
|
|
871
|
+
(function (UpdateDiffReceiptStateValue) {
|
|
872
|
+
UpdateDiffReceiptStateValue["Failure"] = "FAILURE";
|
|
873
|
+
UpdateDiffReceiptStateValue["InProgress"] = "IN_PROGRESS";
|
|
874
|
+
UpdateDiffReceiptStateValue["Queued"] = "QUEUED";
|
|
875
|
+
UpdateDiffReceiptStateValue["Success"] = "SUCCESS";
|
|
876
|
+
UpdateDiffReceiptStateValue["WontCompute"] = "WONT_COMPUTE";
|
|
877
|
+
})(UpdateDiffReceiptStateValue || (exports.UpdateDiffReceiptStateValue = UpdateDiffReceiptStateValue = {}));
|
|
855
878
|
var UploadSessionType;
|
|
856
879
|
(function (UploadSessionType) {
|
|
857
880
|
UploadSessionType["EasBuildGcsProjectMetadata"] = "EAS_BUILD_GCS_PROJECT_METADATA";
|
|
@@ -869,6 +892,7 @@ var UsageMetricType;
|
|
|
869
892
|
(function (UsageMetricType) {
|
|
870
893
|
UsageMetricType["Bandwidth"] = "BANDWIDTH";
|
|
871
894
|
UsageMetricType["Build"] = "BUILD";
|
|
895
|
+
UsageMetricType["Credit"] = "CREDIT";
|
|
872
896
|
UsageMetricType["Minute"] = "MINUTE";
|
|
873
897
|
UsageMetricType["Request"] = "REQUEST";
|
|
874
898
|
UsageMetricType["Update"] = "UPDATE";
|
|
@@ -921,6 +945,8 @@ var UserEntityTypeName;
|
|
|
921
945
|
UserEntityTypeName["AccessTokenEntity"] = "AccessTokenEntity";
|
|
922
946
|
UserEntityTypeName["DiscordUserEntity"] = "DiscordUserEntity";
|
|
923
947
|
UserEntityTypeName["GitHubUserEntity"] = "GitHubUserEntity";
|
|
948
|
+
UserEntityTypeName["OAuthIdentityEntity"] = "OAuthIdentityEntity";
|
|
949
|
+
UserEntityTypeName["PartnerProvisionedActorEntity"] = "PartnerProvisionedActorEntity";
|
|
924
950
|
UserEntityTypeName["PasswordEntity"] = "PasswordEntity";
|
|
925
951
|
UserEntityTypeName["SsoUserEntity"] = "SSOUserEntity";
|
|
926
952
|
UserEntityTypeName["UserEntity"] = "UserEntity";
|
|
@@ -970,6 +996,12 @@ var WorkflowArtifactStorageType;
|
|
|
970
996
|
WorkflowArtifactStorageType["Gcs"] = "GCS";
|
|
971
997
|
WorkflowArtifactStorageType["R2"] = "R2";
|
|
972
998
|
})(WorkflowArtifactStorageType || (exports.WorkflowArtifactStorageType = WorkflowArtifactStorageType = {}));
|
|
999
|
+
/** Status of a device test case execution. */
|
|
1000
|
+
var WorkflowDeviceTestCaseStatus;
|
|
1001
|
+
(function (WorkflowDeviceTestCaseStatus) {
|
|
1002
|
+
WorkflowDeviceTestCaseStatus["Failed"] = "FAILED";
|
|
1003
|
+
WorkflowDeviceTestCaseStatus["Passed"] = "PASSED";
|
|
1004
|
+
})(WorkflowDeviceTestCaseStatus || (exports.WorkflowDeviceTestCaseStatus = WorkflowDeviceTestCaseStatus = {}));
|
|
973
1005
|
var WorkflowJobReviewDecision;
|
|
974
1006
|
(function (WorkflowJobReviewDecision) {
|
|
975
1007
|
WorkflowJobReviewDecision["Approved"] = "APPROVED";
|
|
@@ -1020,12 +1052,20 @@ var WorkflowRunStatus;
|
|
|
1020
1052
|
})(WorkflowRunStatus || (exports.WorkflowRunStatus = WorkflowRunStatus = {}));
|
|
1021
1053
|
var WorkflowRunTriggerEventType;
|
|
1022
1054
|
(function (WorkflowRunTriggerEventType) {
|
|
1055
|
+
WorkflowRunTriggerEventType["AppStoreConnectAppVersionStateChanged"] = "APP_STORE_CONNECT_APP_VERSION_STATE_CHANGED";
|
|
1056
|
+
WorkflowRunTriggerEventType["AppStoreConnectBetaFeedbackSubmitted"] = "APP_STORE_CONNECT_BETA_FEEDBACK_SUBMITTED";
|
|
1057
|
+
WorkflowRunTriggerEventType["AppStoreConnectBuildUploadStateChanged"] = "APP_STORE_CONNECT_BUILD_UPLOAD_STATE_CHANGED";
|
|
1058
|
+
WorkflowRunTriggerEventType["AppStoreConnectExternalBetaStateChanged"] = "APP_STORE_CONNECT_EXTERNAL_BETA_STATE_CHANGED";
|
|
1059
|
+
WorkflowRunTriggerEventType["EasSubmit"] = "EAS_SUBMIT";
|
|
1060
|
+
WorkflowRunTriggerEventType["ExpoLaunch"] = "EXPO_LAUNCH";
|
|
1023
1061
|
WorkflowRunTriggerEventType["GithubPullRequestLabeled"] = "GITHUB_PULL_REQUEST_LABELED";
|
|
1024
1062
|
WorkflowRunTriggerEventType["GithubPullRequestOpened"] = "GITHUB_PULL_REQUEST_OPENED";
|
|
1063
|
+
WorkflowRunTriggerEventType["GithubPullRequestReadyForReview"] = "GITHUB_PULL_REQUEST_READY_FOR_REVIEW";
|
|
1025
1064
|
WorkflowRunTriggerEventType["GithubPullRequestReopened"] = "GITHUB_PULL_REQUEST_REOPENED";
|
|
1026
1065
|
WorkflowRunTriggerEventType["GithubPullRequestSynchronize"] = "GITHUB_PULL_REQUEST_SYNCHRONIZE";
|
|
1027
1066
|
WorkflowRunTriggerEventType["GithubPush"] = "GITHUB_PUSH";
|
|
1028
1067
|
WorkflowRunTriggerEventType["Manual"] = "MANUAL";
|
|
1068
|
+
WorkflowRunTriggerEventType["RepackExpoGo"] = "REPACK_EXPO_GO";
|
|
1029
1069
|
WorkflowRunTriggerEventType["Schedule"] = "SCHEDULE";
|
|
1030
1070
|
})(WorkflowRunTriggerEventType || (exports.WorkflowRunTriggerEventType = WorkflowRunTriggerEventType = {}));
|
|
1031
1071
|
var WorkflowsInsightsExportFormat;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
|
|
2
|
+
import { AppObserveAppVersion, AppObserveEvent, AppObserveEventsFilter, AppObserveEventsOrderBy, AppObservePlatform, AppObserveTimeSeriesStatistics, PageInfo } from '../generated';
|
|
3
|
+
export type AppObserveTimeSeriesResult = {
|
|
4
|
+
appVersionMarkers: AppObserveAppVersion[];
|
|
5
|
+
eventCount: number;
|
|
6
|
+
statistics: AppObserveTimeSeriesStatistics;
|
|
7
|
+
};
|
|
8
|
+
type AppObserveEventsQueryVariables = {
|
|
9
|
+
appId: string;
|
|
10
|
+
filter?: AppObserveEventsFilter;
|
|
11
|
+
first?: number;
|
|
12
|
+
after?: string;
|
|
13
|
+
orderBy?: AppObserveEventsOrderBy;
|
|
14
|
+
};
|
|
15
|
+
export declare const ObserveQuery: {
|
|
16
|
+
timeSeriesAsync(graphqlClient: ExpoGraphqlClient, { appId, metricName, platform, startTime, endTime, }: {
|
|
17
|
+
appId: string;
|
|
18
|
+
metricName: string;
|
|
19
|
+
platform: AppObservePlatform;
|
|
20
|
+
startTime: string;
|
|
21
|
+
endTime: string;
|
|
22
|
+
}): Promise<AppObserveTimeSeriesResult>;
|
|
23
|
+
appVersionsAsync(graphqlClient: ExpoGraphqlClient, { appId, platform, startTime, endTime, metricNames, }: {
|
|
24
|
+
appId: string;
|
|
25
|
+
platform: AppObservePlatform;
|
|
26
|
+
startTime: string;
|
|
27
|
+
endTime: string;
|
|
28
|
+
metricNames?: string[];
|
|
29
|
+
}): Promise<AppObserveAppVersion[]>;
|
|
30
|
+
eventsAsync(graphqlClient: ExpoGraphqlClient, variables: AppObserveEventsQueryVariables): Promise<{
|
|
31
|
+
events: AppObserveEvent[];
|
|
32
|
+
pageInfo: PageInfo;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObserveQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
const client_1 = require("../client");
|
|
7
|
+
const graphql_1 = require("graphql");
|
|
8
|
+
const Observe_1 = require("../types/Observe");
|
|
9
|
+
exports.ObserveQuery = {
|
|
10
|
+
async timeSeriesAsync(graphqlClient, { appId, metricName, platform, startTime, endTime, }) {
|
|
11
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
12
|
+
.query((0, graphql_tag_1.default) `
|
|
13
|
+
query AppObserveTimeSeries(
|
|
14
|
+
$appId: String!
|
|
15
|
+
$input: AppObserveTimeSeriesInput!
|
|
16
|
+
) {
|
|
17
|
+
app {
|
|
18
|
+
byId(appId: $appId) {
|
|
19
|
+
id
|
|
20
|
+
observe {
|
|
21
|
+
timeSeries(input: $input) {
|
|
22
|
+
...AppObserveTimeSeriesFragment
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
${(0, graphql_1.print)(Observe_1.AppObserveAppVersionFragmentNode)}
|
|
29
|
+
${(0, graphql_1.print)(Observe_1.AppObserveTimeSeriesFragmentNode)}
|
|
30
|
+
`, {
|
|
31
|
+
appId,
|
|
32
|
+
input: { metricName, platform, startTime, endTime },
|
|
33
|
+
})
|
|
34
|
+
.toPromise());
|
|
35
|
+
return data.app.byId.observe.timeSeries;
|
|
36
|
+
},
|
|
37
|
+
async appVersionsAsync(graphqlClient, { appId, platform, startTime, endTime, metricNames, }) {
|
|
38
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
39
|
+
.query((0, graphql_tag_1.default) `
|
|
40
|
+
query AppObserveAppVersions(
|
|
41
|
+
$appId: String!
|
|
42
|
+
$input: AppObserveReleasesInput!
|
|
43
|
+
) {
|
|
44
|
+
app {
|
|
45
|
+
byId(appId: $appId) {
|
|
46
|
+
id
|
|
47
|
+
observe {
|
|
48
|
+
appVersions(input: $input) {
|
|
49
|
+
...AppObserveAppVersionFragment
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
${(0, graphql_1.print)(Observe_1.AppObserveAppVersionFragmentNode)}
|
|
56
|
+
`, {
|
|
57
|
+
appId,
|
|
58
|
+
input: { platform, startTime, endTime, ...(metricNames && { metricNames }) },
|
|
59
|
+
})
|
|
60
|
+
.toPromise());
|
|
61
|
+
return data.app.byId.observe.appVersions;
|
|
62
|
+
},
|
|
63
|
+
async eventsAsync(graphqlClient, variables) {
|
|
64
|
+
const data = await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
65
|
+
.query((0, graphql_tag_1.default) `
|
|
66
|
+
query AppObserveEvents(
|
|
67
|
+
$appId: String!
|
|
68
|
+
$filter: AppObserveEventsFilter
|
|
69
|
+
$first: Int
|
|
70
|
+
$after: String
|
|
71
|
+
$orderBy: AppObserveEventsOrderBy
|
|
72
|
+
) {
|
|
73
|
+
app {
|
|
74
|
+
byId(appId: $appId) {
|
|
75
|
+
id
|
|
76
|
+
observe {
|
|
77
|
+
events(
|
|
78
|
+
filter: $filter
|
|
79
|
+
first: $first
|
|
80
|
+
after: $after
|
|
81
|
+
orderBy: $orderBy
|
|
82
|
+
) {
|
|
83
|
+
pageInfo {
|
|
84
|
+
hasNextPage
|
|
85
|
+
hasPreviousPage
|
|
86
|
+
endCursor
|
|
87
|
+
}
|
|
88
|
+
edges {
|
|
89
|
+
cursor
|
|
90
|
+
node {
|
|
91
|
+
id
|
|
92
|
+
...AppObserveEventFragment
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
${(0, graphql_1.print)(Observe_1.AppObserveEventFragmentNode)}
|
|
101
|
+
`, variables)
|
|
102
|
+
.toPromise());
|
|
103
|
+
const { edges, pageInfo } = data.app.byId.observe.events;
|
|
104
|
+
return {
|
|
105
|
+
events: edges.map(edge => edge.node),
|
|
106
|
+
pageInfo,
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppObserveAppVersionFragmentNode = exports.AppObserveEventFragmentNode = exports.AppObserveTimeSeriesFragmentNode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
|
6
|
+
exports.AppObserveTimeSeriesFragmentNode = (0, graphql_tag_1.default) `
|
|
7
|
+
fragment AppObserveTimeSeriesFragment on AppObserveTimeSeries {
|
|
8
|
+
appVersionMarkers {
|
|
9
|
+
...AppObserveAppVersionFragment
|
|
10
|
+
}
|
|
11
|
+
eventCount
|
|
12
|
+
statistics {
|
|
13
|
+
min
|
|
14
|
+
max
|
|
15
|
+
median
|
|
16
|
+
average
|
|
17
|
+
p80
|
|
18
|
+
p90
|
|
19
|
+
p99
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
`;
|
|
23
|
+
exports.AppObserveEventFragmentNode = (0, graphql_tag_1.default) `
|
|
24
|
+
fragment AppObserveEventFragment on AppObserveEvent {
|
|
25
|
+
id
|
|
26
|
+
metricName
|
|
27
|
+
metricValue
|
|
28
|
+
timestamp
|
|
29
|
+
appVersion
|
|
30
|
+
appBuildNumber
|
|
31
|
+
appUpdateId
|
|
32
|
+
deviceModel
|
|
33
|
+
deviceOs
|
|
34
|
+
deviceOsVersion
|
|
35
|
+
countryCode
|
|
36
|
+
sessionId
|
|
37
|
+
easClientId
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
exports.AppObserveAppVersionFragmentNode = (0, graphql_tag_1.default) `
|
|
41
|
+
fragment AppObserveAppVersionFragment on AppObserveAppVersion {
|
|
42
|
+
appVersion
|
|
43
|
+
firstSeenAt
|
|
44
|
+
eventCount
|
|
45
|
+
uniqueUserCount
|
|
46
|
+
buildNumbers {
|
|
47
|
+
appBuildNumber
|
|
48
|
+
firstSeenAt
|
|
49
|
+
eventCount
|
|
50
|
+
uniqueUserCount
|
|
51
|
+
easBuilds {
|
|
52
|
+
easBuildId
|
|
53
|
+
firstSeenAt
|
|
54
|
+
eventCount
|
|
55
|
+
uniqueUserCount
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
updates {
|
|
59
|
+
appUpdateId
|
|
60
|
+
firstSeenAt
|
|
61
|
+
eventCount
|
|
62
|
+
uniqueUserCount
|
|
63
|
+
easBuilds {
|
|
64
|
+
easBuildId
|
|
65
|
+
firstSeenAt
|
|
66
|
+
eventCount
|
|
67
|
+
uniqueUserCount
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
metrics {
|
|
71
|
+
metricName
|
|
72
|
+
eventCount
|
|
73
|
+
statistics {
|
|
74
|
+
min
|
|
75
|
+
max
|
|
76
|
+
median
|
|
77
|
+
average
|
|
78
|
+
p80
|
|
79
|
+
p90
|
|
80
|
+
p99
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AgeRatingDeclaration, AppInfoLocalization, AppStoreReviewDetail, AppStoreVersion, AppStoreVersionLocalization, AppStoreVersionPhasedRelease, CategoryIds } from '@expo/apple-utils';
|
|
2
2
|
import { AttributesOf } from '../../utils/asc';
|
|
3
|
-
import { AppleMetadata } from '../types';
|
|
3
|
+
import { AppleAppClip, AppleAppClipDefaultExperience, AppleAppClipLocalizedInfo, AppleMetadata, ApplePreviews, AppleScreenshots } from '../types';
|
|
4
4
|
type PartialExcept<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, K>>;
|
|
5
5
|
export declare const DEFAULT_WHATSNEW = "Bug fixes and improved stability";
|
|
6
6
|
/**
|
|
@@ -22,5 +22,17 @@ export declare class AppleConfigReader {
|
|
|
22
22
|
versionIsFirst: boolean;
|
|
23
23
|
}): Partial<AttributesOf<AppStoreVersionLocalization>> | null;
|
|
24
24
|
getReviewDetails(): Partial<AttributesOf<AppStoreReviewDetail>> | null;
|
|
25
|
+
/** Get screenshots configuration for a specific locale */
|
|
26
|
+
getScreenshots(locale: string): AppleScreenshots | null;
|
|
27
|
+
/** Get video previews configuration for a specific locale */
|
|
28
|
+
getPreviews(locale: string): ApplePreviews | null;
|
|
29
|
+
/** Get the App Clip configuration block, or null if no App Clip is configured. */
|
|
30
|
+
getAppClip(): AppleAppClip | null;
|
|
31
|
+
/** Get the App Clip default experience, or null if not configured. */
|
|
32
|
+
getAppClipDefaultExperience(): AppleAppClipDefaultExperience | null;
|
|
33
|
+
/** Locales that have App Clip default-experience info configured. */
|
|
34
|
+
getAppClipLocales(): string[];
|
|
35
|
+
/** Get the localized App Clip info (subtitle + header image) for a specific locale. */
|
|
36
|
+
getAppClipLocalizedInfo(locale: string): AppleAppClipLocalizedInfo | null;
|
|
25
37
|
}
|
|
26
38
|
export {};
|
|
@@ -40,6 +40,15 @@ class AppleConfigReader {
|
|
|
40
40
|
violenceCartoonOrFantasy: attributes.violenceCartoonOrFantasy ?? apple_utils_1.Rating.NONE,
|
|
41
41
|
violenceRealistic: attributes.violenceRealistic ?? apple_utils_1.Rating.NONE,
|
|
42
42
|
violenceRealisticProlongedGraphicOrSadistic: attributes.violenceRealisticProlongedGraphicOrSadistic ?? apple_utils_1.Rating.NONE,
|
|
43
|
+
advertising: attributes.advertising ?? false,
|
|
44
|
+
ageAssurance: attributes.ageAssurance ?? false,
|
|
45
|
+
ageRatingOverrideV2: attributes.ageRatingOverrideV2 ?? null,
|
|
46
|
+
developerAgeRatingInfoUrl: attributes.developerAgeRatingInfoUrl ?? null,
|
|
47
|
+
gunsOrOtherWeapons: attributes.gunsOrOtherWeapons ?? apple_utils_1.Rating.NONE,
|
|
48
|
+
healthOrWellnessTopics: attributes.healthOrWellnessTopics ?? false,
|
|
49
|
+
messagingAndChat: attributes.messagingAndChat ?? false,
|
|
50
|
+
parentalControls: attributes.parentalControls ?? false,
|
|
51
|
+
userGeneratedContent: attributes.userGeneratedContent ?? false,
|
|
43
52
|
};
|
|
44
53
|
}
|
|
45
54
|
getLocales() {
|
|
@@ -162,5 +171,29 @@ class AppleConfigReader {
|
|
|
162
171
|
// TODO: add attachment
|
|
163
172
|
};
|
|
164
173
|
}
|
|
174
|
+
/** Get screenshots configuration for a specific locale */
|
|
175
|
+
getScreenshots(locale) {
|
|
176
|
+
return this.schema.info?.[locale]?.screenshots ?? null;
|
|
177
|
+
}
|
|
178
|
+
/** Get video previews configuration for a specific locale */
|
|
179
|
+
getPreviews(locale) {
|
|
180
|
+
return this.schema.info?.[locale]?.previews ?? null;
|
|
181
|
+
}
|
|
182
|
+
/** Get the App Clip configuration block, or null if no App Clip is configured. */
|
|
183
|
+
getAppClip() {
|
|
184
|
+
return this.schema.appClip ?? null;
|
|
185
|
+
}
|
|
186
|
+
/** Get the App Clip default experience, or null if not configured. */
|
|
187
|
+
getAppClipDefaultExperience() {
|
|
188
|
+
return this.schema.appClip?.defaultExperience ?? null;
|
|
189
|
+
}
|
|
190
|
+
/** Locales that have App Clip default-experience info configured. */
|
|
191
|
+
getAppClipLocales() {
|
|
192
|
+
return (0, uniq_1.default)(Object.keys(this.schema.appClip?.defaultExperience?.info ?? {}));
|
|
193
|
+
}
|
|
194
|
+
/** Get the localized App Clip info (subtitle + header image) for a specific locale. */
|
|
195
|
+
getAppClipLocalizedInfo(locale) {
|
|
196
|
+
return this.schema.appClip?.defaultExperience?.info?.[locale] ?? null;
|
|
197
|
+
}
|
|
165
198
|
}
|
|
166
199
|
exports.AppleConfigReader = AppleConfigReader;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AgeRatingDeclaration, AppInfo, AppInfoLocalization, AppStoreReviewDetail, AppStoreVersion, AppStoreVersionLocalization, AppStoreVersionPhasedRelease } from '@expo/apple-utils';
|
|
2
2
|
import { AttributesOf } from '../../utils/asc';
|
|
3
|
-
import { AppleMetadata } from '../types';
|
|
3
|
+
import { AppleAppClipDefaultExperience, AppleAppClipLocalizedInfo, AppleAppClipReviewDetail, AppleMetadata, ApplePreviews, AppleScreenshots } from '../types';
|
|
4
4
|
/**
|
|
5
5
|
* Serializes the Apple ASC entities into the metadata configuration schema.
|
|
6
6
|
* This uses version 0 of the config schema.
|
|
@@ -21,4 +21,14 @@ export declare class AppleConfigWriter {
|
|
|
21
21
|
setVersionReleasePhased(attributes?: AttributesOf<AppStoreVersionPhasedRelease>): void;
|
|
22
22
|
setVersionLocale(attributes: AttributesOf<AppStoreVersionLocalization>): void;
|
|
23
23
|
setReviewDetails(attributes: AttributesOf<AppStoreReviewDetail>): void;
|
|
24
|
+
/** Set screenshots for a specific locale */
|
|
25
|
+
setScreenshots(locale: string, screenshots: AppleScreenshots): void;
|
|
26
|
+
/** Set video previews for a specific locale */
|
|
27
|
+
setPreviews(locale: string, previews: ApplePreviews): void;
|
|
28
|
+
/** Set the App Clip default experience attributes (action, releaseWithAppStoreVersion). */
|
|
29
|
+
setAppClipDefaultExperience(attributes: Pick<AppleAppClipDefaultExperience, 'action' | 'releaseWithAppStoreVersion'>): void;
|
|
30
|
+
/** Set the App Clip App Store review detail (invocation URLs). */
|
|
31
|
+
setAppClipReviewDetail(reviewDetail: AppleAppClipReviewDetail | null): void;
|
|
32
|
+
/** Set per-locale App Clip info (subtitle + header image). */
|
|
33
|
+
setAppClipLocalizedInfo(locale: string, info: AppleAppClipLocalizedInfo): void;
|
|
24
34
|
}
|
|
@@ -39,6 +39,15 @@ class AppleConfigWriter {
|
|
|
39
39
|
violenceCartoonOrFantasy: attributes.violenceCartoonOrFantasy ?? apple_utils_1.Rating.NONE,
|
|
40
40
|
violenceRealistic: attributes.violenceRealistic ?? apple_utils_1.Rating.NONE,
|
|
41
41
|
violenceRealisticProlongedGraphicOrSadistic: attributes.violenceRealisticProlongedGraphicOrSadistic ?? apple_utils_1.Rating.NONE,
|
|
42
|
+
advertising: attributes.advertising ?? false,
|
|
43
|
+
ageAssurance: attributes.ageAssurance ?? false,
|
|
44
|
+
ageRatingOverrideV2: attributes.ageRatingOverrideV2 ?? null,
|
|
45
|
+
developerAgeRatingInfoUrl: attributes.developerAgeRatingInfoUrl ?? null,
|
|
46
|
+
gunsOrOtherWeapons: attributes.gunsOrOtherWeapons ?? apple_utils_1.Rating.NONE,
|
|
47
|
+
healthOrWellnessTopics: attributes.healthOrWellnessTopics ?? false,
|
|
48
|
+
messagingAndChat: attributes.messagingAndChat ?? false,
|
|
49
|
+
parentalControls: attributes.parentalControls ?? false,
|
|
50
|
+
userGeneratedContent: attributes.userGeneratedContent ?? false,
|
|
42
51
|
};
|
|
43
52
|
}
|
|
44
53
|
setInfoLocale(attributes) {
|
|
@@ -145,6 +154,54 @@ class AppleConfigWriter {
|
|
|
145
154
|
// TODO: add attachment
|
|
146
155
|
};
|
|
147
156
|
}
|
|
157
|
+
/** Set screenshots for a specific locale */
|
|
158
|
+
setScreenshots(locale, screenshots) {
|
|
159
|
+
this.schema.info = this.schema.info ?? {};
|
|
160
|
+
this.schema.info[locale] = this.schema.info[locale] ?? { title: '' };
|
|
161
|
+
this.schema.info[locale].screenshots =
|
|
162
|
+
Object.keys(screenshots).length > 0 ? screenshots : undefined;
|
|
163
|
+
}
|
|
164
|
+
/** Set video previews for a specific locale */
|
|
165
|
+
setPreviews(locale, previews) {
|
|
166
|
+
this.schema.info = this.schema.info ?? {};
|
|
167
|
+
this.schema.info[locale] = this.schema.info[locale] ?? { title: '' };
|
|
168
|
+
this.schema.info[locale].previews = Object.keys(previews).length > 0 ? previews : undefined;
|
|
169
|
+
}
|
|
170
|
+
/** Set the App Clip default experience attributes (action, releaseWithAppStoreVersion). */
|
|
171
|
+
setAppClipDefaultExperience(attributes) {
|
|
172
|
+
this.schema.appClip = this.schema.appClip ?? {};
|
|
173
|
+
this.schema.appClip.defaultExperience = {
|
|
174
|
+
...this.schema.appClip.defaultExperience,
|
|
175
|
+
action: attributes.action,
|
|
176
|
+
releaseWithAppStoreVersion: attributes.releaseWithAppStoreVersion,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/** Set the App Clip App Store review detail (invocation URLs). */
|
|
180
|
+
setAppClipReviewDetail(reviewDetail) {
|
|
181
|
+
this.schema.appClip = this.schema.appClip ?? {};
|
|
182
|
+
this.schema.appClip.defaultExperience = this.schema.appClip.defaultExperience ?? {};
|
|
183
|
+
if (reviewDetail && reviewDetail.invocationUrls.length > 0) {
|
|
184
|
+
this.schema.appClip.defaultExperience.reviewDetail = reviewDetail;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
delete this.schema.appClip.defaultExperience.reviewDetail;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/** Set per-locale App Clip info (subtitle + header image). */
|
|
191
|
+
setAppClipLocalizedInfo(locale, info) {
|
|
192
|
+
this.schema.appClip = this.schema.appClip ?? {};
|
|
193
|
+
this.schema.appClip.defaultExperience = this.schema.appClip.defaultExperience ?? {};
|
|
194
|
+
this.schema.appClip.defaultExperience.info = this.schema.appClip.defaultExperience.info ?? {};
|
|
195
|
+
if (info.subtitle || info.headerImage) {
|
|
196
|
+
this.schema.appClip.defaultExperience.info[locale] = {
|
|
197
|
+
subtitle: optional(info.subtitle ?? null),
|
|
198
|
+
headerImage: optional(info.headerImage ?? null),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
delete this.schema.appClip.defaultExperience.info[locale];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
148
205
|
}
|
|
149
206
|
exports.AppleConfigWriter = AppleConfigWriter;
|
|
150
207
|
/** Helper function to convert `T | null` to `T | undefined`, required for the entity properties */
|