eas-cli 16.19.2 → 16.20.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.
@@ -6,7 +6,7 @@ const eas_json_1 = require("@expo/eas-json");
6
6
  const core_1 = require("@oclif/core");
7
7
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
8
  const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
9
- const api_1 = require("../../api");
9
+ // import { getExpoWebsiteBaseUrl } from '../../api';
10
10
  const queries_1 = require("../../branch/queries");
11
11
  const graphql_1 = require("../../build/graphql");
12
12
  const repository_1 = require("../../build/utils/repository");
@@ -17,7 +17,7 @@ const pagination_1 = require("../../commandUtils/pagination");
17
17
  const fetch_1 = tslib_1.__importDefault(require("../../fetch"));
18
18
  const generated_1 = require("../../graphql/generated");
19
19
  const PublishMutation_1 = require("../../graphql/mutations/PublishMutation");
20
- const AppQuery_1 = require("../../graphql/queries/AppQuery");
20
+ // import { AppQuery } from '../../graphql/queries/AppQuery';
21
21
  const log_1 = tslib_1.__importStar(require("../../log"));
22
22
  const ora_1 = require("../../ora");
23
23
  const platform_1 = require("../../platform");
@@ -399,7 +399,11 @@ class UpdatePublish extends EasCommand_1.default {
399
399
  log_1.default.log('👉 Since multiple runtime versions are defined, multiple update groups have been published.');
400
400
  }
401
401
  log_1.default.addNewLineIfNone();
402
- const runtimeToCompatibleBuilds = await Promise.all(runtimeToPlatformsAndFingerprintInfoAndFingerprintSourceMapping.map(obj => (0, publish_1.findCompatibleBuildsAsync)(graphqlClient, projectId, obj)));
402
+ // const runtimeToCompatibleBuilds = await Promise.all(
403
+ // runtimeToPlatformsAndFingerprintInfoAndFingerprintSourceMapping.map(obj =>
404
+ // findCompatibleBuildsAsync(graphqlClient, projectId, obj)
405
+ // )
406
+ // );
403
407
  for (const runtime of (0, uniqBy_1.default)(runtimeToPlatformsAndFingerprintInfoMapping, version => version.runtimeVersion)) {
404
408
  const newUpdatesForRuntimeVersion = newUpdates.filter(update => update.runtimeVersion === runtime.runtimeVersion);
405
409
  if (newUpdatesForRuntimeVersion.length === 0) {
@@ -456,39 +460,55 @@ class UpdatePublish extends EasCommand_1.default {
456
460
  })}.`);
457
461
  log_1.default.addNewLineIfNone();
458
462
  }
459
- const fingerprintsWithoutCompatibleBuilds = runtimeToCompatibleBuilds.find(({ runtimeVersion }) => runtimeVersion === runtime.runtimeVersion)?.fingerprintInfoGroupWithCompatibleBuilds;
460
- if (fingerprintsWithoutCompatibleBuilds) {
461
- const missingBuilds = Object.entries(fingerprintsWithoutCompatibleBuilds).filter(([_platform, fingerprintInfo]) => !fingerprintInfo.build);
462
- if (missingBuilds.length > 0) {
463
- const project = await AppQuery_1.AppQuery.byIdAsync(graphqlClient, projectId);
464
- log_1.default.warn('No compatible builds found for the following fingerprints:');
465
- for (const [platform, fingerprintInfo] of missingBuilds) {
466
- const fingerprintUrl = new URL(`/accounts/${project.ownerAccount.name}/projects/${project.slug}/fingerprints/${fingerprintInfo.fingerprintHash}`, (0, api_1.getExpoWebsiteBaseUrl)());
467
- log_1.default.warn((0, formatFields_1.default)([
468
- {
469
- label: `${this.prettyPlatform(platform)} fingerprint`,
470
- value: fingerprintInfo.fingerprintHash,
471
- },
472
- { label: 'URL', value: fingerprintUrl.toString() },
473
- ], {
474
- labelFormat: label => ` ${chalk_1.default.dim(label)}:`,
475
- }));
476
- log_1.default.addNewLineIfNone();
477
- }
478
- }
479
- }
480
- }
481
- }
482
- prettyPlatform(updatePlatform) {
483
- switch (updatePlatform) {
484
- case 'android':
485
- return 'Android';
486
- case 'ios':
487
- return 'iOS';
488
- default:
489
- return updatePlatform;
463
+ // NOTE(brentvatne): temporarily disable logging this until we can revisit the formatting
464
+ // and the logic for it - it's a bit too aggressive right now, and warns even if you're
465
+ // not using EAS Build
466
+ //
467
+ // const fingerprintsWithoutCompatibleBuilds = runtimeToCompatibleBuilds.find(
468
+ // ({ runtimeVersion }) => runtimeVersion === runtime.runtimeVersion
469
+ // )?.fingerprintInfoGroupWithCompatibleBuilds;
470
+ // if (fingerprintsWithoutCompatibleBuilds) {
471
+ // const missingBuilds = Object.entries(fingerprintsWithoutCompatibleBuilds).filter(
472
+ // ([_platform, fingerprintInfo]) => !fingerprintInfo.build
473
+ // );
474
+ // if (missingBuilds.length > 0) {
475
+ // const project = await AppQuery.byIdAsync(graphqlClient, projectId);
476
+ // Log.warn('No compatible builds found for the following fingerprints:');
477
+ // for (const [platform, fingerprintInfo] of missingBuilds) {
478
+ // const fingerprintUrl = new URL(
479
+ // `/accounts/${project.ownerAccount.name}/projects/${project.slug}/fingerprints/${fingerprintInfo.fingerprintHash}`,
480
+ // getExpoWebsiteBaseUrl()
481
+ // );
482
+ // Log.warn(
483
+ // formatFields(
484
+ // [
485
+ // {
486
+ // label: `${this.prettyPlatform(platform)} fingerprint`,
487
+ // value: fingerprintInfo.fingerprintHash,
488
+ // },
489
+ // { label: 'URL', value: fingerprintUrl.toString() },
490
+ // ],
491
+ // {
492
+ // labelFormat: label => ` ${chalk.dim(label)}:`,
493
+ // }
494
+ // )
495
+ // );
496
+ // Log.addNewLineIfNone();
497
+ // }
498
+ // }
499
+ // }
490
500
  }
491
501
  }
502
+ // private prettyPlatform(updatePlatform: string): string {
503
+ // switch (updatePlatform) {
504
+ // case 'android':
505
+ // return 'Android';
506
+ // case 'ios':
507
+ // return 'iOS';
508
+ // default:
509
+ // return updatePlatform;
510
+ // }
511
+ // }
492
512
  sanitizeFlags(flags) {
493
513
  const nonInteractive = flags['non-interactive'] ?? false;
494
514
  const { auto, branch: branchName, channel: channelName, message: updateMessage } = flags;
@@ -132,8 +132,6 @@ class WorkflowRun extends EasCommand_1.default {
132
132
  if (error instanceof core_2.CombinedError) {
133
133
  workflowFile_1.WorkflowFile.maybePrintWorkflowFileValidationErrors({
134
134
  error,
135
- accountName: account.name,
136
- projectName,
137
135
  });
138
136
  throw error;
139
137
  }
@@ -11,6 +11,7 @@ export declare class WorkflowValidate extends EasCommand {
11
11
  };
12
12
  static contextDefinition: {
13
13
  loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
14
+ projectId: import("../../commandUtils/context/ProjectIdContextField").ProjectIdContextField;
14
15
  projectDir: import("../../commandUtils/context/ProjectDirContextField").default;
15
16
  getDynamicPublicProjectConfigAsync: import("../../commandUtils/context/DynamicProjectConfigContextField").DynamicPublicProjectConfigContextField;
16
17
  getDynamicPrivateProjectConfigAsync: import("../../commandUtils/context/DynamicProjectConfigContextField").DynamicPrivateProjectConfigContextField;
@@ -2,14 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkflowValidate = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const core_1 = require("@urql/core");
6
- const YAML = tslib_1.__importStar(require("yaml"));
7
5
  const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
8
6
  const flags_1 = require("../../commandUtils/flags");
9
- const WorkflowRevisionMutation_1 = require("../../graphql/mutations/WorkflowRevisionMutation");
7
+ const validation_1 = require("../../commandUtils/workflow/validation");
10
8
  const log_1 = tslib_1.__importDefault(require("../../log"));
11
9
  const ora_1 = require("../../ora");
12
- const projectUtils_1 = require("../../project/projectUtils");
13
10
  const workflowFile_1 = require("../../utils/workflowFile");
14
11
  class WorkflowValidate extends EasCommand_1.default {
15
12
  static description = 'validate a workflow configuration yaml file';
@@ -26,56 +23,28 @@ class WorkflowValidate extends EasCommand_1.default {
26
23
  static contextDefinition = {
27
24
  ...this.ContextOptions.DynamicProjectConfig,
28
25
  ...this.ContextOptions.ProjectDir,
26
+ ...this.ContextOptions.ProjectId,
29
27
  ...this.ContextOptions.LoggedIn,
30
28
  };
31
29
  async runAsync() {
32
30
  const { args: { path: filePath }, flags, } = await this.parse(WorkflowValidate);
33
- const { getDynamicPrivateProjectConfigAsync, loggedIn: { graphqlClient }, projectDir, } = await this.getContextAsync(WorkflowValidate, {
34
- nonInteractive: flags['non-interactive'],
35
- withServerSideEnvironment: null,
36
- });
37
- const { projectId, exp: { slug: projectName }, } = await getDynamicPrivateProjectConfigAsync();
38
- const account = await (0, projectUtils_1.getOwnerAccountForProjectIdAsync)(graphqlClient, projectId);
39
31
  const spinner = (0, ora_1.ora)().start('Validating the workflow YAML file…');
40
32
  try {
33
+ const { loggedIn: { graphqlClient }, projectDir, projectId, } = await this.getContextAsync(WorkflowValidate, {
34
+ nonInteractive: flags['non-interactive'],
35
+ withServerSideEnvironment: null,
36
+ });
41
37
  const workflowFileContents = await workflowFile_1.WorkflowFile.readWorkflowFileContentsAsync({
42
38
  projectDir,
43
39
  filePath,
44
40
  });
45
41
  log_1.default.log(`Using workflow file from ${workflowFileContents.filePath}`);
46
- const parsedYaml = YAML.parse(workflowFileContents.yamlConfig);
47
- // Check if the parsed result is empty or null
48
- if (parsedYaml === null ||
49
- parsedYaml === undefined ||
50
- (typeof parsedYaml === 'object' && Object.keys(parsedYaml).length === 0)) {
51
- throw new Error('YAML file is empty or contains only comments.');
52
- }
53
- await WorkflowRevisionMutation_1.WorkflowRevisionMutation.validateWorkflowYamlConfigAsync(graphqlClient, {
54
- appId: projectId,
55
- yamlConfig: workflowFileContents.yamlConfig,
56
- });
42
+ await (0, validation_1.validateWorkflowFileAsync)(workflowFileContents, projectDir, graphqlClient, projectId);
57
43
  spinner.succeed('Workflow configuration YAML is valid.');
58
44
  }
59
45
  catch (error) {
60
46
  spinner.fail('Workflow configuration YAML is not valid.');
61
- if (error instanceof YAML.YAMLParseError) {
62
- log_1.default.error(`YAML syntax error: ${error.message}`);
63
- }
64
- else if (error instanceof core_1.CombinedError) {
65
- workflowFile_1.WorkflowFile.maybePrintWorkflowFileValidationErrors({
66
- error,
67
- accountName: account.name,
68
- projectName,
69
- });
70
- throw error;
71
- }
72
- else if (error instanceof Error) {
73
- log_1.default.error(error.message);
74
- }
75
- else {
76
- log_1.default.error(`Unexpected error: ${String(error)}`);
77
- }
78
- throw error;
47
+ (0, validation_1.logWorkflowValidationErrors)(error);
79
48
  }
80
49
  }
81
50
  }
@@ -1093,7 +1093,6 @@ export type AndroidSubmissionConfig = {
1093
1093
  };
1094
1094
  export type AndroidSubmissionConfigInput = {
1095
1095
  applicationIdentifier?: InputMaybe<Scalars['String']['input']>;
1096
- archiveUrl?: InputMaybe<Scalars['String']['input']>;
1097
1096
  changelog?: InputMaybe<Scalars['String']['input']>;
1098
1097
  changesNotSentForReview?: InputMaybe<Scalars['Boolean']['input']>;
1099
1098
  googleServiceAccountKeyId?: InputMaybe<Scalars['String']['input']>;
@@ -3028,7 +3027,6 @@ export type CreateAndConfigureRepositoryInput = {
3028
3027
  export type CreateAndroidSubmissionInput = {
3029
3028
  appId: Scalars['ID']['input'];
3030
3029
  archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
3031
- archiveUrl?: InputMaybe<Scalars['String']['input']>;
3032
3030
  config: AndroidSubmissionConfigInput;
3033
3031
  submittedBuildId?: InputMaybe<Scalars['ID']['input']>;
3034
3032
  };
@@ -3096,7 +3094,6 @@ export type CreateGitHubRepositorySettingsInput = {
3096
3094
  export type CreateIosSubmissionInput = {
3097
3095
  appId: Scalars['ID']['input'];
3098
3096
  archiveSource?: InputMaybe<SubmissionArchiveSourceInput>;
3099
- archiveUrl?: InputMaybe<Scalars['String']['input']>;
3100
3097
  config: IosSubmissionConfigInput;
3101
3098
  submittedBuildId?: InputMaybe<Scalars['ID']['input']>;
3102
3099
  };
@@ -3108,7 +3105,6 @@ export type CreateSentryProjectInput = {
3108
3105
  export type CreateSharedEnvironmentVariableInput = {
3109
3106
  environments?: InputMaybe<Array<EnvironmentVariableEnvironment>>;
3110
3107
  fileName?: InputMaybe<Scalars['String']['input']>;
3111
- isGlobal?: InputMaybe<Scalars['Boolean']['input']>;
3112
3108
  name: Scalars['String']['input'];
3113
3109
  overwrite?: InputMaybe<Scalars['Boolean']['input']>;
3114
3110
  type?: InputMaybe<EnvironmentSecretType>;
@@ -4476,7 +4472,6 @@ export type IosSubmissionConfig = {
4476
4472
  export type IosSubmissionConfigInput = {
4477
4473
  appleAppSpecificPassword?: InputMaybe<Scalars['String']['input']>;
4478
4474
  appleIdUsername?: InputMaybe<Scalars['String']['input']>;
4479
- archiveUrl?: InputMaybe<Scalars['String']['input']>;
4480
4475
  ascApiKey?: InputMaybe<AscApiKeyInput>;
4481
4476
  ascApiKeyId?: InputMaybe<Scalars['String']['input']>;
4482
4477
  ascAppIdentifier: Scalars['String']['input'];
@@ -6193,7 +6188,6 @@ export type UpdateEnvironmentVariableInput = {
6193
6188
  environments?: InputMaybe<Array<EnvironmentVariableEnvironment>>;
6194
6189
  fileName?: InputMaybe<Scalars['String']['input']>;
6195
6190
  id: Scalars['ID']['input'];
6196
- isGlobal?: InputMaybe<Scalars['Boolean']['input']>;
6197
6191
  name?: InputMaybe<Scalars['String']['input']>;
6198
6192
  type?: InputMaybe<EnvironmentSecretType>;
6199
6193
  value?: InputMaybe<Scalars['String']['input']>;
@@ -1,30 +1,11 @@
1
1
  import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
2
- import { EnvironmentSecretType, EnvironmentVariableEnvironment, EnvironmentVariableFragment, EnvironmentVariableVisibility } from '../generated';
3
- type CreateVariableArgs = {
4
- value: string;
5
- name: string;
6
- visibility: EnvironmentVariableVisibility;
7
- environments: EnvironmentVariableEnvironment[];
8
- type: EnvironmentSecretType;
9
- isGlobal?: boolean;
10
- fileName?: string;
11
- };
12
- export type EnvironmentVariablePushInput = {
13
- name: string;
14
- value: string;
15
- environments: EnvironmentVariableEnvironment[];
16
- visibility: EnvironmentVariableVisibility;
17
- overwrite?: boolean;
18
- };
2
+ import { CreateEnvironmentVariableInput, CreateSharedEnvironmentVariableInput, EnvironmentVariableFragment, UpdateEnvironmentVariableInput } from '../generated';
19
3
  export declare const EnvironmentVariableMutation: {
20
- createSharedVariableAsync(graphqlClient: ExpoGraphqlClient, input: CreateVariableArgs, accountId: string): Promise<EnvironmentVariableFragment>;
21
- createForAppAsync(graphqlClient: ExpoGraphqlClient, input: CreateVariableArgs, appId: string): Promise<EnvironmentVariableFragment>;
22
- updateAsync(graphqlClient: ExpoGraphqlClient, input: Partial<CreateVariableArgs> & {
23
- id: string;
24
- }): Promise<EnvironmentVariableFragment>;
4
+ createSharedVariableAsync(graphqlClient: ExpoGraphqlClient, input: CreateSharedEnvironmentVariableInput, accountId: string): Promise<EnvironmentVariableFragment>;
5
+ createForAppAsync(graphqlClient: ExpoGraphqlClient, input: CreateEnvironmentVariableInput, appId: string): Promise<EnvironmentVariableFragment>;
6
+ updateAsync(graphqlClient: ExpoGraphqlClient, input: UpdateEnvironmentVariableInput): Promise<EnvironmentVariableFragment>;
25
7
  deleteAsync(graphqlClient: ExpoGraphqlClient, id: string): Promise<{
26
8
  id: string;
27
9
  }>;
28
- createBulkEnvironmentVariablesForAppAsync(graphqlClient: ExpoGraphqlClient, input: EnvironmentVariablePushInput[], appId: string): Promise<boolean>;
10
+ createBulkEnvironmentVariablesForAppAsync(graphqlClient: ExpoGraphqlClient, input: CreateEnvironmentVariableInput[], appId: string): Promise<boolean>;
29
11
  };
30
- export {};
package/build/log.js CHANGED
@@ -33,7 +33,8 @@ class Log {
33
33
  Log.consoleLog(...args);
34
34
  }
35
35
  else {
36
- nodeDebug(args);
36
+ Log.updateIsLastLineNewLine(args);
37
+ nodeDebug(...args);
37
38
  }
38
39
  }
39
40
  static gray(...args) {
@@ -1,3 +1,6 @@
1
- export declare function installDependenciesAsync({ projectDir, }: {
1
+ export type PackageManager = 'npm' | 'yarn' | 'pnpm';
2
+ export declare function promptForPackageManagerAsync(): Promise<PackageManager>;
3
+ export declare function installDependenciesAsync({ projectDir, packageManager, }: {
2
4
  projectDir: string;
5
+ packageManager?: PackageManager;
3
6
  }): Promise<void>;
@@ -1,11 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.installDependenciesAsync = void 0;
3
+ exports.installDependenciesAsync = exports.promptForPackageManagerAsync = void 0;
4
4
  const runCommand_1 = require("./runCommand");
5
- async function installDependenciesAsync({ projectDir, }) {
6
- // TODO: add support for other package managers
5
+ const prompts_1 = require("../prompts");
6
+ async function promptForPackageManagerAsync() {
7
+ return await (0, prompts_1.selectAsync)('Which package manager would you like to use?', [
8
+ { title: 'npm', value: 'npm' },
9
+ { title: 'Yarn', value: 'yarn' },
10
+ { title: 'pnpm', value: 'pnpm' },
11
+ ], { initial: 'npm' });
12
+ }
13
+ exports.promptForPackageManagerAsync = promptForPackageManagerAsync;
14
+ async function installDependenciesAsync({ projectDir, packageManager = 'npm', }) {
7
15
  await (0, runCommand_1.runCommandAsync)({
8
- command: 'npm',
16
+ command: packageManager,
9
17
  args: ['install'],
10
18
  cwd: projectDir,
11
19
  shouldShowStderrLine: line => {
@@ -13,7 +21,7 @@ async function installDependenciesAsync({ projectDir, }) {
13
21
  !line.includes('deprecated') &&
14
22
  !line.includes('no longer maintained') &&
15
23
  !line.includes('has been moved') &&
16
- !(line === 'npm'));
24
+ !(line === packageManager));
17
25
  },
18
26
  });
19
27
  }
@@ -1,4 +1,5 @@
1
1
  import { EnvironmentSecretType, EnvironmentVariableEnvironment, EnvironmentVariableVisibility } from '../graphql/generated';
2
+ import { RequestedPlatform } from '../platform';
2
3
  export declare function promptVariableTypeAsync(nonInteractive: boolean, initialType?: EnvironmentSecretType): Promise<EnvironmentSecretType>;
3
4
  export declare function parseVisibility(stringVisibility: 'plaintext' | 'sensitive' | 'secret'): EnvironmentVariableVisibility;
4
5
  export declare function promptVariableVisibilityAsync(nonInteractive: boolean, selectedVisibility?: EnvironmentVariableVisibility | null): Promise<EnvironmentVariableVisibility>;
@@ -21,4 +22,7 @@ export declare function promptVariableValueAsync({ nonInteractive, required, hid
21
22
  hidden?: boolean;
22
23
  }): Promise<string>;
23
24
  export declare function promptVariableNameAsync(nonInteractive: boolean, initialValue?: string): Promise<string>;
25
+ export declare function promptPlatformAsync({ message, }: {
26
+ message: string;
27
+ }): Promise<RequestedPlatform>;
24
28
  export {};
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promptVariableNameAsync = exports.promptVariableValueAsync = exports.promptVariableEnvironmentAsync = exports.promptVariableVisibilityAsync = exports.parseVisibility = exports.promptVariableTypeAsync = void 0;
3
+ exports.promptPlatformAsync = exports.promptVariableNameAsync = exports.promptVariableValueAsync = exports.promptVariableEnvironmentAsync = exports.promptVariableVisibilityAsync = exports.parseVisibility = exports.promptVariableTypeAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
6
  const generated_1 = require("../graphql/generated");
7
+ const platform_1 = require("../platform");
7
8
  const prompts_1 = require("../prompts");
8
9
  async function promptVariableTypeAsync(nonInteractive, initialType) {
9
10
  if (nonInteractive) {
@@ -134,3 +135,26 @@ async function promptVariableNameAsync(nonInteractive, initialValue) {
134
135
  return name;
135
136
  }
136
137
  exports.promptVariableNameAsync = promptVariableNameAsync;
138
+ async function promptPlatformAsync({ message, }) {
139
+ const { platform } = await (0, prompts_1.promptAsync)({
140
+ type: 'select',
141
+ message,
142
+ name: 'platform',
143
+ choices: [
144
+ {
145
+ title: 'All',
146
+ value: platform_1.RequestedPlatform.All,
147
+ },
148
+ {
149
+ title: 'iOS',
150
+ value: platform_1.RequestedPlatform.Ios,
151
+ },
152
+ {
153
+ title: 'Android',
154
+ value: platform_1.RequestedPlatform.Android,
155
+ },
156
+ ],
157
+ });
158
+ return platform;
159
+ }
160
+ exports.promptPlatformAsync = promptPlatformAsync;
@@ -7,10 +7,8 @@ export declare namespace WorkflowFile {
7
7
  yamlConfig: string;
8
8
  filePath: string;
9
9
  }>;
10
- function maybePrintWorkflowFileValidationErrors({ error, accountName, projectName, }: {
10
+ function maybePrintWorkflowFileValidationErrors({ error, }: {
11
11
  error: CombinedError;
12
- accountName: string;
13
- projectName: string;
14
12
  }): void;
15
13
  function validateYamlExtension(fileName: string): void;
16
14
  }
@@ -4,9 +4,8 @@ exports.WorkflowFile = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs_1 = tslib_1.__importDefault(require("fs"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
- const url_1 = require("../build/utils/url");
8
7
  const WorkflowRevisionMutation_1 = require("../graphql/mutations/WorkflowRevisionMutation");
9
- const log_1 = tslib_1.__importStar(require("../log"));
8
+ const log_1 = tslib_1.__importDefault(require("../log"));
10
9
  var WorkflowFile;
11
10
  (function (WorkflowFile) {
12
11
  async function readWorkflowFileContentsAsync({ projectDir, filePath, }) {
@@ -32,7 +31,7 @@ var WorkflowFile;
32
31
  throw yamlFromFile.reason;
33
32
  }
34
33
  WorkflowFile.readWorkflowFileContentsAsync = readWorkflowFileContentsAsync;
35
- function maybePrintWorkflowFileValidationErrors({ error, accountName, projectName, }) {
34
+ function maybePrintWorkflowFileValidationErrors({ error, }) {
36
35
  const validationErrors = error.graphQLErrors.flatMap(e => {
37
36
  return WorkflowRevisionMutation_1.WorkflowRevisionMutation.ValidationErrorExtensionZ.safeParse(e.extensions).data ?? [];
38
37
  });
@@ -47,11 +46,6 @@ var WorkflowFile;
47
46
  }
48
47
  }
49
48
  }
50
- const githubNotFoundError = error.graphQLErrors.find(e => e.extensions.errorCode === 'GITHUB_NOT_FOUND_ERROR');
51
- if (githubNotFoundError) {
52
- log_1.default.error(`GitHub repository not found. It is currently required to run workflows.`);
53
- log_1.default.error(`Please check that the repository exists and that you have access to it. ${(0, log_1.link)((0, url_1.getProjectGitHubSettingsUrl)(accountName, projectName))}`);
54
- }
55
49
  }
56
50
  WorkflowFile.maybePrintWorkflowFileValidationErrors = maybePrintWorkflowFileValidationErrors;
57
51
  function validateYamlExtension(fileName) {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "16.19.2",
2
+ "version": "16.20.0",
3
3
  "commands": {
4
4
  "analytics": {
5
5
  "id": "analytics",
@@ -3056,6 +3056,27 @@
3056
3056
  "projectDir": {}
3057
3057
  }
3058
3058
  },
3059
+ "project:new": {
3060
+ "id": "project:new",
3061
+ "description": "create a new project set up with Expo's services.",
3062
+ "strict": true,
3063
+ "pluginName": "eas-cli",
3064
+ "pluginAlias": "eas-cli",
3065
+ "pluginType": "core",
3066
+ "hidden": true,
3067
+ "aliases": [
3068
+ "new"
3069
+ ],
3070
+ "flags": {},
3071
+ "args": {
3072
+ "TARGET_PROJECT_DIRECTORY": {
3073
+ "name": "TARGET_PROJECT_DIRECTORY"
3074
+ }
3075
+ },
3076
+ "contextDefinition": {
3077
+ "loggedIn": {}
3078
+ }
3079
+ },
3059
3080
  "project:onboarding": {
3060
3081
  "id": "project:onboarding",
3061
3082
  "description": "continue onboarding process started on the https://expo.new website.",
@@ -4345,6 +4366,7 @@
4345
4366
  "getDynamicPublicProjectConfigAsync": {},
4346
4367
  "getDynamicPrivateProjectConfigAsync": {},
4347
4368
  "projectDir": {},
4369
+ "projectId": {},
4348
4370
  "loggedIn": {}
4349
4371
  }
4350
4372
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eas-cli",
3
3
  "description": "EAS command line tool",
4
- "version": "16.19.2",
4
+ "version": "16.20.0",
5
5
  "author": "Expo <support@expo.dev>",
6
6
  "bin": {
7
7
  "eas": "./bin/run"
@@ -85,6 +85,7 @@
85
85
  "tar": "6.2.1",
86
86
  "tar-stream": "3.1.7",
87
87
  "terminal-link": "2.1.1",
88
+ "ts-deepmerge": "6.2.0",
88
89
  "tslib": "2.6.2",
89
90
  "turndown": "7.1.2",
90
91
  "untildify": "4.0.0",
@@ -126,7 +127,6 @@
126
127
  "mockdate": "3.0.5",
127
128
  "nock": "13.4.0",
128
129
  "rimraf": "3.0.2",
129
- "ts-deepmerge": "6.2.0",
130
130
  "ts-mockito": "2.6.1",
131
131
  "ts-node": "10.9.2",
132
132
  "typescript": "5.3.3"
@@ -241,5 +241,5 @@
241
241
  "node": "20.11.0",
242
242
  "yarn": "1.22.21"
243
243
  },
244
- "gitHead": "fd23f031b673b17be9dd9241da036f54e141510d"
244
+ "gitHead": "aa428b75712da73305d17d569e8f95b6d6f1ab25"
245
245
  }