@expo/package-manager 0.0.51 → 0.0.52
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/CocoaPodsPackageManager.js +8 -8
- package/build/CocoaPodsPackageManager.js.map +1 -1
- package/build/NodePackageManagers.js +18 -18
- package/build/NodePackageManagers.js.map +1 -1
- package/build/PackageManager.js +2 -2
- package/build/PackageManager.js.map +1 -1
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/utils/isYarnOfflineAsync.js +2 -2
- package/build/utils/isYarnOfflineAsync.js.map +1 -1
- package/build/utils/shouldUseYarn.js +2 -2
- package/build/utils/shouldUseYarn.js.map +1 -1
- package/package.json +2 -2
|
@@ -51,27 +51,27 @@ class CocoaPodsPackageManager {
|
|
|
51
51
|
return null;
|
|
52
52
|
}
|
|
53
53
|
static isUsingPods(projectRoot) {
|
|
54
|
-
return fs_1.existsSync(path_1.default.join(projectRoot, 'Podfile'));
|
|
54
|
+
return (0, fs_1.existsSync)(path_1.default.join(projectRoot, 'Podfile'));
|
|
55
55
|
}
|
|
56
56
|
static async gemInstallCLIAsync(nonInteractive = false, spawnOptions = { stdio: 'inherit' }) {
|
|
57
57
|
const options = ['install', 'cocoapods', '--no-document'];
|
|
58
58
|
try {
|
|
59
59
|
// In case the user has run sudo before running the command we can properly install CocoaPods without prompting for an interaction.
|
|
60
|
-
await spawn_async_1.default('gem', options, spawnOptions);
|
|
60
|
+
await (0, spawn_async_1.default)('gem', options, spawnOptions);
|
|
61
61
|
}
|
|
62
62
|
catch (error) {
|
|
63
63
|
if (nonInteractive) {
|
|
64
64
|
throw new CocoaPodsError('Failed to install CocoaPods CLI with gem (recommended)', 'COMMAND_FAILED', error);
|
|
65
65
|
}
|
|
66
66
|
// If the user doesn't have permission then we can prompt them to use sudo.
|
|
67
|
-
await PackageManager_1.spawnSudoAsync(['gem', ...options], spawnOptions);
|
|
67
|
+
await (0, PackageManager_1.spawnSudoAsync)(['gem', ...options], spawnOptions);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
static async brewLinkCLIAsync(spawnOptions = { stdio: 'inherit' }) {
|
|
71
|
-
await spawn_async_1.default('brew', ['link', 'cocoapods'], spawnOptions);
|
|
71
|
+
await (0, spawn_async_1.default)('brew', ['link', 'cocoapods'], spawnOptions);
|
|
72
72
|
}
|
|
73
73
|
static async brewInstallCLIAsync(spawnOptions = { stdio: 'inherit' }) {
|
|
74
|
-
await spawn_async_1.default('brew', ['install', 'cocoapods'], spawnOptions);
|
|
74
|
+
await (0, spawn_async_1.default)('brew', ['install', 'cocoapods'], spawnOptions);
|
|
75
75
|
}
|
|
76
76
|
static async installCLIAsync({ nonInteractive = false, spawnOptions = { stdio: 'inherit' }, }) {
|
|
77
77
|
var _a;
|
|
@@ -128,7 +128,7 @@ class CocoaPodsPackageManager {
|
|
|
128
128
|
}
|
|
129
129
|
static async isCLIInstalledAsync(spawnOptions = { stdio: 'inherit' }) {
|
|
130
130
|
try {
|
|
131
|
-
await spawn_async_1.default('pod', ['--version'], spawnOptions);
|
|
131
|
+
await (0, spawn_async_1.default)('pod', ['--version'], spawnOptions);
|
|
132
132
|
return true;
|
|
133
133
|
}
|
|
134
134
|
catch {
|
|
@@ -235,7 +235,7 @@ class CocoaPodsPackageManager {
|
|
|
235
235
|
throw new Error('Unimplemented');
|
|
236
236
|
}
|
|
237
237
|
async versionAsync() {
|
|
238
|
-
const { stdout } = await spawn_async_1.default('pod', ['--version'], this.options);
|
|
238
|
+
const { stdout } = await (0, spawn_async_1.default)('pod', ['--version'], this.options);
|
|
239
239
|
return stdout.trim();
|
|
240
240
|
}
|
|
241
241
|
async getConfigAsync(key) {
|
|
@@ -263,7 +263,7 @@ class CocoaPodsPackageManager {
|
|
|
263
263
|
if (!this.silent) {
|
|
264
264
|
console.log(`> pod ${args.join(' ')}`);
|
|
265
265
|
}
|
|
266
|
-
const promise = spawn_async_1.default('pod', [
|
|
266
|
+
const promise = (0, spawn_async_1.default)('pod', [
|
|
267
267
|
...args,
|
|
268
268
|
// Enables colors while collecting output.
|
|
269
269
|
'--ansi',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CocoaPodsPackageManager.js","sourceRoot":"","sources":["../src/CocoaPodsPackageManager.ts"],"names":[],"mappings":"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","sourcesContent":["import spawnAsync, { SpawnOptions, SpawnResult } from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport { existsSync } from 'fs';\nimport { Ora } from 'ora';\nimport os from 'os';\nimport path from 'path';\n\nimport { PackageManager, spawnSudoAsync } from './PackageManager';\n\nexport type CocoaPodsErrorCode = 'NON_INTERACTIVE' | 'NO_CLI' | 'COMMAND_FAILED';\n\nexport class CocoaPodsError extends Error {\n readonly name = 'CocoaPodsError';\n readonly isPackageManagerError = true;\n\n constructor(message: string, public code: CocoaPodsErrorCode, public cause?: Error) {\n super(cause ? `${message}\\n└─ Cause: ${cause.message}` : message);\n }\n}\n\nexport function extractMissingDependencyError(errorOutput: string): [string, string] | null {\n // [!] Unable to find a specification for `expo-dev-menu-interface` depended upon by `expo-dev-launcher`\n const results = errorOutput.match(\n /Unable to find a specification for ['\"`]([\\w-_\\d\\s]+)['\"`] depended upon by ['\"`]([\\w-_\\d\\s]+)['\"`]/\n );\n if (results) {\n return [results[1], results[2]];\n }\n return null;\n}\n\nexport class CocoaPodsPackageManager implements PackageManager {\n options: SpawnOptions;\n\n private silent: boolean;\n\n static getPodProjectRoot(projectRoot: string): string | null {\n if (CocoaPodsPackageManager.isUsingPods(projectRoot)) return projectRoot;\n const iosProject = path.join(projectRoot, 'ios');\n if (CocoaPodsPackageManager.isUsingPods(iosProject)) return iosProject;\n const macOsProject = path.join(projectRoot, 'macos');\n if (CocoaPodsPackageManager.isUsingPods(macOsProject)) return macOsProject;\n return null;\n }\n\n static isUsingPods(projectRoot: string): boolean {\n return existsSync(path.join(projectRoot, 'Podfile'));\n }\n\n static async gemInstallCLIAsync(\n nonInteractive: boolean = false,\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<void> {\n const options = ['install', 'cocoapods', '--no-document'];\n\n try {\n // In case the user has run sudo before running the command we can properly install CocoaPods without prompting for an interaction.\n await spawnAsync('gem', options, spawnOptions);\n } catch (error: any) {\n if (nonInteractive) {\n throw new CocoaPodsError(\n 'Failed to install CocoaPods CLI with gem (recommended)',\n 'COMMAND_FAILED',\n error\n );\n }\n // If the user doesn't have permission then we can prompt them to use sudo.\n await spawnSudoAsync(['gem', ...options], spawnOptions);\n }\n }\n\n static async brewLinkCLIAsync(spawnOptions: SpawnOptions = { stdio: 'inherit' }): Promise<void> {\n await spawnAsync('brew', ['link', 'cocoapods'], spawnOptions);\n }\n\n static async brewInstallCLIAsync(\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<void> {\n await spawnAsync('brew', ['install', 'cocoapods'], spawnOptions);\n }\n\n static async installCLIAsync({\n nonInteractive = false,\n spawnOptions = { stdio: 'inherit' },\n }: {\n nonInteractive?: boolean;\n spawnOptions?: SpawnOptions;\n }): Promise<boolean> {\n if (!spawnOptions) {\n spawnOptions = { stdio: 'inherit' };\n }\n const silent = !!spawnOptions.ignoreStdio;\n\n try {\n !silent && console.log(`\\u203A Attempting to install CocoaPods CLI with Gem`);\n await CocoaPodsPackageManager.gemInstallCLIAsync(nonInteractive, spawnOptions);\n !silent && console.log(`\\u203A Successfully installed CocoaPods CLI with Gem`);\n return true;\n } catch (error: any) {\n if (!silent) {\n console.log(chalk.yellow(`\\u203A Failed to install CocoaPods CLI with Gem`));\n console.log(chalk.red(error.stderr ?? error.message));\n console.log(`\\u203A Attempting to install CocoaPods CLI with Homebrew`);\n }\n try {\n await CocoaPodsPackageManager.brewInstallCLIAsync(spawnOptions);\n if (!(await CocoaPodsPackageManager.isCLIInstalledAsync(spawnOptions))) {\n try {\n await CocoaPodsPackageManager.brewLinkCLIAsync(spawnOptions);\n // Still not available after linking? Bail out\n if (!(await CocoaPodsPackageManager.isCLIInstalledAsync(spawnOptions))) {\n throw new CocoaPodsError(\n 'CLI could not be installed automatically with gem or Homebrew, please install CocoaPods manually and try again',\n 'NO_CLI',\n error\n );\n }\n } catch (error: any) {\n throw new CocoaPodsError(\n 'Homebrew installation appeared to succeed but CocoaPods CLI not found in PATH and unable to link.',\n 'NO_CLI',\n error\n );\n }\n }\n\n !silent && console.log(`\\u203A Successfully installed CocoaPods CLI with Homebrew`);\n return true;\n } catch (error: any) {\n !silent &&\n console.warn(\n chalk.yellow(\n `\\u203A Failed to install CocoaPods with Homebrew. Please install CocoaPods CLI manually and try again.`\n )\n );\n throw new CocoaPodsError(\n `Failed to install CocoaPods with Homebrew. Please install CocoaPods CLI manually and try again.`,\n 'NO_CLI',\n error\n );\n }\n }\n }\n\n static isAvailable(projectRoot: string, silent: boolean): boolean {\n if (process.platform !== 'darwin') {\n !silent && console.log(chalk.red('CocoaPods is only supported on macOS machines'));\n return false;\n }\n if (!CocoaPodsPackageManager.isUsingPods(projectRoot)) {\n !silent && console.log(chalk.yellow('CocoaPods is not supported in this project'));\n return false;\n }\n return true;\n }\n\n static async isCLIInstalledAsync(\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<boolean> {\n try {\n await spawnAsync('pod', ['--version'], spawnOptions);\n return true;\n } catch {\n return false;\n }\n }\n\n constructor({ cwd, silent }: { cwd: string; silent?: boolean }) {\n this.silent = !!silent;\n this.options = {\n cwd,\n // We use pipe by default instead of inherit so that we can capture stderr/stdout and process it for errors.\n // Later we'll also pipe the stdout/stderr to the terminal when silent is false.\n stdio: 'pipe',\n };\n }\n\n get name() {\n return 'CocoaPods';\n }\n\n /** Runs `pod install` and attempts to automatically run known troubleshooting steps automatically. */\n async installAsync({ spinner }: { spinner?: Ora } = {}) {\n await this._installAsync({ spinner });\n }\n\n public isCLIInstalledAsync() {\n return CocoaPodsPackageManager.isCLIInstalledAsync(this.options);\n }\n\n public installCLIAsync() {\n return CocoaPodsPackageManager.installCLIAsync({\n nonInteractive: true,\n spawnOptions: this.options,\n });\n }\n\n async handleInstallErrorAsync({\n error,\n shouldUpdate = true,\n updatedPackages = [],\n spinner,\n }: {\n error: any;\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n }) {\n // Unknown errors are rethrown.\n if (!error.output) {\n throw error;\n }\n\n // To emulate a `pod install --repo-update` error, enter your `ios/Podfile.lock` and change one of `PODS` version numbers to some lower value.\n // const isPodRepoUpdateError = shouldPodRepoUpdate(output);\n if (!shouldUpdate) {\n // If we can't automatically fix the error, we'll just rethrow it with some known troubleshooting info.\n throw getImprovedPodInstallError(error, {\n cwd: this.options.cwd,\n });\n }\n\n // Collect all of the spawn info.\n const errorOutput = error.output.join(os.EOL).trim();\n\n // Extract useful information from the error message and push it to the spinner.\n const { updatePackage, shouldUpdateRepo } = getPodUpdateMessage(errorOutput);\n\n if (!updatePackage || updatedPackages.includes(updatePackage)) {\n // `pod install --repo-update`...\n // Attempt to install again but this time with install --repo-update enabled.\n return await this._installAsync({\n spinner,\n shouldRepoUpdate: true,\n // Include a boolean to ensure pod install --repo-update isn't invoked in the unlikely case where the pods fail to update.\n shouldUpdate: false,\n updatedPackages,\n });\n }\n // Store the package we should update to prevent a loop.\n updatedPackages.push(updatePackage);\n\n // If a single package is broken, we'll try to update it.\n // You can manually test this by changing a version number in your `Podfile.lock`.\n\n // Attempt `pod update <package> <--no-repo-update>` and then try again.\n return await this.runInstallTypeCommandAsync(\n ['update', updatePackage, shouldUpdateRepo ? '' : '--no-repo-update'].filter(Boolean),\n {\n formatWarning() {\n const updateMessage = `Failed to update ${chalk.bold(\n updatePackage\n )}. Attempting to update the repo instead.`;\n return updateMessage;\n },\n spinner,\n updatedPackages,\n }\n );\n // // If update succeeds, we'll try to install again (skipping `pod install --repo-update`).\n // return await this._installAsync({\n // spinner,\n // shouldUpdate: false,\n // updatedPackages,\n // });\n }\n\n private async _installAsync({\n shouldRepoUpdate,\n ...props\n }: {\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n shouldRepoUpdate?: boolean;\n } = {}): Promise<SpawnResult> {\n return await this.runInstallTypeCommandAsync(\n ['install', shouldRepoUpdate ? '--repo-update' : ''].filter(Boolean),\n {\n formatWarning(error: any) {\n // Extract useful information from the error message and push it to the spinner.\n return getPodRepoUpdateMessage(error.output.join(os.EOL).trim()).message;\n },\n ...props,\n }\n );\n }\n\n private async runInstallTypeCommandAsync(\n command: string[],\n {\n formatWarning,\n ...props\n }: {\n formatWarning?: (error: Error) => string;\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n } = {}\n ): Promise<SpawnResult> {\n try {\n return await this._runAsync(command);\n } catch (error: any) {\n if (formatWarning) {\n const warning = formatWarning(error);\n if (props.spinner) {\n props.spinner.text = chalk.bold(warning);\n }\n if (!this.silent) {\n console.warn(chalk.yellow(warning));\n }\n }\n\n return await this.handleInstallErrorAsync({ error, ...props });\n }\n }\n\n async addWithParametersAsync(names: string[], parameters: string[]) {\n throw new Error('Unimplemented');\n }\n\n async addAsync(...names: string[]) {\n throw new Error('Unimplemented');\n }\n\n async addDevAsync(...names: string[]) {\n throw new Error('Unimplemented');\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('pod', ['--version'], this.options);\n return stdout.trim();\n }\n\n async getConfigAsync(key: string): Promise<string> {\n throw new Error('Unimplemented');\n }\n\n async removeLockfileAsync() {\n throw new Error('Unimplemented');\n }\n\n async cleanAsync() {\n throw new Error('Unimplemented');\n }\n\n // Private\n private async podRepoUpdateAsync(): Promise<void> {\n try {\n await this._runAsync(['repo', 'update']);\n } catch (error: any) {\n error.message = error.message || (error.stderr ?? error.stdout);\n\n throw new CocoaPodsError(\n 'The command `pod install --repo-update` failed',\n 'COMMAND_FAILED',\n error\n );\n }\n }\n\n // Exposed for testing\n async _runAsync(args: string[]): Promise<SpawnResult> {\n if (!this.silent) {\n console.log(`> pod ${args.join(' ')}`);\n }\n const promise = spawnAsync(\n 'pod',\n [\n ...args,\n // Enables colors while collecting output.\n '--ansi',\n ],\n {\n // Add the cwd and other options to the spawn options.\n ...this.options,\n // We use pipe by default instead of inherit so that we can capture stderr/stdout and process it for errors.\n // This is particularly required for the `pod install --repo-update` error.\n\n // Later we'll also pipe the stdout/stderr to the terminal when silent is false,\n // currently this means we lose out on the ansi colors unless passing the `--ansi` flag to every command.\n stdio: 'pipe',\n }\n );\n\n if (!this.silent) {\n // If not silent, pipe the stdout/stderr to the terminal.\n // We only do this when the `stdio` is set to `pipe` (collect the results for parsing), `inherit` won't contain `promise.child`.\n if (promise.child.stdout) {\n promise.child.stdout.pipe(process.stdout);\n }\n }\n\n return await promise;\n }\n}\n\n/** When pods are outdated, they'll throw an error informing you to run \"pod install --repo-update\" */\nfunction shouldPodRepoUpdate(errorOutput: string) {\n const output = errorOutput;\n const isPodRepoUpdateError =\n output.includes('pod repo update') || output.includes('--no-repo-update');\n return isPodRepoUpdateError;\n}\n\nexport function getPodUpdateMessage(output: string) {\n const props = output.match(\n /run ['\"`]pod update ([\\w-_\\d/]+)( --no-repo-update)?['\"`] to apply changes/\n );\n\n return {\n updatePackage: props?.[1] ?? null,\n shouldUpdateRepo: !props?.[2],\n };\n}\n\nexport function getPodRepoUpdateMessage(errorOutput: string) {\n const warningInfo = extractMissingDependencyError(errorOutput);\n const brokenPackage = getPodUpdateMessage(errorOutput);\n\n let message: string;\n if (warningInfo) {\n message = `Couldn't install: ${warningInfo[1]} » ${chalk.underline(warningInfo[0])}.`;\n } else if (brokenPackage?.updatePackage) {\n message = `Couldn't install: ${brokenPackage?.updatePackage}.`;\n } else {\n message = `Couldn't install Pods.`;\n }\n message += ` Updating the Pods project and trying again...`;\n return { message, ...brokenPackage };\n}\n\n/**\n * Format the CocoaPods CLI install error.\n *\n * @param error Error from CocoaPods CLI `pod install` command.\n * @returns\n */\nexport function getImprovedPodInstallError(\n error: SpawnResult & Error,\n { cwd = process.cwd() }: { cwd?: string }\n): Error {\n // Collect all of the spawn info.\n const errorOutput = error.output.join(os.EOL).trim();\n\n if (error.stdout.match(/No [`'\"]Podfile[`'\"] found in the project directory/)) {\n // Ran pod install but no Podfile was found.\n error.message = `No Podfile found in directory: ${cwd}. Ensure CocoaPods is setup any try again.`;\n } else if (shouldPodRepoUpdate(errorOutput)) {\n // Ran pod install but the install --repo-update step failed.\n const warningInfo = extractMissingDependencyError(errorOutput);\n let reason: string;\n if (warningInfo) {\n reason = `Couldn't install: ${warningInfo[1]} » ${chalk.underline(warningInfo[0])}`;\n } else {\n reason = `This is often due to native package versions mismatching`;\n }\n\n // Attempt to provide a helpful message about the missing NPM dependency (containing a CocoaPod) since React Native\n // developers will almost always be using autolinking and not interacting with CocoaPods directly.\n let solution: string;\n if (warningInfo?.[0]) {\n // If the missing package is named `expo-dev-menu`, `react-native`, etc. then it might not be installed in the project.\n if (warningInfo[0].match(/^(?:@?expo|@?react)(-|\\/)/)) {\n solution = `Ensure the node module \"${warningInfo[0]}\" is installed in your project, then run 'npx pod-install' to try again.`;\n } else {\n solution = `Ensure the CocoaPod \"${warningInfo[0]}\" is installed in your project, then run 'npx pod-install' to try again.`;\n }\n } else {\n // Brute force\n solution = `Try deleting the 'ios/Pods' folder or the 'ios/Podfile.lock' file and running 'npx pod-install' to resolve.`;\n }\n error.message = `${reason}. ${solution}`;\n\n // Attempt to provide the troubleshooting info from CocoaPods CLI at the bottom of the error message.\n if (error.stdout) {\n const cocoapodsDebugInfo = error.stdout.split(os.EOL);\n // The troubleshooting info starts with `[!]`, capture everything after that.\n const firstWarning = cocoapodsDebugInfo.findIndex(v => v.startsWith('[!]'));\n if (firstWarning !== -1) {\n const warning = cocoapodsDebugInfo.slice(firstWarning).join(os.EOL);\n error.message += `\\n\\n${chalk.gray(warning)}`;\n }\n }\n return new CocoaPodsError(\n 'Command `pod install --repo-update` failed.',\n 'COMMAND_FAILED',\n error\n );\n } else {\n let stderr: string | null = error.stderr.trim();\n\n // CocoaPods CLI prints the useful error to stdout...\n const usefulError = error.stdout.match(/\\[!\\]\\s((?:.|\\n)*)/)?.[1];\n\n // If there is a useful error message then prune the less useful info.\n if (usefulError) {\n // Delete unhelpful CocoaPods CLI error message.\n if (error.message?.match(/pod exited with non-zero code: 1/)) {\n error.message = '';\n }\n stderr = null;\n }\n\n error.message = [usefulError, error.message, stderr].filter(Boolean).join('\\n');\n }\n\n return new CocoaPodsError('Command `pod install` failed.', 'COMMAND_FAILED', error);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CocoaPodsPackageManager.js","sourceRoot":"","sources":["../src/CocoaPodsPackageManager.ts"],"names":[],"mappings":"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","sourcesContent":["import spawnAsync, { SpawnOptions, SpawnResult } from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport { existsSync } from 'fs';\nimport { Ora } from 'ora';\nimport os from 'os';\nimport path from 'path';\n\nimport { PackageManager, spawnSudoAsync } from './PackageManager';\n\nexport type CocoaPodsErrorCode = 'NON_INTERACTIVE' | 'NO_CLI' | 'COMMAND_FAILED';\n\nexport class CocoaPodsError extends Error {\n readonly name = 'CocoaPodsError';\n readonly isPackageManagerError = true;\n\n constructor(message: string, public code: CocoaPodsErrorCode, public cause?: Error) {\n super(cause ? `${message}\\n└─ Cause: ${cause.message}` : message);\n }\n}\n\nexport function extractMissingDependencyError(errorOutput: string): [string, string] | null {\n // [!] Unable to find a specification for `expo-dev-menu-interface` depended upon by `expo-dev-launcher`\n const results = errorOutput.match(\n /Unable to find a specification for ['\"`]([\\w-_\\d\\s]+)['\"`] depended upon by ['\"`]([\\w-_\\d\\s]+)['\"`]/\n );\n if (results) {\n return [results[1], results[2]];\n }\n return null;\n}\n\nexport class CocoaPodsPackageManager implements PackageManager {\n options: SpawnOptions;\n\n private silent: boolean;\n\n static getPodProjectRoot(projectRoot: string): string | null {\n if (CocoaPodsPackageManager.isUsingPods(projectRoot)) return projectRoot;\n const iosProject = path.join(projectRoot, 'ios');\n if (CocoaPodsPackageManager.isUsingPods(iosProject)) return iosProject;\n const macOsProject = path.join(projectRoot, 'macos');\n if (CocoaPodsPackageManager.isUsingPods(macOsProject)) return macOsProject;\n return null;\n }\n\n static isUsingPods(projectRoot: string): boolean {\n return existsSync(path.join(projectRoot, 'Podfile'));\n }\n\n static async gemInstallCLIAsync(\n nonInteractive: boolean = false,\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<void> {\n const options = ['install', 'cocoapods', '--no-document'];\n\n try {\n // In case the user has run sudo before running the command we can properly install CocoaPods without prompting for an interaction.\n await spawnAsync('gem', options, spawnOptions);\n } catch (error: any) {\n if (nonInteractive) {\n throw new CocoaPodsError(\n 'Failed to install CocoaPods CLI with gem (recommended)',\n 'COMMAND_FAILED',\n error\n );\n }\n // If the user doesn't have permission then we can prompt them to use sudo.\n await spawnSudoAsync(['gem', ...options], spawnOptions);\n }\n }\n\n static async brewLinkCLIAsync(spawnOptions: SpawnOptions = { stdio: 'inherit' }): Promise<void> {\n await spawnAsync('brew', ['link', 'cocoapods'], spawnOptions);\n }\n\n static async brewInstallCLIAsync(\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<void> {\n await spawnAsync('brew', ['install', 'cocoapods'], spawnOptions);\n }\n\n static async installCLIAsync({\n nonInteractive = false,\n spawnOptions = { stdio: 'inherit' },\n }: {\n nonInteractive?: boolean;\n spawnOptions?: SpawnOptions;\n }): Promise<boolean> {\n if (!spawnOptions) {\n spawnOptions = { stdio: 'inherit' };\n }\n const silent = !!spawnOptions.ignoreStdio;\n\n try {\n !silent && console.log(`\\u203A Attempting to install CocoaPods CLI with Gem`);\n await CocoaPodsPackageManager.gemInstallCLIAsync(nonInteractive, spawnOptions);\n !silent && console.log(`\\u203A Successfully installed CocoaPods CLI with Gem`);\n return true;\n } catch (error: any) {\n if (!silent) {\n console.log(chalk.yellow(`\\u203A Failed to install CocoaPods CLI with Gem`));\n console.log(chalk.red(error.stderr ?? error.message));\n console.log(`\\u203A Attempting to install CocoaPods CLI with Homebrew`);\n }\n try {\n await CocoaPodsPackageManager.brewInstallCLIAsync(spawnOptions);\n if (!(await CocoaPodsPackageManager.isCLIInstalledAsync(spawnOptions))) {\n try {\n await CocoaPodsPackageManager.brewLinkCLIAsync(spawnOptions);\n // Still not available after linking? Bail out\n if (!(await CocoaPodsPackageManager.isCLIInstalledAsync(spawnOptions))) {\n throw new CocoaPodsError(\n 'CLI could not be installed automatically with gem or Homebrew, please install CocoaPods manually and try again',\n 'NO_CLI',\n error\n );\n }\n } catch (error: any) {\n throw new CocoaPodsError(\n 'Homebrew installation appeared to succeed but CocoaPods CLI not found in PATH and unable to link.',\n 'NO_CLI',\n error\n );\n }\n }\n\n !silent && console.log(`\\u203A Successfully installed CocoaPods CLI with Homebrew`);\n return true;\n } catch (error: any) {\n !silent &&\n console.warn(\n chalk.yellow(\n `\\u203A Failed to install CocoaPods with Homebrew. Please install CocoaPods CLI manually and try again.`\n )\n );\n throw new CocoaPodsError(\n `Failed to install CocoaPods with Homebrew. Please install CocoaPods CLI manually and try again.`,\n 'NO_CLI',\n error\n );\n }\n }\n }\n\n static isAvailable(projectRoot: string, silent: boolean): boolean {\n if (process.platform !== 'darwin') {\n !silent && console.log(chalk.red('CocoaPods is only supported on macOS machines'));\n return false;\n }\n if (!CocoaPodsPackageManager.isUsingPods(projectRoot)) {\n !silent && console.log(chalk.yellow('CocoaPods is not supported in this project'));\n return false;\n }\n return true;\n }\n\n static async isCLIInstalledAsync(\n spawnOptions: SpawnOptions = { stdio: 'inherit' }\n ): Promise<boolean> {\n try {\n await spawnAsync('pod', ['--version'], spawnOptions);\n return true;\n } catch {\n return false;\n }\n }\n\n constructor({ cwd, silent }: { cwd: string; silent?: boolean }) {\n this.silent = !!silent;\n this.options = {\n cwd,\n // We use pipe by default instead of inherit so that we can capture stderr/stdout and process it for errors.\n // Later we'll also pipe the stdout/stderr to the terminal when silent is false.\n stdio: 'pipe',\n };\n }\n\n get name() {\n return 'CocoaPods';\n }\n\n /** Runs `pod install` and attempts to automatically run known troubleshooting steps automatically. */\n async installAsync({ spinner }: { spinner?: Ora } = {}) {\n await this._installAsync({ spinner });\n }\n\n public isCLIInstalledAsync() {\n return CocoaPodsPackageManager.isCLIInstalledAsync(this.options);\n }\n\n public installCLIAsync() {\n return CocoaPodsPackageManager.installCLIAsync({\n nonInteractive: true,\n spawnOptions: this.options,\n });\n }\n\n async handleInstallErrorAsync({\n error,\n shouldUpdate = true,\n updatedPackages = [],\n spinner,\n }: {\n error: any;\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n }) {\n // Unknown errors are rethrown.\n if (!error.output) {\n throw error;\n }\n\n // To emulate a `pod install --repo-update` error, enter your `ios/Podfile.lock` and change one of `PODS` version numbers to some lower value.\n // const isPodRepoUpdateError = shouldPodRepoUpdate(output);\n if (!shouldUpdate) {\n // If we can't automatically fix the error, we'll just rethrow it with some known troubleshooting info.\n throw getImprovedPodInstallError(error, {\n cwd: this.options.cwd,\n });\n }\n\n // Collect all of the spawn info.\n const errorOutput = error.output.join(os.EOL).trim();\n\n // Extract useful information from the error message and push it to the spinner.\n const { updatePackage, shouldUpdateRepo } = getPodUpdateMessage(errorOutput);\n\n if (!updatePackage || updatedPackages.includes(updatePackage)) {\n // `pod install --repo-update`...\n // Attempt to install again but this time with install --repo-update enabled.\n return await this._installAsync({\n spinner,\n shouldRepoUpdate: true,\n // Include a boolean to ensure pod install --repo-update isn't invoked in the unlikely case where the pods fail to update.\n shouldUpdate: false,\n updatedPackages,\n });\n }\n // Store the package we should update to prevent a loop.\n updatedPackages.push(updatePackage);\n\n // If a single package is broken, we'll try to update it.\n // You can manually test this by changing a version number in your `Podfile.lock`.\n\n // Attempt `pod update <package> <--no-repo-update>` and then try again.\n return await this.runInstallTypeCommandAsync(\n ['update', updatePackage, shouldUpdateRepo ? '' : '--no-repo-update'].filter(Boolean),\n {\n formatWarning() {\n const updateMessage = `Failed to update ${chalk.bold(\n updatePackage\n )}. Attempting to update the repo instead.`;\n return updateMessage;\n },\n spinner,\n updatedPackages,\n }\n );\n // // If update succeeds, we'll try to install again (skipping `pod install --repo-update`).\n // return await this._installAsync({\n // spinner,\n // shouldUpdate: false,\n // updatedPackages,\n // });\n }\n\n private async _installAsync({\n shouldRepoUpdate,\n ...props\n }: {\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n shouldRepoUpdate?: boolean;\n } = {}): Promise<SpawnResult> {\n return await this.runInstallTypeCommandAsync(\n ['install', shouldRepoUpdate ? '--repo-update' : ''].filter(Boolean),\n {\n formatWarning(error: any) {\n // Extract useful information from the error message and push it to the spinner.\n return getPodRepoUpdateMessage(error.output.join(os.EOL).trim()).message;\n },\n ...props,\n }\n );\n }\n\n private async runInstallTypeCommandAsync(\n command: string[],\n {\n formatWarning,\n ...props\n }: {\n formatWarning?: (error: Error) => string;\n spinner?: Ora;\n shouldUpdate?: boolean;\n updatedPackages?: string[];\n } = {}\n ): Promise<SpawnResult> {\n try {\n return await this._runAsync(command);\n } catch (error: any) {\n if (formatWarning) {\n const warning = formatWarning(error);\n if (props.spinner) {\n props.spinner.text = chalk.bold(warning);\n }\n if (!this.silent) {\n console.warn(chalk.yellow(warning));\n }\n }\n\n return await this.handleInstallErrorAsync({ error, ...props });\n }\n }\n\n async addWithParametersAsync(names: string[], parameters: string[]) {\n throw new Error('Unimplemented');\n }\n\n async addAsync(...names: string[]) {\n throw new Error('Unimplemented');\n }\n\n async addDevAsync(...names: string[]) {\n throw new Error('Unimplemented');\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('pod', ['--version'], this.options);\n return stdout.trim();\n }\n\n async getConfigAsync(key: string): Promise<string> {\n throw new Error('Unimplemented');\n }\n\n async removeLockfileAsync() {\n throw new Error('Unimplemented');\n }\n\n async cleanAsync() {\n throw new Error('Unimplemented');\n }\n\n // Private\n private async podRepoUpdateAsync(): Promise<void> {\n try {\n await this._runAsync(['repo', 'update']);\n } catch (error: any) {\n error.message = error.message || (error.stderr ?? error.stdout);\n\n throw new CocoaPodsError(\n 'The command `pod install --repo-update` failed',\n 'COMMAND_FAILED',\n error\n );\n }\n }\n\n // Exposed for testing\n async _runAsync(args: string[]): Promise<SpawnResult> {\n if (!this.silent) {\n console.log(`> pod ${args.join(' ')}`);\n }\n const promise = spawnAsync(\n 'pod',\n [\n ...args,\n // Enables colors while collecting output.\n '--ansi',\n ],\n {\n // Add the cwd and other options to the spawn options.\n ...this.options,\n // We use pipe by default instead of inherit so that we can capture stderr/stdout and process it for errors.\n // This is particularly required for the `pod install --repo-update` error.\n\n // Later we'll also pipe the stdout/stderr to the terminal when silent is false,\n // currently this means we lose out on the ansi colors unless passing the `--ansi` flag to every command.\n stdio: 'pipe',\n }\n );\n\n if (!this.silent) {\n // If not silent, pipe the stdout/stderr to the terminal.\n // We only do this when the `stdio` is set to `pipe` (collect the results for parsing), `inherit` won't contain `promise.child`.\n if (promise.child.stdout) {\n promise.child.stdout.pipe(process.stdout);\n }\n }\n\n return await promise;\n }\n}\n\n/** When pods are outdated, they'll throw an error informing you to run \"pod install --repo-update\" */\nfunction shouldPodRepoUpdate(errorOutput: string) {\n const output = errorOutput;\n const isPodRepoUpdateError =\n output.includes('pod repo update') || output.includes('--no-repo-update');\n return isPodRepoUpdateError;\n}\n\nexport function getPodUpdateMessage(output: string) {\n const props = output.match(\n /run ['\"`]pod update ([\\w-_\\d/]+)( --no-repo-update)?['\"`] to apply changes/\n );\n\n return {\n updatePackage: props?.[1] ?? null,\n shouldUpdateRepo: !props?.[2],\n };\n}\n\nexport function getPodRepoUpdateMessage(errorOutput: string) {\n const warningInfo = extractMissingDependencyError(errorOutput);\n const brokenPackage = getPodUpdateMessage(errorOutput);\n\n let message: string;\n if (warningInfo) {\n message = `Couldn't install: ${warningInfo[1]} » ${chalk.underline(warningInfo[0])}.`;\n } else if (brokenPackage?.updatePackage) {\n message = `Couldn't install: ${brokenPackage?.updatePackage}.`;\n } else {\n message = `Couldn't install Pods.`;\n }\n message += ` Updating the Pods project and trying again...`;\n return { message, ...brokenPackage };\n}\n\n/**\n * Format the CocoaPods CLI install error.\n *\n * @param error Error from CocoaPods CLI `pod install` command.\n * @returns\n */\nexport function getImprovedPodInstallError(\n error: SpawnResult & Error,\n { cwd = process.cwd() }: { cwd?: string }\n): Error {\n // Collect all of the spawn info.\n const errorOutput = error.output.join(os.EOL).trim();\n\n if (error.stdout.match(/No [`'\"]Podfile[`'\"] found in the project directory/)) {\n // Ran pod install but no Podfile was found.\n error.message = `No Podfile found in directory: ${cwd}. Ensure CocoaPods is setup any try again.`;\n } else if (shouldPodRepoUpdate(errorOutput)) {\n // Ran pod install but the install --repo-update step failed.\n const warningInfo = extractMissingDependencyError(errorOutput);\n let reason: string;\n if (warningInfo) {\n reason = `Couldn't install: ${warningInfo[1]} » ${chalk.underline(warningInfo[0])}`;\n } else {\n reason = `This is often due to native package versions mismatching`;\n }\n\n // Attempt to provide a helpful message about the missing NPM dependency (containing a CocoaPod) since React Native\n // developers will almost always be using autolinking and not interacting with CocoaPods directly.\n let solution: string;\n if (warningInfo?.[0]) {\n // If the missing package is named `expo-dev-menu`, `react-native`, etc. then it might not be installed in the project.\n if (warningInfo[0].match(/^(?:@?expo|@?react)(-|\\/)/)) {\n solution = `Ensure the node module \"${warningInfo[0]}\" is installed in your project, then run 'npx pod-install' to try again.`;\n } else {\n solution = `Ensure the CocoaPod \"${warningInfo[0]}\" is installed in your project, then run 'npx pod-install' to try again.`;\n }\n } else {\n // Brute force\n solution = `Try deleting the 'ios/Pods' folder or the 'ios/Podfile.lock' file and running 'npx pod-install' to resolve.`;\n }\n error.message = `${reason}. ${solution}`;\n\n // Attempt to provide the troubleshooting info from CocoaPods CLI at the bottom of the error message.\n if (error.stdout) {\n const cocoapodsDebugInfo = error.stdout.split(os.EOL);\n // The troubleshooting info starts with `[!]`, capture everything after that.\n const firstWarning = cocoapodsDebugInfo.findIndex(v => v.startsWith('[!]'));\n if (firstWarning !== -1) {\n const warning = cocoapodsDebugInfo.slice(firstWarning).join(os.EOL);\n error.message += `\\n\\n${chalk.gray(warning)}`;\n }\n }\n return new CocoaPodsError(\n 'Command `pod install --repo-update` failed.',\n 'COMMAND_FAILED',\n error\n );\n } else {\n let stderr: string | null = error.stderr.trim();\n\n // CocoaPods CLI prints the useful error to stdout...\n const usefulError = error.stdout.match(/\\[!\\]\\s((?:.|\\n)*)/)?.[1];\n\n // If there is a useful error message then prune the less useful info.\n if (usefulError) {\n // Delete unhelpful CocoaPods CLI error message.\n if (error.message?.match(/pod exited with non-zero code: 1/)) {\n error.message = '';\n }\n stderr = null;\n }\n\n error.message = [usefulError, error.message, stderr].filter(Boolean).join('\\n');\n }\n\n return new CocoaPodsError('Command `pod install` failed.', 'COMMAND_FAILED', error);\n}\n"]}
|
|
@@ -20,7 +20,7 @@ const isYarnOfflineAsync_1 = __importDefault(require("./utils/isYarnOfflineAsync
|
|
|
20
20
|
* - https://github.com/opencollective/opencollective-postinstall/pull/9
|
|
21
21
|
*/
|
|
22
22
|
const disableAdsEnv = { DISABLE_OPENCOLLECTIVE: '1', ADBLOCK: '1' };
|
|
23
|
-
const ansi = `(?:${ansi_regex_1.default().source})*`;
|
|
23
|
+
const ansi = `(?:${(0, ansi_regex_1.default)().source})*`;
|
|
24
24
|
const npmPeerDependencyWarningPattern = new RegExp(`${ansi}npm${ansi} ${ansi}WARN${ansi}.+You must install peer dependencies yourself\\.\n`, 'g');
|
|
25
25
|
const yarnPeerDependencyWarningPattern = new RegExp(`${ansi}warning${ansi} "[^"]+" has (?:unmet|incorrect) peer dependency "[^"]+"\\.\n`, 'g');
|
|
26
26
|
/**
|
|
@@ -29,11 +29,11 @@ const yarnPeerDependencyWarningPattern = new RegExp(`${ansi}warning${ansi} "[^"]
|
|
|
29
29
|
* @param projectRoot
|
|
30
30
|
*/
|
|
31
31
|
function isUsingYarn(projectRoot) {
|
|
32
|
-
const workspaceRoot = find_yarn_workspace_root_1.default(projectRoot);
|
|
32
|
+
const workspaceRoot = (0, find_yarn_workspace_root_1.default)(projectRoot);
|
|
33
33
|
if (workspaceRoot) {
|
|
34
|
-
return fs_1.existsSync(path_1.default.join(workspaceRoot, 'yarn.lock'));
|
|
34
|
+
return (0, fs_1.existsSync)(path_1.default.join(workspaceRoot, 'yarn.lock'));
|
|
35
35
|
}
|
|
36
|
-
return fs_1.existsSync(path_1.default.join(projectRoot, 'yarn.lock'));
|
|
36
|
+
return (0, fs_1.existsSync)(path_1.default.join(projectRoot, 'yarn.lock'));
|
|
37
37
|
}
|
|
38
38
|
exports.isUsingYarn = isUsingYarn;
|
|
39
39
|
class NpmStderrTransform extends stream_1.Transform {
|
|
@@ -111,11 +111,11 @@ class NpmPackageManager {
|
|
|
111
111
|
await this._runAsync(['uninstall', ...names]);
|
|
112
112
|
}
|
|
113
113
|
async versionAsync() {
|
|
114
|
-
const { stdout } = await spawn_async_1.default('npm', ['--version'], { stdio: 'pipe' });
|
|
114
|
+
const { stdout } = await (0, spawn_async_1.default)('npm', ['--version'], { stdio: 'pipe' });
|
|
115
115
|
return stdout.trim();
|
|
116
116
|
}
|
|
117
117
|
async getConfigAsync(key) {
|
|
118
|
-
const { stdout } = await spawn_async_1.default('npm', ['config', 'get', key], { stdio: 'pipe' });
|
|
118
|
+
const { stdout } = await (0, spawn_async_1.default)('npm', ['config', 'get', key], { stdio: 'pipe' });
|
|
119
119
|
return stdout.trim();
|
|
120
120
|
}
|
|
121
121
|
async removeLockfileAsync() {
|
|
@@ -123,7 +123,7 @@ class NpmPackageManager {
|
|
|
123
123
|
throw new Error('cwd required for NpmPackageManager.removeLockfileAsync');
|
|
124
124
|
}
|
|
125
125
|
const lockfilePath = path_1.default.join(this.options.cwd, 'package-lock.json');
|
|
126
|
-
if (fs_1.existsSync(lockfilePath)) {
|
|
126
|
+
if ((0, fs_1.existsSync)(lockfilePath)) {
|
|
127
127
|
rimraf_1.default.sync(lockfilePath);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -132,7 +132,7 @@ class NpmPackageManager {
|
|
|
132
132
|
throw new Error('cwd required for NpmPackageManager.cleanAsync');
|
|
133
133
|
}
|
|
134
134
|
const nodeModulesPath = path_1.default.join(this.options.cwd, 'node_modules');
|
|
135
|
-
if (fs_1.existsSync(nodeModulesPath)) {
|
|
135
|
+
if ((0, fs_1.existsSync)(nodeModulesPath)) {
|
|
136
136
|
rimraf_1.default.sync(nodeModulesPath);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
@@ -142,10 +142,10 @@ class NpmPackageManager {
|
|
|
142
142
|
this.log(`> npm ${args.join(' ')}`);
|
|
143
143
|
}
|
|
144
144
|
// Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored
|
|
145
|
-
const promise = spawn_async_1.default('npm', [...args], { ...this.options, ignoreStdio: false });
|
|
145
|
+
const promise = (0, spawn_async_1.default)('npm', [...args], { ...this.options, ignoreStdio: false });
|
|
146
146
|
if (promise.child.stderr && !this.options.ignoreStdio) {
|
|
147
147
|
promise.child.stderr
|
|
148
|
-
.pipe(split_1.default(/\r?\n/, (line) => line + '\n'))
|
|
148
|
+
.pipe((0, split_1.default)(/\r?\n/, (line) => line + '\n'))
|
|
149
149
|
.pipe(new NpmStderrTransform())
|
|
150
150
|
.pipe(process.stderr);
|
|
151
151
|
}
|
|
@@ -154,7 +154,7 @@ class NpmPackageManager {
|
|
|
154
154
|
_parseSpecs(names) {
|
|
155
155
|
const result = { versioned: [], unversioned: [] };
|
|
156
156
|
names
|
|
157
|
-
.map(name => npm_package_arg_1.default(name))
|
|
157
|
+
.map(name => (0, npm_package_arg_1.default)(name))
|
|
158
158
|
.forEach(spec => {
|
|
159
159
|
if (spec.rawSpec) {
|
|
160
160
|
result.versioned.push(spec);
|
|
@@ -197,7 +197,7 @@ class YarnPackageManager {
|
|
|
197
197
|
return 'Yarn';
|
|
198
198
|
}
|
|
199
199
|
async withOfflineSupportAsync(...args) {
|
|
200
|
-
if (await isYarnOfflineAsync_1.default()) {
|
|
200
|
+
if (await (0, isYarnOfflineAsync_1.default)()) {
|
|
201
201
|
args.push('--offline');
|
|
202
202
|
}
|
|
203
203
|
// TODO: Maybe prompt about being offline and using local yarn cache.
|
|
@@ -236,11 +236,11 @@ class YarnPackageManager {
|
|
|
236
236
|
await this._runAsync(['remove', ...names]);
|
|
237
237
|
}
|
|
238
238
|
async versionAsync() {
|
|
239
|
-
const { stdout } = await spawn_async_1.default('yarnpkg', ['--version'], { stdio: 'pipe' });
|
|
239
|
+
const { stdout } = await (0, spawn_async_1.default)('yarnpkg', ['--version'], { stdio: 'pipe' });
|
|
240
240
|
return stdout.trim();
|
|
241
241
|
}
|
|
242
242
|
async getConfigAsync(key) {
|
|
243
|
-
const { stdout } = await spawn_async_1.default('yarnpkg', ['config', 'get', key], { stdio: 'pipe' });
|
|
243
|
+
const { stdout } = await (0, spawn_async_1.default)('yarnpkg', ['config', 'get', key], { stdio: 'pipe' });
|
|
244
244
|
return stdout.trim();
|
|
245
245
|
}
|
|
246
246
|
async removeLockfileAsync() {
|
|
@@ -248,7 +248,7 @@ class YarnPackageManager {
|
|
|
248
248
|
throw new Error('cwd required for YarnPackageManager.removeLockfileAsync');
|
|
249
249
|
}
|
|
250
250
|
const lockfilePath = path_1.default.join(this.options.cwd, 'yarn-lock.json');
|
|
251
|
-
if (fs_1.existsSync(lockfilePath)) {
|
|
251
|
+
if ((0, fs_1.existsSync)(lockfilePath)) {
|
|
252
252
|
rimraf_1.default.sync(lockfilePath);
|
|
253
253
|
}
|
|
254
254
|
}
|
|
@@ -257,7 +257,7 @@ class YarnPackageManager {
|
|
|
257
257
|
throw new Error('cwd required for YarnPackageManager.cleanAsync');
|
|
258
258
|
}
|
|
259
259
|
const nodeModulesPath = path_1.default.join(this.options.cwd, 'node_modules');
|
|
260
|
-
if (fs_1.existsSync(nodeModulesPath)) {
|
|
260
|
+
if ((0, fs_1.existsSync)(nodeModulesPath)) {
|
|
261
261
|
rimraf_1.default.sync(nodeModulesPath);
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -267,7 +267,7 @@ class YarnPackageManager {
|
|
|
267
267
|
this.log(`> yarn ${args.join(' ')}`);
|
|
268
268
|
}
|
|
269
269
|
// Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored
|
|
270
|
-
const promise = spawn_async_1.default('yarnpkg', args, { ...this.options, ignoreStdio: false });
|
|
270
|
+
const promise = (0, spawn_async_1.default)('yarnpkg', args, { ...this.options, ignoreStdio: false });
|
|
271
271
|
if (promise.child.stderr && !this.options.ignoreStdio) {
|
|
272
272
|
promise.child.stderr.pipe(new YarnStderrTransform()).pipe(process.stderr);
|
|
273
273
|
}
|
|
@@ -293,7 +293,7 @@ function createForProject(projectRoot, options = {}) {
|
|
|
293
293
|
}
|
|
294
294
|
exports.createForProject = createForProject;
|
|
295
295
|
function getModulesPath(projectRoot) {
|
|
296
|
-
const workspaceRoot = find_yarn_workspace_root_1.default(path_1.default.resolve(projectRoot)); // Absolute path or null
|
|
296
|
+
const workspaceRoot = (0, find_yarn_workspace_root_1.default)(path_1.default.resolve(projectRoot)); // Absolute path or null
|
|
297
297
|
if (workspaceRoot) {
|
|
298
298
|
return path_1.default.resolve(workspaceRoot, 'node_modules');
|
|
299
299
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodePackageManagers.js","sourceRoot":"","sources":["../src/NodePackageManagers.ts"],"names":[],"mappings":"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","sourcesContent":["import JsonFile from '@expo/json-file';\nimport spawnAsync, { SpawnOptions } from '@expo/spawn-async';\nimport ansiRegex from 'ansi-regex';\nimport findWorkspaceRoot from 'find-yarn-workspace-root';\nimport { existsSync } from 'fs';\nimport npmPackageArg from 'npm-package-arg';\nimport path from 'path';\nimport rimraf from 'rimraf';\nimport split from 'split';\nimport { Transform } from 'stream';\n\nimport { Logger, PackageManager } from './PackageManager';\nimport isYarnOfflineAsync from './utils/isYarnOfflineAsync';\n\n/**\n * Disable various postinstall scripts\n * - https://github.com/opencollective/opencollective-postinstall/pull/9\n */\nconst disableAdsEnv = { DISABLE_OPENCOLLECTIVE: '1', ADBLOCK: '1' };\n\nconst ansi = `(?:${ansiRegex().source})*`;\nconst npmPeerDependencyWarningPattern = new RegExp(\n `${ansi}npm${ansi} ${ansi}WARN${ansi}.+You must install peer dependencies yourself\\\\.\\n`,\n 'g'\n);\nconst yarnPeerDependencyWarningPattern = new RegExp(\n `${ansi}warning${ansi} \"[^\"]+\" has (?:unmet|incorrect) peer dependency \"[^\"]+\"\\\\.\\n`,\n 'g'\n);\n\n/**\n * Returns true if the project is using yarn, false if the project is using npm.\n *\n * @param projectRoot\n */\nexport function isUsingYarn(projectRoot: string): boolean {\n const workspaceRoot = findWorkspaceRoot(projectRoot);\n if (workspaceRoot) {\n return existsSync(path.join(workspaceRoot, 'yarn.lock'));\n }\n return existsSync(path.join(projectRoot, 'yarn.lock'));\n}\n\nclass NpmStderrTransform extends Transform {\n _transform(\n chunk: Buffer,\n encoding: string,\n callback: (error?: Error | null, data?: any) => void\n ) {\n this.push(chunk.toString().replace(npmPeerDependencyWarningPattern, ''));\n callback();\n }\n}\n\nclass YarnStderrTransform extends Transform {\n _transform(\n chunk: Buffer,\n encoding: string,\n callback: (error?: Error | null, data?: any) => void\n ) {\n this.push(chunk.toString().replace(yarnPeerDependencyWarningPattern, ''));\n callback();\n }\n}\nexport class NpmPackageManager implements PackageManager {\n options: SpawnOptions;\n\n private log: Logger;\n\n constructor({ cwd, log, silent }: { cwd: string; log?: Logger; silent?: boolean }) {\n this.log = log || console.log;\n this.options = {\n env: {\n ...process.env,\n ...disableAdsEnv,\n },\n cwd,\n ...(silent\n ? { ignoreStdio: true }\n : {\n stdio: ['inherit', 'inherit', 'pipe'],\n }),\n };\n }\n\n get name() {\n return 'npm';\n }\n\n async installAsync(parameters: string[] = []) {\n await this._runAsync(['install', ...parameters]);\n }\n\n async addGlobalAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n await this._runAsync(['install', '--global', ...names]);\n }\n\n async addWithParametersAsync(names: string[], parameters: string[] = []) {\n if (!names.length) return this.installAsync(parameters);\n\n const { versioned, unversioned } = this._parseSpecs(names);\n if (versioned.length) {\n await this._patchAsync(versioned, 'dependencies');\n await this.installAsync(parameters);\n }\n if (unversioned.length) {\n await this._runAsync([\n 'install',\n '--save',\n ...unversioned.map(spec => spec.raw),\n ...parameters,\n ]);\n }\n }\n\n async addAsync(...names: string[]) {\n await this.addWithParametersAsync(names, []);\n }\n\n async addDevAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n\n const { versioned, unversioned } = this._parseSpecs(names);\n if (versioned.length) {\n await this._patchAsync(versioned, 'devDependencies');\n await this._runAsync(['install']);\n }\n if (unversioned.length) {\n await this._runAsync(['install', '--save-dev', ...unversioned.map(spec => spec.raw)]);\n }\n }\n\n async removeAsync(...names: string[]) {\n await this._runAsync(['uninstall', ...names]);\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('npm', ['--version'], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async getConfigAsync(key: string) {\n const { stdout } = await spawnAsync('npm', ['config', 'get', key], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async removeLockfileAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for NpmPackageManager.removeLockfileAsync');\n }\n const lockfilePath = path.join(this.options.cwd, 'package-lock.json');\n if (existsSync(lockfilePath)) {\n rimraf.sync(lockfilePath);\n }\n }\n\n async cleanAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for NpmPackageManager.cleanAsync');\n }\n const nodeModulesPath = path.join(this.options.cwd, 'node_modules');\n if (existsSync(nodeModulesPath)) {\n rimraf.sync(nodeModulesPath);\n }\n }\n\n // Private\n private async _runAsync(args: string[]) {\n if (!this.options.ignoreStdio) {\n this.log(`> npm ${args.join(' ')}`);\n }\n\n // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored\n const promise = spawnAsync('npm', [...args], { ...this.options, ignoreStdio: false });\n if (promise.child.stderr && !this.options.ignoreStdio) {\n promise.child.stderr\n .pipe(split(/\\r?\\n/, (line: string) => line + '\\n'))\n .pipe(new NpmStderrTransform())\n .pipe(process.stderr);\n }\n return promise;\n }\n\n private _parseSpecs(names: string[]) {\n const result: {\n versioned: npmPackageArg.Result[];\n unversioned: npmPackageArg.Result[];\n } = { versioned: [], unversioned: [] };\n names\n .map(name => npmPackageArg(name))\n .forEach(spec => {\n if (spec.rawSpec) {\n result.versioned.push(spec);\n } else {\n result.unversioned.push(spec);\n }\n });\n return result;\n }\n\n private async _patchAsync(\n specs: npmPackageArg.Result[],\n packageType: 'dependencies' | 'devDependencies'\n ) {\n const pkgPath = path.join(this.options.cwd || '.', 'package.json');\n const pkg = await JsonFile.readAsync(pkgPath);\n specs.forEach(spec => {\n pkg[packageType] = pkg[packageType] || {};\n // @ts-ignore\n pkg[packageType][spec.name!] = spec.rawSpec;\n });\n await JsonFile.writeAsync(pkgPath, pkg, { json5: false });\n }\n}\n\nexport class YarnPackageManager implements PackageManager {\n options: SpawnOptions;\n private log: Logger;\n\n constructor({ cwd, log, silent }: { cwd: string; log?: Logger; silent?: boolean }) {\n this.log = log || console.log;\n this.options = {\n env: {\n ...process.env,\n ...disableAdsEnv,\n },\n cwd,\n ...(silent\n ? { ignoreStdio: true }\n : {\n stdio: ['inherit', 'inherit', 'pipe'],\n }),\n };\n }\n\n get name() {\n return 'Yarn';\n }\n\n private async withOfflineSupportAsync(...args: string[]): Promise<string[]> {\n if (await isYarnOfflineAsync()) {\n args.push('--offline');\n }\n // TODO: Maybe prompt about being offline and using local yarn cache.\n return args;\n }\n\n async installAsync() {\n const args = await this.withOfflineSupportAsync('install');\n await this._runAsync(args);\n }\n\n async addGlobalAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('global', 'add');\n args.push(...names);\n\n await this._runAsync(args);\n }\n\n async addWithParametersAsync(names: string[], parameters: string[] = []) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('add');\n args.push(...names);\n args.push(...parameters);\n\n await this._runAsync(args);\n }\n\n async addAsync(...names: string[]) {\n await this.addWithParametersAsync(names, []);\n }\n\n async addDevAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('add', '--dev');\n args.push(...names);\n await this._runAsync(args);\n }\n\n async removeAsync(...names: string[]) {\n await this._runAsync(['remove', ...names]);\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('yarnpkg', ['--version'], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async getConfigAsync(key: string) {\n const { stdout } = await spawnAsync('yarnpkg', ['config', 'get', key], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async removeLockfileAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for YarnPackageManager.removeLockfileAsync');\n }\n const lockfilePath = path.join(this.options.cwd, 'yarn-lock.json');\n if (existsSync(lockfilePath)) {\n rimraf.sync(lockfilePath);\n }\n }\n\n async cleanAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for YarnPackageManager.cleanAsync');\n }\n const nodeModulesPath = path.join(this.options.cwd, 'node_modules');\n if (existsSync(nodeModulesPath)) {\n rimraf.sync(nodeModulesPath);\n }\n }\n\n // Private\n private async _runAsync(args: string[]) {\n if (!this.options.ignoreStdio) {\n this.log(`> yarn ${args.join(' ')}`);\n }\n\n // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored\n const promise = spawnAsync('yarnpkg', args, { ...this.options, ignoreStdio: false });\n if (promise.child.stderr && !this.options.ignoreStdio) {\n promise.child.stderr.pipe(new YarnStderrTransform()).pipe(process.stderr);\n }\n return promise;\n }\n}\n\nexport type CreateForProjectOptions = {\n npm?: boolean;\n yarn?: boolean;\n log?: Logger;\n silent?: boolean;\n};\n\nexport function createForProject(\n projectRoot: string,\n options: CreateForProjectOptions = {}\n): NpmPackageManager | YarnPackageManager {\n let PackageManager;\n if (options.npm) {\n PackageManager = NpmPackageManager;\n } else if (options.yarn) {\n PackageManager = YarnPackageManager;\n } else if (isUsingYarn(projectRoot)) {\n PackageManager = YarnPackageManager;\n } else {\n PackageManager = NpmPackageManager;\n }\n\n return new PackageManager({ cwd: projectRoot, log: options.log, silent: options.silent });\n}\n\nexport function getModulesPath(projectRoot: string): string {\n const workspaceRoot = findWorkspaceRoot(path.resolve(projectRoot)); // Absolute path or null\n if (workspaceRoot) {\n return path.resolve(workspaceRoot, 'node_modules');\n }\n\n return path.resolve(projectRoot, 'node_modules');\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NodePackageManagers.js","sourceRoot":"","sources":["../src/NodePackageManagers.ts"],"names":[],"mappings":"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","sourcesContent":["import JsonFile from '@expo/json-file';\nimport spawnAsync, { SpawnOptions } from '@expo/spawn-async';\nimport ansiRegex from 'ansi-regex';\nimport findWorkspaceRoot from 'find-yarn-workspace-root';\nimport { existsSync } from 'fs';\nimport npmPackageArg from 'npm-package-arg';\nimport path from 'path';\nimport rimraf from 'rimraf';\nimport split from 'split';\nimport { Transform } from 'stream';\n\nimport { Logger, PackageManager } from './PackageManager';\nimport isYarnOfflineAsync from './utils/isYarnOfflineAsync';\n\n/**\n * Disable various postinstall scripts\n * - https://github.com/opencollective/opencollective-postinstall/pull/9\n */\nconst disableAdsEnv = { DISABLE_OPENCOLLECTIVE: '1', ADBLOCK: '1' };\n\nconst ansi = `(?:${ansiRegex().source})*`;\nconst npmPeerDependencyWarningPattern = new RegExp(\n `${ansi}npm${ansi} ${ansi}WARN${ansi}.+You must install peer dependencies yourself\\\\.\\n`,\n 'g'\n);\nconst yarnPeerDependencyWarningPattern = new RegExp(\n `${ansi}warning${ansi} \"[^\"]+\" has (?:unmet|incorrect) peer dependency \"[^\"]+\"\\\\.\\n`,\n 'g'\n);\n\n/**\n * Returns true if the project is using yarn, false if the project is using npm.\n *\n * @param projectRoot\n */\nexport function isUsingYarn(projectRoot: string): boolean {\n const workspaceRoot = findWorkspaceRoot(projectRoot);\n if (workspaceRoot) {\n return existsSync(path.join(workspaceRoot, 'yarn.lock'));\n }\n return existsSync(path.join(projectRoot, 'yarn.lock'));\n}\n\nclass NpmStderrTransform extends Transform {\n _transform(\n chunk: Buffer,\n encoding: string,\n callback: (error?: Error | null, data?: any) => void\n ) {\n this.push(chunk.toString().replace(npmPeerDependencyWarningPattern, ''));\n callback();\n }\n}\n\nclass YarnStderrTransform extends Transform {\n _transform(\n chunk: Buffer,\n encoding: string,\n callback: (error?: Error | null, data?: any) => void\n ) {\n this.push(chunk.toString().replace(yarnPeerDependencyWarningPattern, ''));\n callback();\n }\n}\nexport class NpmPackageManager implements PackageManager {\n options: SpawnOptions;\n\n private log: Logger;\n\n constructor({ cwd, log, silent }: { cwd: string; log?: Logger; silent?: boolean }) {\n this.log = log || console.log;\n this.options = {\n env: {\n ...process.env,\n ...disableAdsEnv,\n },\n cwd,\n ...(silent\n ? { ignoreStdio: true }\n : {\n stdio: ['inherit', 'inherit', 'pipe'],\n }),\n };\n }\n\n get name() {\n return 'npm';\n }\n\n async installAsync(parameters: string[] = []) {\n await this._runAsync(['install', ...parameters]);\n }\n\n async addGlobalAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n await this._runAsync(['install', '--global', ...names]);\n }\n\n async addWithParametersAsync(names: string[], parameters: string[] = []) {\n if (!names.length) return this.installAsync(parameters);\n\n const { versioned, unversioned } = this._parseSpecs(names);\n if (versioned.length) {\n await this._patchAsync(versioned, 'dependencies');\n await this.installAsync(parameters);\n }\n if (unversioned.length) {\n await this._runAsync([\n 'install',\n '--save',\n ...unversioned.map(spec => spec.raw),\n ...parameters,\n ]);\n }\n }\n\n async addAsync(...names: string[]) {\n await this.addWithParametersAsync(names, []);\n }\n\n async addDevAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n\n const { versioned, unversioned } = this._parseSpecs(names);\n if (versioned.length) {\n await this._patchAsync(versioned, 'devDependencies');\n await this._runAsync(['install']);\n }\n if (unversioned.length) {\n await this._runAsync(['install', '--save-dev', ...unversioned.map(spec => spec.raw)]);\n }\n }\n\n async removeAsync(...names: string[]) {\n await this._runAsync(['uninstall', ...names]);\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('npm', ['--version'], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async getConfigAsync(key: string) {\n const { stdout } = await spawnAsync('npm', ['config', 'get', key], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async removeLockfileAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for NpmPackageManager.removeLockfileAsync');\n }\n const lockfilePath = path.join(this.options.cwd, 'package-lock.json');\n if (existsSync(lockfilePath)) {\n rimraf.sync(lockfilePath);\n }\n }\n\n async cleanAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for NpmPackageManager.cleanAsync');\n }\n const nodeModulesPath = path.join(this.options.cwd, 'node_modules');\n if (existsSync(nodeModulesPath)) {\n rimraf.sync(nodeModulesPath);\n }\n }\n\n // Private\n private async _runAsync(args: string[]) {\n if (!this.options.ignoreStdio) {\n this.log(`> npm ${args.join(' ')}`);\n }\n\n // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored\n const promise = spawnAsync('npm', [...args], { ...this.options, ignoreStdio: false });\n if (promise.child.stderr && !this.options.ignoreStdio) {\n promise.child.stderr\n .pipe(split(/\\r?\\n/, (line: string) => line + '\\n'))\n .pipe(new NpmStderrTransform())\n .pipe(process.stderr);\n }\n return promise;\n }\n\n private _parseSpecs(names: string[]) {\n const result: {\n versioned: npmPackageArg.Result[];\n unversioned: npmPackageArg.Result[];\n } = { versioned: [], unversioned: [] };\n names\n .map(name => npmPackageArg(name))\n .forEach(spec => {\n if (spec.rawSpec) {\n result.versioned.push(spec);\n } else {\n result.unversioned.push(spec);\n }\n });\n return result;\n }\n\n private async _patchAsync(\n specs: npmPackageArg.Result[],\n packageType: 'dependencies' | 'devDependencies'\n ) {\n const pkgPath = path.join(this.options.cwd || '.', 'package.json');\n const pkg = await JsonFile.readAsync(pkgPath);\n specs.forEach(spec => {\n pkg[packageType] = pkg[packageType] || {};\n // @ts-ignore\n pkg[packageType][spec.name!] = spec.rawSpec;\n });\n await JsonFile.writeAsync(pkgPath, pkg, { json5: false });\n }\n}\n\nexport class YarnPackageManager implements PackageManager {\n options: SpawnOptions;\n private log: Logger;\n\n constructor({ cwd, log, silent }: { cwd: string; log?: Logger; silent?: boolean }) {\n this.log = log || console.log;\n this.options = {\n env: {\n ...process.env,\n ...disableAdsEnv,\n },\n cwd,\n ...(silent\n ? { ignoreStdio: true }\n : {\n stdio: ['inherit', 'inherit', 'pipe'],\n }),\n };\n }\n\n get name() {\n return 'Yarn';\n }\n\n private async withOfflineSupportAsync(...args: string[]): Promise<string[]> {\n if (await isYarnOfflineAsync()) {\n args.push('--offline');\n }\n // TODO: Maybe prompt about being offline and using local yarn cache.\n return args;\n }\n\n async installAsync() {\n const args = await this.withOfflineSupportAsync('install');\n await this._runAsync(args);\n }\n\n async addGlobalAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('global', 'add');\n args.push(...names);\n\n await this._runAsync(args);\n }\n\n async addWithParametersAsync(names: string[], parameters: string[] = []) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('add');\n args.push(...names);\n args.push(...parameters);\n\n await this._runAsync(args);\n }\n\n async addAsync(...names: string[]) {\n await this.addWithParametersAsync(names, []);\n }\n\n async addDevAsync(...names: string[]) {\n if (!names.length) return this.installAsync();\n const args = await this.withOfflineSupportAsync('add', '--dev');\n args.push(...names);\n await this._runAsync(args);\n }\n\n async removeAsync(...names: string[]) {\n await this._runAsync(['remove', ...names]);\n }\n\n async versionAsync() {\n const { stdout } = await spawnAsync('yarnpkg', ['--version'], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async getConfigAsync(key: string) {\n const { stdout } = await spawnAsync('yarnpkg', ['config', 'get', key], { stdio: 'pipe' });\n return stdout.trim();\n }\n\n async removeLockfileAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for YarnPackageManager.removeLockfileAsync');\n }\n const lockfilePath = path.join(this.options.cwd, 'yarn-lock.json');\n if (existsSync(lockfilePath)) {\n rimraf.sync(lockfilePath);\n }\n }\n\n async cleanAsync() {\n if (!this.options.cwd) {\n throw new Error('cwd required for YarnPackageManager.cleanAsync');\n }\n const nodeModulesPath = path.join(this.options.cwd, 'node_modules');\n if (existsSync(nodeModulesPath)) {\n rimraf.sync(nodeModulesPath);\n }\n }\n\n // Private\n private async _runAsync(args: string[]) {\n if (!this.options.ignoreStdio) {\n this.log(`> yarn ${args.join(' ')}`);\n }\n\n // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored\n const promise = spawnAsync('yarnpkg', args, { ...this.options, ignoreStdio: false });\n if (promise.child.stderr && !this.options.ignoreStdio) {\n promise.child.stderr.pipe(new YarnStderrTransform()).pipe(process.stderr);\n }\n return promise;\n }\n}\n\nexport type CreateForProjectOptions = {\n npm?: boolean;\n yarn?: boolean;\n log?: Logger;\n silent?: boolean;\n};\n\nexport function createForProject(\n projectRoot: string,\n options: CreateForProjectOptions = {}\n): NpmPackageManager | YarnPackageManager {\n let PackageManager;\n if (options.npm) {\n PackageManager = NpmPackageManager;\n } else if (options.yarn) {\n PackageManager = YarnPackageManager;\n } else if (isUsingYarn(projectRoot)) {\n PackageManager = YarnPackageManager;\n } else {\n PackageManager = NpmPackageManager;\n }\n\n return new PackageManager({ cwd: projectRoot, log: options.log, silent: options.silent });\n}\n\nexport function getModulesPath(projectRoot: string): string {\n const workspaceRoot = findWorkspaceRoot(path.resolve(projectRoot)); // Absolute path or null\n if (workspaceRoot) {\n return path.resolve(workspaceRoot, 'node_modules');\n }\n\n return path.resolve(projectRoot, 'node_modules');\n}\n"]}
|
package/build/PackageManager.js
CHANGED
|
@@ -8,7 +8,7 @@ const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const sudo_prompt_1 = __importDefault(require("sudo-prompt"));
|
|
10
10
|
function getPossibleProjectRoot() {
|
|
11
|
-
return fs_1.realpathSync(process.cwd());
|
|
11
|
+
return (0, fs_1.realpathSync)(process.cwd());
|
|
12
12
|
}
|
|
13
13
|
exports.getPossibleProjectRoot = getPossibleProjectRoot;
|
|
14
14
|
async function spawnSudoAsync(command, spawnOptions) {
|
|
@@ -27,7 +27,7 @@ async function spawnSudoAsync(command, spawnOptions) {
|
|
|
27
27
|
// Attempt to use sudo to run the command on Mac and Linux.
|
|
28
28
|
// TODO(Bacon): Make a v of sudo-prompt that's win32 only for better bundle size.
|
|
29
29
|
console.log('Your password might be needed to install CocoaPods CLI: https://guides.cocoapods.org/using/getting-started.html#installation');
|
|
30
|
-
await spawn_async_1.default('sudo', command, spawnOptions);
|
|
30
|
+
await (0, spawn_async_1.default)('sudo', command, spawnOptions);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.spawnSudoAsync = spawnSudoAsync;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../src/PackageManager.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA6D;AAC7D,2BAAkC;AAClC,8DAA+B;AAe/B,SAAgB,sBAAsB;IACpC,OAAO,iBAAY,
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../src/PackageManager.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA6D;AAC7D,2BAAkC;AAClC,8DAA+B;AAe/B,SAAgB,sBAAsB;IACpC,OAAO,IAAA,iBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACrC,CAAC;AAFD,wDAEC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAiB,EAAE,YAA0B;IAChF,oDAAoD;IACpD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,qBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC,EAAE;gBAC5D,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,2DAA2D;QAC3D,iFAAiF;QACjF,OAAO,CAAC,GAAG,CACT,8HAA8H,CAC/H,CAAC;QACF,MAAM,IAAA,qBAAU,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KACjD;AACH,CAAC;AAnBD,wCAmBC","sourcesContent":["import spawnAsync, { SpawnOptions } from '@expo/spawn-async';\nimport { realpathSync } from 'fs';\nimport sudo from 'sudo-prompt';\n\nexport type Logger = (...args: any[]) => void;\n\nexport interface PackageManager {\n installAsync(): Promise<void>;\n addWithParametersAsync(names: string[], parameters: string[]): Promise<void>;\n addAsync(...names: string[]): Promise<void>;\n addDevAsync(...names: string[]): Promise<void>;\n versionAsync(): Promise<string>;\n getConfigAsync(key: string): Promise<string>;\n removeLockfileAsync(): Promise<void>;\n cleanAsync(): Promise<void>;\n}\n\nexport function getPossibleProjectRoot(): string {\n return realpathSync(process.cwd());\n}\n\nexport async function spawnSudoAsync(command: string[], spawnOptions: SpawnOptions): Promise<void> {\n // sudo prompt only seems to work on win32 machines.\n if (process.platform === 'win32') {\n return new Promise((resolve, reject) => {\n sudo.exec(command.join(' '), { name: 'pod install' }, error => {\n if (error) {\n reject(error);\n }\n resolve();\n });\n });\n } else {\n // Attempt to use sudo to run the command on Mac and Linux.\n // TODO(Bacon): Make a v of sudo-prompt that's win32 only for better bundle size.\n console.log(\n 'Your password might be needed to install CocoaPods CLI: https://guides.cocoapods.org/using/getting-started.html#installation'\n );\n await spawnAsync('sudo', command, spawnOptions);\n }\n}\n"]}
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,4DAA0C;AAC1C,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,iEAA2E;AAAlE,yIAAA,OAAO,OAAsB","sourcesContent":["export * from './PackageManager';\nexport * from './NodePackageManagers';\nexport * from './CocoaPodsPackageManager';\nexport { default as shouldUseYarn } from './utils/shouldUseYarn';\nexport { default as isYarnOfflineAsync } from './utils/isYarnOfflineAsync';\n"]}
|
|
@@ -13,10 +13,10 @@ function getNpmProxy() {
|
|
|
13
13
|
return (_a = process.env.https_proxy) !== null && _a !== void 0 ? _a : null;
|
|
14
14
|
}
|
|
15
15
|
try {
|
|
16
|
-
const httpsProxy = child_process_1.execSync('npm config get https-proxy').toString().trim();
|
|
16
|
+
const httpsProxy = (0, child_process_1.execSync)('npm config get https-proxy').toString().trim();
|
|
17
17
|
return httpsProxy !== 'null' ? httpsProxy : null;
|
|
18
18
|
}
|
|
19
|
-
catch
|
|
19
|
+
catch {
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isYarnOfflineAsync.js","sourceRoot":"","sources":["../../src/utils/isYarnOfflineAsync.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyC;AACzC,8CAAsB;AACtB,8CAAsB;AAEtB,SAAgB,WAAW;;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;QAC3B,OAAO,MAAA,OAAO,CAAC,GAAG,CAAC,WAAW,mCAAI,IAAI,CAAC;KACxC;IAED,IAAI;QACF,MAAM,UAAU,GAAG,wBAAQ,
|
|
1
|
+
{"version":3,"file":"isYarnOfflineAsync.js","sourceRoot":"","sources":["../../src/utils/isYarnOfflineAsync.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyC;AACzC,8CAAsB;AACtB,8CAAsB;AAEtB,SAAgB,WAAW;;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;QAC3B,OAAO,MAAA,OAAO,CAAC,GAAG,CAAC,WAAW,mCAAI,IAAI,CAAC;KACxC;IAED,IAAI;QACF,MAAM,UAAU,GAAG,IAAA,wBAAQ,EAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5E,OAAO,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;KAClD;IAAC,MAAM;QACN,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAXD,kCAWC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;QACpC,aAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACY,KAAK,UAAU,kBAAkB;IAC9C,IAAI,MAAM,mBAAmB,CAAC,sBAAsB,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAE5B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,CAAC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAjBD,qCAiBC","sourcesContent":["import { execSync } from 'child_process';\nimport dns from 'dns';\nimport url from 'url';\n\nexport function getNpmProxy(): string | null {\n if (process.env.https_proxy) {\n return process.env.https_proxy ?? null;\n }\n\n try {\n const httpsProxy = execSync('npm config get https-proxy').toString().trim();\n return httpsProxy !== 'null' ? httpsProxy : null;\n } catch {\n return null;\n }\n}\n\nfunction isUrlAvailableAsync(url: string): Promise<boolean> {\n return new Promise<boolean>(resolve => {\n dns.lookup(url, err => {\n resolve(!err);\n });\n });\n}\n\n/**\n * Determine if you should use yarn offline or not.\n */\nexport default async function isYarnOfflineAsync(): Promise<boolean> {\n if (await isUrlAvailableAsync('registry.yarnpkg.com')) {\n return false;\n }\n\n const proxy = getNpmProxy();\n\n if (!proxy) {\n return true;\n }\n\n const { hostname } = url.parse(proxy);\n if (!hostname) {\n return true;\n }\n\n return !(await isUrlAvailableAsync(hostname));\n}\n"]}
|
|
@@ -7,10 +7,10 @@ function shouldUseYarn() {
|
|
|
7
7
|
if ((_a = process.env.npm_config_user_agent) === null || _a === void 0 ? void 0 : _a.startsWith('yarn')) {
|
|
8
8
|
return true;
|
|
9
9
|
}
|
|
10
|
-
child_process_1.execSync('yarnpkg --version', { stdio: 'ignore' });
|
|
10
|
+
(0, child_process_1.execSync)('yarnpkg --version', { stdio: 'ignore' });
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
13
|
-
catch
|
|
13
|
+
catch {
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldUseYarn.js","sourceRoot":"","sources":["../../src/utils/shouldUseYarn.ts"],"names":[],"mappings":";;AAAA,iDAAyC;AAEzC,SAAwB,aAAa;;IACnC,IAAI;QACF,IAAI,MAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,0CAAE,UAAU,CAAC,MAAM,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;QACD,wBAAQ,
|
|
1
|
+
{"version":3,"file":"shouldUseYarn.js","sourceRoot":"","sources":["../../src/utils/shouldUseYarn.ts"],"names":[],"mappings":";;AAAA,iDAAyC;AAEzC,SAAwB,aAAa;;IACnC,IAAI;QACF,IAAI,MAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,0CAAE,UAAU,CAAC,MAAM,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;QACD,IAAA,wBAAQ,EAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;KACb;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAVD,gCAUC","sourcesContent":["import { execSync } from 'child_process';\n\nexport default function shouldUseYarn(): boolean {\n try {\n if (process.env.npm_config_user_agent?.startsWith('yarn')) {\n return true;\n }\n execSync('yarnpkg --version', { stdio: 'ignore' });\n return true;\n } catch {\n return false;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/package-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.52",
|
|
4
4
|
"description": "A library for installing and finding packages in a node project",
|
|
5
5
|
"main": "build",
|
|
6
6
|
"scripts": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"build"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@expo/json-file": "8.2.
|
|
36
|
+
"@expo/json-file": "8.2.36",
|
|
37
37
|
"@expo/spawn-async": "^1.5.0",
|
|
38
38
|
"ansi-regex": "^5.0.0",
|
|
39
39
|
"chalk": "^4.0.0",
|