eas-cli 0.35.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +37 -37
  2. package/build/analytics/common.d.ts +8 -0
  3. package/build/analytics/common.js +19 -0
  4. package/build/analytics/events.d.ts +43 -0
  5. package/build/analytics/events.js +51 -0
  6. package/build/{analytics.d.ts → analytics/rudderstackClient.d.ts} +0 -0
  7. package/build/{analytics.js → analytics/rudderstackClient.js} +2 -2
  8. package/build/build/android/build.d.ts +2 -1
  9. package/build/build/android/build.js +11 -9
  10. package/build/build/build.d.ts +0 -2
  11. package/build/build/build.js +19 -29
  12. package/build/build/configure.js +0 -1
  13. package/build/build/context.d.ts +19 -11
  14. package/build/build/context.js +0 -96
  15. package/build/build/createContext.d.ts +13 -0
  16. package/build/build/createContext.js +114 -0
  17. package/build/build/ios/UpdatesModule.js +3 -2
  18. package/build/build/ios/build.d.ts +2 -1
  19. package/build/build/ios/build.js +24 -19
  20. package/build/build/ios/credentials.js +3 -3
  21. package/build/build/ios/version.js +7 -3
  22. package/build/build/local.js +28 -26
  23. package/build/build/metadata.d.ts +1 -12
  24. package/build/build/metadata.js +24 -19
  25. package/build/build/types.d.ts +0 -1
  26. package/build/build/utils/devClient.d.ts +1 -2
  27. package/build/build/utils/repository.js +1 -0
  28. package/build/build/validate.d.ts +3 -3
  29. package/build/commandUtils/EasCommand.js +4 -4
  30. package/build/commands/branch/publish.js +24 -2
  31. package/build/commands/build/configure.js +2 -0
  32. package/build/commands/build/index.js +12 -17
  33. package/build/commands/channel/create.d.ts +6 -0
  34. package/build/commands/channel/create.js +2 -0
  35. package/build/commands/secret/create.js +0 -6
  36. package/build/commands/secret/delete.js +0 -6
  37. package/build/commands/secret/list.js +0 -6
  38. package/build/commands/submit.js +2 -11
  39. package/build/commands/webhook/create.js +1 -2
  40. package/build/commands/webhook/list.js +1 -1
  41. package/build/commands/webhook/update.js +1 -2
  42. package/build/credentials/android/actions/RemoveFcm.js +4 -4
  43. package/build/credentials/android/utils/keystore.js +67 -32
  44. package/build/credentials/ios/actions/AscApiKeyUtils.js +8 -7
  45. package/build/credentials/ios/actions/AssignAscApiKey.js +1 -1
  46. package/build/credentials/ios/actions/CreateAscApiKey.js +2 -2
  47. package/build/credentials/ios/actions/RemoveAscApiKey.js +6 -6
  48. package/build/credentials/ios/actions/SetUpAscApiKey.js +8 -8
  49. package/build/credentials/ios/actions/SetUpSubmissionCredentials.js +3 -3
  50. package/build/credentials/ios/appstore/ascApiKey.js +12 -12
  51. package/build/credentials/ios/appstore/bundleIdCapabilities.js +11 -1
  52. package/build/credentials/ios/appstore/entitlements.d.ts +2 -2
  53. package/build/credentials/ios/appstore/entitlements.js +28 -21
  54. package/build/credentials/ios/credentials.js +2 -2
  55. package/build/credentials/ios/utils/printCredentials.js +1 -1
  56. package/build/credentials/manager/AndroidActions.js +3 -3
  57. package/build/credentials/manager/IosActions.js +5 -5
  58. package/build/credentials/manager/ManageIos.js +4 -4
  59. package/build/graphql/generated.d.ts +146 -54
  60. package/build/graphql/generated.js +1 -0
  61. package/build/graphql/mutations/KeystoreGenerationUrlMutation.d.ts +3 -0
  62. package/build/graphql/mutations/KeystoreGenerationUrlMutation.js +23 -0
  63. package/build/project/android/applicationId.d.ts +6 -0
  64. package/build/project/android/applicationId.js +39 -29
  65. package/build/project/android/gradle.js +3 -2
  66. package/build/project/android/gradleUtils.d.ts +1 -0
  67. package/build/project/ios/bundleIdentifier.d.ts +6 -1
  68. package/build/project/ios/bundleIdentifier.js +29 -18
  69. package/build/submit/BaseSubmitter.d.ts +20 -4
  70. package/build/submit/BaseSubmitter.js +34 -1
  71. package/build/submit/android/AndroidSubmitCommand.d.ts +1 -2
  72. package/build/submit/android/AndroidSubmitCommand.js +23 -35
  73. package/build/submit/android/AndroidSubmitter.d.ts +12 -8
  74. package/build/submit/android/AndroidSubmitter.js +30 -21
  75. package/build/submit/android/ServiceAccountSource.d.ts +3 -2
  76. package/build/submit/android/ServiceAccountSource.js +16 -4
  77. package/build/submit/context.d.ts +4 -0
  78. package/build/submit/context.js +16 -1
  79. package/build/submit/ios/AppSpecificPasswordSource.d.ts +8 -1
  80. package/build/submit/ios/AppSpecificPasswordSource.js +44 -4
  81. package/build/submit/ios/CredentialsServiceSource.d.ts +9 -5
  82. package/build/submit/ios/CredentialsServiceSource.js +22 -5
  83. package/build/submit/ios/IosSubmitCommand.d.ts +2 -2
  84. package/build/submit/ios/IosSubmitCommand.js +46 -53
  85. package/build/submit/ios/IosSubmitter.d.ts +17 -7
  86. package/build/submit/ios/IosSubmitter.js +55 -29
  87. package/build/submit/submit.js +13 -4
  88. package/build/user/User.js +1 -1
  89. package/build/{build/ios → utils}/plist.d.ts +1 -1
  90. package/build/{build/ios → utils}/plist.js +8 -2
  91. package/build/utils/profiles.d.ts +9 -4
  92. package/build/utils/profiles.js +14 -7
  93. package/build/vcs/clients/git.d.ts +2 -1
  94. package/build/vcs/clients/git.js +87 -6
  95. package/build/vcs/vcs.d.ts +4 -3
  96. package/build/vcs/vcs.js +3 -3
  97. package/build/webhooks/input.d.ts +2 -2
  98. package/build/webhooks/input.js +19 -2
  99. package/oclif.manifest.json +1 -1
  100. package/package.json +10 -10
  101. package/build/build/utils/analytics.d.ts +0 -22
  102. package/build/build/utils/analytics.js +0 -28
  103. package/build/project/isEasEnabledForProject.d.ts +0 -8
  104. package/build/project/isEasEnabledForProject.js +0 -33
  105. package/build/submit/android/AndroidPackageSource.d.ts +0 -17
  106. package/build/submit/android/AndroidPackageSource.js +0 -27
@@ -1,3 +1,3 @@
1
1
  import { IOSConfig } from '@expo/config-plugins';
2
- export declare function readPlistAsync(plistPath: string): Promise<object>;
2
+ export declare function readPlistAsync(plistPath: string): Promise<object | null>;
3
3
  export declare function writePlistAsync(plistPath: string, plistObject: IOSConfig.ExpoPlist | IOSConfig.InfoPlist): Promise<void>;
@@ -8,10 +8,16 @@ const path_1 = (0, tslib_1.__importDefault)(require("path"));
8
8
  async function readPlistAsync(plistPath) {
9
9
  if (await fs_extra_1.default.pathExists(plistPath)) {
10
10
  const expoPlistContent = await fs_extra_1.default.readFile(plistPath, 'utf8');
11
- return plist_1.default.parse(expoPlistContent);
11
+ try {
12
+ return plist_1.default.parse(expoPlistContent);
13
+ }
14
+ catch (err) {
15
+ err.message = `Failed to parse ${plistPath}. ${err.message}`;
16
+ throw err;
17
+ }
12
18
  }
13
19
  else {
14
- return {};
20
+ return null;
15
21
  }
16
22
  }
17
23
  exports.readPlistAsync = readPlistAsync;
@@ -1,11 +1,16 @@
1
1
  import { Platform } from '@expo/eas-build-job';
2
- export declare type ProfileData<T> = {
3
- profile: T;
2
+ import { BuildProfile, SubmitProfile } from '@expo/eas-json';
3
+ declare type ProfileType = 'build' | 'submit';
4
+ declare type EasProfile<T extends ProfileType> = T extends 'build' ? BuildProfile<Platform> : SubmitProfile<Platform>;
5
+ export declare type ProfileData<T extends ProfileType> = {
6
+ profile: EasProfile<T>;
4
7
  platform: Platform;
5
8
  profileName: string;
6
9
  };
7
- export declare function getProfilesAsync<T>({ platforms, profileName: profileNameArg, readProfileAsync, }: {
10
+ export declare function getProfilesAsync<T extends ProfileType>({ projectDir, platforms, profileName: profileNameArg, type, }: {
11
+ projectDir: string;
8
12
  platforms: Platform[];
9
13
  profileName?: string | null;
10
- readProfileAsync: (platform: Platform, profileName: string) => Promise<T>;
14
+ type: T;
11
15
  }): Promise<ProfileData<T>[]>;
16
+ export {};
@@ -4,15 +4,13 @@ exports.getProfilesAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const eas_json_1 = require("@expo/eas-json");
6
6
  const log_1 = (0, tslib_1.__importDefault)(require("../log"));
7
- async function getProfilesAsync({ platforms, profileName: profileNameArg,
8
- // eslint-disable-next-line async-protect/async-suffix
9
- readProfileAsync, }) {
7
+ async function getProfilesAsync({ projectDir, platforms, profileName: profileNameArg, type, }) {
10
8
  const results = platforms.map(async function (platform) {
11
9
  let profile;
12
10
  let profileName = profileNameArg;
13
11
  if (!profileName) {
14
12
  try {
15
- profile = await readProfileAsync(platform, 'production');
13
+ profile = await readProfileAsync({ projectDir, platform, type, profileName: 'production' });
16
14
  profileName = 'production';
17
15
  }
18
16
  catch (errorOuter) {
@@ -20,7 +18,7 @@ readProfileAsync, }) {
20
18
  throw errorOuter;
21
19
  }
22
20
  try {
23
- profile = await readProfileAsync(platform, 'release');
21
+ profile = await readProfileAsync({ projectDir, platform, type, profileName: 'release' });
24
22
  profileName = 'release';
25
23
  log_1.default.warn('The default profile changed from "release" to "production". We detected that you still have a "release" build profile, so we are using it. Update eas.json to have a profile named "production" under the `build` key, or specify which profile you\'d like to use with the --profile flag. This fallback behavior will be removed in the next major version of EAS CLI.');
26
24
  }
@@ -28,12 +26,12 @@ readProfileAsync, }) {
28
26
  if (errorInner instanceof eas_json_1.errors.InvalidEasJsonError) {
29
27
  throw errorInner;
30
28
  }
31
- throw new Error('There is no profile named "production" in eas.json');
29
+ throw new Error(`There is no ${type} profile named "production" in eas.json`);
32
30
  }
33
31
  }
34
32
  }
35
33
  else {
36
- profile = await readProfileAsync(platform, profileName);
34
+ profile = await readProfileAsync({ projectDir, platform, type, profileName });
37
35
  }
38
36
  return {
39
37
  profile,
@@ -44,3 +42,12 @@ readProfileAsync, }) {
44
42
  return await Promise.all(results);
45
43
  }
46
44
  exports.getProfilesAsync = getProfilesAsync;
45
+ async function readProfileAsync({ projectDir, platform, type, profileName, }) {
46
+ const easJsonReader = new eas_json_1.EasJsonReader(projectDir);
47
+ if (type === 'build') {
48
+ return (await easJsonReader.readBuildProfileAsync(platform, profileName));
49
+ }
50
+ else {
51
+ return (await easJsonReader.readSubmitProfileAsync(platform, profileName));
52
+ }
53
+ }
@@ -1,9 +1,10 @@
1
1
  import { Client } from '../vcs';
2
2
  export default class GitClient extends Client {
3
3
  ensureRepoExistsAsync(): Promise<void>;
4
- commitAsync({ commitMessage, commitAllFiles, }: {
4
+ commitAsync({ commitMessage, commitAllFiles, nonInteractive, }: {
5
5
  commitMessage: string;
6
6
  commitAllFiles?: boolean;
7
+ nonInteractive?: boolean;
7
8
  }): Promise<void>;
8
9
  isCommitRequiredAsync(): Promise<boolean>;
9
10
  hasUncommittedChangesAsync(): Promise<boolean>;
@@ -3,14 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isGitCaseSensitiveAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const spawn_async_1 = (0, tslib_1.__importDefault)(require("@expo/spawn-async"));
6
+ const errors_1 = require("@oclif/errors");
7
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
8
  const log_1 = (0, tslib_1.__importStar)(require("../../log"));
9
+ const ora_1 = require("../../ora");
7
10
  const prompts_1 = require("../../prompts");
8
11
  const git_1 = require("../git");
9
12
  const vcs_1 = require("../vcs");
10
13
  class GitClient extends vcs_1.Client {
11
14
  async ensureRepoExistsAsync() {
12
15
  if (!(await (0, git_1.isGitInstalledAsync)())) {
13
- throw new Error('git command not found, install it before proceeding');
16
+ log_1.default.error(`${chalk_1.default.bold('git')} command not found. Install it before proceeding or set ${chalk_1.default.bold('EAS_NO_VCS=1')} to use EAS CLI without Git (or any other version control system).`);
17
+ log_1.default.error((0, log_1.learnMore)('https://expo.fyi/eas-vcs-workflow'));
18
+ (0, errors_1.exit)(1);
14
19
  }
15
20
  if (await (0, git_1.doesGitRepoExistAsync)()) {
16
21
  return;
@@ -34,12 +39,24 @@ class GitClient extends vcs_1.Client {
34
39
  });
35
40
  await this.commitAsync({ commitAllFiles: true, commitMessage: message });
36
41
  }
37
- async commitAsync({ commitMessage, commitAllFiles, }) {
38
- if (commitAllFiles) {
39
- await (0, spawn_async_1.default)('git', ['add', '-A']);
42
+ async commitAsync({ commitMessage, commitAllFiles, nonInteractive = false, }) {
43
+ await ensureGitConfiguredAsync({ nonInteractive });
44
+ try {
45
+ if (commitAllFiles) {
46
+ await (0, spawn_async_1.default)('git', ['add', '-A']);
47
+ }
48
+ await (0, spawn_async_1.default)('git', ['add', '-u']);
49
+ await (0, spawn_async_1.default)('git', ['commit', '-m', commitMessage]);
50
+ }
51
+ catch (err) {
52
+ if (err === null || err === void 0 ? void 0 : err.stdout) {
53
+ log_1.default.error(err.stdout);
54
+ }
55
+ if (err === null || err === void 0 ? void 0 : err.stderr) {
56
+ log_1.default.error(err.stderr);
57
+ }
58
+ throw err;
40
59
  }
41
- await (0, spawn_async_1.default)('git', ['add', '-u']);
42
- await (0, spawn_async_1.default)('git', ['commit', '-m', commitMessage]);
43
60
  }
44
61
  async isCommitRequiredAsync() {
45
62
  return await this.hasUncommittedChangesAsync();
@@ -141,6 +158,70 @@ class GitClient extends vcs_1.Client {
141
158
  }
142
159
  }
143
160
  exports.default = GitClient;
161
+ async function ensureGitConfiguredAsync({ nonInteractive, }) {
162
+ let usernameConfigured = true;
163
+ let emailConfigured = true;
164
+ try {
165
+ await (0, spawn_async_1.default)('git', ['config', '--get', 'user.name']);
166
+ }
167
+ catch (err) {
168
+ log_1.default.debug(err);
169
+ usernameConfigured = false;
170
+ }
171
+ try {
172
+ await (0, spawn_async_1.default)('git', ['config', '--get', 'user.email']);
173
+ }
174
+ catch (err) {
175
+ log_1.default.debug(err);
176
+ emailConfigured = false;
177
+ }
178
+ if (usernameConfigured && emailConfigured) {
179
+ return;
180
+ }
181
+ log_1.default.warn(`You need to configure Git with your ${[
182
+ !usernameConfigured && 'username (user.name)',
183
+ !emailConfigured && 'email address (user.email)',
184
+ ]
185
+ .filter(i => i)
186
+ .join(' and ')}`);
187
+ if (nonInteractive) {
188
+ throw new Error('Git cannot be configured automatically in non-interactive mode');
189
+ }
190
+ if (!usernameConfigured) {
191
+ const { username } = await (0, prompts_1.promptAsync)({
192
+ type: 'text',
193
+ name: 'username',
194
+ message: 'Username:',
195
+ validate: (input) => input !== '',
196
+ });
197
+ const spinner = (0, ora_1.ora)(`Running ${chalk_1.default.bold(`git config --local user.name ${username}`)}`).start();
198
+ try {
199
+ await (0, spawn_async_1.default)('git', ['config', '--local', 'user.name', username]);
200
+ spinner.succeed();
201
+ }
202
+ catch (err) {
203
+ spinner.fail();
204
+ throw err;
205
+ }
206
+ }
207
+ if (!emailConfigured) {
208
+ const { email } = await (0, prompts_1.promptAsync)({
209
+ type: 'text',
210
+ name: 'email',
211
+ message: 'Email address:',
212
+ validate: (input) => input !== '',
213
+ });
214
+ const spinner = (0, ora_1.ora)(`Running ${chalk_1.default.bold(`git config --local user.email ${email}`)}`).start();
215
+ try {
216
+ await (0, spawn_async_1.default)('git', ['config', '--local', 'user.email', email]);
217
+ spinner.succeed();
218
+ }
219
+ catch (err) {
220
+ spinner.fail();
221
+ throw err;
222
+ }
223
+ }
224
+ }
144
225
  /**
145
226
  * Checks if git is configured to be case sensitive
146
227
  * @returns {boolean | undefined}
@@ -4,14 +4,15 @@ export declare abstract class Client {
4
4
  ensureRepoExistsAsync(): Promise<void>;
5
5
  isCommitRequiredAsync(): Promise<boolean>;
6
6
  hasUncommittedChangesAsync(): Promise<boolean | undefined>;
7
- commitAsync(arg: {
7
+ commitAsync(_arg: {
8
8
  commitMessage: string;
9
9
  commitAllFiles?: boolean;
10
+ nonInteractive?: boolean;
10
11
  }): Promise<void>;
11
- trackFileAsync(file: string): Promise<void>;
12
+ trackFileAsync(_file: string): Promise<void>;
12
13
  showDiffAsync(): Promise<void>;
13
14
  getCommitHashAsync(): Promise<string | undefined>;
14
15
  getBranchNameAsync(): Promise<string | null>;
15
16
  getLastCommitMessageAsync(): Promise<string | null>;
16
- isFileIgnoredAsync(filePath: string): Promise<boolean>;
17
+ isFileIgnoredAsync(_filePath: string): Promise<boolean>;
17
18
  }
package/build/vcs/vcs.js CHANGED
@@ -21,13 +21,13 @@ class Client {
21
21
  // - Should be implemented if hasUncommittedChangesAsync is implemented
22
22
  // - If it's not implemented method `makeShallowCopyAsync` needs to be able to include uncommitted changes
23
23
  // in project copy
24
- async commitAsync(arg) {
24
+ async commitAsync(_arg) {
25
25
  // it should not be called unless hasUncommittedChangesAsync is implemented
26
26
  throw new Error('commitAsync is not implemented');
27
27
  }
28
28
  // (optional) mark file as tracked, if this method is called on file, the next call to
29
29
  // `commitAsync({ commitAllFiles: false })` should commit that file
30
- async trackFileAsync(file) { }
30
+ async trackFileAsync(_file) { }
31
31
  // (optional) print diff of the changes that will be commited in the next call to
32
32
  // `commitAsync({ commitAllFiles: false })`
33
33
  async showDiffAsync() { }
@@ -52,7 +52,7 @@ class Client {
52
52
  //
53
53
  // @param filePath has to be a relative normalized path pointing to a file
54
54
  // located under the root of the repository
55
- async isFileIgnoredAsync(filePath) {
55
+ async isFileIgnoredAsync(_filePath) {
56
56
  return false;
57
57
  }
58
58
  }
@@ -1,6 +1,6 @@
1
1
  import { WebhookFragment, WebhookInput, WebhookType } from '../graphql/generated';
2
- export declare function prepareInputParamsAsync({ event, url: maybeUrl, secret: maybeSecret, }: {
3
- event: WebhookType;
2
+ export declare function prepareInputParamsAsync({ event: maybeEvent, url: maybeUrl, secret: maybeSecret, }: {
3
+ event?: WebhookType;
4
4
  url?: string;
5
5
  secret?: string;
6
6
  }, existingWebhook?: WebhookFragment): Promise<WebhookInput>;
@@ -4,11 +4,28 @@ exports.validateSecret = exports.validateURL = exports.prepareInputParamsAsync =
4
4
  const tslib_1 = require("tslib");
5
5
  const nullthrows_1 = (0, tslib_1.__importDefault)(require("nullthrows"));
6
6
  const url_1 = require("url");
7
+ const generated_1 = require("../graphql/generated");
7
8
  const log_1 = (0, tslib_1.__importDefault)(require("../log"));
8
9
  const prompts_1 = require("../prompts");
9
- async function prepareInputParamsAsync({ event, url: maybeUrl, secret: maybeSecret, }, existingWebhook) {
10
+ async function prepareInputParamsAsync({ event: maybeEvent, url: maybeUrl, secret: maybeSecret, }, existingWebhook) {
11
+ let event = maybeEvent;
10
12
  let url = maybeUrl;
11
13
  let secret = maybeSecret;
14
+ if (!event) {
15
+ const choices = [
16
+ { title: 'Build', value: generated_1.WebhookType.Build },
17
+ { title: 'Submit', value: generated_1.WebhookType.Submit },
18
+ ];
19
+ ({ event } = await (0, prompts_1.promptAsync)({
20
+ type: 'select',
21
+ name: 'event',
22
+ message: 'Webhook event type:',
23
+ choices,
24
+ initial: (existingWebhook === null || existingWebhook === void 0 ? void 0 : existingWebhook.event)
25
+ ? choices.findIndex(choice => choice.value === existingWebhook.event)
26
+ : undefined,
27
+ }));
28
+ }
12
29
  if (!url || !validateURL(url)) {
13
30
  const urlValidationMessage = 'The provided webhook URL is invalid and must be an absolute URL, including a scheme.';
14
31
  if (url && !validateURL(url)) {
@@ -35,7 +52,7 @@ async function prepareInputParamsAsync({ event, url: maybeUrl, secret: maybeSecr
35
52
  }));
36
53
  }
37
54
  return {
38
- event,
55
+ event: (0, nullthrows_1.default)(event),
39
56
  url: (0, nullthrows_1.default)(url),
40
57
  secret: (0, nullthrows_1.default)(secret),
41
58
  };
@@ -1 +1 @@
1
- {"version":"0.35.0","commands":{"analytics":{"id":"analytics","description":"view or change analytics settings","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"show the eas.json config","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","options":["android","ios"]},"profile":{"name":"profile","type":"option"}},"args":[]},"credentials":{"id":"credentials","description":"manage your credentials","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"log environment info to the console","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit build archive to app store\nSee how to configure submits with eas.json: https://docs.expo.dev/submit/eas-json/","pluginName":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json."},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false},"id":{"name":"id","type":"option","description":"ID of the build to submit"},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file"},"url":{"name":"url","type":"option","description":"App archive url"},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[]},"account:login":{"id":"account:login","description":"log in with your Expo account","pluginName":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","pluginName":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","pluginName":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"Create a branch on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}]},"branch:delete":{"id":"branch:delete","description":"Republish an update group","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}]},"branch:list":{"id":"branch:list","description":"List all branches on this project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[]},"branch:publish":{"id":"branch:publish","description":"Publish an update group to a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"message":{"name":"message","type":"option","description":"short message describing the updates.","required":false},"republish":{"name":"republish","type":"boolean","description":"republish an update group","allowNo":false},"group":{"name":"group","type":"option","description":"update group to republish"},"input-dir":{"name":"input-dir","type":"option","description":"location of the bundle","required":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","description":"only publish to a single platform","required":false,"helpValue":"(android|ios|all)","options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"return a json with the new update group.","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"use the current git branch and commit message for the EAS branch and update message","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to publish on"}]},"branch:rename":{"id":"branch:rename","description":"Rename a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[]},"branch:view":{"id":"branch:view","description":"View a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}]},"build:cancel":{"id":"build:cancel","description":"Cancel a build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"Configure the project to support EAS Build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","options":["android","ios","all"]}},"args":[]},"build":{"id":"build","description":"start a build","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","description":"Skip project configuration","allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"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},"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"}},"args":[]},"build:list":{"id":"build:list","description":"list all builds for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option"},"appVersion":{"name":"appVersion","type":"option"},"appBuildVersion":{"name":"appBuildVersion","type":"option"},"sdkVersion":{"name":"sdkVersion","type":"option"},"runtimeVersion":{"name":"runtimeVersion","type":"option"},"appIdentifier":{"name":"appIdentifier","type":"option"},"buildProfile":{"name":"buildProfile","type":"option"},"gitCommitHash":{"name":"gitCommitHash","type":"option"},"limit":{"name":"limit","type":"option"}},"args":[]},"build:view":{"id":"build:view","description":"view a build for your project","pluginName":"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"}]},"channel:create":{"id":"channel:create","description":"Create a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}]},"channel:edit":{"id":"channel:edit","description":"Point a channel at a new branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to"},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}]},"channel:list":{"id":"channel:list","description":"List all channels on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[]},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}]},"channel:view":{"id":"channel:view","description":"View a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}]},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:list":{"id":"device:list","description":"list all registered devices for your account","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option"}},"args":[]},"device:view":{"id":"device:view","description":"view a device for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"project:info":{"id":"project:info","description":"information about the current project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","pluginName":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"Create an environment secret on the current project or owner account.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret"},"value":{"name":"value","type":"option","description":"Value of the secret"},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[]},"secret:delete":{"id":"secret:delete","description":"Delete an environment secret by ID.\nUnsure where to find the secret's ID? Run eas secret:list","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete"}},"args":[]},"secret:list":{"id":"secret:list","description":"Lists environment secrets available for your current app","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:delete":{"id":"update:delete","description":"Delete all the updates in an update Group.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}]},"update:view":{"id":"update:view","description":"Update group details.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}]},"webhook:create":{"id":"webhook:create","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD)","options":["BUILD"],"default":"BUILD"},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:delete":{"id":"webhook:delete","description":"Delete a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"List webhooks on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD)","options":["BUILD"]}},"args":[]},"webhook:update":{"id":"webhook:update","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD)","options":["BUILD"],"default":"BUILD"},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:view":{"id":"webhook:view","description":"View a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
1
+ {"version":"0.38.0","commands":{"analytics":{"id":"analytics","description":"view or change analytics settings","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"STATUS","options":["on","off"]}]},"config":{"id":"config","description":"show the eas.json config","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios)","options":["android","ios"]},"profile":{"name":"profile","type":"option"}},"args":[]},"credentials":{"id":"credentials","description":"manage your credentials","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"diagnostics":{"id":"diagnostics","description":"log environment info to the console","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"submit":{"id":"submit","description":"submit build archive to app store\nSee how to configure submits with eas.json: https://docs.expo.dev/submit/eas-json/","pluginName":"eas-cli","pluginType":"core","aliases":["build:submit"],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"profile":{"name":"profile","type":"option","description":"Name of the submit profile from eas.json. Defaults to \"production\" if defined in eas.json."},"latest":{"name":"latest","type":"boolean","description":"Submit the latest build for specified platform","allowNo":false},"id":{"name":"id","type":"option","description":"ID of the build to submit"},"path":{"name":"path","type":"option","description":"Path to the .apk/.aab/.ipa file"},"url":{"name":"url","type":"option","description":"App archive url"},"verbose":{"name":"verbose","type":"boolean","description":"Always print logs from Submission Service","allowNo":false},"wait":{"name":"wait","type":"boolean","description":"Wait for submission to complete","allowNo":true},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false}},"args":[]},"account:login":{"id":"account:login","description":"log in with your Expo account","pluginName":"eas-cli","pluginType":"core","aliases":["login"],"flags":{},"args":[]},"account:logout":{"id":"account:logout","description":"log out","pluginName":"eas-cli","pluginType":"core","aliases":["logout"],"flags":{},"args":[]},"account:view":{"id":"account:view","description":"show the username you are logged in as","pluginName":"eas-cli","pluginType":"core","aliases":["whoami"],"flags":{},"args":[]},"branch:create":{"id":"branch:create","description":"Create a branch on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the new branch ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to create","required":false}]},"branch:delete":{"id":"branch:delete","description":"Republish an update group","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return JSON with the edited branch's ID and name.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to delete","required":false}]},"branch:list":{"id":"branch:list","description":"List all branches on this project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return output as JSON","allowNo":false}},"args":[]},"branch:publish":{"id":"branch:publish","description":"Publish an update group to a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"message":{"name":"message","type":"option","description":"short message describing the updates.","required":false},"republish":{"name":"republish","type":"boolean","description":"republish an update group","allowNo":false},"group":{"name":"group","type":"option","description":"update group to republish"},"input-dir":{"name":"input-dir","type":"option","description":"location of the bundle","required":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","description":"only publish to a single platform","required":false,"helpValue":"(android|ios|all)","options":["android","ios","all"],"default":"all"},"json":{"name":"json","type":"boolean","description":"return a json with the new update group.","allowNo":false},"auto":{"name":"auto","type":"boolean","description":"use the current git branch and commit message for the EAS branch and update message","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to publish on"}]},"branch:rename":{"id":"branch:rename","description":"Rename a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"from":{"name":"from","type":"option","description":"current name of the branch.","required":false},"to":{"name":"to","type":"option","description":"new name of the branch.","required":false},"json":{"name":"json","type":"boolean","description":"return a json with the edited branch's ID and name.","allowNo":false}},"args":[]},"branch:view":{"id":"branch:view","description":"View a branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"return a json with the branch's ID name and recent update groups.","allowNo":false}},"args":[{"name":"name","description":"Name of the branch to view","required":false}]},"build:cancel":{"id":"build:cancel","description":"Cancel a build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"BUILD_ID"}]},"build:configure":{"id":"build:configure","description":"Configure the project to support EAS Build.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","description":"Platform to configure","helpValue":"(android|ios|all)","options":["android","ios","all"]}},"args":[]},"build":{"id":"build","description":"start a build","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","char":"p","helpValue":"(android|ios|all)","options":["android","ios","all"]},"skip-credentials-check":{"name":"skip-credentials-check","type":"boolean","hidden":true,"allowNo":false},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"skip-project-configuration":{"name":"skip-project-configuration","type":"boolean","description":"Skip project configuration","allowNo":false},"profile":{"name":"profile","type":"option","description":"Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.","helpValue":"PROFILE_NAME"},"non-interactive":{"name":"non-interactive","type":"boolean","description":"Run command in non-interactive mode","allowNo":false},"local":{"name":"local","type":"boolean","description":"Run build locally [experimental]","allowNo":false},"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},"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"}},"args":[]},"build:list":{"id":"build:list","description":"list all builds for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"platform":{"name":"platform","type":"option","helpValue":"(all|android|ios)","options":["all","android","ios"]},"json":{"name":"json","type":"boolean","description":"Enable JSON output, non-JSON messages will be printed to stderr","allowNo":false},"status":{"name":"status","type":"option","helpValue":"(new|in-queue|in-progress|errored|finished|canceled)","options":["new","in-queue","in-progress","errored","finished","canceled"]},"distribution":{"name":"distribution","type":"option","helpValue":"(store|internal|simulator)","options":["store","internal","simulator"]},"channel":{"name":"channel","type":"option"},"appVersion":{"name":"appVersion","type":"option"},"appBuildVersion":{"name":"appBuildVersion","type":"option"},"sdkVersion":{"name":"sdkVersion","type":"option"},"runtimeVersion":{"name":"runtimeVersion","type":"option"},"appIdentifier":{"name":"appIdentifier","type":"option"},"buildProfile":{"name":"buildProfile","type":"option"},"gitCommitHash":{"name":"gitCommitHash","type":"option"},"limit":{"name":"limit","type":"option"}},"args":[]},"build:view":{"id":"build:view","description":"view a build for your project","pluginName":"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"}]},"channel:create":{"id":"channel:create","description":"Create a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to create","required":false}]},"channel:edit":{"id":"channel:edit","description":"Point a channel at a new branch.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"Name of the branch to point to"},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to edit","required":false}]},"channel:list":{"id":"channel:list","description":"List all channels on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[]},"channel:rollout":{"id":"channel:rollout","description":"Rollout a new branch out to a channel incrementally.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"branch":{"name":"branch","type":"option","description":"branch to rollout","required":false},"percent":{"name":"percent","type":"option","description":"percent of traffic to redirect to the new branch","required":false},"end":{"name":"end","type":"boolean","description":"end the rollout","allowNo":false},"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the new channel ID, name and branch mapping","allowNo":false}},"args":[{"name":"channel","description":"rollout that the channel is on","required":true}]},"channel:view":{"id":"channel:view","description":"View a channel on the current project.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"print output as a JSON object with the channel ID, name and branch mapping.","allowNo":false}},"args":[{"name":"name","description":"Name of the channel to view","required":false}]},"device:create":{"id":"device:create","description":"register new Apple Devices to use for internal distribution","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"device:list":{"id":"device:list","description":"list all registered devices for your account","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"apple-team-id":{"name":"apple-team-id","type":"option"}},"args":[]},"device:view":{"id":"device:view","description":"view a device for your project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"UDID"}]},"project:info":{"id":"project:info","description":"information about the current project","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"project:init":{"id":"project:init","description":"create or link an EAS project","pluginName":"eas-cli","pluginType":"core","aliases":["init"],"flags":{},"args":[]},"secret:create":{"id":"secret:create","description":"Create an environment secret on the current project or owner account.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"scope":{"name":"scope","type":"option","description":"Scope for the secret","helpValue":"(account|project)","options":["account","project"],"default":"project"},"name":{"name":"name","type":"option","description":"Name of the secret"},"value":{"name":"value","type":"option","description":"Value of the secret"},"force":{"name":"force","type":"boolean","description":"Delete and recreate existing secrets","allowNo":false}},"args":[]},"secret:delete":{"id":"secret:delete","description":"Delete an environment secret by ID.\nUnsure where to find the secret's ID? Run eas secret:list","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"ID of the secret to delete"}},"args":[]},"secret:list":{"id":"secret:list","description":"Lists environment secrets available for your current app","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"update:delete":{"id":"update:delete","description":"Delete all the updates in an update Group.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the group ID of the deleted updates.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group to delete.","required":true}]},"update:view":{"id":"update:view","description":"Update group details.","pluginName":"eas-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Return a json with the updates belonging to the group.","allowNo":false}},"args":[{"name":"groupId","description":"The ID of an update group.","required":true}]},"webhook:create":{"id":"webhook:create","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:delete":{"id":"webhook:delete","description":"Delete a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to delete","required":false}]},"webhook:list":{"id":"webhook:list","description":"List webhooks on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]}},"args":[]},"webhook:update":{"id":"webhook:update","description":"Create a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{"id":{"name":"id","type":"option","description":"Webhook ID","required":true},"event":{"name":"event","type":"option","description":"Event type that triggers the webhook","helpValue":"(BUILD|SUBMIT)","options":["BUILD","SUBMIT"]},"url":{"name":"url","type":"option","description":"Webhook URL"},"secret":{"name":"secret","type":"option","description":"Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header."}},"args":[]},"webhook:view":{"id":"webhook:view","description":"View a webhook on the current project.","pluginName":"eas-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"ID","description":"ID of the webhook to view","required":true}]}}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eas-cli",
3
3
  "description": "EAS command line tool",
4
- "version": "0.35.0",
4
+ "version": "0.38.0",
5
5
  "author": "Expo <support@expo.dev>",
6
6
  "bin": {
7
7
  "eas": "./bin/run"
@@ -9,24 +9,24 @@
9
9
  "bugs": "https://github.com/expo/eas-cli/issues",
10
10
  "dependencies": {
11
11
  "@expo/apple-utils": "0.0.0-alpha.26",
12
- "@expo/config": "6.0.3",
13
- "@expo/config-plugins": "4.0.3",
12
+ "@expo/config": "6.0.7",
13
+ "@expo/config-plugins": "4.0.7",
14
14
  "@expo/eas-build-job": "0.2.57",
15
- "@expo/eas-json": "^0.35.0",
15
+ "@expo/eas-json": "^0.38.0",
16
16
  "@expo/json-file": "8.2.33",
17
17
  "@expo/pkcs12": "0.0.4",
18
18
  "@expo/plist": "0.0.14",
19
19
  "@expo/plugin-warn-if-update-available": "1.7.0",
20
- "@expo/prebuild-config": "3.0.3",
20
+ "@expo/prebuild-config": "3.0.7",
21
21
  "@expo/results": "1.0.0",
22
- "@expo/rudder-sdk-node": "1.1.0",
22
+ "@expo/rudder-sdk-node": "1.1.1",
23
23
  "@expo/sdk-runtime-versions": "1.0.0",
24
24
  "@expo/spawn-async": "1.5.0",
25
25
  "@expo/timeago.js": "1.0.0",
26
- "@oclif/command": "1.8.0",
27
- "@oclif/config": "1.17.0",
26
+ "@oclif/command": "1.8.3",
27
+ "@oclif/config": "1.17.1",
28
28
  "@oclif/errors": "1.3.5",
29
- "@oclif/plugin-help": "3.2.3",
29
+ "@oclif/plugin-help": "3.2.5",
30
30
  "@urql/core": "2.3.1",
31
31
  "@urql/exchange-retry": "0.3.0",
32
32
  "chalk": "4.1.2",
@@ -179,5 +179,5 @@
179
179
  "generate-graphql-code": "graphql-codegen --config graphql-codegen.yml",
180
180
  "clean": "rm -rf dist build node_modules yarn-error.log"
181
181
  },
182
- "gitHead": "d2f620dbc6e11be12f1e1d1afee7e62003316387"
182
+ "gitHead": "27c69ec8e1ce53f43c3ee04b0d35274a2afabab9"
183
183
  }
@@ -1,22 +0,0 @@
1
- export declare enum Event {
2
- BUILD_COMMAND = "build cli build command",
3
- PROJECT_UPLOAD_SUCCESS = "build cli project upload success",
4
- PROJECT_UPLOAD_FAIL = "build cli project upload fail",
5
- GATHER_CREDENTIALS_SUCCESS = "build cli gather credentials success",
6
- GATHER_CREDENTIALS_FAIL = "build cli gather credentials fail",
7
- CONFIGURE_PROJECT_SUCCESS = "build cli configure project success",
8
- CONFIGURE_PROJECT_FAIL = "build cli configure project fail",
9
- BUILD_REQUEST_SUCCESS = "build cli build request success",
10
- BUILD_REQUEST_FAIL = "build cli build request fail",
11
- BUILD_STATUS_COMMAND = "build cli build status",
12
- CREDENTIALS_SYNC_COMMAND = "build cli credentials sync command",
13
- CREDENTIALS_SYNC_UPDATE_LOCAL_SUCCESS = "build cli credentials sync update local success",
14
- CREDENTIALS_SYNC_UPDATE_LOCAL_FAIL = "build cli credentials sync update local fail",
15
- CREDENTIALS_SYNC_UPDATE_REMOTE_SUCCESS = "build cli credentials sync update remote success",
16
- CREDENTIALS_SYNC_UPDATE_REMOTE_FAIL = "build cli credentials sync update remote fail",
17
- ANDROID_KEYSTORE_CREATE = "build cli credentials keystore create"
18
- }
19
- declare const _default: {
20
- logEvent(name: Event, properties: Record<string, any>): void;
21
- };
22
- export default _default;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Event = void 0;
4
- const analytics_1 = require("../../analytics");
5
- var Event;
6
- (function (Event) {
7
- Event["BUILD_COMMAND"] = "build cli build command";
8
- Event["PROJECT_UPLOAD_SUCCESS"] = "build cli project upload success";
9
- Event["PROJECT_UPLOAD_FAIL"] = "build cli project upload fail";
10
- Event["GATHER_CREDENTIALS_SUCCESS"] = "build cli gather credentials success";
11
- Event["GATHER_CREDENTIALS_FAIL"] = "build cli gather credentials fail";
12
- Event["CONFIGURE_PROJECT_SUCCESS"] = "build cli configure project success";
13
- Event["CONFIGURE_PROJECT_FAIL"] = "build cli configure project fail";
14
- Event["BUILD_REQUEST_SUCCESS"] = "build cli build request success";
15
- Event["BUILD_REQUEST_FAIL"] = "build cli build request fail";
16
- Event["BUILD_STATUS_COMMAND"] = "build cli build status";
17
- Event["CREDENTIALS_SYNC_COMMAND"] = "build cli credentials sync command";
18
- Event["CREDENTIALS_SYNC_UPDATE_LOCAL_SUCCESS"] = "build cli credentials sync update local success";
19
- Event["CREDENTIALS_SYNC_UPDATE_LOCAL_FAIL"] = "build cli credentials sync update local fail";
20
- Event["CREDENTIALS_SYNC_UPDATE_REMOTE_SUCCESS"] = "build cli credentials sync update remote success";
21
- Event["CREDENTIALS_SYNC_UPDATE_REMOTE_FAIL"] = "build cli credentials sync update remote fail";
22
- Event["ANDROID_KEYSTORE_CREATE"] = "build cli credentials keystore create";
23
- })(Event = exports.Event || (exports.Event = {}));
24
- exports.default = {
25
- logEvent(name, properties) {
26
- (0, analytics_1.logEvent)(name, properties);
27
- },
28
- };
@@ -1,8 +0,0 @@
1
- /**
2
- * Checks if the project is allowed for using EAS services.
3
- * THIS IS A TEMPORARY STEP NEEDED FOR OPEN PREVIEW
4
- * @returns boolean
5
- */
6
- export declare function isEasEnabledForProjectAsync(projectId: string): Promise<boolean>;
7
- export declare const EAS_UNAVAILABLE_MESSAGE: string;
8
- export declare function warnEasUnavailable(): void;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.warnEasUnavailable = exports.EAS_UNAVAILABLE_MESSAGE = exports.isEasEnabledForProjectAsync = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
- const api_1 = require("../api");
7
- const log_1 = (0, tslib_1.__importDefault)(require("../log"));
8
- /**
9
- * Checks if the project is allowed for using EAS services.
10
- * THIS IS A TEMPORARY STEP NEEDED FOR OPEN PREVIEW
11
- * @returns boolean
12
- */
13
- async function isEasEnabledForProjectAsync(projectId) {
14
- var _a;
15
- try {
16
- const { data: { enabled }, } = await api_1.apiClient.get(`projects/${projectId}/eas-enabled`).json();
17
- return enabled;
18
- }
19
- catch (error) {
20
- if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.statusCode) === 404) {
21
- return true;
22
- }
23
- else {
24
- throw error;
25
- }
26
- }
27
- }
28
- exports.isEasEnabledForProjectAsync = isEasEnabledForProjectAsync;
29
- exports.EAS_UNAVAILABLE_MESSAGE = `Your account doesn't have access to Expo Application Services (EAS) features. Enroll in EAS to give it a try: ${chalk_1.default.underline('https://expo.dev/eas')}`;
30
- function warnEasUnavailable() {
31
- log_1.default.warn(exports.EAS_UNAVAILABLE_MESSAGE);
32
- }
33
- exports.warnEasUnavailable = warnEasUnavailable;
@@ -1,17 +0,0 @@
1
- export declare enum AndroidPackageSourceType {
2
- userDefined = 0,
3
- prompt = 1
4
- }
5
- interface AndroidPackageSourceBase {
6
- sourceType: AndroidPackageSourceType;
7
- }
8
- interface AndroidPackageUserDefinedSource extends AndroidPackageSourceBase {
9
- sourceType: AndroidPackageSourceType.userDefined;
10
- androidPackage: string;
11
- }
12
- interface AndroidPackagePromptSource extends AndroidPackageSourceBase {
13
- sourceType: AndroidPackageSourceType.prompt;
14
- }
15
- export declare type AndroidPackageSource = AndroidPackageUserDefinedSource | AndroidPackagePromptSource;
16
- export declare function getAndroidPackageAsync(source: AndroidPackageSource): Promise<string>;
17
- export {};