eas-cli 13.4.2 → 14.0.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 (203) hide show
  1. package/README.md +73 -73
  2. package/build/ApiV2Error.js +5 -1
  3. package/build/analytics/AnalyticsManager.js +5 -4
  4. package/build/api.js +1 -0
  5. package/build/branch/actions/SelectBranch.js +1 -0
  6. package/build/branch/queries.d.ts +3 -3
  7. package/build/branch/queries.js +7 -5
  8. package/build/build/validate.js +6 -3
  9. package/build/channel/actions/SelectChannel.js +1 -0
  10. package/build/channel/queries.d.ts +0 -1
  11. package/build/channel/queries.js +11 -16
  12. package/build/commandUtils/EasCommand.js +100 -90
  13. package/build/commandUtils/builds.d.ts +1 -0
  14. package/build/commandUtils/builds.js +3 -0
  15. package/build/commandUtils/gating/FeatureGateEnvOverrides.js +1 -1
  16. package/build/commandUtils/gating/FeatureGating.js +2 -0
  17. package/build/commands/account/login.js +16 -18
  18. package/build/commands/account/logout.js +6 -8
  19. package/build/commands/account/view.js +8 -10
  20. package/build/commands/analytics.js +2 -2
  21. package/build/commands/branch/create.js +18 -20
  22. package/build/commands/branch/delete.js +17 -19
  23. package/build/commands/branch/list.js +11 -13
  24. package/build/commands/branch/publish.js +2 -2
  25. package/build/commands/branch/rename.js +18 -20
  26. package/build/commands/branch/view.js +19 -21
  27. package/build/commands/build/cancel.js +22 -24
  28. package/build/commands/build/configure.js +15 -17
  29. package/build/commands/build/delete.js +22 -24
  30. package/build/commands/build/index.js +81 -83
  31. package/build/commands/build/inspect.js +42 -44
  32. package/build/commands/build/internal.js +32 -34
  33. package/build/commands/build/list.js +58 -60
  34. package/build/commands/build/resign.js +36 -38
  35. package/build/commands/build/run.js +36 -38
  36. package/build/commands/build/version/get.js +21 -23
  37. package/build/commands/build/version/set.js +20 -22
  38. package/build/commands/build/version/sync.js +20 -22
  39. package/build/commands/build/view.js +12 -14
  40. package/build/commands/channel/create.js +17 -19
  41. package/build/commands/channel/delete.js +18 -20
  42. package/build/commands/channel/edit.js +20 -22
  43. package/build/commands/channel/list.js +12 -14
  44. package/build/commands/channel/pause.js +20 -22
  45. package/build/commands/channel/resume.js +20 -22
  46. package/build/commands/channel/rollout.js +74 -76
  47. package/build/commands/channel/view.js +18 -20
  48. package/build/commands/config.js +21 -23
  49. package/build/commands/credentials/configure-build.js +21 -23
  50. package/build/commands/credentials/index.js +13 -15
  51. package/build/commands/device/create.js +6 -8
  52. package/build/commands/device/delete.js +12 -14
  53. package/build/commands/device/list.js +12 -14
  54. package/build/commands/device/rename.js +13 -15
  55. package/build/commands/device/view.js +8 -10
  56. package/build/commands/diagnostics.js +6 -8
  57. package/build/commands/env/create.js +39 -41
  58. package/build/commands/env/delete.js +25 -27
  59. package/build/commands/env/exec.js +22 -24
  60. package/build/commands/env/get.js +26 -28
  61. package/build/commands/env/link.js +27 -29
  62. package/build/commands/env/list.js +27 -29
  63. package/build/commands/env/pull.js +23 -25
  64. package/build/commands/env/push.js +21 -23
  65. package/build/commands/env/unlink.js +23 -25
  66. package/build/commands/env/update.js +38 -40
  67. package/build/commands/fingerprint/compare.d.ts +28 -0
  68. package/build/commands/fingerprint/compare.js +324 -0
  69. package/build/commands/metadata/lint.js +18 -20
  70. package/build/commands/metadata/pull.js +15 -17
  71. package/build/commands/metadata/push.js +15 -17
  72. package/build/commands/open.js +6 -8
  73. package/build/commands/project/info.js +6 -8
  74. package/build/commands/project/init.js +26 -28
  75. package/build/commands/project/onboarding.js +10 -12
  76. package/build/commands/secret/create.js +30 -32
  77. package/build/commands/secret/delete.js +14 -16
  78. package/build/commands/secret/list.js +7 -9
  79. package/build/commands/secret/push.js +23 -25
  80. package/build/commands/submit/internal.js +23 -25
  81. package/build/commands/submit.js +54 -56
  82. package/build/commands/update/configure.js +18 -20
  83. package/build/commands/update/delete.js +16 -18
  84. package/build/commands/update/edit.js +25 -27
  85. package/build/commands/update/index.js +65 -67
  86. package/build/commands/update/list.js +21 -23
  87. package/build/commands/update/republish.js +45 -47
  88. package/build/commands/update/roll-back-to-embedded.d.ts +2 -1
  89. package/build/commands/update/roll-back-to-embedded.js +92 -84
  90. package/build/commands/update/rollback.js +7 -7
  91. package/build/commands/update/view.js +16 -18
  92. package/build/commands/webhook/create.js +20 -22
  93. package/build/commands/webhook/delete.js +17 -19
  94. package/build/commands/webhook/list.js +14 -16
  95. package/build/commands/webhook/update.js +23 -25
  96. package/build/commands/webhook/view.js +13 -15
  97. package/build/commands/worker/alias.js +30 -32
  98. package/build/commands/worker/deploy.js +38 -40
  99. package/build/commands/workflow/create.js +16 -18
  100. package/build/commands/workflow/run.js +13 -15
  101. package/build/commands/workflow/validate.js +18 -20
  102. package/build/credentials/android/AndroidCredentialsProvider.js +3 -1
  103. package/build/credentials/android/actions/AssignFcm.js +1 -0
  104. package/build/credentials/android/actions/AssignGoogleServiceAccountKeyForFcmV1.js +1 -0
  105. package/build/credentials/android/actions/AssignGoogleServiceAccountKeyForSubmissions.js +1 -0
  106. package/build/credentials/android/actions/CreateFcm.js +1 -0
  107. package/build/credentials/android/actions/CreateGoogleServiceAccountKey.js +1 -0
  108. package/build/credentials/android/actions/CreateKeystore.js +1 -0
  109. package/build/credentials/android/actions/DownloadKeystore.js +2 -0
  110. package/build/credentials/android/actions/RemoveFcm.js +1 -0
  111. package/build/credentials/android/actions/RemoveGoogleServiceAccountKey.js +2 -0
  112. package/build/credentials/android/actions/RemoveKeystore.js +1 -0
  113. package/build/credentials/android/actions/SetUpBuildCredentials.js +1 -0
  114. package/build/credentials/android/actions/SetUpBuildCredentialsFromCredentialsJson.js +1 -0
  115. package/build/credentials/android/actions/SetUpGoogleServiceAccountKeyForFcmV1.js +1 -0
  116. package/build/credentials/android/actions/SetUpGoogleServiceAccountKeyForSubmissions.js +1 -0
  117. package/build/credentials/android/actions/UseExistingGoogleServiceAccountKey.js +1 -0
  118. package/build/credentials/context.js +14 -5
  119. package/build/credentials/errors.js +1 -0
  120. package/build/credentials/ios/IosCredentialsProvider.js +3 -1
  121. package/build/credentials/ios/actions/AssignAscApiKey.js +1 -0
  122. package/build/credentials/ios/actions/AssignPushKey.js +1 -0
  123. package/build/credentials/ios/actions/ConfigureProvisioningProfile.js +4 -0
  124. package/build/credentials/ios/actions/CreateAscApiKey.js +1 -0
  125. package/build/credentials/ios/actions/CreateDistributionCertificate.js +1 -0
  126. package/build/credentials/ios/actions/CreateProvisioningProfile.js +3 -0
  127. package/build/credentials/ios/actions/CreatePushKey.js +1 -0
  128. package/build/credentials/ios/actions/RemoveAscApiKey.js +2 -0
  129. package/build/credentials/ios/actions/RemoveDistributionCertificate.js +3 -0
  130. package/build/credentials/ios/actions/RemoveProvisioningProfile.js +2 -0
  131. package/build/credentials/ios/actions/RemovePushKey.js +2 -0
  132. package/build/credentials/ios/actions/SetUpAdhocProvisioningProfile.js +1 -0
  133. package/build/credentials/ios/actions/SetUpAscApiKey.js +9 -7
  134. package/build/credentials/ios/actions/SetUpBuildCredentials.js +1 -0
  135. package/build/credentials/ios/actions/SetUpBuildCredentialsFromCredentialsJson.js +3 -0
  136. package/build/credentials/ios/actions/SetUpDistributionCertificate.js +3 -0
  137. package/build/credentials/ios/actions/SetUpInternalProvisioningProfile.js +1 -0
  138. package/build/credentials/ios/actions/SetUpProvisioningProfile.js +3 -0
  139. package/build/credentials/ios/actions/SetUpPushKey.js +1 -0
  140. package/build/credentials/ios/actions/SetUpTargetBuildCredentials.js +1 -0
  141. package/build/credentials/ios/actions/SetUpTargetBuildCredentialsFromCredentialsJson.js +3 -0
  142. package/build/credentials/ios/actions/UpdateCredentialsJson.js +3 -0
  143. package/build/credentials/ios/appstore/AppStoreApi.js +2 -0
  144. package/build/credentials/manager/CheckBuildProfileFlagAgainstEasJson.js +3 -0
  145. package/build/credentials/manager/CreateAndroidBuildCredentials.js +1 -0
  146. package/build/credentials/manager/ManageAndroid.js +2 -0
  147. package/build/credentials/manager/ManageIos.js +2 -0
  148. package/build/credentials/manager/SelectAndroidBuildCredentials.js +2 -0
  149. package/build/credentials/manager/SelectBuildProfileFromEasJson.js +2 -0
  150. package/build/credentials/manager/SelectIosDistributionTypeGraphqlFromBuildProfile.js +1 -0
  151. package/build/credentials/manager/SelectPlatform.js +7 -0
  152. package/build/credentials/manager/SetDefaultAndroidKeystore.js +1 -0
  153. package/build/credentials/manager/SetUpAndroidBuildCredentials.js +1 -0
  154. package/build/credentials/manager/SetUpBuildCredentialsCommandAction.js +9 -0
  155. package/build/credentials/manager/SetUpIosBuildCredentials.js +1 -0
  156. package/build/devices/actions/create/action.js +4 -0
  157. package/build/devices/manager.js +4 -0
  158. package/build/fetch.js +1 -0
  159. package/build/graphql/generated.d.ts +175 -0
  160. package/build/graphql/generated.js +8 -3
  161. package/build/graphql/queries/BuildQuery.d.ts +4 -1
  162. package/build/graphql/queries/BuildQuery.js +19 -0
  163. package/build/graphql/types/Build.d.ts +1 -0
  164. package/build/graphql/types/Build.js +15 -1
  165. package/build/graphql/types/Fingerprint.d.ts +1 -0
  166. package/build/graphql/types/Fingerprint.js +12 -0
  167. package/build/log.js +2 -2
  168. package/build/metadata/apple/config/reader.js +1 -0
  169. package/build/metadata/apple/config/writer.js +1 -0
  170. package/build/metadata/apple/tasks/age-rating.js +1 -4
  171. package/build/metadata/apple/tasks/app-info.js +1 -4
  172. package/build/metadata/apple/tasks/app-review-detail.js +1 -4
  173. package/build/metadata/apple/tasks/app-version.js +2 -1
  174. package/build/metadata/errors.js +5 -0
  175. package/build/rollout/actions/CreateRollout.d.ts +9 -10
  176. package/build/rollout/actions/CreateRollout.js +2 -0
  177. package/build/rollout/actions/EditRollout.d.ts +2 -3
  178. package/build/rollout/actions/EditRollout.js +2 -0
  179. package/build/rollout/actions/EndRollout.d.ts +4 -6
  180. package/build/rollout/actions/EndRollout.js +2 -0
  181. package/build/rollout/actions/ManageRollout.d.ts +2 -3
  182. package/build/rollout/actions/ManageRollout.js +2 -0
  183. package/build/rollout/actions/NonInteractiveRollout.d.ts +6 -27
  184. package/build/rollout/actions/NonInteractiveRollout.js +1 -0
  185. package/build/rollout/actions/RolloutMainMenu.d.ts +6 -7
  186. package/build/rollout/actions/RolloutMainMenu.js +1 -0
  187. package/build/rollout/actions/SelectRuntime.d.ts +6 -20
  188. package/build/rollout/actions/SelectRuntime.js +3 -0
  189. package/build/submit/BaseSubmitter.js +4 -0
  190. package/build/submit/android/AndroidSubmitCommand.js +1 -0
  191. package/build/submit/ios/IosSubmitCommand.js +1 -0
  192. package/build/update/getBranchFromChannelNameAndCreateAndLinkIfNotExistsAsync.js +3 -3
  193. package/build/user/SessionManager.js +2 -0
  194. package/build/utils/fingerprint.d.ts +97 -0
  195. package/build/utils/fingerprint.js +5 -0
  196. package/build/utils/fingerprintCli.d.ts +5 -7
  197. package/build/utils/fingerprintCli.js +11 -1
  198. package/build/utils/fingerprintDiff.d.ts +33 -0
  199. package/build/utils/fingerprintDiff.js +122 -0
  200. package/build/vcs/clients/git.js +1 -0
  201. package/build/vcs/local.js +2 -1
  202. package/oclif.manifest.json +51 -7
  203. package/package.json +9 -7
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const eas_build_job_1 = require("@expo/eas-build-job");
@@ -26,9 +25,17 @@ const prompts_1 = require("../../prompts");
26
25
  const easCli_1 = require("../../utils/easCli");
27
26
  const git_2 = tslib_1.__importDefault(require("../../vcs/clients/git"));
28
27
  class Onboarding extends EasCommand_1.default {
28
+ static aliases = ['init:onboarding', 'onboarding'];
29
+ static description = 'continue onboarding process started on the https://expo.new website.';
30
+ static flags = {};
31
+ static args = [{ name: 'TARGET_PROJECT_DIRECTORY' }];
32
+ static contextDefinition = {
33
+ ...this.ContextOptions.LoggedIn,
34
+ ...this.ContextOptions.Analytics,
35
+ };
29
36
  async runAsync() {
30
- const { args: { TARGET_PROJECT_DIRECTORY: targetProjectDirInput }, } = await this.parse(_a);
31
- const { loggedIn: { actor, graphqlClient }, analytics, } = await this.getContextAsync(_a, {
37
+ const { args: { TARGET_PROJECT_DIRECTORY: targetProjectDirInput }, } = await this.parse(Onboarding);
38
+ const { loggedIn: { actor, graphqlClient }, analytics, } = await this.getContextAsync(Onboarding, {
32
39
  nonInteractive: false,
33
40
  });
34
41
  if (actor.__typename === 'Robot') {
@@ -224,15 +231,6 @@ class Onboarding extends EasCommand_1.default {
224
231
  });
225
232
  }
226
233
  }
227
- _a = Onboarding;
228
- Onboarding.aliases = ['init:onboarding', 'onboarding'];
229
- Onboarding.description = 'continue onboarding process started on the https://expo.new website.';
230
- Onboarding.flags = {};
231
- Onboarding.args = [{ name: 'TARGET_PROJECT_DIRECTORY' }];
232
- Onboarding.contextDefinition = {
233
- ..._a.ContextOptions.LoggedIn,
234
- ..._a.ContextOptions.Analytics,
235
- };
236
234
  exports.default = Onboarding;
237
235
  // we can't get this automated by using command context because when we run a command the project directory doesn't exist yet
238
236
  async function getPrivateExpoConfigWithProjectIdAsync({ projectDir, graphqlClient, actor, options, }) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const core_1 = require("@oclif/core");
@@ -16,11 +15,39 @@ const log_1 = tslib_1.__importDefault(require("../../log"));
16
15
  const projectUtils_1 = require("../../project/projectUtils");
17
16
  const prompts_1 = require("../../prompts");
18
17
  class EnvironmentSecretCreate extends EasCommand_1.default {
18
+ static description = 'create an environment secret on the current project or owner account';
19
+ static hidden = true;
20
+ static flags = {
21
+ scope: core_1.Flags.enum({
22
+ description: 'Scope for the secret',
23
+ options: [EnvironmentSecretsQuery_1.EnvironmentSecretScope.ACCOUNT, EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT],
24
+ default: EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT,
25
+ }),
26
+ name: core_1.Flags.string({
27
+ description: 'Name of the secret',
28
+ }),
29
+ value: core_1.Flags.string({
30
+ description: 'Text value or path to a file to store in the secret',
31
+ }),
32
+ type: core_1.Flags.enum({
33
+ description: 'The type of secret',
34
+ options: [EnvironmentSecret_1.SecretType.STRING, EnvironmentSecret_1.SecretType.FILE],
35
+ }),
36
+ force: core_1.Flags.boolean({
37
+ description: 'Delete and recreate existing secrets',
38
+ default: false,
39
+ }),
40
+ ...flags_1.EASNonInteractiveFlag,
41
+ };
42
+ static contextDefinition = {
43
+ ...this.ContextOptions.ProjectId,
44
+ ...this.ContextOptions.LoggedIn,
45
+ };
19
46
  async runAsync() {
20
47
  log_1.default.warn('This command is deprecated. Use eas env:create instead.');
21
48
  log_1.default.newLine();
22
- let { flags: { name, value: secretValue, scope, force, type: secretType, 'non-interactive': nonInteractive, }, } = await this.parse(_a);
23
- const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
49
+ let { flags: { name, value: secretValue, scope, force, type: secretType, 'non-interactive': nonInteractive, }, } = await this.parse(EnvironmentSecretCreate);
50
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(EnvironmentSecretCreate, {
24
51
  nonInteractive,
25
52
  });
26
53
  const projectDisplayName = await (0, projectUtils_1.getDisplayNameForProjectIdAsync)(graphqlClient, projectId);
@@ -156,33 +183,4 @@ class EnvironmentSecretCreate extends EasCommand_1.default {
156
183
  }
157
184
  }
158
185
  }
159
- _a = EnvironmentSecretCreate;
160
- EnvironmentSecretCreate.description = 'create an environment secret on the current project or owner account';
161
- EnvironmentSecretCreate.hidden = true;
162
- EnvironmentSecretCreate.flags = {
163
- scope: core_1.Flags.enum({
164
- description: 'Scope for the secret',
165
- options: [EnvironmentSecretsQuery_1.EnvironmentSecretScope.ACCOUNT, EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT],
166
- default: EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT,
167
- }),
168
- name: core_1.Flags.string({
169
- description: 'Name of the secret',
170
- }),
171
- value: core_1.Flags.string({
172
- description: 'Text value or path to a file to store in the secret',
173
- }),
174
- type: core_1.Flags.enum({
175
- description: 'The type of secret',
176
- options: [EnvironmentSecret_1.SecretType.STRING, EnvironmentSecret_1.SecretType.FILE],
177
- }),
178
- force: core_1.Flags.boolean({
179
- description: 'Delete and recreate existing secrets',
180
- default: false,
181
- }),
182
- ...flags_1.EASNonInteractiveFlag,
183
- };
184
- EnvironmentSecretCreate.contextDefinition = {
185
- ..._a.ContextOptions.ProjectId,
186
- ..._a.ContextOptions.LoggedIn,
187
- };
188
186
  exports.default = EnvironmentSecretCreate;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const core_1 = require("@oclif/core");
@@ -10,11 +9,23 @@ const EnvironmentSecretsQuery_1 = require("../../graphql/queries/EnvironmentSecr
10
9
  const log_1 = tslib_1.__importDefault(require("../../log"));
11
10
  const prompts_1 = require("../../prompts");
12
11
  class EnvironmentSecretDelete extends EasCommand_1.default {
12
+ static description = 'delete an environment secret by ID';
13
+ static hidden = true;
14
+ static flags = {
15
+ id: core_1.Flags.string({
16
+ description: 'ID of the secret to delete',
17
+ }),
18
+ ...flags_1.EASNonInteractiveFlag,
19
+ };
20
+ static contextDefinition = {
21
+ ...this.ContextOptions.ProjectId,
22
+ ...this.ContextOptions.LoggedIn,
23
+ };
13
24
  async runAsync() {
14
25
  log_1.default.warn('This command is deprecated. Use eas env:delete instead.');
15
26
  log_1.default.newLine();
16
- let { flags: { id, 'non-interactive': nonInteractive }, } = await this.parse(_a);
17
- const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
27
+ let { flags: { id, 'non-interactive': nonInteractive }, } = await this.parse(EnvironmentSecretDelete);
28
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(EnvironmentSecretDelete, {
18
29
  nonInteractive,
19
30
  });
20
31
  let secret;
@@ -56,17 +67,4 @@ class EnvironmentSecretDelete extends EasCommand_1.default {
56
67
  log_1.default.withTick(`️Deleted secret${secret?.name ? ` "${secret?.name}"` : ''} with id "${id}".`);
57
68
  }
58
69
  }
59
- _a = EnvironmentSecretDelete;
60
- EnvironmentSecretDelete.description = 'delete an environment secret by ID';
61
- EnvironmentSecretDelete.hidden = true;
62
- EnvironmentSecretDelete.flags = {
63
- id: core_1.Flags.string({
64
- description: 'ID of the secret to delete',
65
- }),
66
- ...flags_1.EASNonInteractiveFlag,
67
- };
68
- EnvironmentSecretDelete.contextDefinition = {
69
- ..._a.ContextOptions.ProjectId,
70
- ..._a.ContextOptions.LoggedIn,
71
- };
72
70
  exports.default = EnvironmentSecretDelete;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
@@ -9,10 +8,16 @@ const EnvironmentSecretsQuery_1 = require("../../graphql/queries/EnvironmentSecr
9
8
  const log_1 = tslib_1.__importDefault(require("../../log"));
10
9
  const formatFields_1 = tslib_1.__importDefault(require("../../utils/formatFields"));
11
10
  class EnvironmentSecretList extends EasCommand_1.default {
11
+ static description = 'list environment secrets available for your current app';
12
+ static hidden = true;
13
+ static contextDefinition = {
14
+ ...this.ContextOptions.ProjectId,
15
+ ...this.ContextOptions.LoggedIn,
16
+ };
12
17
  async runAsync() {
13
18
  log_1.default.warn('This command is deprecated. Use eas env:list instead.');
14
19
  log_1.default.newLine();
15
- const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
20
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(EnvironmentSecretList, {
16
21
  nonInteractive: true,
17
22
  });
18
23
  const secrets = await EnvironmentSecretsQuery_1.EnvironmentSecretsQuery.allAsync(graphqlClient, projectId);
@@ -20,13 +25,6 @@ class EnvironmentSecretList extends EasCommand_1.default {
20
25
  log_1.default.log(secrets.map(secret => formatSecret(secret)).join(`\n\n${chalk_1.default.dim('———')}\n\n`));
21
26
  }
22
27
  }
23
- _a = EnvironmentSecretList;
24
- EnvironmentSecretList.description = 'list environment secrets available for your current app';
25
- EnvironmentSecretList.hidden = true;
26
- EnvironmentSecretList.contextDefinition = {
27
- ..._a.ContextOptions.ProjectId,
28
- ..._a.ContextOptions.LoggedIn,
29
- };
30
28
  exports.default = EnvironmentSecretList;
31
29
  function formatSecret(secret) {
32
30
  return (0, formatFields_1.default)([
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const core_1 = require("@oclif/core");
@@ -18,11 +17,32 @@ const projectUtils_1 = require("../../project/projectUtils");
18
17
  const prompts_1 = require("../../prompts");
19
18
  const intersection_1 = tslib_1.__importDefault(require("../../utils/expodash/intersection"));
20
19
  class EnvironmentSecretPush extends EasCommand_1.default {
20
+ static description = 'read environment secrets from env file and store on the server';
21
+ static hidden = true;
22
+ static flags = {
23
+ scope: core_1.Flags.enum({
24
+ description: 'Scope for the secrets',
25
+ options: [EnvironmentSecretsQuery_1.EnvironmentSecretScope.ACCOUNT, EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT],
26
+ default: EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT,
27
+ }),
28
+ 'env-file': core_1.Flags.string({
29
+ description: 'Env file with secrets',
30
+ }),
31
+ force: core_1.Flags.boolean({
32
+ description: 'Delete and recreate existing secrets',
33
+ default: false,
34
+ }),
35
+ ...flags_1.EASNonInteractiveFlag,
36
+ };
37
+ static contextDefinition = {
38
+ ...this.ContextOptions.ProjectId,
39
+ ...this.ContextOptions.LoggedIn,
40
+ };
21
41
  async runAsync() {
22
42
  log_1.default.warn('This command is deprecated. Use eas env:push instead.');
23
43
  log_1.default.newLine();
24
- const { flags: { scope, force, 'env-file': maybeEnvFilePath, 'non-interactive': nonInteractive }, } = await this.parse(_a);
25
- const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, {
44
+ const { flags: { scope, force, 'env-file': maybeEnvFilePath, 'non-interactive': nonInteractive }, } = await this.parse(EnvironmentSecretPush);
45
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(EnvironmentSecretPush, {
26
46
  nonInteractive,
27
47
  });
28
48
  const projectDisplayName = await (0, projectUtils_1.getDisplayNameForProjectIdAsync)(graphqlClient, projectId);
@@ -46,28 +66,6 @@ class EnvironmentSecretPush extends EasCommand_1.default {
46
66
  }
47
67
  }
48
68
  }
49
- _a = EnvironmentSecretPush;
50
- EnvironmentSecretPush.description = 'read environment secrets from env file and store on the server';
51
- EnvironmentSecretPush.hidden = true;
52
- EnvironmentSecretPush.flags = {
53
- scope: core_1.Flags.enum({
54
- description: 'Scope for the secrets',
55
- options: [EnvironmentSecretsQuery_1.EnvironmentSecretScope.ACCOUNT, EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT],
56
- default: EnvironmentSecretsQuery_1.EnvironmentSecretScope.PROJECT,
57
- }),
58
- 'env-file': core_1.Flags.string({
59
- description: 'Env file with secrets',
60
- }),
61
- force: core_1.Flags.boolean({
62
- description: 'Delete and recreate existing secrets',
63
- default: false,
64
- }),
65
- ...flags_1.EASNonInteractiveFlag,
66
- };
67
- EnvironmentSecretPush.contextDefinition = {
68
- ..._a.ContextOptions.ProjectId,
69
- ..._a.ContextOptions.LoggedIn,
70
- };
71
69
  exports.default = EnvironmentSecretPush;
72
70
  async function resolveEnvFilePathAsync(maybeEnvFilePath, nonInteractive) {
73
71
  if (maybeEnvFilePath) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const eas_build_job_1 = require("@expo/eas-build-job");
@@ -23,11 +22,32 @@ const noVcs_1 = tslib_1.__importDefault(require("../../vcs/clients/noVcs"));
23
22
  * job and metadata objects, and prints them to stdout.
24
23
  */
25
24
  class SubmitInternal extends EasCommand_1.default {
25
+ static hidden = true;
26
+ static flags = {
27
+ platform: core_1.Flags.enum({
28
+ options: [eas_build_job_1.Platform.ANDROID, eas_build_job_1.Platform.IOS],
29
+ required: true,
30
+ }),
31
+ profile: core_1.Flags.string({
32
+ description: 'Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.',
33
+ }),
34
+ id: core_1.Flags.string({
35
+ description: 'ID of the build to submit',
36
+ required: true,
37
+ }),
38
+ };
39
+ static contextDefinition = {
40
+ ...this.ContextOptions.LoggedIn,
41
+ ...this.ContextOptions.ProjectConfig,
42
+ ...this.ContextOptions.ProjectDir,
43
+ ...this.ContextOptions.Analytics,
44
+ ...this.ContextOptions.Vcs,
45
+ };
26
46
  async runAsync() {
27
- const { flags } = await this.parse(_a);
47
+ const { flags } = await this.parse(SubmitInternal);
28
48
  // This command is always run with implicit --non-interactive and --json options
29
49
  (0, json_1.enableJsonOutput)();
30
- const { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, vcsClient, } = await this.getContextAsync(_a, {
50
+ const { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, vcsClient, } = await this.getContextAsync(SubmitInternal, {
31
51
  nonInteractive: true,
32
52
  vcsClientOverride: process.env.EAS_NO_VCS ? new noVcs_1.default() : new gitNoCommit_1.default(),
33
53
  withServerSideEnvironment: null,
@@ -105,28 +125,6 @@ class SubmitInternal extends EasCommand_1.default {
105
125
  (0, json_1.printJsonOnlyOutput)({ config });
106
126
  }
107
127
  }
108
- _a = SubmitInternal;
109
- SubmitInternal.hidden = true;
110
- SubmitInternal.flags = {
111
- platform: core_1.Flags.enum({
112
- options: [eas_build_job_1.Platform.ANDROID, eas_build_job_1.Platform.IOS],
113
- required: true,
114
- }),
115
- profile: core_1.Flags.string({
116
- description: 'Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.',
117
- }),
118
- id: core_1.Flags.string({
119
- description: 'ID of the build to submit',
120
- required: true,
121
- }),
122
- };
123
- SubmitInternal.contextDefinition = {
124
- ..._a.ContextOptions.LoggedIn,
125
- ..._a.ContextOptions.ProjectConfig,
126
- ..._a.ContextOptions.ProjectDir,
127
- ..._a.ContextOptions.Analytics,
128
- ..._a.ContextOptions.Vcs,
129
- };
130
128
  exports.default = SubmitInternal;
131
129
  async function getGoogleServiceAccountKeyJsonAsync({ androidConfig, graphqlClient, }) {
132
130
  if (androidConfig.googleServiceAccountKeyJson) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const eas_json_1 = require("@expo/eas-json");
@@ -16,9 +15,61 @@ const urls_1 = require("../submit/utils/urls");
16
15
  const profiles_1 = require("../utils/profiles");
17
16
  const statuspageService_1 = require("../utils/statuspageService");
18
17
  class Submit extends EasCommand_1.default {
18
+ static description = 'submit app binary to App Store and/or Play Store';
19
+ static aliases = ['build:submit'];
20
+ static flags = {
21
+ platform: core_1.Flags.enum({
22
+ char: 'p',
23
+ options: ['android', 'ios', 'all'],
24
+ }),
25
+ profile: core_1.Flags.string({
26
+ char: 'e',
27
+ description: 'Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.',
28
+ }),
29
+ latest: core_1.Flags.boolean({
30
+ description: 'Submit the latest build for specified platform',
31
+ exclusive: ['id', 'path', 'url'],
32
+ }),
33
+ id: core_1.Flags.string({
34
+ description: 'ID of the build to submit',
35
+ exclusive: ['latest, path, url'],
36
+ }),
37
+ path: core_1.Flags.string({
38
+ description: 'Path to the .apk/.aab/.ipa file',
39
+ exclusive: ['latest', 'id', 'url'],
40
+ }),
41
+ url: core_1.Flags.string({
42
+ description: 'App archive url',
43
+ exclusive: ['latest', 'id', 'path'],
44
+ }),
45
+ verbose: core_1.Flags.boolean({
46
+ description: 'Always print logs from EAS Submit',
47
+ default: false,
48
+ }),
49
+ wait: core_1.Flags.boolean({
50
+ description: 'Wait for submission to complete',
51
+ default: true,
52
+ allowNo: true,
53
+ }),
54
+ 'verbose-fastlane': core_1.Flags.boolean({
55
+ default: false,
56
+ description: 'Enable verbose logging for the submission process',
57
+ }),
58
+ 'non-interactive': core_1.Flags.boolean({
59
+ default: false,
60
+ description: 'Run command in non-interactive mode',
61
+ }),
62
+ };
63
+ static contextDefinition = {
64
+ ...this.ContextOptions.LoggedIn,
65
+ ...this.ContextOptions.ProjectConfig,
66
+ ...this.ContextOptions.ProjectDir,
67
+ ...this.ContextOptions.Analytics,
68
+ ...this.ContextOptions.Vcs,
69
+ };
19
70
  async runAsync() {
20
- const { flags: rawFlags } = await this.parse(_a);
21
- const { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, vcsClient, } = await this.getContextAsync(_a, {
71
+ const { flags: rawFlags } = await this.parse(Submit);
72
+ const { loggedIn: { actor, graphqlClient }, privateProjectConfig: { exp, projectId, projectDir }, analytics, vcsClient, } = await this.getContextAsync(Submit, {
22
73
  nonInteractive: false,
23
74
  withServerSideEnvironment: null,
24
75
  });
@@ -100,57 +151,4 @@ class Submit extends EasCommand_1.default {
100
151
  };
101
152
  }
102
153
  }
103
- _a = Submit;
104
- Submit.description = 'submit app binary to App Store and/or Play Store';
105
- Submit.aliases = ['build:submit'];
106
- Submit.flags = {
107
- platform: core_1.Flags.enum({
108
- char: 'p',
109
- options: ['android', 'ios', 'all'],
110
- }),
111
- profile: core_1.Flags.string({
112
- char: 'e',
113
- description: 'Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.',
114
- }),
115
- latest: core_1.Flags.boolean({
116
- description: 'Submit the latest build for specified platform',
117
- exclusive: ['id', 'path', 'url'],
118
- }),
119
- id: core_1.Flags.string({
120
- description: 'ID of the build to submit',
121
- exclusive: ['latest, path, url'],
122
- }),
123
- path: core_1.Flags.string({
124
- description: 'Path to the .apk/.aab/.ipa file',
125
- exclusive: ['latest', 'id', 'url'],
126
- }),
127
- url: core_1.Flags.string({
128
- description: 'App archive url',
129
- exclusive: ['latest', 'id', 'path'],
130
- }),
131
- verbose: core_1.Flags.boolean({
132
- description: 'Always print logs from EAS Submit',
133
- default: false,
134
- }),
135
- wait: core_1.Flags.boolean({
136
- description: 'Wait for submission to complete',
137
- default: true,
138
- allowNo: true,
139
- }),
140
- 'verbose-fastlane': core_1.Flags.boolean({
141
- default: false,
142
- description: 'Enable verbose logging for the submission process',
143
- }),
144
- 'non-interactive': core_1.Flags.boolean({
145
- default: false,
146
- description: 'Run command in non-interactive mode',
147
- }),
148
- };
149
- Submit.contextDefinition = {
150
- ..._a.ContextOptions.LoggedIn,
151
- ..._a.ContextOptions.ProjectConfig,
152
- ..._a.ContextOptions.ProjectDir,
153
- ..._a.ContextOptions.Analytics,
154
- ..._a.ContextOptions.Vcs,
155
- };
156
154
  exports.default = Submit;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const core_1 = require("@oclif/core");
@@ -11,9 +10,25 @@ const log_1 = tslib_1.__importStar(require("../../log"));
11
10
  const platform_1 = require("../../platform");
12
11
  const configure_2 = require("../../update/configure");
13
12
  class UpdateConfigure extends EasCommand_1.default {
13
+ static description = 'configure the project to support EAS Update';
14
+ static flags = {
15
+ platform: core_1.Flags.enum({
16
+ description: 'Platform to configure',
17
+ char: 'p',
18
+ options: Object.values(platform_1.RequestedPlatform),
19
+ default: platform_1.RequestedPlatform.All,
20
+ }),
21
+ ...flags_1.EasUpdateEnvironmentFlag,
22
+ ...flags_1.EASNonInteractiveFlag,
23
+ };
24
+ static contextDefinition = {
25
+ ...this.ContextOptions.ProjectConfig,
26
+ ...this.ContextOptions.LoggedIn,
27
+ ...this.ContextOptions.Vcs,
28
+ };
14
29
  async runAsync() {
15
- const { flags } = await this.parse(_a);
16
- const { privateProjectConfig: { projectId, exp, projectDir }, vcsClient, } = await this.getContextAsync(_a, {
30
+ const { flags } = await this.parse(UpdateConfigure);
31
+ const { privateProjectConfig: { projectId, exp, projectDir }, vcsClient, } = await this.getContextAsync(UpdateConfigure, {
17
32
  nonInteractive: flags['non-interactive'],
18
33
  withServerSideEnvironment: flags['environment'],
19
34
  });
@@ -40,21 +55,4 @@ class UpdateConfigure extends EasCommand_1.default {
40
55
  })}`);
41
56
  }
42
57
  }
43
- _a = UpdateConfigure;
44
- UpdateConfigure.description = 'configure the project to support EAS Update';
45
- UpdateConfigure.flags = {
46
- platform: core_1.Flags.enum({
47
- description: 'Platform to configure',
48
- char: 'p',
49
- options: Object.values(platform_1.RequestedPlatform),
50
- default: platform_1.RequestedPlatform.All,
51
- }),
52
- ...flags_1.EasUpdateEnvironmentFlag,
53
- ...flags_1.EASNonInteractiveFlag,
54
- };
55
- UpdateConfigure.contextDefinition = {
56
- ..._a.ContextOptions.ProjectConfig,
57
- ..._a.ContextOptions.LoggedIn,
58
- ..._a.ContextOptions.Vcs,
59
- };
60
58
  exports.default = UpdateConfigure;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
@@ -24,9 +23,23 @@ async function deleteUpdateGroupAsync(graphqlClient, { group, }) {
24
23
  .toPromise());
25
24
  }
26
25
  class UpdateDelete extends EasCommand_1.default {
26
+ static description = 'delete all the updates in an update group';
27
+ static args = [
28
+ {
29
+ name: 'groupId',
30
+ required: true,
31
+ description: 'The ID of an update group to delete.',
32
+ },
33
+ ];
34
+ static flags = {
35
+ ...flags_1.EasNonInteractiveAndJsonFlags,
36
+ };
37
+ static contextDefinition = {
38
+ ...this.ContextOptions.LoggedIn,
39
+ };
27
40
  async runAsync() {
28
- const { args: { groupId: group }, flags: { json: jsonFlag, 'non-interactive': nonInteractive }, } = await this.parse(_a);
29
- const { loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, { nonInteractive });
41
+ const { args: { groupId: group }, flags: { json: jsonFlag, 'non-interactive': nonInteractive }, } = await this.parse(UpdateDelete);
42
+ const { loggedIn: { graphqlClient }, } = await this.getContextAsync(UpdateDelete, { nonInteractive });
30
43
  if (jsonFlag) {
31
44
  (0, json_1.enableJsonOutput)();
32
45
  }
@@ -52,19 +65,4 @@ class UpdateDelete extends EasCommand_1.default {
52
65
  }
53
66
  }
54
67
  }
55
- _a = UpdateDelete;
56
- UpdateDelete.description = 'delete all the updates in an update group';
57
- UpdateDelete.args = [
58
- {
59
- name: 'groupId',
60
- required: true,
61
- description: 'The ID of an update group to delete.',
62
- },
63
- ];
64
- UpdateDelete.flags = {
65
- ...flags_1.EasNonInteractiveAndJsonFlags,
66
- };
67
- UpdateDelete.contextDefinition = {
68
- ..._a.ContextOptions.LoggedIn,
69
- };
70
68
  exports.default = UpdateDelete;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  const tslib_1 = require("tslib");
5
4
  const core_1 = require("@oclif/core");
@@ -16,9 +15,32 @@ const queries_2 = require("../../update/queries");
16
15
  const utils_1 = require("../../update/utils");
17
16
  const json_1 = require("../../utils/json");
18
17
  class UpdateEdit extends EasCommand_1.default {
18
+ static description = 'edit all the updates in an update group';
19
+ static args = [
20
+ {
21
+ name: 'groupId',
22
+ description: 'The ID of an update group to edit.',
23
+ },
24
+ ];
25
+ static flags = {
26
+ 'rollout-percentage': core_1.Flags.integer({
27
+ description: `Rollout percentage to set for a rollout update. The specified number must be an integer between 1 and 100.`,
28
+ required: false,
29
+ min: 0,
30
+ max: 100,
31
+ }),
32
+ branch: core_1.Flags.string({
33
+ description: 'Branch for which to list updates to select from',
34
+ }),
35
+ ...flags_1.EasNonInteractiveAndJsonFlags,
36
+ };
37
+ static contextDefinition = {
38
+ ...this.ContextOptions.ProjectId,
39
+ ...this.ContextOptions.LoggedIn,
40
+ };
19
41
  async runAsync() {
20
- const { args: { groupId: maybeGroupId }, flags: { 'rollout-percentage': rolloutPercentage, json: jsonFlag, 'non-interactive': nonInteractive, branch: branchFlag, }, } = await this.parse(_a);
21
- const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(_a, { nonInteractive });
42
+ const { args: { groupId: maybeGroupId }, flags: { 'rollout-percentage': rolloutPercentage, json: jsonFlag, 'non-interactive': nonInteractive, branch: branchFlag, }, } = await this.parse(UpdateEdit);
43
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(UpdateEdit, { nonInteractive });
22
44
  if (jsonFlag) {
23
45
  (0, json_1.enableJsonOutput)();
24
46
  }
@@ -112,28 +134,4 @@ class UpdateEdit extends EasCommand_1.default {
112
134
  }
113
135
  }
114
136
  }
115
- _a = UpdateEdit;
116
- UpdateEdit.description = 'edit all the updates in an update group';
117
- UpdateEdit.args = [
118
- {
119
- name: 'groupId',
120
- description: 'The ID of an update group to edit.',
121
- },
122
- ];
123
- UpdateEdit.flags = {
124
- 'rollout-percentage': core_1.Flags.integer({
125
- description: `Rollout percentage to set for a rollout update. The specified number must be an integer between 1 and 100.`,
126
- required: false,
127
- min: 0,
128
- max: 100,
129
- }),
130
- branch: core_1.Flags.string({
131
- description: 'Branch for which to list updates to select from',
132
- }),
133
- ...flags_1.EasNonInteractiveAndJsonFlags,
134
- };
135
- UpdateEdit.contextDefinition = {
136
- ..._a.ContextOptions.ProjectId,
137
- ..._a.ContextOptions.LoggedIn,
138
- };
139
137
  exports.default = UpdateEdit;