eas-cli 16.9.0 → 16.10.1

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.
@@ -36,10 +36,7 @@ async function prepareJobAsync(ctx, jobData) {
36
36
  ? (0, customBuildConfig_1.getCustomBuildConfigPathForJob)(buildProfile.config)
37
37
  : undefined;
38
38
  let buildMode;
39
- if (ctx.repack) {
40
- buildMode = eas_build_job_1.BuildMode.REPACK;
41
- }
42
- else if (buildProfile.config) {
39
+ if (buildProfile.config) {
43
40
  buildMode = eas_build_job_1.BuildMode.CUSTOM;
44
41
  }
45
42
  else {
@@ -94,11 +91,6 @@ async function prepareJobAsync(ctx, jobData) {
94
91
  path: maybeCustomBuildConfigPath,
95
92
  },
96
93
  }),
97
- ...(ctx.repack && {
98
- customBuildConfig: {
99
- path: '__eas/repack.yml',
100
- },
101
- }),
102
94
  loggerLevel: ctx.loggerLevel,
103
95
  // Technically, these are unused, but let's include them here for type consistency.
104
96
  // See: https://github.com/expo/eas-build/pull/454
@@ -57,7 +57,6 @@ export interface BuildContext<T extends Platform> {
57
57
  requiredPackageManager: NodePackageManager['name'] | null;
58
58
  vcsClient: Client;
59
59
  loggerLevel?: LoggerLevel;
60
- repack: boolean;
61
60
  isVerboseLoggingEnabled: boolean;
62
61
  env: Record<string, string>;
63
62
  }
@@ -9,7 +9,7 @@ import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGr
9
9
  import { CustomBuildConfigMetadata } from '../project/customBuildConfig';
10
10
  import { Actor } from '../user/User';
11
11
  import { Client } from '../vcs/vcs';
12
- export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, isVerboseLoggingEnabled, env, }: {
12
+ export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, isVerboseLoggingEnabled, env, }: {
13
13
  buildProfileName: string;
14
14
  buildProfile: BuildProfile<T>;
15
15
  easJsonCliConfig: EasJson['cli'];
@@ -29,7 +29,6 @@ export declare function createBuildContextAsync<T extends Platform>({ buildProfi
29
29
  customBuildConfigMetadata?: CustomBuildConfigMetadata;
30
30
  buildLoggerLevel?: LoggerLevel;
31
31
  freezeCredentials: boolean;
32
- repack: boolean;
33
32
  isVerboseLoggingEnabled: boolean;
34
33
  env: Record<string, string>;
35
34
  }): Promise<BuildContext<T>>;
@@ -16,7 +16,7 @@ const AnalyticsManager_1 = require("../analytics/AnalyticsManager");
16
16
  const context_1 = require("../credentials/context");
17
17
  const projectUtils_1 = require("../project/projectUtils");
18
18
  const workflow_1 = require("../project/workflow");
19
- async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, repack, isVerboseLoggingEnabled, env, }) {
19
+ async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, isVerboseLoggingEnabled, env, }) {
20
20
  const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({
21
21
  env,
22
22
  });
@@ -90,7 +90,6 @@ async function createBuildContextAsync({ buildProfileName, buildProfile, easJson
90
90
  developmentClient,
91
91
  requiredPackageManager,
92
92
  loggerLevel: buildLoggerLevel,
93
- repack,
94
93
  isVerboseLoggingEnabled,
95
94
  env,
96
95
  };
@@ -27,10 +27,7 @@ async function prepareJobAsync(ctx, jobData) {
27
27
  ? (0, customBuildConfig_1.getCustomBuildConfigPathForJob)(buildProfile.config)
28
28
  : undefined;
29
29
  let buildMode;
30
- if (ctx.repack) {
31
- buildMode = eas_build_job_1.BuildMode.REPACK;
32
- }
33
- else if (buildProfile.config) {
30
+ if (buildProfile.config) {
34
31
  buildMode = eas_build_job_1.BuildMode.CUSTOM;
35
32
  }
36
33
  else {
@@ -88,11 +85,6 @@ async function prepareJobAsync(ctx, jobData) {
88
85
  path: maybeCustomBuildConfigPath,
89
86
  },
90
87
  }),
91
- ...(ctx.repack && {
92
- customBuildConfig: {
93
- path: '__eas/repack.yml',
94
- },
95
- }),
96
88
  loggerLevel: ctx.loggerLevel,
97
89
  // Technically, these are unused, but let's include them here for type consistency.
98
90
  // See: https://github.com/expo/eas-build/pull/454
@@ -24,7 +24,6 @@ export interface BuildFlags {
24
24
  message?: string;
25
25
  buildLoggerLevel?: LoggerLevel;
26
26
  freezeCredentials: boolean;
27
- repack: boolean;
28
27
  isVerboseLoggingEnabled?: boolean;
29
28
  }
30
29
  export declare function runBuildAndSubmitAsync({ graphqlClient, analytics, vcsClient, projectDir, flags, actor, getDynamicPrivateProjectConfigAsync, downloadSimBuildAutoConfirm, envOverride, }: {
@@ -237,7 +237,6 @@ async function prepareAndStartBuildAsync({ projectDir, flags, moreBuilds, buildP
237
237
  customBuildConfigMetadata,
238
238
  buildLoggerLevel: flags.buildLoggerLevel ?? (log_1.default.isDebug ? logger_1.LoggerLevel.DEBUG : undefined),
239
239
  freezeCredentials: flags.freezeCredentials,
240
- repack: flags.repack,
241
240
  isVerboseLoggingEnabled: flags.isVerboseLoggingEnabled ?? false,
242
241
  env,
243
242
  });
@@ -31,5 +31,4 @@ export interface BuildFlags {
31
31
  message?: string;
32
32
  buildLoggerLevel?: LoggerLevel;
33
33
  freezeCredentials: boolean;
34
- repack: boolean;
35
34
  }
@@ -0,0 +1,20 @@
1
+ import { WorkflowRunFragment } from '../graphql/generated';
2
+ export type WorkflowRunResult = {
3
+ id: string;
4
+ status: string;
5
+ gitCommitMessage: string | null;
6
+ gitCommitHash: string | null;
7
+ startedAt: string;
8
+ finishedAt: string;
9
+ workflowId: string;
10
+ workflowName: string | null;
11
+ workflowFileName: string;
12
+ };
13
+ export declare function processWorkflowRuns(runs: WorkflowRunFragment[]): WorkflowRunResult[];
14
+ export type WorkflowResult = {
15
+ id: string;
16
+ name?: string | null | undefined;
17
+ fileName: string;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processWorkflowRuns = void 0;
4
+ const generated_1 = require("../graphql/generated");
5
+ function processWorkflowRuns(runs) {
6
+ return runs.map(run => {
7
+ const finishedAt = run.status === generated_1.WorkflowRunStatus.InProgress ? null : run.updatedAt;
8
+ return {
9
+ id: run.id,
10
+ status: run.status,
11
+ gitCommitMessage: run.gitCommitMessage?.split('\n')[0] ?? null,
12
+ gitCommitHash: run.gitCommitHash ?? null,
13
+ startedAt: run.createdAt,
14
+ finishedAt,
15
+ workflowId: run.workflow.id,
16
+ workflowName: run.workflow.name ?? null,
17
+ workflowFileName: run.workflow.fileName,
18
+ };
19
+ });
20
+ }
21
+ exports.processWorkflowRuns = processWorkflowRuns;
@@ -89,6 +89,7 @@ class BuildDev extends EasCommand_1.default {
89
89
  projectId,
90
90
  platform,
91
91
  fingerprint,
92
+ profile: buildProfile.profileName,
92
93
  });
93
94
  if (builds.length !== 0) {
94
95
  const build = builds[0];
@@ -107,6 +108,7 @@ class BuildDev extends EasCommand_1.default {
107
108
  graphqlClient,
108
109
  projectId,
109
110
  platform,
111
+ profile: buildProfile.profileName,
110
112
  });
111
113
  if (previousBuildsForSelectedProfile.length > 0 &&
112
114
  previousBuildsForSelectedProfile[0].metrics?.buildDuration) {
@@ -126,7 +128,6 @@ class BuildDev extends EasCommand_1.default {
126
128
  json: false,
127
129
  autoSubmit: false,
128
130
  localBuildOptions: {},
129
- repack: false,
130
131
  profile: flags.profile ?? DEFAULT_EAS_BUILD_RUN_PROFILE_NAME,
131
132
  },
132
133
  actor,
@@ -224,7 +225,7 @@ class BuildDev extends EasCommand_1.default {
224
225
  });
225
226
  return buildProfile;
226
227
  }
227
- async getBuildsAsync({ graphqlClient, projectId, platform, fingerprint, }) {
228
+ async getBuildsAsync({ graphqlClient, projectId, platform, fingerprint, profile, }) {
228
229
  return await BuildQuery_1.BuildQuery.viewBuildsOnAppAsync(graphqlClient, {
229
230
  appId: projectId,
230
231
  filter: {
@@ -234,6 +235,7 @@ class BuildDev extends EasCommand_1.default {
234
235
  simulator: platform === eas_build_job_1.Platform.IOS ? true : undefined,
235
236
  distribution: platform === eas_build_job_1.Platform.ANDROID ? generated_1.DistributionType.Internal : undefined,
236
237
  developmentClient: true,
238
+ buildProfile: profile,
237
239
  },
238
240
  offset: 0,
239
241
  limit: 1,
@@ -20,7 +20,6 @@ export default class Build extends EasCommand {
20
20
  message: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
21
21
  'build-logger-level': import("@oclif/core/lib/interfaces").OptionFlag<LoggerLevel | undefined>;
22
22
  'freeze-credentials': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
23
- repack: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
24
23
  'verbose-logs': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
25
24
  };
26
25
  static contextDefinition: {
@@ -89,11 +89,6 @@ class Build extends EasCommand_1.default {
89
89
  default: false,
90
90
  description: 'Prevent the build from updating credentials in non-interactive mode',
91
91
  }),
92
- repack: core_1.Flags.boolean({
93
- default: false,
94
- hidden: true,
95
- description: 'Use the golden dev client build repack flow as it works for onboarding',
96
- }),
97
92
  'verbose-logs': core_1.Flags.boolean({
98
93
  default: false,
99
94
  description: 'Use verbose logs for the build process',
@@ -187,7 +182,6 @@ class Build extends EasCommand_1.default {
187
182
  buildLoggerLevel: flags['build-logger-level'],
188
183
  freezeCredentials: flags['freeze-credentials'],
189
184
  isVerboseLoggingEnabled: flags['verbose-logs'],
190
- repack: flags.repack,
191
185
  };
192
186
  }
193
187
  async ensurePlatformSelectedAsync(flags) {
@@ -105,7 +105,6 @@ class BuildInspect extends EasCommand_1.default {
105
105
  workingdir: tmpWorkingdir,
106
106
  artifactsDir: path_1.default.join(tmpWorkingdir, 'artifacts'),
107
107
  },
108
- repack: false,
109
108
  },
110
109
  actor,
111
110
  getDynamicPrivateProjectConfigAsync,
@@ -78,7 +78,6 @@ class BuildInternal extends EasCommand_1.default {
78
78
  localBuildMode: local_1.LocalBuildMode.INTERNAL,
79
79
  },
80
80
  submitProfile: flags['auto-submit-with-profile'] ?? flags.profile,
81
- repack: false,
82
81
  },
83
82
  actor,
84
83
  getDynamicPrivateProjectConfigAsync,
@@ -224,7 +224,6 @@ class Onboarding extends EasCommand_1.default {
224
224
  autoSubmit: false,
225
225
  localBuildOptions: {},
226
226
  freezeCredentials: false,
227
- repack: true,
228
227
  },
229
228
  actor,
230
229
  // eslint-disable-next-line async-protect/async-suffix
@@ -0,0 +1,13 @@
1
+ import EasCommand from '../../commandUtils/EasCommand';
2
+ export default class WorkflowRunCancel extends EasCommand {
3
+ static description: string;
4
+ static strict: boolean;
5
+ static contextDefinition: {
6
+ loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
7
+ projectId: import("../../commandUtils/context/ProjectIdContextField").ProjectIdContextField;
8
+ };
9
+ static flags: {
10
+ 'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ runAsync(): Promise<void>;
13
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
5
+ const flags_1 = require("../../commandUtils/flags");
6
+ const workflows_1 = require("../../commandUtils/workflows");
7
+ const generated_1 = require("../../graphql/generated");
8
+ const WorkflowRunMutation_1 = require("../../graphql/mutations/WorkflowRunMutation");
9
+ const AppQuery_1 = require("../../graphql/queries/AppQuery");
10
+ const log_1 = tslib_1.__importDefault(require("../../log"));
11
+ const prompts_1 = require("../../prompts");
12
+ class WorkflowRunCancel extends EasCommand_1.default {
13
+ static description = 'Cancel one or more workflow runs. If no workflow run IDs are provided, you will be prompted to select IN_PROGRESS runs to cancel.';
14
+ static strict = false;
15
+ static contextDefinition = {
16
+ ...this.ContextOptions.ProjectId,
17
+ ...this.ContextOptions.LoggedIn,
18
+ };
19
+ static flags = {
20
+ ...flags_1.EASNonInteractiveFlag,
21
+ };
22
+ async runAsync() {
23
+ const { argv } = await this.parse(WorkflowRunCancel);
24
+ let nonInteractive = false;
25
+ const workflowRunIds = new Set();
26
+ // Custom parsing of argv
27
+ const tokens = [...argv];
28
+ while (tokens.length > 0) {
29
+ const token = tokens.shift();
30
+ if (token === '--non-interactive') {
31
+ nonInteractive = true;
32
+ continue;
33
+ }
34
+ else if (token) {
35
+ workflowRunIds.add(token);
36
+ }
37
+ }
38
+ const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(WorkflowRunCancel, {
39
+ nonInteractive,
40
+ });
41
+ if (workflowRunIds.size === 0) {
42
+ if (nonInteractive) {
43
+ throw new Error('Must supply workflow run IDs as arguments when in non-interactive mode');
44
+ }
45
+ // Run the workflow run list query and select runs to cancel
46
+ const queryResult = await AppQuery_1.AppQuery.byIdWorkflowRunsFilteredByStatusAsync(graphqlClient, projectId, generated_1.WorkflowRunStatus.InProgress, 50);
47
+ const runs = (0, workflows_1.processWorkflowRuns)(queryResult);
48
+ if (runs.length === 0) {
49
+ log_1.default.warn('No workflow runs to cancel');
50
+ return;
51
+ }
52
+ const answers = await (0, prompts_1.promptAsync)({
53
+ type: 'multiselect',
54
+ name: 'selectedRuns',
55
+ message: 'Select IN_PROGRESS workflow runs to cancel',
56
+ choices: runs.map(run => ({
57
+ title: `${run.id} - ${run.workflowFileName}, ${run.gitCommitMessage ?? ''}, ${run.startedAt}`,
58
+ value: run.id,
59
+ })),
60
+ });
61
+ answers.selectedRuns.forEach((id) => {
62
+ workflowRunIds.add(id);
63
+ });
64
+ if (workflowRunIds.size === 0) {
65
+ log_1.default.warn('No workflow runs to cancel');
66
+ return;
67
+ }
68
+ }
69
+ log_1.default.addNewLineIfNone();
70
+ for (const workflowRunId of workflowRunIds) {
71
+ try {
72
+ await WorkflowRunMutation_1.WorkflowRunMutation.cancelWorkflowRunAsync(graphqlClient, {
73
+ workflowRunId,
74
+ });
75
+ log_1.default.log(`Workflow run ${workflowRunId} has been canceled.`);
76
+ }
77
+ catch (e) {
78
+ log_1.default.error(`Failed to cancel workflow run ${workflowRunId}: ${e}`);
79
+ }
80
+ }
81
+ log_1.default.addNewLineIfNone();
82
+ }
83
+ }
84
+ exports.default = WorkflowRunCancel;
@@ -5,28 +5,13 @@ const core_1 = require("@oclif/core");
5
5
  const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
6
6
  const flags_1 = require("../../commandUtils/flags");
7
7
  const pagination_1 = require("../../commandUtils/pagination");
8
+ const workflows_1 = require("../../commandUtils/workflows");
8
9
  const generated_1 = require("../../graphql/generated");
9
10
  const AppQuery_1 = require("../../graphql/queries/AppQuery");
10
11
  const WorkflowRunQuery_1 = require("../../graphql/queries/WorkflowRunQuery");
11
12
  const log_1 = tslib_1.__importDefault(require("../../log"));
12
13
  const formatFields_1 = tslib_1.__importDefault(require("../../utils/formatFields"));
13
14
  const json_1 = require("../../utils/json");
14
- function processWorkflowRuns(runs) {
15
- return runs.map(run => {
16
- const finishedAt = run.status === generated_1.WorkflowRunStatus.InProgress ? null : run.updatedAt;
17
- return {
18
- id: run.id,
19
- status: run.status,
20
- gitCommitMessage: run.gitCommitMessage ?? null,
21
- gitCommitHash: run.gitCommitHash ?? null,
22
- startedAt: run.createdAt,
23
- finishedAt,
24
- workflowId: run.workflow.id,
25
- workflowName: run.workflow.name ?? null,
26
- workflowFileName: run.workflow.fileName,
27
- };
28
- });
29
- }
30
15
  class WorkflowRunList extends EasCommand_1.default {
31
16
  static description = 'list recent workflow runs for this project, with their IDs, statuses, and timestamps';
32
17
  static flags = {
@@ -64,7 +49,7 @@ class WorkflowRunList extends EasCommand_1.default {
64
49
  else {
65
50
  runs = await AppQuery_1.AppQuery.byIdWorkflowRunsFilteredByStatusAsync(graphqlClient, projectId, status, limit);
66
51
  }
67
- const result = processWorkflowRuns(runs);
52
+ const result = (0, workflows_1.processWorkflowRuns)(runs);
68
53
  if (flags.json) {
69
54
  (0, json_1.printJsonOnlyOutput)(result);
70
55
  return;
@@ -157,6 +157,7 @@ export type Account = {
157
157
  /** Whether this account can enable SSO. */
158
158
  canEnableSSO: Scalars['Boolean']['output'];
159
159
  createdAt: Scalars['DateTime']['output'];
160
+ displayName?: Maybe<Scalars['String']['output']>;
160
161
  /** Environment secrets for an account */
161
162
  environmentSecrets: Array<EnvironmentSecret>;
162
163
  /** Environment variables for an account */
@@ -542,6 +543,8 @@ export type AccountMutation = {
542
543
  requestRefund?: Maybe<Scalars['Boolean']['output']>;
543
544
  /** Revoke specified Permissions for Actor. Actor must already have at least one permission on the account. */
544
545
  revokeActorPermissions: Account;
546
+ /** Set the display name for the account. */
547
+ setDisplayName: Account;
545
548
  /** Require authorization to send push notifications for experiences owned by this account */
546
549
  setPushSecurityEnabled: Account;
547
550
  };
@@ -583,6 +586,10 @@ export type AccountMutationRevokeActorPermissionsArgs = {
583
586
  actorID: Scalars['ID']['input'];
584
587
  permissions?: InputMaybe<Array<InputMaybe<Permission>>>;
585
588
  };
589
+ export type AccountMutationSetDisplayNameArgs = {
590
+ accountID: Scalars['ID']['input'];
591
+ displayName: Scalars['String']['input'];
592
+ };
586
593
  export type AccountMutationSetPushSecurityEnabledArgs = {
587
594
  accountID: Scalars['ID']['input'];
588
595
  pushSecurityEnabled: Scalars['Boolean']['input'];
@@ -3910,8 +3917,6 @@ export type GitHubBuildInput = {
3910
3917
  environment?: InputMaybe<EnvironmentVariableEnvironment>;
3911
3918
  gitRef: Scalars['String']['input'];
3912
3919
  platform: AppPlatform;
3913
- /** Repack the golden dev client build instead of running full build process. Used for onboarding. Do not use outside of onboarding flow, as for now it's only created with this specific use case in mind. */
3914
- repack?: InputMaybe<Scalars['Boolean']['input']>;
3915
3920
  submitProfile?: InputMaybe<Scalars['String']['input']>;
3916
3921
  };
3917
3922
  export type GitHubBuildTrigger = {
@@ -5245,7 +5250,7 @@ export type RootMutation = {
5245
5250
  webhook: WebhookMutation;
5246
5251
  /** Mutations that modify a websiteNotification */
5247
5252
  websiteNotifications: WebsiteNotificationMutation;
5248
- workflowJob: WorkflowJobMutation;
5253
+ workflowJobApproval: WorkflowJobApprovalMutation;
5249
5254
  workflowRevision: WorkflowRevisionMutation;
5250
5255
  workflowRun: WorkflowRunMutation;
5251
5256
  };
@@ -6220,7 +6225,7 @@ export type UpdateRollBackToEmbeddedGroup = {
6220
6225
  web?: InputMaybe<Scalars['Boolean']['input']>;
6221
6226
  };
6222
6227
  export type UpdateRolloutInfo = {
6223
- rolloutControlUpdateId: Scalars['ID']['input'];
6228
+ rolloutControlUpdateId?: InputMaybe<Scalars['ID']['input']>;
6224
6229
  rolloutPercentage: Scalars['Int']['input'];
6225
6230
  };
6226
6231
  export type UpdateRolloutInfoGroup = {
@@ -7317,6 +7322,7 @@ export type WorkflowArtifact = {
7317
7322
  };
7318
7323
  export type WorkflowJob = {
7319
7324
  __typename?: 'WorkflowJob';
7325
+ approvals: Array<WorkflowJobApproval>;
7320
7326
  createdAt: Scalars['DateTime']['output'];
7321
7327
  credentialsAppleDeviceRegistrationRequest?: Maybe<AppleDeviceRegistrationRequest>;
7322
7328
  errors: Array<WorkflowJobError>;
@@ -7333,18 +7339,28 @@ export type WorkflowJob = {
7333
7339
  updatedAt: Scalars['DateTime']['output'];
7334
7340
  workflowRun: WorkflowRun;
7335
7341
  };
7342
+ export type WorkflowJobApproval = {
7343
+ __typename?: 'WorkflowJobApproval';
7344
+ createdAt: Scalars['DateTime']['output'];
7345
+ decision: WorkflowJobReviewDecision;
7346
+ id: Scalars['ID']['output'];
7347
+ updatedAt: Scalars['DateTime']['output'];
7348
+ userActor?: Maybe<UserActor>;
7349
+ workflowJob: WorkflowJob;
7350
+ };
7351
+ export type WorkflowJobApprovalMutation = {
7352
+ __typename?: 'WorkflowJobApprovalMutation';
7353
+ setWorkflowJobApprovalDecision: WorkflowJobApproval;
7354
+ };
7355
+ export type WorkflowJobApprovalMutationSetWorkflowJobApprovalDecisionArgs = {
7356
+ decision: WorkflowJobReviewDecision;
7357
+ workflowJobId: Scalars['ID']['input'];
7358
+ };
7336
7359
  export type WorkflowJobError = {
7337
7360
  __typename?: 'WorkflowJobError';
7338
7361
  message: Scalars['String']['output'];
7339
7362
  title: Scalars['String']['output'];
7340
7363
  };
7341
- export type WorkflowJobMutation = {
7342
- __typename?: 'WorkflowJobMutation';
7343
- approveWorkflowJob: Scalars['ID']['output'];
7344
- };
7345
- export type WorkflowJobMutationApproveWorkflowJobArgs = {
7346
- workflowJobId: Scalars['ID']['input'];
7347
- };
7348
7364
  export type WorkflowJobQuery = {
7349
7365
  __typename?: 'WorkflowJobQuery';
7350
7366
  byId: WorkflowJob;
@@ -7352,6 +7368,10 @@ export type WorkflowJobQuery = {
7352
7368
  export type WorkflowJobQueryByIdArgs = {
7353
7369
  workflowJobId: Scalars['ID']['input'];
7354
7370
  };
7371
+ export declare enum WorkflowJobReviewDecision {
7372
+ Approved = "APPROVED",
7373
+ Rejected = "REJECTED"
7374
+ }
7355
7375
  export declare enum WorkflowJobStatus {
7356
7376
  ActionRequired = "ACTION_REQUIRED",
7357
7377
  Canceled = "CANCELED",
@@ -12450,6 +12470,19 @@ export type CreateWorkflowRunMutation = {
12450
12470
  };
12451
12471
  };
12452
12472
  };
12473
+ export type CancelWorkflowRunMutationVariables = Exact<{
12474
+ workflowRunId: Scalars['ID']['input'];
12475
+ }>;
12476
+ export type CancelWorkflowRunMutation = {
12477
+ __typename?: 'RootMutation';
12478
+ workflowRun: {
12479
+ __typename?: 'WorkflowRunMutation';
12480
+ cancelWorkflowRun: {
12481
+ __typename?: 'WorkflowRun';
12482
+ id: string;
12483
+ };
12484
+ };
12485
+ };
12453
12486
  export type AppByIdQueryVariables = Exact<{
12454
12487
  appId: Scalars['String']['input'];
12455
12488
  }>;
@@ -8,7 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentVariableEnvironment = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountAppsSortByField = void 0;
10
10
  exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = void 0;
11
- exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = void 0;
11
+ exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = void 0;
12
12
  var AccountAppsSortByField;
13
13
  (function (AccountAppsSortByField) {
14
14
  AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
@@ -862,6 +862,11 @@ var WorkerLoggerLevel;
862
862
  WorkerLoggerLevel["Trace"] = "TRACE";
863
863
  WorkerLoggerLevel["Warn"] = "WARN";
864
864
  })(WorkerLoggerLevel || (exports.WorkerLoggerLevel = WorkerLoggerLevel = {}));
865
+ var WorkflowJobReviewDecision;
866
+ (function (WorkflowJobReviewDecision) {
867
+ WorkflowJobReviewDecision["Approved"] = "APPROVED";
868
+ WorkflowJobReviewDecision["Rejected"] = "REJECTED";
869
+ })(WorkflowJobReviewDecision || (exports.WorkflowJobReviewDecision = WorkflowJobReviewDecision = {}));
865
870
  var WorkflowJobStatus;
866
871
  (function (WorkflowJobStatus) {
867
872
  WorkflowJobStatus["ActionRequired"] = "ACTION_REQUIRED";
@@ -8,4 +8,7 @@ export declare namespace WorkflowRunMutation {
8
8
  }): Promise<{
9
9
  id: string;
10
10
  }>;
11
+ function cancelWorkflowRunAsync(graphqlClient: ExpoGraphqlClient, { workflowRunId, }: {
12
+ workflowRunId: string;
13
+ }): Promise<void>;
11
14
  }
@@ -33,4 +33,20 @@ var WorkflowRunMutation;
33
33
  return { id: data.workflowRun.createWorkflowRun.id };
34
34
  }
35
35
  WorkflowRunMutation.createWorkflowRunAsync = createWorkflowRunAsync;
36
+ async function cancelWorkflowRunAsync(graphqlClient, { workflowRunId, }) {
37
+ await (0, client_1.withErrorHandlingAsync)(graphqlClient
38
+ .mutation((0, graphql_tag_1.default) `
39
+ mutation CancelWorkflowRun($workflowRunId: ID!) {
40
+ workflowRun {
41
+ cancelWorkflowRun(workflowRunId: $workflowRunId) {
42
+ id
43
+ }
44
+ }
45
+ }
46
+ `, {
47
+ workflowRunId,
48
+ })
49
+ .toPromise());
50
+ }
51
+ WorkflowRunMutation.cancelWorkflowRunAsync = cancelWorkflowRunAsync;
36
52
  })(WorkflowRunMutation || (exports.WorkflowRunMutation = WorkflowRunMutation = {}));
@@ -651,9 +651,6 @@ async function getUpdateRolloutInfoGroupAsync(graphqlClient, { appId, branchName
651
651
  runtimeVersion,
652
652
  platform: exports.updatePublishPlatformToAppPlatform[platform],
653
653
  });
654
- if (!updateIdForPlatform) {
655
- throw new Error(`No updates on branch ${branchName} for platform ${platform} and runtimeVersion ${runtimeVersion} to roll out from.`);
656
- }
657
654
  return [platform, { rolloutPercentage, rolloutControlUpdateId: updateIdForPlatform }];
658
655
  })));
659
656
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "16.9.0",
2
+ "version": "16.10.1",
3
3
  "commands": {
4
4
  "analytics": {
5
5
  "id": "analytics",
@@ -913,13 +913,6 @@
913
913
  "description": "Prevent the build from updating credentials in non-interactive mode",
914
914
  "allowNo": false
915
915
  },
916
- "repack": {
917
- "name": "repack",
918
- "type": "boolean",
919
- "description": "Use the golden dev client build repack flow as it works for onboarding",
920
- "hidden": true,
921
- "allowNo": false
922
- },
923
916
  "verbose-logs": {
924
917
  "name": "verbose-logs",
925
918
  "type": "boolean",
@@ -4156,6 +4149,28 @@
4156
4149
  "loggedIn": {}
4157
4150
  }
4158
4151
  },
4152
+ "workflow:cancel": {
4153
+ "id": "workflow:cancel",
4154
+ "description": "Cancel one or more workflow runs. If no workflow run IDs are provided, you will be prompted to select IN_PROGRESS runs to cancel.",
4155
+ "strict": false,
4156
+ "pluginName": "eas-cli",
4157
+ "pluginAlias": "eas-cli",
4158
+ "pluginType": "core",
4159
+ "aliases": [],
4160
+ "flags": {
4161
+ "non-interactive": {
4162
+ "name": "non-interactive",
4163
+ "type": "boolean",
4164
+ "description": "Run the command in non-interactive mode.",
4165
+ "allowNo": false
4166
+ }
4167
+ },
4168
+ "args": {},
4169
+ "contextDefinition": {
4170
+ "projectId": {},
4171
+ "loggedIn": {}
4172
+ }
4173
+ },
4159
4174
  "workflow:create": {
4160
4175
  "id": "workflow:create",
4161
4176
  "description": "create a new workflow configuration YAML file",