eas-cli 16.20.0 → 16.20.2

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 (49) hide show
  1. package/README.md +85 -85
  2. package/build/build/android/build.js +1 -3
  3. package/build/build/build.d.ts +3 -3
  4. package/build/build/build.js +11 -4
  5. package/build/build/evaluateConfigWithEnvVarsAsync.js +3 -4
  6. package/build/build/graphql.d.ts +4 -2
  7. package/build/build/graphql.js +3 -14
  8. package/build/build/ios/build.js +1 -3
  9. package/build/build/metadata.d.ts +1 -2
  10. package/build/build/metadata.js +0 -1
  11. package/build/build/utils/environment.d.ts +5 -1
  12. package/build/build/utils/environment.js +12 -6
  13. package/build/commandUtils/EasCommand.d.ts +1 -1
  14. package/build/commandUtils/context/ContextField.d.ts +1 -1
  15. package/build/commandUtils/context/contextUtils/loadServerSideEnvironmentVariablesAsync.d.ts +1 -1
  16. package/build/commandUtils/context/contextUtils/loadServerSideEnvironmentVariablesAsync.js +4 -4
  17. package/build/commandUtils/flags.d.ts +1 -4
  18. package/build/commandUtils/flags.js +5 -6
  19. package/build/commands/build/resign.d.ts +2 -1
  20. package/build/commands/deploy/index.d.ts +1 -1
  21. package/build/commands/env/create.d.ts +1 -1
  22. package/build/commands/env/delete.d.ts +1 -1
  23. package/build/commands/env/get.d.ts +1 -1
  24. package/build/commands/env/list.d.ts +1 -1
  25. package/build/commands/env/pull.d.ts +1 -1
  26. package/build/commands/env/push.d.ts +1 -1
  27. package/build/commands/env/update.d.ts +1 -1
  28. package/build/commands/fingerprint/compare.d.ts +1 -1
  29. package/build/commands/fingerprint/generate.d.ts +1 -1
  30. package/build/commands/update/configure.d.ts +1 -1
  31. package/build/commands/update/index.d.ts +1 -1
  32. package/build/commands/update/index.js +1 -5
  33. package/build/credentials/ios/appstore/bundleIdCapabilities.js +1 -1
  34. package/build/credentials/ios/appstore/capabilityList.js +18 -8
  35. package/build/graphql/generated.d.ts +77 -52
  36. package/build/graphql/generated.js +3 -9
  37. package/build/graphql/mutations/FingerprintMutation.d.ts +2 -3
  38. package/build/graphql/queries/EnvironmentVariablesQuery.d.ts +2 -1
  39. package/build/project/maybeUploadFingerprintAsync.d.ts +2 -2
  40. package/build/project/maybeUploadFingerprintAsync.js +7 -12
  41. package/build/project/publish.d.ts +5 -5
  42. package/build/project/publish.js +1 -1
  43. package/build/utils/prompts.d.ts +2 -1
  44. package/build/utils/prompts.js +3 -2
  45. package/build/utils/variableUtils.d.ts +2 -1
  46. package/build/utils/variableUtils.js +2 -1
  47. package/build/worker/assets.d.ts +1 -1
  48. package/oclif.manifest.json +1 -1
  49. package/package.json +5 -5
@@ -18,7 +18,6 @@ const applicationId_1 = require("../../project/android/applicationId");
18
18
  const gradle_1 = require("../../project/android/gradle");
19
19
  const prompts_1 = require("../../prompts");
20
20
  const build_1 = require("../build");
21
- const graphql_2 = require("../graphql");
22
21
  const credentials_1 = require("../utils/credentials");
23
22
  const validate_1 = require("../validate");
24
23
  async function createAndroidContextAsync(ctx) {
@@ -78,8 +77,7 @@ async function prepareAndroidBuildAsync(ctx) {
78
77
  prepareJobAsync: async (ctx, jobData) => {
79
78
  return await (0, prepareJob_1.prepareJobAsync)(ctx, jobData);
80
79
  },
81
- sendBuildRequestAsync: async (appId, job, metadata, buildParams) => {
82
- const graphqlMetadata = (0, graphql_2.transformMetadata)(metadata);
80
+ sendBuildRequestAsync: async (appId, job, graphqlMetadata, buildParams) => {
83
81
  const graphqlJob = (0, graphql_1.transformJob)(job);
84
82
  return await BuildMutation_1.BuildMutation.createAndroidBuildAsync(ctx.graphqlClient, {
85
83
  appId,
@@ -1,8 +1,8 @@
1
- import { ArchiveSource, BuildJob, Metadata, Platform } from '@expo/eas-build-job';
1
+ import { ArchiveSource, BuildJob, Platform } from '@expo/eas-build-job';
2
2
  import { CredentialsSource } from '@expo/eas-json';
3
3
  import { BuildContext } from './context';
4
4
  import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGraphqlClient';
5
- import { BuildFragment, BuildParamsInput } from '../graphql/generated';
5
+ import { BuildFragment, BuildMetadataInput, BuildParamsInput } from '../graphql/generated';
6
6
  import { BuildResult } from '../graphql/mutations/BuildMutation';
7
7
  export interface CredentialsResult<Credentials> {
8
8
  source: CredentialsSource.LOCAL | CredentialsSource.REMOTE;
@@ -17,7 +17,7 @@ interface Builder<TPlatform extends Platform, Credentials, TJob extends BuildJob
17
17
  ensureCredentialsAsync(ctx: BuildContext<TPlatform>): Promise<CredentialsResult<Credentials> | undefined>;
18
18
  syncProjectConfigurationAsync(ctx: BuildContext<TPlatform>): Promise<void>;
19
19
  prepareJobAsync(ctx: BuildContext<TPlatform>, jobData: JobData<Credentials>): Promise<BuildJob>;
20
- sendBuildRequestAsync(appId: string, job: TJob, metadata: Metadata, buildParams: BuildParamsInput): Promise<BuildResult>;
20
+ sendBuildRequestAsync(appId: string, job: TJob, metadata: BuildMetadataInput, buildParams: BuildParamsInput): Promise<BuildResult>;
21
21
  }
22
22
  export type BuildRequestSender = () => Promise<BuildFragment | undefined>;
23
23
  export declare function prepareBuildRequestForPlatformAsync<TPlatform extends Platform, Credentials, TJob extends BuildJob>(builder: Builder<TPlatform, Credentials, TJob>): Promise<BuildRequestSender>;
@@ -98,14 +98,21 @@ async function prepareBuildRequestForPlatformAsync(builder) {
98
98
  else if (ctx.localBuildOptions.localBuildMode === local_1.LocalBuildMode.INTERNAL) {
99
99
  await BuildMutation_1.BuildMutation.updateBuildMetadataAsync(ctx.graphqlClient, {
100
100
  buildId: (0, nullthrows_1.default)(process.env.EAS_BUILD_ID),
101
- metadata: (0, graphql_1.transformMetadata)(metadata),
101
+ metadata: (0, graphql_1.transformMetadata)({
102
+ metadata,
103
+ fingerprintSource: runtimeAndFingerprintMetadata.fingerprintSource ?? undefined,
104
+ }),
102
105
  });
103
106
  (0, json_1.printJsonOnlyOutput)({ job, metadata });
104
107
  return undefined;
105
108
  }
106
109
  else if (!ctx.localBuildOptions.localBuildMode) {
107
110
  try {
108
- return await sendBuildRequestAsync(builder, job, metadata, buildParams);
111
+ const graphqlMetadata = (0, graphql_1.transformMetadata)({
112
+ metadata,
113
+ fingerprintSource: runtimeAndFingerprintMetadata.fingerprintSource ?? undefined,
114
+ });
115
+ return await sendBuildRequestAsync(builder, job, graphqlMetadata, buildParams);
109
116
  }
110
117
  catch (error) {
111
118
  handleBuildRequestError(error, job.platform);
@@ -221,13 +228,13 @@ async function uploadMetadataFileAsync(projectTarball, ctx) {
221
228
  }
222
229
  }
223
230
  }
224
- async function sendBuildRequestAsync(builder, job, metadata, buildParams) {
231
+ async function sendBuildRequestAsync(builder, job, graphqlMetadata, buildParams) {
225
232
  const { ctx } = builder;
226
233
  return await (0, common_1.withAnalyticsAsync)(ctx.analytics, async () => {
227
234
  if (log_1.default.isDebug) {
228
235
  log_1.default.log(`Starting ${platform_1.requestedPlatformDisplayNames[job.platform]} build`);
229
236
  }
230
- const { build, deprecationInfo } = await builder.sendBuildRequestAsync(ctx.projectId, job, metadata, buildParams);
237
+ const { build, deprecationInfo } = await builder.sendBuildRequestAsync(ctx.projectId, job, graphqlMetadata, buildParams);
231
238
  (0, printBuildInfo_1.printDeprecationWarnings)(deprecationInfo);
232
239
  return build;
233
240
  }, {
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.evaluateConfigWithEnvVarsAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const environment_1 = require("./utils/environment");
6
- const generated_1 = require("../graphql/generated");
7
6
  const EnvironmentVariablesQuery_1 = require("../graphql/queries/EnvironmentVariablesQuery");
8
7
  const log_1 = tslib_1.__importStar(require("../log"));
9
8
  async function evaluateConfigWithEnvVarsAsync({ buildProfile, buildProfileName, graphqlClient, getProjectConfig, opts, }) {
@@ -69,10 +68,10 @@ async function resolveEnvVarsAsync({ buildProfile, buildProfileName, graphqlClie
69
68
  }
70
69
  function resolveSuggestedEnvironmentForBuildProfileConfiguration(buildProfile) {
71
70
  const environment = buildProfile.distribution === 'store'
72
- ? generated_1.EnvironmentVariableEnvironment.Production
71
+ ? environment_1.EnvironmentVariableEnvironment.Production
73
72
  : buildProfile.developmentClient
74
- ? generated_1.EnvironmentVariableEnvironment.Development
75
- : generated_1.EnvironmentVariableEnvironment.Preview;
73
+ ? environment_1.EnvironmentVariableEnvironment.Development
74
+ : environment_1.EnvironmentVariableEnvironment.Preview;
76
75
  log_1.default.log(`Resolved "${environment.toLowerCase()}" environment for the build. ${(0, log_1.learnMore)('https://docs.expo.dev/eas/environment-variables/#setting-the-environment-for-your-builds')}`);
77
76
  return environment;
78
77
  }
@@ -2,8 +2,10 @@ import { ArchiveSource, BuildMode, BuildTrigger, Metadata, Workflow } from '@exp
2
2
  import { LoggerLevel } from '@expo/logger';
3
3
  import { BuildIosEnterpriseProvisioning, BuildMetadataInput, BuildWorkflow, FingerprintSourceInput, BuildMode as GraphQLBuildMode, BuildTrigger as GraphQLBuildTrigger, ProjectArchiveSourceInput, WorkerLoggerLevel } from '../graphql/generated';
4
4
  export declare function transformProjectArchive(archiveSource: ArchiveSource): ProjectArchiveSourceInput;
5
- export declare function transformMetadata(metadata: Metadata): BuildMetadataInput;
6
- export declare function transformFingerprintSource(fingerprintSource: NonNullable<Metadata['fingerprintSource']>): FingerprintSourceInput | null;
5
+ export declare function transformMetadata({ metadata, fingerprintSource, }: {
6
+ metadata: Metadata;
7
+ fingerprintSource: FingerprintSourceInput | undefined;
8
+ }): BuildMetadataInput;
7
9
  export declare function transformWorkflow(workflow: Workflow): BuildWorkflow;
8
10
  export declare function transformIosEnterpriseProvisioning(enterpriseProvisioning: Metadata['iosEnterpriseProvisioning']): BuildIosEnterpriseProvisioning;
9
11
  export declare function transformBuildMode(buildMode: BuildMode): GraphQLBuildMode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loggerLevelToGraphQLWorkerLoggerLevel = exports.transformBuildTrigger = exports.transformBuildMode = exports.transformIosEnterpriseProvisioning = exports.transformWorkflow = exports.transformFingerprintSource = exports.transformMetadata = exports.transformProjectArchive = void 0;
3
+ exports.loggerLevelToGraphQLWorkerLoggerLevel = exports.transformBuildTrigger = exports.transformBuildMode = exports.transformIosEnterpriseProvisioning = exports.transformWorkflow = exports.transformMetadata = exports.transformProjectArchive = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const eas_build_job_1 = require("@expo/eas-build-job");
6
6
  const logger_1 = require("@expo/logger");
@@ -25,10 +25,10 @@ function transformProjectArchive(archiveSource) {
25
25
  }
26
26
  }
27
27
  exports.transformProjectArchive = transformProjectArchive;
28
- function transformMetadata(metadata) {
28
+ function transformMetadata({ metadata, fingerprintSource, }) {
29
29
  return {
30
30
  ...metadata,
31
- fingerprintSource: metadata.fingerprintSource && transformFingerprintSource(metadata.fingerprintSource),
31
+ fingerprintSource,
32
32
  credentialsSource: metadata.credentialsSource && transformCredentialsSource(metadata.credentialsSource),
33
33
  distribution: metadata.distribution && transformDistribution(metadata.distribution),
34
34
  workflow: metadata.workflow && transformWorkflow(metadata.workflow),
@@ -37,17 +37,6 @@ function transformMetadata(metadata) {
37
37
  };
38
38
  }
39
39
  exports.transformMetadata = transformMetadata;
40
- function transformFingerprintSource(fingerprintSource) {
41
- if (fingerprintSource.type !== eas_build_job_1.FingerprintSourceType.GCS) {
42
- return null;
43
- }
44
- return {
45
- type: generated_1.FingerprintSourceType.Gcs,
46
- bucketKey: fingerprintSource.bucketKey,
47
- isDebugFingerprint: fingerprintSource.isDebugFingerprint,
48
- };
49
- }
50
- exports.transformFingerprintSource = transformFingerprintSource;
51
40
  function transformCredentialsSource(credentialsSource) {
52
41
  if (credentialsSource === 'local') {
53
42
  return generated_1.BuildCredentialsSource.Local;
@@ -14,7 +14,6 @@ const exemptEncryption_1 = require("../../project/ios/exemptEncryption");
14
14
  const scheme_1 = require("../../project/ios/scheme");
15
15
  const target_1 = require("../../project/ios/target");
16
16
  const build_1 = require("../build");
17
- const graphql_2 = require("../graphql");
18
17
  const validate_1 = require("../validate");
19
18
  async function createIosContextAsync(ctx) {
20
19
  const { buildProfile, env } = ctx;
@@ -82,8 +81,7 @@ async function prepareIosBuildAsync(ctx) {
82
81
  buildScheme: ctx.ios.xcodeBuildContext.buildScheme,
83
82
  });
84
83
  },
85
- sendBuildRequestAsync: async (appId, job, metadata, buildParams) => {
86
- const graphqlMetadata = (0, graphql_2.transformMetadata)(metadata);
84
+ sendBuildRequestAsync: async (appId, job, graphqlMetadata, buildParams) => {
87
85
  const graphqlJob = (0, graphql_1.transformJob)(job);
88
86
  return await BuildMutation_1.BuildMutation.createIosBuildAsync(ctx.graphqlClient, {
89
87
  appId,
@@ -1,9 +1,8 @@
1
- import { FingerprintSource, Metadata, Platform } from '@expo/eas-build-job';
1
+ import { Metadata, Platform } from '@expo/eas-build-job';
2
2
  import { BuildContext } from './context';
3
3
  export declare function collectMetadataAsync<T extends Platform>(ctx: BuildContext<T>, runtimeAndFingerprintMetadata: {
4
4
  runtimeVersion?: string | undefined;
5
5
  fingerprintHash?: string | undefined;
6
- fingerprintSource?: FingerprintSource | undefined;
7
6
  }): Promise<Metadata>;
8
7
  export declare function getReactNativeVersionAsync(projectDir: string): Promise<string | undefined>;
9
8
  export declare function truncateGitCommitMessage(msg: string | undefined, maxLength?: number): string | undefined;
@@ -26,7 +26,6 @@ async function collectMetadataAsync(ctx, runtimeAndFingerprintMetadata) {
26
26
  sdkVersion: ctx.exp.sdkVersion,
27
27
  runtimeVersion: runtimeAndFingerprintMetadata?.runtimeVersion,
28
28
  fingerprintHash: runtimeAndFingerprintMetadata?.fingerprintHash,
29
- fingerprintSource: runtimeAndFingerprintMetadata?.fingerprintSource,
30
29
  reactNativeVersion: await getReactNativeVersionAsync(ctx.projectDir),
31
30
  ...channelObject,
32
31
  distribution,
@@ -1,4 +1,8 @@
1
1
  import { BuildProfile } from '@expo/eas-json';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
2
+ export declare enum EnvironmentVariableEnvironment {
3
+ Development = "development",
4
+ Preview = "preview",
5
+ Production = "production"
6
+ }
3
7
  export declare function isEnvironment(env: string): env is EnvironmentVariableEnvironment;
4
8
  export declare function buildProfileEnvironmentToEnvironment(environment: BuildProfile['environment']): EnvironmentVariableEnvironment | null;
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildProfileEnvironmentToEnvironment = exports.isEnvironment = void 0;
4
- const generated_1 = require("../../graphql/generated");
3
+ exports.buildProfileEnvironmentToEnvironment = exports.isEnvironment = exports.EnvironmentVariableEnvironment = void 0;
4
+ // Default environments
5
+ var EnvironmentVariableEnvironment;
6
+ (function (EnvironmentVariableEnvironment) {
7
+ EnvironmentVariableEnvironment["Development"] = "development";
8
+ EnvironmentVariableEnvironment["Preview"] = "preview";
9
+ EnvironmentVariableEnvironment["Production"] = "production";
10
+ })(EnvironmentVariableEnvironment || (exports.EnvironmentVariableEnvironment = EnvironmentVariableEnvironment = {}));
5
11
  const BuildProfileEnvironmentToEnvironment = {
6
- production: generated_1.EnvironmentVariableEnvironment.Production,
7
- preview: generated_1.EnvironmentVariableEnvironment.Preview,
8
- development: generated_1.EnvironmentVariableEnvironment.Development,
12
+ production: EnvironmentVariableEnvironment.Production,
13
+ preview: EnvironmentVariableEnvironment.Preview,
14
+ development: EnvironmentVariableEnvironment.Development,
9
15
  };
10
16
  function isEnvironment(env) {
11
- return Object.values(generated_1.EnvironmentVariableEnvironment).includes(env);
17
+ return Object.values(EnvironmentVariableEnvironment).includes(env);
12
18
  }
13
19
  exports.isEnvironment = isEnvironment;
14
20
  function buildProfileEnvironmentToEnvironment(environment) {
@@ -12,7 +12,7 @@ import { ProjectIdContextField } from './context/ProjectIdContextField';
12
12
  import { ServerSideEnvironmentVariablesContextField } from './context/ServerSideEnvironmentVariablesContextField';
13
13
  import SessionManagementContextField from './context/SessionManagementContextField';
14
14
  import VcsClientContextField from './context/VcsClientContextField';
15
- import { EnvironmentVariableEnvironment } from '../graphql/generated';
15
+ import { EnvironmentVariableEnvironment } from '../build/utils/environment';
16
16
  import { Client } from '../vcs/vcs';
17
17
  export type ContextInput<T extends {
18
18
  [name: string]: any;
@@ -1,5 +1,5 @@
1
1
  import { Analytics } from '../../analytics/AnalyticsManager';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
2
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
3
3
  import SessionManager from '../../user/SessionManager';
4
4
  import { Client } from '../../vcs/vcs';
5
5
  export interface ContextOptions {
@@ -1,5 +1,5 @@
1
1
  import { ExpoGraphqlClient } from './createGraphqlClient';
2
- import { EnvironmentVariableEnvironment } from '../../../graphql/generated';
2
+ import { EnvironmentVariableEnvironment } from '../../../build/utils/environment';
3
3
  export declare function loadServerSideEnvironmentVariablesAsync({ environment, projectId, graphqlClient, }: {
4
4
  environment: EnvironmentVariableEnvironment;
5
5
  projectId: string;
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadServerSideEnvironmentVariablesAsync = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const generated_1 = require("../../../graphql/generated");
5
+ const environment_1 = require("../../../build/utils/environment");
6
6
  const EnvironmentVariablesQuery_1 = require("../../../graphql/queries/EnvironmentVariablesQuery");
7
7
  const log_1 = tslib_1.__importDefault(require("../../../log"));
8
8
  const cachedServerSideEnvironmentVariables = {
9
- [generated_1.EnvironmentVariableEnvironment.Development]: null,
10
- [generated_1.EnvironmentVariableEnvironment.Preview]: null,
11
- [generated_1.EnvironmentVariableEnvironment.Production]: null,
9
+ [environment_1.EnvironmentVariableEnvironment.Development]: null,
10
+ [environment_1.EnvironmentVariableEnvironment.Preview]: null,
11
+ [environment_1.EnvironmentVariableEnvironment.Production]: null,
12
12
  };
13
13
  async function loadServerSideEnvironmentVariablesAsync({ environment, projectId, graphqlClient, }) {
14
14
  // don't load environment variables if they were already loaded while executing a command
@@ -1,12 +1,10 @@
1
- import { EnvironmentVariableEnvironment } from '../graphql/generated';
2
- declare function upperCaseAsync<T>(input: string): Promise<T>;
1
+ import { EnvironmentVariableEnvironment } from '../build/utils/environment';
3
2
  export declare const EasNonInteractiveAndJsonFlags: {
4
3
  json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
5
4
  'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
5
  };
7
6
  export declare const EasEnvironmentFlagParameters: {
8
7
  description: string;
9
- parse: typeof upperCaseAsync;
10
8
  options: EnvironmentVariableEnvironment[];
11
9
  };
12
10
  export declare const EASEnvironmentFlag: {
@@ -34,4 +32,3 @@ export declare const EasJsonOnlyFlag: {
34
32
  export declare const EasUpdateEnvironmentFlag: {
35
33
  environment: import("@oclif/core/lib/interfaces").OptionFlag<EnvironmentVariableEnvironment | null>;
36
34
  };
37
- export {};
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EasUpdateEnvironmentFlag = exports.EasJsonOnlyFlag = exports.EASNonInteractiveFlag = exports.EASEnvironmentVariableScopeFlag = exports.EASVariableVisibilityFlag = exports.EASVariableFormatFlag = exports.EASMultiEnvironmentFlag = exports.EASEnvironmentFlag = exports.EasEnvironmentFlagParameters = exports.EasNonInteractiveAndJsonFlags = void 0;
4
4
  const core_1 = require("@oclif/core");
5
- const generated_1 = require("../graphql/generated");
5
+ const environment_1 = require("../build/utils/environment");
6
6
  // NOTE: not exactly true, but, provided mapToLowercase and upperCaseAsync
7
7
  // are used in tandem, it saves on unnecessary typying in commands
8
8
  async function upperCaseAsync(input) {
@@ -22,11 +22,10 @@ exports.EasNonInteractiveAndJsonFlags = {
22
22
  };
23
23
  exports.EasEnvironmentFlagParameters = {
24
24
  description: "Environment variable's environment",
25
- parse: upperCaseAsync,
26
25
  options: mapToLowercase([
27
- generated_1.EnvironmentVariableEnvironment.Development,
28
- generated_1.EnvironmentVariableEnvironment.Preview,
29
- generated_1.EnvironmentVariableEnvironment.Production,
26
+ environment_1.EnvironmentVariableEnvironment.Development,
27
+ environment_1.EnvironmentVariableEnvironment.Preview,
28
+ environment_1.EnvironmentVariableEnvironment.Production,
30
29
  ]),
31
30
  };
32
31
  exports.EASEnvironmentFlag = {
@@ -71,7 +70,7 @@ exports.EasJsonOnlyFlag = {
71
70
  exports.EasUpdateEnvironmentFlag = {
72
71
  environment: core_1.Flags.enum({
73
72
  description: 'Environment to use for the server-side defined EAS environment variables during command execution.',
74
- options: mapToLowercase(Object.values(generated_1.EnvironmentVariableEnvironment)),
73
+ options: mapToLowercase(Object.values(environment_1.EnvironmentVariableEnvironment)),
75
74
  parse: upperCaseAsync,
76
75
  required: false,
77
76
  default: null,
@@ -1,7 +1,8 @@
1
1
  import { Platform } from '@expo/eas-build-job';
2
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
2
3
  import EasCommand from '../../commandUtils/EasCommand';
3
4
  import { ExpoGraphqlClient } from '../../commandUtils/context/contextUtils/createGraphqlClient';
4
- import { BuildFragment, EnvironmentVariableEnvironment } from '../../graphql/generated';
5
+ import { BuildFragment } from '../../graphql/generated';
5
6
  interface BuildResignFlags {
6
7
  json: boolean;
7
8
  nonInteractive: boolean;
@@ -1,5 +1,5 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
3
3
  export default class WorkerDeploy extends EasCommand {
4
4
  static description: string;
5
5
  static aliases: string[];
@@ -1,6 +1,6 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
3
  import { EASEnvironmentVariableScopeFlagValue } from '../../commandUtils/flags';
3
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
4
4
  export default class EnvCreate extends EasCommand {
5
5
  static description: string;
6
6
  static args: {
@@ -1,6 +1,6 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
3
  import { EASEnvironmentVariableScopeFlagValue } from '../../commandUtils/flags';
3
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
4
4
  export default class EnvDelete extends EasCommand {
5
5
  static description: string;
6
6
  static flags: {
@@ -1,6 +1,6 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
3
  import { EASEnvironmentVariableScopeFlagValue } from '../../commandUtils/flags';
3
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
4
4
  export default class EnvGet extends EasCommand {
5
5
  static description: string;
6
6
  static contextDefinition: {
@@ -1,6 +1,6 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
3
  import { EASEnvironmentVariableScopeFlagValue } from '../../commandUtils/flags';
3
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
4
4
  export default class EnvList extends EasCommand {
5
5
  static description: string;
6
6
  static contextDefinition: {
@@ -13,7 +13,7 @@ export default class EnvPull extends EasCommand {
13
13
  }[];
14
14
  static flags: {
15
15
  path: import("@oclif/core/lib/interfaces").OptionFlag<string>;
16
- environment: import("@oclif/core/lib/interfaces").OptionFlag<import("../../graphql/generated").EnvironmentVariableEnvironment | undefined>;
16
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<import("../../build/utils/environment").EnvironmentVariableEnvironment | undefined>;
17
17
  'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
18
  };
19
19
  runAsync(): Promise<void>;
@@ -1,5 +1,5 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
3
3
  export default class EnvPush extends EasCommand {
4
4
  static description: string;
5
5
  static contextDefinition: {
@@ -1,6 +1,6 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
3
  import { EASEnvironmentVariableScopeFlagValue } from '../../commandUtils/flags';
3
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
4
4
  export default class EnvUpdate extends EasCommand {
5
5
  static description: string;
6
6
  static flags: {
@@ -1,5 +1,5 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
3
3
  export default class FingerprintCompare extends EasCommand {
4
4
  static description: string;
5
5
  static strict: boolean;
@@ -1,5 +1,5 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
3
3
  export default class FingerprintGenerate extends EasCommand {
4
4
  static description: string;
5
5
  static strict: boolean;
@@ -4,7 +4,7 @@ export default class UpdateConfigure extends EasCommand {
4
4
  static description: string;
5
5
  static flags: {
6
6
  'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
- environment: import("@oclif/core/lib/interfaces").OptionFlag<import("../../graphql/generated").EnvironmentVariableEnvironment | null>;
7
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<import("../../build/utils/environment").EnvironmentVariableEnvironment | null>;
8
8
  platform: import("@oclif/core/lib/interfaces").OptionFlag<RequestedPlatform>;
9
9
  };
10
10
  static contextDefinition: {
@@ -1,5 +1,5 @@
1
+ import { EnvironmentVariableEnvironment } from '../../build/utils/environment';
1
2
  import EasCommand from '../../commandUtils/EasCommand';
2
- import { EnvironmentVariableEnvironment } from '../../graphql/generated';
3
3
  import { RequestedPlatform } from '../../platform';
4
4
  export default class UpdatePublish extends EasCommand {
5
5
  static description: string;
@@ -8,7 +8,6 @@ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
8
  const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
9
9
  // import { getExpoWebsiteBaseUrl } from '../../api';
10
10
  const queries_1 = require("../../branch/queries");
11
- const graphql_1 = require("../../build/graphql");
12
11
  const repository_1 = require("../../build/utils/repository");
13
12
  const url_1 = require("../../build/utils/url");
14
13
  const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
@@ -324,10 +323,7 @@ class UpdatePublish extends EasCommand_1.default {
324
323
  const transformedFingerprintInfoGroup = Object.entries(fingerprintInfoGroup).reduce((prev, [platform, fingerprintInfo]) => {
325
324
  return {
326
325
  ...prev,
327
- [platform]: {
328
- ...fingerprintInfo,
329
- fingerprintSource: (0, graphql_1.transformFingerprintSource)(fingerprintInfo.fingerprintSource),
330
- },
326
+ [platform]: fingerprintInfo,
331
327
  };
332
328
  }, {});
333
329
  const assetMapGroup = assetMapSource
@@ -73,7 +73,7 @@ function getCapabilitiesToEnable(currentRemoteCapabilities, entitlements, additi
73
73
  });
74
74
  const { op } = operation;
75
75
  if (log_1.default.isDebug) {
76
- log_1.default.log(`Will ${op} remote capability: ${key} (${staticCapabilityInfo.name}.`);
76
+ log_1.default.log(`Will ${op} remote capability: ${key} (${staticCapabilityInfo.name}).`);
77
77
  }
78
78
  if (op === 'enable') {
79
79
  enabledCapabilityNames.push(staticCapabilityInfo.name);
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const apple_utils_1 = require("@expo/apple-utils");
6
6
  const invariant_1 = require("graphql/jsutils/invariant");
7
7
  const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
8
+ const log_1 = tslib_1.__importDefault(require("../../../log"));
8
9
  const validateBooleanOptions = (options) => {
9
10
  return typeof options === 'boolean';
10
11
  };
@@ -51,16 +52,25 @@ const capabilityWithSettingsSyncOperation = ({ existingRemote, entitlementValue,
51
52
  if (!existingRemote) {
52
53
  return enableOp;
53
54
  }
54
- (0, invariant_1.invariant)('enabled' in existingRemote.attributes, `Expected "enabled" attribute in ${existingRemote.id}`);
55
- const existingEnabled = existingRemote.attributes.enabled === true;
56
- const newOption = entitlementValue ? apple_utils_1.CapabilityTypeOption.ON : apple_utils_1.CapabilityTypeOption.OFF;
57
- // If both are enabled and the existing one has settings, skip the update
58
- if (existingEnabled && entitlementValue && existingRemote.attributes.settings) {
55
+ const { attributes, id } = existingRemote;
56
+ if ('enabled' in attributes) {
57
+ // the `enabled` field should be available as per https://developer.apple.com/documentation/appstoreconnectapi/capabilitysetting
58
+ const existingEnabled = attributes.enabled === true;
59
+ // If both are enabled and the existing one has settings, skip the update
60
+ if (existingEnabled && entitlementValue && attributes.settings) {
61
+ return skipOp;
62
+ }
63
+ const newOption = entitlementValue ? apple_utils_1.CapabilityTypeOption.ON : apple_utils_1.CapabilityTypeOption.OFF;
64
+ // If the states don't match, we need to update
65
+ const newEnabled = newOption === apple_utils_1.CapabilityTypeOption.ON;
66
+ return existingEnabled === newEnabled ? skipOp : { op: 'enable', option: newOption };
67
+ }
68
+ else {
69
+ if (log_1.default.isDebug) {
70
+ log_1.default.log(`Expected the "enabled" attribute in ${id} but it was not present (attributes: ${JSON.stringify(attributes, null, 2)}). Will skip syncing this capability.`);
71
+ }
59
72
  return skipOp;
60
73
  }
61
- // If the states don't match, we need to update
62
- const newEnabled = newOption === apple_utils_1.CapabilityTypeOption.ON;
63
- return existingEnabled === newEnabled ? skipOp : { op: 'enable', option: newOption };
64
74
  };
65
75
  // NOTE(Bacon): From manually toggling values in Xcode and checking the git diff and network requests.
66
76
  // Last Updated: July 22nd, 2021