@expo/eas-build-job 0.2.59 → 0.2.63

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/dist/android.d.ts CHANGED
@@ -42,5 +42,8 @@ export interface Job {
42
42
  artifactPath?: string;
43
43
  buildType?: BuildType;
44
44
  username?: string;
45
+ experimental?: {
46
+ prebuildCommand?: string;
47
+ };
45
48
  }
46
49
  export declare const JobSchema: Joi.ObjectSchema<any>;
package/dist/android.js CHANGED
@@ -29,13 +29,11 @@ exports.builderBaseImages = [
29
29
  'ubuntu-20.04-jdk-11-ndk-r21e',
30
30
  ];
31
31
  exports.reactNativeVersionToDefaultBuilderImage = {
32
- '>=0.68.0.': 'ubuntu-18.04-jdk-11-ndk-r19c',
32
+ '>=0.68.0': 'ubuntu-18.04-jdk-11-ndk-r19c',
33
33
  '<0.68.0': 'ubuntu-18.04-jdk-8-ndk-r19c',
34
34
  };
35
35
  const BuilderEnvironmentSchema = joi_1.default.object({
36
- image: joi_1.default.string()
37
- .valid(...exports.builderBaseImages)
38
- .default('default'),
36
+ image: joi_1.default.string().valid(...exports.builderBaseImages),
39
37
  node: joi_1.default.string(),
40
38
  yarn: joi_1.default.string(),
41
39
  expoCli: joi_1.default.string(),
@@ -64,5 +62,8 @@ exports.JobSchema = joi_1.default.object({
64
62
  artifactPath: joi_1.default.string(),
65
63
  buildType: joi_1.default.string().valid(...Object.values(BuildType)),
66
64
  username: joi_1.default.string(),
65
+ experimental: joi_1.default.object({
66
+ prebuildCommand: joi_1.default.string(),
67
+ }),
67
68
  }).oxor('releaseChannel', 'updates.channel');
68
69
  //# sourceMappingURL=android.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"android.js","sourceRoot":"","sources":["../src/android.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,qCASkB;AASlB,MAAM,cAAc,GAAG,aAAG,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,gBAAgB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,sCAAyB,CAAA;AAC3B,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAEY,QAAA,iBAAiB,GAAG;IAC/B,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,kCAAkC;IAClC,kCAAkC;IAClC,6BAA6B;IAC7B,8BAA8B;IAC9B,6BAA6B;IAC7B,8BAA8B;CACtB,CAAC;AAEE,QAAA,uCAAuC,GAAqD;IACvG,WAAW,EAAE,8BAA8B;IAC3C,SAAS,EAAE,6BAA6B;CACzC,CAAC;AAWF,MAAM,wBAAwB,GAAG,aAAG,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE;SAChB,KAAK,CAAC,GAAG,yBAAiB,CAAC;SAC3B,OAAO,CAAC,SAAS,CAAC;IACrB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,GAAG,EAAE,aAAG,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,kBAAS;CACf,CAAC,CAAC;AA8BU,QAAA,SAAS,GAAG,aAAG,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;SACf,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;SACjC,QAAQ,EAAE;IACb,cAAc,EAAE,4BAAmB,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IACzD,oBAAoB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,aAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrE,kBAAkB,EAAE,kBAAS;KAC9B,CAAC,CAAC,QAAQ,EAAE;IACb,kBAAkB,EAAE,wBAAwB;IAC5C,KAAK,EAAE,oBAAW,CAAC,OAAO,EAAE;IAC5B,iBAAiB,EAAE,aAAG,CAAC,OAAO,EAAE;IAEhC,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE;IAC3B,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAE1B,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1D,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport interface Keystore {\n dataBase64: string;\n keystorePassword: string;\n keyAlias: string;\n keyPassword?: string;\n}\n\nconst KeystoreSchema = Joi.object({\n dataBase64: Joi.string().required(),\n keystorePassword: Joi.string().allow('').required(),\n keyAlias: Joi.string().required(),\n keyPassword: Joi.string().allow(''),\n});\n\nexport enum BuildType {\n APK = 'apk',\n APP_BUNDLE = 'app-bundle',\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'ubuntu-18.04-android-30-ndk-r19c', // legacy naming (image with java 8)\n 'ubuntu-20.04-android-30-ndk-r21e', // legacy naming (image with java 8)\n 'ubuntu-18.04-jdk-8-ndk-r19c',\n 'ubuntu-18.04-jdk-11-ndk-r19c',\n 'ubuntu-20.04-jdk-8-ndk-r21e',\n 'ubuntu-20.04-jdk-11-ndk-r21e',\n] as const;\n\nexport const reactNativeVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]> = {\n '>=0.68.0.': 'ubuntu-18.04-jdk-11-ndk-r19c',\n '<0.68.0': 'ubuntu-18.04-jdk-8-ndk-r19c',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n ndk?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string()\n .valid(...builderBaseImages)\n .default('default'),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n ndk: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.ANDROID;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: {\n keystore: Keystore;\n };\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n\n // generic\n gradleCommand?: string;\n artifactPath?: string;\n\n // managed\n buildType?: BuildType;\n username?: string;\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.ANDROID).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: Joi.object({ keystore: KeystoreSchema.required() }),\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n\n gradleCommand: Joi.string(),\n artifactPath: Joi.string(),\n\n buildType: Joi.string().valid(...Object.values(BuildType)),\n username: Joi.string(),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
1
+ {"version":3,"file":"android.js","sourceRoot":"","sources":["../src/android.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport interface Keystore {\n dataBase64: string;\n keystorePassword: string;\n keyAlias: string;\n keyPassword?: string;\n}\n\nconst KeystoreSchema = Joi.object({\n dataBase64: Joi.string().required(),\n keystorePassword: Joi.string().allow('').required(),\n keyAlias: Joi.string().required(),\n keyPassword: Joi.string().allow(''),\n});\n\nexport enum BuildType {\n APK = 'apk',\n APP_BUNDLE = 'app-bundle',\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'ubuntu-18.04-android-30-ndk-r19c', // legacy naming (image with java 8)\n 'ubuntu-20.04-android-30-ndk-r21e', // legacy naming (image with java 8)\n 'ubuntu-18.04-jdk-8-ndk-r19c',\n 'ubuntu-18.04-jdk-11-ndk-r19c',\n 'ubuntu-20.04-jdk-8-ndk-r21e',\n 'ubuntu-20.04-jdk-11-ndk-r21e',\n] as const;\n\nexport const reactNativeVersionToDefaultBuilderImage: Record<\n string,\n typeof builderBaseImages[number]\n> = {\n '>=0.68.0': 'ubuntu-18.04-jdk-11-ndk-r19c',\n '<0.68.0': 'ubuntu-18.04-jdk-8-ndk-r19c',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n ndk?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n ndk: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.ANDROID;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: {\n keystore: Keystore;\n };\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n\n // generic\n gradleCommand?: string;\n artifactPath?: string;\n\n // managed\n buildType?: BuildType;\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.ANDROID).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: Joi.object({ keystore: KeystoreSchema.required() }),\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n\n gradleCommand: Joi.string(),\n artifactPath: Joi.string(),\n\n buildType: Joi.string().valid(...Object.values(BuildType)),\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
package/dist/ios.d.ts CHANGED
@@ -44,6 +44,9 @@ export interface Job {
44
44
  buildConfiguration?: string;
45
45
  artifactPath?: string;
46
46
  username?: string;
47
+ experimental?: {
48
+ prebuildCommand?: string;
49
+ };
47
50
  }
48
51
  export declare const JobSchema: Joi.ObjectSchema<any>;
49
52
  export {};
package/dist/ios.js CHANGED
@@ -65,5 +65,8 @@ exports.JobSchema = joi_1.default.object({
65
65
  artifactPath: joi_1.default.string(),
66
66
  // managed
67
67
  username: joi_1.default.string(),
68
+ experimental: joi_1.default.object({
69
+ prebuildCommand: joi_1.default.string(),
70
+ }),
68
71
  }).oxor('releaseChannel', 'updates.channel');
69
72
  //# sourceMappingURL=ios.js.map
package/dist/ios.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,qCASkB;AAIlB,MAAM,uBAAuB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;IAChD,yBAAyB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD,uBAAuB,EAAE,aAAG,CAAC,MAAM,CAAC;QAClC,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAOH,MAAM,sBAAsB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CACjD,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EACvB,uBAAuB,CACxB,CAAC;AAUW,QAAA,iBAAiB,GAAG;IAC/B,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,iCAAiC;IACjC,iCAAiC;IACjC,iCAAiC;IACjC,iCAAiC;IACjC,+BAA+B;IAC/B,+BAA+B;CACvB,CAAC;AAEE,QAAA,+BAA+B,GAAqD;IAC/F,MAAM,EAAE,iCAAiC;IACzC,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,+BAA+B;CACtC,CAAC;AAaF,MAAM,wBAAwB,GAAG,aAAG,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,yBAAiB,CAAC;IAC/C,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE;IACvB,GAAG,EAAE,kBAAS;CACf,CAAC,CAAC;AA2BU,QAAA,SAAS,GAAG,aAAG,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;SACf,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;SACjC,QAAQ,EAAE;IACb,cAAc,EAAE,4BAAmB,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACrD,oBAAoB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,sBAAsB;QACxC,kBAAkB,EAAE,kBAAS;KAC9B,CAAC,CAAC,QAAQ,EAAE;IACb,kBAAkB,EAAE,wBAAwB;IAC5C,KAAK,EAAE,oBAAW,CAAC,OAAO,EAAE;IAC5B,iBAAiB,EAAE,aAAG,CAAC,OAAO,EAAE;IAChC,SAAS,EAAE,aAAG,CAAC,OAAO,EAAE;IAExB,UAAU;IACV,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE;IACpB,kBAAkB,EAAE,aAAG,CAAC,MAAM,EAAE;IAChC,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAE1B,UAAU;IACV,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport type DistributionType = 'store' | 'internal' | 'simulator';\n\nconst TargetCredentialsSchema = Joi.object().keys({\n provisioningProfileBase64: Joi.string().required(),\n distributionCertificate: Joi.object({\n dataBase64: Joi.string().required(),\n password: Joi.string().allow('').required(),\n }).required(),\n});\n\nexport interface TargetCredentials {\n provisioningProfileBase64: string;\n distributionCertificate: DistributionCertificate;\n}\n\nconst BuildCredentialsSchema = Joi.object().pattern(\n Joi.string().required(),\n TargetCredentialsSchema\n);\n\ntype Target = string;\nexport type BuildCredentials = Record<Target, TargetCredentials>;\n\nexport interface DistributionCertificate {\n dataBase64: string;\n password: string;\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'macos-catalina-11.15-xcode-12.1', // incorrect name, keep for legacy cases\n 'macos-catalina-11.15-xcode-12.4', // incorrect name, keep for legacy cases\n 'macos-catalina-10.15-xcode-12.1',\n 'macos-catalina-10.15-xcode-12.4',\n 'macos-big-sur-11.4-xcode-12.5',\n 'macos-big-sur-11.4-xcode-13.0',\n] as const;\n\nexport const sdkVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]> = {\n '<=41': 'macos-catalina-10.15-xcode-12.1',\n '42': 'macos-big-sur-11.4-xcode-12.5',\n '43': 'macos-big-sur-11.4-xcode-13.0',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n bundler?: string;\n fastlane?: string;\n cocoapods?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n bundler: Joi.string(),\n fastlane: Joi.string(),\n cocoapods: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.IOS;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: BuildCredentials;\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n simulator?: boolean;\n\n scheme?: string;\n buildConfiguration?: string;\n artifactPath?: string;\n\n username?: string;\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.IOS).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: BuildCredentialsSchema,\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n simulator: Joi.boolean(),\n\n // generic\n scheme: Joi.string(),\n buildConfiguration: Joi.string(),\n artifactPath: Joi.string(),\n\n // managed\n username: Joi.string(),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport type DistributionType = 'store' | 'internal' | 'simulator';\n\nconst TargetCredentialsSchema = Joi.object().keys({\n provisioningProfileBase64: Joi.string().required(),\n distributionCertificate: Joi.object({\n dataBase64: Joi.string().required(),\n password: Joi.string().allow('').required(),\n }).required(),\n});\n\nexport interface TargetCredentials {\n provisioningProfileBase64: string;\n distributionCertificate: DistributionCertificate;\n}\n\nconst BuildCredentialsSchema = Joi.object().pattern(\n Joi.string().required(),\n TargetCredentialsSchema\n);\n\ntype Target = string;\nexport type BuildCredentials = Record<Target, TargetCredentials>;\n\nexport interface DistributionCertificate {\n dataBase64: string;\n password: string;\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'macos-catalina-11.15-xcode-12.1', // incorrect name, keep for legacy cases\n 'macos-catalina-11.15-xcode-12.4', // incorrect name, keep for legacy cases\n 'macos-catalina-10.15-xcode-12.1',\n 'macos-catalina-10.15-xcode-12.4',\n 'macos-big-sur-11.4-xcode-12.5',\n 'macos-big-sur-11.4-xcode-13.0',\n] as const;\n\nexport const sdkVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]> = {\n '<=41': 'macos-catalina-10.15-xcode-12.1',\n '42': 'macos-big-sur-11.4-xcode-12.5',\n '43': 'macos-big-sur-11.4-xcode-13.0',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n bundler?: string;\n fastlane?: string;\n cocoapods?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n bundler: Joi.string(),\n fastlane: Joi.string(),\n cocoapods: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.IOS;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: BuildCredentials;\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n simulator?: boolean;\n\n scheme?: string;\n buildConfiguration?: string;\n artifactPath?: string;\n\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.IOS).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: BuildCredentialsSchema,\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n simulator: Joi.boolean(),\n\n // generic\n scheme: Joi.string(),\n buildConfiguration: Joi.string(),\n artifactPath: Joi.string(),\n\n // managed\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
package/dist/job.d.ts CHANGED
@@ -3,6 +3,7 @@ import * as Android from './android';
3
3
  import * as Ios from './ios';
4
4
  export declare type Job = Android.Job | Ios.Job;
5
5
  export declare const JobSchema: Joi.ObjectSchema<Job>;
6
- export declare function sanitizeJob(rawJob: object, { sdkVersion }?: {
6
+ export declare function sanitizeJob(rawJob: object, { sdkVersion, reactNativeVersion }?: {
7
+ reactNativeVersion?: string;
7
8
  sdkVersion?: string;
8
9
  }): Job;
package/dist/job.js CHANGED
@@ -35,14 +35,19 @@ exports.JobSchema = joi_1.default.object({
35
35
  })
36
36
  .when(joi_1.default.object({ platform: common_1.Platform.ANDROID }).unknown(), { then: Android.JobSchema })
37
37
  .when(joi_1.default.object({ platform: common_1.Platform.IOS }).unknown(), { then: Ios.JobSchema });
38
- function sanitizeJob(rawJob, { sdkVersion } = {}) {
38
+ function sanitizeJob(rawJob, { sdkVersion, reactNativeVersion } = {}) {
39
39
  const { value, error } = exports.JobSchema.validate(rawJob, {
40
40
  stripUnknown: true,
41
41
  convert: true,
42
42
  abortEarly: false,
43
43
  });
44
44
  const job = value;
45
- setIosBuilderImageForManagedJob(job, sdkVersion);
45
+ if (job.platform === common_1.Platform.IOS) {
46
+ setIosBuilderImageForManagedJob(job, sdkVersion);
47
+ }
48
+ else if (job.platform === common_1.Platform.ANDROID) {
49
+ setAndroidBuilderImage(job, reactNativeVersion);
50
+ }
46
51
  if (error) {
47
52
  throw error;
48
53
  }
@@ -51,12 +56,22 @@ function sanitizeJob(rawJob, { sdkVersion } = {}) {
51
56
  }
52
57
  }
53
58
  exports.sanitizeJob = sanitizeJob;
59
+ function setAndroidBuilderImage(job, reactNativeVersion) {
60
+ var _a;
61
+ if (((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) || !reactNativeVersion) {
62
+ return;
63
+ }
64
+ const ranges = Object.keys(Android.reactNativeVersionToDefaultBuilderImage);
65
+ const matchingRange = ranges.find((range) => semver_1.default.satisfies(reactNativeVersion, range));
66
+ if (!matchingRange) {
67
+ return;
68
+ }
69
+ const image = Android.reactNativeVersionToDefaultBuilderImage[matchingRange];
70
+ job.builderEnvironment = Object.assign({ image }, job.builderEnvironment);
71
+ }
54
72
  function setIosBuilderImageForManagedJob(job, sdkVersion) {
55
73
  var _a;
56
- if (!(job.platform === common_1.Platform.IOS &&
57
- job.type === common_1.Workflow.MANAGED &&
58
- !((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) &&
59
- sdkVersion)) {
74
+ if (job.type !== common_1.Workflow.MANAGED || ((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) || !sdkVersion) {
60
75
  return;
61
76
  }
62
77
  const ranges = Object.keys(Ios.sdkVersionToDefaultBuilderImage);
package/dist/job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAE5B,qCAA8C;AAC9C,mDAAqC;AACrC,2CAA6B;AAIhB,QAAA,SAAS,GAAG,aAAG,CAAC,MAAM,CAAM;IACvC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;SACnB,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;SACjC,QAAQ,EAAE;CACd,CAAC;KACC,IAAI,CAAC,aAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,iBAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KACvF,IAAI,CAAC,aAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,iBAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AAEnF,SAAgB,WAAW,CAAC,MAAc,EAAE,EAAE,UAAU,KAA8B,EAAE;IACtF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,iBAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClD,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAQ,KAAK,CAAC;IACvB,+BAA+B,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAC;KACb;SAAM;QACL,OAAO,GAAG,CAAC;KACZ;AACH,CAAC;AAfD,kCAeC;AAED,SAAS,+BAA+B,CAAC,GAAQ,EAAE,UAAmB;;IACpE,IACE,CAAC,CACC,GAAG,CAAC,QAAQ,KAAK,iBAAQ,CAAC,GAAG;QAC7B,GAAG,CAAC,IAAI,KAAK,iBAAQ,CAAC,OAAO;QAC7B,CAAC,CAAA,MAAA,GAAG,CAAC,kBAAkB,0CAAE,KAAK,CAAA;QAC9B,UAAU,CACX,EACD;QACA,OAAO;KACR;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAM,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;IACjE,GAAG,CAAC,kBAAkB,mBACpB,KAAK,IACF,GAAG,CAAC,kBAAkB,CAC1B,CAAC;AACJ,CAAC","sourcesContent":["import Joi from 'joi';\nimport semver from 'semver';\n\nimport { Platform, Workflow } from './common';\nimport * as Android from './android';\nimport * as Ios from './ios';\n\nexport type Job = Android.Job | Ios.Job;\n\nexport const JobSchema = Joi.object<Job>({\n platform: Joi.string()\n .valid(...Object.values(Platform))\n .required(),\n})\n .when(Joi.object({ platform: Platform.ANDROID }).unknown(), { then: Android.JobSchema })\n .when(Joi.object({ platform: Platform.IOS }).unknown(), { then: Ios.JobSchema });\n\nexport function sanitizeJob(rawJob: object, { sdkVersion }: { sdkVersion?: string } = {}): Job {\n const { value, error } = JobSchema.validate(rawJob, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n\n const job: Job = value;\n setIosBuilderImageForManagedJob(job, sdkVersion);\n\n if (error) {\n throw error;\n } else {\n return job;\n }\n}\n\nfunction setIosBuilderImageForManagedJob(job: Job, sdkVersion?: string): void {\n if (\n !(\n job.platform === Platform.IOS &&\n job.type === Workflow.MANAGED &&\n !job.builderEnvironment?.image &&\n sdkVersion\n )\n ) {\n return;\n }\n\n const ranges = Object.keys(Ios.sdkVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(sdkVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Ios.sdkVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n"]}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\nimport semver from 'semver';\n\nimport { Platform, Workflow } from './common';\nimport * as Android from './android';\nimport * as Ios from './ios';\n\nexport type Job = Android.Job | Ios.Job;\n\nexport const JobSchema = Joi.object<Job>({\n platform: Joi.string()\n .valid(...Object.values(Platform))\n .required(),\n})\n .when(Joi.object({ platform: Platform.ANDROID }).unknown(), { then: Android.JobSchema })\n .when(Joi.object({ platform: Platform.IOS }).unknown(), { then: Ios.JobSchema });\n\nexport function sanitizeJob(\n rawJob: object,\n { sdkVersion, reactNativeVersion }: { reactNativeVersion?: string; sdkVersion?: string } = {}\n): Job {\n const { value, error } = JobSchema.validate(rawJob, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n\n const job: Job = value;\n if (job.platform === Platform.IOS) {\n setIosBuilderImageForManagedJob(job, sdkVersion);\n } else if (job.platform === Platform.ANDROID) {\n setAndroidBuilderImage(job, reactNativeVersion);\n }\n\n if (error) {\n throw error;\n } else {\n return job;\n }\n}\n\nfunction setAndroidBuilderImage(job: Job, reactNativeVersion?: string): void {\n if (job.builderEnvironment?.image || !reactNativeVersion) {\n return;\n }\n\n const ranges = Object.keys(Android.reactNativeVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(reactNativeVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Android.reactNativeVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n\nfunction setIosBuilderImageForManagedJob(job: Job, sdkVersion?: string): void {\n if (job.type !== Workflow.MANAGED || job.builderEnvironment?.image || !sdkVersion) {\n return;\n }\n\n const ranges = Object.keys(Ios.sdkVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(sdkVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Ios.sdkVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n"]}
@@ -49,6 +49,10 @@ export declare type Metadata = {
49
49
  * It's undefined if the classic expo-updates package is not installed for the project.
50
50
  */
51
51
  releaseChannel?: string;
52
+ /**
53
+ * Version of the react-native package used in the project.
54
+ */
55
+ reactNativeVersion?: string;
52
56
  /**
53
57
  * Channel (for Expo Updates when it is configured for for use with EAS)
54
58
  * It's undefined if the expo-updates package is not configured for use with EAS.
package/dist/metadata.js CHANGED
@@ -17,6 +17,7 @@ exports.MetadataSchema = joi_1.default.object({
17
17
  credentialsSource: joi_1.default.string().valid('local', 'remote'),
18
18
  sdkVersion: joi_1.default.string(),
19
19
  runtimeVersion: joi_1.default.string(),
20
+ reactNativeVersion: joi_1.default.string(),
20
21
  releaseChannel: joi_1.default.string(),
21
22
  channel: joi_1.default.string(),
22
23
  appName: joi_1.default.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAiHT,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,CAAC;IACvC,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE;SAC1B,OAAO,CAAC,aAAG,CAAC,MAAM,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,EAAE,aAAG,CAAC,MAAM,EAAE,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,CAAC;SAClE,QAAQ,EAAE;IACb,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE;IAC7B,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;IAClD,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;IAClE,iBAAiB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;IACxD,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE;IAC3B,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;IAC5C,qBAAqB,EAAE,aAAG,CAAC,OAAO,EAAE;IACpC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,yBAAyB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;CACpE,CAAC,CAAC;AAEH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,sBAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACzD,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAXD,4CAWC","sourcesContent":["import Joi from 'joi';\n\nimport { Workflow } from './common';\n\nexport type Metadata = {\n /**\n * Tracking context\n * It's used to track build process across different Expo services and tools.\n */\n trackingContext: Record<string, string | number | boolean>;\n\n /**\n * Application version:\n * - managed projects: expo.version in app.json/app.config.js\n * - generic projects:\n * * iOS: CFBundleShortVersionString in Info.plist\n * * Android: versionName in build.gradle\n */\n appVersion?: string;\n\n /**\n * Application build version:\n * - Android: version code\n * - iOS: build number\n */\n appBuildVersion?: string;\n\n /**\n * EAS CLI version\n */\n cliVersion?: string;\n\n /**\n * Build workflow\n * It's either 'generic' or 'managed'\n */\n workflow?: Workflow;\n\n /**\n * Credentials source\n * Credentials could be obtained either from credential.json or EAS servers.\n */\n credentialsSource?: 'local' | 'remote';\n\n /**\n * Expo SDK version\n * It's determined by the expo package version in package.json.\n * It's undefined if the expo package is not installed for the project.\n */\n sdkVersion?: string;\n\n /**\n * Runtime version (for Expo Updates)\n */\n runtimeVersion?: string;\n\n /**\n * Release channel (for classic expo-updates)\n * It's undefined if the classic expo-updates package is not installed for the project.\n */\n releaseChannel?: string;\n\n /**\n * Channel (for Expo Updates when it is configured for for use with EAS)\n * It's undefined if the expo-updates package is not configured for use with EAS.\n */\n channel?: string;\n\n /**\n * Distribution type\n * Indicates whether this is a build for store, internal distribution, or simulator (iOS).\n */\n distribution?: 'store' | 'internal' | 'simulator';\n\n /**\n * App name (expo.name in app.json/app.config.js)\n */\n appName?: string;\n\n /**\n * App identifier:\n * - iOS builds: the bundle identifier (expo.ios.bundleIdentifier in app.json/app.config.js)\n * - Android builds: the application id (expo.android.package in app.json/app.config.js)\n */\n appIdentifier?: string;\n\n /**\n * Build profile name (e.g. release)\n */\n buildProfile?: string;\n\n /**\n * Git commit hash (e.g. aab03fbdabb6e536ea78b28df91575ad488f5f21)\n */\n gitCommitHash?: string;\n\n /**\n * State of the git working tree\n */\n isGitWorkingTreeDirty?: boolean;\n\n /**\n * Username of the initiating user\n */\n username?: string;\n\n /**\n * Indicates what type of an enterprise provisioning profile was used to build the app.\n * It's either adhoc or universal\n */\n iosEnterpriseProvisioning?: 'adhoc' | 'universal';\n};\n\nexport const MetadataSchema = Joi.object({\n trackingContext: Joi.object()\n .pattern(Joi.string(), [Joi.string(), Joi.number(), Joi.boolean()])\n .required(),\n appVersion: Joi.string(),\n appBuildVersion: Joi.string(),\n cliVersion: Joi.string(),\n workflow: Joi.string().valid('generic', 'managed'),\n distribution: Joi.string().valid('store', 'internal', 'simulator'),\n credentialsSource: Joi.string().valid('local', 'remote'),\n sdkVersion: Joi.string(),\n runtimeVersion: Joi.string(),\n releaseChannel: Joi.string(),\n channel: Joi.string(),\n appName: Joi.string(),\n appIdentifier: Joi.string(),\n buildProfile: Joi.string(),\n gitCommitHash: Joi.string().length(40).hex(),\n isGitWorkingTreeDirty: Joi.boolean(),\n username: Joi.string(),\n iosEnterpriseProvisioning: Joi.string().valid('adhoc', 'universal'),\n});\n\nexport function sanitizeMetadata(metadata: object): Metadata {\n const { value, error } = MetadataSchema.validate(metadata, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n if (error) {\n throw error;\n } else {\n return value;\n }\n}\n"]}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAsHT,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,CAAC;IACvC,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE;SAC1B,OAAO,CAAC,aAAG,CAAC,MAAM,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,EAAE,aAAG,CAAC,MAAM,EAAE,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,CAAC;SAClE,QAAQ,EAAE;IACb,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE;IAC7B,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;IAClD,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;IAClE,iBAAiB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;IACxD,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE;IACxB,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,kBAAkB,EAAE,aAAG,CAAC,MAAM,EAAE;IAChC,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE;IAC3B,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;IAC5C,qBAAqB,EAAE,aAAG,CAAC,OAAO,EAAE;IACpC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,yBAAyB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;CACpE,CAAC,CAAC;AAEH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,sBAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACzD,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAXD,4CAWC","sourcesContent":["import Joi from 'joi';\n\nimport { Workflow } from './common';\n\nexport type Metadata = {\n /**\n * Tracking context\n * It's used to track build process across different Expo services and tools.\n */\n trackingContext: Record<string, string | number | boolean>;\n\n /**\n * Application version:\n * - managed projects: expo.version in app.json/app.config.js\n * - generic projects:\n * * iOS: CFBundleShortVersionString in Info.plist\n * * Android: versionName in build.gradle\n */\n appVersion?: string;\n\n /**\n * Application build version:\n * - Android: version code\n * - iOS: build number\n */\n appBuildVersion?: string;\n\n /**\n * EAS CLI version\n */\n cliVersion?: string;\n\n /**\n * Build workflow\n * It's either 'generic' or 'managed'\n */\n workflow?: Workflow;\n\n /**\n * Credentials source\n * Credentials could be obtained either from credential.json or EAS servers.\n */\n credentialsSource?: 'local' | 'remote';\n\n /**\n * Expo SDK version\n * It's determined by the expo package version in package.json.\n * It's undefined if the expo package is not installed for the project.\n */\n sdkVersion?: string;\n\n /**\n * Runtime version (for Expo Updates)\n */\n runtimeVersion?: string;\n\n /**\n * Release channel (for classic expo-updates)\n * It's undefined if the classic expo-updates package is not installed for the project.\n */\n releaseChannel?: string;\n\n /**\n * Version of the react-native package used in the project.\n */\n reactNativeVersion?: string;\n\n /**\n * Channel (for Expo Updates when it is configured for for use with EAS)\n * It's undefined if the expo-updates package is not configured for use with EAS.\n */\n channel?: string;\n\n /**\n * Distribution type\n * Indicates whether this is a build for store, internal distribution, or simulator (iOS).\n */\n distribution?: 'store' | 'internal' | 'simulator';\n\n /**\n * App name (expo.name in app.json/app.config.js)\n */\n appName?: string;\n\n /**\n * App identifier:\n * - iOS builds: the bundle identifier (expo.ios.bundleIdentifier in app.json/app.config.js)\n * - Android builds: the application id (expo.android.package in app.json/app.config.js)\n */\n appIdentifier?: string;\n\n /**\n * Build profile name (e.g. release)\n */\n buildProfile?: string;\n\n /**\n * Git commit hash (e.g. aab03fbdabb6e536ea78b28df91575ad488f5f21)\n */\n gitCommitHash?: string;\n\n /**\n * State of the git working tree\n */\n isGitWorkingTreeDirty?: boolean;\n\n /**\n * Username of the initiating user\n */\n username?: string;\n\n /**\n * Indicates what type of an enterprise provisioning profile was used to build the app.\n * It's either adhoc or universal\n */\n iosEnterpriseProvisioning?: 'adhoc' | 'universal';\n};\n\nexport const MetadataSchema = Joi.object({\n trackingContext: Joi.object()\n .pattern(Joi.string(), [Joi.string(), Joi.number(), Joi.boolean()])\n .required(),\n appVersion: Joi.string(),\n appBuildVersion: Joi.string(),\n cliVersion: Joi.string(),\n workflow: Joi.string().valid('generic', 'managed'),\n distribution: Joi.string().valid('store', 'internal', 'simulator'),\n credentialsSource: Joi.string().valid('local', 'remote'),\n sdkVersion: Joi.string(),\n runtimeVersion: Joi.string(),\n reactNativeVersion: Joi.string(),\n releaseChannel: Joi.string(),\n channel: Joi.string(),\n appName: Joi.string(),\n appIdentifier: Joi.string(),\n buildProfile: Joi.string(),\n gitCommitHash: Joi.string().length(40).hex(),\n isGitWorkingTreeDirty: Joi.boolean(),\n username: Joi.string(),\n iosEnterpriseProvisioning: Joi.string().valid('adhoc', 'universal'),\n});\n\nexport function sanitizeMetadata(metadata: object): Metadata {\n const { value, error } = MetadataSchema.validate(metadata, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n if (error) {\n throw error;\n } else {\n return value;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/eas-build-job",
3
- "version": "0.2.59",
3
+ "version": "0.2.63",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [