eas-cli 0.53.1 → 0.54.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 (36) hide show
  1. package/README.md +130 -42
  2. package/build/build/runBuildAndSubmit.js +4 -2
  3. package/build/build/utils/url.d.ts +1 -0
  4. package/build/build/utils/url.js +5 -1
  5. package/build/commands/build/index.d.ts +0 -1
  6. package/build/commands/build/index.js +1 -53
  7. package/build/commands/config.js +0 -2
  8. package/build/commands/metadata/pull.d.ts +8 -0
  9. package/build/commands/metadata/pull.js +59 -0
  10. package/build/commands/metadata/push.d.ts +8 -0
  11. package/build/commands/metadata/push.js +51 -0
  12. package/build/commands/submit.js +2 -1
  13. package/build/commands/update/index.d.ts +12 -0
  14. package/build/commands/update/index.js +78 -34
  15. package/build/graphql/generated.d.ts +24 -12
  16. package/build/graphql/queries/UpdateQuery.d.ts +4 -1
  17. package/build/graphql/queries/UpdateQuery.js +8 -7
  18. package/build/metadata/apple/config/reader.js +5 -4
  19. package/build/metadata/apple/tasks/app-info.js +8 -6
  20. package/build/metadata/apple/tasks/app-version.js +16 -12
  21. package/build/metadata/context.js +7 -14
  22. package/build/metadata/download.js +9 -2
  23. package/build/metadata/errors.d.ts +2 -2
  24. package/build/metadata/errors.js +4 -2
  25. package/build/metadata/upload.js +3 -0
  26. package/build/metadata/utils/date.d.ts +1 -1
  27. package/build/project/ensureProjectExists.js +4 -1
  28. package/build/project/publish.d.ts +6 -1
  29. package/build/project/publish.js +16 -3
  30. package/build/utils/expodash/uniq.d.ts +1 -0
  31. package/build/{metadata/utils/array.js → utils/expodash/uniq.js} +2 -3
  32. package/build/utils/profiles.d.ts +3 -3
  33. package/build/utils/profiles.js +5 -93
  34. package/oclif.manifest.json +1 -1
  35. package/package.json +8 -4
  36. package/build/metadata/utils/array.d.ts +0 -1
@@ -11,11 +11,12 @@ const retry_1 = require("../../utils/retry");
11
11
  const task_1 = require("../task");
12
12
  class AppVersionTask extends task_1.AppleTask {
13
13
  constructor(options = {}) {
14
+ var _a, _b;
14
15
  super();
15
16
  this.name = () => (this.options.editLive ? 'live app version' : 'editable app version');
16
17
  this.options = {
17
- platform: options.platform || apple_utils_1.Platform.IOS,
18
- editLive: options.editLive || false,
18
+ platform: (_a = options.platform) !== null && _a !== void 0 ? _a : apple_utils_1.Platform.IOS,
19
+ editLive: (_b = options.editLive) !== null && _b !== void 0 ? _b : false,
19
20
  };
20
21
  }
21
22
  async prepareAsync({ context }) {
@@ -42,13 +43,14 @@ class AppVersionTask extends task_1.AppleTask {
42
43
  log_1.default.log((0, chalk_1.default) `{dim - Skipped version and release update, not configured}`);
43
44
  }
44
45
  else {
45
- const description = [version && 'version info', release && 'release info']
46
+ const { versionString } = context.version.attributes;
47
+ const description = [version && 'version', release && 'release']
46
48
  .filter(Boolean)
47
49
  .join(' and ');
48
50
  context.version = await (0, log_2.logAsync)(() => context.version.updateAsync({ ...version, ...release }), {
49
- pending: `Updating ${description}...`,
50
- success: `Updated ${description}`,
51
- failure: `Failed updating ${description}`,
51
+ pending: `Updating ${description} info for ${chalk_1.default.bold(versionString)}...`,
52
+ success: `Updated ${description} info for ${chalk_1.default.bold(versionString)}...`,
53
+ failure: `Failed updating ${description} info for ${chalk_1.default.bold(versionString)}...`,
52
54
  });
53
55
  }
54
56
  const locales = config.getLocales();
@@ -62,12 +64,14 @@ class AppVersionTask extends task_1.AppleTask {
62
64
  continue;
63
65
  }
64
66
  const oldModel = context.versionLocales.find(model => model.attributes.locale === locale);
65
- await (0, log_2.logAsync)(() => oldModel
66
- ? oldModel.updateAsync(attributes)
67
- : context.version.createLocalizationAsync({ ...attributes, locale }), {
68
- pending: `${oldModel ? 'Updating' : 'Creating'} localized version for ${locale}...`,
69
- success: `${oldModel ? 'Updated' : 'Created'} localized version for ${locale}`,
70
- failure: `Failed ${oldModel ? 'updating' : 'creating'} localized version for ${locale}`,
67
+ await (0, log_2.logAsync)(async () => {
68
+ return oldModel
69
+ ? await oldModel.updateAsync(attributes)
70
+ : await context.version.createLocalizationAsync({ ...attributes, locale });
71
+ }, {
72
+ pending: `${oldModel ? 'Updating' : 'Creating'} localized version for ${chalk_1.default.bold(locale)}...`,
73
+ success: `${oldModel ? 'Updated' : 'Created'} localized version for ${chalk_1.default.bold(locale)}`,
74
+ failure: `Failed ${oldModel ? 'updating' : 'creating'} localized version for ${chalk_1.default.bold(locale)}`,
71
75
  });
72
76
  }
73
77
  context.versionLocales = await context.version.getLocalizationsAsync();
@@ -4,34 +4,27 @@ exports.ensureMetadataAppStoreAuthenticatedAsync = exports.createMetadataContext
4
4
  const tslib_1 = require("tslib");
5
5
  const apple_utils_1 = require("@expo/apple-utils");
6
6
  const eas_build_job_1 = require("@expo/eas-build-job");
7
+ const eas_json_1 = require("@expo/eas-json");
7
8
  const assert_1 = tslib_1.__importDefault(require("assert"));
8
9
  const authenticate_1 = require("../credentials/ios/appstore/authenticate");
9
10
  const expoConfig_1 = require("../project/expoConfig");
10
11
  const bundleIdentifier_1 = require("../project/ios/bundleIdentifier");
11
12
  const actions_1 = require("../user/actions");
12
- const profiles_1 = require("../utils/profiles");
13
13
  /**
14
14
  * Metadata uses the submission profile to find the configured metadata filename.
15
15
  * Note, only iOS is supported for metadata right now.
16
16
  */
17
17
  async function createMetadataContextAsync(params) {
18
- var _a, _b;
19
- const submissionProfiles = await (0, profiles_1.getProfilesAsync)({
20
- type: 'submit',
21
- platforms: [eas_build_job_1.Platform.IOS],
22
- projectDir: params.projectDir,
23
- profileName: params.profileName,
24
- });
25
- const submissionProfile = submissionProfiles.find(profile => profile.platform === eas_build_job_1.Platform.IOS);
26
- (0, assert_1.default)(submissionProfile, 'Could not resolve the iOS submission profile, only iOS is supported for metadata');
27
- const iosSubmissionProfile = submissionProfile.profile;
18
+ var _a, _b, _c;
19
+ const easJsonReader = new eas_json_1.EasJsonReader(params.projectDir);
20
+ const submitProfile = await easJsonReader.getSubmitProfileAsync(eas_build_job_1.Platform.IOS, params.profileName);
28
21
  const exp = (_a = params.exp) !== null && _a !== void 0 ? _a : (0, expoConfig_1.getExpoConfig)(params.projectDir);
29
22
  const user = await (0, actions_1.ensureLoggedInAsync)();
30
- const bundleIdentifier = await (0, bundleIdentifier_1.getBundleIdentifierAsync)(params.projectDir, exp);
23
+ const bundleIdentifier = (_b = submitProfile.bundleIdentifier) !== null && _b !== void 0 ? _b : (await (0, bundleIdentifier_1.getBundleIdentifierAsync)(params.projectDir, exp));
31
24
  return {
32
25
  platform: eas_build_job_1.Platform.IOS,
33
- profile: iosSubmissionProfile,
34
- metadataPath: (_b = iosSubmissionProfile.metadataPath) !== null && _b !== void 0 ? _b : 'store.config.json',
26
+ profile: submitProfile,
27
+ metadataPath: (_c = submitProfile.metadataPath) !== null && _c !== void 0 ? _c : 'store.config.json',
35
28
  user,
36
29
  credentialsCtx: params.credentialsCtx,
37
30
  bundleIdentifier,
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
7
  const events_1 = require("../analytics/events");
8
+ const log_1 = tslib_1.__importDefault(require("../log"));
8
9
  const prompts_1 = require("../prompts");
9
10
  const tasks_1 = require("./apple/tasks");
10
11
  const config_1 = require("./config");
@@ -28,6 +29,8 @@ async function downloadMetadataAsync(metadataCtx) {
28
29
  }
29
30
  const { app, auth } = await (0, context_1.ensureMetadataAppStoreAuthenticatedAsync)(metadataCtx);
30
31
  const { unsubscribeTelemetry, executionId } = (0, telemetry_1.subscribeTelemetry)(events_1.MetadataEvent.APPLE_METADATA_DOWNLOAD, { app, auth });
32
+ log_1.default.addNewLineIfNone();
33
+ log_1.default.log('Downloading App Store configuration...');
31
34
  const errors = [];
32
35
  const config = (0, config_1.createAppleWriter)();
33
36
  const tasks = (0, tasks_1.createAppleTasks)(metadataCtx);
@@ -48,8 +51,12 @@ async function downloadMetadataAsync(metadataCtx) {
48
51
  errors.push(error);
49
52
  }
50
53
  }
51
- await fs_extra_1.default.writeJson(filePath, config.toSchema(), { spaces: 2 });
52
- unsubscribeTelemetry();
54
+ try {
55
+ await fs_extra_1.default.writeJson(filePath, config.toSchema(), { spaces: 2 });
56
+ }
57
+ finally {
58
+ unsubscribeTelemetry();
59
+ }
53
60
  if (errors.length > 0) {
54
61
  throw new errors_1.MetadataDownloadError(errors, executionId);
55
62
  }
@@ -5,8 +5,8 @@ import type { ErrorObject } from 'ajv';
5
5
  * and should contain useful information for the user to solve before trying again.
6
6
  */
7
7
  export declare class MetadataValidationError extends Error {
8
- readonly errors?: ErrorObject[] | undefined;
9
- constructor(message?: string, errors?: ErrorObject[] | undefined);
8
+ readonly errors: ErrorObject[];
9
+ constructor(message?: string, errors?: ErrorObject[]);
10
10
  }
11
11
  /**
12
12
  * If a single entity failed to update, we don't block the other entities from uploading.
@@ -9,7 +9,7 @@ const log_1 = tslib_1.__importStar(require("../log"));
9
9
  * and should contain useful information for the user to solve before trying again.
10
10
  */
11
11
  class MetadataValidationError extends Error {
12
- constructor(message, errors) {
12
+ constructor(message, errors = []) {
13
13
  super(message !== null && message !== void 0 ? message : 'Store configuration validation failed');
14
14
  this.errors = errors;
15
15
  }
@@ -51,7 +51,9 @@ function handleMetadataError(error) {
51
51
  var _a;
52
52
  if (error instanceof MetadataValidationError) {
53
53
  log_1.default.error(error.message);
54
- log_1.default.log((_a = error.errors) === null || _a === void 0 ? void 0 : _a.map(err => ` - ${err.dataPath} ${err.message}`).join('\n'));
54
+ if (((_a = error.errors) === null || _a === void 0 ? void 0 : _a.length) > 0) {
55
+ log_1.default.log(error.errors.map(err => ` - ${err.dataPath} ${err.message}`).join('\n'));
56
+ }
55
57
  return;
56
58
  }
57
59
  if (error instanceof MetadataDownloadError || error instanceof MetadataUploadError) {
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
7
  const events_1 = require("../analytics/events");
8
+ const log_1 = tslib_1.__importDefault(require("../log"));
8
9
  const tasks_1 = require("./apple/tasks");
9
10
  const config_1 = require("./config");
10
11
  const context_1 = require("./context");
@@ -26,6 +27,8 @@ async function uploadMetadataAsync(metadataCtx) {
26
27
  if (!valid) {
27
28
  throw new errors_1.MetadataValidationError(`Store configuration errors found`, validationErrors);
28
29
  }
30
+ log_1.default.addNewLineIfNone();
31
+ log_1.default.log('Uploading App Store configuration...');
29
32
  const errors = [];
30
33
  const config = (0, config_1.createAppleReader)(fileData);
31
34
  const tasks = (0, tasks_1.createAppleTasks)(metadataCtx);
@@ -9,4 +9,4 @@
9
9
  * "pointer": "/data/attributes/earliestReleaseDate"
10
10
  * }
11
11
  */
12
- export declare function removeDatePrecision(date: any): null | Date;
12
+ export declare function removeDatePrecision(date: null | undefined | string | number | Date): null | Date;
@@ -27,7 +27,10 @@ async function ensureProjectExistsAsync(projectInfo) {
27
27
  const account = (0, Account_1.findAccountByName)(actor.accounts, accountName);
28
28
  (0, assert_1.default)(account, `You must have access to the ${accountName} account to run this command`);
29
29
  const projectDashboardUrl = (0, url_1.getProjectDashboardUrl)(accountName, projectName);
30
- const projectLink = (0, terminal_link_1.default)(projectFullName, projectDashboardUrl);
30
+ const projectLink = (0, terminal_link_1.default)(projectFullName, projectDashboardUrl, {
31
+ // https://github.com/sindresorhus/terminal-link/issues/18#issuecomment-1068020361
32
+ fallback: () => `${projectFullName} (${projectDashboardUrl})`,
33
+ });
31
34
  const spinner = (0, ora_1.ora)(`Linking to project ${chalk_1.default.bold(projectFullName)}`).start();
32
35
  const maybeId = await findProjectIdByAccountNameAndSlugNullableAsync(accountName, projectName);
33
36
  if (maybeId) {
@@ -73,5 +73,10 @@ export declare function filterOutAssetsThatAlreadyExistAsync(uniqueAssetsWithSto
73
73
  })[]): Promise<(RawAsset & {
74
74
  storageKey: string;
75
75
  })[]>;
76
- export declare function uploadAssetsAsync(assetsForUpdateInfoGroup: CollectedAssets): Promise<void>;
76
+ declare type AssetUploadResult = {
77
+ assetCount: number;
78
+ uniqueAssetCount: number;
79
+ uniqueUploadedAssetCount: number;
80
+ };
81
+ export declare function uploadAssetsAsync(assetsForUpdateInfoGroup: CollectedAssets, updateSpinnerText?: (updatedText: string) => void): Promise<AssetUploadResult>;
77
82
  export {};
@@ -8,6 +8,7 @@ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
8
  const joi_1 = tslib_1.__importDefault(require("joi"));
9
9
  const mime_1 = tslib_1.__importDefault(require("mime"));
10
10
  const path_1 = tslib_1.__importDefault(require("path"));
11
+ const promise_limit_1 = tslib_1.__importDefault(require("promise-limit"));
11
12
  const generated_1 = require("../graphql/generated");
12
13
  const PublishMutation_1 = require("../graphql/mutations/PublishMutation");
13
14
  const PublishQuery_1 = require("../graphql/queries/PublishQuery");
@@ -178,7 +179,7 @@ async function filterOutAssetsThatAlreadyExistAsync(uniqueAssetsWithStorageKey)
178
179
  return missingAssets;
179
180
  }
180
181
  exports.filterOutAssetsThatAlreadyExistAsync = filterOutAssetsThatAlreadyExistAsync;
181
- async function uploadAssetsAsync(assetsForUpdateInfoGroup) {
182
+ async function uploadAssetsAsync(assetsForUpdateInfoGroup, updateSpinnerText) {
182
183
  let assets = [];
183
184
  let platform;
184
185
  for (platform in assetsForUpdateInfoGroup) {
@@ -188,6 +189,7 @@ async function uploadAssetsAsync(assetsForUpdateInfoGroup) {
188
189
  ...assetsForUpdateInfoGroup[platform].assets,
189
190
  ];
190
191
  }
192
+ updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(`${assets.length} ${assets.length === 1 ? 'asset' : 'assets'} present`);
191
193
  const assetsWithStorageKey = await Promise.all(assets.map(async (asset) => {
192
194
  return {
193
195
  ...asset,
@@ -195,12 +197,18 @@ async function uploadAssetsAsync(assetsForUpdateInfoGroup) {
195
197
  };
196
198
  }));
197
199
  const uniqueAssets = (0, uniqBy_1.default)(assetsWithStorageKey, asset => asset.storageKey);
200
+ updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(`${uniqueAssets.length} unique ${uniqueAssets.length === 1 ? 'asset' : 'assets'} found`);
198
201
  let missingAssets = await filterOutAssetsThatAlreadyExistAsync(uniqueAssets);
202
+ const uniqueUploadedAssetCount = missingAssets.length;
199
203
  const { specifications } = await PublishMutation_1.PublishMutation.getUploadURLsAsync(missingAssets.map(ma => ma.contentType));
204
+ const assetUploadPromiseLimit = (0, promise_limit_1.default)(15);
200
205
  await Promise.all(missingAssets.map((missingAsset, i) => {
201
- const presignedPost = JSON.parse(specifications[i]);
202
- return (0, uploads_1.uploadWithPresignedPostAsync)(missingAsset.path, presignedPost);
206
+ assetUploadPromiseLimit(async () => {
207
+ const presignedPost = JSON.parse(specifications[i]);
208
+ return (0, uploads_1.uploadWithPresignedPostAsync)(missingAsset.path, presignedPost);
209
+ });
203
210
  }));
211
+ updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(`${missingAssets.length} new ${missingAssets.length === 1 ? 'asset' : 'assets'} uploading`);
204
212
  // Wait up to TIMEOUT_LIMIT for assets to be uploaded and processed
205
213
  const start = Date.now();
206
214
  let timeout = 1;
@@ -213,5 +221,10 @@ async function uploadAssetsAsync(assetsForUpdateInfoGroup) {
213
221
  throw new Error('Asset upload timed out. Please try again.');
214
222
  }
215
223
  }
224
+ return {
225
+ assetCount: assets.length,
226
+ uniqueAssetCount: uniqueAssets.length,
227
+ uniqueUploadedAssetCount,
228
+ };
216
229
  }
217
230
  exports.uploadAssetsAsync = uploadAssetsAsync;
@@ -0,0 +1 @@
1
+ export default function uniq<T = any>(items: T[]): T[];
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unique = void 0;
4
- function unique(items) {
3
+ function uniq(items) {
5
4
  const set = new Set(items);
6
5
  return [...set];
7
6
  }
8
- exports.unique = unique;
7
+ exports.default = uniq;
@@ -1,13 +1,13 @@
1
1
  import { Platform } from '@expo/eas-build-job';
2
- import { BuildProfile, ProfileType, SubmitProfile } from '@expo/eas-json';
2
+ import { BuildProfile, EasJsonReader, ProfileType, SubmitProfile } from '@expo/eas-json';
3
3
  declare type EasProfile<T extends ProfileType> = T extends 'build' ? BuildProfile<Platform> : SubmitProfile<Platform>;
4
4
  export declare type ProfileData<T extends ProfileType> = {
5
5
  profile: EasProfile<T>;
6
6
  platform: Platform;
7
7
  profileName: string;
8
8
  };
9
- export declare function getProfilesAsync<T extends ProfileType>({ projectDir, platforms, profileName, type, }: {
10
- projectDir: string;
9
+ export declare function getProfilesAsync<T extends ProfileType>({ easJsonReader, platforms, profileName, type, }: {
10
+ easJsonReader: EasJsonReader;
11
11
  platforms: Platform[];
12
12
  profileName?: string;
13
13
  type: T;
@@ -1,95 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProfilesAsync = void 0;
4
- const tslib_1 = require("tslib");
5
- const eas_json_1 = require("@expo/eas-json");
6
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
- const log_1 = tslib_1.__importDefault(require("../log"));
8
- const prompts_1 = require("../prompts");
9
- async function getProfilesAsync({ projectDir, platforms, profileName, type, }) {
4
+ async function getProfilesAsync({ easJsonReader, platforms, profileName, type, }) {
10
5
  const results = platforms.map(async function (platform) {
11
- if (profileName) {
12
- const profile = await readProfileAsync({ projectDir, platform, type, profileName });
13
- return {
14
- profile,
15
- profileName,
16
- platform,
17
- };
18
- }
19
- try {
20
- const profile = await readProfileAsync({
21
- projectDir,
22
- platform,
23
- type,
24
- profileName: 'production',
25
- });
26
- return {
27
- profile,
28
- profileName: 'production',
29
- platform,
30
- };
31
- }
32
- catch (error) {
33
- if (!(error instanceof eas_json_1.errors.MissingProfileError)) {
34
- throw error;
35
- }
36
- }
37
- try {
38
- const profile = await readProfileAsync({
39
- projectDir,
40
- platform,
41
- type,
42
- profileName: 'release',
43
- });
44
- log_1.default.warn(`The default profile changed from ${chalk_1.default.bold('release')} to ${chalk_1.default.bold('production')}. We detected that you still have a ${chalk_1.default.bold('release')} build profile, so we are using it. Update eas.json to have a profile named ${chalk_1.default.bold('production')} under the ${chalk_1.default.bold('build')} key, or specify which profile you'd like to use with the ${chalk_1.default.bold('--profile')} flag. This fallback behavior will be removed in the next major version of EAS CLI.`);
45
- return {
46
- profile,
47
- profileName: 'release',
48
- platform,
49
- };
50
- }
51
- catch (error) {
52
- if (!(error instanceof eas_json_1.errors.MissingProfileError)) {
53
- throw error;
54
- }
55
- }
56
- const defaultProfile = getDefaultProfile({ platform, type });
57
- if (defaultProfile) {
58
- return {
59
- profile: defaultProfile,
60
- profileName: '__default__',
61
- platform,
62
- };
63
- }
64
- const profileNames = await readProfileNamesAsync({
65
- projectDir,
66
- type,
67
- });
68
- if (profileNames.length === 0) {
69
- throw new eas_json_1.errors.MissingProfileError(`Missing profile in eas.json: ${profileName !== null && profileName !== void 0 ? profileName : 'production'}`);
70
- }
71
- const choices = profileNames.map(profileName => ({
72
- title: profileName,
73
- value: profileName,
74
- }));
75
- const chosenProfileName = await (0, prompts_1.selectAsync)('The "production" profile is missing in eas.json. Pick another profile:', choices);
76
6
  const profile = await readProfileAsync({
77
- projectDir,
7
+ easJsonReader,
78
8
  platform,
79
9
  type,
80
- profileName: chosenProfileName,
10
+ profileName,
81
11
  });
82
12
  return {
83
13
  profile,
84
- profileName: chosenProfileName,
14
+ profileName: profileName !== null && profileName !== void 0 ? profileName : 'production',
85
15
  platform,
86
16
  };
87
17
  });
88
18
  return await Promise.all(results);
89
19
  }
90
20
  exports.getProfilesAsync = getProfilesAsync;
91
- async function readProfileAsync({ projectDir, platform, type, profileName, }) {
92
- const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
21
+ async function readProfileAsync({ easJsonReader, platform, type, profileName, }) {
93
22
  if (type === 'build') {
94
23
  return (await easJsonReader.getBuildProfileAsync(platform, profileName));
95
24
  }
@@ -97,20 +26,3 @@ async function readProfileAsync({ projectDir, platform, type, profileName, }) {
97
26
  return (await easJsonReader.getSubmitProfileAsync(platform, profileName));
98
27
  }
99
28
  }
100
- function getDefaultProfile({ platform, type, }) {
101
- if (type === 'build') {
102
- return null;
103
- }
104
- else {
105
- return (0, eas_json_1.getDefaultSubmitProfile)(platform);
106
- }
107
- }
108
- async function readProfileNamesAsync({ projectDir, type, }) {
109
- const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
110
- if (type === 'build') {
111
- return await easJsonReader.getBuildProfileNamesAsync();
112
- }
113
- else {
114
- return await easJsonReader.getSubmitProfileNamesAsync();
115
- }
116
- }
@@ -1 +1 @@
1
- {"version":"0.53.1","commands":{"analytics":{"id":"analytics","description":"display or change analytics settings","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"display project configuration (app.json + eas.json)","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"credentials":{"id":"credentials","description":"manage credentials","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit app binary to App Store and/or Play Store","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"id":{"name":"id","type":"option","description":"ID of the build to submit","multiple":false,"exclusive":["latest, path, url"]},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file","multiple":false,"exclusive":["latest","id","url"]},"url":{"name":"url","type":"option","description":"App archive url","multiple":false,"exclusive":["latest","id","path"]},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"account:login":{"id":"account:login","description":"log in with your Expo account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"create a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"_globalFlags":{}},"branch:delete":{"id":"branch:delete","description":"delete a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"_globalFlags":{}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[],"_globalFlags":{}},"branch:publish":{"id":"branch:publish","description":"deprecated, use \"eas update\"","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[]},"branch:rename":{"id":"branch:rename","description":"rename a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false,"multiple":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false,"multiple":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[],"_globalFlags":{}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"_globalFlags":{}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"configure the project to support EAS Build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]}},"args":[],"_globalFlags":{}},"build":{"id":"build","description":"start a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"output":{"name":"output","type":"option","description":"Output path for local build","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false,"exclusive":["auto-submit-with-profile"]},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME","multiple":false,"exclusive":["auto-submit"]}},"args":[],"_globalFlags":{}},"build:inspect":{"id":"build:inspect","description":"inspect the state of the project at specific build stages, useful for troubleshooting","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"stage":{"name":"stage","type":"option","char":"s","description":"Stage of the build you want to inspect.\n archive - builds the project archive that would be uploaded to EAS when building\n pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.\n post-build - builds the native project and leaves the output directory for inspection","required":true,"helpValue":"(archive|pre-build|post-build)","multiple":false,"options":["archive","pre-build","post-build"]},"output":{"name":"output","type":"option","char":"o","description":"Output directory.","required":true,"helpValue":"OUTPUT_DIRECTORY","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete OUTPUT_DIRECTORY if it already exists.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"_globalFlags":{}},"build:list":{"id":"build:list","description":"list all builds for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","multiple":false,"options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","multiple":false,"options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","multiple":false,"options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option","multiple":false},"appVersion":{"name":"appVersion","type":"option","multiple":false},"appBuildVersion":{"name":"appBuildVersion","type":"option","multiple":false},"sdkVersion":{"name":"sdkVersion","type":"option","multiple":false},"runtimeVersion":{"name":"runtimeVersion","type":"option","multiple":false},"appIdentifier":{"name":"appIdentifier","type":"option","multiple":false},"buildProfile":{"name":"buildProfile","type":"option","multiple":false},"gitCommitHash":{"name":"gitCommitHash","type":"option","multiple":false},"limit":{"name":"limit","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"build:view":{"id":"build:view","description":"view a build for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}],"_globalFlags":{}},"channel:create":{"id":"channel:create","description":"create a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"_globalFlags":{}},"channel:delete":{"id":"channel:delete","description":"Delete a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"_globalFlags":{}},"channel:edit":{"id":"channel:edit","description":"point a channel at a new branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to","multiple":false},"json":{"name":"json","type":"boolean","description":"Print output as a JSON object with the channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"_globalFlags":{}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[],"_globalFlags":{}},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false,"multiple":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false,"multiple":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"_globalFlags":{}},"channel:view":{"id":"channel:view","description":"view a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"_globalFlags":{}},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:delete":{"id":"device:delete","description":"remove a registered device from your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false},"udid":{"name":"udid","type":"option","multiple":true}},"args":[],"_globalFlags":{}},"device:list":{"id":"device:list","description":"list all registered devices for your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"device:view":{"id":"device:view","description":"view a device for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"create an environment secret on the current project or owner account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret","multiple":false},"value":{"name":"value","type":"option","description":"Value of the secret","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[],"_globalFlags":{}},"secret:delete":{"id":"secret:delete","description":"delete an environment secret by ID","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete","multiple":false}},"args":[],"_globalFlags":{}},"secret:list":{"id":"secret:list","description":"list environment secrets available for your current app","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:configure":{"id":"update:configure","description":"configure the project to support EAS Update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"}},"args":[],"_globalFlags":{}},"update:delete":{"id":"update:delete","description":"delete all the updates in an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"_globalFlags":{}},"update":{"id":"update","description":"publish an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Branch to publish the update group on","required":false,"multiple":false},"message":{"name":"message","type":"option","description":"A short message describing the update","required":false,"multiple":false},"republish":{"name":"republish","type":"boolean","description":"Republish an update group","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish","multiple":false,"exclusive":["input-dir","skip-bundler"]},"input-dir":{"name":"input-dir","type":"option","description":"Location of the bundle","required":false,"multiple":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"Skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","required":false,"helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"Use the current git branch and commit message for the EAS branch and update message","allowNo":false},"private-key-path":{"name":"private-key-path","type":"option","description":"File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory.","required":false,"multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"update:list":{"id":"update:list","description":"view the recent updates for a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List all updates on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List all updates associated with this project","allowNo":false,"exclusive":["branch"]},"json":{"name":"json","type":"boolean","description":"Return a json with all of the recent update groups.","allowNo":false}},"args":[],"_globalFlags":{}},"update:view":{"id":"update:view","description":"update group details","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"_globalFlags":{}},"webhook:create":{"id":"webhook:create","description":"create a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"list webhooks","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]}},"args":[],"_globalFlags":{}},"webhook:update":{"id":"webhook:update","description":"update a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true,"multiple":false},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:view":{"id":"webhook:view","description":"view a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
1
+ {"version":"0.54.0","commands":{"analytics":{"id":"analytics","description":"display or change analytics settings","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"display project configuration (app.json + eas.json)","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"credentials":{"id":"credentials","description":"manage credentials","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit app binary to App Store and/or Play Store","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"id":{"name":"id","type":"option","description":"ID of the build to submit","multiple":false,"exclusive":["latest, path, url"]},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file","multiple":false,"exclusive":["latest","id","url"]},"url":{"name":"url","type":"option","description":"App archive url","multiple":false,"exclusive":["latest","id","path"]},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"account:login":{"id":"account:login","description":"log in with your Expo account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"create a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"_globalFlags":{}},"branch:delete":{"id":"branch:delete","description":"delete a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"_globalFlags":{}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[],"_globalFlags":{}},"branch:publish":{"id":"branch:publish","description":"deprecated, use \"eas update\"","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[]},"branch:rename":{"id":"branch:rename","description":"rename a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false,"multiple":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false,"multiple":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[],"_globalFlags":{}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"_globalFlags":{}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"configure the project to support EAS Build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]}},"args":[],"_globalFlags":{}},"build":{"id":"build","description":"start a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"output":{"name":"output","type":"option","description":"Output path for local build","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete","allowNo":true},"clear-cache":{"name":"clear-cache","type":"boolean","description":"Clear cache before the build","allowNo":false},"auto-submit":{"name":"auto-submit","type":"boolean","description":"Submit on build complete using the submit profile with the same name as the build profile","allowNo":false,"exclusive":["auto-submit-with-profile"]},"auto-submit-with-profile":{"name":"auto-submit-with-profile","type":"option","description":"Submit on build complete using the submit profile with provided name","helpValue":"PROFILE_NAME","multiple":false,"exclusive":["auto-submit"]}},"args":[],"_globalFlags":{}},"build:inspect":{"id":"build:inspect","description":"inspect the state of the project at specific build stages, useful for troubleshooting","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"stage":{"name":"stage","type":"option","char":"s","description":"Stage of the build you want to inspect.\n archive - builds the project archive that would be uploaded to EAS when building\n pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.\n post-build - builds the native project and leaves the output directory for inspection","required":true,"helpValue":"(archive|pre-build|post-build)","multiple":false,"options":["archive","pre-build","post-build"]},"output":{"name":"output","type":"option","char":"o","description":"Output directory.","required":true,"helpValue":"OUTPUT_DIRECTORY","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete OUTPUT_DIRECTORY if it already exists.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"_globalFlags":{}},"build:list":{"id":"build:list","description":"list all builds for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","multiple":false,"options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","multiple":false,"options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","multiple":false,"options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option","multiple":false},"appVersion":{"name":"appVersion","type":"option","multiple":false},"appBuildVersion":{"name":"appBuildVersion","type":"option","multiple":false},"sdkVersion":{"name":"sdkVersion","type":"option","multiple":false},"runtimeVersion":{"name":"runtimeVersion","type":"option","multiple":false},"appIdentifier":{"name":"appIdentifier","type":"option","multiple":false},"buildProfile":{"name":"buildProfile","type":"option","multiple":false},"gitCommitHash":{"name":"gitCommitHash","type":"option","multiple":false},"limit":{"name":"limit","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"build:view":{"id":"build:view","description":"view a build for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false}},"args":[{"name":"BUILD_ID"}],"_globalFlags":{}},"channel:create":{"id":"channel:create","description":"create a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"_globalFlags":{}},"channel:delete":{"id":"channel:delete","description":"Delete a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"_globalFlags":{}},"channel:edit":{"id":"channel:edit","description":"point a channel at a new branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to","multiple":false},"json":{"name":"json","type":"boolean","description":"Print output as a JSON object with the channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"_globalFlags":{}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[],"_globalFlags":{}},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false,"multiple":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false,"multiple":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"_globalFlags":{}},"channel:view":{"id":"channel:view","description":"view a channel","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"_globalFlags":{}},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:delete":{"id":"device:delete","description":"remove a registered device from your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false},"udid":{"name":"udid","type":"option","multiple":true}},"args":[],"_globalFlags":{}},"device:list":{"id":"device:list","description":"list all registered devices for your account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option","multiple":false}},"args":[],"_globalFlags":{}},"device:view":{"id":"device:view","description":"view a device for your project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"metadata:pull":{"id":"metadata:pull","description":"generate the local store configuration from the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"metadata:push":{"id":"metadata:push","description":"sync the local store configuration to the app stores","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"_globalFlags":{}},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"create an environment secret on the current project or owner account","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret","multiple":false},"value":{"name":"value","type":"option","description":"Value of the secret","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[],"_globalFlags":{}},"secret:delete":{"id":"secret:delete","description":"delete an environment secret by ID","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete","multiple":false}},"args":[],"_globalFlags":{}},"secret:list":{"id":"secret:list","description":"list environment secrets available for your current app","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:configure":{"id":"update:configure","description":"configure the project to support EAS Update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"}},"args":[],"_globalFlags":{}},"update:delete":{"id":"update:delete","description":"delete all the updates in an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"_globalFlags":{}},"update":{"id":"update","description":"publish an update group","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Branch to publish the update group on","required":false,"multiple":false},"message":{"name":"message","type":"option","description":"A short message describing the update","required":false,"multiple":false},"republish":{"name":"republish","type":"boolean","description":"Republish an update group","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish","multiple":false,"exclusive":["input-dir","skip-bundler"]},"input-dir":{"name":"input-dir","type":"option","description":"Location of the bundle","required":false,"multiple":false,"default":"dist"},"skip-bundler":{"name":"skip-bundler","type":"boolean","description":"Skip running Expo CLI to bundle the app before publishing","allowNo":false},"platform":{"name":"platform","type":"option","char":"p","required":false,"helpValue":"(android|ios|all)","multiple":false,"options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"Use the current git branch and commit message for the EAS branch and update message","allowNo":false},"private-key-path":{"name":"private-key-path","type":"option","description":"File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory.","required":false,"multiple":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[],"_globalFlags":{}},"update:list":{"id":"update:list","description":"view the recent updates for a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List all updates on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List all updates associated with this project","allowNo":false,"exclusive":["branch"]},"json":{"name":"json","type":"boolean","description":"Return a json with all of the recent update groups.","allowNo":false}},"args":[],"_globalFlags":{}},"update:view":{"id":"update:view","description":"update group details","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"_globalFlags":{}},"webhook:create":{"id":"webhook:create","description":"create a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"list webhooks","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]}},"args":[],"_globalFlags":{}},"webhook:update":{"id":"webhook:update","description":"update a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true,"multiple":false},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","multiple":false,"options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL","multiple":false},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.","multiple":false}},"args":[],"_globalFlags":{}},"webhook:view":{"id":"webhook:view","description":"view a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}