@expo/package-manager 0.0.59 → 0.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +3 -3
  2. package/build/{ios/CocoaPodsPackageManager.d.ts → CocoaPodsPackageManager.d.ts} +6 -9
  3. package/build/{ios/CocoaPodsPackageManager.js → CocoaPodsPackageManager.js} +6 -18
  4. package/build/CocoaPodsPackageManager.js.map +1 -0
  5. package/build/NodePackageManagers.d.ts +63 -0
  6. package/build/NodePackageManagers.js +297 -0
  7. package/build/NodePackageManagers.js.map +1 -0
  8. package/build/PackageManager.d.ts +9 -41
  9. package/build/PackageManager.js +31 -0
  10. package/build/PackageManager.js.map +1 -1
  11. package/build/PnpmPackageManager.d.ts +31 -0
  12. package/build/PnpmPackageManager.js +121 -0
  13. package/build/PnpmPackageManager.js.map +1 -0
  14. package/build/index.d.ts +5 -6
  15. package/build/index.js +12 -8
  16. package/build/index.js.map +1 -1
  17. package/build/utils/isYarnOfflineAsync.d.ts +5 -0
  18. package/build/utils/{yarn.js → isYarnOfflineAsync.js} +20 -19
  19. package/build/utils/isYarnOfflineAsync.js.map +1 -0
  20. package/build/utils/nodeWorkspaces.d.ts +31 -6
  21. package/build/utils/nodeWorkspaces.js +84 -29
  22. package/build/utils/nodeWorkspaces.js.map +1 -1
  23. package/build/utils/shouldUseYarn.d.ts +1 -0
  24. package/build/utils/shouldUseYarn.js +21 -0
  25. package/build/utils/shouldUseYarn.js.map +1 -0
  26. package/package.json +6 -9
  27. package/build/ios/CocoaPodsPackageManager.js.map +0 -1
  28. package/build/node/BasePackageManager.d.ts +0 -32
  29. package/build/node/BasePackageManager.js +0 -61
  30. package/build/node/BasePackageManager.js.map +0 -1
  31. package/build/node/NpmPackageManager.d.ts +0 -24
  32. package/build/node/NpmPackageManager.js +0 -115
  33. package/build/node/NpmPackageManager.js.map +0 -1
  34. package/build/node/PnpmPackageManager.d.ts +0 -14
  35. package/build/node/PnpmPackageManager.js +0 -64
  36. package/build/node/PnpmPackageManager.js.map +0 -1
  37. package/build/node/YarnPackageManager.d.ts +0 -16
  38. package/build/node/YarnPackageManager.js +0 -63
  39. package/build/node/YarnPackageManager.js.map +0 -1
  40. package/build/utils/env.d.ts +0 -6
  41. package/build/utils/env.js +0 -12
  42. package/build/utils/env.js.map +0 -1
  43. package/build/utils/nodeManagers.d.ts +0 -25
  44. package/build/utils/nodeManagers.js +0 -90
  45. package/build/utils/nodeManagers.js.map +0 -1
  46. package/build/utils/spawn.d.ts +0 -21
  47. package/build/utils/spawn.js +0 -57
  48. package/build/utils/spawn.js.map +0 -1
  49. package/build/utils/yarn.d.ts +0 -4
  50. package/build/utils/yarn.js.map +0 -1
package/README.md CHANGED
@@ -32,10 +32,10 @@ yarn add @expo/package-manager
32
32
  ```ts
33
33
  import * as PackageManager from '@expo/package-manager';
34
34
 
35
- const manager = PackageManager.createForProject(projectRoot);
35
+ const manager = await PackageManager.createForProject(projectRoot);
36
36
 
37
37
  await Promise.all([
38
- manager.addDevAsync(['@expo/webpack-config']),
39
- manager.addAsync(['expo', 'expo-camera']),
38
+ manager.addDevAsync('@expo/webpack-config'),
39
+ manager.addAsync('expo', 'expo-camera'),
40
40
  ]);
41
41
  ```
@@ -1,5 +1,6 @@
1
1
  import { SpawnOptions, SpawnResult } from '@expo/spawn-async';
2
2
  import { Ora } from 'ora';
3
+ import { PackageManager } from './PackageManager';
3
4
  export type CocoaPodsErrorCode = 'NON_INTERACTIVE' | 'NO_CLI' | 'COMMAND_FAILED';
4
5
  export declare class CocoaPodsError extends Error {
5
6
  code: CocoaPodsErrorCode;
@@ -9,7 +10,7 @@ export declare class CocoaPodsError extends Error {
9
10
  constructor(message: string, code: CocoaPodsErrorCode, cause?: Error | undefined);
10
11
  }
11
12
  export declare function extractMissingDependencyError(errorOutput: string): [string, string] | null;
12
- export declare class CocoaPodsPackageManager {
13
+ export declare class CocoaPodsPackageManager implements PackageManager {
13
14
  options: SpawnOptions;
14
15
  private silent;
15
16
  static getPodProjectRoot(projectRoot: string): string | null;
@@ -43,16 +44,12 @@ export declare class CocoaPodsPackageManager {
43
44
  private _installAsync;
44
45
  private runInstallTypeCommandAsync;
45
46
  addWithParametersAsync(names: string[], parameters: string[]): Promise<void>;
46
- addAsync(names?: string[]): void;
47
- addDevAsync(names?: string[]): void;
48
- addGlobalAsync(names?: string[]): void;
49
- removeAsync(names?: string[]): void;
50
- removeDevAsync(names?: string[]): void;
51
- removeGlobalAsync(names?: string[]): void;
47
+ addAsync(...names: string[]): Promise<void>;
48
+ addDevAsync(...names: string[]): Promise<void>;
52
49
  versionAsync(): Promise<string>;
53
- configAsync(key: string): Promise<string>;
50
+ getConfigAsync(key: string): Promise<string>;
54
51
  removeLockfileAsync(): Promise<void>;
55
- uninstallAsync(): Promise<void>;
52
+ cleanAsync(): Promise<void>;
56
53
  private podRepoUpdateAsync;
57
54
  _runAsync(args: string[]): Promise<SpawnResult>;
58
55
  }
@@ -9,7 +9,7 @@ const chalk_1 = __importDefault(require("chalk"));
9
9
  const fs_1 = require("fs");
10
10
  const os_1 = __importDefault(require("os"));
11
11
  const path_1 = __importDefault(require("path"));
12
- const spawn_1 = require("../utils/spawn");
12
+ const PackageManager_1 = require("./PackageManager");
13
13
  class CocoaPodsError extends Error {
14
14
  constructor(message, code, cause) {
15
15
  super(cause ? `${message}\n└─ Cause: ${cause.message}` : message);
@@ -55,7 +55,7 @@ class CocoaPodsPackageManager {
55
55
  throw new CocoaPodsError('Failed to install CocoaPods CLI with gem (recommended)', 'COMMAND_FAILED', error);
56
56
  }
57
57
  // If the user doesn't have permission then we can prompt them to use sudo.
58
- await (0, spawn_1.spawnSudoAsync)(['gem', ...options], spawnOptions);
58
+ await (0, PackageManager_1.spawnSudoAsync)(['gem', ...options], spawnOptions);
59
59
  }
60
60
  }
61
61
  static async brewLinkCLIAsync(spawnOptions = { stdio: 'inherit' }) {
@@ -227,35 +227,23 @@ class CocoaPodsPackageManager {
227
227
  async addWithParametersAsync(names, parameters) {
228
228
  throw new Error('Unimplemented');
229
229
  }
230
- addAsync(names = []) {
230
+ async addAsync(...names) {
231
231
  throw new Error('Unimplemented');
232
232
  }
233
- addDevAsync(names = []) {
234
- throw new Error('Unimplemented');
235
- }
236
- addGlobalAsync(names = []) {
237
- throw new Error('Unimplemented');
238
- }
239
- removeAsync(names = []) {
240
- throw new Error('Unimplemented');
241
- }
242
- removeDevAsync(names = []) {
243
- throw new Error('Unimplemented');
244
- }
245
- removeGlobalAsync(names = []) {
233
+ async addDevAsync(...names) {
246
234
  throw new Error('Unimplemented');
247
235
  }
248
236
  async versionAsync() {
249
237
  const { stdout } = await (0, spawn_async_1.default)('pod', ['--version'], this.options);
250
238
  return stdout.trim();
251
239
  }
252
- async configAsync(key) {
240
+ async getConfigAsync(key) {
253
241
  throw new Error('Unimplemented');
254
242
  }
255
243
  async removeLockfileAsync() {
256
244
  throw new Error('Unimplemented');
257
245
  }
258
- async uninstallAsync() {
246
+ async cleanAsync() {
259
247
  throw new Error('Unimplemented');
260
248
  }
261
249
  // Private
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CocoaPodsPackageManager.js","sourceRoot":"","sources":["../src/CocoaPodsPackageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { SpawnOptions } from '@expo/spawn-async';
2
+ import { Logger, PackageManager } from './PackageManager';
3
+ import { PnpmPackageManager } from './PnpmPackageManager';
4
+ export type NodePackageManager = 'yarn' | 'npm' | 'pnpm';
5
+ /**
6
+ * Disable various postinstall scripts
7
+ * - https://github.com/opencollective/opencollective-postinstall/pull/9
8
+ */
9
+ export declare const DISABLE_ADS_ENV: {
10
+ DISABLE_OPENCOLLECTIVE: string;
11
+ ADBLOCK: string;
12
+ };
13
+ export declare class NpmPackageManager implements PackageManager {
14
+ options: SpawnOptions;
15
+ private log;
16
+ constructor({ cwd, log, silent }: {
17
+ cwd: string;
18
+ log?: Logger;
19
+ silent?: boolean;
20
+ });
21
+ get name(): string;
22
+ installAsync(parameters?: string[]): Promise<void>;
23
+ addGlobalAsync(...names: string[]): Promise<void>;
24
+ addWithParametersAsync(names: string[], parameters?: string[]): Promise<void>;
25
+ addAsync(...names: string[]): Promise<void>;
26
+ addDevAsync(...names: string[]): Promise<void>;
27
+ removeAsync(...names: string[]): Promise<void>;
28
+ versionAsync(): Promise<string>;
29
+ getConfigAsync(key: string): Promise<string>;
30
+ removeLockfileAsync(): Promise<void>;
31
+ cleanAsync(): Promise<void>;
32
+ private _runAsync;
33
+ private _parseSpecs;
34
+ private _patchAsync;
35
+ }
36
+ export declare class YarnPackageManager implements PackageManager {
37
+ options: SpawnOptions;
38
+ private log;
39
+ constructor({ cwd, log, silent }: {
40
+ cwd: string;
41
+ log?: Logger;
42
+ silent?: boolean;
43
+ });
44
+ get name(): string;
45
+ private withOfflineSupportAsync;
46
+ installAsync(): Promise<void>;
47
+ addGlobalAsync(...names: string[]): Promise<void>;
48
+ addWithParametersAsync(names: string[], parameters?: string[]): Promise<void>;
49
+ addAsync(...names: string[]): Promise<void>;
50
+ addDevAsync(...names: string[]): Promise<void>;
51
+ removeAsync(...names: string[]): Promise<void>;
52
+ versionAsync(): Promise<string>;
53
+ getConfigAsync(key: string): Promise<string>;
54
+ removeLockfileAsync(): Promise<void>;
55
+ cleanAsync(): Promise<void>;
56
+ private _runAsync;
57
+ }
58
+ export type CreateForProjectOptions = Partial<Record<NodePackageManager, boolean>> & {
59
+ log?: Logger;
60
+ silent?: boolean;
61
+ };
62
+ export declare function createForProject(projectRoot: string, options?: CreateForProjectOptions): NpmPackageManager | YarnPackageManager | PnpmPackageManager;
63
+ export declare function getModulesPath(projectRoot: string): string;
@@ -0,0 +1,297 @@
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.getModulesPath = exports.createForProject = exports.YarnPackageManager = exports.NpmPackageManager = exports.DISABLE_ADS_ENV = void 0;
7
+ const json_file_1 = __importDefault(require("@expo/json-file"));
8
+ const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
9
+ const ansi_regex_1 = __importDefault(require("ansi-regex"));
10
+ const fs_1 = require("fs");
11
+ const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const rimraf_1 = __importDefault(require("rimraf"));
14
+ const split_1 = __importDefault(require("split"));
15
+ const stream_1 = require("stream");
16
+ const PnpmPackageManager_1 = require("./PnpmPackageManager");
17
+ const isYarnOfflineAsync_1 = __importDefault(require("./utils/isYarnOfflineAsync"));
18
+ const nodeWorkspaces_1 = require("./utils/nodeWorkspaces");
19
+ /**
20
+ * Disable various postinstall scripts
21
+ * - https://github.com/opencollective/opencollective-postinstall/pull/9
22
+ */
23
+ exports.DISABLE_ADS_ENV = { DISABLE_OPENCOLLECTIVE: '1', ADBLOCK: '1' };
24
+ const ansi = `(?:${(0, ansi_regex_1.default)().source})*`;
25
+ const npmPeerDependencyWarningPattern = new RegExp(`${ansi}npm${ansi} ${ansi}WARN${ansi}.+You must install peer dependencies yourself\\.\n`, 'g');
26
+ const yarnPeerDependencyWarningPattern = new RegExp(`${ansi}warning${ansi} "[^"]+" has (?:unmet|incorrect) peer dependency "[^"]+"\\.\n`, 'g');
27
+ class NpmStderrTransform extends stream_1.Transform {
28
+ _transform(chunk, encoding, callback) {
29
+ this.push(chunk.toString().replace(npmPeerDependencyWarningPattern, ''));
30
+ callback();
31
+ }
32
+ }
33
+ class YarnStderrTransform extends stream_1.Transform {
34
+ _transform(chunk, encoding, callback) {
35
+ this.push(chunk.toString().replace(yarnPeerDependencyWarningPattern, ''));
36
+ callback();
37
+ }
38
+ }
39
+ class NpmPackageManager {
40
+ constructor({ cwd, log, silent }) {
41
+ this.log = log || console.log;
42
+ this.options = {
43
+ env: {
44
+ ...process.env,
45
+ ...exports.DISABLE_ADS_ENV,
46
+ },
47
+ cwd,
48
+ ...(silent
49
+ ? { ignoreStdio: true }
50
+ : {
51
+ stdio: ['inherit', 'inherit', 'pipe'],
52
+ }),
53
+ };
54
+ }
55
+ get name() {
56
+ return 'npm';
57
+ }
58
+ async installAsync(parameters = []) {
59
+ await this._runAsync(['install', ...parameters]);
60
+ }
61
+ async addGlobalAsync(...names) {
62
+ if (!names.length)
63
+ return this.installAsync();
64
+ await this._runAsync(['install', '--global', ...names]);
65
+ }
66
+ async addWithParametersAsync(names, parameters = []) {
67
+ if (!names.length)
68
+ return this.installAsync(parameters);
69
+ const { versioned, unversioned } = this._parseSpecs(names);
70
+ if (versioned.length) {
71
+ await this._patchAsync(versioned, 'dependencies');
72
+ await this.installAsync(parameters);
73
+ }
74
+ if (unversioned.length) {
75
+ await this._runAsync([
76
+ 'install',
77
+ '--save',
78
+ ...unversioned.map((spec) => spec.raw),
79
+ ...parameters,
80
+ ]);
81
+ }
82
+ }
83
+ async addAsync(...names) {
84
+ await this.addWithParametersAsync(names, []);
85
+ }
86
+ async addDevAsync(...names) {
87
+ if (!names.length)
88
+ return this.installAsync();
89
+ const { versioned, unversioned } = this._parseSpecs(names);
90
+ if (versioned.length) {
91
+ await this._patchAsync(versioned, 'devDependencies');
92
+ await this._runAsync(['install']);
93
+ }
94
+ if (unversioned.length) {
95
+ await this._runAsync(['install', '--save-dev', ...unversioned.map((spec) => spec.raw)]);
96
+ }
97
+ }
98
+ async removeAsync(...names) {
99
+ await this._runAsync(['uninstall', ...names]);
100
+ }
101
+ async versionAsync() {
102
+ const { stdout } = await (0, spawn_async_1.default)('npm', ['--version'], { stdio: 'pipe' });
103
+ return stdout.trim();
104
+ }
105
+ async getConfigAsync(key) {
106
+ const { stdout } = await (0, spawn_async_1.default)('npm', ['config', 'get', key], { stdio: 'pipe' });
107
+ return stdout.trim();
108
+ }
109
+ async removeLockfileAsync() {
110
+ if (!this.options.cwd) {
111
+ throw new Error('cwd required for NpmPackageManager.removeLockfileAsync');
112
+ }
113
+ const lockfilePath = path_1.default.join(this.options.cwd.toString(), 'package-lock.json');
114
+ if ((0, fs_1.existsSync)(lockfilePath)) {
115
+ rimraf_1.default.sync(lockfilePath);
116
+ }
117
+ }
118
+ async cleanAsync() {
119
+ if (!this.options.cwd) {
120
+ throw new Error('cwd required for NpmPackageManager.cleanAsync');
121
+ }
122
+ const nodeModulesPath = path_1.default.join(this.options.cwd.toString(), 'node_modules');
123
+ if ((0, fs_1.existsSync)(nodeModulesPath)) {
124
+ rimraf_1.default.sync(nodeModulesPath);
125
+ }
126
+ }
127
+ // Private
128
+ async _runAsync(args) {
129
+ if (!this.options.ignoreStdio) {
130
+ this.log(`> npm ${args.join(' ')}`);
131
+ }
132
+ // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored
133
+ const promise = (0, spawn_async_1.default)('npm', [...args], { ...this.options, ignoreStdio: false });
134
+ if (promise.child.stderr && !this.options.ignoreStdio) {
135
+ promise.child.stderr
136
+ .pipe((0, split_1.default)(/\r?\n/, (line) => line + '\n'))
137
+ .pipe(new NpmStderrTransform())
138
+ .pipe(process.stderr);
139
+ }
140
+ return promise;
141
+ }
142
+ _parseSpecs(names) {
143
+ const result = { versioned: [], unversioned: [] };
144
+ names
145
+ .map((name) => (0, npm_package_arg_1.default)(name))
146
+ .forEach((spec) => {
147
+ if (spec.rawSpec) {
148
+ result.versioned.push(spec);
149
+ }
150
+ else {
151
+ result.unversioned.push(spec);
152
+ }
153
+ });
154
+ return result;
155
+ }
156
+ async _patchAsync(specs, packageType) {
157
+ const pkgPath = path_1.default.join(this.options.cwd?.toString() || '.', 'package.json');
158
+ const pkg = await json_file_1.default.readAsync(pkgPath);
159
+ specs.forEach((spec) => {
160
+ pkg[packageType] = pkg[packageType] || {};
161
+ // @ts-ignore
162
+ pkg[packageType][spec.name] = spec.rawSpec;
163
+ });
164
+ await json_file_1.default.writeAsync(pkgPath, pkg, { json5: false });
165
+ }
166
+ }
167
+ exports.NpmPackageManager = NpmPackageManager;
168
+ class YarnPackageManager {
169
+ constructor({ cwd, log, silent }) {
170
+ this.log = log || console.log;
171
+ this.options = {
172
+ env: {
173
+ ...process.env,
174
+ ...exports.DISABLE_ADS_ENV,
175
+ },
176
+ cwd,
177
+ ...(silent
178
+ ? { ignoreStdio: true }
179
+ : {
180
+ stdio: ['inherit', 'inherit', 'pipe'],
181
+ }),
182
+ };
183
+ }
184
+ get name() {
185
+ return 'Yarn';
186
+ }
187
+ async withOfflineSupportAsync(...args) {
188
+ if (await (0, isYarnOfflineAsync_1.default)()) {
189
+ args.push('--offline');
190
+ }
191
+ // TODO: Maybe prompt about being offline and using local yarn cache.
192
+ return args;
193
+ }
194
+ async installAsync() {
195
+ const args = await this.withOfflineSupportAsync('install');
196
+ await this._runAsync(args);
197
+ }
198
+ async addGlobalAsync(...names) {
199
+ if (!names.length)
200
+ return this.installAsync();
201
+ const args = await this.withOfflineSupportAsync('global', 'add');
202
+ args.push(...names);
203
+ await this._runAsync(args);
204
+ }
205
+ async addWithParametersAsync(names, parameters = []) {
206
+ if (!names.length)
207
+ return this.installAsync();
208
+ const args = await this.withOfflineSupportAsync('add');
209
+ args.push(...names);
210
+ args.push(...parameters);
211
+ await this._runAsync(args);
212
+ }
213
+ async addAsync(...names) {
214
+ await this.addWithParametersAsync(names, []);
215
+ }
216
+ async addDevAsync(...names) {
217
+ if (!names.length)
218
+ return this.installAsync();
219
+ const args = await this.withOfflineSupportAsync('add', '--dev');
220
+ args.push(...names);
221
+ await this._runAsync(args);
222
+ }
223
+ async removeAsync(...names) {
224
+ await this._runAsync(['remove', ...names]);
225
+ }
226
+ async versionAsync() {
227
+ const { stdout } = await (0, spawn_async_1.default)('yarnpkg', ['--version'], { stdio: 'pipe' });
228
+ return stdout.trim();
229
+ }
230
+ async getConfigAsync(key) {
231
+ const { stdout } = await (0, spawn_async_1.default)('yarnpkg', ['config', 'get', key], { stdio: 'pipe' });
232
+ return stdout.trim();
233
+ }
234
+ async removeLockfileAsync() {
235
+ if (!this.options.cwd) {
236
+ throw new Error('cwd required for YarnPackageManager.removeLockfileAsync');
237
+ }
238
+ const lockfilePath = path_1.default.join(this.options.cwd.toString(), 'yarn-lock.json');
239
+ if ((0, fs_1.existsSync)(lockfilePath)) {
240
+ rimraf_1.default.sync(lockfilePath);
241
+ }
242
+ }
243
+ async cleanAsync() {
244
+ if (!this.options.cwd) {
245
+ throw new Error('cwd required for YarnPackageManager.cleanAsync');
246
+ }
247
+ const nodeModulesPath = path_1.default.join(this.options.cwd.toString(), 'node_modules');
248
+ if ((0, fs_1.existsSync)(nodeModulesPath)) {
249
+ rimraf_1.default.sync(nodeModulesPath);
250
+ }
251
+ }
252
+ // Private
253
+ async _runAsync(args) {
254
+ if (!this.options.ignoreStdio) {
255
+ this.log(`> yarn ${args.join(' ')}`);
256
+ }
257
+ // Have spawnAsync consume stdio but we don't actually do anything with it if it's ignored
258
+ const promise = (0, spawn_async_1.default)('yarnpkg', args, { ...this.options, ignoreStdio: false });
259
+ if (promise.child.stderr && !this.options.ignoreStdio) {
260
+ promise.child.stderr.pipe(new YarnStderrTransform()).pipe(process.stderr);
261
+ }
262
+ return promise;
263
+ }
264
+ }
265
+ exports.YarnPackageManager = YarnPackageManager;
266
+ function createForProject(projectRoot, options = {}) {
267
+ let PackageManager;
268
+ if (options.npm) {
269
+ PackageManager = NpmPackageManager;
270
+ }
271
+ else if (options.yarn) {
272
+ PackageManager = YarnPackageManager;
273
+ }
274
+ else if (options.pnpm) {
275
+ PackageManager = PnpmPackageManager_1.PnpmPackageManager;
276
+ }
277
+ else if ((0, nodeWorkspaces_1.isUsingYarn)(projectRoot)) {
278
+ PackageManager = YarnPackageManager;
279
+ }
280
+ else if ((0, nodeWorkspaces_1.resolvePackageManager)(projectRoot, 'pnpm')) {
281
+ PackageManager = PnpmPackageManager_1.PnpmPackageManager;
282
+ }
283
+ else {
284
+ PackageManager = NpmPackageManager;
285
+ }
286
+ return new PackageManager({ cwd: projectRoot, log: options.log, silent: options.silent });
287
+ }
288
+ exports.createForProject = createForProject;
289
+ function getModulesPath(projectRoot) {
290
+ const workspaceRoot = (0, nodeWorkspaces_1.findWorkspaceRoot)(path_1.default.resolve(projectRoot)); // Absolute path or null
291
+ if (workspaceRoot) {
292
+ return path_1.default.resolve(workspaceRoot, 'node_modules');
293
+ }
294
+ return path_1.default.resolve(projectRoot, 'node_modules');
295
+ }
296
+ exports.getModulesPath = getModulesPath;
297
+ //# sourceMappingURL=NodePackageManagers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodePackageManagers.js","sourceRoot":"","sources":["../src/NodePackageManagers.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,14 @@
1
- import { SpawnOptions, SpawnPromise, SpawnResult } from '@expo/spawn-async';
2
- import { PendingSpawnPromise } from './utils/spawn';
3
- export interface PackageManagerOptions extends SpawnOptions {
4
- /**
5
- * If the package manager should run in silent mode.
6
- * Note, this will hide possible error output from executed commands.
7
- * When running in silent mode, make sure you handle them properly.
8
- */
9
- silent?: boolean;
10
- /**
11
- * The logging method used to communicate the command which is executed.
12
- * Without `silent`, this defaults to `console.log`.
13
- * When `silent` is set to `true`, this defaults to a no-op.
14
- */
15
- log?: (...args: any[]) => void;
16
- }
1
+ import { SpawnOptions } from '@expo/spawn-async';
2
+ export type Logger = (...args: any[]) => void;
17
3
  export interface PackageManager {
18
- /** The options for this package manager */
19
- readonly options: PackageManagerOptions;
20
- /** Run any command using the package manager */
21
- runAsync(command: string[]): SpawnPromise<SpawnResult>;
22
- /** Get the version of the used package manager */
4
+ installAsync(): Promise<void>;
5
+ addWithParametersAsync(names: string[], parameters: string[]): Promise<void>;
6
+ addAsync(...names: string[]): Promise<void>;
7
+ addDevAsync(...names: string[]): Promise<void>;
23
8
  versionAsync(): Promise<string>;
24
- /** Get a single configuration property from the package manager */
25
9
  getConfigAsync(key: string): Promise<string>;
26
- /** Remove the lock file within the project, if any */
27
10
  removeLockfileAsync(): Promise<void>;
28
- /** Get the workspace root package manager, if this project is within a workspace/monorepo */
29
- workspaceRoot(): PackageManager | null;
30
- /** Install all current dependencies using the package manager */
31
- installAsync(): Promise<SpawnResult> | SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
32
- /** Uninstall all current dependencies by removing the folder containing the packages */
33
- uninstallAsync(): Promise<void>;
34
- /** Add a normal dependency to the project */
35
- addAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
36
- /** Add a development dependency to the project */
37
- addDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
38
- /** Add a global dependency to the environment */
39
- addGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
40
- /** Remove a normal dependency from the project */
41
- removeAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
42
- /** Remove a development dependency from the project */
43
- removeDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
44
- /** Remove a global dependency from the environments */
45
- removeGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
11
+ cleanAsync(): Promise<void>;
46
12
  }
13
+ export declare function getPossibleProjectRoot(): string;
14
+ export declare function spawnSudoAsync(command: string[], spawnOptions: SpawnOptions): Promise<void>;
@@ -1,3 +1,34 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.spawnSudoAsync = exports.getPossibleProjectRoot = void 0;
7
+ const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
8
+ const fs_1 = require("fs");
9
+ const sudo_prompt_1 = __importDefault(require("sudo-prompt"));
10
+ function getPossibleProjectRoot() {
11
+ return (0, fs_1.realpathSync)(process.cwd());
12
+ }
13
+ exports.getPossibleProjectRoot = getPossibleProjectRoot;
14
+ async function spawnSudoAsync(command, spawnOptions) {
15
+ // sudo prompt only seems to work on win32 machines.
16
+ if (process.platform === 'win32') {
17
+ return new Promise((resolve, reject) => {
18
+ sudo_prompt_1.default.exec(command.join(' '), { name: 'pod install' }, (error) => {
19
+ if (error) {
20
+ reject(error);
21
+ }
22
+ resolve();
23
+ });
24
+ });
25
+ }
26
+ else {
27
+ // Attempt to use sudo to run the command on Mac and Linux.
28
+ // TODO(Bacon): Make a v of sudo-prompt that's win32 only for better bundle size.
29
+ console.log('Your password might be needed to install CocoaPods CLI: https://guides.cocoapods.org/using/getting-started.html#installation');
30
+ await (0, spawn_async_1.default)('sudo', command, spawnOptions);
31
+ }
32
+ }
33
+ exports.spawnSudoAsync = spawnSudoAsync;
3
34
  //# sourceMappingURL=PackageManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../src/PackageManager.ts"],"names":[],"mappings":""}
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,CAAC,KAAK,EAAE,EAAE;gBAC9D,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"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { SpawnOptions } from '@expo/spawn-async';
4
+ import { Transform } from 'stream';
5
+ import { Logger } from './PackageManager';
6
+ /** Exposed for testing */
7
+ export declare class PnpmStdoutTransform extends Transform {
8
+ private isPeerDepsWarning;
9
+ _transform(chunk: Buffer, encoding: string, callback: (error?: Error | null, data?: any) => void): void;
10
+ }
11
+ export declare class PnpmPackageManager {
12
+ options: SpawnOptions;
13
+ private log;
14
+ constructor({ cwd, log, silent }: {
15
+ cwd: string;
16
+ log?: Logger;
17
+ silent?: boolean;
18
+ });
19
+ get name(): string;
20
+ installAsync(): Promise<void>;
21
+ addWithParametersAsync(names: string[], parameters: string[]): Promise<void>;
22
+ addAsync(...names: string[]): Promise<void>;
23
+ addDevAsync(...names: string[]): Promise<void>;
24
+ addGlobalAsync(...names: string[]): Promise<void>;
25
+ removeAsync(...names: string[]): Promise<void>;
26
+ versionAsync(): Promise<string>;
27
+ getConfigAsync(key: string): Promise<string>;
28
+ removeLockfileAsync(): Promise<void>;
29
+ cleanAsync(): Promise<void>;
30
+ private _runAsync;
31
+ }