@vercel/build-utils 8.3.3 → 8.3.5
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/CHANGELOG.md +12 -0
- package/dist/fs/run-user-scripts.d.ts +2 -18
- package/dist/fs/run-user-scripts.js +87 -165
- package/dist/index.js +162 -238
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# @vercel/build-utils
|
2
2
|
|
3
|
+
## 8.3.5
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Revert "warn on mismatched corepack and detected package managers" ([#11879](https://github.com/vercel/vercel/pull/11879))
|
8
|
+
|
9
|
+
## 8.3.4
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- Revert "Fix corepack `packageManager` detection on monorepos" ([#11865](https://github.com/vercel/vercel/pull/11865))
|
14
|
+
|
3
15
|
## 8.3.3
|
4
16
|
|
5
17
|
### Patch Changes
|
@@ -26,12 +26,6 @@ export interface ScanParentDirsResult {
|
|
26
26
|
* or `undefined` if not found.
|
27
27
|
*/
|
28
28
|
lockfileVersion?: number;
|
29
|
-
/**
|
30
|
-
* The contents of the `packageManager` field from `package.json` if found.
|
31
|
-
* The value may come from a different `package.json` file than the one
|
32
|
-
* specified by `packageJsonPath`, in the case of a monorepo.
|
33
|
-
*/
|
34
|
-
packageJsonPackageManager?: string;
|
35
29
|
}
|
36
30
|
export interface TraverseUpDirectoriesProps {
|
37
31
|
/**
|
@@ -103,12 +97,11 @@ export declare function getEnvForPackageManager({ cliType, lockfileVersion, pack
|
|
103
97
|
* Helper to get the binary paths that link to the used package manager.
|
104
98
|
* Note: Make sure it doesn't contain any `console.log` calls.
|
105
99
|
*/
|
106
|
-
export declare function getPathOverrideForPackageManager({ cliType, lockfileVersion,
|
100
|
+
export declare function getPathOverrideForPackageManager({ cliType, lockfileVersion, corepackEnabled, nodeVersion, }: {
|
107
101
|
cliType: CliType;
|
108
102
|
lockfileVersion: number | undefined;
|
109
|
-
|
103
|
+
corepackEnabled: boolean;
|
110
104
|
nodeVersion: NodeVersion | undefined;
|
111
|
-
corepackEnabled?: boolean;
|
112
105
|
}): {
|
113
106
|
/**
|
114
107
|
* Which lockfile was detected.
|
@@ -124,15 +117,6 @@ export declare function getPathOverrideForPackageManager({ cliType, lockfileVers
|
|
124
117
|
*/
|
125
118
|
path: string | undefined;
|
126
119
|
};
|
127
|
-
export declare function detectPackageManager(cliType: CliType, lockfileVersion: number | undefined): {
|
128
|
-
path: string;
|
129
|
-
detectedLockfile: string;
|
130
|
-
detectedPackageManager: string;
|
131
|
-
} | {
|
132
|
-
path: undefined;
|
133
|
-
detectedLockfile: string;
|
134
|
-
detectedPackageManager: string;
|
135
|
-
} | undefined;
|
136
120
|
/**
|
137
121
|
* Helper to get the binary paths that link to the used package manager.
|
138
122
|
* Note: Make sure it doesn't contain any `console.log` calls.
|
@@ -28,7 +28,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
29
|
var run_user_scripts_exports = {};
|
30
30
|
__export(run_user_scripts_exports, {
|
31
|
-
detectPackageManager: () => detectPackageManager,
|
32
31
|
execCommand: () => execCommand,
|
33
32
|
getEnvForPackageManager: () => getEnvForPackageManager,
|
34
33
|
getNodeBinPath: () => getNodeBinPath,
|
@@ -65,11 +64,6 @@ var import_node_version = require("./node-version");
|
|
65
64
|
var import_read_config_file = require("./read-config-file");
|
66
65
|
var import_clone_env = require("../clone-env");
|
67
66
|
const runNpmInstallSema = new import_async_sema.default(1);
|
68
|
-
const NO_OVERRIDE = {
|
69
|
-
detectedLockfile: void 0,
|
70
|
-
detectedPackageManager: void 0,
|
71
|
-
path: void 0
|
72
|
-
};
|
73
67
|
function spawnAsync(command, args, opts = {}) {
|
74
68
|
return new Promise((resolve, reject) => {
|
75
69
|
const stderrLogs = [];
|
@@ -219,10 +213,7 @@ async function scanParentDirs(destPath, readPackageJson = false, base = "/") {
|
|
219
213
|
filename: "package.json"
|
220
214
|
});
|
221
215
|
const packageJson = readPackageJson && pkgJsonPath ? JSON.parse(await import_fs_extra.default.readFile(pkgJsonPath, "utf8")) : void 0;
|
222
|
-
const {
|
223
|
-
paths: [yarnLockPath, npmLockPath, pnpmLockPath, bunLockPath],
|
224
|
-
packageJsonPackageManager
|
225
|
-
} = await walkParentDirsMulti({
|
216
|
+
const [yarnLockPath, npmLockPath, pnpmLockPath, bunLockPath] = await walkParentDirsMulti({
|
226
217
|
base,
|
227
218
|
start: destPath,
|
228
219
|
filenames: [
|
@@ -261,21 +252,19 @@ async function scanParentDirs(destPath, readPackageJson = false, base = "/") {
|
|
261
252
|
lockfilePath = bunLockPath;
|
262
253
|
lockfileVersion = 0;
|
263
254
|
} else {
|
264
|
-
cliType = detectPackageManagerNameWithoutLockfile(
|
265
|
-
packageJsonPackageManager
|
266
|
-
);
|
255
|
+
cliType = packageJson ? detectPackageManagerNameWithoutLockfile(packageJson) : "npm";
|
267
256
|
}
|
268
257
|
const packageJsonPath = pkgJsonPath || void 0;
|
269
258
|
return {
|
270
259
|
cliType,
|
271
260
|
packageJson,
|
272
|
-
packageJsonPackageManager,
|
273
261
|
lockfilePath,
|
274
262
|
lockfileVersion,
|
275
263
|
packageJsonPath
|
276
264
|
};
|
277
265
|
}
|
278
|
-
function detectPackageManagerNameWithoutLockfile(
|
266
|
+
function detectPackageManagerNameWithoutLockfile(packageJson) {
|
267
|
+
const packageJsonPackageManager = packageJson.packageManager;
|
279
268
|
if (usingCorepack(process.env, packageJsonPackageManager)) {
|
280
269
|
const corepackPackageManager = validateVersionSpecifier(
|
281
270
|
packageJsonPackageManager
|
@@ -320,26 +309,17 @@ async function walkParentDirsMulti({
|
|
320
309
|
start,
|
321
310
|
filenames
|
322
311
|
}) {
|
323
|
-
let packageManager;
|
324
312
|
for (const dir of traverseUpDirectories({ start, base })) {
|
325
313
|
const fullPaths = filenames.map((f) => import_path.default.join(dir, f));
|
326
314
|
const existResults = await Promise.all(
|
327
315
|
fullPaths.map((f) => import_fs_extra.default.pathExists(f))
|
328
316
|
);
|
329
317
|
const foundOneOrMore = existResults.some((b) => b);
|
330
|
-
const packageJsonPath = import_path.default.join(dir, "package.json");
|
331
|
-
const packageJson = await import_fs_extra.default.readJSON(packageJsonPath).catch(() => null);
|
332
|
-
if (packageJson?.packageManager) {
|
333
|
-
packageManager = packageJson.packageManager;
|
334
|
-
}
|
335
318
|
if (foundOneOrMore) {
|
336
|
-
return
|
337
|
-
paths: fullPaths.map((f, i) => existResults[i] ? f : void 0),
|
338
|
-
packageJsonPackageManager: packageManager
|
339
|
-
};
|
319
|
+
return fullPaths.map((f, i) => existResults[i] ? f : void 0);
|
340
320
|
}
|
341
321
|
}
|
342
|
-
return
|
322
|
+
return [];
|
343
323
|
}
|
344
324
|
function isSet(v) {
|
345
325
|
return v?.constructor?.name === "Set";
|
@@ -352,12 +332,7 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion)
|
|
352
332
|
(0, import_assert.default)(import_path.default.isAbsolute(destPath));
|
353
333
|
try {
|
354
334
|
await runNpmInstallSema.acquire();
|
355
|
-
const {
|
356
|
-
cliType,
|
357
|
-
packageJsonPath,
|
358
|
-
lockfileVersion,
|
359
|
-
packageJsonPackageManager
|
360
|
-
} = await scanParentDirs(destPath);
|
335
|
+
const { cliType, packageJsonPath, packageJson, lockfileVersion } = await scanParentDirs(destPath, true);
|
361
336
|
if (!packageJsonPath) {
|
362
337
|
(0, import_debug.default)(
|
363
338
|
`Skipping dependency installation because no package.json was found for ${destPath}`
|
@@ -386,7 +361,7 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion)
|
|
386
361
|
opts.env = getEnvForPackageManager({
|
387
362
|
cliType,
|
388
363
|
lockfileVersion,
|
389
|
-
packageJsonPackageManager,
|
364
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
390
365
|
nodeVersion,
|
391
366
|
env
|
392
367
|
});
|
@@ -450,9 +425,8 @@ function getEnvForPackageManager({
|
|
450
425
|
} = getPathOverrideForPackageManager({
|
451
426
|
cliType,
|
452
427
|
lockfileVersion,
|
453
|
-
|
454
|
-
nodeVersion
|
455
|
-
corepackEnabled
|
428
|
+
corepackEnabled,
|
429
|
+
nodeVersion
|
456
430
|
});
|
457
431
|
if (corepackEnabled) {
|
458
432
|
(0, import_debug.default)(
|
@@ -490,8 +464,10 @@ function getEnvForPackageManager({
|
|
490
464
|
}
|
491
465
|
return newEnv;
|
492
466
|
}
|
493
|
-
function detectPnpmVersion(lockfileVersion) {
|
467
|
+
function detectPnpmVersion(lockfileVersion, corepackEnabled) {
|
494
468
|
switch (true) {
|
469
|
+
case corepackEnabled:
|
470
|
+
return "corepack_enabled";
|
495
471
|
case lockfileVersion === void 0:
|
496
472
|
return "not found";
|
497
473
|
case lockfileVersion === 5.3:
|
@@ -506,155 +482,99 @@ function detectPnpmVersion(lockfileVersion) {
|
|
506
482
|
return "not found";
|
507
483
|
}
|
508
484
|
}
|
509
|
-
function
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
case "bun":
|
514
|
-
case "yarn":
|
515
|
-
return true;
|
516
|
-
case "pnpm":
|
517
|
-
switch (packageManagerMajorVersion) {
|
518
|
-
case 9:
|
519
|
-
if ("9.0.0" === packageManagerVersion.version && lockfileVersion === 6) {
|
520
|
-
return false;
|
521
|
-
}
|
522
|
-
return [6, 7, 9].includes(lockfileVersion);
|
523
|
-
case 8:
|
524
|
-
return [6, 6.1].includes(lockfileVersion);
|
525
|
-
case 7:
|
526
|
-
return [5.3, 5.4].includes(lockfileVersion);
|
527
|
-
case 6:
|
528
|
-
return [5.3, 5.4].includes(lockfileVersion);
|
529
|
-
default:
|
530
|
-
return true;
|
531
|
-
}
|
532
|
-
}
|
485
|
+
function shouldUseNpm7(lockfileVersion, nodeVersion) {
|
486
|
+
if (lockfileVersion === void 0)
|
487
|
+
return false;
|
488
|
+
return lockfileVersion >= 2 && (nodeVersion?.major || 0) < 16;
|
533
489
|
}
|
534
490
|
function getPathOverrideForPackageManager({
|
535
491
|
cliType,
|
536
492
|
lockfileVersion,
|
537
|
-
|
538
|
-
|
493
|
+
corepackEnabled,
|
494
|
+
nodeVersion
|
539
495
|
}) {
|
540
|
-
const
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
if (lockfileVersion === void 0 || !corepackEnabled) {
|
545
|
-
return NO_OVERRIDE;
|
546
|
-
}
|
547
|
-
if (validateCorepackPackageManager(
|
548
|
-
cliType,
|
549
|
-
lockfileVersion,
|
550
|
-
corepackPackageManager
|
551
|
-
)) {
|
552
|
-
return NO_OVERRIDE;
|
553
|
-
}
|
554
|
-
console.warn(
|
555
|
-
`WARN [package-manager-warning-1] Detected lockfile "${lockfileVersion}" which is not compatible with the intended corepack package manager "${corepackPackageManager}". Update your lockfile or change to a compatible corepack version.`
|
556
|
-
);
|
557
|
-
return NO_OVERRIDE;
|
558
|
-
}
|
559
|
-
function validateCorepackPackageManager(cliType, lockfileVersion, corepackPackageManager) {
|
560
|
-
const validatedCorepackPackageManager = validateVersionSpecifier(
|
561
|
-
corepackPackageManager
|
562
|
-
);
|
563
|
-
if (!validatedCorepackPackageManager) {
|
564
|
-
console.warn(
|
565
|
-
`WARN [package-manager-warning-2] Intended corepack defined package manager "${corepackPackageManager}" is not a valid semver value.`
|
566
|
-
);
|
567
|
-
return false;
|
568
|
-
}
|
569
|
-
if (cliType !== validatedCorepackPackageManager.packageName) {
|
570
|
-
console.warn(
|
571
|
-
`WARN [package-manager-warning-3] Detected package manager "${cliType}" does not match intended corepack defined package manager "${validatedCorepackPackageManager.packageName}". Change your lockfile or "package.json#packageManager" value to match.`
|
572
|
-
);
|
573
|
-
return false;
|
574
|
-
}
|
575
|
-
const corepackPackageManagerVersion = (0, import_semver.coerce)(
|
576
|
-
validatedCorepackPackageManager.packageVersionRange
|
577
|
-
);
|
578
|
-
if (corepackPackageManagerVersion === null) {
|
579
|
-
return true;
|
580
|
-
} else {
|
581
|
-
return validLockfileForPackageManager(
|
582
|
-
cliType,
|
583
|
-
lockfileVersion,
|
584
|
-
corepackPackageManagerVersion
|
585
|
-
);
|
586
|
-
}
|
587
|
-
}
|
588
|
-
function validateVersionSpecifier(version) {
|
589
|
-
if (!version) {
|
590
|
-
return void 0;
|
591
|
-
}
|
592
|
-
const [before, after, ...extra] = version.split("@");
|
593
|
-
if (extra.length) {
|
594
|
-
return void 0;
|
595
|
-
}
|
596
|
-
if (!before) {
|
597
|
-
return void 0;
|
598
|
-
}
|
599
|
-
if (!after) {
|
600
|
-
return void 0;
|
601
|
-
}
|
602
|
-
if (!(0, import_semver.validRange)(after)) {
|
603
|
-
return void 0;
|
604
|
-
}
|
605
|
-
return {
|
606
|
-
packageName: before,
|
607
|
-
packageVersionRange: after
|
496
|
+
const no_override = {
|
497
|
+
detectedLockfile: void 0,
|
498
|
+
detectedPackageManager: void 0,
|
499
|
+
path: void 0
|
608
500
|
};
|
609
|
-
}
|
610
|
-
function detectPackageManager(cliType, lockfileVersion) {
|
611
501
|
switch (cliType) {
|
612
502
|
case "npm":
|
613
|
-
|
503
|
+
switch (true) {
|
504
|
+
case corepackEnabled:
|
505
|
+
return no_override;
|
506
|
+
case shouldUseNpm7(lockfileVersion, nodeVersion):
|
507
|
+
return {
|
508
|
+
path: "/node16/bin-npm7",
|
509
|
+
detectedLockfile: "package-lock.json",
|
510
|
+
detectedPackageManager: "npm 7+"
|
511
|
+
};
|
512
|
+
default:
|
513
|
+
return no_override;
|
514
|
+
}
|
614
515
|
case "pnpm":
|
615
|
-
switch (detectPnpmVersion(lockfileVersion)) {
|
516
|
+
switch (detectPnpmVersion(lockfileVersion, corepackEnabled)) {
|
517
|
+
case "corepack_enabled":
|
518
|
+
return no_override;
|
616
519
|
case "pnpm 7":
|
617
520
|
return {
|
618
521
|
path: "/pnpm7/node_modules/.bin",
|
619
522
|
detectedLockfile: "pnpm-lock.yaml",
|
620
|
-
detectedPackageManager: "pnpm
|
523
|
+
detectedPackageManager: "pnpm 7"
|
621
524
|
};
|
622
525
|
case "pnpm 8":
|
623
526
|
return {
|
624
527
|
path: "/pnpm8/node_modules/.bin",
|
625
528
|
detectedLockfile: "pnpm-lock.yaml",
|
626
|
-
detectedPackageManager: "pnpm
|
529
|
+
detectedPackageManager: "pnpm 8"
|
627
530
|
};
|
628
531
|
case "pnpm 9":
|
629
532
|
return {
|
630
533
|
path: "/pnpm9/node_modules/.bin",
|
631
534
|
detectedLockfile: "pnpm-lock.yaml",
|
632
|
-
detectedPackageManager: "pnpm
|
535
|
+
detectedPackageManager: "pnpm 9"
|
633
536
|
};
|
634
537
|
case "pnpm 6":
|
635
|
-
return {
|
636
|
-
// undefined because pnpm@6 is the current default in the build container
|
637
|
-
path: void 0,
|
638
|
-
detectedLockfile: "pnpm-lock.yaml",
|
639
|
-
detectedPackageManager: "pnpm 6"
|
640
|
-
};
|
641
538
|
default:
|
642
|
-
return
|
539
|
+
return no_override;
|
643
540
|
}
|
644
541
|
case "bun":
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
542
|
+
switch (true) {
|
543
|
+
case corepackEnabled:
|
544
|
+
return no_override;
|
545
|
+
default:
|
546
|
+
return {
|
547
|
+
path: "/bun1",
|
548
|
+
detectedLockfile: "bun.lockb",
|
549
|
+
detectedPackageManager: "Bun"
|
550
|
+
};
|
551
|
+
}
|
650
552
|
case "yarn":
|
651
|
-
return
|
652
|
-
path: void 0,
|
653
|
-
detectedLockfile: "yarn.lock",
|
654
|
-
detectedPackageManager: "yarn"
|
655
|
-
};
|
553
|
+
return no_override;
|
656
554
|
}
|
657
555
|
}
|
556
|
+
function validateVersionSpecifier(version) {
|
557
|
+
if (!version) {
|
558
|
+
return void 0;
|
559
|
+
}
|
560
|
+
const [before, after, ...extra] = version.split("@");
|
561
|
+
if (extra.length) {
|
562
|
+
return void 0;
|
563
|
+
}
|
564
|
+
if (!before) {
|
565
|
+
return void 0;
|
566
|
+
}
|
567
|
+
if (!after) {
|
568
|
+
return void 0;
|
569
|
+
}
|
570
|
+
if (!(0, import_semver.validRange)(after)) {
|
571
|
+
return void 0;
|
572
|
+
}
|
573
|
+
return {
|
574
|
+
packageName: before,
|
575
|
+
packageVersionRange: after
|
576
|
+
};
|
577
|
+
}
|
658
578
|
function getPathForPackageManager({
|
659
579
|
cliType,
|
660
580
|
lockfileVersion,
|
@@ -662,15 +582,12 @@ function getPathForPackageManager({
|
|
662
582
|
env
|
663
583
|
}) {
|
664
584
|
const corepackEnabled = env.ENABLE_EXPERIMENTAL_COREPACK === "1";
|
665
|
-
|
585
|
+
const overrides = getPathOverrideForPackageManager({
|
666
586
|
cliType,
|
667
587
|
lockfileVersion,
|
668
|
-
|
588
|
+
corepackEnabled,
|
669
589
|
nodeVersion
|
670
590
|
});
|
671
|
-
if (corepackEnabled) {
|
672
|
-
overrides = NO_OVERRIDE;
|
673
|
-
}
|
674
591
|
const alreadyInPath = (newPath) => {
|
675
592
|
const oldPath = env.PATH ?? "";
|
676
593
|
return oldPath.split(import_path.default.delimiter).includes(newPath);
|
@@ -696,11 +613,14 @@ async function runCustomInstallCommand({
|
|
696
613
|
spawnOpts
|
697
614
|
}) {
|
698
615
|
console.log(`Running "install" command: \`${installCommand}\`...`);
|
699
|
-
const { cliType, lockfileVersion,
|
616
|
+
const { cliType, lockfileVersion, packageJson } = await scanParentDirs(
|
617
|
+
destPath,
|
618
|
+
true
|
619
|
+
);
|
700
620
|
const env = getEnvForPackageManager({
|
701
621
|
cliType,
|
702
622
|
lockfileVersion,
|
703
|
-
packageJsonPackageManager,
|
623
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
704
624
|
nodeVersion,
|
705
625
|
env: spawnOpts?.env || {}
|
706
626
|
});
|
@@ -713,7 +633,10 @@ async function runCustomInstallCommand({
|
|
713
633
|
}
|
714
634
|
async function runPackageJsonScript(destPath, scriptNames, spawnOpts) {
|
715
635
|
(0, import_assert.default)(import_path.default.isAbsolute(destPath));
|
716
|
-
const { packageJson, cliType, lockfileVersion
|
636
|
+
const { packageJson, cliType, lockfileVersion } = await scanParentDirs(
|
637
|
+
destPath,
|
638
|
+
true
|
639
|
+
);
|
717
640
|
const scriptName = getScriptName(
|
718
641
|
packageJson,
|
719
642
|
typeof scriptNames === "string" ? [scriptNames] : scriptNames
|
@@ -728,7 +651,7 @@ async function runPackageJsonScript(destPath, scriptNames, spawnOpts) {
|
|
728
651
|
env: getEnvForPackageManager({
|
729
652
|
cliType,
|
730
653
|
lockfileVersion,
|
731
|
-
packageJsonPackageManager,
|
654
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
732
655
|
nodeVersion: void 0,
|
733
656
|
env: (0, import_clone_env.cloneEnv)(process.env, spawnOpts?.env)
|
734
657
|
})
|
@@ -785,7 +708,6 @@ const installDependencies = (0, import_util.deprecate)(
|
|
785
708
|
);
|
786
709
|
// Annotate the CommonJS export names for ESM import in node:
|
787
710
|
0 && (module.exports = {
|
788
|
-
detectPackageManager,
|
789
711
|
execCommand,
|
790
712
|
getEnvForPackageManager,
|
791
713
|
getNodeBinPath,
|
package/dist/index.js
CHANGED
@@ -13072,7 +13072,7 @@ var require_readShebang = __commonJS({
|
|
13072
13072
|
// ../../node_modules/.pnpm/semver@5.7.2/node_modules/semver/semver.js
|
13073
13073
|
var require_semver = __commonJS({
|
13074
13074
|
"../../node_modules/.pnpm/semver@5.7.2/node_modules/semver/semver.js"(exports2, module2) {
|
13075
|
-
exports2 = module2.exports =
|
13075
|
+
exports2 = module2.exports = SemVer;
|
13076
13076
|
var debug2;
|
13077
13077
|
if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
|
13078
13078
|
debug2 = function() {
|
@@ -13205,7 +13205,7 @@ var require_semver = __commonJS({
|
|
13205
13205
|
includePrerelease: false
|
13206
13206
|
};
|
13207
13207
|
}
|
13208
|
-
if (version instanceof
|
13208
|
+
if (version instanceof SemVer) {
|
13209
13209
|
return version;
|
13210
13210
|
}
|
13211
13211
|
if (typeof version !== "string") {
|
@@ -13219,7 +13219,7 @@ var require_semver = __commonJS({
|
|
13219
13219
|
return null;
|
13220
13220
|
}
|
13221
13221
|
try {
|
13222
|
-
return new
|
13222
|
+
return new SemVer(version, options);
|
13223
13223
|
} catch (er) {
|
13224
13224
|
return null;
|
13225
13225
|
}
|
@@ -13234,15 +13234,15 @@ var require_semver = __commonJS({
|
|
13234
13234
|
var s = parse2(version.trim().replace(/^[=v]+/, ""), options);
|
13235
13235
|
return s ? s.version : null;
|
13236
13236
|
}
|
13237
|
-
exports2.SemVer =
|
13238
|
-
function
|
13237
|
+
exports2.SemVer = SemVer;
|
13238
|
+
function SemVer(version, options) {
|
13239
13239
|
if (!options || typeof options !== "object") {
|
13240
13240
|
options = {
|
13241
13241
|
loose: !!options,
|
13242
13242
|
includePrerelease: false
|
13243
13243
|
};
|
13244
13244
|
}
|
13245
|
-
if (version instanceof
|
13245
|
+
if (version instanceof SemVer) {
|
13246
13246
|
if (version.loose === options.loose) {
|
13247
13247
|
return version;
|
13248
13248
|
} else {
|
@@ -13254,8 +13254,8 @@ var require_semver = __commonJS({
|
|
13254
13254
|
if (version.length > MAX_LENGTH) {
|
13255
13255
|
throw new TypeError("version is longer than " + MAX_LENGTH + " characters");
|
13256
13256
|
}
|
13257
|
-
if (!(this instanceof
|
13258
|
-
return new
|
13257
|
+
if (!(this instanceof SemVer)) {
|
13258
|
+
return new SemVer(version, options);
|
13259
13259
|
}
|
13260
13260
|
debug2("SemVer", version, options);
|
13261
13261
|
this.options = options;
|
@@ -13293,32 +13293,32 @@ var require_semver = __commonJS({
|
|
13293
13293
|
this.build = m[5] ? m[5].split(".") : [];
|
13294
13294
|
this.format();
|
13295
13295
|
}
|
13296
|
-
|
13296
|
+
SemVer.prototype.format = function() {
|
13297
13297
|
this.version = this.major + "." + this.minor + "." + this.patch;
|
13298
13298
|
if (this.prerelease.length) {
|
13299
13299
|
this.version += "-" + this.prerelease.join(".");
|
13300
13300
|
}
|
13301
13301
|
return this.version;
|
13302
13302
|
};
|
13303
|
-
|
13303
|
+
SemVer.prototype.toString = function() {
|
13304
13304
|
return this.version;
|
13305
13305
|
};
|
13306
|
-
|
13306
|
+
SemVer.prototype.compare = function(other) {
|
13307
13307
|
debug2("SemVer.compare", this.version, this.options, other);
|
13308
|
-
if (!(other instanceof
|
13309
|
-
other = new
|
13308
|
+
if (!(other instanceof SemVer)) {
|
13309
|
+
other = new SemVer(other, this.options);
|
13310
13310
|
}
|
13311
13311
|
return this.compareMain(other) || this.comparePre(other);
|
13312
13312
|
};
|
13313
|
-
|
13314
|
-
if (!(other instanceof
|
13315
|
-
other = new
|
13313
|
+
SemVer.prototype.compareMain = function(other) {
|
13314
|
+
if (!(other instanceof SemVer)) {
|
13315
|
+
other = new SemVer(other, this.options);
|
13316
13316
|
}
|
13317
13317
|
return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
|
13318
13318
|
};
|
13319
|
-
|
13320
|
-
if (!(other instanceof
|
13321
|
-
other = new
|
13319
|
+
SemVer.prototype.comparePre = function(other) {
|
13320
|
+
if (!(other instanceof SemVer)) {
|
13321
|
+
other = new SemVer(other, this.options);
|
13322
13322
|
}
|
13323
13323
|
if (this.prerelease.length && !other.prerelease.length) {
|
13324
13324
|
return -1;
|
@@ -13345,7 +13345,7 @@ var require_semver = __commonJS({
|
|
13345
13345
|
}
|
13346
13346
|
} while (++i2);
|
13347
13347
|
};
|
13348
|
-
|
13348
|
+
SemVer.prototype.inc = function(release, identifier) {
|
13349
13349
|
switch (release) {
|
13350
13350
|
case "premajor":
|
13351
13351
|
this.prerelease.length = 0;
|
@@ -13431,7 +13431,7 @@ var require_semver = __commonJS({
|
|
13431
13431
|
loose = void 0;
|
13432
13432
|
}
|
13433
13433
|
try {
|
13434
|
-
return new
|
13434
|
+
return new SemVer(version, loose).inc(release, identifier).version;
|
13435
13435
|
} catch (er) {
|
13436
13436
|
return null;
|
13437
13437
|
}
|
@@ -13475,19 +13475,19 @@ var require_semver = __commonJS({
|
|
13475
13475
|
}
|
13476
13476
|
exports2.major = major;
|
13477
13477
|
function major(a, loose) {
|
13478
|
-
return new
|
13478
|
+
return new SemVer(a, loose).major;
|
13479
13479
|
}
|
13480
13480
|
exports2.minor = minor;
|
13481
13481
|
function minor(a, loose) {
|
13482
|
-
return new
|
13482
|
+
return new SemVer(a, loose).minor;
|
13483
13483
|
}
|
13484
13484
|
exports2.patch = patch;
|
13485
13485
|
function patch(a, loose) {
|
13486
|
-
return new
|
13486
|
+
return new SemVer(a, loose).patch;
|
13487
13487
|
}
|
13488
13488
|
exports2.compare = compare;
|
13489
13489
|
function compare(a, b, loose) {
|
13490
|
-
return new
|
13490
|
+
return new SemVer(a, loose).compare(new SemVer(b, loose));
|
13491
13491
|
}
|
13492
13492
|
exports2.compareLoose = compareLoose;
|
13493
13493
|
function compareLoose(a, b) {
|
@@ -13610,7 +13610,7 @@ var require_semver = __commonJS({
|
|
13610
13610
|
if (!m[2]) {
|
13611
13611
|
this.semver = ANY;
|
13612
13612
|
} else {
|
13613
|
-
this.semver = new
|
13613
|
+
this.semver = new SemVer(m[2], this.options.loose);
|
13614
13614
|
}
|
13615
13615
|
};
|
13616
13616
|
Comparator.prototype.toString = function() {
|
@@ -13622,7 +13622,7 @@ var require_semver = __commonJS({
|
|
13622
13622
|
return true;
|
13623
13623
|
}
|
13624
13624
|
if (typeof version === "string") {
|
13625
|
-
version = new
|
13625
|
+
version = new SemVer(version, this.options);
|
13626
13626
|
}
|
13627
13627
|
return cmp(version, this.operator, this.semver, this.options);
|
13628
13628
|
};
|
@@ -13919,7 +13919,7 @@ var require_semver = __commonJS({
|
|
13919
13919
|
return false;
|
13920
13920
|
}
|
13921
13921
|
if (typeof version === "string") {
|
13922
|
-
version = new
|
13922
|
+
version = new SemVer(version, this.options);
|
13923
13923
|
}
|
13924
13924
|
for (var i2 = 0; i2 < this.set.length; i2++) {
|
13925
13925
|
if (testSet(this.set[i2], version, this.options)) {
|
@@ -13973,7 +13973,7 @@ var require_semver = __commonJS({
|
|
13973
13973
|
if (rangeObj.test(v)) {
|
13974
13974
|
if (!max || maxSV.compare(v) === -1) {
|
13975
13975
|
max = v;
|
13976
|
-
maxSV = new
|
13976
|
+
maxSV = new SemVer(max, options);
|
13977
13977
|
}
|
13978
13978
|
}
|
13979
13979
|
});
|
@@ -13992,7 +13992,7 @@ var require_semver = __commonJS({
|
|
13992
13992
|
if (rangeObj.test(v)) {
|
13993
13993
|
if (!min || minSV.compare(v) === 1) {
|
13994
13994
|
min = v;
|
13995
|
-
minSV = new
|
13995
|
+
minSV = new SemVer(min, options);
|
13996
13996
|
}
|
13997
13997
|
}
|
13998
13998
|
});
|
@@ -14001,11 +14001,11 @@ var require_semver = __commonJS({
|
|
14001
14001
|
exports2.minVersion = minVersion;
|
14002
14002
|
function minVersion(range, loose) {
|
14003
14003
|
range = new Range(range, loose);
|
14004
|
-
var minver = new
|
14004
|
+
var minver = new SemVer("0.0.0");
|
14005
14005
|
if (range.test(minver)) {
|
14006
14006
|
return minver;
|
14007
14007
|
}
|
14008
|
-
minver = new
|
14008
|
+
minver = new SemVer("0.0.0-0");
|
14009
14009
|
if (range.test(minver)) {
|
14010
14010
|
return minver;
|
14011
14011
|
}
|
@@ -14013,7 +14013,7 @@ var require_semver = __commonJS({
|
|
14013
14013
|
for (var i2 = 0; i2 < range.set.length; ++i2) {
|
14014
14014
|
var comparators = range.set[i2];
|
14015
14015
|
comparators.forEach(function(comparator) {
|
14016
|
-
var compver = new
|
14016
|
+
var compver = new SemVer(comparator.semver.version);
|
14017
14017
|
switch (comparator.operator) {
|
14018
14018
|
case ">":
|
14019
14019
|
if (compver.prerelease.length === 0) {
|
@@ -14059,7 +14059,7 @@ var require_semver = __commonJS({
|
|
14059
14059
|
}
|
14060
14060
|
exports2.outside = outside;
|
14061
14061
|
function outside(version, range, hilo, options) {
|
14062
|
-
version = new
|
14062
|
+
version = new SemVer(version, options);
|
14063
14063
|
range = new Range(range, options);
|
14064
14064
|
var gtfn, ltefn, ltfn, comp, ecomp;
|
14065
14065
|
switch (hilo) {
|
@@ -14123,7 +14123,7 @@ var require_semver = __commonJS({
|
|
14123
14123
|
}
|
14124
14124
|
exports2.coerce = coerce2;
|
14125
14125
|
function coerce2(version) {
|
14126
|
-
if (version instanceof
|
14126
|
+
if (version instanceof SemVer) {
|
14127
14127
|
return version;
|
14128
14128
|
}
|
14129
14129
|
if (typeof version !== "string") {
|
@@ -14304,7 +14304,7 @@ var require_cross_spawn = __commonJS({
|
|
14304
14304
|
// ../../node_modules/.pnpm/semver@6.3.1/node_modules/semver/semver.js
|
14305
14305
|
var require_semver2 = __commonJS({
|
14306
14306
|
"../../node_modules/.pnpm/semver@6.3.1/node_modules/semver/semver.js"(exports2, module2) {
|
14307
|
-
exports2 = module2.exports =
|
14307
|
+
exports2 = module2.exports = SemVer;
|
14308
14308
|
var debug2;
|
14309
14309
|
if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
|
14310
14310
|
debug2 = function() {
|
@@ -14446,7 +14446,7 @@ var require_semver2 = __commonJS({
|
|
14446
14446
|
includePrerelease: false
|
14447
14447
|
};
|
14448
14448
|
}
|
14449
|
-
if (version instanceof
|
14449
|
+
if (version instanceof SemVer) {
|
14450
14450
|
return version;
|
14451
14451
|
}
|
14452
14452
|
if (typeof version !== "string") {
|
@@ -14460,7 +14460,7 @@ var require_semver2 = __commonJS({
|
|
14460
14460
|
return null;
|
14461
14461
|
}
|
14462
14462
|
try {
|
14463
|
-
return new
|
14463
|
+
return new SemVer(version, options);
|
14464
14464
|
} catch (er) {
|
14465
14465
|
return null;
|
14466
14466
|
}
|
@@ -14475,15 +14475,15 @@ var require_semver2 = __commonJS({
|
|
14475
14475
|
var s = parse2(version.trim().replace(/^[=v]+/, ""), options);
|
14476
14476
|
return s ? s.version : null;
|
14477
14477
|
}
|
14478
|
-
exports2.SemVer =
|
14479
|
-
function
|
14478
|
+
exports2.SemVer = SemVer;
|
14479
|
+
function SemVer(version, options) {
|
14480
14480
|
if (!options || typeof options !== "object") {
|
14481
14481
|
options = {
|
14482
14482
|
loose: !!options,
|
14483
14483
|
includePrerelease: false
|
14484
14484
|
};
|
14485
14485
|
}
|
14486
|
-
if (version instanceof
|
14486
|
+
if (version instanceof SemVer) {
|
14487
14487
|
if (version.loose === options.loose) {
|
14488
14488
|
return version;
|
14489
14489
|
} else {
|
@@ -14495,8 +14495,8 @@ var require_semver2 = __commonJS({
|
|
14495
14495
|
if (version.length > MAX_LENGTH) {
|
14496
14496
|
throw new TypeError("version is longer than " + MAX_LENGTH + " characters");
|
14497
14497
|
}
|
14498
|
-
if (!(this instanceof
|
14499
|
-
return new
|
14498
|
+
if (!(this instanceof SemVer)) {
|
14499
|
+
return new SemVer(version, options);
|
14500
14500
|
}
|
14501
14501
|
debug2("SemVer", version, options);
|
14502
14502
|
this.options = options;
|
@@ -14534,32 +14534,32 @@ var require_semver2 = __commonJS({
|
|
14534
14534
|
this.build = m[5] ? m[5].split(".") : [];
|
14535
14535
|
this.format();
|
14536
14536
|
}
|
14537
|
-
|
14537
|
+
SemVer.prototype.format = function() {
|
14538
14538
|
this.version = this.major + "." + this.minor + "." + this.patch;
|
14539
14539
|
if (this.prerelease.length) {
|
14540
14540
|
this.version += "-" + this.prerelease.join(".");
|
14541
14541
|
}
|
14542
14542
|
return this.version;
|
14543
14543
|
};
|
14544
|
-
|
14544
|
+
SemVer.prototype.toString = function() {
|
14545
14545
|
return this.version;
|
14546
14546
|
};
|
14547
|
-
|
14547
|
+
SemVer.prototype.compare = function(other) {
|
14548
14548
|
debug2("SemVer.compare", this.version, this.options, other);
|
14549
|
-
if (!(other instanceof
|
14550
|
-
other = new
|
14549
|
+
if (!(other instanceof SemVer)) {
|
14550
|
+
other = new SemVer(other, this.options);
|
14551
14551
|
}
|
14552
14552
|
return this.compareMain(other) || this.comparePre(other);
|
14553
14553
|
};
|
14554
|
-
|
14555
|
-
if (!(other instanceof
|
14556
|
-
other = new
|
14554
|
+
SemVer.prototype.compareMain = function(other) {
|
14555
|
+
if (!(other instanceof SemVer)) {
|
14556
|
+
other = new SemVer(other, this.options);
|
14557
14557
|
}
|
14558
14558
|
return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
|
14559
14559
|
};
|
14560
|
-
|
14561
|
-
if (!(other instanceof
|
14562
|
-
other = new
|
14560
|
+
SemVer.prototype.comparePre = function(other) {
|
14561
|
+
if (!(other instanceof SemVer)) {
|
14562
|
+
other = new SemVer(other, this.options);
|
14563
14563
|
}
|
14564
14564
|
if (this.prerelease.length && !other.prerelease.length) {
|
14565
14565
|
return -1;
|
@@ -14586,9 +14586,9 @@ var require_semver2 = __commonJS({
|
|
14586
14586
|
}
|
14587
14587
|
} while (++i2);
|
14588
14588
|
};
|
14589
|
-
|
14590
|
-
if (!(other instanceof
|
14591
|
-
other = new
|
14589
|
+
SemVer.prototype.compareBuild = function(other) {
|
14590
|
+
if (!(other instanceof SemVer)) {
|
14591
|
+
other = new SemVer(other, this.options);
|
14592
14592
|
}
|
14593
14593
|
var i2 = 0;
|
14594
14594
|
do {
|
@@ -14608,7 +14608,7 @@ var require_semver2 = __commonJS({
|
|
14608
14608
|
}
|
14609
14609
|
} while (++i2);
|
14610
14610
|
};
|
14611
|
-
|
14611
|
+
SemVer.prototype.inc = function(release, identifier) {
|
14612
14612
|
switch (release) {
|
14613
14613
|
case "premajor":
|
14614
14614
|
this.prerelease.length = 0;
|
@@ -14694,7 +14694,7 @@ var require_semver2 = __commonJS({
|
|
14694
14694
|
loose = void 0;
|
14695
14695
|
}
|
14696
14696
|
try {
|
14697
|
-
return new
|
14697
|
+
return new SemVer(version, loose).inc(release, identifier).version;
|
14698
14698
|
} catch (er) {
|
14699
14699
|
return null;
|
14700
14700
|
}
|
@@ -14738,19 +14738,19 @@ var require_semver2 = __commonJS({
|
|
14738
14738
|
}
|
14739
14739
|
exports2.major = major;
|
14740
14740
|
function major(a, loose) {
|
14741
|
-
return new
|
14741
|
+
return new SemVer(a, loose).major;
|
14742
14742
|
}
|
14743
14743
|
exports2.minor = minor;
|
14744
14744
|
function minor(a, loose) {
|
14745
|
-
return new
|
14745
|
+
return new SemVer(a, loose).minor;
|
14746
14746
|
}
|
14747
14747
|
exports2.patch = patch;
|
14748
14748
|
function patch(a, loose) {
|
14749
|
-
return new
|
14749
|
+
return new SemVer(a, loose).patch;
|
14750
14750
|
}
|
14751
14751
|
exports2.compare = compare;
|
14752
14752
|
function compare(a, b, loose) {
|
14753
|
-
return new
|
14753
|
+
return new SemVer(a, loose).compare(new SemVer(b, loose));
|
14754
14754
|
}
|
14755
14755
|
exports2.compareLoose = compareLoose;
|
14756
14756
|
function compareLoose(a, b) {
|
@@ -14758,8 +14758,8 @@ var require_semver2 = __commonJS({
|
|
14758
14758
|
}
|
14759
14759
|
exports2.compareBuild = compareBuild;
|
14760
14760
|
function compareBuild(a, b, loose) {
|
14761
|
-
var versionA = new
|
14762
|
-
var versionB = new
|
14761
|
+
var versionA = new SemVer(a, loose);
|
14762
|
+
var versionB = new SemVer(b, loose);
|
14763
14763
|
return versionA.compare(versionB) || versionA.compareBuild(versionB);
|
14764
14764
|
}
|
14765
14765
|
exports2.rcompare = rcompare;
|
@@ -14879,7 +14879,7 @@ var require_semver2 = __commonJS({
|
|
14879
14879
|
if (!m[2]) {
|
14880
14880
|
this.semver = ANY;
|
14881
14881
|
} else {
|
14882
|
-
this.semver = new
|
14882
|
+
this.semver = new SemVer(m[2], this.options.loose);
|
14883
14883
|
}
|
14884
14884
|
};
|
14885
14885
|
Comparator.prototype.toString = function() {
|
@@ -14892,7 +14892,7 @@ var require_semver2 = __commonJS({
|
|
14892
14892
|
}
|
14893
14893
|
if (typeof version === "string") {
|
14894
14894
|
try {
|
14895
|
-
version = new
|
14895
|
+
version = new SemVer(version, this.options);
|
14896
14896
|
} catch (er) {
|
14897
14897
|
return false;
|
14898
14898
|
}
|
@@ -15213,7 +15213,7 @@ var require_semver2 = __commonJS({
|
|
15213
15213
|
}
|
15214
15214
|
if (typeof version === "string") {
|
15215
15215
|
try {
|
15216
|
-
version = new
|
15216
|
+
version = new SemVer(version, this.options);
|
15217
15217
|
} catch (er) {
|
15218
15218
|
return false;
|
15219
15219
|
}
|
@@ -15270,7 +15270,7 @@ var require_semver2 = __commonJS({
|
|
15270
15270
|
if (rangeObj.test(v)) {
|
15271
15271
|
if (!max || maxSV.compare(v) === -1) {
|
15272
15272
|
max = v;
|
15273
|
-
maxSV = new
|
15273
|
+
maxSV = new SemVer(max, options);
|
15274
15274
|
}
|
15275
15275
|
}
|
15276
15276
|
});
|
@@ -15289,7 +15289,7 @@ var require_semver2 = __commonJS({
|
|
15289
15289
|
if (rangeObj.test(v)) {
|
15290
15290
|
if (!min || minSV.compare(v) === 1) {
|
15291
15291
|
min = v;
|
15292
|
-
minSV = new
|
15292
|
+
minSV = new SemVer(min, options);
|
15293
15293
|
}
|
15294
15294
|
}
|
15295
15295
|
});
|
@@ -15298,11 +15298,11 @@ var require_semver2 = __commonJS({
|
|
15298
15298
|
exports2.minVersion = minVersion;
|
15299
15299
|
function minVersion(range, loose) {
|
15300
15300
|
range = new Range(range, loose);
|
15301
|
-
var minver = new
|
15301
|
+
var minver = new SemVer("0.0.0");
|
15302
15302
|
if (range.test(minver)) {
|
15303
15303
|
return minver;
|
15304
15304
|
}
|
15305
|
-
minver = new
|
15305
|
+
minver = new SemVer("0.0.0-0");
|
15306
15306
|
if (range.test(minver)) {
|
15307
15307
|
return minver;
|
15308
15308
|
}
|
@@ -15310,7 +15310,7 @@ var require_semver2 = __commonJS({
|
|
15310
15310
|
for (var i2 = 0; i2 < range.set.length; ++i2) {
|
15311
15311
|
var comparators = range.set[i2];
|
15312
15312
|
comparators.forEach(function(comparator) {
|
15313
|
-
var compver = new
|
15313
|
+
var compver = new SemVer(comparator.semver.version);
|
15314
15314
|
switch (comparator.operator) {
|
15315
15315
|
case ">":
|
15316
15316
|
if (compver.prerelease.length === 0) {
|
@@ -15356,7 +15356,7 @@ var require_semver2 = __commonJS({
|
|
15356
15356
|
}
|
15357
15357
|
exports2.outside = outside;
|
15358
15358
|
function outside(version, range, hilo, options) {
|
15359
|
-
version = new
|
15359
|
+
version = new SemVer(version, options);
|
15360
15360
|
range = new Range(range, options);
|
15361
15361
|
var gtfn, ltefn, ltfn, comp, ecomp;
|
15362
15362
|
switch (hilo) {
|
@@ -15420,7 +15420,7 @@ var require_semver2 = __commonJS({
|
|
15420
15420
|
}
|
15421
15421
|
exports2.coerce = coerce2;
|
15422
15422
|
function coerce2(version, options) {
|
15423
|
-
if (version instanceof
|
15423
|
+
if (version instanceof SemVer) {
|
15424
15424
|
return version;
|
15425
15425
|
}
|
15426
15426
|
if (typeof version === "number") {
|
@@ -21786,11 +21786,6 @@ function cloneEnv(...envs) {
|
|
21786
21786
|
|
21787
21787
|
// src/fs/run-user-scripts.ts
|
21788
21788
|
var runNpmInstallSema = new import_async_sema4.default(1);
|
21789
|
-
var NO_OVERRIDE = {
|
21790
|
-
detectedLockfile: void 0,
|
21791
|
-
detectedPackageManager: void 0,
|
21792
|
-
path: void 0
|
21793
|
-
};
|
21794
21789
|
function spawnAsync(command, args, opts = {}) {
|
21795
21790
|
return new Promise((resolve, reject) => {
|
21796
21791
|
const stderrLogs = [];
|
@@ -21940,10 +21935,7 @@ async function scanParentDirs(destPath, readPackageJson = false, base = "/") {
|
|
21940
21935
|
filename: "package.json"
|
21941
21936
|
});
|
21942
21937
|
const packageJson = readPackageJson && pkgJsonPath ? JSON.parse(await import_fs_extra7.default.readFile(pkgJsonPath, "utf8")) : void 0;
|
21943
|
-
const {
|
21944
|
-
paths: [yarnLockPath, npmLockPath, pnpmLockPath, bunLockPath],
|
21945
|
-
packageJsonPackageManager
|
21946
|
-
} = await walkParentDirsMulti({
|
21938
|
+
const [yarnLockPath, npmLockPath, pnpmLockPath, bunLockPath] = await walkParentDirsMulti({
|
21947
21939
|
base,
|
21948
21940
|
start: destPath,
|
21949
21941
|
filenames: [
|
@@ -21982,21 +21974,19 @@ async function scanParentDirs(destPath, readPackageJson = false, base = "/") {
|
|
21982
21974
|
lockfilePath = bunLockPath;
|
21983
21975
|
lockfileVersion = 0;
|
21984
21976
|
} else {
|
21985
|
-
cliType = detectPackageManagerNameWithoutLockfile(
|
21986
|
-
packageJsonPackageManager
|
21987
|
-
);
|
21977
|
+
cliType = packageJson ? detectPackageManagerNameWithoutLockfile(packageJson) : "npm";
|
21988
21978
|
}
|
21989
21979
|
const packageJsonPath = pkgJsonPath || void 0;
|
21990
21980
|
return {
|
21991
21981
|
cliType,
|
21992
21982
|
packageJson,
|
21993
|
-
packageJsonPackageManager,
|
21994
21983
|
lockfilePath,
|
21995
21984
|
lockfileVersion,
|
21996
21985
|
packageJsonPath
|
21997
21986
|
};
|
21998
21987
|
}
|
21999
|
-
function detectPackageManagerNameWithoutLockfile(
|
21988
|
+
function detectPackageManagerNameWithoutLockfile(packageJson) {
|
21989
|
+
const packageJsonPackageManager = packageJson.packageManager;
|
22000
21990
|
if (usingCorepack(process.env, packageJsonPackageManager)) {
|
22001
21991
|
const corepackPackageManager = validateVersionSpecifier(
|
22002
21992
|
packageJsonPackageManager
|
@@ -22041,26 +22031,17 @@ async function walkParentDirsMulti({
|
|
22041
22031
|
start,
|
22042
22032
|
filenames
|
22043
22033
|
}) {
|
22044
|
-
let packageManager;
|
22045
22034
|
for (const dir of traverseUpDirectories({ start, base })) {
|
22046
22035
|
const fullPaths = filenames.map((f) => import_path5.default.join(dir, f));
|
22047
22036
|
const existResults = await Promise.all(
|
22048
22037
|
fullPaths.map((f) => import_fs_extra7.default.pathExists(f))
|
22049
22038
|
);
|
22050
22039
|
const foundOneOrMore = existResults.some((b) => b);
|
22051
|
-
const packageJsonPath = import_path5.default.join(dir, "package.json");
|
22052
|
-
const packageJson = await import_fs_extra7.default.readJSON(packageJsonPath).catch(() => null);
|
22053
|
-
if (packageJson?.packageManager) {
|
22054
|
-
packageManager = packageJson.packageManager;
|
22055
|
-
}
|
22056
22040
|
if (foundOneOrMore) {
|
22057
|
-
return
|
22058
|
-
paths: fullPaths.map((f, i) => existResults[i] ? f : void 0),
|
22059
|
-
packageJsonPackageManager: packageManager
|
22060
|
-
};
|
22041
|
+
return fullPaths.map((f, i) => existResults[i] ? f : void 0);
|
22061
22042
|
}
|
22062
22043
|
}
|
22063
|
-
return
|
22044
|
+
return [];
|
22064
22045
|
}
|
22065
22046
|
function isSet(v) {
|
22066
22047
|
return v?.constructor?.name === "Set";
|
@@ -22073,12 +22054,7 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion)
|
|
22073
22054
|
(0, import_assert6.default)(import_path5.default.isAbsolute(destPath));
|
22074
22055
|
try {
|
22075
22056
|
await runNpmInstallSema.acquire();
|
22076
|
-
const {
|
22077
|
-
cliType,
|
22078
|
-
packageJsonPath,
|
22079
|
-
lockfileVersion,
|
22080
|
-
packageJsonPackageManager
|
22081
|
-
} = await scanParentDirs(destPath);
|
22057
|
+
const { cliType, packageJsonPath, packageJson, lockfileVersion } = await scanParentDirs(destPath, true);
|
22082
22058
|
if (!packageJsonPath) {
|
22083
22059
|
debug(
|
22084
22060
|
`Skipping dependency installation because no package.json was found for ${destPath}`
|
@@ -22107,7 +22083,7 @@ async function runNpmInstall(destPath, args = [], spawnOpts, meta, nodeVersion)
|
|
22107
22083
|
opts.env = getEnvForPackageManager({
|
22108
22084
|
cliType,
|
22109
22085
|
lockfileVersion,
|
22110
|
-
packageJsonPackageManager,
|
22086
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
22111
22087
|
nodeVersion,
|
22112
22088
|
env
|
22113
22089
|
});
|
@@ -22171,9 +22147,8 @@ function getEnvForPackageManager({
|
|
22171
22147
|
} = getPathOverrideForPackageManager({
|
22172
22148
|
cliType,
|
22173
22149
|
lockfileVersion,
|
22174
|
-
|
22175
|
-
nodeVersion
|
22176
|
-
corepackEnabled
|
22150
|
+
corepackEnabled,
|
22151
|
+
nodeVersion
|
22177
22152
|
});
|
22178
22153
|
if (corepackEnabled) {
|
22179
22154
|
debug(
|
@@ -22211,8 +22186,10 @@ function getEnvForPackageManager({
|
|
22211
22186
|
}
|
22212
22187
|
return newEnv;
|
22213
22188
|
}
|
22214
|
-
function detectPnpmVersion(lockfileVersion) {
|
22189
|
+
function detectPnpmVersion(lockfileVersion, corepackEnabled) {
|
22215
22190
|
switch (true) {
|
22191
|
+
case corepackEnabled:
|
22192
|
+
return "corepack_enabled";
|
22216
22193
|
case lockfileVersion === void 0:
|
22217
22194
|
return "not found";
|
22218
22195
|
case lockfileVersion === 5.3:
|
@@ -22227,154 +22204,98 @@ function detectPnpmVersion(lockfileVersion) {
|
|
22227
22204
|
return "not found";
|
22228
22205
|
}
|
22229
22206
|
}
|
22230
|
-
function
|
22231
|
-
|
22232
|
-
|
22233
|
-
|
22234
|
-
case "bun":
|
22235
|
-
case "yarn":
|
22236
|
-
return true;
|
22237
|
-
case "pnpm":
|
22238
|
-
switch (packageManagerMajorVersion) {
|
22239
|
-
case 9:
|
22240
|
-
if ("9.0.0" === packageManagerVersion.version && lockfileVersion === 6) {
|
22241
|
-
return false;
|
22242
|
-
}
|
22243
|
-
return [6, 7, 9].includes(lockfileVersion);
|
22244
|
-
case 8:
|
22245
|
-
return [6, 6.1].includes(lockfileVersion);
|
22246
|
-
case 7:
|
22247
|
-
return [5.3, 5.4].includes(lockfileVersion);
|
22248
|
-
case 6:
|
22249
|
-
return [5.3, 5.4].includes(lockfileVersion);
|
22250
|
-
default:
|
22251
|
-
return true;
|
22252
|
-
}
|
22253
|
-
}
|
22207
|
+
function shouldUseNpm7(lockfileVersion, nodeVersion) {
|
22208
|
+
if (lockfileVersion === void 0)
|
22209
|
+
return false;
|
22210
|
+
return lockfileVersion >= 2 && (nodeVersion?.major || 0) < 16;
|
22254
22211
|
}
|
22255
22212
|
function getPathOverrideForPackageManager({
|
22256
22213
|
cliType,
|
22257
22214
|
lockfileVersion,
|
22258
|
-
|
22259
|
-
|
22215
|
+
corepackEnabled,
|
22216
|
+
nodeVersion
|
22260
22217
|
}) {
|
22261
|
-
const
|
22262
|
-
|
22263
|
-
|
22264
|
-
|
22265
|
-
if (lockfileVersion === void 0 || !corepackEnabled) {
|
22266
|
-
return NO_OVERRIDE;
|
22267
|
-
}
|
22268
|
-
if (validateCorepackPackageManager(
|
22269
|
-
cliType,
|
22270
|
-
lockfileVersion,
|
22271
|
-
corepackPackageManager
|
22272
|
-
)) {
|
22273
|
-
return NO_OVERRIDE;
|
22274
|
-
}
|
22275
|
-
console.warn(
|
22276
|
-
`WARN [package-manager-warning-1] Detected lockfile "${lockfileVersion}" which is not compatible with the intended corepack package manager "${corepackPackageManager}". Update your lockfile or change to a compatible corepack version.`
|
22277
|
-
);
|
22278
|
-
return NO_OVERRIDE;
|
22279
|
-
}
|
22280
|
-
function validateCorepackPackageManager(cliType, lockfileVersion, corepackPackageManager) {
|
22281
|
-
const validatedCorepackPackageManager = validateVersionSpecifier(
|
22282
|
-
corepackPackageManager
|
22283
|
-
);
|
22284
|
-
if (!validatedCorepackPackageManager) {
|
22285
|
-
console.warn(
|
22286
|
-
`WARN [package-manager-warning-2] Intended corepack defined package manager "${corepackPackageManager}" is not a valid semver value.`
|
22287
|
-
);
|
22288
|
-
return false;
|
22289
|
-
}
|
22290
|
-
if (cliType !== validatedCorepackPackageManager.packageName) {
|
22291
|
-
console.warn(
|
22292
|
-
`WARN [package-manager-warning-3] Detected package manager "${cliType}" does not match intended corepack defined package manager "${validatedCorepackPackageManager.packageName}". Change your lockfile or "package.json#packageManager" value to match.`
|
22293
|
-
);
|
22294
|
-
return false;
|
22295
|
-
}
|
22296
|
-
const corepackPackageManagerVersion = (0, import_semver2.coerce)(
|
22297
|
-
validatedCorepackPackageManager.packageVersionRange
|
22298
|
-
);
|
22299
|
-
if (corepackPackageManagerVersion === null) {
|
22300
|
-
return true;
|
22301
|
-
} else {
|
22302
|
-
return validLockfileForPackageManager(
|
22303
|
-
cliType,
|
22304
|
-
lockfileVersion,
|
22305
|
-
corepackPackageManagerVersion
|
22306
|
-
);
|
22307
|
-
}
|
22308
|
-
}
|
22309
|
-
function validateVersionSpecifier(version) {
|
22310
|
-
if (!version) {
|
22311
|
-
return void 0;
|
22312
|
-
}
|
22313
|
-
const [before, after, ...extra] = version.split("@");
|
22314
|
-
if (extra.length) {
|
22315
|
-
return void 0;
|
22316
|
-
}
|
22317
|
-
if (!before) {
|
22318
|
-
return void 0;
|
22319
|
-
}
|
22320
|
-
if (!after) {
|
22321
|
-
return void 0;
|
22322
|
-
}
|
22323
|
-
if (!(0, import_semver2.validRange)(after)) {
|
22324
|
-
return void 0;
|
22325
|
-
}
|
22326
|
-
return {
|
22327
|
-
packageName: before,
|
22328
|
-
packageVersionRange: after
|
22218
|
+
const no_override = {
|
22219
|
+
detectedLockfile: void 0,
|
22220
|
+
detectedPackageManager: void 0,
|
22221
|
+
path: void 0
|
22329
22222
|
};
|
22330
|
-
}
|
22331
|
-
function detectPackageManager(cliType, lockfileVersion) {
|
22332
22223
|
switch (cliType) {
|
22333
22224
|
case "npm":
|
22334
|
-
|
22225
|
+
switch (true) {
|
22226
|
+
case corepackEnabled:
|
22227
|
+
return no_override;
|
22228
|
+
case shouldUseNpm7(lockfileVersion, nodeVersion):
|
22229
|
+
return {
|
22230
|
+
path: "/node16/bin-npm7",
|
22231
|
+
detectedLockfile: "package-lock.json",
|
22232
|
+
detectedPackageManager: "npm 7+"
|
22233
|
+
};
|
22234
|
+
default:
|
22235
|
+
return no_override;
|
22236
|
+
}
|
22335
22237
|
case "pnpm":
|
22336
|
-
switch (detectPnpmVersion(lockfileVersion)) {
|
22238
|
+
switch (detectPnpmVersion(lockfileVersion, corepackEnabled)) {
|
22239
|
+
case "corepack_enabled":
|
22240
|
+
return no_override;
|
22337
22241
|
case "pnpm 7":
|
22338
22242
|
return {
|
22339
22243
|
path: "/pnpm7/node_modules/.bin",
|
22340
22244
|
detectedLockfile: "pnpm-lock.yaml",
|
22341
|
-
detectedPackageManager: "pnpm
|
22245
|
+
detectedPackageManager: "pnpm 7"
|
22342
22246
|
};
|
22343
22247
|
case "pnpm 8":
|
22344
22248
|
return {
|
22345
22249
|
path: "/pnpm8/node_modules/.bin",
|
22346
22250
|
detectedLockfile: "pnpm-lock.yaml",
|
22347
|
-
detectedPackageManager: "pnpm
|
22251
|
+
detectedPackageManager: "pnpm 8"
|
22348
22252
|
};
|
22349
22253
|
case "pnpm 9":
|
22350
22254
|
return {
|
22351
22255
|
path: "/pnpm9/node_modules/.bin",
|
22352
22256
|
detectedLockfile: "pnpm-lock.yaml",
|
22353
|
-
detectedPackageManager: "pnpm
|
22257
|
+
detectedPackageManager: "pnpm 9"
|
22354
22258
|
};
|
22355
22259
|
case "pnpm 6":
|
22356
|
-
return {
|
22357
|
-
// undefined because pnpm@6 is the current default in the build container
|
22358
|
-
path: void 0,
|
22359
|
-
detectedLockfile: "pnpm-lock.yaml",
|
22360
|
-
detectedPackageManager: "pnpm 6"
|
22361
|
-
};
|
22362
22260
|
default:
|
22363
|
-
return
|
22261
|
+
return no_override;
|
22364
22262
|
}
|
22365
22263
|
case "bun":
|
22366
|
-
|
22367
|
-
|
22368
|
-
|
22369
|
-
|
22370
|
-
|
22264
|
+
switch (true) {
|
22265
|
+
case corepackEnabled:
|
22266
|
+
return no_override;
|
22267
|
+
default:
|
22268
|
+
return {
|
22269
|
+
path: "/bun1",
|
22270
|
+
detectedLockfile: "bun.lockb",
|
22271
|
+
detectedPackageManager: "Bun"
|
22272
|
+
};
|
22273
|
+
}
|
22371
22274
|
case "yarn":
|
22372
|
-
return
|
22373
|
-
|
22374
|
-
|
22375
|
-
|
22376
|
-
|
22275
|
+
return no_override;
|
22276
|
+
}
|
22277
|
+
}
|
22278
|
+
function validateVersionSpecifier(version) {
|
22279
|
+
if (!version) {
|
22280
|
+
return void 0;
|
22281
|
+
}
|
22282
|
+
const [before, after, ...extra] = version.split("@");
|
22283
|
+
if (extra.length) {
|
22284
|
+
return void 0;
|
22285
|
+
}
|
22286
|
+
if (!before) {
|
22287
|
+
return void 0;
|
22377
22288
|
}
|
22289
|
+
if (!after) {
|
22290
|
+
return void 0;
|
22291
|
+
}
|
22292
|
+
if (!(0, import_semver2.validRange)(after)) {
|
22293
|
+
return void 0;
|
22294
|
+
}
|
22295
|
+
return {
|
22296
|
+
packageName: before,
|
22297
|
+
packageVersionRange: after
|
22298
|
+
};
|
22378
22299
|
}
|
22379
22300
|
function getPathForPackageManager({
|
22380
22301
|
cliType,
|
@@ -22383,15 +22304,12 @@ function getPathForPackageManager({
|
|
22383
22304
|
env
|
22384
22305
|
}) {
|
22385
22306
|
const corepackEnabled = env.ENABLE_EXPERIMENTAL_COREPACK === "1";
|
22386
|
-
|
22307
|
+
const overrides = getPathOverrideForPackageManager({
|
22387
22308
|
cliType,
|
22388
22309
|
lockfileVersion,
|
22389
|
-
|
22310
|
+
corepackEnabled,
|
22390
22311
|
nodeVersion
|
22391
22312
|
});
|
22392
|
-
if (corepackEnabled) {
|
22393
|
-
overrides = NO_OVERRIDE;
|
22394
|
-
}
|
22395
22313
|
const alreadyInPath = (newPath) => {
|
22396
22314
|
const oldPath = env.PATH ?? "";
|
22397
22315
|
return oldPath.split(import_path5.default.delimiter).includes(newPath);
|
@@ -22417,11 +22335,14 @@ async function runCustomInstallCommand({
|
|
22417
22335
|
spawnOpts
|
22418
22336
|
}) {
|
22419
22337
|
console.log(`Running "install" command: \`${installCommand}\`...`);
|
22420
|
-
const { cliType, lockfileVersion,
|
22338
|
+
const { cliType, lockfileVersion, packageJson } = await scanParentDirs(
|
22339
|
+
destPath,
|
22340
|
+
true
|
22341
|
+
);
|
22421
22342
|
const env = getEnvForPackageManager({
|
22422
22343
|
cliType,
|
22423
22344
|
lockfileVersion,
|
22424
|
-
packageJsonPackageManager,
|
22345
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
22425
22346
|
nodeVersion,
|
22426
22347
|
env: spawnOpts?.env || {}
|
22427
22348
|
});
|
@@ -22434,7 +22355,10 @@ async function runCustomInstallCommand({
|
|
22434
22355
|
}
|
22435
22356
|
async function runPackageJsonScript(destPath, scriptNames, spawnOpts) {
|
22436
22357
|
(0, import_assert6.default)(import_path5.default.isAbsolute(destPath));
|
22437
|
-
const { packageJson, cliType, lockfileVersion
|
22358
|
+
const { packageJson, cliType, lockfileVersion } = await scanParentDirs(
|
22359
|
+
destPath,
|
22360
|
+
true
|
22361
|
+
);
|
22438
22362
|
const scriptName = getScriptName(
|
22439
22363
|
packageJson,
|
22440
22364
|
typeof scriptNames === "string" ? [scriptNames] : scriptNames
|
@@ -22449,7 +22373,7 @@ async function runPackageJsonScript(destPath, scriptNames, spawnOpts) {
|
|
22449
22373
|
env: getEnvForPackageManager({
|
22450
22374
|
cliType,
|
22451
22375
|
lockfileVersion,
|
22452
|
-
packageJsonPackageManager,
|
22376
|
+
packageJsonPackageManager: packageJson?.packageManager,
|
22453
22377
|
nodeVersion: void 0,
|
22454
22378
|
env: cloneEnv(process.env, spawnOpts?.env)
|
22455
22379
|
})
|