eas-cli 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,8 @@ export type RawAsset = {
21
21
  fileExtension?: string;
22
22
  contentType: string;
23
23
  path: string;
24
+ /** Original asset path derrived from asset map, or exported folder */
25
+ originalPath?: string;
24
26
  };
25
27
  type CollectedAssets = {
26
28
  [platform in Platform]?: {
@@ -42,6 +44,11 @@ type ManifestFragment = {
42
44
  type UpdateInfoGroup = {
43
45
  [key in Platform]: ManifestFragment;
44
46
  };
47
+ type AssetMap = Record<string, {
48
+ httpServerLocation: string;
49
+ name: string;
50
+ type: string;
51
+ }>;
45
52
  export declare const MetadataJoi: Joi.ObjectSchema<any>;
46
53
  export declare function guessContentTypeFromExtension(ext?: string): string;
47
54
  export declare function getBase64URLEncoding(buffer: Buffer): string;
@@ -69,6 +76,13 @@ export declare function resolveInputDirectoryAsync(inputDir: string, { skipBundl
69
76
  }): Promise<string>;
70
77
  export declare function loadMetadata(distRoot: string): Metadata;
71
78
  export declare function filterExportedPlatformsByFlag<T extends Partial<Record<Platform, any>>>(record: T, platformFlag: ExpoCLIExportPlatformFlag): T;
79
+ /** Try to load the asset map for logging the names of assets published */
80
+ export declare function loadAssetMapAsync(distRoot: string): Promise<AssetMap | null>;
81
+ export declare function getAssetHashFromPath(assetPath: string): string | null;
82
+ export declare function getOriginalPathFromAssetMap(assetMap: AssetMap | null, asset: {
83
+ path: string;
84
+ ext: string;
85
+ }): string | null;
72
86
  /** Given a directory, load the metadata.json and collect the assets for each platform. */
73
87
  export declare function collectAssetsAsync(dir: string): Promise<CollectedAssets>;
74
88
  export declare function filterOutAssetsThatAlreadyExistAsync(graphqlClient: ExpoGraphqlClient, uniqueAssetsWithStorageKey: (RawAsset & {
@@ -77,9 +91,17 @@ export declare function filterOutAssetsThatAlreadyExistAsync(graphqlClient: Expo
77
91
  storageKey: string;
78
92
  })[]>;
79
93
  type AssetUploadResult = {
94
+ /** All found assets within the exported folder per platform */
80
95
  assetCount: number;
96
+ /** The uploaded JS bundles, per platform */
97
+ launchAssetCount: number;
98
+ /** All unique assets within the exported folder with platforms combined */
81
99
  uniqueAssetCount: number;
100
+ /** All unique assets uploaded */
82
101
  uniqueUploadedAssetCount: number;
102
+ /** All (non-launch) asset original paths, used for logging */
103
+ uniqueUploadedAssetPaths: string[];
104
+ /** The asset limit received from the server */
83
105
  assetLimitPerUpdateGroup: number;
84
106
  };
85
107
  export declare function uploadAssetsAsync(graphqlClient: ExpoGraphqlClient, assetsForUpdateInfoGroup: CollectedAssets, projectId: string, updateSpinnerText?: (totalAssets: number, missingAssets: number) => void): Promise<AssetUploadResult>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUploadedAssetCountAboveWarningThreshold = exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.filterExportedPlatformsByFlag = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi = void 0;
3
+ exports.isUploadedAssetCountAboveWarningThreshold = exports.uploadAssetsAsync = exports.filterOutAssetsThatAlreadyExistAsync = exports.collectAssetsAsync = exports.getOriginalPathFromAssetMap = exports.getAssetHashFromPath = exports.loadAssetMapAsync = exports.filterExportedPlatformsByFlag = exports.loadMetadata = exports.resolveInputDirectoryAsync = exports.buildBundlesAsync = exports.buildUnsortedUpdateInfoGroupAsync = exports.convertAssetToUpdateInfoGroupFormatAsync = exports.getStorageKeyForAssetAsync = exports.getStorageKey = exports.getBase64URLEncoding = exports.guessContentTypeFromExtension = exports.MetadataJoi = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const json_file_1 = tslib_1.__importDefault(require("@expo/json-file"));
6
6
  const crypto_1 = tslib_1.__importDefault(require("crypto"));
@@ -16,6 +16,7 @@ const log_1 = tslib_1.__importDefault(require("../log"));
16
16
  const uploads_1 = require("../uploads");
17
17
  const expoCli_1 = require("../utils/expoCli");
18
18
  const chunk_1 = tslib_1.__importDefault(require("../utils/expodash/chunk"));
19
+ const filter_1 = require("../utils/expodash/filter");
19
20
  const uniqBy_1 = tslib_1.__importDefault(require("../utils/expodash/uniqBy"));
20
21
  const fileMetadataJoi = joi_1.default.object({
21
22
  assets: joi_1.default.array()
@@ -115,6 +116,7 @@ async function buildBundlesAsync({ projectDir, inputDir, exp, platformFlag, }) {
115
116
  '--output-dir',
116
117
  inputDir,
117
118
  '--dump-sourcemap',
119
+ '--dump-assetmap',
118
120
  '--platform',
119
121
  platformFlag,
120
122
  ]);
@@ -128,6 +130,7 @@ async function buildBundlesAsync({ projectDir, inputDir, exp, platformFlag, }) {
128
130
  '--experimental-bundle',
129
131
  '--non-interactive',
130
132
  '--dump-sourcemap',
133
+ '--dump-assetmap',
131
134
  '--platform',
132
135
  platformFlag,
133
136
  ]);
@@ -179,9 +182,42 @@ function filterExportedPlatformsByFlag(record, platformFlag) {
179
182
  return { [platform]: record[platform] };
180
183
  }
181
184
  exports.filterExportedPlatformsByFlag = filterExportedPlatformsByFlag;
185
+ /** Try to load the asset map for logging the names of assets published */
186
+ async function loadAssetMapAsync(distRoot) {
187
+ const assetMapPath = path_1.default.join(distRoot, 'assetmap.json');
188
+ if (!(await fs_extra_1.default.pathExists(assetMapPath))) {
189
+ return null;
190
+ }
191
+ const assetMap = json_file_1.default.read(path_1.default.join(distRoot, 'assetmap.json'));
192
+ // TODO: basic validation?
193
+ return assetMap;
194
+ }
195
+ exports.loadAssetMapAsync = loadAssetMapAsync;
196
+ // exposed for testing
197
+ function getAssetHashFromPath(assetPath) {
198
+ var _a;
199
+ const [, hash] = (_a = assetPath.match(new RegExp(/assets\/([a-z0-9]+)$/, 'i'))) !== null && _a !== void 0 ? _a : [];
200
+ return hash !== null && hash !== void 0 ? hash : null;
201
+ }
202
+ exports.getAssetHashFromPath = getAssetHashFromPath;
203
+ // exposed for testing
204
+ function getOriginalPathFromAssetMap(assetMap, asset) {
205
+ if (!assetMap) {
206
+ return null;
207
+ }
208
+ const assetHash = getAssetHashFromPath(asset.path);
209
+ const assetMapEntry = assetHash && assetMap[assetHash];
210
+ if (!assetMapEntry) {
211
+ return null;
212
+ }
213
+ const pathPrefix = assetMapEntry.httpServerLocation.substring('/assets'.length);
214
+ return `${pathPrefix}/${assetMapEntry.name}.${assetMapEntry.type}`;
215
+ }
216
+ exports.getOriginalPathFromAssetMap = getOriginalPathFromAssetMap;
182
217
  /** Given a directory, load the metadata.json and collect the assets for each platform. */
183
218
  async function collectAssetsAsync(dir) {
184
219
  const metadata = loadMetadata(dir);
220
+ const assetmap = await loadAssetMapAsync(dir);
185
221
  const collectedAssets = {};
186
222
  for (const platform of Object.keys(metadata.fileMetadata)) {
187
223
  collectedAssets[platform] = {
@@ -190,11 +226,15 @@ async function collectAssetsAsync(dir) {
190
226
  contentType: 'application/javascript',
191
227
  path: path_1.default.resolve(dir, metadata.fileMetadata[platform].bundle),
192
228
  },
193
- assets: metadata.fileMetadata[platform].assets.map(asset => ({
194
- fileExtension: asset.ext ? ensureLeadingPeriod(asset.ext) : undefined,
195
- contentType: guessContentTypeFromExtension(asset.ext),
196
- path: path_1.default.join(dir, asset.path),
197
- })),
229
+ assets: metadata.fileMetadata[platform].assets.map(asset => {
230
+ var _a;
231
+ return ({
232
+ fileExtension: asset.ext ? ensureLeadingPeriod(asset.ext) : undefined,
233
+ originalPath: (_a = getOriginalPathFromAssetMap(assetmap, asset)) !== null && _a !== void 0 ? _a : undefined,
234
+ contentType: guessContentTypeFromExtension(asset.ext),
235
+ path: path_1.default.join(dir, asset.path),
236
+ });
237
+ }),
198
238
  };
199
239
  }
200
240
  return collectedAssets;
@@ -218,7 +258,9 @@ exports.filterOutAssetsThatAlreadyExistAsync = filterOutAssetsThatAlreadyExistAs
218
258
  async function uploadAssetsAsync(graphqlClient, assetsForUpdateInfoGroup, projectId, updateSpinnerText) {
219
259
  let assets = [];
220
260
  let platform;
261
+ const launchAssets = [];
221
262
  for (platform in assetsForUpdateInfoGroup) {
263
+ launchAssets.push(assetsForUpdateInfoGroup[platform].launchAsset);
222
264
  assets = [
223
265
  ...assets,
224
266
  assetsForUpdateInfoGroup[platform].launchAsset,
@@ -236,6 +278,7 @@ async function uploadAssetsAsync(graphqlClient, assetsForUpdateInfoGroup, projec
236
278
  updateSpinnerText === null || updateSpinnerText === void 0 ? void 0 : updateSpinnerText(totalAssets, totalAssets);
237
279
  let missingAssets = await filterOutAssetsThatAlreadyExistAsync(graphqlClient, uniqueAssets);
238
280
  const uniqueUploadedAssetCount = missingAssets.length;
281
+ const uniqueUploadedAssetPaths = missingAssets.map(asset => asset.originalPath).filter(filter_1.truthy);
239
282
  const missingAssetChunks = (0, chunk_1.default)(missingAssets, 100);
240
283
  const specifications = [];
241
284
  for (const missingAssets of missingAssetChunks) {
@@ -263,8 +306,10 @@ async function uploadAssetsAsync(graphqlClient, assetsForUpdateInfoGroup, projec
263
306
  }
264
307
  return {
265
308
  assetCount: assets.length,
309
+ launchAssetCount: launchAssets.length,
266
310
  uniqueAssetCount: uniqueAssets.length,
267
311
  uniqueUploadedAssetCount,
312
+ uniqueUploadedAssetPaths,
268
313
  assetLimitPerUpdateGroup,
269
314
  };
270
315
  }
@@ -190,22 +190,31 @@ async function handleBuildListSourceAsync(ctx) {
190
190
  }
191
191
  }
192
192
  function formatBuildChoice(build, expiryDate) {
193
- const { id, updatedAt, runtimeVersion, buildProfile, gitCommitHash, gitCommitMessage, channel } = build;
194
- const formatValue = (field) => (field ? chalk_1.default.bold(field) : 'Unknown');
193
+ const { id, updatedAt, runtimeVersion, buildProfile, gitCommitHash, gitCommitMessage, channel, message, } = build;
195
194
  const buildDate = new Date(updatedAt);
196
- const formattedCommitData = gitCommitHash && gitCommitMessage
197
- ? `${gitCommitHash.slice(0, 7)} "${chalk_1.default.bold(gitCommitMessage)}"`
198
- : 'Unknown';
195
+ const splitCommitMessage = gitCommitMessage === null || gitCommitMessage === void 0 ? void 0 : gitCommitMessage.split('\n');
196
+ const formattedCommitData = gitCommitHash && splitCommitMessage && splitCommitMessage.length > 0
197
+ ? `${gitCommitHash.slice(0, 7)} "${chalk_1.default.bold(splitCommitMessage[0] + (splitCommitMessage.length > 1 ? '…' : ''))}"`
198
+ : null;
199
199
  const title = `${chalk_1.default.bold(`ID:`)} ${id} (${chalk_1.default.bold(`${(0, date_1.fromNow)(buildDate)} ago`)})`;
200
- const description = [
201
- `\t${chalk_1.default.bold(`Profile:`)} ${formatValue(buildProfile)}`,
202
- `\t${chalk_1.default.bold(`Channel:`)} ${formatValue(channel)}`,
203
- `\t${chalk_1.default.bold(`Runtime version:`)} ${formatValue(runtimeVersion)}`,
204
- `\t${chalk_1.default.bold(`Commit:`)} ${formattedCommitData}`,
205
- ].join('\n');
200
+ const descriptionItems = [
201
+ { name: 'Profile', value: buildProfile ? chalk_1.default.bold(buildProfile) : null },
202
+ { name: 'Channel', value: channel ? chalk_1.default.bold(channel) : null },
203
+ { name: 'Runtime version', value: runtimeVersion ? chalk_1.default.bold(runtimeVersion) : null },
204
+ { name: 'Commit', value: formattedCommitData },
205
+ {
206
+ name: 'Message',
207
+ value: message
208
+ ? chalk_1.default.bold(message.length > 200 ? `${message.slice(0, 200)}...` : message)
209
+ : null,
210
+ },
211
+ ];
212
+ const filteredDescriptionArray = descriptionItems
213
+ .filter(item => item.value)
214
+ .map(item => `${chalk_1.default.bold(item.name)}: ${item.value}`);
206
215
  return {
207
216
  title,
208
- description,
217
+ description: filteredDescriptionArray.length > 0 ? filteredDescriptionArray.join('\n') : '',
209
218
  value: build,
210
219
  disabled: buildDate < expiryDate,
211
220
  };
@@ -1 +1 @@
1
- {"version":"3.6.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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"eas-json-only":{"name":"eas-json-only","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,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"getDynamicProjectConfigAsync":{},"projectDir":{}}},"credentials":{"id":"credentials","description":"manage credentials","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"]}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"getDynamicProjectConfigAsync":{},"analytics":{}}},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"projectDir":{}}},"open":{"id":"open","description":"open the project page in a web browser","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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","char":"e","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 EAS Submit","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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"projectDir":{},"analytics":{}}},"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":[],"contextDefinition":{"sessionManager":{}}},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[],"contextDefinition":{"sessionManager":{}}},"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":[],"contextDefinition":{"maybeLoggedIn":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 25 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"BUILD_ID"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":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"]},"resource-class":{"name":"resource-class","type":"option","description":"The instance type that will be used to run this build [experimental]","hidden":true,"helpValue":"(default|large|m1-experimental|m1-medium|m1-large|intel-medium|medium)","multiple":false,"options":["default","large","m1-experimental","m1-medium","m1-large","intel-medium","medium"],"deprecated":{"message":"The --resource-class flag has been deprecated. Define the resource class in eas.json.\nLearn more: https://docs.expo.dev/build-reference/eas-json/"}},"message":{"name":"message","type":"option","char":"m","description":"A short message describing the build","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"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","char":"e","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":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"build:internal":{"id":"build:internal","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"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"]},"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},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 10 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"build:resign":{"id":"build:resign","description":"re-sign a build archive","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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete.","allowNo":true},"id":{"name":"id","type":"option","description":"ID of the build to re-sign.","multiple":false},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"build:run":{"id":"build:run","description":"run simulator/emulator builds from eas-cli","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"latest":{"name":"latest","type":"boolean","description":"Run the latest simulator/emulator build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"url":{"name":"url","type":"option","description":"Simulator/Emulator build archive url","multiple":false,"exclusive":["latest","id","path"]},"path":{"name":"path","type":"option","description":"Path to the simulator/emulator build archive or app","multiple":false,"exclusive":["latest","id","url"]},"id":{"name":"id","type":"option","description":"ID of the simulator/emulator build to run","multiple":false,"exclusive":["latest, path, url"]},"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"projectDir":{}}},"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"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 10 and is capped at 25.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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","description":"The Apple team ID on which to find the device","multiple":false},"udid":{"name":"udid","type":"option","description":"The Apple device ID to disable","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"metadata:lint":{"id":"metadata:lint","description":"validate the local store configuration","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},"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":[],"contextDefinition":{"projectDir":{}}},"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","char":"e","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"analytics":{}}},"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","char":"e","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"analytics":{}}},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":{"id":{"name":"id","type":"option","description":"ID of the EAS project to link","multiple":false},"force":{"name":"force","type":"boolean","description":"Whether to overwrite any existing project ID","allowNo":false,"dependsOn":["id"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false,"dependsOn":["id"]}},"args":[],"contextDefinition":{"loggedIn":{},"projectDir":{}}},"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":"Text value or path to a file to store in the secret","multiple":false},"type":{"name":"type","type":"option","description":"The type of secret","helpValue":"(string|file)","multiple":false,"options":["string","file"]},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"secret:push":{"id":"secret:push","description":"read environment secrets from env file and store on the server","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secrets","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"env-file":{"name":"env-file","type":"option","description":"Env file with secrets","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"contextDefinition":{"loggedIn":{}}},"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},"channel":{"name":"channel","type":"option","description":"Channel that the published update should affect","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 (deprecated, see republish command)","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish (deprecated, see republish command)","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"},"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},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"getDynamicProjectConfigAsync":{},"loggedIn":{}}},"update:list":{"id":"update:list","description":"view the recent updates","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List updates only on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List updates on all branches","allowNo":false,"exclusive":["branch"]},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 25 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"update:republish":{"id":"update:republish","description":"rollback to an existing update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"channel":{"name":"channel","type":"option","description":"Channel name to select an update to republish from","multiple":false,"exclusive":["branch","group"]},"branch":{"name":"branch","type":"option","description":"Branch name to select an update to republish from","multiple":false,"exclusive":["channel","group"]},"group":{"name":"group","type":"option","description":"Update group ID to republish","multiple":false,"exclusive":["branch","channel"]},"message":{"name":"message","type":"option","description":"Short message describing the republished update","required":false,"multiple":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,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"contextDefinition":{"loggedIn":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{}}},"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}],"contextDefinition":{"loggedIn":{}}},"build:version:set":{"id":"build:version:set","description":"Update version of an app.","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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{}}},"build:version:sync":{"id":"build:version:sync","description":"Update a version in native code with a value stored on EAS servers","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"]},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{}}}}}
1
+ {"version":"3.7.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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"eas-json-only":{"name":"eas-json-only","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,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"getDynamicProjectConfigAsync":{},"projectDir":{}}},"credentials":{"id":"credentials","description":"manage credentials","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"]}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"getDynamicProjectConfigAsync":{},"analytics":{}}},"diagnostics":{"id":"diagnostics","description":"display environment info","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"projectDir":{}}},"open":{"id":"open","description":"open the project page in a web browser","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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","char":"e","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 EAS Submit","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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"projectDir":{},"analytics":{}}},"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":[],"contextDefinition":{"sessionManager":{}}},"account:logout":{"id":"account:logout","description":"log out","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[],"contextDefinition":{"sessionManager":{}}},"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":[],"contextDefinition":{"maybeLoggedIn":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"branch:list":{"id":"branch:list","description":"list all branches","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"branch:view":{"id":"branch:view","description":"view a branch","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 25 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"build:cancel":{"id":"build:cancel","description":"cancel a build","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"BUILD_ID"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","hidden":true,"allowNo":false},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":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"]},"resource-class":{"name":"resource-class","type":"option","description":"The instance type that will be used to run this build [experimental]","hidden":true,"helpValue":"(default|large|m1-experimental|m1-medium|m1-large|intel-medium|medium)","multiple":false,"options":["default","large","m1-experimental","m1-medium","m1-large","intel-medium","medium"],"deprecated":{"message":"The --resource-class flag has been deprecated. Define the resource class in eas.json.\nLearn more: https://docs.expo.dev/build-reference/eas-json/"}},"message":{"name":"message","type":"option","char":"m","description":"A short message describing the build","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"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","char":"e","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":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"build:internal":{"id":"build:internal","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","required":true,"helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"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"]},"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},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 10 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"build:resign":{"id":"build:resign","description":"re-sign a build archive","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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false},"wait":{"name":"wait","type":"boolean","description":"Wait for build(s) to complete.","allowNo":true},"id":{"name":"id","type":"option","description":"ID of the build to re-sign.","multiple":false},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{},"analytics":{}}},"build:run":{"id":"build:run","description":"run simulator/emulator builds from eas-cli","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"latest":{"name":"latest","type":"boolean","description":"Run the latest simulator/emulator build for specified platform","allowNo":false,"exclusive":["id","path","url"]},"url":{"name":"url","type":"option","description":"Simulator/Emulator build archive url","multiple":false,"exclusive":["latest","id","path"]},"path":{"name":"path","type":"option","description":"Path to the simulator/emulator build archive or app","multiple":false,"exclusive":["latest","id","url"]},"id":{"name":"id","type":"option","description":"ID of the simulator/emulator build to run","multiple":false,"exclusive":["latest, path, url"]},"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","multiple":false,"options":["android","ios"]},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"projectDir":{}}},"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"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"channel:list":{"id":"channel:list","description":"list all channels","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 10 and is capped at 25.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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","description":"The Apple team ID on which to find the device","multiple":false},"udid":{"name":"udid","type":"option","description":"The Apple device ID to disable","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 50 and is capped at 100.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"metadata:lint":{"id":"metadata:lint","description":"validate the local store configuration","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},"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":[],"contextDefinition":{"projectDir":{}}},"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","char":"e","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"analytics":{}}},"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","char":"e","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json.","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{},"analytics":{}}},"project:info":{"id":"project:info","description":"information about the current project","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":{"id":{"name":"id","type":"option","description":"ID of the EAS project to link","multiple":false},"force":{"name":"force","type":"boolean","description":"Whether to overwrite any existing project ID","allowNo":false,"dependsOn":["id"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false,"dependsOn":["id"]}},"args":[],"contextDefinition":{"loggedIn":{},"projectDir":{}}},"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":"Text value or path to a file to store in the secret","multiple":false},"type":{"name":"type","type":"option","description":"The type of secret","helpValue":"(string|file)","multiple":false,"options":["string","file"]},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"secret:push":{"id":"secret:push","description":"read environment secrets from env file and store on the server","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secrets","helpValue":"(account|project)","multiple":false,"options":["account","project"],"default":"project"},"env-file":{"name":"env-file","type":"option","description":"Env file with secrets","multiple":false},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}],"contextDefinition":{"loggedIn":{}}},"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},"channel":{"name":"channel","type":"option","description":"Channel that the published update should affect","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 (deprecated, see republish command)","allowNo":false,"exclusive":["input-dir","skip-bundler"]},"group":{"name":"group","type":"option","description":"Update group to republish (deprecated, see republish command)","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"},"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},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"getDynamicProjectConfigAsync":{},"loggedIn":{}}},"update:list":{"id":"update:list","description":"view the recent updates","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"List updates only on this branch","multiple":false,"exclusive":["all"]},"all":{"name":"all","type":"boolean","description":"List updates on all branches","allowNo":false,"exclusive":["branch"]},"offset":{"name":"offset","type":"option","description":"Start queries from specified index. Use for paginating results. Defaults to 0.","multiple":false},"limit":{"name":"limit","type":"option","description":"The number of items to fetch each query. Defaults to 25 and is capped at 50.","multiple":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"update:republish":{"id":"update:republish","description":"rollback to an existing update","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"channel":{"name":"channel","type":"option","description":"Channel name to select an update to republish from","multiple":false,"exclusive":["branch","group"]},"branch":{"name":"branch","type":"option","description":"Branch name to select an update to republish from","multiple":false,"exclusive":["channel","group"]},"group":{"name":"group","type":"option","description":"Update group ID to republish","multiple":false,"exclusive":["branch","channel"]},"message":{"name":"message","type":"option","description":"Short message describing the republished update","required":false,"multiple":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,"dependsOn":["non-interactive"]},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}],"contextDefinition":{"loggedIn":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"webhook:delete":{"id":"webhook:delete","description":"delete a webhook","strict":true,"pluginName":"eas-cli","pluginAlias":"eas-cli","pluginType":"core","aliases":[],"flags":{"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{},"projectConfig":{}}},"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},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run the command in non-interactive mode.","allowNo":false}},"args":[],"contextDefinition":{"loggedIn":{}}},"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}],"contextDefinition":{"loggedIn":{}}},"build:version:set":{"id":"build:version:set","description":"Update version of an app.","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","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{}}},"build:version:sync":{"id":"build:version:sync","description":"Update a version in native code with a value stored on EAS servers","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"]},"profile":{"name":"profile","type":"option","char":"e","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME","multiple":false}},"args":[],"contextDefinition":{"loggedIn":{},"getDynamicProjectConfigAsync":{},"projectDir":{}}}}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eas-cli",
3
3
  "description": "EAS command line tool",
4
- "version": "3.6.0",
4
+ "version": "3.7.0",
5
5
  "author": "Expo <support@expo.dev>",
6
6
  "bin": {
7
7
  "eas": "./bin/run"
@@ -13,8 +13,8 @@
13
13
  "@expo/config": "7.0.3",
14
14
  "@expo/config-plugins": "5.0.4",
15
15
  "@expo/config-types": "47.0.0",
16
- "@expo/eas-build-job": "0.2.103",
17
- "@expo/eas-json": "3.6.0",
16
+ "@expo/eas-build-job": "0.2.106",
17
+ "@expo/eas-json": "3.7.0",
18
18
  "@expo/json-file": "8.2.37",
19
19
  "@expo/multipart-body-parser": "1.1.0",
20
20
  "@expo/osascript": "2.0.33",
@@ -202,7 +202,8 @@
202
202
  "repository": "expo/eas-cli",
203
203
  "scripts": {
204
204
  "postpack": "rimraf oclif.manifest.json",
205
- "prepack": "rimraf build && yarn build && node ./scripts/prepack.js",
205
+ "prepack": "yarn rebuild && node ./scripts/prepack.js",
206
+ "rebuild": "rimraf build && yarn build",
206
207
  "pretarball-ci": "./scripts/pretarball-ci.sh",
207
208
  "build": "tsc --project tsconfig.build.json",
208
209
  "watch": "yarn build --watch --preserveWatchOutput",
@@ -216,5 +217,5 @@
216
217
  "node": "18.6.0",
217
218
  "yarn": "1.22.19"
218
219
  },
219
- "gitHead": "bfa63f95fed5741f44009e8506143d38ce9fbc6b"
220
+ "gitHead": "7ed1efb7d60c74450811e3dd7641899613f0e2c5"
220
221
  }