eas-cli 18.4.0 → 18.5.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.
Files changed (53) hide show
  1. package/README.md +92 -90
  2. package/build/build/android/prepareJob.js +2 -2
  3. package/build/build/ios/prepareJob.js +2 -2
  4. package/build/build/metadata.js +2 -1
  5. package/build/commandUtils/EasCommand.js +23 -2
  6. package/build/commandUtils/context/contextUtils/getProjectIdAsync.js +2 -0
  7. package/build/commandUtils/workflow/fetchLogs.js +11 -2
  8. package/build/commandUtils/workflow/types.d.ts +5 -1
  9. package/build/commandUtils/workflow/utils.js +22 -16
  10. package/build/commands/metadata/pull.d.ts +1 -0
  11. package/build/commands/metadata/pull.js +11 -4
  12. package/build/commands/metadata/push.d.ts +1 -0
  13. package/build/commands/metadata/push.js +11 -4
  14. package/build/commands/project/onboarding.js +3 -0
  15. package/build/commands/workflow/logs.js +12 -12
  16. package/build/graphql/generated.d.ts +673 -46
  17. package/build/graphql/generated.js +58 -20
  18. package/build/graphql/queries/UserQuery.js +3 -0
  19. package/build/graphql/types/Update.js +3 -0
  20. package/build/metadata/apple/config/reader.d.ts +5 -1
  21. package/build/metadata/apple/config/reader.js +8 -0
  22. package/build/metadata/apple/config/writer.d.ts +5 -1
  23. package/build/metadata/apple/config/writer.js +13 -0
  24. package/build/metadata/apple/data.d.ts +6 -2
  25. package/build/metadata/apple/rules/infoRestrictedWords.js +6 -1
  26. package/build/metadata/apple/tasks/age-rating.d.ts +1 -1
  27. package/build/metadata/apple/tasks/age-rating.js +19 -3
  28. package/build/metadata/apple/tasks/app-review-detail.js +7 -2
  29. package/build/metadata/apple/tasks/index.js +4 -0
  30. package/build/metadata/apple/tasks/previews.d.ts +18 -0
  31. package/build/metadata/apple/tasks/previews.js +208 -0
  32. package/build/metadata/apple/tasks/screenshots.d.ts +18 -0
  33. package/build/metadata/apple/tasks/screenshots.js +224 -0
  34. package/build/metadata/apple/types.d.ts +34 -1
  35. package/build/metadata/auth.d.ts +11 -1
  36. package/build/metadata/auth.js +96 -2
  37. package/build/metadata/download.d.ts +5 -1
  38. package/build/metadata/download.js +16 -8
  39. package/build/metadata/upload.d.ts +5 -1
  40. package/build/metadata/upload.js +11 -4
  41. package/build/project/projectUtils.d.ts +0 -2
  42. package/build/project/projectUtils.js +0 -12
  43. package/build/project/workflow.js +1 -1
  44. package/build/sentry.d.ts +2 -0
  45. package/build/sentry.js +22 -0
  46. package/build/update/utils.d.ts +2 -2
  47. package/build/update/utils.js +1 -0
  48. package/build/user/User.d.ts +2 -2
  49. package/build/user/User.js +3 -0
  50. package/build/user/expoBrowserAuthFlowLauncher.js +70 -13
  51. package/oclif.manifest.json +13 -1
  52. package/package.json +12 -11
  53. package/schema/metadata-0.json +36 -0
@@ -6,9 +6,9 @@
6
6
  * For more info and docs, visit https://graphql-code-generator.com/
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
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.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = 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.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.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;
9
+ 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.AppObserveReleaseType = 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.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 = exports.EasServiceMetric = 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 = exports.ResponseStatusType = void 0;
12
12
  var AccountAppsSortByField;
13
13
  (function (AccountAppsSortByField) {
14
14
  AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
@@ -81,6 +81,11 @@ var AppObservePlatform;
81
81
  AppObservePlatform["Android"] = "ANDROID";
82
82
  AppObservePlatform["Ios"] = "IOS";
83
83
  })(AppObservePlatform || (exports.AppObservePlatform = AppObservePlatform = {}));
84
+ var AppObserveReleaseType;
85
+ (function (AppObserveReleaseType) {
86
+ AppObserveReleaseType["Update"] = "UPDATE";
87
+ AppObserveReleaseType["Version"] = "VERSION";
88
+ })(AppObserveReleaseType || (exports.AppObserveReleaseType = AppObserveReleaseType = {}));
84
89
  var AppPlatform;
85
90
  (function (AppPlatform) {
86
91
  AppPlatform["Android"] = "ANDROID";
@@ -225,12 +230,17 @@ var BuildMode;
225
230
  var BuildPhase;
226
231
  (function (BuildPhase) {
227
232
  BuildPhase["BuilderInfo"] = "BUILDER_INFO";
233
+ BuildPhase["CacheStats"] = "CACHE_STATS";
234
+ BuildPhase["CalculateExpoUpdatesRuntimeVersion"] = "CALCULATE_EXPO_UPDATES_RUNTIME_VERSION";
228
235
  BuildPhase["CleanUpCredentials"] = "CLEAN_UP_CREDENTIALS";
229
236
  BuildPhase["CompleteBuild"] = "COMPLETE_BUILD";
237
+ BuildPhase["CompleteJob"] = "COMPLETE_JOB";
238
+ BuildPhase["ConfigureAndroidVersion"] = "CONFIGURE_ANDROID_VERSION";
230
239
  BuildPhase["ConfigureExpoUpdates"] = "CONFIGURE_EXPO_UPDATES";
231
240
  BuildPhase["ConfigureXcodeProject"] = "CONFIGURE_XCODE_PROJECT";
232
241
  BuildPhase["Custom"] = "CUSTOM";
233
242
  BuildPhase["DownloadApplicationArchive"] = "DOWNLOAD_APPLICATION_ARCHIVE";
243
+ BuildPhase["EagerBundle"] = "EAGER_BUNDLE";
234
244
  BuildPhase["EasBuildInternal"] = "EAS_BUILD_INTERNAL";
235
245
  BuildPhase["FailBuild"] = "FAIL_BUILD";
236
246
  BuildPhase["FixGradlew"] = "FIX_GRADLEW";
@@ -251,6 +261,7 @@ var BuildPhase;
251
261
  BuildPhase["PreUploadArtifactsHook"] = "PRE_UPLOAD_ARTIFACTS_HOOK";
252
262
  BuildPhase["Queue"] = "QUEUE";
253
263
  BuildPhase["ReadAppConfig"] = "READ_APP_CONFIG";
264
+ BuildPhase["ReadEasJson"] = "READ_EAS_JSON";
254
265
  BuildPhase["ReadPackageJson"] = "READ_PACKAGE_JSON";
255
266
  BuildPhase["RestoreCache"] = "RESTORE_CACHE";
256
267
  BuildPhase["RunExpoDoctor"] = "RUN_EXPO_DOCTOR";
@@ -382,6 +393,7 @@ var EasService;
382
393
  (function (EasService) {
383
394
  EasService["Builds"] = "BUILDS";
384
395
  EasService["Jobs"] = "JOBS";
396
+ EasService["Mcp"] = "MCP";
385
397
  EasService["Updates"] = "UPDATES";
386
398
  })(EasService || (exports.EasService = EasService = {}));
387
399
  var EasServiceMetric;
@@ -391,6 +403,7 @@ var EasServiceMetric;
391
403
  EasServiceMetric["Builds"] = "BUILDS";
392
404
  EasServiceMetric["LocalBuilds"] = "LOCAL_BUILDS";
393
405
  EasServiceMetric["ManifestRequests"] = "MANIFEST_REQUESTS";
406
+ EasServiceMetric["McpRequests"] = "MCP_REQUESTS";
394
407
  EasServiceMetric["RunTime"] = "RUN_TIME";
395
408
  EasServiceMetric["UniqueUpdaters"] = "UNIQUE_UPDATERS";
396
409
  EasServiceMetric["UniqueUsers"] = "UNIQUE_USERS";
@@ -447,6 +460,10 @@ var EchoMessageRole;
447
460
  EchoMessageRole["Assistant"] = "ASSISTANT";
448
461
  EchoMessageRole["User"] = "USER";
449
462
  })(EchoMessageRole || (exports.EchoMessageRole = EchoMessageRole = {}));
463
+ var EchoProjectUploadSessionType;
464
+ (function (EchoProjectUploadSessionType) {
465
+ EchoProjectUploadSessionType["ImageUpload"] = "IMAGE_UPLOAD";
466
+ })(EchoProjectUploadSessionType || (exports.EchoProjectUploadSessionType = EchoProjectUploadSessionType = {}));
450
467
  var EchoProjectVisibility;
451
468
  (function (EchoProjectVisibility) {
452
469
  EchoProjectVisibility["Private"] = "PRIVATE";
@@ -467,16 +484,15 @@ var EntityTypeName;
467
484
  EntityTypeName["AndroidKeystoreEntity"] = "AndroidKeystoreEntity";
468
485
  EntityTypeName["AppEntity"] = "AppEntity";
469
486
  EntityTypeName["AppStoreConnectApiKeyEntity"] = "AppStoreConnectApiKeyEntity";
487
+ EntityTypeName["AppStoreConnectAppWebhookEntity"] = "AppStoreConnectAppWebhookEntity";
470
488
  EntityTypeName["AppleDeviceEntity"] = "AppleDeviceEntity";
471
489
  EntityTypeName["AppleDistributionCertificateEntity"] = "AppleDistributionCertificateEntity";
472
490
  EntityTypeName["AppleProvisioningProfileEntity"] = "AppleProvisioningProfileEntity";
473
491
  EntityTypeName["AppleTeamEntity"] = "AppleTeamEntity";
492
+ EntityTypeName["BillingContractEntity"] = "BillingContractEntity";
474
493
  EntityTypeName["BranchEntity"] = "BranchEntity";
475
494
  EntityTypeName["ChannelEntity"] = "ChannelEntity";
476
495
  EntityTypeName["CustomerEntity"] = "CustomerEntity";
477
- EntityTypeName["EchoChatEntity"] = "EchoChatEntity";
478
- EntityTypeName["EchoMessageEntity"] = "EchoMessageEntity";
479
- EntityTypeName["EchoMessagePartEntity"] = "EchoMessagePartEntity";
480
496
  EntityTypeName["EchoProjectEntity"] = "EchoProjectEntity";
481
497
  EntityTypeName["EchoVersionEntity"] = "EchoVersionEntity";
482
498
  EntityTypeName["GoogleServiceAccountKeyEntity"] = "GoogleServiceAccountKeyEntity";
@@ -501,6 +517,7 @@ var EnvironmentSecretType;
501
517
  })(EnvironmentSecretType || (exports.EnvironmentSecretType = EnvironmentSecretType = {}));
502
518
  var EnvironmentVariableScope;
503
519
  (function (EnvironmentVariableScope) {
520
+ EnvironmentVariableScope["EchoProject"] = "ECHO_PROJECT";
504
521
  EnvironmentVariableScope["Project"] = "PROJECT";
505
522
  EnvironmentVariableScope["Shared"] = "SHARED";
506
523
  })(EnvironmentVariableScope || (exports.EnvironmentVariableScope = EnvironmentVariableScope = {}));
@@ -628,20 +645,6 @@ var LocalBuildArchiveSourceType;
628
645
  (function (LocalBuildArchiveSourceType) {
629
646
  LocalBuildArchiveSourceType["Gcs"] = "GCS";
630
647
  })(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
648
  var NotificationEvent;
646
649
  (function (NotificationEvent) {
647
650
  NotificationEvent["BuildComplete"] = "BUILD_COMPLETE";
@@ -657,6 +660,11 @@ var NotificationType;
657
660
  NotificationType["Email"] = "EMAIL";
658
661
  NotificationType["Web"] = "WEB";
659
662
  })(NotificationType || (exports.NotificationType = NotificationType = {}));
663
+ var OAuthProvider;
664
+ (function (OAuthProvider) {
665
+ OAuthProvider["Apple"] = "apple";
666
+ OAuthProvider["Google"] = "google";
667
+ })(OAuthProvider || (exports.OAuthProvider = OAuthProvider = {}));
660
668
  var OfferType;
661
669
  (function (OfferType) {
662
670
  /** Addon, or supplementary subscription */
@@ -852,6 +860,24 @@ var TargetEntityMutationType;
852
860
  TargetEntityMutationType["Delete"] = "DELETE";
853
861
  TargetEntityMutationType["Update"] = "UPDATE";
854
862
  })(TargetEntityMutationType || (exports.TargetEntityMutationType = TargetEntityMutationType = {}));
863
+ var UpdateDiffReceiptOrderByDirection;
864
+ (function (UpdateDiffReceiptOrderByDirection) {
865
+ UpdateDiffReceiptOrderByDirection["Asc"] = "ASC";
866
+ UpdateDiffReceiptOrderByDirection["Desc"] = "DESC";
867
+ })(UpdateDiffReceiptOrderByDirection || (exports.UpdateDiffReceiptOrderByDirection = UpdateDiffReceiptOrderByDirection = {}));
868
+ var UpdateDiffReceiptOrderByField;
869
+ (function (UpdateDiffReceiptOrderByField) {
870
+ UpdateDiffReceiptOrderByField["CreatedAt"] = "CREATED_AT";
871
+ UpdateDiffReceiptOrderByField["State"] = "STATE";
872
+ })(UpdateDiffReceiptOrderByField || (exports.UpdateDiffReceiptOrderByField = UpdateDiffReceiptOrderByField = {}));
873
+ var UpdateDiffReceiptStateValue;
874
+ (function (UpdateDiffReceiptStateValue) {
875
+ UpdateDiffReceiptStateValue["Failure"] = "FAILURE";
876
+ UpdateDiffReceiptStateValue["InProgress"] = "IN_PROGRESS";
877
+ UpdateDiffReceiptStateValue["Queued"] = "QUEUED";
878
+ UpdateDiffReceiptStateValue["Success"] = "SUCCESS";
879
+ UpdateDiffReceiptStateValue["WontCompute"] = "WONT_COMPUTE";
880
+ })(UpdateDiffReceiptStateValue || (exports.UpdateDiffReceiptStateValue = UpdateDiffReceiptStateValue = {}));
855
881
  var UploadSessionType;
856
882
  (function (UploadSessionType) {
857
883
  UploadSessionType["EasBuildGcsProjectMetadata"] = "EAS_BUILD_GCS_PROJECT_METADATA";
@@ -921,6 +947,8 @@ var UserEntityTypeName;
921
947
  UserEntityTypeName["AccessTokenEntity"] = "AccessTokenEntity";
922
948
  UserEntityTypeName["DiscordUserEntity"] = "DiscordUserEntity";
923
949
  UserEntityTypeName["GitHubUserEntity"] = "GitHubUserEntity";
950
+ UserEntityTypeName["OAuthIdentityEntity"] = "OAuthIdentityEntity";
951
+ UserEntityTypeName["PartnerProvisionedActorEntity"] = "PartnerProvisionedActorEntity";
924
952
  UserEntityTypeName["PasswordEntity"] = "PasswordEntity";
925
953
  UserEntityTypeName["SsoUserEntity"] = "SSOUserEntity";
926
954
  UserEntityTypeName["UserEntity"] = "UserEntity";
@@ -970,6 +998,12 @@ var WorkflowArtifactStorageType;
970
998
  WorkflowArtifactStorageType["Gcs"] = "GCS";
971
999
  WorkflowArtifactStorageType["R2"] = "R2";
972
1000
  })(WorkflowArtifactStorageType || (exports.WorkflowArtifactStorageType = WorkflowArtifactStorageType = {}));
1001
+ /** Status of a device test case execution. */
1002
+ var WorkflowDeviceTestCaseStatus;
1003
+ (function (WorkflowDeviceTestCaseStatus) {
1004
+ WorkflowDeviceTestCaseStatus["Failed"] = "FAILED";
1005
+ WorkflowDeviceTestCaseStatus["Passed"] = "PASSED";
1006
+ })(WorkflowDeviceTestCaseStatus || (exports.WorkflowDeviceTestCaseStatus = WorkflowDeviceTestCaseStatus = {}));
973
1007
  var WorkflowJobReviewDecision;
974
1008
  (function (WorkflowJobReviewDecision) {
975
1009
  WorkflowJobReviewDecision["Approved"] = "APPROVED";
@@ -1020,12 +1054,16 @@ var WorkflowRunStatus;
1020
1054
  })(WorkflowRunStatus || (exports.WorkflowRunStatus = WorkflowRunStatus = {}));
1021
1055
  var WorkflowRunTriggerEventType;
1022
1056
  (function (WorkflowRunTriggerEventType) {
1057
+ WorkflowRunTriggerEventType["EasSubmit"] = "EAS_SUBMIT";
1058
+ WorkflowRunTriggerEventType["ExpoLaunch"] = "EXPO_LAUNCH";
1023
1059
  WorkflowRunTriggerEventType["GithubPullRequestLabeled"] = "GITHUB_PULL_REQUEST_LABELED";
1024
1060
  WorkflowRunTriggerEventType["GithubPullRequestOpened"] = "GITHUB_PULL_REQUEST_OPENED";
1061
+ WorkflowRunTriggerEventType["GithubPullRequestReadyForReview"] = "GITHUB_PULL_REQUEST_READY_FOR_REVIEW";
1025
1062
  WorkflowRunTriggerEventType["GithubPullRequestReopened"] = "GITHUB_PULL_REQUEST_REOPENED";
1026
1063
  WorkflowRunTriggerEventType["GithubPullRequestSynchronize"] = "GITHUB_PULL_REQUEST_SYNCHRONIZE";
1027
1064
  WorkflowRunTriggerEventType["GithubPush"] = "GITHUB_PUSH";
1028
1065
  WorkflowRunTriggerEventType["Manual"] = "MANUAL";
1066
+ WorkflowRunTriggerEventType["RepackExpoGo"] = "REPACK_EXPO_GO";
1029
1067
  WorkflowRunTriggerEventType["Schedule"] = "SCHEDULE";
1030
1068
  })(WorkflowRunTriggerEventType || (exports.WorkflowRunTriggerEventType = WorkflowRunTriggerEventType = {}));
1031
1069
  var WorkflowsInsightsExportFormat;
@@ -41,6 +41,9 @@ exports.UserQuery = {
41
41
  id
42
42
  ...AccountFragment
43
43
  }
44
+ ... on PartnerActor {
45
+ username
46
+ }
44
47
  featureGates
45
48
  isExpoAdmin
46
49
  }
@@ -26,6 +26,9 @@ exports.UpdateFragmentNode = (0, graphql_tag_1.default) `
26
26
  ... on Robot {
27
27
  firstName
28
28
  }
29
+ ... on PartnerActor {
30
+ username
31
+ }
29
32
  }
30
33
  branch {
31
34
  id
@@ -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 { 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,9 @@ 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;
25
29
  }
26
30
  export {};
@@ -162,5 +162,13 @@ class AppleConfigReader {
162
162
  // TODO: add attachment
163
163
  };
164
164
  }
165
+ /** Get screenshots configuration for a specific locale */
166
+ getScreenshots(locale) {
167
+ return this.schema.info?.[locale]?.screenshots ?? null;
168
+ }
169
+ /** Get video previews configuration for a specific locale */
170
+ getPreviews(locale) {
171
+ return this.schema.info?.[locale]?.previews ?? null;
172
+ }
165
173
  }
166
174
  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 { 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,8 @@ 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;
24
28
  }
@@ -145,6 +145,19 @@ class AppleConfigWriter {
145
145
  // TODO: add attachment
146
146
  };
147
147
  }
148
+ /** Set screenshots for a specific locale */
149
+ setScreenshots(locale, screenshots) {
150
+ this.schema.info = this.schema.info ?? {};
151
+ this.schema.info[locale] = this.schema.info[locale] ?? { title: '' };
152
+ this.schema.info[locale].screenshots =
153
+ Object.keys(screenshots).length > 0 ? screenshots : undefined;
154
+ }
155
+ /** Set video previews for a specific locale */
156
+ setPreviews(locale, previews) {
157
+ this.schema.info = this.schema.info ?? {};
158
+ this.schema.info[locale] = this.schema.info[locale] ?? { title: '' };
159
+ this.schema.info[locale].previews = Object.keys(previews).length > 0 ? previews : undefined;
160
+ }
148
161
  }
149
162
  exports.AppleConfigWriter = AppleConfigWriter;
150
163
  /** Helper function to convert `T | null` to `T | undefined`, required for the entity properties */
@@ -3,13 +3,16 @@ import type { AgeRatingData } from './tasks/age-rating';
3
3
  import type { AppInfoData } from './tasks/app-info';
4
4
  import type { AppReviewData } from './tasks/app-review-detail';
5
5
  import type { AppVersionData } from './tasks/app-version';
6
+ import type { PreviewsData } from './tasks/previews';
7
+ import type { ScreenshotsData } from './tasks/screenshots';
6
8
  /**
7
9
  * The fully prepared apple data, used within the `downloadAsync` or `uploadAsync` tasks.
8
10
  * It contains references to each individual models, to either upload or download App Store data.
9
11
  */
10
12
  export type AppleData = {
11
13
  app: App;
12
- } & AppInfoData & AppVersionData & AgeRatingData & AppReviewData;
14
+ projectDir: string;
15
+ } & AppInfoData & AppVersionData & AgeRatingData & AppReviewData & ScreenshotsData & PreviewsData;
13
16
  /**
14
17
  * The unprepared partial apple data, used within the `prepareAsync` tasks.
15
18
  * It contains a reference to the app, each task should populate the necessary data.
@@ -17,4 +20,5 @@ export type AppleData = {
17
20
  */
18
21
  export type PartialAppleData = {
19
22
  app: App;
20
- } & Partial<Omit<AppleData, 'app'>>;
23
+ projectDir: string;
24
+ } & Partial<Omit<AppleData, 'app' | 'projectDir'>>;
@@ -2,7 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.infoRestrictedWords = void 0;
4
4
  const filter_1 = require("../../../utils/expodash/filter");
5
- const RESTRICTED_PROPERTIES = ['title', 'subtitle', 'description', 'keywords'];
5
+ const RESTRICTED_PROPERTIES = [
6
+ 'title',
7
+ 'subtitle',
8
+ 'description',
9
+ 'keywords',
10
+ ];
6
11
  const RESTRICTED_WORDS = {
7
12
  beta: 'Apple restricts the word "beta" and synonyms implying incomplete functionality.',
8
13
  };
@@ -1,7 +1,7 @@
1
1
  import { AgeRatingDeclaration } from '@expo/apple-utils';
2
2
  import { AppleTask, TaskDownloadOptions, TaskPrepareOptions, TaskUploadOptions } from '../task';
3
3
  export type AgeRatingData = {
4
- /** The app age rating declaration for the app version */
4
+ /** The app age rating declaration for the app info */
5
5
  ageRating: AgeRatingDeclaration;
6
6
  };
7
7
  export declare class AgeRatingTask extends AppleTask {
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AgeRatingTask = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const assert_1 = tslib_1.__importDefault(require("assert"));
6
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
6
  const log_1 = tslib_1.__importDefault(require("../../../log"));
8
7
  const log_2 = require("../../utils/log");
@@ -10,7 +9,21 @@ const task_1 = require("../task");
10
9
  class AgeRatingTask extends task_1.AppleTask {
11
10
  name = () => 'age rating declarations';
12
11
  async prepareAsync({ context }) {
13
- context.ageRating = (await context.version.getAgeRatingDeclarationAsync()) ?? undefined;
12
+ if (!context.info) {
13
+ return;
14
+ }
15
+ // The ageRatingDeclaration relationship is on appInfos (not appStoreVersions).
16
+ try {
17
+ context.ageRating = (await context.info.getAgeRatingDeclarationAsync()) ?? undefined;
18
+ }
19
+ catch (error) {
20
+ // Gracefully handle cases where the relationship is not available
21
+ if (error?.message?.includes('ageRatingDeclaration')) {
22
+ log_1.default.warn((0, chalk_1.default) `{yellow Skipped age rating - not available for this app. This may require updating through App Store Connect directly.}`);
23
+ return;
24
+ }
25
+ throw error;
26
+ }
14
27
  }
15
28
  async downloadAsync({ config, context }) {
16
29
  if (context.ageRating) {
@@ -18,7 +31,10 @@ class AgeRatingTask extends task_1.AppleTask {
18
31
  }
19
32
  }
20
33
  async uploadAsync({ config, context }) {
21
- (0, assert_1.default)(context.ageRating, `Age rating not initialized, can't update age rating`);
34
+ if (!context.ageRating) {
35
+ log_1.default.log((0, chalk_1.default) `{dim - Skipped age rating update, not available}`);
36
+ return;
37
+ }
22
38
  const ageRating = config.getAgeRating();
23
39
  if (!ageRating) {
24
40
  log_1.default.log((0, chalk_1.default) `{dim - Skipped age rating update, no advisory configured}`);
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppReviewDetailTask = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const assert_1 = tslib_1.__importDefault(require("assert"));
6
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
6
  const log_1 = tslib_1.__importDefault(require("../../../log"));
8
7
  const log_2 = require("../../utils/log");
@@ -11,6 +10,9 @@ const task_1 = require("../task");
11
10
  class AppReviewDetailTask extends task_1.AppleTask {
12
11
  name = () => 'app review detail';
13
12
  async prepareAsync({ context }) {
13
+ if (!context.version) {
14
+ return;
15
+ }
14
16
  context.reviewDetail = (await context.version.getAppStoreReviewDetailAsync()) ?? undefined;
15
17
  }
16
18
  async downloadAsync({ config, context }) {
@@ -24,7 +26,10 @@ class AppReviewDetailTask extends task_1.AppleTask {
24
26
  log_1.default.log((0, chalk_1.default) `{dim - Skipped store review details, not configured}`);
25
27
  return;
26
28
  }
27
- (0, assert_1.default)(context.version, `App version not initialized, can't upload store review details`);
29
+ if (!context.version) {
30
+ log_1.default.log((0, chalk_1.default) `{dim - Skipped store review details, no version available}`);
31
+ return;
32
+ }
28
33
  const { versionString } = context.version.attributes;
29
34
  if (!context.reviewDetail) {
30
35
  // We can't set the demo required property when creating, omit it from the request
@@ -5,6 +5,8 @@ const age_rating_1 = require("./age-rating");
5
5
  const app_info_1 = require("./app-info");
6
6
  const app_review_detail_1 = require("./app-review-detail");
7
7
  const app_version_1 = require("./app-version");
8
+ const previews_1 = require("./previews");
9
+ const screenshots_1 = require("./screenshots");
8
10
  /**
9
11
  * List of all eligible tasks to sync local store configuration to the App store.
10
12
  */
@@ -14,5 +16,7 @@ function createAppleTasks({ version } = {}) {
14
16
  new app_info_1.AppInfoTask(),
15
17
  new age_rating_1.AgeRatingTask(),
16
18
  new app_review_detail_1.AppReviewDetailTask(),
19
+ new screenshots_1.ScreenshotsTask(),
20
+ new previews_1.PreviewsTask(),
17
21
  ];
18
22
  }
@@ -0,0 +1,18 @@
1
+ import { AppPreviewSet, PreviewType } from '@expo/apple-utils';
2
+ import { AppleTask, TaskDownloadOptions, TaskPrepareOptions, TaskUploadOptions } from '../task';
3
+ /** Locale -> PreviewType -> AppPreviewSet */
4
+ export type PreviewSetsMap = Map<string, Map<PreviewType, AppPreviewSet>>;
5
+ export type PreviewsData = {
6
+ /** Map of locales to their preview sets */
7
+ previewSets: PreviewSetsMap;
8
+ };
9
+ /**
10
+ * Task for managing App Store video previews.
11
+ * Downloads existing previews and uploads new ones based on store configuration.
12
+ */
13
+ export declare class PreviewsTask extends AppleTask {
14
+ name: () => string;
15
+ prepareAsync({ context }: TaskPrepareOptions): Promise<void>;
16
+ downloadAsync({ config, context }: TaskDownloadOptions): Promise<void>;
17
+ uploadAsync({ config, context }: TaskUploadOptions): Promise<void>;
18
+ }