eas-cli 2.5.1 → 2.7.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 (150) hide show
  1. package/README.md +8 -1095
  2. package/build/branch/queries.d.ts +8 -1
  3. package/build/branch/queries.js +53 -23
  4. package/build/build/android/build.js +1 -0
  5. package/build/build/ios/build.js +1 -0
  6. package/build/build/local.js +1 -1
  7. package/build/build/queries.d.ts +11 -1
  8. package/build/build/queries.js +39 -1
  9. package/build/build/validate.d.ts +1 -0
  10. package/build/build/validate.js +121 -1
  11. package/build/channel/queries.d.ts +11 -0
  12. package/build/channel/queries.js +51 -9
  13. package/build/channel/utils.js +22 -22
  14. package/build/commandUtils/context/LoggedInContextField.d.ts +3 -0
  15. package/build/commandUtils/context/LoggedInContextField.js +9 -1
  16. package/build/commandUtils/context/MaybeLoggedInContextField.d.ts +3 -0
  17. package/build/commandUtils/context/MaybeLoggedInContextField.js +9 -1
  18. package/build/commandUtils/context/contextUtils/createGraphqlClient.d.ts +2 -2
  19. package/build/commandUtils/context/contextUtils/getProjectIdAsync.js +1 -1
  20. package/build/commandUtils/gating/FeatureGateEnvOverrides.d.ts +7 -0
  21. package/build/commandUtils/gating/FeatureGateEnvOverrides.js +35 -0
  22. package/build/commandUtils/gating/FeatureGateKey.d.ts +4 -0
  23. package/build/commandUtils/gating/FeatureGateKey.js +11 -0
  24. package/build/commandUtils/gating/FeatureGateTestOverrides.d.ts +5 -0
  25. package/build/commandUtils/gating/FeatureGateTestOverrides.js +17 -0
  26. package/build/commandUtils/gating/FeatureGating.d.ts +16 -0
  27. package/build/commandUtils/gating/FeatureGating.js +55 -0
  28. package/build/commandUtils/pagination.d.ts +4 -3
  29. package/build/commands/branch/create.d.ts +0 -3
  30. package/build/commands/branch/create.js +2 -27
  31. package/build/commands/branch/list.d.ts +1 -1
  32. package/build/commands/branch/view.d.ts +1 -1
  33. package/build/commands/build/configure.d.ts +1 -1
  34. package/build/commands/build/index.d.ts +2 -2
  35. package/build/commands/build/list.d.ts +4 -4
  36. package/build/commands/build/list.js +2 -15
  37. package/build/commands/build/run.d.ts +21 -0
  38. package/build/commands/build/run.js +149 -0
  39. package/build/commands/build/version/set.d.ts +1 -1
  40. package/build/commands/build/version/sync.d.ts +1 -1
  41. package/build/commands/channel/create.d.ts +0 -7
  42. package/build/commands/channel/create.js +4 -31
  43. package/build/commands/channel/list.d.ts +1 -1
  44. package/build/commands/channel/view.d.ts +1 -1
  45. package/build/commands/config.d.ts +1 -1
  46. package/build/commands/credentials.d.ts +1 -1
  47. package/build/commands/device/list.d.ts +1 -1
  48. package/build/commands/metadata/lint.d.ts +12 -0
  49. package/build/commands/metadata/lint.js +72 -0
  50. package/build/commands/metadata/pull.js +20 -9
  51. package/build/commands/metadata/push.js +20 -9
  52. package/build/commands/secret/create.d.ts +1 -1
  53. package/build/commands/secret/list.js +12 -17
  54. package/build/commands/submit.d.ts +1 -1
  55. package/build/commands/update/configure.d.ts +1 -0
  56. package/build/commands/update/configure.js +10 -216
  57. package/build/commands/update/index.d.ts +3 -9
  58. package/build/commands/update/index.js +136 -143
  59. package/build/commands/update/list.d.ts +1 -1
  60. package/build/commands/webhook/create.d.ts +1 -1
  61. package/build/commands/webhook/list.d.ts +1 -1
  62. package/build/commands/webhook/update.d.ts +1 -1
  63. package/build/devices/actions/create/inputMethod.js +2 -15
  64. package/build/devices/utils/formatDevice.d.ts +2 -0
  65. package/build/devices/utils/formatDevice.js +32 -7
  66. package/build/env.d.ts +8 -0
  67. package/build/env.js +8 -0
  68. package/build/graphql/generated.d.ts +100 -23
  69. package/build/graphql/generated.js +10 -2
  70. package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +1 -1
  71. package/build/graphql/queries/UserQuery.js +2 -2
  72. package/build/graphql/types/Build.js +2 -0
  73. package/build/log.d.ts +1 -0
  74. package/build/log.js +3 -0
  75. package/build/metadata/apple/rules/index.d.ts +1 -0
  76. package/build/metadata/apple/rules/index.js +6 -0
  77. package/build/metadata/apple/rules/infoKeywordLength.d.ts +6 -0
  78. package/build/metadata/apple/rules/infoKeywordLength.js +35 -0
  79. package/build/metadata/apple/rules/infoRestrictedWords.d.ts +6 -0
  80. package/build/metadata/apple/rules/infoRestrictedWords.js +57 -0
  81. package/build/metadata/apple/tasks/index.d.ts +1 -2
  82. package/build/metadata/apple/tasks/index.js +1 -1
  83. package/build/metadata/auth.d.ts +21 -0
  84. package/build/metadata/auth.js +33 -0
  85. package/build/metadata/config/issue.d.ts +21 -0
  86. package/build/metadata/config/issue.js +9 -0
  87. package/build/metadata/config/resolve.d.ts +27 -0
  88. package/build/metadata/{config.js → config/resolve.js} +24 -25
  89. package/build/metadata/config/schema.d.ts +7 -0
  90. package/build/metadata/config/schema.js +2 -0
  91. package/build/metadata/config/validate.d.ts +3 -0
  92. package/build/metadata/config/validate.js +47 -0
  93. package/build/metadata/download.d.ts +11 -2
  94. package/build/metadata/download.js +14 -9
  95. package/build/metadata/errors.d.ts +3 -3
  96. package/build/metadata/errors.js +3 -1
  97. package/build/metadata/upload.d.ts +11 -2
  98. package/build/metadata/upload.js +16 -11
  99. package/build/metadata/utils/ajv.d.ts +10 -0
  100. package/build/metadata/utils/ajv.js +30 -0
  101. package/build/metadata/utils/telemetry.js +6 -6
  102. package/build/project/projectUtils.d.ts +3 -1
  103. package/build/project/projectUtils.js +10 -3
  104. package/build/project/publish.d.ts +13 -10
  105. package/build/project/publish.js +68 -38
  106. package/build/project/workflow.d.ts +1 -0
  107. package/build/project/workflow.js +9 -1
  108. package/build/run/android/run.d.ts +1 -0
  109. package/build/run/android/run.js +9 -0
  110. package/build/run/ios/run.d.ts +1 -0
  111. package/build/run/ios/run.js +31 -0
  112. package/build/run/ios/simctl.d.ts +2 -0
  113. package/build/run/ios/simctl.js +8 -0
  114. package/build/run/ios/simulator.d.ts +21 -0
  115. package/build/run/ios/simulator.js +161 -0
  116. package/build/run/ios/systemRequirements.d.ts +1 -0
  117. package/build/run/ios/systemRequirements.js +82 -0
  118. package/build/run/ios/xcode.d.ts +4 -0
  119. package/build/run/ios/xcode.js +41 -0
  120. package/build/run/ios/xcrun.d.ts +4 -0
  121. package/build/run/ios/xcrun.js +68 -0
  122. package/build/run/run.d.ts +8 -0
  123. package/build/run/run.js +15 -0
  124. package/build/submit/ArchiveSource.js +12 -16
  125. package/build/submit/utils/summary.d.ts +1 -1
  126. package/build/update/configure.d.ts +22 -0
  127. package/build/update/configure.js +200 -0
  128. package/build/update/queries.js +30 -39
  129. package/build/update/utils.d.ts +8 -1
  130. package/build/update/utils.js +35 -1
  131. package/build/utils/buildDistribution.d.ts +3 -0
  132. package/build/utils/buildDistribution.js +20 -0
  133. package/build/utils/download.d.ts +2 -0
  134. package/build/utils/download.js +114 -0
  135. package/build/utils/expoCli.d.ts +6 -0
  136. package/build/utils/expoCli.js +46 -1
  137. package/build/utils/expodash/filter.d.ts +2 -0
  138. package/build/utils/expodash/filter.js +8 -0
  139. package/build/utils/expodash/memoize.d.ts +2 -0
  140. package/build/utils/expodash/memoize.js +17 -0
  141. package/build/utils/formatFields.d.ts +3 -2
  142. package/build/utils/image.d.ts +6 -0
  143. package/build/utils/image.js +107 -0
  144. package/build/utils/statuspageService.js +1 -0
  145. package/oclif.manifest.json +1 -1
  146. package/package.json +36 -30
  147. package/schema/metadata-0.json +1 -1
  148. package/build/metadata/config.d.ts +0 -41
  149. package/build/metadata/context.d.ts +0 -50
  150. package/build/metadata/context.js +0 -47
package/build/env.js CHANGED
@@ -9,4 +9,12 @@ exports.default = {
9
9
  * ignore failures when parsing build.gradle.
10
10
  */
11
11
  overrideAndroidApplicationId: process.env.EAS_DANGEROUS_OVERRIDE_ANDROID_APPLICATION_ID,
12
+ /**
13
+ * Comma separated list of feature gate keys of feature gates to evaluate override to true.
14
+ */
15
+ featureGateEnable: process.env.EAS_FG_ENABLE,
16
+ /**
17
+ * Comma separated list of feature gate keys of feature gates to evaluate override to false.
18
+ */
19
+ featureGateDisable: process.env.EAS_FG_DISABLE,
12
20
  };
@@ -344,6 +344,7 @@ export declare type AccountSsoConfiguration = {
344
344
  issuer?: Maybe<Scalars['String']>;
345
345
  jwksEndpoint?: Maybe<Scalars['String']>;
346
346
  redirectUri: Scalars['String'];
347
+ revokeEndpoint?: Maybe<Scalars['String']>;
347
348
  tokenEndpoint?: Maybe<Scalars['String']>;
348
349
  updatedAt: Scalars['DateTime'];
349
350
  userInfoEndpoint?: Maybe<Scalars['String']>;
@@ -357,6 +358,7 @@ export declare type AccountSsoConfigurationData = {
357
358
  issuer?: InputMaybe<Scalars['String']>;
358
359
  jwksEndpoint?: InputMaybe<Scalars['String']>;
359
360
  redirectUri: Scalars['String'];
361
+ revokeEndpoint?: InputMaybe<Scalars['String']>;
360
362
  tokenEndpoint?: InputMaybe<Scalars['String']>;
361
363
  userInfoEndpoint?: InputMaybe<Scalars['String']>;
362
364
  };
@@ -391,6 +393,7 @@ export declare type AccountSsoConfigurationPublicData = {
391
393
  issuer?: Maybe<Scalars['String']>;
392
394
  jwksEndpoint?: Maybe<Scalars['String']>;
393
395
  redirectUri: Scalars['String'];
396
+ revokeEndpoint?: Maybe<Scalars['String']>;
394
397
  tokenEndpoint?: Maybe<Scalars['String']>;
395
398
  userInfoEndpoint?: Maybe<Scalars['String']>;
396
399
  };
@@ -1456,6 +1459,8 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
1456
1459
  __typename?: 'Build';
1457
1460
  activityTimestamp: Scalars['DateTime'];
1458
1461
  actor?: Maybe<Actor>;
1462
+ /** The actual resource class of the builder assigned to the build job */
1463
+ actualResourceClass?: Maybe<BuildResourceClass>;
1459
1464
  appBuildVersion?: Maybe<Scalars['String']>;
1460
1465
  appVersion?: Maybe<Scalars['String']>;
1461
1466
  artifacts?: Maybe<BuildArtifacts>;
@@ -1496,7 +1501,8 @@ export declare type Build = ActivityTimelineProjectActivity & BuildOrBuildJob &
1496
1501
  queuePosition?: Maybe<Scalars['Int']>;
1497
1502
  reactNativeVersion?: Maybe<Scalars['String']>;
1498
1503
  releaseChannel?: Maybe<Scalars['String']>;
1499
- resourceClass?: Maybe<BuildResourceClass>;
1504
+ /** The builder resource class requested by the developer */
1505
+ resourceClass: BuildResourceClass;
1500
1506
  runFromCI?: Maybe<Scalars['Boolean']>;
1501
1507
  runtimeVersion?: Maybe<Scalars['String']>;
1502
1508
  sdkVersion?: Maybe<Scalars['String']>;
@@ -1863,6 +1869,7 @@ export declare type CreateAccessTokenResponse = {
1863
1869
  };
1864
1870
  export declare type CreateAndroidSubmissionInput = {
1865
1871
  appId: Scalars['ID'];
1872
+ archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
1866
1873
  archiveUrl?: InputMaybe<Scalars['String']>;
1867
1874
  config: AndroidSubmissionConfigInput;
1868
1875
  submittedBuildId?: InputMaybe<Scalars['ID']>;
@@ -1885,6 +1892,7 @@ export declare type CreateGitHubRepositoryInput = {
1885
1892
  appId: Scalars['ID'];
1886
1893
  githubAppInstallationId: Scalars['ID'];
1887
1894
  githubRepositoryIdentifier: Scalars['Int'];
1895
+ nodeIdentifier: Scalars['String'];
1888
1896
  };
1889
1897
  export declare type CreateGitHubRepositorySettingsInput = {
1890
1898
  appId: Scalars['ID'];
@@ -1893,6 +1901,7 @@ export declare type CreateGitHubRepositorySettingsInput = {
1893
1901
  };
1894
1902
  export declare type CreateIosSubmissionInput = {
1895
1903
  appId: Scalars['ID'];
1904
+ archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
1896
1905
  archiveUrl?: InputMaybe<Scalars['String']>;
1897
1906
  config: IosSubmissionConfigInput;
1898
1907
  submittedBuildId?: InputMaybe<Scalars['ID']>;
@@ -1943,6 +1952,14 @@ export declare type DeleteGoogleServiceAccountKeyResult = {
1943
1952
  __typename?: 'DeleteGoogleServiceAccountKeyResult';
1944
1953
  id: Scalars['ID'];
1945
1954
  };
1955
+ export declare type DeleteIosAppBuildCredentialsResult = {
1956
+ __typename?: 'DeleteIosAppBuildCredentialsResult';
1957
+ id: Scalars['ID'];
1958
+ };
1959
+ export declare type DeleteIosAppCredentialsResult = {
1960
+ __typename?: 'DeleteIosAppCredentialsResult';
1961
+ id: Scalars['ID'];
1962
+ };
1946
1963
  export declare type DeleteRobotResult = {
1947
1964
  __typename?: 'DeleteRobotResult';
1948
1965
  id: Scalars['ID'];
@@ -2099,7 +2116,7 @@ export declare type GetSignedAssetUploadSpecificationsResult = {
2099
2116
  };
2100
2117
  export declare type GitHubAppInstallation = {
2101
2118
  __typename?: 'GitHubAppInstallation';
2102
- accessibleRepositories: Array<GitHubAppInstallationAccessibleRepository>;
2119
+ accessibleRepositories: GitHubRepositoryPaginationResult;
2103
2120
  account: Account;
2104
2121
  actor?: Maybe<Actor>;
2105
2122
  id: Scalars['ID'];
@@ -2116,6 +2133,7 @@ export declare type GitHubAppInstallationAccessibleRepository = {
2116
2133
  description?: Maybe<Scalars['String']>;
2117
2134
  id: Scalars['Int'];
2118
2135
  name: Scalars['String'];
2136
+ nodeId: Scalars['String'];
2119
2137
  owner: GitHubRepositoryOwner;
2120
2138
  private: Scalars['Boolean'];
2121
2139
  url: Scalars['String'];
@@ -2148,12 +2166,14 @@ export declare type GitHubAppQuery = {
2148
2166
  __typename?: 'GitHubAppQuery';
2149
2167
  appIdentifier: Scalars['String'];
2150
2168
  clientIdentifier: Scalars['String'];
2151
- searchRepositories: Array<GitHubAppInstallationAccessibleRepository>;
2169
+ installation: GitHubAppInstallation;
2170
+ searchRepositories: GitHubRepositoryPaginationResult;
2171
+ };
2172
+ export declare type GitHubAppQueryInstallationArgs = {
2173
+ id: Scalars['ID'];
2152
2174
  };
2153
2175
  export declare type GitHubAppQuerySearchRepositoriesArgs = {
2154
2176
  githubAppInstallationId: Scalars['ID'];
2155
- page?: InputMaybe<Scalars['Int']>;
2156
- perPage?: InputMaybe<Scalars['Int']>;
2157
2177
  query: Scalars['String'];
2158
2178
  };
2159
2179
  export declare type GitHubRepository = {
@@ -2163,6 +2183,7 @@ export declare type GitHubRepository = {
2163
2183
  githubRepositoryIdentifier: Scalars['Int'];
2164
2184
  id: Scalars['ID'];
2165
2185
  metadata?: Maybe<GitHubRepositoryMetadata>;
2186
+ nodeIdentifier: Scalars['String'];
2166
2187
  };
2167
2188
  export declare type GitHubRepositoryMetadata = {
2168
2189
  __typename?: 'GitHubRepositoryMetadata';
@@ -2194,6 +2215,11 @@ export declare type GitHubRepositoryOwner = {
2194
2215
  login: Scalars['String'];
2195
2216
  url: Scalars['String'];
2196
2217
  };
2218
+ export declare type GitHubRepositoryPaginationResult = {
2219
+ __typename?: 'GitHubRepositoryPaginationResult';
2220
+ repositories: Array<GitHubAppInstallationAccessibleRepository>;
2221
+ totalCount: Scalars['Int'];
2222
+ };
2197
2223
  export declare type GitHubRepositorySettings = {
2198
2224
  __typename?: 'GitHubRepositorySettings';
2199
2225
  app: App;
@@ -2332,6 +2358,8 @@ export declare type IosAppBuildCredentialsMutation = {
2332
2358
  __typename?: 'IosAppBuildCredentialsMutation';
2333
2359
  /** Create a set of build credentials for an iOS app */
2334
2360
  createIosAppBuildCredentials: IosAppBuildCredentials;
2361
+ /** Disassociate the build credentials from an iOS app */
2362
+ deleteIosAppBuildCredentials: DeleteIosAppBuildCredentialsResult;
2335
2363
  /** Set the distribution certificate to be used for an iOS app */
2336
2364
  setDistributionCertificate: IosAppBuildCredentials;
2337
2365
  /** Set the provisioning profile to be used for an iOS app */
@@ -2341,6 +2369,9 @@ export declare type IosAppBuildCredentialsMutationCreateIosAppBuildCredentialsAr
2341
2369
  iosAppBuildCredentialsInput: IosAppBuildCredentialsInput;
2342
2370
  iosAppCredentialsId: Scalars['ID'];
2343
2371
  };
2372
+ export declare type IosAppBuildCredentialsMutationDeleteIosAppBuildCredentialsArgs = {
2373
+ id: Scalars['ID'];
2374
+ };
2344
2375
  export declare type IosAppBuildCredentialsMutationSetDistributionCertificateArgs = {
2345
2376
  distributionCertificateId: Scalars['ID'];
2346
2377
  id: Scalars['ID'];
@@ -2379,6 +2410,8 @@ export declare type IosAppCredentialsMutation = {
2379
2410
  __typename?: 'IosAppCredentialsMutation';
2380
2411
  /** Create a set of credentials for an iOS app */
2381
2412
  createIosAppCredentials: IosAppCredentials;
2413
+ /** Delete a set of credentials for an iOS app */
2414
+ deleteIosAppCredentials: DeleteIosAppCredentialsResult;
2382
2415
  /** Set the App Store Connect Api Key to be used for submitting an iOS app */
2383
2416
  setAppStoreConnectApiKeyForSubmissions: IosAppCredentials;
2384
2417
  /** Set the push key to be used in an iOS app */
@@ -2389,6 +2422,9 @@ export declare type IosAppCredentialsMutationCreateIosAppCredentialsArgs = {
2389
2422
  appleAppIdentifierId: Scalars['ID'];
2390
2423
  iosAppCredentialsInput: IosAppCredentialsInput;
2391
2424
  };
2425
+ export declare type IosAppCredentialsMutationDeleteIosAppCredentialsArgs = {
2426
+ id: Scalars['ID'];
2427
+ };
2392
2428
  export declare type IosAppCredentialsMutationSetAppStoreConnectApiKeyForSubmissionsArgs = {
2393
2429
  ascApiKeyId: Scalars['ID'];
2394
2430
  id: Scalars['ID'];
@@ -2397,6 +2433,13 @@ export declare type IosAppCredentialsMutationSetPushKeyArgs = {
2397
2433
  id: Scalars['ID'];
2398
2434
  pushKeyId: Scalars['ID'];
2399
2435
  };
2436
+ export declare type IosAppCredentialsQuery = {
2437
+ __typename?: 'IosAppCredentialsQuery';
2438
+ byId: IosAppCredentials;
2439
+ };
2440
+ export declare type IosAppCredentialsQueryByIdArgs = {
2441
+ iosAppCredentialsId: Scalars['ID'];
2442
+ };
2400
2443
  /** @deprecated Use developmentClient option instead. */
2401
2444
  export declare enum IosBuildType {
2402
2445
  DevelopmentClient = "DEVELOPMENT_CLIENT",
@@ -2731,6 +2774,7 @@ export declare type PublicArtifacts = {
2731
2774
  export declare type PublishUpdateGroupInput = {
2732
2775
  awaitingCodeSigningInfo?: InputMaybe<Scalars['Boolean']>;
2733
2776
  branchId: Scalars['String'];
2777
+ gitCommitHash?: InputMaybe<Scalars['String']>;
2734
2778
  message?: InputMaybe<Scalars['String']>;
2735
2779
  runtimeVersion: Scalars['String'];
2736
2780
  updateInfoGroup: UpdateInfoGroup;
@@ -2926,6 +2970,8 @@ export declare type RootQuery = {
2926
2970
  githubApp: GitHubAppQuery;
2927
2971
  /** Top-level query object for querying Stripe Invoices. */
2928
2972
  invoice: InvoiceQuery;
2973
+ /** Top-level query object for querying IosAppCredentials. */
2974
+ iosAppCredentials: IosAppCredentialsQuery;
2929
2975
  /**
2930
2976
  * If authenticated as a typical end user, this is the appropriate top-level
2931
2977
  * query object
@@ -3211,6 +3257,18 @@ export declare enum SubmissionAndroidTrack {
3211
3257
  Internal = "INTERNAL",
3212
3258
  Production = "PRODUCTION"
3213
3259
  }
3260
+ export declare type SubmissionArchiveSourceInput = {
3261
+ /** Required if the archive source type is GCS_BUILD_APPLICATION_ARCHIVE or GCS_SUBMIT_ARCHIVE */
3262
+ bucketKey?: InputMaybe<Scalars['String']>;
3263
+ type: SubmissionArchiveSourceType;
3264
+ /** Required if the archive source type is URL */
3265
+ url?: InputMaybe<Scalars['String']>;
3266
+ };
3267
+ export declare enum SubmissionArchiveSourceType {
3268
+ GcsBuildApplicationArchive = "GCS_BUILD_APPLICATION_ARCHIVE",
3269
+ GcsSubmitArchive = "GCS_SUBMIT_ARCHIVE",
3270
+ Url = "URL"
3271
+ }
3214
3272
  export declare type SubmissionError = {
3215
3273
  __typename?: 'SubmissionError';
3216
3274
  errorCode?: Maybe<Scalars['String']>;
@@ -3287,6 +3345,7 @@ export declare type Update = ActivityTimelineProjectActivity & {
3287
3345
  branchId: Scalars['ID'];
3288
3346
  codeSigningInfo?: Maybe<CodeSigningInfo>;
3289
3347
  createdAt: Scalars['DateTime'];
3348
+ gitCommitHash?: Maybe<Scalars['String']>;
3290
3349
  group: Scalars['String'];
3291
3350
  id: Scalars['ID'];
3292
3351
  manifestFragment: Scalars['String'];
@@ -3423,8 +3482,10 @@ export declare type UploadSessionCreateUploadSessionArgs = {
3423
3482
  type: UploadSessionType;
3424
3483
  };
3425
3484
  export declare enum UploadSessionType {
3485
+ EasBuildGcsProjectSources = "EAS_BUILD_GCS_PROJECT_SOURCES",
3426
3486
  EasBuildProjectSources = "EAS_BUILD_PROJECT_SOURCES",
3427
- EasSubmitAppArchive = "EAS_SUBMIT_APP_ARCHIVE"
3487
+ EasSubmitAppArchive = "EAS_SUBMIT_APP_ARCHIVE",
3488
+ EasSubmitGcsAppArchive = "EAS_SUBMIT_GCS_APP_ARCHIVE"
3428
3489
  }
3429
3490
  export declare type UsageMetricTotal = {
3430
3491
  __typename?: 'UsageMetricTotal';
@@ -3744,6 +3805,23 @@ export declare type CreateUpdateBranchForAppMutation = {
3744
3805
  };
3745
3806
  };
3746
3807
  };
3808
+ export declare type CreateUpdateChannelOnAppMutationVariables = Exact<{
3809
+ appId: Scalars['ID'];
3810
+ name: Scalars['String'];
3811
+ branchMapping: Scalars['String'];
3812
+ }>;
3813
+ export declare type CreateUpdateChannelOnAppMutation = {
3814
+ __typename?: 'RootMutation';
3815
+ updateChannel: {
3816
+ __typename?: 'UpdateChannelMutation';
3817
+ createUpdateChannelForApp: {
3818
+ __typename?: 'UpdateChannel';
3819
+ id: string;
3820
+ name: string;
3821
+ branchMapping: string;
3822
+ };
3823
+ };
3824
+ };
3747
3825
  export declare type GetBranchInfoQueryVariables = Exact<{
3748
3826
  appId: Scalars['String'];
3749
3827
  name: Scalars['String'];
@@ -3804,23 +3882,6 @@ export declare type CancelBuildMutation = {
3804
3882
  };
3805
3883
  };
3806
3884
  };
3807
- export declare type CreateUpdateChannelOnAppMutationVariables = Exact<{
3808
- appId: Scalars['ID'];
3809
- name: Scalars['String'];
3810
- branchMapping: Scalars['String'];
3811
- }>;
3812
- export declare type CreateUpdateChannelOnAppMutation = {
3813
- __typename?: 'RootMutation';
3814
- updateChannel: {
3815
- __typename?: 'UpdateChannelMutation';
3816
- createUpdateChannelForApp: {
3817
- __typename?: 'UpdateChannel';
3818
- id: string;
3819
- name: string;
3820
- branchMapping: string;
3821
- };
3822
- };
3823
- };
3824
3885
  export declare type DeleteUpdateChannelMutationVariables = Exact<{
3825
3886
  channelId: Scalars['ID'];
3826
3887
  }>;
@@ -6628,6 +6689,7 @@ export declare type CreateAndroidBuildMutation = {
6628
6689
  appBuildVersion?: string | null;
6629
6690
  runtimeVersion?: string | null;
6630
6691
  gitCommitHash?: string | null;
6692
+ gitCommitMessage?: string | null;
6631
6693
  initialQueuePosition?: number | null;
6632
6694
  queuePosition?: number | null;
6633
6695
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -6644,6 +6706,7 @@ export declare type CreateAndroidBuildMutation = {
6644
6706
  __typename?: 'BuildArtifacts';
6645
6707
  buildUrl?: string | null;
6646
6708
  xcodeBuildLogsUrl?: string | null;
6709
+ applicationArchiveUrl?: string | null;
6647
6710
  } | null;
6648
6711
  initiatingActor?: {
6649
6712
  __typename: 'Robot';
@@ -6706,6 +6769,7 @@ export declare type CreateIosBuildMutation = {
6706
6769
  appBuildVersion?: string | null;
6707
6770
  runtimeVersion?: string | null;
6708
6771
  gitCommitHash?: string | null;
6772
+ gitCommitMessage?: string | null;
6709
6773
  initialQueuePosition?: number | null;
6710
6774
  queuePosition?: number | null;
6711
6775
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -6722,6 +6786,7 @@ export declare type CreateIosBuildMutation = {
6722
6786
  __typename?: 'BuildArtifacts';
6723
6787
  buildUrl?: string | null;
6724
6788
  xcodeBuildLogsUrl?: string | null;
6789
+ applicationArchiveUrl?: string | null;
6725
6790
  } | null;
6726
6791
  initiatingActor?: {
6727
6792
  __typename: 'Robot';
@@ -7242,6 +7307,7 @@ export declare type BuildsByIdQuery = {
7242
7307
  appBuildVersion?: string | null;
7243
7308
  runtimeVersion?: string | null;
7244
7309
  gitCommitHash?: string | null;
7310
+ gitCommitMessage?: string | null;
7245
7311
  initialQueuePosition?: number | null;
7246
7312
  queuePosition?: number | null;
7247
7313
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -7258,6 +7324,7 @@ export declare type BuildsByIdQuery = {
7258
7324
  __typename?: 'BuildArtifacts';
7259
7325
  buildUrl?: string | null;
7260
7326
  xcodeBuildLogsUrl?: string | null;
7327
+ applicationArchiveUrl?: string | null;
7261
7328
  } | null;
7262
7329
  initiatingActor?: {
7263
7330
  __typename: 'Robot';
@@ -7309,6 +7376,7 @@ export declare type BuildsWithSubmissionsByIdQuery = {
7309
7376
  appBuildVersion?: string | null;
7310
7377
  runtimeVersion?: string | null;
7311
7378
  gitCommitHash?: string | null;
7379
+ gitCommitMessage?: string | null;
7312
7380
  initialQueuePosition?: number | null;
7313
7381
  queuePosition?: number | null;
7314
7382
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -7359,6 +7427,7 @@ export declare type BuildsWithSubmissionsByIdQuery = {
7359
7427
  __typename?: 'BuildArtifacts';
7360
7428
  buildUrl?: string | null;
7361
7429
  xcodeBuildLogsUrl?: string | null;
7430
+ applicationArchiveUrl?: string | null;
7362
7431
  } | null;
7363
7432
  initiatingActor?: {
7364
7433
  __typename: 'Robot';
@@ -7416,6 +7485,7 @@ export declare type ViewBuildsOnAppQuery = {
7416
7485
  appBuildVersion?: string | null;
7417
7486
  runtimeVersion?: string | null;
7418
7487
  gitCommitHash?: string | null;
7488
+ gitCommitMessage?: string | null;
7419
7489
  initialQueuePosition?: number | null;
7420
7490
  queuePosition?: number | null;
7421
7491
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -7432,6 +7502,7 @@ export declare type ViewBuildsOnAppQuery = {
7432
7502
  __typename?: 'BuildArtifacts';
7433
7503
  buildUrl?: string | null;
7434
7504
  xcodeBuildLogsUrl?: string | null;
7505
+ applicationArchiveUrl?: string | null;
7435
7506
  } | null;
7436
7507
  initiatingActor?: {
7437
7508
  __typename: 'Robot';
@@ -7862,6 +7933,7 @@ export declare type CurrentUserQuery = {
7862
7933
  __typename: 'Robot';
7863
7934
  firstName?: string | null;
7864
7935
  id: string;
7936
+ featureGates: any;
7865
7937
  isExpoAdmin: boolean;
7866
7938
  accounts: Array<{
7867
7939
  __typename?: 'Account';
@@ -7883,6 +7955,7 @@ export declare type CurrentUserQuery = {
7883
7955
  __typename: 'User';
7884
7956
  username: string;
7885
7957
  id: string;
7958
+ featureGates: any;
7886
7959
  isExpoAdmin: boolean;
7887
7960
  primaryAccount: {
7888
7961
  __typename?: 'Account';
@@ -8010,6 +8083,7 @@ export declare type BuildFragment = {
8010
8083
  appBuildVersion?: string | null;
8011
8084
  runtimeVersion?: string | null;
8012
8085
  gitCommitHash?: string | null;
8086
+ gitCommitMessage?: string | null;
8013
8087
  initialQueuePosition?: number | null;
8014
8088
  queuePosition?: number | null;
8015
8089
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -8026,6 +8100,7 @@ export declare type BuildFragment = {
8026
8100
  __typename?: 'BuildArtifacts';
8027
8101
  buildUrl?: string | null;
8028
8102
  xcodeBuildLogsUrl?: string | null;
8103
+ applicationArchiveUrl?: string | null;
8029
8104
  } | null;
8030
8105
  initiatingActor?: {
8031
8106
  __typename: 'Robot';
@@ -8068,6 +8143,7 @@ export declare type BuildWithSubmissionsFragment = {
8068
8143
  appBuildVersion?: string | null;
8069
8144
  runtimeVersion?: string | null;
8070
8145
  gitCommitHash?: string | null;
8146
+ gitCommitMessage?: string | null;
8071
8147
  initialQueuePosition?: number | null;
8072
8148
  queuePosition?: number | null;
8073
8149
  estimatedWaitTimeLeftSeconds?: number | null;
@@ -8118,6 +8194,7 @@ export declare type BuildWithSubmissionsFragment = {
8118
8194
  __typename?: 'BuildArtifacts';
8119
8195
  buildUrl?: string | null;
8120
8196
  xcodeBuildLogsUrl?: string | null;
8197
+ applicationArchiveUrl?: string | null;
8121
8198
  } | null;
8122
8199
  initiatingActor?: {
8123
8200
  __typename: 'Robot';
@@ -6,8 +6,8 @@
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.UploadSessionType = exports.SubmissionStatus = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubAppInstallationStatus = exports.Feature = exports.EnvironmentSecretType = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
10
- exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = void 0;
9
+ exports.SubmissionStatus = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OfferType = exports.MailchimpTag = exports.MailchimpAudience = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.GitHubAppInstallationStatus = exports.Feature = exports.EnvironmentSecretType = exports.EasServiceMetric = exports.EasBuildDeprecationInfoType = exports.DistributionType = exports.CacheControlScope = exports.BuildWorkflow = exports.BuildStatus = exports.BuildResourceClass = exports.BuildPriority = exports.BuildJobStatus = exports.BuildJobLogsFormat = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.AuthProtocolType = exports.AssetMetadataStatus = exports.AppsFilter = exports.AppleDeviceClass = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = void 0;
10
+ exports.WebhookType = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = void 0;
11
11
  var ActivityTimelineProjectActivityType;
12
12
  (function (ActivityTimelineProjectActivityType) {
13
13
  ActivityTimelineProjectActivityType["Build"] = "BUILD";
@@ -340,6 +340,12 @@ var SubmissionAndroidTrack;
340
340
  SubmissionAndroidTrack["Internal"] = "INTERNAL";
341
341
  SubmissionAndroidTrack["Production"] = "PRODUCTION";
342
342
  })(SubmissionAndroidTrack = exports.SubmissionAndroidTrack || (exports.SubmissionAndroidTrack = {}));
343
+ var SubmissionArchiveSourceType;
344
+ (function (SubmissionArchiveSourceType) {
345
+ SubmissionArchiveSourceType["GcsBuildApplicationArchive"] = "GCS_BUILD_APPLICATION_ARCHIVE";
346
+ SubmissionArchiveSourceType["GcsSubmitArchive"] = "GCS_SUBMIT_ARCHIVE";
347
+ SubmissionArchiveSourceType["Url"] = "URL";
348
+ })(SubmissionArchiveSourceType = exports.SubmissionArchiveSourceType || (exports.SubmissionArchiveSourceType = {}));
343
349
  var SubmissionStatus;
344
350
  (function (SubmissionStatus) {
345
351
  SubmissionStatus["AwaitingBuild"] = "AWAITING_BUILD";
@@ -351,8 +357,10 @@ var SubmissionStatus;
351
357
  })(SubmissionStatus = exports.SubmissionStatus || (exports.SubmissionStatus = {}));
352
358
  var UploadSessionType;
353
359
  (function (UploadSessionType) {
360
+ UploadSessionType["EasBuildGcsProjectSources"] = "EAS_BUILD_GCS_PROJECT_SOURCES";
354
361
  UploadSessionType["EasBuildProjectSources"] = "EAS_BUILD_PROJECT_SOURCES";
355
362
  UploadSessionType["EasSubmitAppArchive"] = "EAS_SUBMIT_APP_ARCHIVE";
363
+ UploadSessionType["EasSubmitGcsAppArchive"] = "EAS_SUBMIT_GCS_APP_ARCHIVE";
356
364
  })(UploadSessionType = exports.UploadSessionType || (exports.UploadSessionType = {}));
357
365
  var UsageMetricType;
358
366
  (function (UsageMetricType) {
@@ -16,7 +16,7 @@ exports.KeystoreGenerationUrlMutation = {
16
16
  }
17
17
  }
18
18
  }
19
- `)
19
+ `, {})
20
20
  .toPromise());
21
21
  return data.keystoreGenerationUrl.createKeystoreGenerationUrl.url;
22
22
  },
@@ -28,12 +28,12 @@ exports.UserQuery = {
28
28
  id
29
29
  ...AccountFragment
30
30
  }
31
+ featureGates
31
32
  isExpoAdmin
32
33
  }
33
34
  }
34
35
  ${(0, graphql_1.print)(Account_1.AccountFragmentNode)}
35
- `,
36
- /* variables */ undefined, {
36
+ `, {}, {
37
37
  additionalTypenames: ['User'],
38
38
  })
39
39
  .toPromise());
@@ -18,6 +18,7 @@ exports.BuildFragmentNode = (0, graphql_tag_1.default) `
18
18
  artifacts {
19
19
  buildUrl
20
20
  xcodeBuildLogsUrl
21
+ applicationArchiveUrl
21
22
  }
22
23
  initiatingActor {
23
24
  __typename
@@ -46,6 +47,7 @@ exports.BuildFragmentNode = (0, graphql_tag_1.default) `
46
47
  appBuildVersion
47
48
  runtimeVersion
48
49
  gitCommitHash
50
+ gitCommitMessage
49
51
  initialQueuePosition
50
52
  queuePosition
51
53
  estimatedWaitTimeLeftSeconds
package/build/log.d.ts CHANGED
@@ -8,6 +8,7 @@ export default class Log {
8
8
  static debug(...args: any[]): void;
9
9
  static gray(...args: any[]): void;
10
10
  static warnDeprecatedFlag(flag: string, message: string): void;
11
+ static fail(message: string): void;
11
12
  static succeed(message: string): void;
12
13
  static withTick(...args: any[]): void;
13
14
  private static consoleLog;
package/build/log.js CHANGED
@@ -36,6 +36,9 @@ class Log {
36
36
  static warnDeprecatedFlag(flag, message) {
37
37
  Log.warn(`› ${chalk_1.default.bold('--' + flag)} flag is deprecated. ${message}`);
38
38
  }
39
+ static fail(message) {
40
+ Log.log(`${chalk_1.default.red(log_symbols_1.default.error)} ${message}`);
41
+ }
39
42
  static succeed(message) {
40
43
  Log.log(`${chalk_1.default.green(log_symbols_1.default.success)} ${message}`);
41
44
  }
@@ -0,0 +1 @@
1
+ export declare const appleRules: import("../../config/issue").IssueRule<import("../../config/schema").MetadataConfig>[];
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appleRules = void 0;
4
+ const infoKeywordLength_1 = require("./infoKeywordLength");
5
+ const infoRestrictedWords_1 = require("./infoRestrictedWords");
6
+ exports.appleRules = [infoKeywordLength_1.infoKeywordLength, infoRestrictedWords_1.infoRestrictedWords];
@@ -0,0 +1,6 @@
1
+ import { IssueRule } from '../../config/issue';
2
+ /**
3
+ * Keywords are limited to 100 characters when converted to a comma separated string.
4
+ * @see https://developer.apple.com/app-store/search/
5
+ */
6
+ export declare const infoKeywordLength: IssueRule;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.infoKeywordLength = void 0;
4
+ const filter_1 = require("../../../utils/expodash/filter");
5
+ const KEYWORD_CHARACTER_LIMIT = 100;
6
+ /**
7
+ * Keywords are limited to 100 characters when converted to a comma separated string.
8
+ * @see https://developer.apple.com/app-store/search/
9
+ */
10
+ exports.infoKeywordLength = {
11
+ id: 'apple.info.keyword.length',
12
+ severity: 2,
13
+ validate(config) {
14
+ var _a;
15
+ if (!((_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) || Object.keys(config.apple.info).length === 0) {
16
+ return null;
17
+ }
18
+ return Object.keys(config.apple.info)
19
+ .map(locale => {
20
+ var _a, _b, _c;
21
+ const keywords = (_c = (_b = (_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b[locale].keywords) !== null && _c !== void 0 ? _c : [];
22
+ const length = keywords.join(',').length;
23
+ if (length > KEYWORD_CHARACTER_LIMIT) {
24
+ return {
25
+ id: this.id,
26
+ severity: this.severity,
27
+ path: ['apple', 'info', locale, 'keywords'],
28
+ message: `Keywords are limited to ${KEYWORD_CHARACTER_LIMIT} characters, but found ${length}.`,
29
+ };
30
+ }
31
+ return null;
32
+ })
33
+ .filter(filter_1.truthy);
34
+ },
35
+ };
@@ -0,0 +1,6 @@
1
+ import { IssueRule } from '../../config/issue';
2
+ /**
3
+ * Apple restricts certain words from being used in name, description, or keywords.
4
+ * Using these words likely result in a rejection.
5
+ */
6
+ export declare const infoRestrictedWords: IssueRule;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.infoRestrictedWords = void 0;
4
+ const filter_1 = require("../../../utils/expodash/filter");
5
+ const RESTRICTED_PROPERTIES = ['title', 'subtitle', 'description', 'keywords'];
6
+ const RESTRICTED_WORDS = {
7
+ beta: 'Apple restricts the word "beta" and synonyms implying incomplete functionality.',
8
+ };
9
+ /**
10
+ * Apple restricts certain words from being used in name, description, or keywords.
11
+ * Using these words likely result in a rejection.
12
+ */
13
+ exports.infoRestrictedWords = {
14
+ id: 'apple.info.restrictedWords',
15
+ severity: 1,
16
+ validate(config) {
17
+ var _a;
18
+ if (!((_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) || Object.keys(config.apple.info).length === 0) {
19
+ return null;
20
+ }
21
+ return Object.keys(config.apple.info)
22
+ .map(locale => RESTRICTED_PROPERTIES.map(property => {
23
+ var _a, _b;
24
+ const value = getStringValue((_b = (_a = config.apple) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b[locale][property]);
25
+ const issueDescription = getDescriptionForFirstMatch(value);
26
+ if (issueDescription) {
27
+ return {
28
+ id: this.id,
29
+ severity: this.severity,
30
+ path: ['apple', 'info', locale, property],
31
+ message: issueDescription,
32
+ };
33
+ }
34
+ return null;
35
+ }).filter(filter_1.truthy))
36
+ .filter(filter_1.truthy)
37
+ .flat();
38
+ },
39
+ };
40
+ function getDescriptionForFirstMatch(value) {
41
+ const sanitized = value.toLowerCase();
42
+ for (const [word, description] of Object.entries(RESTRICTED_WORDS)) {
43
+ if (sanitized.includes(word)) {
44
+ return description;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ function getStringValue(value) {
50
+ if (!value) {
51
+ return '';
52
+ }
53
+ if (Array.isArray(value)) {
54
+ return value.join(' ');
55
+ }
56
+ return value;
57
+ }
@@ -1,4 +1,3 @@
1
- import { MetadataContext } from '../../context';
2
1
  import { AppleTask } from '../task';
3
2
  import { AppVersionOptions } from './app-version';
4
3
  declare type AppleTaskOptions = {
@@ -7,5 +6,5 @@ declare type AppleTaskOptions = {
7
6
  /**
8
7
  * List of all eligible tasks to sync local store configuration to the App store.
9
8
  */
10
- export declare function createAppleTasks(_ctx: MetadataContext, { version }?: AppleTaskOptions): AppleTask[];
9
+ export declare function createAppleTasks({ version }?: AppleTaskOptions): AppleTask[];
11
10
  export {};
@@ -8,7 +8,7 @@ const app_version_1 = require("./app-version");
8
8
  /**
9
9
  * List of all eligible tasks to sync local store configuration to the App store.
10
10
  */
11
- function createAppleTasks(_ctx, { version } = {}) {
11
+ function createAppleTasks({ version } = {}) {
12
12
  return [
13
13
  new app_version_1.AppVersionTask({ version }),
14
14
  new app_info_1.AppInfoTask(),