@expo/build-tools 0.1.110 → 0.1.113
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/credentials.js +1 -1
- package/dist/android/credentials.js.map +1 -1
- package/dist/android/expoUpdates.js +2 -2
- package/dist/android/expoUpdates.js.map +1 -1
- package/dist/android/gradle.js +1 -1
- package/dist/android/gradle.js.map +1 -1
- package/dist/builders/android.js +11 -10
- package/dist/builders/android.js.map +1 -1
- package/dist/builders/ios.js +11 -10
- package/dist/builders/ios.js.map +1 -1
- package/dist/context.d.ts +7 -5
- package/dist/context.js +7 -7
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/ios/credentials/distributionCertificate.js.map +1 -1
- package/dist/ios/credentials/keychain.js +7 -7
- package/dist/ios/credentials/keychain.js.map +1 -1
- package/dist/ios/credentials/manager.js +7 -3
- package/dist/ios/credentials/manager.js.map +1 -1
- package/dist/ios/credentials/provisioningProfile.js +2 -2
- package/dist/ios/credentials/provisioningProfile.js.map +1 -1
- package/dist/ios/expoUpdates.js +2 -2
- package/dist/ios/expoUpdates.js.map +1 -1
- package/dist/ios/fastlane.js +4 -4
- package/dist/ios/fastlane.js.map +1 -1
- package/dist/ios/gymfile.js +2 -3
- package/dist/ios/gymfile.js.map +1 -1
- package/dist/ios/pod.js +1 -1
- package/dist/ios/pod.js.map +1 -1
- package/dist/ios/xcpretty.js +3 -3
- package/dist/ios/xcpretty.js.map +1 -1
- package/dist/utils/appConfig.js +1 -1
- package/dist/utils/appConfig.js.map +1 -1
- package/dist/utils/buildArtifacts.js +1 -1
- package/dist/utils/buildArtifacts.js.map +1 -1
- package/dist/utils/expoUpdates.js +17 -17
- package/dist/utils/expoUpdates.js.map +1 -1
- package/dist/utils/hooks.js +3 -11
- package/dist/utils/hooks.js.map +1 -1
- package/dist/utils/packageManager.d.ts +1 -0
- package/dist/utils/packageManager.js +14 -3
- package/dist/utils/packageManager.js.map +1 -1
- package/dist/utils/prebuild.d.ts +6 -0
- package/dist/utils/prebuild.js +41 -0
- package/dist/utils/prebuild.js.map +1 -0
- package/dist/utils/project.js +37 -6
- package/dist/utils/project.js.map +1 -1
- package/package.json +14 -14
- package/dist/managed/EjectProvider.d.ts +0 -8
- package/dist/managed/EjectProvider.js +0 -3
- package/dist/managed/EjectProvider.js.map +0 -1
- package/dist/managed/NpxExpoCliEject.d.ts +0 -6
- package/dist/managed/NpxExpoCliEject.js +0 -21
- package/dist/managed/NpxExpoCliEject.js.map +0 -1
package/dist/utils/hooks.js
CHANGED
|
@@ -19,7 +19,7 @@ async function runHookIfPresent(ctx, hook) {
|
|
|
19
19
|
const projectDir = ctx.reactNativeProjectDirectory;
|
|
20
20
|
let packageJson;
|
|
21
21
|
try {
|
|
22
|
-
packageJson = await readPackageJson(projectDir);
|
|
22
|
+
packageJson = await (0, packageManager_1.readPackageJson)(projectDir);
|
|
23
23
|
}
|
|
24
24
|
catch (err) {
|
|
25
25
|
ctx.logger.warn(`Failed to parse or read package.json: ${err.message}`);
|
|
@@ -32,7 +32,7 @@ async function runHookIfPresent(ctx, hook) {
|
|
|
32
32
|
const packageManager = (await isUsingYarn2(projectDir)) && hook === Hook.PRE_INSTALL
|
|
33
33
|
? packageManager_1.PackageManager.NPM
|
|
34
34
|
: ctx.packageManager;
|
|
35
|
-
await turtle_spawn_1.default(packageManager, ['run', hook], {
|
|
35
|
+
await (0, turtle_spawn_1.default)(packageManager, ['run', hook], {
|
|
36
36
|
cwd: projectDir,
|
|
37
37
|
logger: ctx.logger,
|
|
38
38
|
env: ctx.env,
|
|
@@ -40,20 +40,12 @@ async function runHookIfPresent(ctx, hook) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
exports.runHookIfPresent = runHookIfPresent;
|
|
43
|
-
async function readPackageJson(projectDir) {
|
|
44
|
-
const packageJsonPath = path_1.default.join(projectDir, 'package.json');
|
|
45
|
-
if (!(await fs_extra_1.default.pathExists(packageJsonPath))) {
|
|
46
|
-
throw new Error(`package.json does not exist in ${projectDir}`);
|
|
47
|
-
}
|
|
48
|
-
const contents = await fs_extra_1.default.readFile(packageJsonPath, 'utf-8');
|
|
49
|
-
return JSON.parse(contents);
|
|
50
|
-
}
|
|
51
43
|
/**
|
|
52
44
|
* check if .yarnrc.yml exists in the project dir or in the workspace root dir
|
|
53
45
|
*/
|
|
54
46
|
async function isUsingYarn2(projectDir) {
|
|
55
47
|
const yarnrcPath = path_1.default.join(projectDir, '.yarnrc.yml');
|
|
56
|
-
const yarnrcRootPath = path_1.default.join(packageManager_1.findPackagerRootDir(projectDir), '.yarnrc.yml');
|
|
48
|
+
const yarnrcRootPath = path_1.default.join((0, packageManager_1.findPackagerRootDir)(projectDir), '.yarnrc.yml');
|
|
57
49
|
return (await fs_extra_1.default.pathExists(yarnrcPath)) || (await fs_extra_1.default.pathExists(yarnrcRootPath));
|
|
58
50
|
}
|
|
59
51
|
//# sourceMappingURL=hooks.js.map
|
package/dist/utils/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,sEAAuC;AACvC,wDAA0B;AAI1B,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,sEAAuC;AACvC,wDAA0B;AAI1B,qDAAwF;AAExF,IAAY,IAIX;AAJD,WAAY,IAAI;IACd,6CAAqC,CAAA;IACrC,+CAAuC,CAAA;IACvC,+DAAuD,CAAA;AACzD,CAAC,EAJW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAIf;AAMM,KAAK,UAAU,gBAAgB,CACpC,GAAuB,EACvB,IAAU;;IAEV,MAAM,UAAU,GAAG,GAAG,CAAC,2BAA2B,CAAC;IACnD,IAAI,WAAwB,CAAC;IAC7B,IAAI;QACF,WAAW,GAAG,MAAM,IAAA,gCAAe,EAAC,UAAU,CAAC,CAAC;KACjD;IAAC,OAAO,GAAQ,EAAE;QACjB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO;KACR;IACD,IAAI,MAAA,WAAW,CAAC,OAAO,0CAAG,IAAI,CAAC,EAAE;QAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,6CAA6C,CAAC,CAAC;QAC9E,wFAAwF;QACxF,yBAAyB;QACzB,MAAM,cAAc,GAClB,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW;YAC3D,CAAC,CAAC,+BAAc,CAAC,GAAG;YACpB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;QACzB,MAAM,IAAA,sBAAK,EAAC,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACzC,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC,CAAC;KACJ;AACH,CAAC;AA1BD,4CA0BC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC5C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,oCAAmB,EAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IACjF,OAAO,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AACpF,CAAC","sourcesContent":["import path from 'path';\n\nimport { Job } from '@expo/eas-build-job';\nimport spawn from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nimport { PackageManager, findPackagerRootDir, readPackageJson } from './packageManager';\n\nexport enum Hook {\n PRE_INSTALL = 'eas-build-pre-install',\n POST_INSTALL = 'eas-build-post-install',\n PRE_UPLOAD_ARTIFACTS = 'eas-build-pre-upload-artifacts',\n}\n\ninterface PackageJson {\n scripts?: Record<string, string>;\n}\n\nexport async function runHookIfPresent<TJob extends Job>(\n ctx: BuildContext<TJob>,\n hook: Hook\n): Promise<void> {\n const projectDir = ctx.reactNativeProjectDirectory;\n let packageJson: PackageJson;\n try {\n packageJson = await readPackageJson(projectDir);\n } catch (err: any) {\n ctx.logger.warn(`Failed to parse or read package.json: ${err.message}`);\n return;\n }\n if (packageJson.scripts?.[hook]) {\n ctx.logger.info(`Script '${hook}' is present in package.json, running it...`);\n // when using yarn 2, it's not possible to run any scripts before running 'yarn install'\n // use 'npm' in that case\n const packageManager =\n (await isUsingYarn2(projectDir)) && hook === Hook.PRE_INSTALL\n ? PackageManager.NPM\n : ctx.packageManager;\n await spawn(packageManager, ['run', hook], {\n cwd: projectDir,\n logger: ctx.logger,\n env: ctx.env,\n });\n }\n}\n\n/**\n * check if .yarnrc.yml exists in the project dir or in the workspace root dir\n */\nasync function isUsingYarn2(projectDir: string): Promise<boolean> {\n const yarnrcPath = path.join(projectDir, '.yarnrc.yml');\n const yarnrcRootPath = path.join(findPackagerRootDir(projectDir), '.yarnrc.yml');\n return (await fs.pathExists(yarnrcPath)) || (await fs.pathExists(yarnrcRootPath));\n}\n"]}
|
|
@@ -4,3 +4,4 @@ export declare enum PackageManager {
|
|
|
4
4
|
}
|
|
5
5
|
export declare function resolvePackageManager(directory: string): PackageManager;
|
|
6
6
|
export declare function findPackagerRootDir(currentDir: string): string;
|
|
7
|
+
export declare function readPackageJson(projectDir: string): Promise<any>;
|
|
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.findPackagerRootDir = exports.resolvePackageManager = exports.PackageManager = void 0;
|
|
6
|
+
exports.readPackageJson = exports.findPackagerRootDir = exports.resolvePackageManager = exports.PackageManager = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
7
8
|
const package_manager_1 = require("@expo/package-manager");
|
|
8
9
|
const find_yarn_workspace_root_1 = __importDefault(require("find-yarn-workspace-root"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
11
|
var PackageManager;
|
|
10
12
|
(function (PackageManager) {
|
|
11
13
|
PackageManager["YARN"] = "yarn";
|
|
@@ -13,7 +15,7 @@ var PackageManager;
|
|
|
13
15
|
})(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
|
|
14
16
|
function resolvePackageManager(directory) {
|
|
15
17
|
try {
|
|
16
|
-
return package_manager_1.isUsingYarn(directory) ? PackageManager.YARN : PackageManager.NPM;
|
|
18
|
+
return (0, package_manager_1.isUsingYarn)(directory) ? PackageManager.YARN : PackageManager.NPM;
|
|
17
19
|
}
|
|
18
20
|
catch (_a) {
|
|
19
21
|
return PackageManager.YARN;
|
|
@@ -22,7 +24,16 @@ function resolvePackageManager(directory) {
|
|
|
22
24
|
exports.resolvePackageManager = resolvePackageManager;
|
|
23
25
|
function findPackagerRootDir(currentDir) {
|
|
24
26
|
var _a;
|
|
25
|
-
return (_a = find_yarn_workspace_root_1.default(currentDir)) !== null && _a !== void 0 ? _a : currentDir;
|
|
27
|
+
return (_a = (0, find_yarn_workspace_root_1.default)(currentDir)) !== null && _a !== void 0 ? _a : currentDir;
|
|
26
28
|
}
|
|
27
29
|
exports.findPackagerRootDir = findPackagerRootDir;
|
|
30
|
+
async function readPackageJson(projectDir) {
|
|
31
|
+
const packageJsonPath = path_1.default.join(projectDir, 'package.json');
|
|
32
|
+
if (!(await fs_extra_1.default.pathExists(packageJsonPath))) {
|
|
33
|
+
throw new Error(`package.json does not exist in ${projectDir}`);
|
|
34
|
+
}
|
|
35
|
+
const contents = await fs_extra_1.default.readFile(packageJsonPath, 'utf-8');
|
|
36
|
+
return JSON.parse(contents);
|
|
37
|
+
}
|
|
38
|
+
exports.readPackageJson = readPackageJson;
|
|
28
39
|
//# sourceMappingURL=packageManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/utils/packageManager.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAoD;AACpD,wFAA6D;
|
|
1
|
+
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/utils/packageManager.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,2DAAoD;AACpD,wFAA6D;AAC7D,wDAA0B;AAE1B,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,6BAAW,CAAA;AACb,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,IAAI;QACF,OAAO,IAAA,6BAAW,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;KAC1E;IAAC,WAAM;QACN,OAAO,cAAc,CAAC,IAAI,CAAC;KAC5B;AACH,CAAC;AAND,sDAMC;AAED,SAAgB,mBAAmB,CAAC,UAAkB;;IACpD,OAAO,MAAA,IAAA,kCAAqB,EAAC,UAAU,CAAC,mCAAI,UAAU,CAAC;AACzD,CAAC;AAFD,kDAEC;AAEM,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;KACjE;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAPD,0CAOC","sourcesContent":["import path from 'path';\n\nimport { isUsingYarn } from '@expo/package-manager';\nimport findYarnWorkspaceRoot from 'find-yarn-workspace-root';\nimport fs from 'fs-extra';\n\nexport enum PackageManager {\n YARN = 'yarn',\n NPM = 'npm',\n}\n\nexport function resolvePackageManager(directory: string): PackageManager {\n try {\n return isUsingYarn(directory) ? PackageManager.YARN : PackageManager.NPM;\n } catch {\n return PackageManager.YARN;\n }\n}\n\nexport function findPackagerRootDir(currentDir: string): string {\n return findYarnWorkspaceRoot(currentDir) ?? currentDir;\n}\n\nexport async function readPackageJson(projectDir: string): Promise<any> {\n const packageJsonPath = path.join(projectDir, 'package.json');\n if (!(await fs.pathExists(packageJsonPath))) {\n throw new Error(`package.json does not exist in ${projectDir}`);\n }\n const contents = await fs.readFile(packageJsonPath, 'utf-8');\n return JSON.parse(contents);\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Job } from '@expo/eas-build-job';
|
|
2
|
+
import { BuildContext } from '../context';
|
|
3
|
+
export interface PrebuildOptions {
|
|
4
|
+
extraEnvs?: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export declare function prebuildAsync<TJob extends Job>(ctx: BuildContext<TJob>, options?: PrebuildOptions): Promise<void>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.prebuildAsync = void 0;
|
|
7
|
+
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
8
|
+
async function prebuildAsync(ctx, options) {
|
|
9
|
+
const spawnOptions = {
|
|
10
|
+
cwd: ctx.reactNativeProjectDirectory,
|
|
11
|
+
logger: ctx.logger,
|
|
12
|
+
env: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.extraEnvs), ctx.env),
|
|
13
|
+
};
|
|
14
|
+
await ctx.runExpoCliCommand(getPrebuildCommand(ctx.job), spawnOptions);
|
|
15
|
+
await (0, turtle_spawn_1.default)(ctx.packageManager, ['install'], spawnOptions);
|
|
16
|
+
}
|
|
17
|
+
exports.prebuildAsync = prebuildAsync;
|
|
18
|
+
function getPrebuildCommand(job) {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
let prebuildCommand = (_b = (_a = job.experimental) === null || _a === void 0 ? void 0 : _a.prebuildCommand) !== null && _b !== void 0 ? _b : `prebuild --non-interactive --no-install --platform ${job.platform}`;
|
|
21
|
+
if (!prebuildCommand.match(/(?:--platform| -p)/)) {
|
|
22
|
+
prebuildCommand = `${prebuildCommand} --platform ${job.platform}`;
|
|
23
|
+
}
|
|
24
|
+
if (!prebuildCommand.match(/--non-interactive/)) {
|
|
25
|
+
prebuildCommand = `${prebuildCommand} --non-interactive`;
|
|
26
|
+
}
|
|
27
|
+
const npxCommandPrefix = 'npx ';
|
|
28
|
+
const expoCommandPrefix = 'expo ';
|
|
29
|
+
const expoCliCommandPrefix = 'expo-cli ';
|
|
30
|
+
if (prebuildCommand.startsWith(npxCommandPrefix)) {
|
|
31
|
+
prebuildCommand = prebuildCommand.substr(npxCommandPrefix.length).trim();
|
|
32
|
+
}
|
|
33
|
+
if (prebuildCommand.startsWith(expoCommandPrefix)) {
|
|
34
|
+
prebuildCommand = prebuildCommand.substr(expoCommandPrefix.length).trim();
|
|
35
|
+
}
|
|
36
|
+
if (prebuildCommand.startsWith(expoCliCommandPrefix)) {
|
|
37
|
+
prebuildCommand = prebuildCommand.substr(expoCliCommandPrefix.length).trim();
|
|
38
|
+
}
|
|
39
|
+
return prebuildCommand;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=prebuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prebuild.js","sourceRoot":"","sources":["../../src/utils/prebuild.ts"],"names":[],"mappings":";;;;;;AACA,sEAA8D;AAQvD,KAAK,UAAU,aAAa,CACjC,GAAuB,EACvB,OAAyB;IAEzB,MAAM,YAAY,GAAiB;QACjC,GAAG,EAAE,GAAG,CAAC,2BAA2B;QACpC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,kCACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,GAClB,GAAG,CAAC,GAAG,CACX;KACF,CAAC;IAEF,MAAM,GAAG,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,IAAA,sBAAU,EAAC,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC;AAfD,sCAeC;AAED,SAAS,kBAAkB,CAAC,GAAQ;;IAClC,IAAI,eAAe,GACjB,MAAA,MAAA,GAAG,CAAC,YAAY,0CAAE,eAAe,mCACjC,sDAAsD,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;QAChD,eAAe,GAAG,GAAG,eAAe,eAAe,GAAG,CAAC,QAAQ,EAAE,CAAC;KACnE;IACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;QAC/C,eAAe,GAAG,GAAG,eAAe,oBAAoB,CAAC;KAC1D;IACD,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAClC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IACzC,IAAI,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAChD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KAC1E;IACD,IAAI,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;QACjD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3E;IACD,IAAI,eAAe,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;QACpD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KAC9E;IACD,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["import { Job } from '@expo/eas-build-job';\nimport spawnAsync, { SpawnOptions } from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\n\nexport interface PrebuildOptions {\n extraEnvs?: Record<string, string>;\n}\n\nexport async function prebuildAsync<TJob extends Job>(\n ctx: BuildContext<TJob>,\n options?: PrebuildOptions\n): Promise<void> {\n const spawnOptions: SpawnOptions = {\n cwd: ctx.reactNativeProjectDirectory,\n logger: ctx.logger,\n env: {\n ...options?.extraEnvs,\n ...ctx.env,\n },\n };\n\n await ctx.runExpoCliCommand(getPrebuildCommand(ctx.job), spawnOptions);\n await spawnAsync(ctx.packageManager, ['install'], spawnOptions);\n}\n\nfunction getPrebuildCommand(job: Job): string {\n let prebuildCommand =\n job.experimental?.prebuildCommand ??\n `prebuild --non-interactive --no-install --platform ${job.platform}`;\n if (!prebuildCommand.match(/(?:--platform| -p)/)) {\n prebuildCommand = `${prebuildCommand} --platform ${job.platform}`;\n }\n if (!prebuildCommand.match(/--non-interactive/)) {\n prebuildCommand = `${prebuildCommand} --non-interactive`;\n }\n const npxCommandPrefix = 'npx ';\n const expoCommandPrefix = 'expo ';\n const expoCliCommandPrefix = 'expo-cli ';\n if (prebuildCommand.startsWith(npxCommandPrefix)) {\n prebuildCommand = prebuildCommand.substr(npxCommandPrefix.length).trim();\n }\n if (prebuildCommand.startsWith(expoCommandPrefix)) {\n prebuildCommand = prebuildCommand.substr(expoCommandPrefix.length).trim();\n }\n if (prebuildCommand.startsWith(expoCliCommandPrefix)) {\n prebuildCommand = prebuildCommand.substr(expoCliCommandPrefix.length).trim();\n }\n return prebuildCommand;\n}\n"]}
|
package/dist/utils/project.js
CHANGED
|
@@ -16,23 +16,48 @@ async function setup(ctx) {
|
|
|
16
16
|
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.PREPARE_PROJECT, async () => {
|
|
17
17
|
await downloadAndUnpackProject(ctx);
|
|
18
18
|
if (ctx.env.NPM_TOKEN) {
|
|
19
|
-
await npmrc_1.createNpmrcIfNotExistsAsync(ctx);
|
|
19
|
+
await (0, npmrc_1.createNpmrcIfNotExistsAsync)(ctx);
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.PRE_INSTALL_HOOK, async () => {
|
|
23
|
-
await hooks_1.runHookIfPresent(ctx, hooks_1.Hook.PRE_INSTALL);
|
|
23
|
+
await (0, hooks_1.runHookIfPresent)(ctx, hooks_1.Hook.PRE_INSTALL);
|
|
24
24
|
});
|
|
25
25
|
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.INSTALL_DEPENDENCIES, async () => {
|
|
26
26
|
await installDependencies(ctx);
|
|
27
27
|
});
|
|
28
|
+
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.READ_PACKAGE_JSON, async () => {
|
|
29
|
+
try {
|
|
30
|
+
const packageJsonContents = await (0, packageManager_1.readPackageJson)(ctx.reactNativeProjectDirectory);
|
|
31
|
+
ctx.logger.info('Using package.json:');
|
|
32
|
+
ctx.logger.info(JSON.stringify(packageJsonContents, null, 2));
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
ctx.logger.warn(`Failed to parse or read package.json: ${err.message}`);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
28
38
|
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.READ_APP_CONFIG, async () => {
|
|
29
39
|
const appConfig = ctx.appConfig;
|
|
30
40
|
ctx.logger.info('Using app configuration:');
|
|
31
41
|
ctx.logger.info(JSON.stringify(appConfig, null, 2));
|
|
32
42
|
});
|
|
43
|
+
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.RUN_EXPO_DOCTOR, async () => {
|
|
44
|
+
const spawnOptions = {
|
|
45
|
+
cwd: ctx.reactNativeProjectDirectory,
|
|
46
|
+
logger: ctx.logger,
|
|
47
|
+
env: ctx.env,
|
|
48
|
+
};
|
|
49
|
+
ctx.logger.info('Running "expo doctor"');
|
|
50
|
+
try {
|
|
51
|
+
await ctx.runExpoCliCommand('doctor', spawnOptions);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
ctx.logger.error({ err }, 'Command "expo doctor" failed.');
|
|
55
|
+
}
|
|
56
|
+
});
|
|
33
57
|
}
|
|
34
58
|
exports.setup = setup;
|
|
35
59
|
async function downloadAndUnpackProject(ctx) {
|
|
60
|
+
var _a;
|
|
36
61
|
const projectTarball = path_1.default.join(ctx.workingdir, 'project.tar.gz');
|
|
37
62
|
if (ctx.job.projectArchive.type === eas_build_job_1.ArchiveSourceType.S3) {
|
|
38
63
|
throw new Error('ArchiveSourceType.S3 should be resolved earlier to url');
|
|
@@ -41,15 +66,21 @@ async function downloadAndUnpackProject(ctx) {
|
|
|
41
66
|
await fs_extra_1.default.copy(ctx.job.projectArchive.path, projectTarball); // used in eas-build-cli
|
|
42
67
|
}
|
|
43
68
|
else if (ctx.job.projectArchive.type === eas_build_job_1.ArchiveSourceType.URL) {
|
|
44
|
-
|
|
69
|
+
try {
|
|
70
|
+
await (0, downloader_1.default)(ctx.job.projectArchive.url, projectTarball, { retry: 3 });
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
(_a = ctx === null || ctx === void 0 ? void 0 : ctx.reportError) === null || _a === void 0 ? void 0 : _a.call(ctx, 'Failed to download project archive', err);
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
45
76
|
}
|
|
46
|
-
await turtle_spawn_1.default('tar', ['--strip-components', '1', '-zxf', 'project.tar.gz', '-C', ctx.buildDirectory], {
|
|
77
|
+
await (0, turtle_spawn_1.default)('tar', ['--strip-components', '1', '-zxf', 'project.tar.gz', '-C', ctx.buildDirectory], {
|
|
47
78
|
cwd: ctx.workingdir,
|
|
48
79
|
logger: ctx.logger,
|
|
49
80
|
});
|
|
50
81
|
}
|
|
51
82
|
async function installDependencies(ctx) {
|
|
52
|
-
const packagerRunDir = packageManager_1.findPackagerRootDir(ctx.reactNativeProjectDirectory);
|
|
83
|
+
const packagerRunDir = (0, packageManager_1.findPackagerRootDir)(ctx.reactNativeProjectDirectory);
|
|
53
84
|
if (packagerRunDir !== ctx.reactNativeProjectDirectory) {
|
|
54
85
|
const relativeReactNativeProjectDirectory = path_1.default.relative(ctx.buildDirectory, ctx.reactNativeProjectDirectory);
|
|
55
86
|
ctx.logger.info(`We detected that '${relativeReactNativeProjectDirectory}' is a workspace`);
|
|
@@ -58,7 +89,7 @@ async function installDependencies(ctx) {
|
|
|
58
89
|
ctx.logger.info(`Running ${ctx.packageManager} in ${relativePackagerRunDir
|
|
59
90
|
? `directory '${relativePackagerRunDir}'`
|
|
60
91
|
: 'the root dir of your repository'} `);
|
|
61
|
-
await turtle_spawn_1.default(ctx.packageManager, ['install'], {
|
|
92
|
+
await (0, turtle_spawn_1.default)(ctx.packageManager, ['install'], {
|
|
62
93
|
cwd: packagerRunDir,
|
|
63
94
|
logger: ctx.logger,
|
|
64
95
|
env: ctx.env,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,kEAA4C;AAC5C,uDAAyE;AACzE,sEAAuC;AACvC,wDAA0B;AAI1B,mCAAiD;AACjD,mCAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport downloadFile from '@expo/downloader';\nimport { ArchiveSourceType, BuildPhase, Job } from '@expo/eas-build-job';\nimport spawn from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nimport { Hook, runHookIfPresent } from './hooks';\nimport { createNpmrcIfNotExistsAsync } from './npmrc';\nimport { findPackagerRootDir, readPackageJson } from './packageManager';\n\nexport async function setup<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n await ctx.runBuildPhase(BuildPhase.PREPARE_PROJECT, async () => {\n await downloadAndUnpackProject(ctx);\n if (ctx.env.NPM_TOKEN) {\n await createNpmrcIfNotExistsAsync(ctx);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.PRE_INSTALL_HOOK, async () => {\n await runHookIfPresent(ctx, Hook.PRE_INSTALL);\n });\n\n await ctx.runBuildPhase(BuildPhase.INSTALL_DEPENDENCIES, async () => {\n await installDependencies(ctx);\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_PACKAGE_JSON, async () => {\n try {\n const packageJsonContents = await readPackageJson(ctx.reactNativeProjectDirectory);\n ctx.logger.info('Using package.json:');\n ctx.logger.info(JSON.stringify(packageJsonContents, null, 2));\n } catch (err: any) {\n ctx.logger.warn(`Failed to parse or read package.json: ${err.message}`);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_APP_CONFIG, async () => {\n const appConfig = ctx.appConfig;\n ctx.logger.info('Using app configuration:');\n ctx.logger.info(JSON.stringify(appConfig, null, 2));\n });\n\n await ctx.runBuildPhase(BuildPhase.RUN_EXPO_DOCTOR, async () => {\n const spawnOptions = {\n cwd: ctx.reactNativeProjectDirectory,\n logger: ctx.logger,\n env: ctx.env,\n };\n ctx.logger.info('Running \"expo doctor\"');\n try {\n await ctx.runExpoCliCommand('doctor', spawnOptions);\n } catch (err) {\n ctx.logger.error({ err }, 'Command \"expo doctor\" failed.');\n }\n });\n}\n\nasync function downloadAndUnpackProject<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n const projectTarball = path.join(ctx.workingdir, 'project.tar.gz');\n if (ctx.job.projectArchive.type === ArchiveSourceType.S3) {\n throw new Error('ArchiveSourceType.S3 should be resolved earlier to url');\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.PATH) {\n await fs.copy(ctx.job.projectArchive.path, projectTarball); // used in eas-build-cli\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.URL) {\n try {\n await downloadFile(ctx.job.projectArchive.url, projectTarball, { retry: 3 });\n } catch (err: any) {\n ctx?.reportError?.('Failed to download project archive', err);\n throw err;\n }\n }\n\n await spawn(\n 'tar',\n ['--strip-components', '1', '-zxf', 'project.tar.gz', '-C', ctx.buildDirectory],\n {\n cwd: ctx.workingdir,\n logger: ctx.logger,\n }\n );\n}\n\nasync function installDependencies<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n const packagerRunDir = findPackagerRootDir(ctx.reactNativeProjectDirectory);\n if (packagerRunDir !== ctx.reactNativeProjectDirectory) {\n const relativeReactNativeProjectDirectory = path.relative(\n ctx.buildDirectory,\n ctx.reactNativeProjectDirectory\n );\n ctx.logger.info(`We detected that '${relativeReactNativeProjectDirectory}' is a workspace`);\n }\n\n const relativePackagerRunDir = path.relative(ctx.buildDirectory, packagerRunDir);\n ctx.logger.info(\n `Running ${ctx.packageManager} in ${\n relativePackagerRunDir\n ? `directory '${relativePackagerRunDir}'`\n : 'the root dir of your repository'\n } `\n );\n await spawn(ctx.packageManager, ['install'], {\n cwd: packagerRunDir,\n logger: ctx.logger,\n env: ctx.env,\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/build-tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.113",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -21,33 +21,33 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@expo/config": "6.0.11",
|
|
23
23
|
"@expo/config-plugins": "4.0.11",
|
|
24
|
-
"@expo/downloader": "0.0.
|
|
25
|
-
"@expo/eas-build-job": "0.2.
|
|
26
|
-
"@expo/fastlane": "0.0.
|
|
27
|
-
"@expo/logger": "0.0.
|
|
24
|
+
"@expo/downloader": "0.0.18",
|
|
25
|
+
"@expo/eas-build-job": "0.2.68",
|
|
26
|
+
"@expo/fastlane": "0.0.27",
|
|
27
|
+
"@expo/logger": "0.0.22",
|
|
28
28
|
"@expo/package-manager": "^0.0.47",
|
|
29
29
|
"@expo/plist": "^0.0.11",
|
|
30
|
-
"@expo/template-file": "0.1.
|
|
31
|
-
"@expo/turtle-spawn": "0.0.
|
|
32
|
-
"@expo/xcpretty": "^4.
|
|
30
|
+
"@expo/template-file": "0.1.20",
|
|
31
|
+
"@expo/turtle-spawn": "0.0.22",
|
|
32
|
+
"@expo/xcpretty": "^4.1.1",
|
|
33
33
|
"fast-glob": "^3.2.5",
|
|
34
34
|
"find-yarn-workspace-root": "^2.0.0",
|
|
35
35
|
"fs-extra": "^9.0.0",
|
|
36
|
-
"node-forge": "^
|
|
36
|
+
"node-forge": "^1.2.1",
|
|
37
37
|
"nullthrows": "^1.1.1",
|
|
38
38
|
"plist": "^3.0.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/fs-extra": "^9.0.1",
|
|
42
42
|
"@types/jest": "^26.0.20",
|
|
43
|
-
"@types/node": "^
|
|
44
|
-
"@types/node-forge": "^0.
|
|
43
|
+
"@types/node": "^16.11.26",
|
|
44
|
+
"@types/node-forge": "^1.0.1",
|
|
45
45
|
"@types/plist": "^3.0.2",
|
|
46
46
|
"@types/uuid": "^3.4.5",
|
|
47
47
|
"@types/xml2js": "^0.4.5",
|
|
48
|
-
"jest": "^
|
|
48
|
+
"jest": "^27.5.1",
|
|
49
49
|
"memfs": "^3.2.0",
|
|
50
|
-
"ts-jest": "^
|
|
51
|
-
"typescript": "^4.
|
|
50
|
+
"ts-jest": "^27.1.3",
|
|
51
|
+
"typescript": "^4.6.2"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Job } from '@expo/eas-build-job';
|
|
2
|
-
import { BuildContext } from '../context';
|
|
3
|
-
export interface EjectOptions {
|
|
4
|
-
extraEnvs?: Record<string, string>;
|
|
5
|
-
}
|
|
6
|
-
export interface EjectProvider<TJob extends Job> {
|
|
7
|
-
runEject(ctx: BuildContext<TJob>, options?: EjectOptions): Promise<void>;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EjectProvider.js","sourceRoot":"","sources":["../../src/managed/EjectProvider.ts"],"names":[],"mappings":"","sourcesContent":["import { Job } from '@expo/eas-build-job';\n\nimport { BuildContext } from '../context';\n\nexport interface EjectOptions {\n extraEnvs?: Record<string, string>;\n}\n\nexport interface EjectProvider<TJob extends Job> {\n runEject(ctx: BuildContext<TJob>, options?: EjectOptions): Promise<void>;\n}\n"]}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Job } from '@expo/eas-build-job';
|
|
2
|
-
import { BuildContext } from '../context';
|
|
3
|
-
import { EjectProvider, EjectOptions } from './EjectProvider';
|
|
4
|
-
export declare class NpxExpoCliEjectProvider implements EjectProvider<Job> {
|
|
5
|
-
runEject(ctx: BuildContext<Job>, options?: EjectOptions): Promise<void>;
|
|
6
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NpxExpoCliEjectProvider = void 0;
|
|
7
|
-
const turtle_spawn_1 = __importDefault(require("@expo/turtle-spawn"));
|
|
8
|
-
class NpxExpoCliEjectProvider {
|
|
9
|
-
async runEject(ctx, options) {
|
|
10
|
-
const { logger, job } = ctx;
|
|
11
|
-
const spawnOptions = {
|
|
12
|
-
cwd: ctx.buildDirectory,
|
|
13
|
-
logger,
|
|
14
|
-
env: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.extraEnvs), ctx.env),
|
|
15
|
-
};
|
|
16
|
-
await turtle_spawn_1.default('npx', ['expo-cli', 'prebuild', '--non-interactive', '--no-install', '--platform', job.platform], Object.assign(Object.assign({}, spawnOptions), { cwd: ctx.reactNativeProjectDirectory, env: Object.assign(Object.assign({}, spawnOptions.env), (ctx.job.username ? { EAS_BUILD_USERNAME: ctx.job.username } : {})) }));
|
|
17
|
-
await turtle_spawn_1.default(ctx.packageManager, ['install'], Object.assign(Object.assign({}, spawnOptions), { cwd: ctx.reactNativeProjectDirectory }));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.NpxExpoCliEjectProvider = NpxExpoCliEjectProvider;
|
|
21
|
-
//# sourceMappingURL=NpxExpoCliEject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NpxExpoCliEject.js","sourceRoot":"","sources":["../../src/managed/NpxExpoCliEject.ts"],"names":[],"mappings":";;;;;;AACA,sEAAuC;AAMvC,MAAa,uBAAuB;IAClC,KAAK,CAAC,QAAQ,CAAC,GAAsB,EAAE,OAAsB;QAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAE5B,MAAM,YAAY,GAAG;YACnB,GAAG,EAAE,GAAG,CAAC,cAAc;YACvB,MAAM;YACN,GAAG,kCACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,GAClB,GAAG,CAAC,GAAG,CACX;SACF,CAAC;QAEF,MAAM,sBAAK,CACT,KAAK,EACL,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,kCAEpF,YAAY,KACf,GAAG,EAAE,GAAG,CAAC,2BAA2B,EACpC,GAAG,kCACE,YAAY,CAAC,GAAG,GAChB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAG1E,CAAC;QAEF,MAAM,sBAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,kCACtC,YAAY,KACf,GAAG,EAAE,GAAG,CAAC,2BAA2B,IACpC,CAAC;IACL,CAAC;CACF;AA/BD,0DA+BC","sourcesContent":["import { Job } from '@expo/eas-build-job';\nimport spawn from '@expo/turtle-spawn';\n\nimport { BuildContext } from '../context';\n\nimport { EjectProvider, EjectOptions } from './EjectProvider';\n\nexport class NpxExpoCliEjectProvider implements EjectProvider<Job> {\n async runEject(ctx: BuildContext<Job>, options?: EjectOptions): Promise<void> {\n const { logger, job } = ctx;\n\n const spawnOptions = {\n cwd: ctx.buildDirectory,\n logger,\n env: {\n ...options?.extraEnvs,\n ...ctx.env,\n },\n };\n\n await spawn(\n 'npx',\n ['expo-cli', 'prebuild', '--non-interactive', '--no-install', '--platform', job.platform],\n {\n ...spawnOptions,\n cwd: ctx.reactNativeProjectDirectory,\n env: {\n ...spawnOptions.env,\n ...(ctx.job.username ? { EAS_BUILD_USERNAME: ctx.job.username } : {}),\n },\n }\n );\n\n await spawn(ctx.packageManager, ['install'], {\n ...spawnOptions,\n cwd: ctx.reactNativeProjectDirectory,\n });\n }\n}\n"]}
|