pnpm 7.1.2 → 7.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/pnpx.cjs CHANGED
@@ -30974,11 +30974,22 @@ ${foundSettings.join("\n")}`;
30974
30974
  return value;
30975
30975
  }
30976
30976
  function reportPeerDependencyIssuesError(err, msg) {
30977
+ const hasMissingPeers = getHasMissingPeers(msg.issuesByProjects);
30978
+ const hints = [];
30979
+ if (hasMissingPeers) {
30980
+ hints.push('If you want peer dependencies to be automatically installed, set the "auto-install-peers" setting to "true".');
30981
+ }
30982
+ hints.push(`If you don't want pnpm to fail on peer dependency issues, set the "strict-peer-dependencies" setting to "false".`);
30977
30983
  return {
30978
30984
  title: err.message,
30979
- body: (0, render_peer_issues_1.default)(msg.issuesByProjects)
30985
+ body: `${(0, render_peer_issues_1.default)(msg.issuesByProjects)}
30986
+ ${hints.map((hint) => `hint: ${hint}`).join("\n")}
30987
+ `
30980
30988
  };
30981
30989
  }
30990
+ function getHasMissingPeers(issuesByProjects) {
30991
+ return Object.values(issuesByProjects).some((issues) => Object.values(issues.missing).flat().some(({ optional }) => !optional));
30992
+ }
30982
30993
  }
30983
30994
  });
30984
30995
 
@@ -103976,7 +103987,6 @@ var require_lib84 = __commonJS({
103976
103987
  var dependency_path_1 = require_lib51();
103977
103988
  var difference_1 = __importDefault2(require_difference());
103978
103989
  var isEmpty_1 = __importDefault2(require_isEmpty2());
103979
- var omit_1 = __importDefault2(require_omit());
103980
103990
  var unnest_1 = __importDefault2(require_unnest());
103981
103991
  __exportStar(require_lib53(), exports2);
103982
103992
  function pruneSharedLockfile(lockfile, opts) {
@@ -104112,7 +104122,7 @@ var require_lib84 = __commonJS({
104112
104122
  } else if (depLockfile.dev === void 0 && !ctx.notProdOnly.has(depPath)) {
104113
104123
  depLockfile.dev = false;
104114
104124
  }
104115
- const newDependencies = resolvedDepsToDepPaths((0, omit_1.default)(Object.keys(depLockfile.peerDependencies ?? {}) ?? [], depLockfile.dependencies ?? {}));
104125
+ const newDependencies = resolvedDepsToDepPaths(depLockfile.dependencies ?? {});
104116
104126
  copyDependencySubGraph(ctx, newDependencies, opts);
104117
104127
  const newOptionalDependencies = resolvedDepsToDepPaths(depLockfile.optionalDependencies ?? {});
104118
104128
  copyDependencySubGraph(ctx, newOptionalDependencies, { dev: opts.dev, optional: true });
@@ -110496,532 +110506,562 @@ var require_getNonDevWantedDependencies = __commonJS({
110496
110506
  }
110497
110507
  });
110498
110508
 
110499
- // ../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js
110500
- var require_wantedDepIsLocallyAvailable = __commonJS({
110501
- "../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js"(exports2) {
110509
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js
110510
+ var require_utils7 = __commonJS({
110511
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js"(exports2) {
110502
110512
  "use strict";
110503
110513
  var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
110504
110514
  return mod && mod.__esModule ? mod : { "default": mod };
110505
110515
  };
110506
110516
  Object.defineProperty(exports2, "__esModule", { value: true });
110507
- var npm_resolver_1 = require_lib41();
110508
- var semver_12 = __importDefault2(require_semver2());
110509
- function wantedDepIsLocallyAvailable(workspacePackages, wantedDependency, opts) {
110510
- const spec = (0, npm_resolver_1.parsePref)(wantedDependency.pref, wantedDependency.alias, opts.defaultTag || "latest", opts.registry);
110511
- if (spec == null || !workspacePackages[spec.name])
110512
- return false;
110513
- return pickMatchingLocalVersionOrNull(workspacePackages[spec.name], spec) !== null;
110517
+ var semver_12 = __importDefault2(require_semver3());
110518
+ function isNotNull(value) {
110519
+ return value !== null;
110514
110520
  }
110515
- exports2.default = wantedDepIsLocallyAvailable;
110516
- function pickMatchingLocalVersionOrNull(versions, spec) {
110517
- const localVersions = Object.keys(versions);
110518
- switch (spec.type) {
110519
- case "tag":
110520
- return semver_12.default.maxSatisfying(localVersions, "*");
110521
- case "version":
110522
- return versions[spec.fetchSpec] ? spec.fetchSpec : null;
110523
- case "range":
110524
- return semver_12.default.maxSatisfying(localVersions, spec.fetchSpec, true);
110525
- default:
110526
- return null;
110527
- }
110521
+ exports2.isNotNull = isNotNull;
110522
+ function uniqueArray(array) {
110523
+ return [...new Set(array)];
110528
110524
  }
110529
- }
110530
- });
110531
-
110532
- // ../resolve-dependencies/lib/resolveDependencies.js
110533
- var require_resolveDependencies = __commonJS({
110534
- "../resolve-dependencies/lib/resolveDependencies.js"(exports2) {
110535
- "use strict";
110536
- var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
110537
- if (k2 === void 0)
110538
- k2 = k;
110539
- var desc = Object.getOwnPropertyDescriptor(m, k);
110540
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
110541
- desc = { enumerable: true, get: function() {
110542
- return m[k];
110543
- } };
110544
- }
110545
- Object.defineProperty(o, k2, desc);
110546
- } : function(o, m, k, k2) {
110547
- if (k2 === void 0)
110548
- k2 = k;
110549
- o[k2] = m[k];
110550
- });
110551
- var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
110552
- Object.defineProperty(o, "default", { enumerable: true, value: v });
110553
- } : function(o, v) {
110554
- o["default"] = v;
110555
- });
110556
- var __importStar = exports2 && exports2.__importStar || function(mod) {
110557
- if (mod && mod.__esModule)
110558
- return mod;
110559
- var result2 = {};
110560
- if (mod != null) {
110561
- for (var k in mod)
110562
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
110563
- __createBinding(result2, mod, k);
110564
- }
110565
- __setModuleDefault(result2, mod);
110566
- return result2;
110567
- };
110568
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
110569
- return mod && mod.__esModule ? mod : { "default": mod };
110570
- };
110571
- Object.defineProperty(exports2, "__esModule", { value: true });
110572
- exports2.nodeIdToParents = void 0;
110573
- var path_1 = __importDefault2(require("path"));
110574
- var core_loggers_1 = require_lib8();
110575
- var error_1 = __importDefault2(require_lib7());
110576
- var lockfile_utils_1 = require_lib54();
110577
- var logger_1 = __importDefault2(require_lib());
110578
- var pick_registry_for_package_1 = __importDefault2(require_lib49());
110579
- var dp = __importStar(require_lib51());
110580
- var path_exists_1 = __importDefault2(require_path_exists());
110581
- var isEmpty_1 = __importDefault2(require_isEmpty2());
110582
- var semver_12 = __importDefault2(require_semver2());
110583
- var encodePkgId_1 = __importDefault2(require_encodePkgId());
110584
- var getNonDevWantedDependencies_1 = __importDefault2(require_getNonDevWantedDependencies());
110585
- var nodeIdUtils_1 = require_nodeIdUtils();
110586
- var wantedDepIsLocallyAvailable_1 = __importDefault2(require_wantedDepIsLocallyAvailable());
110587
- var dependencyResolvedLogger = (0, logger_1.default)("_dependency_resolved");
110588
- function nodeIdToParents(nodeId, resolvedPackagesByDepPath) {
110589
- return (0, nodeIdUtils_1.splitNodeId)(nodeId).slice(1).map((depPath) => {
110590
- const { id, name, version } = resolvedPackagesByDepPath[depPath];
110591
- return { id, name, version };
110592
- });
110525
+ exports2.uniqueArray = uniqueArray;
110526
+ function isNoIncludeNull(value) {
110527
+ return value.every(isNotNull);
110593
110528
  }
110594
- exports2.nodeIdToParents = nodeIdToParents;
110595
- async function resolveDependencies(ctx, preferredVersions, wantedDependencies, options) {
110596
- const extendedWantedDeps = getDepsToResolve(wantedDependencies, ctx.wantedLockfile, {
110597
- preferredDependencies: options.preferredDependencies,
110598
- prefix: ctx.prefix,
110599
- proceed: options.proceed || ctx.forceFullResolution,
110600
- registries: ctx.registries,
110601
- resolvedDependencies: options.resolvedDependencies
110602
- });
110603
- const postponedResolutionsQueue = [];
110604
- const pkgAddresses = (await Promise.all(extendedWantedDeps.map(async (extendedWantedDep) => resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep)))).filter(Boolean);
110605
- const newPreferredVersions = { ...preferredVersions };
110606
- for (const pkgAddress of pkgAddresses) {
110607
- if (pkgAddress.updated) {
110608
- ctx.updatedSet.add(pkgAddress.alias);
110609
- }
110610
- const resolvedPackage = ctx.resolvedPackagesByDepPath[pkgAddress.depPath];
110611
- if (!resolvedPackage)
110612
- continue;
110613
- if (!newPreferredVersions[resolvedPackage.name]) {
110614
- newPreferredVersions[resolvedPackage.name] = {};
110615
- }
110616
- newPreferredVersions[resolvedPackage.name][resolvedPackage.version] = "version";
110529
+ exports2.isNoIncludeNull = isNoIncludeNull;
110530
+ function isPrerelease(version) {
110531
+ if (version instanceof semver_12.default.SemVer) {
110532
+ return version.prerelease.length !== 0;
110533
+ } else {
110534
+ return false;
110617
110535
  }
110618
- await Promise.all(postponedResolutionsQueue.map(async (postponedResolution) => postponedResolution(newPreferredVersions)));
110619
- return pkgAddresses;
110620
110536
  }
110621
- exports2.default = resolveDependencies;
110622
- async function resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep) {
110623
- const updateDepth = typeof extendedWantedDep.wantedDependency.updateDepth === "number" ? extendedWantedDep.wantedDependency.updateDepth : options.updateDepth;
110624
- const updateShouldContinue = options.currentDepth <= updateDepth;
110625
- const update = extendedWantedDep.infoFromLockfile?.dependencyLockfile == null || updateShouldContinue && (ctx.updateMatching == null || ctx.updateMatching(extendedWantedDep.infoFromLockfile.name)) || Boolean(options.workspacePackages != null && ctx.linkWorkspacePackagesDepth !== -1 && (0, wantedDepIsLocallyAvailable_1.default)(options.workspacePackages, extendedWantedDep.wantedDependency, { defaultTag: ctx.defaultTag, registry: ctx.registries.default })) || ctx.updatedSet.has(extendedWantedDep.infoFromLockfile.name);
110626
- const resolveDependencyOpts = {
110627
- currentDepth: options.currentDepth,
110628
- parentPkg: options.parentPkg,
110629
- preferredVersions,
110630
- workspacePackages: options.workspacePackages,
110631
- currentPkg: extendedWantedDep.infoFromLockfile ?? void 0,
110632
- proceed: extendedWantedDep.proceed || updateShouldContinue || ctx.updatedSet.size > 0,
110633
- update,
110634
- updateDepth
110635
- };
110636
- const resolveDependencyResult = await resolveDependency(extendedWantedDep.wantedDependency, ctx, resolveDependencyOpts);
110637
- if (resolveDependencyResult == null)
110638
- return null;
110639
- if (resolveDependencyResult.isLinkedDependency) {
110640
- ctx.dependenciesTree[resolveDependencyResult.pkgId] = {
110641
- children: {},
110642
- depth: -1,
110643
- installable: true,
110644
- resolvedPackage: {
110645
- name: resolveDependencyResult.name,
110646
- version: resolveDependencyResult.version
110647
- }
110648
- };
110649
- return resolveDependencyResult;
110537
+ exports2.isPrerelease = isPrerelease;
110538
+ function isValidOperator(comparator, operatorList) {
110539
+ return operatorList.includes(comparator.operator);
110540
+ }
110541
+ exports2.isValidOperator = isValidOperator;
110542
+ function equalComparator(comparatorA, comparatorB) {
110543
+ return comparatorA.value === comparatorB.value;
110544
+ }
110545
+ exports2.equalComparator = equalComparator;
110546
+ function comparator2versionStr(comparator) {
110547
+ const compSemver = comparator.semver;
110548
+ return compSemver instanceof semver_12.default.SemVer ? compSemver.version : "";
110549
+ }
110550
+ exports2.comparator2versionStr = comparator2versionStr;
110551
+ function isSameVersionEqualsLikeComparator(comparatorA, comparatorB) {
110552
+ const compVersionA = comparator2versionStr(comparatorA);
110553
+ const compVersionB = comparator2versionStr(comparatorB);
110554
+ return compVersionA !== "" && compVersionB !== "" && compVersionA === compVersionB && /=|^$/.test(comparatorA.operator) && /=|^$/.test(comparatorB.operator);
110555
+ }
110556
+ exports2.isSameVersionEqualsLikeComparator = isSameVersionEqualsLikeComparator;
110557
+ function isEqualsComparator(comparator) {
110558
+ return comparator.semver instanceof semver_12.default.SemVer && isValidOperator(comparator, ["", "="]);
110559
+ }
110560
+ exports2.isEqualsComparator = isEqualsComparator;
110561
+ function filterUniqueComparator(comparator, index, self2) {
110562
+ return self2.findIndex((comp) => equalComparator(comparator, comp)) === index;
110563
+ }
110564
+ exports2.filterUniqueComparator = filterUniqueComparator;
110565
+ function filterOperator(operatorList) {
110566
+ return (comparator) => isValidOperator(comparator, operatorList);
110567
+ }
110568
+ exports2.filterOperator = filterOperator;
110569
+ function isIntersectRanges(semverRangeList) {
110570
+ return semverRangeList.every((rangeA, index, rangeList) => rangeList.slice(index + 1).every((rangeB) => rangeA.intersects(rangeB)));
110571
+ }
110572
+ exports2.isIntersectRanges = isIntersectRanges;
110573
+ function stripSemVerPrerelease(semverVersion) {
110574
+ if (!(semverVersion instanceof semver_12.default.SemVer)) {
110575
+ return "";
110650
110576
  }
110651
- if (!resolveDependencyResult.isNew)
110652
- return resolveDependencyResult;
110653
- postponedResolutionsQueue.push(async (preferredVersions2) => resolveChildren(ctx, resolveDependencyResult, extendedWantedDep.infoFromLockfile?.dependencyLockfile, options.workspacePackages, options.currentDepth, updateDepth, preferredVersions2));
110654
- return resolveDependencyResult;
110577
+ if (!semverVersion.prerelease.length) {
110578
+ return semverVersion.version;
110579
+ }
110580
+ const newSemverVersion = new semver_12.default.SemVer(semverVersion.version, semverVersion.options);
110581
+ newSemverVersion.prerelease = [];
110582
+ return newSemverVersion.format();
110655
110583
  }
110656
- async function resolveChildren(ctx, parentPkg, dependencyLockfile, workspacePackages, parentDepth, updateDepth, preferredVersions) {
110657
- const currentResolvedDependencies = dependencyLockfile != null ? {
110658
- ...dependencyLockfile.dependencies,
110659
- ...dependencyLockfile.optionalDependencies
110660
- } : void 0;
110661
- const resolvedDependencies = parentPkg.updated ? void 0 : currentResolvedDependencies;
110662
- const parentDependsOnPeer = Boolean(Object.keys(dependencyLockfile?.peerDependencies ?? parentPkg.pkg.peerDependencies ?? {}).length);
110663
- const wantedDependencies = (0, getNonDevWantedDependencies_1.default)(parentPkg.pkg);
110664
- const children = await resolveDependencies(ctx, preferredVersions, wantedDependencies, {
110665
- currentDepth: parentDepth + 1,
110666
- parentPkg,
110667
- preferredDependencies: currentResolvedDependencies,
110668
- proceed: !parentPkg.depIsLinked || parentDependsOnPeer,
110669
- resolvedDependencies,
110670
- updateDepth,
110671
- workspacePackages
110672
- });
110673
- ctx.childrenByParentDepPath[parentPkg.depPath] = children.map((child) => ({
110674
- alias: child.alias,
110675
- depPath: child.depPath
110676
- }));
110677
- ctx.dependenciesTree[parentPkg.nodeId] = {
110678
- children: children.reduce((chn, child) => {
110679
- chn[child.alias] = child["nodeId"] ?? child.pkgId;
110680
- return chn;
110681
- }, {}),
110682
- depth: parentDepth,
110683
- installable: parentPkg.installable,
110684
- resolvedPackage: ctx.resolvedPackagesByDepPath[parentPkg.depPath]
110685
- };
110584
+ exports2.stripSemVerPrerelease = stripSemVerPrerelease;
110585
+ function stripComparatorOperator(comparator) {
110586
+ if (!comparator.operator) {
110587
+ return comparator;
110588
+ }
110589
+ const versionStr = comparator2versionStr(comparator);
110590
+ return new semver_12.default.Comparator(versionStr, comparator.options);
110686
110591
  }
110687
- function getDepsToResolve(wantedDependencies, wantedLockfile, options) {
110688
- const resolvedDependencies = options.resolvedDependencies ?? {};
110689
- const preferredDependencies = options.preferredDependencies ?? {};
110690
- const extendedWantedDeps = [];
110691
- let proceedAll = options.proceed;
110692
- const satisfiesWanted2Args = referenceSatisfiesWantedSpec.bind(null, {
110693
- lockfile: wantedLockfile,
110694
- prefix: options.prefix
110695
- });
110696
- for (const wantedDependency of wantedDependencies) {
110697
- let reference = void 0;
110698
- let proceed = proceedAll;
110699
- if (wantedDependency.alias) {
110700
- const satisfiesWanted = satisfiesWanted2Args.bind(null, wantedDependency);
110701
- if (resolvedDependencies[wantedDependency.alias] && satisfiesWanted(resolvedDependencies[wantedDependency.alias])) {
110702
- reference = resolvedDependencies[wantedDependency.alias];
110703
- } else if (semver_12.default.validRange(wantedDependency.pref) !== null && preferredDependencies[wantedDependency.alias] && satisfiesWanted(preferredDependencies[wantedDependency.alias])) {
110704
- proceed = true;
110705
- reference = preferredDependencies[wantedDependency.alias];
110592
+ exports2.stripComparatorOperator = stripComparatorOperator;
110593
+ function getLowerBoundComparator(comparatorList, options = {}) {
110594
+ const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, [">", ">="]) || !(comparator.semver instanceof semver_12.default.SemVer));
110595
+ const leComparatorVersionList = comparatorList.filter(filterOperator(["<="])).map(comparator2versionStr);
110596
+ if (validComparatorList.length >= 1) {
110597
+ return validComparatorList.reduce((a, b) => {
110598
+ const semverA = a.semver;
110599
+ const semverB = b.semver;
110600
+ if (!(semverA instanceof semver_12.default.SemVer)) {
110601
+ if (!options.singleRange && isPrerelease(semverB) && !(b.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverB)))) {
110602
+ return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverB)}`, b.options);
110603
+ }
110604
+ return b;
110605
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
110606
+ if (!options.singleRange && isPrerelease(semverA) && !(a.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverA)))) {
110607
+ return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverA)}`, a.options);
110608
+ }
110609
+ return a;
110706
110610
  }
110707
- }
110708
- const infoFromLockfile = getInfoFromLockfile(wantedLockfile, options.registries, reference, wantedDependency.alias);
110709
- if (!proceedAll && (infoFromLockfile == null || infoFromLockfile.dependencyLockfile != null && (infoFromLockfile.dependencyLockfile.peerDependencies != null || infoFromLockfile.dependencyLockfile.transitivePeerDependencies?.length))) {
110710
- proceed = true;
110711
- proceedAll = true;
110712
- for (const extendedWantedDep of extendedWantedDeps) {
110713
- if (!extendedWantedDep.proceed) {
110714
- extendedWantedDep.proceed = true;
110611
+ const semverCmp = semver_12.default.compare(semverA, semverB);
110612
+ if (a.operator === b.operator || semverCmp !== 0) {
110613
+ if (!options.singleRange) {
110614
+ const semverCmpMain = semverA.compareMain(semverB);
110615
+ if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
110616
+ if (semverCmpMain > 0) {
110617
+ return new semver_12.default.Comparator(a.operator + stripSemVerPrerelease(semverA), a.options);
110618
+ } else {
110619
+ return new semver_12.default.Comparator(b.operator + stripSemVerPrerelease(semverB), b.options);
110620
+ }
110621
+ }
110622
+ }
110623
+ if (semverCmp > 0) {
110624
+ return a;
110625
+ } else {
110626
+ return b;
110627
+ }
110628
+ } else {
110629
+ if (a.operator === ">") {
110630
+ return a;
110631
+ } else {
110632
+ return b;
110715
110633
  }
110716
110634
  }
110717
- }
110718
- extendedWantedDeps.push({
110719
- infoFromLockfile,
110720
- proceed,
110721
- wantedDependency
110722
- });
110723
- }
110724
- return extendedWantedDeps;
110725
- }
110726
- function referenceSatisfiesWantedSpec(opts, wantedDep, preferredRef) {
110727
- const depPath = dp.refToRelative(preferredRef, wantedDep.alias);
110728
- if (depPath === null)
110729
- return false;
110730
- const pkgSnapshot = opts.lockfile.packages?.[depPath];
110731
- if (pkgSnapshot == null) {
110732
- logger_1.default.warn({
110733
- message: `Could not find preferred package ${depPath} in lockfile`,
110734
- prefix: opts.prefix
110735
110635
  });
110736
- return false;
110636
+ } else {
110637
+ return new semver_12.default.Comparator("");
110737
110638
  }
110738
- const { version } = (0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, pkgSnapshot);
110739
- return semver_12.default.satisfies(version, wantedDep.pref, true);
110740
110639
  }
110741
- function getInfoFromLockfile(lockfile, registries, reference, alias) {
110742
- if (!reference || !alias) {
110743
- return void 0;
110744
- }
110745
- const depPath = dp.refToRelative(reference, alias);
110746
- if (!depPath) {
110747
- return void 0;
110748
- }
110749
- let dependencyLockfile = lockfile.packages?.[depPath];
110750
- if (dependencyLockfile != null) {
110751
- if (dependencyLockfile.peerDependencies != null && dependencyLockfile.dependencies != null) {
110752
- const dependencies = {};
110753
- for (const [depName, ref] of Object.entries(dependencyLockfile.dependencies ?? {})) {
110754
- if (dependencyLockfile.peerDependencies[depName])
110755
- continue;
110756
- dependencies[depName] = ref;
110640
+ exports2.getLowerBoundComparator = getLowerBoundComparator;
110641
+ function getUpperBoundComparator(comparatorList, options = {}) {
110642
+ const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, ["<", "<="]) || !(comparator.semver instanceof semver_12.default.SemVer));
110643
+ const geComparatorVersionList = comparatorList.filter(filterOperator([">="])).map(comparator2versionStr);
110644
+ if (validComparatorList.length >= 1) {
110645
+ return validComparatorList.reduce((a, b) => {
110646
+ const semverA = a.semver;
110647
+ const semverB = b.semver;
110648
+ if (!(semverA instanceof semver_12.default.SemVer)) {
110649
+ if (!options.singleRange && isPrerelease(semverB) && !(b.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverB)))) {
110650
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
110651
+ }
110652
+ return b;
110653
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
110654
+ if (!options.singleRange && isPrerelease(semverA) && !(a.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverA)))) {
110655
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
110656
+ }
110657
+ return a;
110757
110658
  }
110758
- dependencyLockfile = {
110759
- ...dependencyLockfile,
110760
- dependencies
110761
- };
110762
- }
110763
- return {
110764
- ...(0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, dependencyLockfile),
110765
- dependencyLockfile,
110766
- depPath,
110767
- pkgId: (0, lockfile_utils_1.packageIdFromSnapshot)(depPath, dependencyLockfile, registries),
110768
- resolution: dependencyLockfile.resolution && (0, lockfile_utils_1.pkgSnapshotToResolution)(depPath, dependencyLockfile, registries)
110769
- };
110659
+ const semverCmp = semver_12.default.compare(semverA, semverB);
110660
+ if (a.operator === b.operator || semverCmp !== 0) {
110661
+ if (!options.singleRange) {
110662
+ const semverCmpMain = semverA.compareMain(semverB);
110663
+ if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
110664
+ if (semverCmpMain < 0) {
110665
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
110666
+ } else {
110667
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
110668
+ }
110669
+ }
110670
+ }
110671
+ if (semverCmp < 0) {
110672
+ return a;
110673
+ } else {
110674
+ return b;
110675
+ }
110676
+ } else {
110677
+ if (a.operator === "<") {
110678
+ return a;
110679
+ } else {
110680
+ return b;
110681
+ }
110682
+ }
110683
+ });
110770
110684
  } else {
110771
- return {
110772
- depPath,
110773
- pkgId: dp.tryGetPackageId(registries, depPath) ?? depPath
110774
- };
110685
+ return new semver_12.default.Comparator("");
110775
110686
  }
110776
110687
  }
110777
- async function resolveDependency(wantedDependency, ctx, options) {
110778
- const currentPkg = options.currentPkg ?? {};
110779
- const currentLockfileContainsTheDep = currentPkg.depPath ? Boolean(ctx.currentLockfile.packages?.[currentPkg.depPath]) : void 0;
110780
- const depIsLinked = Boolean(currentLockfileContainsTheDep && currentPkg.depPath && currentPkg.dependencyLockfile && await (0, path_exists_1.default)(path_1.default.join(ctx.virtualStoreDir, dp.depPathToFilename(currentPkg.depPath), "node_modules", currentPkg.name, "package.json")));
110781
- if (!options.update && !options.proceed && currentPkg.resolution != null && depIsLinked) {
110782
- return null;
110688
+ exports2.getUpperBoundComparator = getUpperBoundComparator;
110689
+ }
110690
+ });
110691
+
110692
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js
110693
+ var require_single_range = __commonJS({
110694
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js"(exports2) {
110695
+ "use strict";
110696
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
110697
+ return mod && mod.__esModule ? mod : { "default": mod };
110698
+ };
110699
+ Object.defineProperty(exports2, "__esModule", { value: true });
110700
+ var semver_12 = __importDefault2(require_semver3());
110701
+ var utils_1 = require_utils7();
110702
+ var SingleVer = class {
110703
+ constructor(comp) {
110704
+ this.comp = comp;
110783
110705
  }
110784
- let pkgResponse;
110785
- if (!options.parentPkg.installable) {
110786
- wantedDependency = {
110787
- ...wantedDependency,
110788
- optional: true
110789
- };
110706
+ toString() {
110707
+ return this.comp.value;
110790
110708
  }
110791
- try {
110792
- pkgResponse = await ctx.storeController.requestPackage(wantedDependency, {
110793
- alwaysTryWorkspacePackages: ctx.linkWorkspacePackagesDepth >= options.currentDepth,
110794
- currentPkg: currentPkg ? {
110795
- id: currentPkg.pkgId,
110796
- resolution: currentPkg.resolution
110797
- } : void 0,
110798
- expectedPkg: currentPkg,
110799
- defaultTag: ctx.defaultTag,
110800
- downloadPriority: -options.currentDepth,
110801
- lockfileDir: ctx.lockfileDir,
110802
- preferredVersions: options.preferredVersions,
110803
- preferWorkspacePackages: ctx.preferWorkspacePackages,
110804
- projectDir: options.currentDepth > 0 && !wantedDependency.pref.startsWith("file:") ? ctx.lockfileDir : options.parentPkg.rootDir,
110805
- registry: wantedDependency.alias && (0, pick_registry_for_package_1.default)(ctx.registries, wantedDependency.alias, wantedDependency.pref) || ctx.registries.default,
110806
- skipFetch: false,
110807
- update: options.update,
110808
- workspacePackages: options.workspacePackages
110809
- });
110810
- } catch (err) {
110811
- if (wantedDependency.optional) {
110812
- core_loggers_1.skippedOptionalDependencyLogger.debug({
110813
- details: err.toString(),
110814
- package: {
110815
- name: wantedDependency.alias,
110816
- pref: wantedDependency.pref,
110817
- version: wantedDependency.alias ? wantedDependency.pref : void 0
110818
- },
110819
- parents: nodeIdToParents(options.parentPkg.nodeId, ctx.resolvedPackagesByDepPath),
110820
- prefix: ctx.prefix,
110821
- reason: "resolution_failure"
110822
- });
110709
+ intersect(singleRange) {
110710
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
110711
+ return this;
110712
+ } else {
110823
110713
  return null;
110824
110714
  }
110825
- err.pkgsStack = nodeIdToParents(options.parentPkg.nodeId, ctx.resolvedPackagesByDepPath);
110826
- throw err;
110827
110715
  }
110828
- dependencyResolvedLogger.debug({
110829
- resolution: pkgResponse.body.id,
110830
- wanted: {
110831
- dependentId: options.parentPkg.depPath,
110832
- name: wantedDependency.alias,
110833
- rawSpec: wantedDependency.pref
110716
+ merge(singleRange) {
110717
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
110718
+ return singleRange;
110834
110719
  }
110835
- });
110836
- pkgResponse.body.id = (0, encodePkgId_1.default)(pkgResponse.body.id);
110837
- if (!pkgResponse.body.updated && options.currentDepth === Math.max(0, options.updateDepth) && depIsLinked && !ctx.force && !options.proceed) {
110838
110720
  return null;
110839
110721
  }
110840
- if (pkgResponse.body.isLocal) {
110841
- const manifest = pkgResponse.body.manifest ?? await pkgResponse.bundledManifest();
110842
- return {
110843
- alias: wantedDependency.alias || manifest.name,
110844
- depPath: pkgResponse.body.id,
110845
- dev: wantedDependency.dev,
110846
- isLinkedDependency: true,
110847
- name: manifest.name,
110848
- normalizedPref: pkgResponse.body.normalizedPref,
110849
- optional: wantedDependency.optional,
110850
- pkgId: pkgResponse.body.id,
110851
- resolution: pkgResponse.body.resolution,
110852
- version: manifest.version
110853
- };
110722
+ };
110723
+ exports2.SingleVer = SingleVer;
110724
+ var SingleRange = class {
110725
+ constructor(lowerBound, upperBound) {
110726
+ this.lowerBound = lowerBound;
110727
+ this.upperBound = upperBound;
110728
+ if (!lowerBound.intersects(upperBound)) {
110729
+ throw new Error(`Invalid range; version range does not intersect: ${this}`);
110730
+ }
110854
110731
  }
110855
- let pkg;
110856
- let prepare;
110857
- let hasBin;
110858
- pkg = ctx.readPackageHook != null ? await ctx.readPackageHook(pkgResponse.body.manifest ?? await pkgResponse.bundledManifest()) : pkgResponse.body.manifest ?? await pkgResponse.bundledManifest();
110859
- if (!pkg.name) {
110860
- throw new error_1.default("MISSING_PACKAGE_NAME", `Can't install ${wantedDependency.pref}: Missing package name`);
110732
+ toString() {
110733
+ return [this.lowerBound.value, this.upperBound.value].filter((v) => v !== "").join(" ");
110861
110734
  }
110862
- const depPath = dp.relative(ctx.registries, pkg.name, pkgResponse.body.id);
110863
- if ((0, nodeIdUtils_1.nodeIdContainsSequence)(options.parentPkg.nodeId, options.parentPkg.depPath, depPath) || depPath === options.parentPkg.depPath) {
110735
+ intersect(singleRange) {
110736
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
110737
+ if (singleRange instanceof SingleVer) {
110738
+ return singleRange;
110739
+ } else {
110740
+ const lowerBoundComparatorList = [
110741
+ this.lowerBound,
110742
+ singleRange.lowerBound
110743
+ ];
110744
+ const upperBoundComparatorList = [
110745
+ this.upperBound,
110746
+ singleRange.upperBound
110747
+ ];
110748
+ const lowerBound = utils_1.getLowerBoundComparator([
110749
+ ...lowerBoundComparatorList,
110750
+ ...upperBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
110751
+ ]);
110752
+ const upperBound = utils_1.getUpperBoundComparator([
110753
+ ...upperBoundComparatorList,
110754
+ ...lowerBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
110755
+ ]);
110756
+ if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
110757
+ return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
110758
+ }
110759
+ return new SingleRange(lowerBound, upperBound);
110760
+ }
110761
+ } else {
110762
+ return null;
110763
+ }
110764
+ }
110765
+ merge(singleRange) {
110766
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
110767
+ if (singleRange instanceof SingleVer) {
110768
+ return this;
110769
+ } else {
110770
+ const lowerBound = ((a, b) => {
110771
+ const semverA = a.semver;
110772
+ const semverB = b.semver;
110773
+ if (!(semverA instanceof semver_12.default.SemVer)) {
110774
+ if (utils_1.isPrerelease(semverB)) {
110775
+ return null;
110776
+ }
110777
+ return a;
110778
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
110779
+ if (utils_1.isPrerelease(semverA)) {
110780
+ return null;
110781
+ }
110782
+ return b;
110783
+ }
110784
+ const cmpMain = semverA.compareMain(semverB);
110785
+ if (cmpMain < 0 && utils_1.isPrerelease(semverB) || cmpMain > 0 && utils_1.isPrerelease(semverA)) {
110786
+ return null;
110787
+ }
110788
+ const semverCmp = semver_12.default.compare(semverA, semverB);
110789
+ if (a.operator === b.operator || semverCmp !== 0) {
110790
+ if (semverCmp < 0) {
110791
+ return a;
110792
+ } else {
110793
+ return b;
110794
+ }
110795
+ } else {
110796
+ if (a.operator === ">=") {
110797
+ return a;
110798
+ } else {
110799
+ return b;
110800
+ }
110801
+ }
110802
+ })(this.lowerBound, singleRange.lowerBound);
110803
+ const upperBound = ((a, b) => {
110804
+ const semverA = a.semver;
110805
+ const semverB = b.semver;
110806
+ if (!(semverA instanceof semver_12.default.SemVer)) {
110807
+ if (utils_1.isPrerelease(semverB)) {
110808
+ return null;
110809
+ }
110810
+ return a;
110811
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
110812
+ if (utils_1.isPrerelease(semverA)) {
110813
+ return null;
110814
+ }
110815
+ return b;
110816
+ }
110817
+ const cmpMain = semverA.compareMain(semverB);
110818
+ if (cmpMain > 0 && utils_1.isPrerelease(semverB) || cmpMain < 0 && utils_1.isPrerelease(semverA)) {
110819
+ return null;
110820
+ }
110821
+ const semverCmp = semver_12.default.compare(semverA, semverB);
110822
+ if (a.operator === b.operator || semverCmp !== 0) {
110823
+ if (semverCmp > 0) {
110824
+ return a;
110825
+ } else {
110826
+ return b;
110827
+ }
110828
+ } else {
110829
+ if (a.operator === "<=") {
110830
+ return a;
110831
+ } else {
110832
+ return b;
110833
+ }
110834
+ }
110835
+ })(this.upperBound, singleRange.upperBound);
110836
+ if (lowerBound && upperBound) {
110837
+ return new SingleRange(lowerBound, upperBound);
110838
+ }
110839
+ }
110840
+ }
110864
110841
  return null;
110865
110842
  }
110866
- if (!options.update && currentPkg.dependencyLockfile != null && currentPkg.depPath && !pkgResponse.body.updated && currentPkg.dependencyLockfile.peerDependencies == null) {
110867
- prepare = currentPkg.dependencyLockfile.prepare === true;
110868
- hasBin = currentPkg.dependencyLockfile.hasBin === true;
110869
- pkg = {
110870
- ...(0, lockfile_utils_1.nameVerFromPkgSnapshot)(currentPkg.depPath, currentPkg.dependencyLockfile),
110871
- ...currentPkg.dependencyLockfile,
110872
- ...pkg
110873
- };
110874
- } else {
110875
- prepare = Boolean(pkgResponse.body.resolvedVia === "git-repository" && typeof pkg.scripts?.prepare === "string");
110876
- if (currentPkg.dependencyLockfile?.deprecated && !pkgResponse.body.updated && !pkg.deprecated) {
110877
- pkg.deprecated = currentPkg.dependencyLockfile.deprecated;
110843
+ };
110844
+ exports2.SingleRange = SingleRange;
110845
+ function createSingleRange(comparatorList) {
110846
+ const equalsComparatorList = comparatorList.filter(utils_1.isEqualsComparator).filter(utils_1.filterUniqueComparator);
110847
+ switch (equalsComparatorList.length) {
110848
+ case 0: {
110849
+ const lowerBound = utils_1.getLowerBoundComparator(comparatorList, {
110850
+ singleRange: true
110851
+ });
110852
+ const upperBound = utils_1.getUpperBoundComparator(comparatorList, {
110853
+ singleRange: true
110854
+ });
110855
+ if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
110856
+ return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
110857
+ }
110858
+ try {
110859
+ return new SingleRange(lowerBound, upperBound);
110860
+ } catch (err) {
110861
+ return null;
110862
+ }
110878
110863
  }
110879
- hasBin = Boolean((pkg.bin && !(0, isEmpty_1.default)(pkg.bin)) ?? pkg.directories?.bin);
110864
+ case 1:
110865
+ return new SingleVer(equalsComparatorList[0]);
110866
+ default:
110867
+ return null;
110880
110868
  }
110881
- if (options.currentDepth === 0 && pkgResponse.body.latest && pkgResponse.body.latest !== pkg.version) {
110882
- ctx.outdatedDependencies[pkgResponse.body.id] = pkgResponse.body.latest;
110869
+ }
110870
+ exports2.createSingleRange = createSingleRange;
110871
+ function isSingleRange(value) {
110872
+ return value instanceof SingleVer || value instanceof SingleRange;
110873
+ }
110874
+ exports2.isSingleRange = isSingleRange;
110875
+ }
110876
+ });
110877
+
110878
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js
110879
+ var require_multi_range = __commonJS({
110880
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js"(exports2) {
110881
+ "use strict";
110882
+ Object.defineProperty(exports2, "__esModule", { value: true });
110883
+ var single_range_1 = require_single_range();
110884
+ var utils_1 = require_utils7();
110885
+ function normalizeSingleRangeList(singleRangeList) {
110886
+ return singleRangeList.reduce((singleRangeList2, singleRange) => {
110887
+ if (!singleRange) {
110888
+ return [...singleRangeList2, singleRange];
110889
+ }
110890
+ let insertFirst = false;
110891
+ const removeIndexList = [];
110892
+ const appendSingleRange = singleRangeList2.reduce((appendSingleRange2, insertedSingleRange, index) => {
110893
+ if (insertedSingleRange && appendSingleRange2) {
110894
+ const mergedSingleRange = insertedSingleRange.merge(appendSingleRange2);
110895
+ if (mergedSingleRange) {
110896
+ if (String(mergedSingleRange) === String(insertedSingleRange)) {
110897
+ return;
110898
+ } else {
110899
+ removeIndexList.push(index);
110900
+ if (insertedSingleRange instanceof single_range_1.SingleRange && appendSingleRange2 instanceof single_range_1.SingleRange) {
110901
+ insertFirst = true;
110902
+ }
110903
+ return mergedSingleRange;
110904
+ }
110905
+ }
110906
+ }
110907
+ return appendSingleRange2;
110908
+ }, singleRange);
110909
+ const removedSingleRangeList = singleRangeList2.filter((_, index) => !removeIndexList.includes(index));
110910
+ if (appendSingleRange) {
110911
+ if (insertFirst) {
110912
+ return [appendSingleRange, ...removedSingleRangeList];
110913
+ } else {
110914
+ return [...removedSingleRangeList, appendSingleRange];
110915
+ }
110916
+ }
110917
+ return removedSingleRangeList;
110918
+ }, []);
110919
+ }
110920
+ exports2.normalizeSingleRangeList = normalizeSingleRangeList;
110921
+ var MultiRange = class {
110922
+ get valid() {
110923
+ return this.set.length >= 1;
110883
110924
  }
110884
- if (pkg.deprecated) {
110885
- core_loggers_1.deprecationLogger.debug({
110886
- deprecated: pkg.deprecated,
110887
- depth: options.currentDepth,
110888
- pkgId: pkgResponse.body.id,
110889
- pkgName: pkg.name,
110890
- pkgVersion: pkg.version,
110891
- prefix: ctx.prefix
110892
- });
110925
+ constructor(rangeList) {
110926
+ if (rangeList) {
110927
+ const singleRangeList = normalizeSingleRangeList(rangeList.map((singleRangeOrComparatorList) => {
110928
+ if (single_range_1.isSingleRange(singleRangeOrComparatorList) || !singleRangeOrComparatorList) {
110929
+ return singleRangeOrComparatorList;
110930
+ } else {
110931
+ return single_range_1.createSingleRange(singleRangeOrComparatorList);
110932
+ }
110933
+ }));
110934
+ this.set = singleRangeList.filter(utils_1.isNotNull);
110935
+ } else {
110936
+ this.set = [];
110937
+ }
110893
110938
  }
110894
- const nodeId = pkgIsLeaf(pkg) ? pkgResponse.body.id : (0, nodeIdUtils_1.createNodeId)(options.parentPkg.nodeId, depPath);
110895
- const parentIsInstallable = options.parentPkg.installable === void 0 || options.parentPkg.installable;
110896
- const installable = parentIsInstallable && pkgResponse.body.isInstallable !== false;
110897
- const isNew = !ctx.resolvedPackagesByDepPath[depPath];
110898
- if (isNew) {
110899
- if (pkgResponse.body.isInstallable === false || !parentIsInstallable) {
110900
- ctx.skipped.add(pkgResponse.body.id);
110939
+ toString() {
110940
+ if (!this.valid) {
110941
+ throw new Error("Invalid range");
110901
110942
  }
110902
- core_loggers_1.progressLogger.debug({
110903
- packageId: pkgResponse.body.id,
110904
- requester: ctx.lockfileDir,
110905
- status: "resolved"
110906
- });
110907
- ctx.resolvedPackagesByDepPath[depPath] = getResolvedPackage({
110908
- allowBuild: ctx.allowBuild,
110909
- dependencyLockfile: currentPkg.dependencyLockfile,
110910
- depPath,
110911
- force: ctx.force,
110912
- hasBin,
110913
- pkg,
110914
- pkgResponse,
110915
- prepare,
110916
- wantedDependency
110917
- });
110918
- } else {
110919
- ctx.resolvedPackagesByDepPath[depPath].prod = ctx.resolvedPackagesByDepPath[depPath].prod || !wantedDependency.dev && !wantedDependency.optional;
110920
- ctx.resolvedPackagesByDepPath[depPath].dev = ctx.resolvedPackagesByDepPath[depPath].dev || wantedDependency.dev;
110921
- ctx.resolvedPackagesByDepPath[depPath].optional = ctx.resolvedPackagesByDepPath[depPath].optional && wantedDependency.optional;
110922
- if (ctx.resolvedPackagesByDepPath[depPath].fetchingFiles == null && pkgResponse.files != null) {
110923
- ctx.resolvedPackagesByDepPath[depPath].fetchingFiles = pkgResponse.files;
110924
- ctx.resolvedPackagesByDepPath[depPath].filesIndexFile = pkgResponse.filesIndexFile;
110925
- ctx.resolvedPackagesByDepPath[depPath].finishing = pkgResponse.finishing;
110926
- ctx.resolvedPackagesByDepPath[depPath].fetchingBundledManifest = pkgResponse.bundledManifest;
110943
+ return utils_1.uniqueArray(this.set.map(String)).join(" || ");
110944
+ }
110945
+ intersect(multiRange) {
110946
+ if (this.valid && multiRange.valid) {
110947
+ const singleRangeList = this.set.map((singleRangeA) => multiRange.set.map((singleRangeB) => singleRangeA.intersect(singleRangeB))).reduce((a, b) => [...a, ...b]).filter(utils_1.isNotNull);
110948
+ return new MultiRange(singleRangeList);
110949
+ } else if (this.valid) {
110950
+ return this;
110951
+ } else if (multiRange.valid) {
110952
+ return multiRange;
110953
+ } else {
110954
+ return new MultiRange(null);
110927
110955
  }
110928
- if (ctx.dependenciesTree[nodeId]) {
110929
- ctx.dependenciesTree[nodeId].depth = Math.min(ctx.dependenciesTree[nodeId].depth, options.currentDepth);
110956
+ }
110957
+ };
110958
+ exports2.MultiRange = MultiRange;
110959
+ }
110960
+ });
110961
+
110962
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js
110963
+ var require_dist12 = __commonJS({
110964
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js"(exports2) {
110965
+ "use strict";
110966
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
110967
+ return mod && mod.__esModule ? mod : { "default": mod };
110968
+ };
110969
+ Object.defineProperty(exports2, "__esModule", { value: true });
110970
+ var semver_12 = __importDefault2(require_semver3());
110971
+ var multi_range_1 = require_multi_range();
110972
+ var utils_1 = require_utils7();
110973
+ function intersect(...ranges) {
110974
+ const semverRangeList = (() => {
110975
+ try {
110976
+ return ranges.map((rangeStr) => new semver_12.default.Range(rangeStr));
110977
+ } catch (err) {
110978
+ return null;
110979
+ }
110980
+ })();
110981
+ if (!semverRangeList || !utils_1.isIntersectRanges(semverRangeList)) {
110982
+ return null;
110983
+ }
110984
+ const intersectRange = semverRangeList.map((range) => new multi_range_1.MultiRange(range.set)).reduce((multiRangeA, multiRangeB) => multiRangeA.intersect(multiRangeB), new multi_range_1.MultiRange(null));
110985
+ return intersectRange.valid ? String(intersectRange) || "*" : null;
110986
+ }
110987
+ exports2.intersect = intersect;
110988
+ }
110989
+ });
110990
+
110991
+ // ../resolve-dependencies/lib/mergePeers.js
110992
+ var require_mergePeers = __commonJS({
110993
+ "../resolve-dependencies/lib/mergePeers.js"(exports2) {
110994
+ "use strict";
110995
+ Object.defineProperty(exports2, "__esModule", { value: true });
110996
+ exports2.safeIntersect = exports2.mergePeers = void 0;
110997
+ var semver_range_intersect_1 = require_dist12();
110998
+ function mergePeers(missingPeers) {
110999
+ const conflicts = [];
111000
+ const intersections = {};
111001
+ for (const [peerName, ranges] of Object.entries(missingPeers)) {
111002
+ if (ranges.every(({ optional }) => optional))
111003
+ continue;
111004
+ if (ranges.length === 1) {
111005
+ intersections[peerName] = ranges[0].wantedRange;
111006
+ continue;
111007
+ }
111008
+ const intersection = safeIntersect(ranges.map(({ wantedRange }) => wantedRange));
111009
+ if (intersection === null) {
111010
+ conflicts.push(peerName);
110930
111011
  } else {
110931
- ctx.pendingNodes.push({
110932
- alias: wantedDependency.alias || pkg.name,
110933
- depth: options.currentDepth,
110934
- installable,
110935
- nodeId,
110936
- resolvedPackage: ctx.resolvedPackagesByDepPath[depPath]
110937
- });
111012
+ intersections[peerName] = intersection;
110938
111013
  }
110939
111014
  }
110940
- const rootDir = pkgResponse.body.resolution.type === "directory" ? path_1.default.resolve(ctx.lockfileDir, pkgResponse.body.resolution["directory"]) : ctx.prefix;
110941
- return {
110942
- alias: wantedDependency.alias || pkg.name,
110943
- depIsLinked,
110944
- depPath,
110945
- isNew,
110946
- nodeId,
110947
- normalizedPref: options.currentDepth === 0 ? pkgResponse.body.normalizedPref : void 0,
110948
- pkgId: pkgResponse.body.id,
110949
- rootDir,
110950
- installable,
110951
- isLinkedDependency: void 0,
110952
- pkg,
110953
- updated: pkgResponse.body.updated
110954
- };
111015
+ return { conflicts, intersections };
110955
111016
  }
110956
- function pkgIsLeaf(pkg) {
110957
- return (0, isEmpty_1.default)(pkg.dependencies ?? {}) && (0, isEmpty_1.default)(pkg.optionalDependencies ?? {}) && (0, isEmpty_1.default)(pkg.peerDependencies ?? {});
111017
+ exports2.mergePeers = mergePeers;
111018
+ function safeIntersect(ranges) {
111019
+ try {
111020
+ return (0, semver_range_intersect_1.intersect)(...ranges);
111021
+ } catch {
111022
+ return null;
111023
+ }
110958
111024
  }
110959
- function getResolvedPackage(options) {
110960
- const peerDependencies = peerDependenciesWithoutOwn(options.pkg);
110961
- const requiresBuild = options.allowBuild == null || options.allowBuild(options.pkg.name) ? options.dependencyLockfile != null ? Boolean(options.dependencyLockfile.requiresBuild) : void 0 : false;
110962
- return {
110963
- additionalInfo: {
110964
- bundledDependencies: options.pkg.bundledDependencies,
110965
- bundleDependencies: options.pkg.bundleDependencies,
110966
- cpu: options.pkg.cpu,
110967
- deprecated: options.pkg.deprecated,
110968
- engines: options.pkg.engines,
110969
- os: options.pkg.os,
110970
- libc: options.pkg.libc
110971
- },
110972
- depPath: options.depPath,
110973
- dev: options.wantedDependency.dev,
110974
- fetchingBundledManifest: options.pkgResponse.bundledManifest,
110975
- fetchingFiles: options.pkgResponse.files,
110976
- filesIndexFile: options.pkgResponse.filesIndexFile,
110977
- finishing: options.pkgResponse.finishing,
110978
- hasBin: options.hasBin,
110979
- hasBundledDependencies: !((options.pkg.bundledDependencies ?? options.pkg.bundleDependencies) == null),
110980
- id: options.pkgResponse.body.id,
110981
- name: options.pkg.name,
110982
- optional: options.wantedDependency.optional,
110983
- optionalDependencies: new Set(Object.keys(options.pkg.optionalDependencies ?? {})),
110984
- peerDependencies: peerDependencies ?? {},
110985
- peerDependenciesMeta: options.pkg.peerDependenciesMeta,
110986
- prepare: options.prepare,
110987
- prod: !options.wantedDependency.dev && !options.wantedDependency.optional,
110988
- requiresBuild,
110989
- resolution: options.pkgResponse.body.resolution,
110990
- version: options.pkg.version
110991
- };
111025
+ exports2.safeIntersect = safeIntersect;
111026
+ }
111027
+ });
111028
+
111029
+ // ../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js
111030
+ var require_wantedDepIsLocallyAvailable = __commonJS({
111031
+ "../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js"(exports2) {
111032
+ "use strict";
111033
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111034
+ return mod && mod.__esModule ? mod : { "default": mod };
111035
+ };
111036
+ Object.defineProperty(exports2, "__esModule", { value: true });
111037
+ var npm_resolver_1 = require_lib41();
111038
+ var semver_12 = __importDefault2(require_semver2());
111039
+ function wantedDepIsLocallyAvailable(workspacePackages, wantedDependency, opts) {
111040
+ const spec = (0, npm_resolver_1.parsePref)(wantedDependency.pref, wantedDependency.alias, opts.defaultTag || "latest", opts.registry);
111041
+ if (spec == null || !workspacePackages[spec.name])
111042
+ return false;
111043
+ return pickMatchingLocalVersionOrNull(workspacePackages[spec.name], spec) !== null;
110992
111044
  }
110993
- function peerDependenciesWithoutOwn(pkg) {
110994
- if (pkg.peerDependencies == null && pkg.peerDependenciesMeta == null)
110995
- return pkg.peerDependencies;
110996
- const ownDeps = /* @__PURE__ */ new Set([
110997
- ...Object.keys(pkg.dependencies ?? {}),
110998
- ...Object.keys(pkg.optionalDependencies ?? {})
110999
- ]);
111000
- const result2 = {};
111001
- if (pkg.peerDependencies != null) {
111002
- for (const [peerName, peerRange] of Object.entries(pkg.peerDependencies)) {
111003
- if (ownDeps.has(peerName))
111004
- continue;
111005
- result2[peerName] = peerRange;
111006
- }
111007
- }
111008
- if (pkg.peerDependenciesMeta != null) {
111009
- for (const [peerName, peerMeta] of Object.entries(pkg.peerDependenciesMeta)) {
111010
- if (ownDeps.has(peerName) || result2[peerName] || peerMeta.optional !== true)
111011
- continue;
111012
- result2[peerName] = "*";
111013
- }
111045
+ exports2.default = wantedDepIsLocallyAvailable;
111046
+ function pickMatchingLocalVersionOrNull(versions, spec) {
111047
+ const localVersions = Object.keys(versions);
111048
+ switch (spec.type) {
111049
+ case "tag":
111050
+ return semver_12.default.maxSatisfying(localVersions, "*");
111051
+ case "version":
111052
+ return versions[spec.fetchSpec] ? spec.fetchSpec : null;
111053
+ case "range":
111054
+ return semver_12.default.maxSatisfying(localVersions, spec.fetchSpec, true);
111055
+ default:
111056
+ return null;
111014
111057
  }
111015
- if ((0, isEmpty_1.default)(result2))
111016
- return void 0;
111017
- return result2;
111018
111058
  }
111019
111059
  }
111020
111060
  });
111021
111061
 
111022
- // ../resolve-dependencies/lib/resolveDependencyTree.js
111023
- var require_resolveDependencyTree = __commonJS({
111024
- "../resolve-dependencies/lib/resolveDependencyTree.js"(exports2) {
111062
+ // ../resolve-dependencies/lib/resolveDependencies.js
111063
+ var require_resolveDependencies = __commonJS({
111064
+ "../resolve-dependencies/lib/resolveDependencies.js"(exports2) {
111025
111065
  "use strict";
111026
111066
  var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
111027
111067
  if (k2 === void 0)
@@ -111038,857 +111078,875 @@ var require_resolveDependencyTree = __commonJS({
111038
111078
  k2 = k;
111039
111079
  o[k2] = m[k];
111040
111080
  });
111041
- var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
111042
- for (var p in m)
111043
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
111044
- __createBinding(exports3, m, p);
111081
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
111082
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
111083
+ } : function(o, v) {
111084
+ o["default"] = v;
111085
+ });
111086
+ var __importStar = exports2 && exports2.__importStar || function(mod) {
111087
+ if (mod && mod.__esModule)
111088
+ return mod;
111089
+ var result2 = {};
111090
+ if (mod != null) {
111091
+ for (var k in mod)
111092
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
111093
+ __createBinding(result2, mod, k);
111094
+ }
111095
+ __setModuleDefault(result2, mod);
111096
+ return result2;
111045
111097
  };
111046
111098
  var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111047
111099
  return mod && mod.__esModule ? mod : { "default": mod };
111048
111100
  };
111049
111101
  Object.defineProperty(exports2, "__esModule", { value: true });
111050
- var partition_1 = __importDefault2(require_partition4());
111102
+ exports2.nodeIdToParents = void 0;
111103
+ var path_1 = __importDefault2(require("path"));
111104
+ var core_loggers_1 = require_lib8();
111105
+ var error_1 = __importDefault2(require_lib7());
111106
+ var lockfile_utils_1 = require_lib54();
111107
+ var logger_1 = __importDefault2(require_lib());
111108
+ var pick_registry_for_package_1 = __importDefault2(require_lib49());
111109
+ var dp = __importStar(require_lib51());
111110
+ var path_exists_1 = __importDefault2(require_path_exists());
111111
+ var isEmpty_1 = __importDefault2(require_isEmpty2());
111112
+ var semver_12 = __importDefault2(require_semver2());
111113
+ var encodePkgId_1 = __importDefault2(require_encodePkgId());
111114
+ var getNonDevWantedDependencies_1 = __importDefault2(require_getNonDevWantedDependencies());
111115
+ var mergePeers_1 = require_mergePeers();
111051
111116
  var nodeIdUtils_1 = require_nodeIdUtils();
111052
- var resolveDependencies_1 = __importDefault2(require_resolveDependencies());
111053
- __exportStar(require_nodeIdUtils(), exports2);
111054
- async function default_1(importers, opts) {
111055
- const directDepsByImporterId = {};
111056
- const wantedToBeSkippedPackageIds = /* @__PURE__ */ new Set();
111057
- const ctx = {
111058
- allowBuild: opts.allowBuild,
111059
- childrenByParentDepPath: {},
111060
- currentLockfile: opts.currentLockfile,
111061
- defaultTag: opts.tag,
111062
- dependenciesTree: {},
111063
- dryRun: opts.dryRun,
111064
- engineStrict: opts.engineStrict,
111065
- force: opts.force,
111066
- forceFullResolution: opts.forceFullResolution,
111067
- linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? -1,
111068
- lockfileDir: opts.lockfileDir,
111069
- nodeVersion: opts.nodeVersion,
111070
- outdatedDependencies: {},
111071
- pendingNodes: [],
111072
- pnpmVersion: opts.pnpmVersion,
111073
- preferWorkspacePackages: opts.preferWorkspacePackages,
111074
- readPackageHook: opts.hooks.readPackage,
111075
- registries: opts.registries,
111076
- resolvedPackagesByDepPath: {},
111077
- skipped: wantedToBeSkippedPackageIds,
111078
- storeController: opts.storeController,
111079
- updateMatching: opts.updateMatching,
111080
- virtualStoreDir: opts.virtualStoreDir,
111081
- wantedLockfile: opts.wantedLockfile
111082
- };
111083
- await Promise.all(importers.map(async (importer) => {
111084
- const projectSnapshot = opts.wantedLockfile.importers[importer.id];
111085
- const linkedDependencies = [];
111086
- const resolveCtx = {
111087
- ...ctx,
111088
- updatedSet: /* @__PURE__ */ new Set(),
111089
- linkedDependencies,
111090
- modulesDir: importer.modulesDir,
111091
- prefix: importer.rootDir
111092
- };
111093
- const proceed = importer.id === "." || importer.hasRemovedDependencies === true || importer.wantedDependencies.some((wantedDep) => wantedDep["isNew"]);
111094
- const resolveOpts = {
111095
- currentDepth: 0,
111096
- parentPkg: {
111097
- installable: true,
111098
- nodeId: `>${importer.id}>`,
111099
- optional: false,
111100
- depPath: importer.id,
111101
- rootDir: importer.rootDir
111102
- },
111103
- proceed,
111104
- resolvedDependencies: {
111105
- ...projectSnapshot.dependencies,
111106
- ...projectSnapshot.devDependencies,
111107
- ...projectSnapshot.optionalDependencies
111108
- },
111109
- updateDepth: -1,
111110
- workspacePackages: opts.workspacePackages
111111
- };
111112
- directDepsByImporterId[importer.id] = await (0, resolveDependencies_1.default)(resolveCtx, importer.preferredVersions ?? {}, importer.wantedDependencies, resolveOpts);
111113
- }));
111114
- ctx.pendingNodes.forEach((pendingNode) => {
111115
- ctx.dependenciesTree[pendingNode.nodeId] = {
111116
- children: () => buildTree(ctx, pendingNode.nodeId, pendingNode.resolvedPackage.id, ctx.childrenByParentDepPath[pendingNode.resolvedPackage.depPath], pendingNode.depth + 1, pendingNode.installable),
111117
- depth: pendingNode.depth,
111118
- installable: pendingNode.installable,
111119
- resolvedPackage: pendingNode.resolvedPackage
111120
- };
111117
+ var wantedDepIsLocallyAvailable_1 = __importDefault2(require_wantedDepIsLocallyAvailable());
111118
+ var dependencyResolvedLogger = (0, logger_1.default)("_dependency_resolved");
111119
+ function nodeIdToParents(nodeId, resolvedPackagesByDepPath) {
111120
+ return (0, nodeIdUtils_1.splitNodeId)(nodeId).slice(1).map((depPath) => {
111121
+ const { id, name, version } = resolvedPackagesByDepPath[depPath];
111122
+ return { id, name, version };
111121
111123
  });
111122
- const resolvedImporters = {};
111123
- for (const { id } of importers) {
111124
- const directDeps = directDepsByImporterId[id];
111125
- const [linkedDependencies, directNonLinkedDeps] = (0, partition_1.default)((dep) => dep.isLinkedDependency === true, directDeps);
111126
- resolvedImporters[id] = {
111127
- directDependencies: directDeps.map((dep) => {
111128
- if (dep.isLinkedDependency === true) {
111129
- return dep;
111130
- }
111131
- const resolvedPackage = ctx.dependenciesTree[dep.nodeId].resolvedPackage;
111132
- return {
111133
- alias: dep.alias,
111134
- dev: resolvedPackage.dev,
111135
- name: resolvedPackage.name,
111136
- normalizedPref: dep.normalizedPref,
111137
- optional: resolvedPackage.optional,
111138
- pkgId: resolvedPackage.id,
111139
- resolution: resolvedPackage.resolution,
111140
- version: resolvedPackage.version
111141
- };
111142
- }),
111143
- directNodeIdsByAlias: directNonLinkedDeps.reduce((acc, dependency) => {
111144
- acc[dependency.alias] = dependency.nodeId;
111145
- return acc;
111146
- }, {}),
111147
- linkedDependencies
111148
- };
111149
- }
111150
- return {
111151
- dependenciesTree: ctx.dependenciesTree,
111152
- outdatedDependencies: ctx.outdatedDependencies,
111153
- resolvedImporters,
111154
- resolvedPackagesByDepPath: ctx.resolvedPackagesByDepPath,
111155
- wantedToBeSkippedPackageIds
111156
- };
111157
111124
  }
111158
- exports2.default = default_1;
111159
- function buildTree(ctx, parentNodeId, parentId, children, depth, installable) {
111160
- const childrenNodeIds = {};
111161
- for (const child of children) {
111162
- if (child.depPath.startsWith("link:")) {
111163
- childrenNodeIds[child.alias] = child.depPath;
111164
- continue;
111125
+ exports2.nodeIdToParents = nodeIdToParents;
111126
+ async function resolveDependencies(ctx, preferredVersions, wantedDependencies, options) {
111127
+ let extendedWantedDeps = [];
111128
+ const postponedResolutionsQueue = [];
111129
+ const pkgAddresses = [];
111130
+ while (true) {
111131
+ extendedWantedDeps = getDepsToResolve(wantedDependencies, ctx.wantedLockfile, {
111132
+ preferredDependencies: options.preferredDependencies,
111133
+ prefix: ctx.prefix,
111134
+ proceed: options.proceed || ctx.forceFullResolution,
111135
+ registries: ctx.registries,
111136
+ resolvedDependencies: options.resolvedDependencies
111137
+ });
111138
+ const newPkgAddresses = (await Promise.all(extendedWantedDeps.map(async (extendedWantedDep) => resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep)))).filter(Boolean);
111139
+ pkgAddresses.push(...newPkgAddresses);
111140
+ if (!ctx.autoInstallPeers)
111141
+ break;
111142
+ const allMissingPeers = mergePkgsDeps(newPkgAddresses.map(({ missingPeers }) => missingPeers));
111143
+ if (!Object.keys(allMissingPeers).length)
111144
+ break;
111145
+ wantedDependencies = (0, getNonDevWantedDependencies_1.default)({ dependencies: allMissingPeers });
111146
+ }
111147
+ const newPreferredVersions = { ...preferredVersions };
111148
+ const newParentPkgAliases = { ...options.parentPkgAliases };
111149
+ for (const pkgAddress of pkgAddresses) {
111150
+ newParentPkgAliases[pkgAddress.alias] = true;
111151
+ if (pkgAddress.updated) {
111152
+ ctx.updatedSet.add(pkgAddress.alias);
111165
111153
  }
111166
- if ((0, nodeIdUtils_1.nodeIdContainsSequence)(parentNodeId, parentId, child.depPath) || parentId === child.depPath) {
111154
+ const resolvedPackage = ctx.resolvedPackagesByDepPath[pkgAddress.depPath];
111155
+ if (!resolvedPackage)
111167
111156
  continue;
111157
+ if (!newPreferredVersions[resolvedPackage.name]) {
111158
+ newPreferredVersions[resolvedPackage.name] = {};
111168
111159
  }
111169
- const childNodeId = (0, nodeIdUtils_1.createNodeId)(parentNodeId, child.depPath);
111170
- childrenNodeIds[child.alias] = childNodeId;
111171
- installable = installable && !ctx.skipped.has(child.depPath);
111172
- ctx.dependenciesTree[childNodeId] = {
111173
- children: () => buildTree(ctx, childNodeId, child.depPath, ctx.childrenByParentDepPath[child.depPath], depth + 1, installable),
111174
- depth,
111175
- installable,
111176
- resolvedPackage: ctx.resolvedPackagesByDepPath[child.depPath]
111177
- };
111160
+ newPreferredVersions[resolvedPackage.name][resolvedPackage.version] = "version";
111178
111161
  }
111179
- return childrenNodeIds;
111162
+ await Promise.all(postponedResolutionsQueue.map(async (postponedResolution) => postponedResolution(newPreferredVersions, newParentPkgAliases)));
111163
+ return pkgAddresses;
111180
111164
  }
111181
- }
111182
- });
111183
-
111184
- // ../../node_modules/.pnpm/trim-repeated@1.0.0/node_modules/trim-repeated/index.js
111185
- var require_trim_repeated = __commonJS({
111186
- "../../node_modules/.pnpm/trim-repeated@1.0.0/node_modules/trim-repeated/index.js"(exports2, module2) {
111187
- "use strict";
111188
- var escapeStringRegexp = require_escape_string_regexp();
111189
- module2.exports = function(str, target) {
111190
- if (typeof str !== "string" || typeof target !== "string") {
111191
- throw new TypeError("Expected a string");
111192
- }
111193
- return str.replace(new RegExp("(?:" + escapeStringRegexp(target) + "){2,}", "g"), target);
111194
- };
111195
- }
111196
- });
111197
-
111198
- // ../../node_modules/.pnpm/filename-reserved-regex@2.0.0/node_modules/filename-reserved-regex/index.js
111199
- var require_filename_reserved_regex = __commonJS({
111200
- "../../node_modules/.pnpm/filename-reserved-regex@2.0.0/node_modules/filename-reserved-regex/index.js"(exports2, module2) {
111201
- "use strict";
111202
- module2.exports = () => /[<>:"\/\\|?*\x00-\x1F]/g;
111203
- module2.exports.windowsNames = () => /^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i;
111204
- }
111205
- });
111206
-
111207
- // ../../node_modules/.pnpm/strip-outer@1.0.1/node_modules/strip-outer/index.js
111208
- var require_strip_outer = __commonJS({
111209
- "../../node_modules/.pnpm/strip-outer@1.0.1/node_modules/strip-outer/index.js"(exports2, module2) {
111210
- "use strict";
111211
- var escapeStringRegexp = require_escape_string_regexp();
111212
- module2.exports = function(str, sub) {
111213
- if (typeof str !== "string" || typeof sub !== "string") {
111214
- throw new TypeError();
111215
- }
111216
- sub = escapeStringRegexp(sub);
111217
- return str.replace(new RegExp("^" + sub + "|" + sub + "$", "g"), "");
111218
- };
111219
- }
111220
- });
111221
-
111222
- // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify.js
111223
- var require_filenamify = __commonJS({
111224
- "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify.js"(exports2, module2) {
111225
- "use strict";
111226
- var trimRepeated = require_trim_repeated();
111227
- var filenameReservedRegex = require_filename_reserved_regex();
111228
- var stripOuter = require_strip_outer();
111229
- var MAX_FILENAME_LENGTH = 100;
111230
- var reControlChars = /[\u0000-\u001f\u0080-\u009f]/g;
111231
- var reRelativePath = /^\.+/;
111232
- var reTrailingPeriods = /\.+$/;
111233
- var filenamify = (string, options = {}) => {
111234
- if (typeof string !== "string") {
111235
- throw new TypeError("Expected a string");
111236
- }
111237
- const replacement = options.replacement === void 0 ? "!" : options.replacement;
111238
- if (filenameReservedRegex().test(replacement) && reControlChars.test(replacement)) {
111239
- throw new Error("Replacement string cannot contain reserved filename characters");
111240
- }
111241
- string = string.replace(filenameReservedRegex(), replacement);
111242
- string = string.replace(reControlChars, replacement);
111243
- string = string.replace(reRelativePath, replacement);
111244
- string = string.replace(reTrailingPeriods, "");
111245
- if (replacement.length > 0) {
111246
- string = trimRepeated(string, replacement);
111247
- string = string.length > 1 ? stripOuter(string, replacement) : string;
111248
- }
111249
- string = filenameReservedRegex.windowsNames().test(string) ? string + replacement : string;
111250
- string = string.slice(0, typeof options.maxLength === "number" ? options.maxLength : MAX_FILENAME_LENGTH);
111251
- return string;
111252
- };
111253
- module2.exports = filenamify;
111254
- }
111255
- });
111256
-
111257
- // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify-path.js
111258
- var require_filenamify_path = __commonJS({
111259
- "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify-path.js"(exports2, module2) {
111260
- "use strict";
111261
- var path2 = require("path");
111262
- var filenamify = require_filenamify();
111263
- var filenamifyPath = (filePath, options) => {
111264
- filePath = path2.resolve(filePath);
111265
- return path2.join(path2.dirname(filePath), filenamify(path2.basename(filePath), options));
111266
- };
111267
- module2.exports = filenamifyPath;
111268
- }
111269
- });
111270
-
111271
- // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/index.js
111272
- var require_filenamify2 = __commonJS({
111273
- "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/index.js"(exports2, module2) {
111274
- "use strict";
111275
- var filenamify = require_filenamify();
111276
- var filenamifyPath = require_filenamify_path();
111277
- var filenamifyCombined = filenamify;
111278
- filenamifyCombined.path = filenamifyPath;
111279
- module2.exports = filenamify;
111280
- }
111281
- });
111282
-
111283
- // ../../node_modules/.pnpm/@yarnpkg+core@3.2.0/node_modules/@yarnpkg/core/lib/semverUtils.js
111284
- var require_semverUtils = __commonJS({
111285
- "../../node_modules/.pnpm/@yarnpkg+core@3.2.0/node_modules/@yarnpkg/core/lib/semverUtils.js"(exports2) {
111286
- "use strict";
111287
- Object.defineProperty(exports2, "__esModule", { value: true });
111288
- exports2.clean = exports2.validRange = exports2.satisfiesWithPrereleases = exports2.SemVer = void 0;
111289
- var tslib_12 = require_tslib();
111290
- var semver_12 = tslib_12.__importDefault(require_semver2());
111291
- var semver_2 = require_semver2();
111292
- Object.defineProperty(exports2, "SemVer", { enumerable: true, get: function() {
111293
- return semver_2.SemVer;
111294
- } });
111295
- var satisfiesWithPrereleasesCache = /* @__PURE__ */ new Map();
111296
- function satisfiesWithPrereleases(version, range, loose = false) {
111297
- if (!version)
111298
- return false;
111299
- const key = `${range}${loose}`;
111300
- let semverRange = satisfiesWithPrereleasesCache.get(key);
111301
- if (typeof semverRange === `undefined`) {
111302
- try {
111303
- semverRange = new semver_12.default.Range(range, { includePrerelease: true, loose });
111304
- } catch {
111305
- return false;
111306
- } finally {
111307
- satisfiesWithPrereleasesCache.set(key, semverRange || null);
111165
+ exports2.default = resolveDependencies;
111166
+ function mergePkgsDeps(pkgsDeps) {
111167
+ const groupedRanges = {};
111168
+ for (const deps of pkgsDeps) {
111169
+ for (const [name, range] of Object.entries(deps)) {
111170
+ if (!groupedRanges[name]) {
111171
+ groupedRanges[name] = [];
111172
+ }
111173
+ groupedRanges[name].push(range);
111308
111174
  }
111309
- } else if (semverRange === null) {
111310
- return false;
111311
111175
  }
111312
- let semverVersion;
111313
- try {
111314
- semverVersion = new semver_12.default.SemVer(version, semverRange);
111315
- } catch (err) {
111316
- return false;
111176
+ const mergedPkgDeps = {};
111177
+ for (const [name, ranges] of Object.entries(groupedRanges)) {
111178
+ const intersection = (0, mergePeers_1.safeIntersect)(ranges);
111179
+ if (intersection) {
111180
+ mergedPkgDeps[name] = intersection;
111181
+ }
111317
111182
  }
111318
- if (semverRange.test(semverVersion))
111319
- return true;
111320
- if (semverVersion.prerelease)
111321
- semverVersion.prerelease = [];
111322
- return semverRange.set.some((comparatorSet) => {
111323
- for (const comparator of comparatorSet)
111324
- if (comparator.semver.prerelease)
111325
- comparator.semver.prerelease = [];
111326
- return comparatorSet.every((comparator) => {
111327
- return comparator.test(semverVersion);
111328
- });
111329
- });
111183
+ return mergedPkgDeps;
111330
111184
  }
111331
- exports2.satisfiesWithPrereleases = satisfiesWithPrereleases;
111332
- var rangesCache = /* @__PURE__ */ new Map();
111333
- function validRange(potentialRange) {
111334
- if (potentialRange.indexOf(`:`) !== -1)
111185
+ async function resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep) {
111186
+ const updateDepth = typeof extendedWantedDep.wantedDependency.updateDepth === "number" ? extendedWantedDep.wantedDependency.updateDepth : options.updateDepth;
111187
+ const updateShouldContinue = options.currentDepth <= updateDepth;
111188
+ const update = extendedWantedDep.infoFromLockfile?.dependencyLockfile == null || updateShouldContinue && (ctx.updateMatching == null || ctx.updateMatching(extendedWantedDep.infoFromLockfile.name)) || Boolean(options.workspacePackages != null && ctx.linkWorkspacePackagesDepth !== -1 && (0, wantedDepIsLocallyAvailable_1.default)(options.workspacePackages, extendedWantedDep.wantedDependency, { defaultTag: ctx.defaultTag, registry: ctx.registries.default })) || ctx.updatedSet.has(extendedWantedDep.infoFromLockfile.name);
111189
+ const resolveDependencyOpts = {
111190
+ currentDepth: options.currentDepth,
111191
+ parentPkg: options.parentPkg,
111192
+ parentPkgAliases: options.parentPkgAliases,
111193
+ preferredVersions,
111194
+ workspacePackages: options.workspacePackages,
111195
+ currentPkg: extendedWantedDep.infoFromLockfile ?? void 0,
111196
+ proceed: extendedWantedDep.proceed || updateShouldContinue || ctx.updatedSet.size > 0,
111197
+ update,
111198
+ updateDepth
111199
+ };
111200
+ const resolveDependencyResult = await resolveDependency(extendedWantedDep.wantedDependency, ctx, resolveDependencyOpts);
111201
+ if (resolveDependencyResult == null)
111335
111202
  return null;
111336
- let range = rangesCache.get(potentialRange);
111337
- if (typeof range !== `undefined`)
111338
- return range;
111339
- try {
111340
- range = new semver_12.default.Range(potentialRange);
111341
- } catch {
111342
- range = null;
111203
+ if (resolveDependencyResult.isLinkedDependency) {
111204
+ ctx.dependenciesTree[resolveDependencyResult.pkgId] = {
111205
+ children: {},
111206
+ depth: -1,
111207
+ installable: true,
111208
+ resolvedPackage: {
111209
+ name: resolveDependencyResult.name,
111210
+ version: resolveDependencyResult.version
111211
+ }
111212
+ };
111213
+ return resolveDependencyResult;
111343
111214
  }
111344
- rangesCache.set(potentialRange, range);
111345
- return range;
111215
+ if (!resolveDependencyResult.isNew)
111216
+ return resolveDependencyResult;
111217
+ postponedResolutionsQueue.push(async (preferredVersions2, parentPkgAliases) => resolveChildren(ctx, resolveDependencyResult, parentPkgAliases, extendedWantedDep.infoFromLockfile?.dependencyLockfile, options.workspacePackages, options.currentDepth, updateDepth, preferredVersions2));
111218
+ return resolveDependencyResult;
111346
111219
  }
111347
- exports2.validRange = validRange;
111348
- var CLEAN_SEMVER_REGEXP = /^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;
111349
- function clean(potentialVersion) {
111350
- const version = CLEAN_SEMVER_REGEXP.exec(potentialVersion);
111351
- return version ? version[1] : null;
111220
+ async function resolveChildren(ctx, parentPkg, parentPkgAliases, dependencyLockfile, workspacePackages, parentDepth, updateDepth, preferredVersions) {
111221
+ const currentResolvedDependencies = dependencyLockfile != null ? {
111222
+ ...dependencyLockfile.dependencies,
111223
+ ...dependencyLockfile.optionalDependencies
111224
+ } : void 0;
111225
+ const resolvedDependencies = parentPkg.updated ? void 0 : currentResolvedDependencies;
111226
+ const parentDependsOnPeer = Boolean(Object.keys(dependencyLockfile?.peerDependencies ?? parentPkg.pkg.peerDependencies ?? {}).length);
111227
+ const wantedDependencies = (0, getNonDevWantedDependencies_1.default)(parentPkg.pkg);
111228
+ const children = await resolveDependencies(ctx, preferredVersions, wantedDependencies, {
111229
+ currentDepth: parentDepth + 1,
111230
+ parentPkg,
111231
+ parentPkgAliases,
111232
+ preferredDependencies: currentResolvedDependencies,
111233
+ proceed: !parentPkg.depIsLinked || parentDependsOnPeer,
111234
+ resolvedDependencies,
111235
+ updateDepth,
111236
+ workspacePackages
111237
+ });
111238
+ ctx.childrenByParentDepPath[parentPkg.depPath] = children.map((child) => ({
111239
+ alias: child.alias,
111240
+ depPath: child.depPath
111241
+ }));
111242
+ ctx.dependenciesTree[parentPkg.nodeId] = {
111243
+ children: children.reduce((chn, child) => {
111244
+ chn[child.alias] = child["nodeId"] ?? child.pkgId;
111245
+ return chn;
111246
+ }, {}),
111247
+ depth: parentDepth,
111248
+ installable: parentPkg.installable,
111249
+ resolvedPackage: ctx.resolvedPackagesByDepPath[parentPkg.depPath]
111250
+ };
111352
111251
  }
111353
- exports2.clean = clean;
111354
- }
111355
- });
111356
-
111357
- // ../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/scan.js
111358
- var require_scan4 = __commonJS({
111359
- "../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/scan.js"(exports2, module2) {
111360
- var _curry3 = require_curry3();
111361
- var scan = /* @__PURE__ */ _curry3(function scan2(fn2, acc, list) {
111362
- var idx = 0;
111363
- var len = list.length;
111364
- var result2 = [acc];
111365
- while (idx < len) {
111366
- acc = fn2(acc, list[idx]);
111367
- result2[idx + 1] = acc;
111368
- idx += 1;
111252
+ function getDepsToResolve(wantedDependencies, wantedLockfile, options) {
111253
+ const resolvedDependencies = options.resolvedDependencies ?? {};
111254
+ const preferredDependencies = options.preferredDependencies ?? {};
111255
+ const extendedWantedDeps = [];
111256
+ let proceedAll = options.proceed;
111257
+ const satisfiesWanted2Args = referenceSatisfiesWantedSpec.bind(null, {
111258
+ lockfile: wantedLockfile,
111259
+ prefix: options.prefix
111260
+ });
111261
+ for (const wantedDependency of wantedDependencies) {
111262
+ let reference = void 0;
111263
+ let proceed = proceedAll;
111264
+ if (wantedDependency.alias) {
111265
+ const satisfiesWanted = satisfiesWanted2Args.bind(null, wantedDependency);
111266
+ if (resolvedDependencies[wantedDependency.alias] && satisfiesWanted(resolvedDependencies[wantedDependency.alias])) {
111267
+ reference = resolvedDependencies[wantedDependency.alias];
111268
+ } else if (semver_12.default.validRange(wantedDependency.pref) !== null && preferredDependencies[wantedDependency.alias] && satisfiesWanted(preferredDependencies[wantedDependency.alias])) {
111269
+ proceed = true;
111270
+ reference = preferredDependencies[wantedDependency.alias];
111271
+ }
111272
+ }
111273
+ const infoFromLockfile = getInfoFromLockfile(wantedLockfile, options.registries, reference, wantedDependency.alias);
111274
+ if (!proceedAll && (infoFromLockfile == null || infoFromLockfile.dependencyLockfile != null && (infoFromLockfile.dependencyLockfile.peerDependencies != null || infoFromLockfile.dependencyLockfile.transitivePeerDependencies?.length))) {
111275
+ proceed = true;
111276
+ proceedAll = true;
111277
+ for (const extendedWantedDep of extendedWantedDeps) {
111278
+ if (!extendedWantedDep.proceed) {
111279
+ extendedWantedDep.proceed = true;
111280
+ }
111281
+ }
111282
+ }
111283
+ extendedWantedDeps.push({
111284
+ infoFromLockfile,
111285
+ proceed,
111286
+ wantedDependency
111287
+ });
111369
111288
  }
111370
- return result2;
111371
- });
111372
- module2.exports = scan;
111373
- }
111374
- });
111375
-
111376
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js
111377
- var require_utils7 = __commonJS({
111378
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js"(exports2) {
111379
- "use strict";
111380
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111381
- return mod && mod.__esModule ? mod : { "default": mod };
111382
- };
111383
- Object.defineProperty(exports2, "__esModule", { value: true });
111384
- var semver_12 = __importDefault2(require_semver3());
111385
- function isNotNull(value) {
111386
- return value !== null;
111387
- }
111388
- exports2.isNotNull = isNotNull;
111389
- function uniqueArray(array) {
111390
- return [...new Set(array)];
111391
- }
111392
- exports2.uniqueArray = uniqueArray;
111393
- function isNoIncludeNull(value) {
111394
- return value.every(isNotNull);
111289
+ return extendedWantedDeps;
111395
111290
  }
111396
- exports2.isNoIncludeNull = isNoIncludeNull;
111397
- function isPrerelease(version) {
111398
- if (version instanceof semver_12.default.SemVer) {
111399
- return version.prerelease.length !== 0;
111400
- } else {
111291
+ function referenceSatisfiesWantedSpec(opts, wantedDep, preferredRef) {
111292
+ const depPath = dp.refToRelative(preferredRef, wantedDep.alias);
111293
+ if (depPath === null)
111294
+ return false;
111295
+ const pkgSnapshot = opts.lockfile.packages?.[depPath];
111296
+ if (pkgSnapshot == null) {
111297
+ logger_1.default.warn({
111298
+ message: `Could not find preferred package ${depPath} in lockfile`,
111299
+ prefix: opts.prefix
111300
+ });
111401
111301
  return false;
111402
111302
  }
111303
+ const { version } = (0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, pkgSnapshot);
111304
+ return semver_12.default.satisfies(version, wantedDep.pref, true);
111403
111305
  }
111404
- exports2.isPrerelease = isPrerelease;
111405
- function isValidOperator(comparator, operatorList) {
111406
- return operatorList.includes(comparator.operator);
111407
- }
111408
- exports2.isValidOperator = isValidOperator;
111409
- function equalComparator(comparatorA, comparatorB) {
111410
- return comparatorA.value === comparatorB.value;
111411
- }
111412
- exports2.equalComparator = equalComparator;
111413
- function comparator2versionStr(comparator) {
111414
- const compSemver = comparator.semver;
111415
- return compSemver instanceof semver_12.default.SemVer ? compSemver.version : "";
111416
- }
111417
- exports2.comparator2versionStr = comparator2versionStr;
111418
- function isSameVersionEqualsLikeComparator(comparatorA, comparatorB) {
111419
- const compVersionA = comparator2versionStr(comparatorA);
111420
- const compVersionB = comparator2versionStr(comparatorB);
111421
- return compVersionA !== "" && compVersionB !== "" && compVersionA === compVersionB && /=|^$/.test(comparatorA.operator) && /=|^$/.test(comparatorB.operator);
111422
- }
111423
- exports2.isSameVersionEqualsLikeComparator = isSameVersionEqualsLikeComparator;
111424
- function isEqualsComparator(comparator) {
111425
- return comparator.semver instanceof semver_12.default.SemVer && isValidOperator(comparator, ["", "="]);
111426
- }
111427
- exports2.isEqualsComparator = isEqualsComparator;
111428
- function filterUniqueComparator(comparator, index, self2) {
111429
- return self2.findIndex((comp) => equalComparator(comparator, comp)) === index;
111430
- }
111431
- exports2.filterUniqueComparator = filterUniqueComparator;
111432
- function filterOperator(operatorList) {
111433
- return (comparator) => isValidOperator(comparator, operatorList);
111434
- }
111435
- exports2.filterOperator = filterOperator;
111436
- function isIntersectRanges(semverRangeList) {
111437
- return semverRangeList.every((rangeA, index, rangeList) => rangeList.slice(index + 1).every((rangeB) => rangeA.intersects(rangeB)));
111438
- }
111439
- exports2.isIntersectRanges = isIntersectRanges;
111440
- function stripSemVerPrerelease(semverVersion) {
111441
- if (!(semverVersion instanceof semver_12.default.SemVer)) {
111442
- return "";
111443
- }
111444
- if (!semverVersion.prerelease.length) {
111445
- return semverVersion.version;
111446
- }
111447
- const newSemverVersion = new semver_12.default.SemVer(semverVersion.version, semverVersion.options);
111448
- newSemverVersion.prerelease = [];
111449
- return newSemverVersion.format();
111450
- }
111451
- exports2.stripSemVerPrerelease = stripSemVerPrerelease;
111452
- function stripComparatorOperator(comparator) {
111453
- if (!comparator.operator) {
111454
- return comparator;
111306
+ function getInfoFromLockfile(lockfile, registries, reference, alias) {
111307
+ if (!reference || !alias) {
111308
+ return void 0;
111455
111309
  }
111456
- const versionStr = comparator2versionStr(comparator);
111457
- return new semver_12.default.Comparator(versionStr, comparator.options);
111458
- }
111459
- exports2.stripComparatorOperator = stripComparatorOperator;
111460
- function getLowerBoundComparator(comparatorList, options = {}) {
111461
- const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, [">", ">="]) || !(comparator.semver instanceof semver_12.default.SemVer));
111462
- const leComparatorVersionList = comparatorList.filter(filterOperator(["<="])).map(comparator2versionStr);
111463
- if (validComparatorList.length >= 1) {
111464
- return validComparatorList.reduce((a, b) => {
111465
- const semverA = a.semver;
111466
- const semverB = b.semver;
111467
- if (!(semverA instanceof semver_12.default.SemVer)) {
111468
- if (!options.singleRange && isPrerelease(semverB) && !(b.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverB)))) {
111469
- return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverB)}`, b.options);
111470
- }
111471
- return b;
111472
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
111473
- if (!options.singleRange && isPrerelease(semverA) && !(a.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverA)))) {
111474
- return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverA)}`, a.options);
111475
- }
111476
- return a;
111477
- }
111478
- const semverCmp = semver_12.default.compare(semverA, semverB);
111479
- if (a.operator === b.operator || semverCmp !== 0) {
111480
- if (!options.singleRange) {
111481
- const semverCmpMain = semverA.compareMain(semverB);
111482
- if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
111483
- if (semverCmpMain > 0) {
111484
- return new semver_12.default.Comparator(a.operator + stripSemVerPrerelease(semverA), a.options);
111485
- } else {
111486
- return new semver_12.default.Comparator(b.operator + stripSemVerPrerelease(semverB), b.options);
111487
- }
111488
- }
111489
- }
111490
- if (semverCmp > 0) {
111491
- return a;
111492
- } else {
111493
- return b;
111494
- }
111495
- } else {
111496
- if (a.operator === ">") {
111497
- return a;
111498
- } else {
111499
- return b;
111500
- }
111501
- }
111502
- });
111503
- } else {
111504
- return new semver_12.default.Comparator("");
111310
+ const depPath = dp.refToRelative(reference, alias);
111311
+ if (!depPath) {
111312
+ return void 0;
111505
111313
  }
111506
- }
111507
- exports2.getLowerBoundComparator = getLowerBoundComparator;
111508
- function getUpperBoundComparator(comparatorList, options = {}) {
111509
- const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, ["<", "<="]) || !(comparator.semver instanceof semver_12.default.SemVer));
111510
- const geComparatorVersionList = comparatorList.filter(filterOperator([">="])).map(comparator2versionStr);
111511
- if (validComparatorList.length >= 1) {
111512
- return validComparatorList.reduce((a, b) => {
111513
- const semverA = a.semver;
111514
- const semverB = b.semver;
111515
- if (!(semverA instanceof semver_12.default.SemVer)) {
111516
- if (!options.singleRange && isPrerelease(semverB) && !(b.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverB)))) {
111517
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
111518
- }
111519
- return b;
111520
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
111521
- if (!options.singleRange && isPrerelease(semverA) && !(a.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverA)))) {
111522
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
111523
- }
111524
- return a;
111525
- }
111526
- const semverCmp = semver_12.default.compare(semverA, semverB);
111527
- if (a.operator === b.operator || semverCmp !== 0) {
111528
- if (!options.singleRange) {
111529
- const semverCmpMain = semverA.compareMain(semverB);
111530
- if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
111531
- if (semverCmpMain < 0) {
111532
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
111533
- } else {
111534
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
111535
- }
111536
- }
111537
- }
111538
- if (semverCmp < 0) {
111539
- return a;
111540
- } else {
111541
- return b;
111542
- }
111543
- } else {
111544
- if (a.operator === "<") {
111545
- return a;
111546
- } else {
111547
- return b;
111548
- }
111314
+ let dependencyLockfile = lockfile.packages?.[depPath];
111315
+ if (dependencyLockfile != null) {
111316
+ if (dependencyLockfile.peerDependencies != null && dependencyLockfile.dependencies != null) {
111317
+ const dependencies = {};
111318
+ for (const [depName, ref] of Object.entries(dependencyLockfile.dependencies ?? {})) {
111319
+ if (dependencyLockfile.peerDependencies[depName])
111320
+ continue;
111321
+ dependencies[depName] = ref;
111549
111322
  }
111550
- });
111323
+ dependencyLockfile = {
111324
+ ...dependencyLockfile,
111325
+ dependencies
111326
+ };
111327
+ }
111328
+ return {
111329
+ ...(0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, dependencyLockfile),
111330
+ dependencyLockfile,
111331
+ depPath,
111332
+ pkgId: (0, lockfile_utils_1.packageIdFromSnapshot)(depPath, dependencyLockfile, registries),
111333
+ resolution: dependencyLockfile.resolution && (0, lockfile_utils_1.pkgSnapshotToResolution)(depPath, dependencyLockfile, registries)
111334
+ };
111551
111335
  } else {
111552
- return new semver_12.default.Comparator("");
111336
+ return {
111337
+ depPath,
111338
+ pkgId: dp.tryGetPackageId(registries, depPath) ?? depPath
111339
+ };
111553
111340
  }
111554
111341
  }
111555
- exports2.getUpperBoundComparator = getUpperBoundComparator;
111556
- }
111557
- });
111558
-
111559
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js
111560
- var require_single_range = __commonJS({
111561
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js"(exports2) {
111562
- "use strict";
111563
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111564
- return mod && mod.__esModule ? mod : { "default": mod };
111565
- };
111566
- Object.defineProperty(exports2, "__esModule", { value: true });
111567
- var semver_12 = __importDefault2(require_semver3());
111568
- var utils_1 = require_utils7();
111569
- var SingleVer = class {
111570
- constructor(comp) {
111571
- this.comp = comp;
111342
+ async function resolveDependency(wantedDependency, ctx, options) {
111343
+ const currentPkg = options.currentPkg ?? {};
111344
+ const currentLockfileContainsTheDep = currentPkg.depPath ? Boolean(ctx.currentLockfile.packages?.[currentPkg.depPath]) : void 0;
111345
+ const depIsLinked = Boolean(currentLockfileContainsTheDep && currentPkg.depPath && currentPkg.dependencyLockfile && await (0, path_exists_1.default)(path_1.default.join(ctx.virtualStoreDir, dp.depPathToFilename(currentPkg.depPath), "node_modules", currentPkg.name, "package.json")));
111346
+ if (!options.update && !options.proceed && currentPkg.resolution != null && depIsLinked) {
111347
+ return null;
111572
111348
  }
111573
- toString() {
111574
- return this.comp.value;
111349
+ let pkgResponse;
111350
+ if (!options.parentPkg.installable) {
111351
+ wantedDependency = {
111352
+ ...wantedDependency,
111353
+ optional: true
111354
+ };
111575
111355
  }
111576
- intersect(singleRange) {
111577
- if (semver_12.default.intersects(String(this), String(singleRange))) {
111578
- return this;
111579
- } else {
111356
+ try {
111357
+ pkgResponse = await ctx.storeController.requestPackage(wantedDependency, {
111358
+ alwaysTryWorkspacePackages: ctx.linkWorkspacePackagesDepth >= options.currentDepth,
111359
+ currentPkg: currentPkg ? {
111360
+ id: currentPkg.pkgId,
111361
+ resolution: currentPkg.resolution
111362
+ } : void 0,
111363
+ expectedPkg: currentPkg,
111364
+ defaultTag: ctx.defaultTag,
111365
+ downloadPriority: -options.currentDepth,
111366
+ lockfileDir: ctx.lockfileDir,
111367
+ preferredVersions: options.preferredVersions,
111368
+ preferWorkspacePackages: ctx.preferWorkspacePackages,
111369
+ projectDir: options.currentDepth > 0 && !wantedDependency.pref.startsWith("file:") ? ctx.lockfileDir : options.parentPkg.rootDir,
111370
+ registry: wantedDependency.alias && (0, pick_registry_for_package_1.default)(ctx.registries, wantedDependency.alias, wantedDependency.pref) || ctx.registries.default,
111371
+ skipFetch: false,
111372
+ update: options.update,
111373
+ workspacePackages: options.workspacePackages
111374
+ });
111375
+ } catch (err) {
111376
+ if (wantedDependency.optional) {
111377
+ core_loggers_1.skippedOptionalDependencyLogger.debug({
111378
+ details: err.toString(),
111379
+ package: {
111380
+ name: wantedDependency.alias,
111381
+ pref: wantedDependency.pref,
111382
+ version: wantedDependency.alias ? wantedDependency.pref : void 0
111383
+ },
111384
+ parents: nodeIdToParents(options.parentPkg.nodeId, ctx.resolvedPackagesByDepPath),
111385
+ prefix: ctx.prefix,
111386
+ reason: "resolution_failure"
111387
+ });
111580
111388
  return null;
111581
111389
  }
111390
+ err.pkgsStack = nodeIdToParents(options.parentPkg.nodeId, ctx.resolvedPackagesByDepPath);
111391
+ throw err;
111582
111392
  }
111583
- merge(singleRange) {
111584
- if (semver_12.default.intersects(String(this), String(singleRange))) {
111585
- return singleRange;
111393
+ dependencyResolvedLogger.debug({
111394
+ resolution: pkgResponse.body.id,
111395
+ wanted: {
111396
+ dependentId: options.parentPkg.depPath,
111397
+ name: wantedDependency.alias,
111398
+ rawSpec: wantedDependency.pref
111586
111399
  }
111400
+ });
111401
+ pkgResponse.body.id = (0, encodePkgId_1.default)(pkgResponse.body.id);
111402
+ if (!pkgResponse.body.updated && options.currentDepth === Math.max(0, options.updateDepth) && depIsLinked && !ctx.force && !options.proceed) {
111587
111403
  return null;
111588
111404
  }
111589
- };
111590
- exports2.SingleVer = SingleVer;
111591
- var SingleRange = class {
111592
- constructor(lowerBound, upperBound) {
111593
- this.lowerBound = lowerBound;
111594
- this.upperBound = upperBound;
111595
- if (!lowerBound.intersects(upperBound)) {
111596
- throw new Error(`Invalid range; version range does not intersect: ${this}`);
111405
+ if (pkgResponse.body.isLocal) {
111406
+ const manifest = pkgResponse.body.manifest ?? await pkgResponse.bundledManifest();
111407
+ return {
111408
+ alias: wantedDependency.alias || manifest.name,
111409
+ depPath: pkgResponse.body.id,
111410
+ dev: wantedDependency.dev,
111411
+ isLinkedDependency: true,
111412
+ name: manifest.name,
111413
+ normalizedPref: pkgResponse.body.normalizedPref,
111414
+ optional: wantedDependency.optional,
111415
+ pkgId: pkgResponse.body.id,
111416
+ resolution: pkgResponse.body.resolution,
111417
+ version: manifest.version
111418
+ };
111419
+ }
111420
+ let pkg;
111421
+ let prepare;
111422
+ let hasBin;
111423
+ pkg = ctx.readPackageHook != null ? await ctx.readPackageHook(pkgResponse.body.manifest ?? await pkgResponse.bundledManifest()) : pkgResponse.body.manifest ?? await pkgResponse.bundledManifest();
111424
+ if (!pkg.name) {
111425
+ throw new error_1.default("MISSING_PACKAGE_NAME", `Can't install ${wantedDependency.pref}: Missing package name`);
111426
+ }
111427
+ const depPath = dp.relative(ctx.registries, pkg.name, pkgResponse.body.id);
111428
+ if ((0, nodeIdUtils_1.nodeIdContainsSequence)(options.parentPkg.nodeId, options.parentPkg.depPath, depPath) || depPath === options.parentPkg.depPath) {
111429
+ return null;
111430
+ }
111431
+ if (!options.update && currentPkg.dependencyLockfile != null && currentPkg.depPath && !pkgResponse.body.updated && currentPkg.dependencyLockfile.peerDependencies == null) {
111432
+ prepare = currentPkg.dependencyLockfile.prepare === true;
111433
+ hasBin = currentPkg.dependencyLockfile.hasBin === true;
111434
+ pkg = {
111435
+ ...(0, lockfile_utils_1.nameVerFromPkgSnapshot)(currentPkg.depPath, currentPkg.dependencyLockfile),
111436
+ ...currentPkg.dependencyLockfile,
111437
+ ...pkg
111438
+ };
111439
+ } else {
111440
+ prepare = Boolean(pkgResponse.body.resolvedVia === "git-repository" && typeof pkg.scripts?.prepare === "string");
111441
+ if (currentPkg.dependencyLockfile?.deprecated && !pkgResponse.body.updated && !pkg.deprecated) {
111442
+ pkg.deprecated = currentPkg.dependencyLockfile.deprecated;
111597
111443
  }
111444
+ hasBin = Boolean((pkg.bin && !(0, isEmpty_1.default)(pkg.bin)) ?? pkg.directories?.bin);
111598
111445
  }
111599
- toString() {
111600
- return [this.lowerBound.value, this.upperBound.value].filter((v) => v !== "").join(" ");
111446
+ if (options.currentDepth === 0 && pkgResponse.body.latest && pkgResponse.body.latest !== pkg.version) {
111447
+ ctx.outdatedDependencies[pkgResponse.body.id] = pkgResponse.body.latest;
111601
111448
  }
111602
- intersect(singleRange) {
111603
- if (semver_12.default.intersects(String(this), String(singleRange))) {
111604
- if (singleRange instanceof SingleVer) {
111605
- return singleRange;
111606
- } else {
111607
- const lowerBoundComparatorList = [
111608
- this.lowerBound,
111609
- singleRange.lowerBound
111610
- ];
111611
- const upperBoundComparatorList = [
111612
- this.upperBound,
111613
- singleRange.upperBound
111614
- ];
111615
- const lowerBound = utils_1.getLowerBoundComparator([
111616
- ...lowerBoundComparatorList,
111617
- ...upperBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
111618
- ]);
111619
- const upperBound = utils_1.getUpperBoundComparator([
111620
- ...upperBoundComparatorList,
111621
- ...lowerBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
111622
- ]);
111623
- if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
111624
- return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
111625
- }
111626
- return new SingleRange(lowerBound, upperBound);
111627
- }
111449
+ if (pkg.deprecated) {
111450
+ core_loggers_1.deprecationLogger.debug({
111451
+ deprecated: pkg.deprecated,
111452
+ depth: options.currentDepth,
111453
+ pkgId: pkgResponse.body.id,
111454
+ pkgName: pkg.name,
111455
+ pkgVersion: pkg.version,
111456
+ prefix: ctx.prefix
111457
+ });
111458
+ }
111459
+ const nodeId = pkgIsLeaf(pkg) ? pkgResponse.body.id : (0, nodeIdUtils_1.createNodeId)(options.parentPkg.nodeId, depPath);
111460
+ const parentIsInstallable = options.parentPkg.installable === void 0 || options.parentPkg.installable;
111461
+ const installable = parentIsInstallable && pkgResponse.body.isInstallable !== false;
111462
+ const isNew = !ctx.resolvedPackagesByDepPath[depPath];
111463
+ if (isNew) {
111464
+ if (pkgResponse.body.isInstallable === false || !parentIsInstallable) {
111465
+ ctx.skipped.add(pkgResponse.body.id);
111466
+ }
111467
+ core_loggers_1.progressLogger.debug({
111468
+ packageId: pkgResponse.body.id,
111469
+ requester: ctx.lockfileDir,
111470
+ status: "resolved"
111471
+ });
111472
+ ctx.resolvedPackagesByDepPath[depPath] = getResolvedPackage({
111473
+ allowBuild: ctx.allowBuild,
111474
+ dependencyLockfile: currentPkg.dependencyLockfile,
111475
+ depPath,
111476
+ force: ctx.force,
111477
+ hasBin,
111478
+ pkg,
111479
+ pkgResponse,
111480
+ prepare,
111481
+ wantedDependency
111482
+ });
111483
+ } else {
111484
+ ctx.resolvedPackagesByDepPath[depPath].prod = ctx.resolvedPackagesByDepPath[depPath].prod || !wantedDependency.dev && !wantedDependency.optional;
111485
+ ctx.resolvedPackagesByDepPath[depPath].dev = ctx.resolvedPackagesByDepPath[depPath].dev || wantedDependency.dev;
111486
+ ctx.resolvedPackagesByDepPath[depPath].optional = ctx.resolvedPackagesByDepPath[depPath].optional && wantedDependency.optional;
111487
+ if (ctx.resolvedPackagesByDepPath[depPath].fetchingFiles == null && pkgResponse.files != null) {
111488
+ ctx.resolvedPackagesByDepPath[depPath].fetchingFiles = pkgResponse.files;
111489
+ ctx.resolvedPackagesByDepPath[depPath].filesIndexFile = pkgResponse.filesIndexFile;
111490
+ ctx.resolvedPackagesByDepPath[depPath].finishing = pkgResponse.finishing;
111491
+ ctx.resolvedPackagesByDepPath[depPath].fetchingBundledManifest = pkgResponse.bundledManifest;
111492
+ }
111493
+ if (ctx.dependenciesTree[nodeId]) {
111494
+ ctx.dependenciesTree[nodeId].depth = Math.min(ctx.dependenciesTree[nodeId].depth, options.currentDepth);
111628
111495
  } else {
111629
- return null;
111496
+ ctx.pendingNodes.push({
111497
+ alias: wantedDependency.alias || pkg.name,
111498
+ depth: options.currentDepth,
111499
+ installable,
111500
+ nodeId,
111501
+ resolvedPackage: ctx.resolvedPackagesByDepPath[depPath]
111502
+ });
111630
111503
  }
111631
111504
  }
111632
- merge(singleRange) {
111633
- if (semver_12.default.intersects(String(this), String(singleRange))) {
111634
- if (singleRange instanceof SingleVer) {
111635
- return this;
111636
- } else {
111637
- const lowerBound = ((a, b) => {
111638
- const semverA = a.semver;
111639
- const semverB = b.semver;
111640
- if (!(semverA instanceof semver_12.default.SemVer)) {
111641
- if (utils_1.isPrerelease(semverB)) {
111642
- return null;
111643
- }
111644
- return a;
111645
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
111646
- if (utils_1.isPrerelease(semverA)) {
111647
- return null;
111648
- }
111649
- return b;
111650
- }
111651
- const cmpMain = semverA.compareMain(semverB);
111652
- if (cmpMain < 0 && utils_1.isPrerelease(semverB) || cmpMain > 0 && utils_1.isPrerelease(semverA)) {
111653
- return null;
111654
- }
111655
- const semverCmp = semver_12.default.compare(semverA, semverB);
111656
- if (a.operator === b.operator || semverCmp !== 0) {
111657
- if (semverCmp < 0) {
111658
- return a;
111659
- } else {
111660
- return b;
111661
- }
111662
- } else {
111663
- if (a.operator === ">=") {
111664
- return a;
111665
- } else {
111666
- return b;
111667
- }
111668
- }
111669
- })(this.lowerBound, singleRange.lowerBound);
111670
- const upperBound = ((a, b) => {
111671
- const semverA = a.semver;
111672
- const semverB = b.semver;
111673
- if (!(semverA instanceof semver_12.default.SemVer)) {
111674
- if (utils_1.isPrerelease(semverB)) {
111675
- return null;
111676
- }
111677
- return a;
111678
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
111679
- if (utils_1.isPrerelease(semverA)) {
111680
- return null;
111681
- }
111682
- return b;
111683
- }
111684
- const cmpMain = semverA.compareMain(semverB);
111685
- if (cmpMain > 0 && utils_1.isPrerelease(semverB) || cmpMain < 0 && utils_1.isPrerelease(semverA)) {
111686
- return null;
111687
- }
111688
- const semverCmp = semver_12.default.compare(semverA, semverB);
111689
- if (a.operator === b.operator || semverCmp !== 0) {
111690
- if (semverCmp > 0) {
111691
- return a;
111692
- } else {
111693
- return b;
111694
- }
111695
- } else {
111696
- if (a.operator === "<=") {
111697
- return a;
111698
- } else {
111699
- return b;
111700
- }
111701
- }
111702
- })(this.upperBound, singleRange.upperBound);
111703
- if (lowerBound && upperBound) {
111704
- return new SingleRange(lowerBound, upperBound);
111705
- }
111706
- }
111505
+ const rootDir = pkgResponse.body.resolution.type === "directory" ? path_1.default.resolve(ctx.lockfileDir, pkgResponse.body.resolution["directory"]) : ctx.prefix;
111506
+ return {
111507
+ alias: wantedDependency.alias || pkg.name,
111508
+ depIsLinked,
111509
+ depPath,
111510
+ isNew,
111511
+ nodeId,
111512
+ normalizedPref: options.currentDepth === 0 ? pkgResponse.body.normalizedPref : void 0,
111513
+ pkgId: pkgResponse.body.id,
111514
+ rootDir,
111515
+ missingPeers: getMissingPeers(pkg, options.parentPkgAliases),
111516
+ installable,
111517
+ isLinkedDependency: void 0,
111518
+ pkg,
111519
+ updated: pkgResponse.body.updated
111520
+ };
111521
+ }
111522
+ function getMissingPeers(pkg, parentPkgAliases) {
111523
+ const missingPeers = {};
111524
+ for (const [peerName, peerVersion] of Object.entries(pkg.peerDependencies ?? {})) {
111525
+ if (!parentPkgAliases[peerName] && !pkg.peerDependenciesMeta?.[peerName]?.optional) {
111526
+ missingPeers[peerName] = peerVersion;
111527
+ }
111528
+ }
111529
+ return missingPeers;
111530
+ }
111531
+ function pkgIsLeaf(pkg) {
111532
+ return (0, isEmpty_1.default)(pkg.dependencies ?? {}) && (0, isEmpty_1.default)(pkg.optionalDependencies ?? {}) && (0, isEmpty_1.default)(pkg.peerDependencies ?? {});
111533
+ }
111534
+ function getResolvedPackage(options) {
111535
+ const peerDependencies = peerDependenciesWithoutOwn(options.pkg);
111536
+ const requiresBuild = options.allowBuild == null || options.allowBuild(options.pkg.name) ? options.dependencyLockfile != null ? Boolean(options.dependencyLockfile.requiresBuild) : void 0 : false;
111537
+ return {
111538
+ additionalInfo: {
111539
+ bundledDependencies: options.pkg.bundledDependencies,
111540
+ bundleDependencies: options.pkg.bundleDependencies,
111541
+ cpu: options.pkg.cpu,
111542
+ deprecated: options.pkg.deprecated,
111543
+ engines: options.pkg.engines,
111544
+ os: options.pkg.os,
111545
+ libc: options.pkg.libc
111546
+ },
111547
+ depPath: options.depPath,
111548
+ dev: options.wantedDependency.dev,
111549
+ fetchingBundledManifest: options.pkgResponse.bundledManifest,
111550
+ fetchingFiles: options.pkgResponse.files,
111551
+ filesIndexFile: options.pkgResponse.filesIndexFile,
111552
+ finishing: options.pkgResponse.finishing,
111553
+ hasBin: options.hasBin,
111554
+ hasBundledDependencies: !((options.pkg.bundledDependencies ?? options.pkg.bundleDependencies) == null),
111555
+ id: options.pkgResponse.body.id,
111556
+ name: options.pkg.name,
111557
+ optional: options.wantedDependency.optional,
111558
+ optionalDependencies: new Set(Object.keys(options.pkg.optionalDependencies ?? {})),
111559
+ peerDependencies: peerDependencies ?? {},
111560
+ peerDependenciesMeta: options.pkg.peerDependenciesMeta,
111561
+ prepare: options.prepare,
111562
+ prod: !options.wantedDependency.dev && !options.wantedDependency.optional,
111563
+ requiresBuild,
111564
+ resolution: options.pkgResponse.body.resolution,
111565
+ version: options.pkg.version
111566
+ };
111567
+ }
111568
+ function peerDependenciesWithoutOwn(pkg) {
111569
+ if (pkg.peerDependencies == null && pkg.peerDependenciesMeta == null)
111570
+ return pkg.peerDependencies;
111571
+ const ownDeps = /* @__PURE__ */ new Set([
111572
+ ...Object.keys(pkg.dependencies ?? {}),
111573
+ ...Object.keys(pkg.optionalDependencies ?? {})
111574
+ ]);
111575
+ const result2 = {};
111576
+ if (pkg.peerDependencies != null) {
111577
+ for (const [peerName, peerRange] of Object.entries(pkg.peerDependencies)) {
111578
+ if (ownDeps.has(peerName))
111579
+ continue;
111580
+ result2[peerName] = peerRange;
111707
111581
  }
111708
- return null;
111709
111582
  }
111710
- };
111711
- exports2.SingleRange = SingleRange;
111712
- function createSingleRange(comparatorList) {
111713
- const equalsComparatorList = comparatorList.filter(utils_1.isEqualsComparator).filter(utils_1.filterUniqueComparator);
111714
- switch (equalsComparatorList.length) {
111715
- case 0: {
111716
- const lowerBound = utils_1.getLowerBoundComparator(comparatorList, {
111717
- singleRange: true
111718
- });
111719
- const upperBound = utils_1.getUpperBoundComparator(comparatorList, {
111720
- singleRange: true
111721
- });
111722
- if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
111723
- return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
111724
- }
111725
- try {
111726
- return new SingleRange(lowerBound, upperBound);
111727
- } catch (err) {
111728
- return null;
111729
- }
111583
+ if (pkg.peerDependenciesMeta != null) {
111584
+ for (const [peerName, peerMeta] of Object.entries(pkg.peerDependenciesMeta)) {
111585
+ if (ownDeps.has(peerName) || result2[peerName] || peerMeta.optional !== true)
111586
+ continue;
111587
+ result2[peerName] = "*";
111730
111588
  }
111731
- case 1:
111732
- return new SingleVer(equalsComparatorList[0]);
111733
- default:
111734
- return null;
111735
111589
  }
111590
+ if ((0, isEmpty_1.default)(result2))
111591
+ return void 0;
111592
+ return result2;
111736
111593
  }
111737
- exports2.createSingleRange = createSingleRange;
111738
- function isSingleRange(value) {
111739
- return value instanceof SingleVer || value instanceof SingleRange;
111740
- }
111741
- exports2.isSingleRange = isSingleRange;
111742
111594
  }
111743
111595
  });
111744
111596
 
111745
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js
111746
- var require_multi_range = __commonJS({
111747
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js"(exports2) {
111597
+ // ../resolve-dependencies/lib/resolveDependencyTree.js
111598
+ var require_resolveDependencyTree = __commonJS({
111599
+ "../resolve-dependencies/lib/resolveDependencyTree.js"(exports2) {
111748
111600
  "use strict";
111601
+ var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
111602
+ if (k2 === void 0)
111603
+ k2 = k;
111604
+ var desc = Object.getOwnPropertyDescriptor(m, k);
111605
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
111606
+ desc = { enumerable: true, get: function() {
111607
+ return m[k];
111608
+ } };
111609
+ }
111610
+ Object.defineProperty(o, k2, desc);
111611
+ } : function(o, m, k, k2) {
111612
+ if (k2 === void 0)
111613
+ k2 = k;
111614
+ o[k2] = m[k];
111615
+ });
111616
+ var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
111617
+ for (var p in m)
111618
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
111619
+ __createBinding(exports3, m, p);
111620
+ };
111621
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111622
+ return mod && mod.__esModule ? mod : { "default": mod };
111623
+ };
111749
111624
  Object.defineProperty(exports2, "__esModule", { value: true });
111750
- var single_range_1 = require_single_range();
111751
- var utils_1 = require_utils7();
111752
- function normalizeSingleRangeList(singleRangeList) {
111753
- return singleRangeList.reduce((singleRangeList2, singleRange) => {
111754
- if (!singleRange) {
111755
- return [...singleRangeList2, singleRange];
111756
- }
111757
- let insertFirst = false;
111758
- const removeIndexList = [];
111759
- const appendSingleRange = singleRangeList2.reduce((appendSingleRange2, insertedSingleRange, index) => {
111760
- if (insertedSingleRange && appendSingleRange2) {
111761
- const mergedSingleRange = insertedSingleRange.merge(appendSingleRange2);
111762
- if (mergedSingleRange) {
111763
- if (String(mergedSingleRange) === String(insertedSingleRange)) {
111764
- return;
111765
- } else {
111766
- removeIndexList.push(index);
111767
- if (insertedSingleRange instanceof single_range_1.SingleRange && appendSingleRange2 instanceof single_range_1.SingleRange) {
111768
- insertFirst = true;
111769
- }
111770
- return mergedSingleRange;
111771
- }
111625
+ var partition_1 = __importDefault2(require_partition4());
111626
+ var nodeIdUtils_1 = require_nodeIdUtils();
111627
+ var resolveDependencies_1 = __importDefault2(require_resolveDependencies());
111628
+ __exportStar(require_nodeIdUtils(), exports2);
111629
+ async function default_1(importers, opts) {
111630
+ const directDepsByImporterId = {};
111631
+ const wantedToBeSkippedPackageIds = /* @__PURE__ */ new Set();
111632
+ const ctx = {
111633
+ autoInstallPeers: opts.autoInstallPeers === true,
111634
+ allowBuild: opts.allowBuild,
111635
+ childrenByParentDepPath: {},
111636
+ currentLockfile: opts.currentLockfile,
111637
+ defaultTag: opts.tag,
111638
+ dependenciesTree: {},
111639
+ dryRun: opts.dryRun,
111640
+ engineStrict: opts.engineStrict,
111641
+ force: opts.force,
111642
+ forceFullResolution: opts.forceFullResolution,
111643
+ linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? -1,
111644
+ lockfileDir: opts.lockfileDir,
111645
+ nodeVersion: opts.nodeVersion,
111646
+ outdatedDependencies: {},
111647
+ pendingNodes: [],
111648
+ pnpmVersion: opts.pnpmVersion,
111649
+ preferWorkspacePackages: opts.preferWorkspacePackages,
111650
+ readPackageHook: opts.hooks.readPackage,
111651
+ registries: opts.registries,
111652
+ resolvedPackagesByDepPath: {},
111653
+ skipped: wantedToBeSkippedPackageIds,
111654
+ storeController: opts.storeController,
111655
+ updateMatching: opts.updateMatching,
111656
+ virtualStoreDir: opts.virtualStoreDir,
111657
+ wantedLockfile: opts.wantedLockfile
111658
+ };
111659
+ await Promise.all(importers.map(async (importer) => {
111660
+ const projectSnapshot = opts.wantedLockfile.importers[importer.id];
111661
+ const linkedDependencies = [];
111662
+ const resolveCtx = {
111663
+ ...ctx,
111664
+ updatedSet: /* @__PURE__ */ new Set(),
111665
+ linkedDependencies,
111666
+ modulesDir: importer.modulesDir,
111667
+ prefix: importer.rootDir
111668
+ };
111669
+ const proceed = importer.id === "." || importer.hasRemovedDependencies === true || importer.wantedDependencies.some((wantedDep) => wantedDep["isNew"]);
111670
+ const resolveOpts = {
111671
+ currentDepth: 0,
111672
+ parentPkg: {
111673
+ installable: true,
111674
+ nodeId: `>${importer.id}>`,
111675
+ optional: false,
111676
+ depPath: importer.id,
111677
+ rootDir: importer.rootDir
111678
+ },
111679
+ parentPkgAliases: {},
111680
+ proceed,
111681
+ resolvedDependencies: {
111682
+ ...projectSnapshot.dependencies,
111683
+ ...projectSnapshot.devDependencies,
111684
+ ...projectSnapshot.optionalDependencies
111685
+ },
111686
+ updateDepth: -1,
111687
+ workspacePackages: opts.workspacePackages
111688
+ };
111689
+ directDepsByImporterId[importer.id] = await (0, resolveDependencies_1.default)(resolveCtx, importer.preferredVersions ?? {}, importer.wantedDependencies, resolveOpts);
111690
+ }));
111691
+ ctx.pendingNodes.forEach((pendingNode) => {
111692
+ ctx.dependenciesTree[pendingNode.nodeId] = {
111693
+ children: () => buildTree(ctx, pendingNode.nodeId, pendingNode.resolvedPackage.id, ctx.childrenByParentDepPath[pendingNode.resolvedPackage.depPath], pendingNode.depth + 1, pendingNode.installable),
111694
+ depth: pendingNode.depth,
111695
+ installable: pendingNode.installable,
111696
+ resolvedPackage: pendingNode.resolvedPackage
111697
+ };
111698
+ });
111699
+ const resolvedImporters = {};
111700
+ for (const { id } of importers) {
111701
+ const directDeps = directDepsByImporterId[id];
111702
+ const [linkedDependencies, directNonLinkedDeps] = (0, partition_1.default)((dep) => dep.isLinkedDependency === true, directDeps);
111703
+ resolvedImporters[id] = {
111704
+ directDependencies: directDeps.map((dep) => {
111705
+ if (dep.isLinkedDependency === true) {
111706
+ return dep;
111772
111707
  }
111773
- }
111774
- return appendSingleRange2;
111775
- }, singleRange);
111776
- const removedSingleRangeList = singleRangeList2.filter((_, index) => !removeIndexList.includes(index));
111777
- if (appendSingleRange) {
111778
- if (insertFirst) {
111779
- return [appendSingleRange, ...removedSingleRangeList];
111780
- } else {
111781
- return [...removedSingleRangeList, appendSingleRange];
111782
- }
111783
- }
111784
- return removedSingleRangeList;
111785
- }, []);
111786
- }
111787
- exports2.normalizeSingleRangeList = normalizeSingleRangeList;
111788
- var MultiRange = class {
111789
- get valid() {
111790
- return this.set.length >= 1;
111708
+ const resolvedPackage = ctx.dependenciesTree[dep.nodeId].resolvedPackage;
111709
+ return {
111710
+ alias: dep.alias,
111711
+ dev: resolvedPackage.dev,
111712
+ name: resolvedPackage.name,
111713
+ normalizedPref: dep.normalizedPref,
111714
+ optional: resolvedPackage.optional,
111715
+ pkgId: resolvedPackage.id,
111716
+ resolution: resolvedPackage.resolution,
111717
+ version: resolvedPackage.version
111718
+ };
111719
+ }),
111720
+ directNodeIdsByAlias: directNonLinkedDeps.reduce((acc, dependency) => {
111721
+ acc[dependency.alias] = dependency.nodeId;
111722
+ return acc;
111723
+ }, {}),
111724
+ linkedDependencies
111725
+ };
111791
111726
  }
111792
- constructor(rangeList) {
111793
- if (rangeList) {
111794
- const singleRangeList = normalizeSingleRangeList(rangeList.map((singleRangeOrComparatorList) => {
111795
- if (single_range_1.isSingleRange(singleRangeOrComparatorList) || !singleRangeOrComparatorList) {
111796
- return singleRangeOrComparatorList;
111797
- } else {
111798
- return single_range_1.createSingleRange(singleRangeOrComparatorList);
111799
- }
111800
- }));
111801
- this.set = singleRangeList.filter(utils_1.isNotNull);
111802
- } else {
111803
- this.set = [];
111727
+ return {
111728
+ dependenciesTree: ctx.dependenciesTree,
111729
+ outdatedDependencies: ctx.outdatedDependencies,
111730
+ resolvedImporters,
111731
+ resolvedPackagesByDepPath: ctx.resolvedPackagesByDepPath,
111732
+ wantedToBeSkippedPackageIds
111733
+ };
111734
+ }
111735
+ exports2.default = default_1;
111736
+ function buildTree(ctx, parentNodeId, parentId, children, depth, installable) {
111737
+ const childrenNodeIds = {};
111738
+ for (const child of children) {
111739
+ if (child.depPath.startsWith("link:")) {
111740
+ childrenNodeIds[child.alias] = child.depPath;
111741
+ continue;
111804
111742
  }
111805
- }
111806
- toString() {
111807
- if (!this.valid) {
111808
- throw new Error("Invalid range");
111743
+ if ((0, nodeIdUtils_1.nodeIdContainsSequence)(parentNodeId, parentId, child.depPath) || parentId === child.depPath) {
111744
+ continue;
111809
111745
  }
111810
- return utils_1.uniqueArray(this.set.map(String)).join(" || ");
111746
+ const childNodeId = (0, nodeIdUtils_1.createNodeId)(parentNodeId, child.depPath);
111747
+ childrenNodeIds[child.alias] = childNodeId;
111748
+ installable = installable && !ctx.skipped.has(child.depPath);
111749
+ ctx.dependenciesTree[childNodeId] = {
111750
+ children: () => buildTree(ctx, childNodeId, child.depPath, ctx.childrenByParentDepPath[child.depPath], depth + 1, installable),
111751
+ depth,
111752
+ installable,
111753
+ resolvedPackage: ctx.resolvedPackagesByDepPath[child.depPath]
111754
+ };
111811
111755
  }
111812
- intersect(multiRange) {
111813
- if (this.valid && multiRange.valid) {
111814
- const singleRangeList = this.set.map((singleRangeA) => multiRange.set.map((singleRangeB) => singleRangeA.intersect(singleRangeB))).reduce((a, b) => [...a, ...b]).filter(utils_1.isNotNull);
111815
- return new MultiRange(singleRangeList);
111816
- } else if (this.valid) {
111817
- return this;
111818
- } else if (multiRange.valid) {
111819
- return multiRange;
111820
- } else {
111821
- return new MultiRange(null);
111822
- }
111756
+ return childrenNodeIds;
111757
+ }
111758
+ }
111759
+ });
111760
+
111761
+ // ../../node_modules/.pnpm/trim-repeated@1.0.0/node_modules/trim-repeated/index.js
111762
+ var require_trim_repeated = __commonJS({
111763
+ "../../node_modules/.pnpm/trim-repeated@1.0.0/node_modules/trim-repeated/index.js"(exports2, module2) {
111764
+ "use strict";
111765
+ var escapeStringRegexp = require_escape_string_regexp();
111766
+ module2.exports = function(str, target) {
111767
+ if (typeof str !== "string" || typeof target !== "string") {
111768
+ throw new TypeError("Expected a string");
111823
111769
  }
111770
+ return str.replace(new RegExp("(?:" + escapeStringRegexp(target) + "){2,}", "g"), target);
111824
111771
  };
111825
- exports2.MultiRange = MultiRange;
111826
111772
  }
111827
111773
  });
111828
111774
 
111829
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js
111830
- var require_dist12 = __commonJS({
111831
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js"(exports2) {
111775
+ // ../../node_modules/.pnpm/filename-reserved-regex@2.0.0/node_modules/filename-reserved-regex/index.js
111776
+ var require_filename_reserved_regex = __commonJS({
111777
+ "../../node_modules/.pnpm/filename-reserved-regex@2.0.0/node_modules/filename-reserved-regex/index.js"(exports2, module2) {
111832
111778
  "use strict";
111833
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
111834
- return mod && mod.__esModule ? mod : { "default": mod };
111779
+ module2.exports = () => /[<>:"\/\\|?*\x00-\x1F]/g;
111780
+ module2.exports.windowsNames = () => /^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i;
111781
+ }
111782
+ });
111783
+
111784
+ // ../../node_modules/.pnpm/strip-outer@1.0.1/node_modules/strip-outer/index.js
111785
+ var require_strip_outer = __commonJS({
111786
+ "../../node_modules/.pnpm/strip-outer@1.0.1/node_modules/strip-outer/index.js"(exports2, module2) {
111787
+ "use strict";
111788
+ var escapeStringRegexp = require_escape_string_regexp();
111789
+ module2.exports = function(str, sub) {
111790
+ if (typeof str !== "string" || typeof sub !== "string") {
111791
+ throw new TypeError();
111792
+ }
111793
+ sub = escapeStringRegexp(sub);
111794
+ return str.replace(new RegExp("^" + sub + "|" + sub + "$", "g"), "");
111835
111795
  };
111836
- Object.defineProperty(exports2, "__esModule", { value: true });
111837
- var semver_12 = __importDefault2(require_semver3());
111838
- var multi_range_1 = require_multi_range();
111839
- var utils_1 = require_utils7();
111840
- function intersect(...ranges) {
111841
- const semverRangeList = (() => {
111842
- try {
111843
- return ranges.map((rangeStr) => new semver_12.default.Range(rangeStr));
111844
- } catch (err) {
111845
- return null;
111846
- }
111847
- })();
111848
- if (!semverRangeList || !utils_1.isIntersectRanges(semverRangeList)) {
111849
- return null;
111796
+ }
111797
+ });
111798
+
111799
+ // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify.js
111800
+ var require_filenamify = __commonJS({
111801
+ "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify.js"(exports2, module2) {
111802
+ "use strict";
111803
+ var trimRepeated = require_trim_repeated();
111804
+ var filenameReservedRegex = require_filename_reserved_regex();
111805
+ var stripOuter = require_strip_outer();
111806
+ var MAX_FILENAME_LENGTH = 100;
111807
+ var reControlChars = /[\u0000-\u001f\u0080-\u009f]/g;
111808
+ var reRelativePath = /^\.+/;
111809
+ var reTrailingPeriods = /\.+$/;
111810
+ var filenamify = (string, options = {}) => {
111811
+ if (typeof string !== "string") {
111812
+ throw new TypeError("Expected a string");
111850
111813
  }
111851
- const intersectRange = semverRangeList.map((range) => new multi_range_1.MultiRange(range.set)).reduce((multiRangeA, multiRangeB) => multiRangeA.intersect(multiRangeB), new multi_range_1.MultiRange(null));
111852
- return intersectRange.valid ? String(intersectRange) || "*" : null;
111853
- }
111854
- exports2.intersect = intersect;
111814
+ const replacement = options.replacement === void 0 ? "!" : options.replacement;
111815
+ if (filenameReservedRegex().test(replacement) && reControlChars.test(replacement)) {
111816
+ throw new Error("Replacement string cannot contain reserved filename characters");
111817
+ }
111818
+ string = string.replace(filenameReservedRegex(), replacement);
111819
+ string = string.replace(reControlChars, replacement);
111820
+ string = string.replace(reRelativePath, replacement);
111821
+ string = string.replace(reTrailingPeriods, "");
111822
+ if (replacement.length > 0) {
111823
+ string = trimRepeated(string, replacement);
111824
+ string = string.length > 1 ? stripOuter(string, replacement) : string;
111825
+ }
111826
+ string = filenameReservedRegex.windowsNames().test(string) ? string + replacement : string;
111827
+ string = string.slice(0, typeof options.maxLength === "number" ? options.maxLength : MAX_FILENAME_LENGTH);
111828
+ return string;
111829
+ };
111830
+ module2.exports = filenamify;
111855
111831
  }
111856
111832
  });
111857
111833
 
111858
- // ../resolve-dependencies/lib/mergePeers.js
111859
- var require_mergePeers = __commonJS({
111860
- "../resolve-dependencies/lib/mergePeers.js"(exports2) {
111834
+ // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify-path.js
111835
+ var require_filenamify_path = __commonJS({
111836
+ "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/filenamify-path.js"(exports2, module2) {
111837
+ "use strict";
111838
+ var path2 = require("path");
111839
+ var filenamify = require_filenamify();
111840
+ var filenamifyPath = (filePath, options) => {
111841
+ filePath = path2.resolve(filePath);
111842
+ return path2.join(path2.dirname(filePath), filenamify(path2.basename(filePath), options));
111843
+ };
111844
+ module2.exports = filenamifyPath;
111845
+ }
111846
+ });
111847
+
111848
+ // ../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/index.js
111849
+ var require_filenamify2 = __commonJS({
111850
+ "../../node_modules/.pnpm/filenamify@4.3.0/node_modules/filenamify/index.js"(exports2, module2) {
111851
+ "use strict";
111852
+ var filenamify = require_filenamify();
111853
+ var filenamifyPath = require_filenamify_path();
111854
+ var filenamifyCombined = filenamify;
111855
+ filenamifyCombined.path = filenamifyPath;
111856
+ module2.exports = filenamify;
111857
+ }
111858
+ });
111859
+
111860
+ // ../../node_modules/.pnpm/@yarnpkg+core@3.2.0/node_modules/@yarnpkg/core/lib/semverUtils.js
111861
+ var require_semverUtils = __commonJS({
111862
+ "../../node_modules/.pnpm/@yarnpkg+core@3.2.0/node_modules/@yarnpkg/core/lib/semverUtils.js"(exports2) {
111861
111863
  "use strict";
111862
111864
  Object.defineProperty(exports2, "__esModule", { value: true });
111863
- exports2.mergePeers = void 0;
111864
- var semver_range_intersect_1 = require_dist12();
111865
- function mergePeers(missingPeers) {
111866
- const conflicts = [];
111867
- const intersections = {};
111868
- for (const [peerName, ranges] of Object.entries(missingPeers)) {
111869
- if (ranges.every(({ optional }) => optional))
111870
- continue;
111871
- if (ranges.length === 1) {
111872
- intersections[peerName] = ranges[0].wantedRange;
111873
- continue;
111874
- }
111875
- const intersection = safeIntersect(ranges.map(({ wantedRange }) => wantedRange));
111876
- if (intersection === null) {
111877
- conflicts.push(peerName);
111878
- } else {
111879
- intersections[peerName] = intersection;
111865
+ exports2.clean = exports2.validRange = exports2.satisfiesWithPrereleases = exports2.SemVer = void 0;
111866
+ var tslib_12 = require_tslib();
111867
+ var semver_12 = tslib_12.__importDefault(require_semver2());
111868
+ var semver_2 = require_semver2();
111869
+ Object.defineProperty(exports2, "SemVer", { enumerable: true, get: function() {
111870
+ return semver_2.SemVer;
111871
+ } });
111872
+ var satisfiesWithPrereleasesCache = /* @__PURE__ */ new Map();
111873
+ function satisfiesWithPrereleases(version, range, loose = false) {
111874
+ if (!version)
111875
+ return false;
111876
+ const key = `${range}${loose}`;
111877
+ let semverRange = satisfiesWithPrereleasesCache.get(key);
111878
+ if (typeof semverRange === `undefined`) {
111879
+ try {
111880
+ semverRange = new semver_12.default.Range(range, { includePrerelease: true, loose });
111881
+ } catch {
111882
+ return false;
111883
+ } finally {
111884
+ satisfiesWithPrereleasesCache.set(key, semverRange || null);
111880
111885
  }
111886
+ } else if (semverRange === null) {
111887
+ return false;
111881
111888
  }
111882
- return { conflicts, intersections };
111889
+ let semverVersion;
111890
+ try {
111891
+ semverVersion = new semver_12.default.SemVer(version, semverRange);
111892
+ } catch (err) {
111893
+ return false;
111894
+ }
111895
+ if (semverRange.test(semverVersion))
111896
+ return true;
111897
+ if (semverVersion.prerelease)
111898
+ semverVersion.prerelease = [];
111899
+ return semverRange.set.some((comparatorSet) => {
111900
+ for (const comparator of comparatorSet)
111901
+ if (comparator.semver.prerelease)
111902
+ comparator.semver.prerelease = [];
111903
+ return comparatorSet.every((comparator) => {
111904
+ return comparator.test(semverVersion);
111905
+ });
111906
+ });
111883
111907
  }
111884
- exports2.mergePeers = mergePeers;
111885
- function safeIntersect(ranges) {
111908
+ exports2.satisfiesWithPrereleases = satisfiesWithPrereleases;
111909
+ var rangesCache = /* @__PURE__ */ new Map();
111910
+ function validRange(potentialRange) {
111911
+ if (potentialRange.indexOf(`:`) !== -1)
111912
+ return null;
111913
+ let range = rangesCache.get(potentialRange);
111914
+ if (typeof range !== `undefined`)
111915
+ return range;
111886
111916
  try {
111887
- return (0, semver_range_intersect_1.intersect)(...ranges);
111917
+ range = new semver_12.default.Range(potentialRange);
111888
111918
  } catch {
111889
- return null;
111919
+ range = null;
111890
111920
  }
111921
+ rangesCache.set(potentialRange, range);
111922
+ return range;
111923
+ }
111924
+ exports2.validRange = validRange;
111925
+ var CLEAN_SEMVER_REGEXP = /^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;
111926
+ function clean(potentialVersion) {
111927
+ const version = CLEAN_SEMVER_REGEXP.exec(potentialVersion);
111928
+ return version ? version[1] : null;
111891
111929
  }
111930
+ exports2.clean = clean;
111931
+ }
111932
+ });
111933
+
111934
+ // ../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/scan.js
111935
+ var require_scan4 = __commonJS({
111936
+ "../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/scan.js"(exports2, module2) {
111937
+ var _curry3 = require_curry3();
111938
+ var scan = /* @__PURE__ */ _curry3(function scan2(fn2, acc, list) {
111939
+ var idx = 0;
111940
+ var len = list.length;
111941
+ var result2 = [acc];
111942
+ while (idx < len) {
111943
+ acc = fn2(acc, list[idx]);
111944
+ result2[idx + 1] = acc;
111945
+ idx += 1;
111946
+ }
111947
+ return result2;
111948
+ });
111949
+ module2.exports = scan;
111892
111950
  }
111893
111951
  });
111894
111952
 
@@ -112629,7 +112687,7 @@ var require_updateProjectManifest = __commonJS({
112629
112687
  if (!importer.manifest) {
112630
112688
  throw new Error("Cannot save because no package.json found");
112631
112689
  }
112632
- const specsToUpsert = opts.directDependencies.filter((rdd, index) => importer.wantedDependencies[index].updateSpec).map((rdd, index) => {
112690
+ const specsToUpsert = opts.directDependencies.filter((rdd, index) => importer.wantedDependencies[index]?.updateSpec).map((rdd, index) => {
112633
112691
  const wantedDep = importer.wantedDependencies[index];
112634
112692
  return resolvedDirectDepToSpecObject({ ...rdd, isNew: wantedDep.isNew, specRaw: wantedDep.raw }, importer, {
112635
112693
  nodeExecPath: wantedDep.nodeExecPath,
@@ -112776,7 +112834,7 @@ var require_lib97 = __commonJS({
112776
112834
  const projectSnapshot = opts.wantedLockfile.importers[project.id];
112777
112835
  opts.wantedLockfile.importers[project.id] = addDirectDependenciesToLockfile(updatedManifest, projectSnapshot, resolvedImporter.linkedDependencies, resolvedImporter.directDependencies, opts.registries);
112778
112836
  }
112779
- const topParents = project.manifest ? await getTopParents((0, difference_1.default)(Object.keys((0, manifest_utils_1.getAllDependenciesFromManifest)(project.manifest)), resolvedImporter.directDependencies.filter((dep, index2) => project.wantedDependencies[index2].isNew === true).map(({ alias }) => alias) || []), project.modulesDir) : [];
112837
+ const topParents = project.manifest ? await getTopParents((0, difference_1.default)(Object.keys((0, manifest_utils_1.getAllDependenciesFromManifest)(project.manifest)), resolvedImporter.directDependencies.filter((dep, index2) => project.wantedDependencies[index2]?.isNew === true).map(({ alias }) => alias) || []), project.modulesDir) : [];
112780
112838
  resolvedImporter.linkedDependencies.forEach((linkedDependency) => {
112781
112839
  topParents.push({
112782
112840
  name: linkedDependency.alias,
@@ -114313,6 +114371,7 @@ var require_extendInstallOptions = __commonJS({
114313
114371
  version: pnpmPkgJson_1.default.version
114314
114372
  };
114315
114373
  return {
114374
+ autoInstallPeers: false,
114316
114375
  childConcurrency: 5,
114317
114376
  depth: 0,
114318
114377
  enablePnp: false,
@@ -115305,6 +115364,7 @@ var require_install = __commonJS({
115305
115364
  }
115306
115365
  let { dependenciesGraph, dependenciesByProjectId, finishLockfileUpdates, linkedDependenciesByProjectId, newLockfile, outdatedDependencies, peerDependencyIssuesByProjects, wantedToBeSkippedPackageIds, waitTillAllFetchingsFinish } = await (0, resolve_dependencies_1.default)(projects, {
115307
115366
  allowBuild: createAllowBuildFunction(opts),
115367
+ autoInstallPeers: opts.autoInstallPeers,
115308
115368
  currentLockfile: ctx.currentLockfile,
115309
115369
  defaultUpdateDepth: opts.update || opts.updateMatching != null ? opts.depth : -1,
115310
115370
  dryRun: opts.lockfileOnly,
@@ -116409,7 +116469,6 @@ var require_installDeps = __commonJS({
116409
116469
  var logger_1 = __importDefault2(require_lib());
116410
116470
  var sort_packages_1 = require_lib82();
116411
116471
  var is_subdir_1 = __importDefault2(require_is_subdir());
116412
- var isEmpty_1 = __importDefault2(require_isEmpty2());
116413
116472
  var getOptionsFromRootManifest_1 = __importDefault2(require_getOptionsFromRootManifest());
116414
116473
  var getPinnedVersion_1 = __importDefault2(require_getPinnedVersion());
116415
116474
  var getSaveType_1 = __importDefault2(require_getSaveType());
@@ -116533,28 +116592,8 @@ var require_installDeps = __commonJS({
116533
116592
  rootDir: opts.dir,
116534
116593
  targetDependenciesField: (0, getSaveType_1.default)(opts)
116535
116594
  };
116536
- let [updatedImporter] = await (0, core_1.mutateModules)([mutatedProject], {
116537
- ...installOpts,
116538
- strictPeerDependencies: opts.autoInstallPeers ? false : installOpts.strictPeerDependencies
116539
- });
116595
+ const [updatedImporter] = await (0, core_1.mutateModules)([mutatedProject], installOpts);
116540
116596
  if (opts.save !== false) {
116541
- if (opts.autoInstallPeers && !(0, isEmpty_1.default)(updatedImporter.peerDependencyIssues?.intersections ?? {})) {
116542
- logger_1.default.info({
116543
- message: "Installing missing peer dependencies",
116544
- prefix: opts.dir
116545
- });
116546
- const dependencySelectors = Object.entries(updatedImporter.peerDependencyIssues.intersections).map(([name, version]) => `${name}@${version}`);
116547
- const result2 = await (0, core_1.mutateModules)([
116548
- {
116549
- ...mutatedProject,
116550
- dependencySelectors,
116551
- manifest: updatedImporter.manifest,
116552
- peer: false,
116553
- targetDependenciesField: "devDependencies"
116554
- }
116555
- ], installOpts);
116556
- updatedImporter = result2[0];
116557
- }
116558
116597
  await writeProjectManifest(updatedImporter.manifest);
116559
116598
  }
116560
116599
  return;