eas-cli 18.1.0 → 18.3.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 (181) hide show
  1. package/README.md +521 -506
  2. package/bin/dev +6 -13
  3. package/bin/run +4 -4
  4. package/build/commandUtils/flags.d.ts +14 -7
  5. package/build/commandUtils/flags.js +13 -8
  6. package/build/commandUtils/pagination.d.ts +4 -4
  7. package/build/commandUtils/pagination.js +4 -2
  8. package/build/commands/account/usage.d.ts +2 -3
  9. package/build/commands/account/usage.js +5 -5
  10. package/build/commands/account/view.js +6 -2
  11. package/build/commands/analytics.d.ts +2 -3
  12. package/build/commands/analytics.js +6 -1
  13. package/build/commands/branch/create.d.ts +2 -4
  14. package/build/commands/branch/create.js +10 -6
  15. package/build/commands/branch/delete.d.ts +2 -4
  16. package/build/commands/branch/delete.js +6 -6
  17. package/build/commands/branch/list.d.ts +1 -1
  18. package/build/commands/branch/list.js +2 -1
  19. package/build/commands/branch/rename.d.ts +2 -2
  20. package/build/commands/branch/rename.js +2 -1
  21. package/build/commands/branch/view.d.ts +3 -5
  22. package/build/commands/branch/view.js +6 -6
  23. package/build/commands/build/cancel.d.ts +4 -4
  24. package/build/commands/build/cancel.js +6 -4
  25. package/build/commands/build/configure.d.ts +1 -1
  26. package/build/commands/build/configure.js +2 -2
  27. package/build/commands/build/delete.d.ts +4 -4
  28. package/build/commands/build/delete.js +6 -4
  29. package/build/commands/build/dev.d.ts +2 -2
  30. package/build/commands/build/dev.js +2 -2
  31. package/build/commands/build/download.d.ts +2 -2
  32. package/build/commands/build/download.js +4 -3
  33. package/build/commands/build/index.d.ts +8 -8
  34. package/build/commands/build/index.js +8 -11
  35. package/build/commands/build/inspect.d.ts +4 -4
  36. package/build/commands/build/inspect.js +4 -4
  37. package/build/commands/build/internal.d.ts +3 -3
  38. package/build/commands/build/internal.js +2 -2
  39. package/build/commands/build/list.d.ts +13 -13
  40. package/build/commands/build/list.js +8 -7
  41. package/build/commands/build/resign.d.ts +5 -5
  42. package/build/commands/build/resign.js +4 -4
  43. package/build/commands/build/run.d.ts +6 -6
  44. package/build/commands/build/run.js +2 -2
  45. package/build/commands/build/version/get.d.ts +2 -2
  46. package/build/commands/build/version/get.js +8 -7
  47. package/build/commands/build/version/set.d.ts +2 -2
  48. package/build/commands/build/version/set.js +2 -2
  49. package/build/commands/build/version/sync.d.ts +2 -2
  50. package/build/commands/build/version/sync.js +2 -2
  51. package/build/commands/build/view.d.ts +2 -2
  52. package/build/commands/build/view.js +4 -1
  53. package/build/commands/channel/create.d.ts +2 -4
  54. package/build/commands/channel/create.js +10 -6
  55. package/build/commands/channel/delete.d.ts +2 -4
  56. package/build/commands/channel/delete.js +7 -6
  57. package/build/commands/channel/edit.d.ts +3 -5
  58. package/build/commands/channel/edit.js +6 -6
  59. package/build/commands/channel/list.d.ts +1 -1
  60. package/build/commands/channel/list.js +1 -1
  61. package/build/commands/channel/pause.d.ts +3 -5
  62. package/build/commands/channel/pause.js +6 -6
  63. package/build/commands/channel/resume.d.ts +3 -5
  64. package/build/commands/channel/resume.js +6 -6
  65. package/build/commands/channel/rollout.d.ts +8 -9
  66. package/build/commands/channel/rollout.js +9 -11
  67. package/build/commands/channel/view.d.ts +3 -5
  68. package/build/commands/channel/view.js +6 -6
  69. package/build/commands/config.d.ts +2 -2
  70. package/build/commands/config.js +6 -5
  71. package/build/commands/credentials/configure-build.d.ts +2 -2
  72. package/build/commands/credentials/configure-build.js +2 -2
  73. package/build/commands/credentials/index.d.ts +1 -1
  74. package/build/commands/credentials/index.js +1 -1
  75. package/build/commands/deploy/alias/delete.d.ts +2 -2
  76. package/build/commands/deploy/alias/delete.js +7 -3
  77. package/build/commands/deploy/alias/index.d.ts +2 -2
  78. package/build/commands/deploy/alias/index.js +3 -2
  79. package/build/commands/deploy/delete.d.ts +2 -2
  80. package/build/commands/deploy/delete.js +7 -3
  81. package/build/commands/deploy/index.d.ts +5 -4
  82. package/build/commands/deploy/index.js +12 -3
  83. package/build/commands/device/delete.d.ts +2 -2
  84. package/build/commands/device/list.d.ts +2 -2
  85. package/build/commands/device/rename.d.ts +3 -3
  86. package/build/commands/device/view.d.ts +2 -2
  87. package/build/commands/device/view.js +4 -1
  88. package/build/commands/env/create.d.ts +8 -11
  89. package/build/commands/env/create.js +6 -7
  90. package/build/commands/env/delete.d.ts +5 -8
  91. package/build/commands/env/delete.js +4 -5
  92. package/build/commands/env/exec.d.ts +3 -4
  93. package/build/commands/env/exec.js +7 -8
  94. package/build/commands/env/get.d.ts +6 -9
  95. package/build/commands/env/get.js +4 -5
  96. package/build/commands/env/list.d.ts +5 -8
  97. package/build/commands/env/list.js +4 -5
  98. package/build/commands/env/pull.d.ts +4 -6
  99. package/build/commands/env/pull.js +4 -5
  100. package/build/commands/env/push.d.ts +7 -7
  101. package/build/commands/env/push.js +4 -5
  102. package/build/commands/env/update.d.ts +10 -13
  103. package/build/commands/env/update.js +6 -7
  104. package/build/commands/fingerprint/compare.d.ts +6 -7
  105. package/build/commands/fingerprint/compare.js +10 -11
  106. package/build/commands/fingerprint/generate.d.ts +3 -3
  107. package/build/commands/fingerprint/generate.js +4 -3
  108. package/build/commands/go.d.ts +2 -2
  109. package/build/commands/metadata/lint.d.ts +1 -1
  110. package/build/commands/metadata/pull.d.ts +1 -1
  111. package/build/commands/metadata/push.d.ts +1 -1
  112. package/build/commands/project/init.d.ts +1 -1
  113. package/build/commands/project/new.d.ts +3 -5
  114. package/build/commands/project/new.js +6 -7
  115. package/build/commands/project/onboarding.d.ts +2 -2
  116. package/build/commands/project/onboarding.js +4 -1
  117. package/build/commands/secret/create.d.ts +4 -4
  118. package/build/commands/secret/create.js +7 -6
  119. package/build/commands/secret/delete.d.ts +1 -1
  120. package/build/commands/secret/push.d.ts +2 -2
  121. package/build/commands/secret/push.js +2 -2
  122. package/build/commands/submit/internal.d.ts +3 -3
  123. package/build/commands/submit/internal.js +2 -2
  124. package/build/commands/submit.d.ts +7 -7
  125. package/build/commands/submit.js +2 -2
  126. package/build/commands/update/configure.d.ts +2 -2
  127. package/build/commands/update/configure.js +2 -2
  128. package/build/commands/update/delete.d.ts +2 -4
  129. package/build/commands/update/delete.js +7 -6
  130. package/build/commands/update/edit.d.ts +4 -5
  131. package/build/commands/update/edit.js +7 -6
  132. package/build/commands/update/index.d.ts +9 -9
  133. package/build/commands/update/index.js +29 -13
  134. package/build/commands/update/list.d.ts +4 -4
  135. package/build/commands/update/list.js +4 -3
  136. package/build/commands/update/republish.d.ts +9 -9
  137. package/build/commands/update/republish.js +4 -4
  138. package/build/commands/update/revert-update-rollout.d.ts +5 -5
  139. package/build/commands/update/revert-update-rollout.js +2 -2
  140. package/build/commands/update/roll-back-to-embedded.d.ts +6 -6
  141. package/build/commands/update/roll-back-to-embedded.js +4 -4
  142. package/build/commands/update/rollback.d.ts +1 -1
  143. package/build/commands/update/view.d.ts +2 -4
  144. package/build/commands/update/view.js +5 -5
  145. package/build/commands/upload.d.ts +3 -3
  146. package/build/commands/upload.js +4 -3
  147. package/build/commands/webhook/create.d.ts +3 -3
  148. package/build/commands/webhook/create.js +2 -2
  149. package/build/commands/webhook/delete.d.ts +2 -4
  150. package/build/commands/webhook/delete.js +8 -6
  151. package/build/commands/webhook/list.d.ts +1 -1
  152. package/build/commands/webhook/list.js +2 -2
  153. package/build/commands/webhook/update.d.ts +4 -4
  154. package/build/commands/webhook/update.js +2 -2
  155. package/build/commands/webhook/view.d.ts +2 -4
  156. package/build/commands/webhook/view.js +5 -5
  157. package/build/commands/workflow/create.d.ts +2 -4
  158. package/build/commands/workflow/create.js +4 -5
  159. package/build/commands/workflow/logs.d.ts +2 -3
  160. package/build/commands/workflow/logs.js +5 -3
  161. package/build/commands/workflow/run.d.ts +4 -5
  162. package/build/commands/workflow/run.js +6 -1
  163. package/build/commands/workflow/runs.d.ts +2 -2
  164. package/build/commands/workflow/runs.js +2 -2
  165. package/build/commands/workflow/status.d.ts +2 -3
  166. package/build/commands/workflow/status.js +7 -5
  167. package/build/commands/workflow/validate.d.ts +2 -4
  168. package/build/commands/workflow/validate.js +5 -5
  169. package/build/commands/workflow/view.d.ts +2 -3
  170. package/build/commands/workflow/view.js +6 -1
  171. package/build/credentials/android/actions/BuildCredentialsUtils.js +0 -1
  172. package/build/credentials/android/actions/CreateKeystore.js +9 -10
  173. package/build/credentials/android/actions/SetUpBuildCredentials.js +0 -4
  174. package/build/graphql/generated.d.ts +1 -0
  175. package/build/graphql/queries/UserQuery.js +3 -0
  176. package/build/update/utils.d.ts +2 -2
  177. package/build/update/utils.js +21 -10
  178. package/build/worker/assets.d.ts +3 -1
  179. package/build/worker/assets.js +4 -1
  180. package/oclif.manifest.json +8084 -3178
  181. package/package.json +7 -7
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
4
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
5
6
  const formatBuild_1 = require("../../build/utils/formatBuild");
6
7
  const url_1 = require("../../build/utils/url");
@@ -33,7 +34,11 @@ class WorkflowView extends EasCommand_1.default {
33
34
  ...flags_1.EasJsonOnlyFlag,
34
35
  ...flags_1.EASNonInteractiveFlag,
35
36
  };
36
- static args = [{ name: 'id', description: 'ID of the workflow run to view' }];
37
+ static args = {
38
+ id: core_1.Args.string({
39
+ description: 'ID of the workflow run to view',
40
+ }),
41
+ };
37
42
  static contextDefinition = {
38
43
  ...this.ContextOptions.ProjectId,
39
44
  ...this.ContextOptions.LoggedIn,
@@ -75,7 +75,6 @@ async function getAppLookupParamsFromContextAsync(ctx, gradleContext) {
75
75
  return { account, projectName, androidApplicationIdentifier };
76
76
  }
77
77
  async function createOrUpdateDefaultAndroidAppBuildCredentialsAsync(ctx, appLookupParams, { androidKeystoreId, }) {
78
- (0, assert_1.default)(!ctx.nonInteractive, 'createOrUpdateDefaultAndroidAppBuildCredentialsAsync must be run in interactive mode');
79
78
  const existingDefaultBuildCredentials = await ctx.android.getDefaultAndroidAppBuildCredentialsAsync(ctx.graphqlClient, appLookupParams);
80
79
  if (existingDefaultBuildCredentials) {
81
80
  return await ctx.android.updateAndroidAppBuildCredentialsAsync(ctx.graphqlClient, existingDefaultBuildCredentials, { androidKeystoreId });
@@ -13,21 +13,20 @@ class CreateKeystore {
13
13
  this.account = account;
14
14
  }
15
15
  async runAsync(ctx) {
16
- if (ctx.nonInteractive) {
17
- throw new Error(`New keystore cannot be created in non-interactive mode.`);
18
- }
19
16
  const projectId = await ctx.getProjectIdAsync();
20
- const keystore = await this.provideOrGenerateAsync(ctx.graphqlClient, ctx.analytics, projectId);
17
+ const keystore = await this.provideOrGenerateAsync(ctx.graphqlClient, ctx.analytics, projectId, ctx.nonInteractive);
21
18
  const keystoreFragment = await ctx.android.createKeystoreAsync(ctx.graphqlClient, this.account, keystore);
22
19
  log_1.default.succeed('Created keystore');
23
20
  return keystoreFragment;
24
21
  }
25
- async provideOrGenerateAsync(graphqlClient, analytics, projectId) {
26
- const providedKeystore = await (0, promptForCredentials_1.askForUserProvidedAsync)(credentials_1.keystoreSchema);
27
- if (providedKeystore) {
28
- const providedKeystoreWithType = (0, keystoreNew_1.getKeystoreWithType)(providedKeystore);
29
- (0, keystoreNew_1.validateKeystore)(providedKeystoreWithType);
30
- return providedKeystoreWithType;
22
+ async provideOrGenerateAsync(graphqlClient, analytics, projectId, nonInteractive = false) {
23
+ if (!nonInteractive) {
24
+ const providedKeystore = await (0, promptForCredentials_1.askForUserProvidedAsync)(credentials_1.keystoreSchema);
25
+ if (providedKeystore) {
26
+ const providedKeystoreWithType = (0, keystoreNew_1.getKeystoreWithType)(providedKeystore);
27
+ (0, keystoreNew_1.validateKeystore)(providedKeystoreWithType);
28
+ return providedKeystoreWithType;
29
+ }
31
30
  }
32
31
  return await (0, keystore_1.generateRandomKeystoreAsync)(graphqlClient, analytics, projectId);
33
32
  }
@@ -7,7 +7,6 @@ const BuildCredentialsUtils_1 = require("./BuildCredentialsUtils");
7
7
  const CreateKeystore_1 = require("./CreateKeystore");
8
8
  const log_1 = tslib_1.__importDefault(require("../../../log"));
9
9
  const ora_1 = require("../../../ora");
10
- const errors_1 = require("../../errors");
11
10
  /**
12
11
  * Sets up Build Credentials for Android
13
12
  * @name: sets up build credentials for the specified configuration. If no name is specified, the default configuration is setup
@@ -33,9 +32,6 @@ class SetUpBuildCredentials {
33
32
  if (alreadySetupBuildCredentials) {
34
33
  return alreadySetupBuildCredentials;
35
34
  }
36
- if (ctx.nonInteractive) {
37
- throw new errors_1.MissingCredentialsNonInteractiveError('Generating a new Keystore is not supported in --non-interactive mode');
38
- }
39
35
  const keystore = await new CreateKeystore_1.CreateKeystore(app.account).runAsync(ctx);
40
36
  return await this.assignBuildCredentialsAsync({ ctx, app, name: maybeName, keystore });
41
37
  }
@@ -15915,6 +15915,7 @@ export type CurrentUserQuery = {
15915
15915
  }>;
15916
15916
  } | {
15917
15917
  __typename: 'User';
15918
+ email: string;
15918
15919
  username: string;
15919
15920
  id: string;
15920
15921
  featureGates: any;
@@ -14,6 +14,9 @@ exports.UserQuery = {
14
14
  meActor {
15
15
  __typename
16
16
  id
17
+ ... on User {
18
+ email
19
+ }
17
20
  ... on UserActor {
18
21
  username
19
22
  primaryAccount {
@@ -58,7 +58,7 @@ export declare function isBundleDiffingEnabled(exp: ExpoConfig): boolean;
58
58
  export declare function prewarmDiffingAsync(graphqlClient: ExpoGraphqlClient, appId: string, newUpdates: UpdatePublishMutation['updateBranch']['publishUpdateGroups']): Promise<void>;
59
59
  export type UpdatePublishPlatform = 'ios' | 'android';
60
60
  export declare const updatePublishPlatformToAppPlatform: Record<UpdatePublishPlatform, AppPlatform>;
61
- export declare function assertEnvironmentFlagForSdk55OrGreater({ sdkVersion, environment, }: {
61
+ export declare function environmentFlagNeededForSdk550OrGreater({ sdkVersion, environment, }: {
62
62
  sdkVersion: string | undefined;
63
63
  environment: string | undefined;
64
- }): void;
64
+ }): boolean;
@@ -15,9 +15,8 @@ exports.getUpdateGroupDescriptionsWithBranch = getUpdateGroupDescriptionsWithBra
15
15
  exports.getBranchDescription = getBranchDescription;
16
16
  exports.isBundleDiffingEnabled = isBundleDiffingEnabled;
17
17
  exports.prewarmDiffingAsync = prewarmDiffingAsync;
18
- exports.assertEnvironmentFlagForSdk55OrGreater = assertEnvironmentFlagForSdk55OrGreater;
18
+ exports.environmentFlagNeededForSdk550OrGreater = environmentFlagNeededForSdk550OrGreater;
19
19
  const tslib_1 = require("tslib");
20
- const core_1 = require("@oclif/core");
21
20
  const timeago_js_1 = require("@expo/timeago.js");
22
21
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
23
22
  const dateformat_1 = tslib_1.__importDefault(require("dateformat"));
@@ -30,6 +29,7 @@ const platform_1 = require("../platform");
30
29
  const User_1 = require("../user/User");
31
30
  const groupBy_1 = tslib_1.__importDefault(require("../utils/expodash/groupBy"));
32
31
  const formatFields_1 = tslib_1.__importDefault(require("../utils/formatFields"));
32
+ const getenv_1 = require("getenv");
33
33
  exports.UPDATE_COLUMNS = [
34
34
  'Update message',
35
35
  'Update runtime version',
@@ -43,7 +43,10 @@ function formatUpdateGroup(update) {
43
43
  { label: 'Runtime Version', value: update.runtimeVersion },
44
44
  { label: 'Message', value: update.message },
45
45
  { label: 'Code Signing Key', value: update.codeSigningKey ?? 'N/A' },
46
- { label: 'Is Roll Back to Embedded', value: update.isRollBackToEmbedded ? 'Yes' : 'No' },
46
+ {
47
+ label: 'Is Roll Back to Embedded',
48
+ value: update.isRollBackToEmbedded ? 'Yes' : 'No',
49
+ },
47
50
  {
48
51
  label: 'Rollout Percentage',
49
52
  value: update.rolloutPercentage !== undefined ? `${update.rolloutPercentage}%` : 'N/A',
@@ -243,13 +246,21 @@ exports.updatePublishPlatformToAppPlatform = {
243
246
  android: generated_1.AppPlatform.Android,
244
247
  ios: generated_1.AppPlatform.Ios,
245
248
  };
246
- function assertEnvironmentFlagForSdk55OrGreater({ sdkVersion, environment, }) {
247
- if (process.env.EAS_BUILD) {
248
- return;
249
+ const environmentFlagOverride = 'EAS_UPDATE_SKIP_ENVIRONMENT_CHECK';
250
+ const ciEnvironmentFlags = ['EAS_BUILD', 'CI'];
251
+ function environmentFlagNeededForSdk550OrGreater({ sdkVersion, environment, }) {
252
+ // Skip check if we are in a CI environment
253
+ for (let flag of ciEnvironmentFlags) {
254
+ if (process.env[flag]) {
255
+ return false;
256
+ }
249
257
  }
250
- if (sdkVersion && semver_1.default.gte(sdkVersion, '55.0.0') && !environment) {
251
- core_1.Errors.error('--environment flag is required for projects using Expo SDK 55 or greater', {
252
- exit: 1,
253
- });
258
+ // Skip check if the env override is set
259
+ if ((0, getenv_1.boolish)(environmentFlagOverride, false)) {
260
+ return false;
261
+ }
262
+ if (sdkVersion === undefined || semver_1.default.lt(sdkVersion, '55.0.0')) {
263
+ return false;
254
264
  }
265
+ return environment === undefined;
255
266
  }
@@ -44,7 +44,9 @@ interface WorkerFileEntry {
44
44
  data: Buffer | string;
45
45
  }
46
46
  /** Reads worker files while normalizing sourcemaps and providing normalized paths */
47
- export declare function listWorkerFilesAsync(workerPath: string): AsyncGenerator<WorkerFileEntry>;
47
+ export declare function listWorkerFilesAsync(workerPath: string, options?: {
48
+ skipSourceMaps?: boolean;
49
+ }): AsyncGenerator<WorkerFileEntry>;
48
50
  /** Entry of a normalized (gzip-safe) path and file data */
49
51
  export type FileEntry = readonly [normalizedPath: string, data: Buffer | string];
50
52
  /** Packs file entries into a tar.gz file (path to tgz returned) */
@@ -165,8 +165,11 @@ async function createManifestAsync(params, graphqlClient) {
165
165
  return { conflictingVariableNames, manifest };
166
166
  }
167
167
  /** Reads worker files while normalizing sourcemaps and providing normalized paths */
168
- async function* listWorkerFilesAsync(workerPath) {
168
+ async function* listWorkerFilesAsync(workerPath, options) {
169
169
  for await (const file of listFilesRecursively(workerPath)) {
170
+ if (options?.skipSourceMaps && file.normalizedPath.endsWith('.map')) {
171
+ continue;
172
+ }
170
173
  yield {
171
174
  normalizedPath: file.normalizedPath,
172
175
  path: file.path,