@expo/eas-json 2.8.0 → 3.3.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.
package/build/accessor.js CHANGED
@@ -16,7 +16,12 @@ const customErrorMessageHandlers = [
16
16
  (err) => {
17
17
  var _a;
18
18
  for (const detail of err.details) {
19
- if (detail.path[detail.path.length - 1] === 'image') {
19
+ // image should be only placed under 'build.profilename.platform.image' key
20
+ // if it's not the case show standard Joi error
21
+ if (detail.path.length === 4 &&
22
+ detail.path[0] === 'build' &&
23
+ ['ios', 'android'].includes(detail.path[2].toString()) &&
24
+ detail.path[3] === 'image') {
20
25
  throw new errors_1.InvalidEasJsonError(chalk_1.default.red(`Specified build image '${(_a = detail === null || detail === void 0 ? void 0 : detail.context) === null || _a === void 0 ? void 0 : _a.value}' is not recognized. Please update your EAS CLI and see ${(0, log_1.link)('https://docs.expo.dev/build-reference/infrastructure/')} for supported build images.`));
21
26
  }
22
27
  }
@@ -5,6 +5,17 @@ const tslib_1 = require("tslib");
5
5
  const eas_build_job_1 = require("@expo/eas-build-job");
6
6
  const joi_1 = tslib_1.__importDefault(require("joi"));
7
7
  const semver_1 = tslib_1.__importDefault(require("semver"));
8
+ const types_1 = require("./types");
9
+ const AllowedCommonResourceClasses = [types_1.ResourceClass.DEFAULT, types_1.ResourceClass.MEDIUM];
10
+ const AllowedAndroidResourceClasses = [
11
+ ...AllowedCommonResourceClasses,
12
+ types_1.ResourceClass.LARGE,
13
+ ];
14
+ const AllowedIosResourceClasses = [
15
+ ...AllowedCommonResourceClasses,
16
+ types_1.ResourceClass.M1_MEDIUM,
17
+ types_1.ResourceClass.INTEL_MEDIUM,
18
+ ];
8
19
  const CacheSchema = joi_1.default.object({
9
20
  disabled: joi_1.default.boolean(),
10
21
  key: joi_1.default.string().max(128),
@@ -25,6 +36,7 @@ const CommonBuildProfileSchema = joi_1.default.object({
25
36
  expoCli: joi_1.default.string().empty(null).custom(semverCheck),
26
37
  env: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.string().empty(null)),
27
38
  autoIncrement: joi_1.default.alternatives().try(joi_1.default.boolean()),
39
+ resourceClass: joi_1.default.string().valid(...AllowedCommonResourceClasses),
28
40
  });
29
41
  const AndroidBuildProfileSchema = CommonBuildProfileSchema.concat(joi_1.default.object({
30
42
  credentialsSource: joi_1.default.string().valid('local', 'remote'),
@@ -33,6 +45,7 @@ const AndroidBuildProfileSchema = CommonBuildProfileSchema.concat(joi_1.default.
33
45
  image: joi_1.default.string().valid(...eas_build_job_1.Android.builderBaseImages),
34
46
  ndk: joi_1.default.string().empty(null).custom(semverCheck),
35
47
  autoIncrement: joi_1.default.alternatives().try(joi_1.default.boolean(), joi_1.default.string().valid('version', 'versionCode')),
48
+ resourceClass: joi_1.default.string().valid(...AllowedAndroidResourceClasses),
36
49
  artifactPath: joi_1.default.string(),
37
50
  applicationArchivePath: joi_1.default.string(),
38
51
  buildArtifactPaths: joi_1.default.array().items(joi_1.default.string()),
@@ -45,6 +58,7 @@ const IosBuildProfileSchema = CommonBuildProfileSchema.concat(joi_1.default.obje
45
58
  enterpriseProvisioning: joi_1.default.string().valid('adhoc', 'universal'),
46
59
  autoIncrement: joi_1.default.alternatives().try(joi_1.default.boolean(), joi_1.default.string().valid('version', 'buildNumber')),
47
60
  simulator: joi_1.default.boolean(),
61
+ resourceClass: joi_1.default.string().valid(...AllowedIosResourceClasses),
48
62
  image: joi_1.default.string().valid(...eas_build_job_1.Ios.builderBaseImages),
49
63
  bundler: joi_1.default.string().empty(null).custom(semverCheck),
50
64
  fastlane: joi_1.default.string().empty(null).custom(semverCheck),
@@ -3,6 +3,20 @@ export declare enum CredentialsSource {
3
3
  LOCAL = "local",
4
4
  REMOTE = "remote"
5
5
  }
6
+ export declare enum ResourceClass {
7
+ DEFAULT = "default",
8
+ LARGE = "large",
9
+ /**
10
+ * @deprecated use M1_MEDIUM instead
11
+ * @experimental
12
+ * This resource class is not yet ready to be used in production. For testing purposes only. Might be deprecated / deleted at any time.
13
+ */
14
+ M1_EXPERIMENTAL = "m1-experimental",
15
+ M1_MEDIUM = "m1-medium",
16
+ M1_LARGE = "m1-large",
17
+ INTEL_MEDIUM = "intel-medium",
18
+ MEDIUM = "medium"
19
+ }
6
20
  export declare type DistributionType = 'store' | 'internal';
7
21
  export declare type IosEnterpriseProvisioning = 'adhoc' | 'universal';
8
22
  export declare type VersionAutoIncrement = boolean | 'version';
@@ -17,6 +31,7 @@ export interface CommonBuildProfile {
17
31
  developmentClient?: boolean;
18
32
  prebuildCommand?: string;
19
33
  autoIncrement?: boolean;
34
+ resourceClass?: ResourceClass;
20
35
  buildArtifactPaths?: string[];
21
36
  node?: string;
22
37
  yarn?: string;
@@ -1,9 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CredentialsSource = void 0;
3
+ exports.ResourceClass = exports.CredentialsSource = void 0;
4
4
  const eas_build_job_1 = require("@expo/eas-build-job");
5
5
  var CredentialsSource;
6
6
  (function (CredentialsSource) {
7
7
  CredentialsSource["LOCAL"] = "local";
8
8
  CredentialsSource["REMOTE"] = "remote";
9
9
  })(CredentialsSource = exports.CredentialsSource || (exports.CredentialsSource = {}));
10
+ var ResourceClass;
11
+ (function (ResourceClass) {
12
+ ResourceClass["DEFAULT"] = "default";
13
+ ResourceClass["LARGE"] = "large";
14
+ /**
15
+ * @deprecated use M1_MEDIUM instead
16
+ * @experimental
17
+ * This resource class is not yet ready to be used in production. For testing purposes only. Might be deprecated / deleted at any time.
18
+ */
19
+ ResourceClass["M1_EXPERIMENTAL"] = "m1-experimental";
20
+ ResourceClass["M1_MEDIUM"] = "m1-medium";
21
+ ResourceClass["M1_LARGE"] = "m1-large";
22
+ ResourceClass["INTEL_MEDIUM"] = "intel-medium";
23
+ ResourceClass["MEDIUM"] = "medium";
24
+ })(ResourceClass = exports.ResourceClass || (exports.ResourceClass = {}));
package/build/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { AndroidReleaseStatus, AndroidReleaseTrack, SubmitProfile } from './submit/types';
2
2
  export { getDefaultProfile as getDefaultSubmitProfile } from './submit/resolver';
3
3
  export { EasJson, ProfileType, AppVersionSource } from './types';
4
- export { AndroidVersionAutoIncrement, BuildProfile, CredentialsSource, DistributionType, IosEnterpriseProvisioning, IosVersionAutoIncrement, } from './build/types';
4
+ export { AndroidVersionAutoIncrement, BuildProfile, CredentialsSource, DistributionType, IosEnterpriseProvisioning, IosVersionAutoIncrement, ResourceClass, } from './build/types';
5
5
  export { EasJsonAccessor } from './accessor';
6
6
  export { EasJsonUtils } from './utils';
7
7
  export * as errors from './errors';
package/build/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errors = exports.EasJsonUtils = exports.EasJsonAccessor = exports.CredentialsSource = exports.AppVersionSource = exports.getDefaultSubmitProfile = exports.AndroidReleaseTrack = exports.AndroidReleaseStatus = void 0;
3
+ exports.errors = exports.EasJsonUtils = exports.EasJsonAccessor = exports.ResourceClass = exports.CredentialsSource = exports.AppVersionSource = exports.getDefaultSubmitProfile = exports.AndroidReleaseTrack = exports.AndroidReleaseStatus = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var types_1 = require("./submit/types");
6
6
  Object.defineProperty(exports, "AndroidReleaseStatus", { enumerable: true, get: function () { return types_1.AndroidReleaseStatus; } });
@@ -11,6 +11,7 @@ var types_2 = require("./types");
11
11
  Object.defineProperty(exports, "AppVersionSource", { enumerable: true, get: function () { return types_2.AppVersionSource; } });
12
12
  var types_3 = require("./build/types");
13
13
  Object.defineProperty(exports, "CredentialsSource", { enumerable: true, get: function () { return types_3.CredentialsSource; } });
14
+ Object.defineProperty(exports, "ResourceClass", { enumerable: true, get: function () { return types_3.ResourceClass; } });
14
15
  var accessor_1 = require("./accessor");
15
16
  Object.defineProperty(exports, "EasJsonAccessor", { enumerable: true, get: function () { return accessor_1.EasJsonAccessor; } });
16
17
  var utils_1 = require("./utils");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@expo/eas-json",
3
3
  "description": "A library for interacting with eas.json",
4
- "version": "2.8.0",
4
+ "version": "3.3.0",
5
5
  "author": "Expo <support@expo.dev>",
6
6
  "bugs": "https://github.com/expo/eas-cli/issues",
7
7
  "dependencies": {
@@ -50,5 +50,5 @@
50
50
  "node": "18.6.0",
51
51
  "yarn": "1.22.19"
52
52
  },
53
- "gitHead": "72283cdda26857296695d75e78bb508e38efb562"
53
+ "gitHead": "9c74c5c6b8454d15355a6e0abdced3589d7fa2ee"
54
54
  }