pnpm 6.32.13 → 6.32.16

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/pnpm.cjs CHANGED
@@ -3182,7 +3182,7 @@ var require_lib4 = __commonJS({
3182
3182
  var load_json_file_1 = __importDefault(require_load_json_file());
3183
3183
  var defaultManifest = {
3184
3184
  name: "pnpm" != null && true ? "pnpm" : "pnpm",
3185
- version: "6.32.13" != null && true ? "6.32.13" : "0.0.0"
3185
+ version: "6.32.16" != null && true ? "6.32.16" : "0.0.0"
3186
3186
  };
3187
3187
  var pkgJson;
3188
3188
  if (require.main == null) {
@@ -36758,11 +36758,22 @@ ${foundSettings.join("\n")}`;
36758
36758
  return value;
36759
36759
  }
36760
36760
  function reportPeerDependencyIssuesError(err, msg) {
36761
+ const hasMissingPeers = getHasMissingPeers(msg.issuesByProjects);
36762
+ const hints = [];
36763
+ if (hasMissingPeers) {
36764
+ hints.push('If you want peer dependencies to be automatically installed, set the "auto-install-peers" setting to "true".');
36765
+ }
36766
+ hints.push(`If you don't want pnpm to fail on peer dependency issues, set the "strict-peer-dependencies" setting to "false".`);
36761
36767
  return {
36762
36768
  title: err.message,
36763
- body: (0, render_peer_issues_1.default)(msg.issuesByProjects)
36769
+ body: `${(0, render_peer_issues_1.default)(msg.issuesByProjects)}
36770
+ ${hints.map((hint) => `hint: ${hint}`).join("\n")}
36771
+ `
36764
36772
  };
36765
36773
  }
36774
+ function getHasMissingPeers(issuesByProjects) {
36775
+ return Object.values(issuesByProjects).some((issues) => Object.values(issues.missing).flat().some(({ optional }) => !optional));
36776
+ }
36766
36777
  }
36767
36778
  });
36768
36779
 
@@ -73820,7 +73831,7 @@ var require_lib35 = __commonJS({
73820
73831
  }
73821
73832
  exports2.parse = parse;
73822
73833
  function depPathToFilename(depPath, lockfileDir) {
73823
- const filename = depPathToFilenameUnescaped(depPath, lockfileDir).replace(/\//g, "+");
73834
+ const filename = depPathToFilenameUnescaped(depPath, lockfileDir).replace(/[\\/:*?"<>|]/g, "+");
73824
73835
  if (filename.length > 120 || filename !== filename.toLowerCase() && !filename.startsWith("local+")) {
73825
73836
  return `${filename.substring(0, 50)}_${crypto_1.default.createHash("md5").update(filename).digest("hex")}`;
73826
73837
  }
@@ -85008,7 +85019,7 @@ var require_parsePref = __commonJS({
85008
85019
  async function fromHostedGit(hosted) {
85009
85020
  var _a;
85010
85021
  let fetchSpec = null;
85011
- const gitUrl = (_a = hosted.git({ noCommittish: true })) !== null && _a !== void 0 ? _a : hosted.ssh({ noCommittish: true });
85022
+ const gitUrl = (_a = hosted.https({ noCommittish: true })) !== null && _a !== void 0 ? _a : hosted.ssh({ noCommittish: true });
85012
85023
  if (gitUrl && await accessRepository(gitUrl)) {
85013
85024
  fetchSpec = gitUrl;
85014
85025
  }
@@ -106875,8 +106886,15 @@ var require_lib76 = __commonJS({
106875
106886
  }
106876
106887
  async function getBinNodePaths(target) {
106877
106888
  const targetDir = path_1.default.dirname(target);
106878
- const targetRealPath = await fs_1.promises.realpath(targetDir);
106879
- return (0, union_1.default)(module_1.default["_nodeModulePaths"](targetRealPath), module_1.default["_nodeModulePaths"](targetDir));
106889
+ try {
106890
+ const targetRealPath = await fs_1.promises.realpath(targetDir);
106891
+ return (0, union_1.default)(module_1.default["_nodeModulePaths"](targetRealPath), module_1.default["_nodeModulePaths"](targetDir));
106892
+ } catch (err) {
106893
+ if (err.code !== "ENOENT") {
106894
+ throw err;
106895
+ }
106896
+ return module_1.default["_nodeModulePaths"](targetDir);
106897
+ }
106880
106898
  }
106881
106899
  async function safeReadPkgJson(pkgDir) {
106882
106900
  try {
@@ -110232,7 +110250,6 @@ var require_lib85 = __commonJS({
110232
110250
  var dependency_path_1 = require_lib35();
110233
110251
  var difference_1 = __importDefault(require_difference());
110234
110252
  var isEmpty_1 = __importDefault(require_isEmpty2());
110235
- var omit_1 = __importDefault(require_omit());
110236
110253
  var unnest_1 = __importDefault(require_unnest());
110237
110254
  __exportStar(require_lib57(), exports2);
110238
110255
  function pruneSharedLockfile(lockfile, opts) {
@@ -110353,7 +110370,7 @@ var require_lib85 = __commonJS({
110353
110370
  return Object.entries(deps).map(([alias, ref]) => (0, dependency_path_1.refToRelative)(ref, alias)).filter((depPath) => depPath !== null);
110354
110371
  }
110355
110372
  function copyDependencySubGraph(ctx, depPaths, opts) {
110356
- var _a, _b, _c, _d;
110373
+ var _a, _b;
110357
110374
  for (const depPath of depPaths) {
110358
110375
  const key = `${depPath}:${opts.optional.toString()}:${opts.dev.toString()}`;
110359
110376
  if (ctx.walked.has(key))
@@ -110381,9 +110398,9 @@ var require_lib85 = __commonJS({
110381
110398
  } else if (depLockfile.dev === void 0 && !ctx.notProdOnly.has(depPath)) {
110382
110399
  depLockfile.dev = false;
110383
110400
  }
110384
- const newDependencies = resolvedDepsToDepPaths((0, omit_1.default)((_b = Object.keys((_a = depLockfile.peerDependencies) !== null && _a !== void 0 ? _a : {})) !== null && _b !== void 0 ? _b : [], (_c = depLockfile.dependencies) !== null && _c !== void 0 ? _c : {}));
110401
+ const newDependencies = resolvedDepsToDepPaths((_a = depLockfile.dependencies) !== null && _a !== void 0 ? _a : {});
110385
110402
  copyDependencySubGraph(ctx, newDependencies, opts);
110386
- const newOptionalDependencies = resolvedDepsToDepPaths((_d = depLockfile.optionalDependencies) !== null && _d !== void 0 ? _d : {});
110403
+ const newOptionalDependencies = resolvedDepsToDepPaths((_b = depLockfile.optionalDependencies) !== null && _b !== void 0 ? _b : {});
110387
110404
  copyDependencySubGraph(ctx, newOptionalDependencies, { dev: opts.dev, optional: true });
110388
110405
  }
110389
110406
  }
@@ -115863,6 +115880,526 @@ var require_getNonDevWantedDependencies = __commonJS({
115863
115880
  }
115864
115881
  });
115865
115882
 
115883
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js
115884
+ var require_utils9 = __commonJS({
115885
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js"(exports2) {
115886
+ "use strict";
115887
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
115888
+ return mod && mod.__esModule ? mod : { "default": mod };
115889
+ };
115890
+ Object.defineProperty(exports2, "__esModule", { value: true });
115891
+ var semver_12 = __importDefault(require_semver3());
115892
+ function isNotNull(value) {
115893
+ return value !== null;
115894
+ }
115895
+ exports2.isNotNull = isNotNull;
115896
+ function uniqueArray(array) {
115897
+ return [...new Set(array)];
115898
+ }
115899
+ exports2.uniqueArray = uniqueArray;
115900
+ function isNoIncludeNull(value) {
115901
+ return value.every(isNotNull);
115902
+ }
115903
+ exports2.isNoIncludeNull = isNoIncludeNull;
115904
+ function isPrerelease(version) {
115905
+ if (version instanceof semver_12.default.SemVer) {
115906
+ return version.prerelease.length !== 0;
115907
+ } else {
115908
+ return false;
115909
+ }
115910
+ }
115911
+ exports2.isPrerelease = isPrerelease;
115912
+ function isValidOperator(comparator, operatorList) {
115913
+ return operatorList.includes(comparator.operator);
115914
+ }
115915
+ exports2.isValidOperator = isValidOperator;
115916
+ function equalComparator(comparatorA, comparatorB) {
115917
+ return comparatorA.value === comparatorB.value;
115918
+ }
115919
+ exports2.equalComparator = equalComparator;
115920
+ function comparator2versionStr(comparator) {
115921
+ const compSemver = comparator.semver;
115922
+ return compSemver instanceof semver_12.default.SemVer ? compSemver.version : "";
115923
+ }
115924
+ exports2.comparator2versionStr = comparator2versionStr;
115925
+ function isSameVersionEqualsLikeComparator(comparatorA, comparatorB) {
115926
+ const compVersionA = comparator2versionStr(comparatorA);
115927
+ const compVersionB = comparator2versionStr(comparatorB);
115928
+ return compVersionA !== "" && compVersionB !== "" && compVersionA === compVersionB && /=|^$/.test(comparatorA.operator) && /=|^$/.test(comparatorB.operator);
115929
+ }
115930
+ exports2.isSameVersionEqualsLikeComparator = isSameVersionEqualsLikeComparator;
115931
+ function isEqualsComparator(comparator) {
115932
+ return comparator.semver instanceof semver_12.default.SemVer && isValidOperator(comparator, ["", "="]);
115933
+ }
115934
+ exports2.isEqualsComparator = isEqualsComparator;
115935
+ function filterUniqueComparator(comparator, index, self2) {
115936
+ return self2.findIndex((comp) => equalComparator(comparator, comp)) === index;
115937
+ }
115938
+ exports2.filterUniqueComparator = filterUniqueComparator;
115939
+ function filterOperator(operatorList) {
115940
+ return (comparator) => isValidOperator(comparator, operatorList);
115941
+ }
115942
+ exports2.filterOperator = filterOperator;
115943
+ function isIntersectRanges(semverRangeList) {
115944
+ return semverRangeList.every((rangeA, index, rangeList) => rangeList.slice(index + 1).every((rangeB) => rangeA.intersects(rangeB)));
115945
+ }
115946
+ exports2.isIntersectRanges = isIntersectRanges;
115947
+ function stripSemVerPrerelease(semverVersion) {
115948
+ if (!(semverVersion instanceof semver_12.default.SemVer)) {
115949
+ return "";
115950
+ }
115951
+ if (!semverVersion.prerelease.length) {
115952
+ return semverVersion.version;
115953
+ }
115954
+ const newSemverVersion = new semver_12.default.SemVer(semverVersion.version, semverVersion.options);
115955
+ newSemverVersion.prerelease = [];
115956
+ return newSemverVersion.format();
115957
+ }
115958
+ exports2.stripSemVerPrerelease = stripSemVerPrerelease;
115959
+ function stripComparatorOperator(comparator) {
115960
+ if (!comparator.operator) {
115961
+ return comparator;
115962
+ }
115963
+ const versionStr = comparator2versionStr(comparator);
115964
+ return new semver_12.default.Comparator(versionStr, comparator.options);
115965
+ }
115966
+ exports2.stripComparatorOperator = stripComparatorOperator;
115967
+ function getLowerBoundComparator(comparatorList, options = {}) {
115968
+ const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, [">", ">="]) || !(comparator.semver instanceof semver_12.default.SemVer));
115969
+ const leComparatorVersionList = comparatorList.filter(filterOperator(["<="])).map(comparator2versionStr);
115970
+ if (validComparatorList.length >= 1) {
115971
+ return validComparatorList.reduce((a, b) => {
115972
+ const semverA = a.semver;
115973
+ const semverB = b.semver;
115974
+ if (!(semverA instanceof semver_12.default.SemVer)) {
115975
+ if (!options.singleRange && isPrerelease(semverB) && !(b.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverB)))) {
115976
+ return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverB)}`, b.options);
115977
+ }
115978
+ return b;
115979
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
115980
+ if (!options.singleRange && isPrerelease(semverA) && !(a.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverA)))) {
115981
+ return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverA)}`, a.options);
115982
+ }
115983
+ return a;
115984
+ }
115985
+ const semverCmp = semver_12.default.compare(semverA, semverB);
115986
+ if (a.operator === b.operator || semverCmp !== 0) {
115987
+ if (!options.singleRange) {
115988
+ const semverCmpMain = semverA.compareMain(semverB);
115989
+ if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
115990
+ if (semverCmpMain > 0) {
115991
+ return new semver_12.default.Comparator(a.operator + stripSemVerPrerelease(semverA), a.options);
115992
+ } else {
115993
+ return new semver_12.default.Comparator(b.operator + stripSemVerPrerelease(semverB), b.options);
115994
+ }
115995
+ }
115996
+ }
115997
+ if (semverCmp > 0) {
115998
+ return a;
115999
+ } else {
116000
+ return b;
116001
+ }
116002
+ } else {
116003
+ if (a.operator === ">") {
116004
+ return a;
116005
+ } else {
116006
+ return b;
116007
+ }
116008
+ }
116009
+ });
116010
+ } else {
116011
+ return new semver_12.default.Comparator("");
116012
+ }
116013
+ }
116014
+ exports2.getLowerBoundComparator = getLowerBoundComparator;
116015
+ function getUpperBoundComparator(comparatorList, options = {}) {
116016
+ const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, ["<", "<="]) || !(comparator.semver instanceof semver_12.default.SemVer));
116017
+ const geComparatorVersionList = comparatorList.filter(filterOperator([">="])).map(comparator2versionStr);
116018
+ if (validComparatorList.length >= 1) {
116019
+ return validComparatorList.reduce((a, b) => {
116020
+ const semverA = a.semver;
116021
+ const semverB = b.semver;
116022
+ if (!(semverA instanceof semver_12.default.SemVer)) {
116023
+ if (!options.singleRange && isPrerelease(semverB) && !(b.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverB)))) {
116024
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
116025
+ }
116026
+ return b;
116027
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
116028
+ if (!options.singleRange && isPrerelease(semverA) && !(a.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverA)))) {
116029
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
116030
+ }
116031
+ return a;
116032
+ }
116033
+ const semverCmp = semver_12.default.compare(semverA, semverB);
116034
+ if (a.operator === b.operator || semverCmp !== 0) {
116035
+ if (!options.singleRange) {
116036
+ const semverCmpMain = semverA.compareMain(semverB);
116037
+ if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
116038
+ if (semverCmpMain < 0) {
116039
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
116040
+ } else {
116041
+ return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
116042
+ }
116043
+ }
116044
+ }
116045
+ if (semverCmp < 0) {
116046
+ return a;
116047
+ } else {
116048
+ return b;
116049
+ }
116050
+ } else {
116051
+ if (a.operator === "<") {
116052
+ return a;
116053
+ } else {
116054
+ return b;
116055
+ }
116056
+ }
116057
+ });
116058
+ } else {
116059
+ return new semver_12.default.Comparator("");
116060
+ }
116061
+ }
116062
+ exports2.getUpperBoundComparator = getUpperBoundComparator;
116063
+ }
116064
+ });
116065
+
116066
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js
116067
+ var require_single_range = __commonJS({
116068
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js"(exports2) {
116069
+ "use strict";
116070
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
116071
+ return mod && mod.__esModule ? mod : { "default": mod };
116072
+ };
116073
+ Object.defineProperty(exports2, "__esModule", { value: true });
116074
+ var semver_12 = __importDefault(require_semver3());
116075
+ var utils_1 = require_utils9();
116076
+ var SingleVer = class {
116077
+ constructor(comp) {
116078
+ this.comp = comp;
116079
+ }
116080
+ toString() {
116081
+ return this.comp.value;
116082
+ }
116083
+ intersect(singleRange) {
116084
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
116085
+ return this;
116086
+ } else {
116087
+ return null;
116088
+ }
116089
+ }
116090
+ merge(singleRange) {
116091
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
116092
+ return singleRange;
116093
+ }
116094
+ return null;
116095
+ }
116096
+ };
116097
+ exports2.SingleVer = SingleVer;
116098
+ var SingleRange = class {
116099
+ constructor(lowerBound, upperBound) {
116100
+ this.lowerBound = lowerBound;
116101
+ this.upperBound = upperBound;
116102
+ if (!lowerBound.intersects(upperBound)) {
116103
+ throw new Error(`Invalid range; version range does not intersect: ${this}`);
116104
+ }
116105
+ }
116106
+ toString() {
116107
+ return [this.lowerBound.value, this.upperBound.value].filter((v) => v !== "").join(" ");
116108
+ }
116109
+ intersect(singleRange) {
116110
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
116111
+ if (singleRange instanceof SingleVer) {
116112
+ return singleRange;
116113
+ } else {
116114
+ const lowerBoundComparatorList = [
116115
+ this.lowerBound,
116116
+ singleRange.lowerBound
116117
+ ];
116118
+ const upperBoundComparatorList = [
116119
+ this.upperBound,
116120
+ singleRange.upperBound
116121
+ ];
116122
+ const lowerBound = utils_1.getLowerBoundComparator([
116123
+ ...lowerBoundComparatorList,
116124
+ ...upperBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
116125
+ ]);
116126
+ const upperBound = utils_1.getUpperBoundComparator([
116127
+ ...upperBoundComparatorList,
116128
+ ...lowerBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
116129
+ ]);
116130
+ if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
116131
+ return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
116132
+ }
116133
+ return new SingleRange(lowerBound, upperBound);
116134
+ }
116135
+ } else {
116136
+ return null;
116137
+ }
116138
+ }
116139
+ merge(singleRange) {
116140
+ if (semver_12.default.intersects(String(this), String(singleRange))) {
116141
+ if (singleRange instanceof SingleVer) {
116142
+ return this;
116143
+ } else {
116144
+ const lowerBound = ((a, b) => {
116145
+ const semverA = a.semver;
116146
+ const semverB = b.semver;
116147
+ if (!(semverA instanceof semver_12.default.SemVer)) {
116148
+ if (utils_1.isPrerelease(semverB)) {
116149
+ return null;
116150
+ }
116151
+ return a;
116152
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
116153
+ if (utils_1.isPrerelease(semverA)) {
116154
+ return null;
116155
+ }
116156
+ return b;
116157
+ }
116158
+ const cmpMain = semverA.compareMain(semverB);
116159
+ if (cmpMain < 0 && utils_1.isPrerelease(semverB) || cmpMain > 0 && utils_1.isPrerelease(semverA)) {
116160
+ return null;
116161
+ }
116162
+ const semverCmp = semver_12.default.compare(semverA, semverB);
116163
+ if (a.operator === b.operator || semverCmp !== 0) {
116164
+ if (semverCmp < 0) {
116165
+ return a;
116166
+ } else {
116167
+ return b;
116168
+ }
116169
+ } else {
116170
+ if (a.operator === ">=") {
116171
+ return a;
116172
+ } else {
116173
+ return b;
116174
+ }
116175
+ }
116176
+ })(this.lowerBound, singleRange.lowerBound);
116177
+ const upperBound = ((a, b) => {
116178
+ const semverA = a.semver;
116179
+ const semverB = b.semver;
116180
+ if (!(semverA instanceof semver_12.default.SemVer)) {
116181
+ if (utils_1.isPrerelease(semverB)) {
116182
+ return null;
116183
+ }
116184
+ return a;
116185
+ } else if (!(semverB instanceof semver_12.default.SemVer)) {
116186
+ if (utils_1.isPrerelease(semverA)) {
116187
+ return null;
116188
+ }
116189
+ return b;
116190
+ }
116191
+ const cmpMain = semverA.compareMain(semverB);
116192
+ if (cmpMain > 0 && utils_1.isPrerelease(semverB) || cmpMain < 0 && utils_1.isPrerelease(semverA)) {
116193
+ return null;
116194
+ }
116195
+ const semverCmp = semver_12.default.compare(semverA, semverB);
116196
+ if (a.operator === b.operator || semverCmp !== 0) {
116197
+ if (semverCmp > 0) {
116198
+ return a;
116199
+ } else {
116200
+ return b;
116201
+ }
116202
+ } else {
116203
+ if (a.operator === "<=") {
116204
+ return a;
116205
+ } else {
116206
+ return b;
116207
+ }
116208
+ }
116209
+ })(this.upperBound, singleRange.upperBound);
116210
+ if (lowerBound && upperBound) {
116211
+ return new SingleRange(lowerBound, upperBound);
116212
+ }
116213
+ }
116214
+ }
116215
+ return null;
116216
+ }
116217
+ };
116218
+ exports2.SingleRange = SingleRange;
116219
+ function createSingleRange(comparatorList) {
116220
+ const equalsComparatorList = comparatorList.filter(utils_1.isEqualsComparator).filter(utils_1.filterUniqueComparator);
116221
+ switch (equalsComparatorList.length) {
116222
+ case 0: {
116223
+ const lowerBound = utils_1.getLowerBoundComparator(comparatorList, {
116224
+ singleRange: true
116225
+ });
116226
+ const upperBound = utils_1.getUpperBoundComparator(comparatorList, {
116227
+ singleRange: true
116228
+ });
116229
+ if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
116230
+ return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
116231
+ }
116232
+ try {
116233
+ return new SingleRange(lowerBound, upperBound);
116234
+ } catch (err) {
116235
+ return null;
116236
+ }
116237
+ }
116238
+ case 1:
116239
+ return new SingleVer(equalsComparatorList[0]);
116240
+ default:
116241
+ return null;
116242
+ }
116243
+ }
116244
+ exports2.createSingleRange = createSingleRange;
116245
+ function isSingleRange(value) {
116246
+ return value instanceof SingleVer || value instanceof SingleRange;
116247
+ }
116248
+ exports2.isSingleRange = isSingleRange;
116249
+ }
116250
+ });
116251
+
116252
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js
116253
+ var require_multi_range = __commonJS({
116254
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js"(exports2) {
116255
+ "use strict";
116256
+ Object.defineProperty(exports2, "__esModule", { value: true });
116257
+ var single_range_1 = require_single_range();
116258
+ var utils_1 = require_utils9();
116259
+ function normalizeSingleRangeList(singleRangeList) {
116260
+ return singleRangeList.reduce((singleRangeList2, singleRange) => {
116261
+ if (!singleRange) {
116262
+ return [...singleRangeList2, singleRange];
116263
+ }
116264
+ let insertFirst = false;
116265
+ const removeIndexList = [];
116266
+ const appendSingleRange = singleRangeList2.reduce((appendSingleRange2, insertedSingleRange, index) => {
116267
+ if (insertedSingleRange && appendSingleRange2) {
116268
+ const mergedSingleRange = insertedSingleRange.merge(appendSingleRange2);
116269
+ if (mergedSingleRange) {
116270
+ if (String(mergedSingleRange) === String(insertedSingleRange)) {
116271
+ return;
116272
+ } else {
116273
+ removeIndexList.push(index);
116274
+ if (insertedSingleRange instanceof single_range_1.SingleRange && appendSingleRange2 instanceof single_range_1.SingleRange) {
116275
+ insertFirst = true;
116276
+ }
116277
+ return mergedSingleRange;
116278
+ }
116279
+ }
116280
+ }
116281
+ return appendSingleRange2;
116282
+ }, singleRange);
116283
+ const removedSingleRangeList = singleRangeList2.filter((_, index) => !removeIndexList.includes(index));
116284
+ if (appendSingleRange) {
116285
+ if (insertFirst) {
116286
+ return [appendSingleRange, ...removedSingleRangeList];
116287
+ } else {
116288
+ return [...removedSingleRangeList, appendSingleRange];
116289
+ }
116290
+ }
116291
+ return removedSingleRangeList;
116292
+ }, []);
116293
+ }
116294
+ exports2.normalizeSingleRangeList = normalizeSingleRangeList;
116295
+ var MultiRange = class {
116296
+ get valid() {
116297
+ return this.set.length >= 1;
116298
+ }
116299
+ constructor(rangeList) {
116300
+ if (rangeList) {
116301
+ const singleRangeList = normalizeSingleRangeList(rangeList.map((singleRangeOrComparatorList) => {
116302
+ if (single_range_1.isSingleRange(singleRangeOrComparatorList) || !singleRangeOrComparatorList) {
116303
+ return singleRangeOrComparatorList;
116304
+ } else {
116305
+ return single_range_1.createSingleRange(singleRangeOrComparatorList);
116306
+ }
116307
+ }));
116308
+ this.set = singleRangeList.filter(utils_1.isNotNull);
116309
+ } else {
116310
+ this.set = [];
116311
+ }
116312
+ }
116313
+ toString() {
116314
+ if (!this.valid) {
116315
+ throw new Error("Invalid range");
116316
+ }
116317
+ return utils_1.uniqueArray(this.set.map(String)).join(" || ");
116318
+ }
116319
+ intersect(multiRange) {
116320
+ if (this.valid && multiRange.valid) {
116321
+ const singleRangeList = this.set.map((singleRangeA) => multiRange.set.map((singleRangeB) => singleRangeA.intersect(singleRangeB))).reduce((a, b) => [...a, ...b]).filter(utils_1.isNotNull);
116322
+ return new MultiRange(singleRangeList);
116323
+ } else if (this.valid) {
116324
+ return this;
116325
+ } else if (multiRange.valid) {
116326
+ return multiRange;
116327
+ } else {
116328
+ return new MultiRange(null);
116329
+ }
116330
+ }
116331
+ };
116332
+ exports2.MultiRange = MultiRange;
116333
+ }
116334
+ });
116335
+
116336
+ // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js
116337
+ var require_dist12 = __commonJS({
116338
+ "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js"(exports2) {
116339
+ "use strict";
116340
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
116341
+ return mod && mod.__esModule ? mod : { "default": mod };
116342
+ };
116343
+ Object.defineProperty(exports2, "__esModule", { value: true });
116344
+ var semver_12 = __importDefault(require_semver3());
116345
+ var multi_range_1 = require_multi_range();
116346
+ var utils_1 = require_utils9();
116347
+ function intersect(...ranges) {
116348
+ const semverRangeList = (() => {
116349
+ try {
116350
+ return ranges.map((rangeStr) => new semver_12.default.Range(rangeStr));
116351
+ } catch (err) {
116352
+ return null;
116353
+ }
116354
+ })();
116355
+ if (!semverRangeList || !utils_1.isIntersectRanges(semverRangeList)) {
116356
+ return null;
116357
+ }
116358
+ const intersectRange = semverRangeList.map((range) => new multi_range_1.MultiRange(range.set)).reduce((multiRangeA, multiRangeB) => multiRangeA.intersect(multiRangeB), new multi_range_1.MultiRange(null));
116359
+ return intersectRange.valid ? String(intersectRange) || "*" : null;
116360
+ }
116361
+ exports2.intersect = intersect;
116362
+ }
116363
+ });
116364
+
116365
+ // ../resolve-dependencies/lib/mergePeers.js
116366
+ var require_mergePeers = __commonJS({
116367
+ "../resolve-dependencies/lib/mergePeers.js"(exports2) {
116368
+ "use strict";
116369
+ Object.defineProperty(exports2, "__esModule", { value: true });
116370
+ exports2.safeIntersect = exports2.mergePeers = void 0;
116371
+ var semver_range_intersect_1 = require_dist12();
116372
+ function mergePeers(missingPeers) {
116373
+ const conflicts = [];
116374
+ const intersections = {};
116375
+ for (const [peerName, ranges] of Object.entries(missingPeers)) {
116376
+ if (ranges.every(({ optional }) => optional))
116377
+ continue;
116378
+ if (ranges.length === 1) {
116379
+ intersections[peerName] = ranges[0].wantedRange;
116380
+ continue;
116381
+ }
116382
+ const intersection = safeIntersect(ranges.map(({ wantedRange }) => wantedRange));
116383
+ if (intersection === null) {
116384
+ conflicts.push(peerName);
116385
+ } else {
116386
+ intersections[peerName] = intersection;
116387
+ }
116388
+ }
116389
+ return { conflicts, intersections };
116390
+ }
116391
+ exports2.mergePeers = mergePeers;
116392
+ function safeIntersect(ranges) {
116393
+ try {
116394
+ return (0, semver_range_intersect_1.intersect)(...ranges);
116395
+ } catch {
116396
+ return null;
116397
+ }
116398
+ }
116399
+ exports2.safeIntersect = safeIntersect;
116400
+ }
116401
+ });
116402
+
115866
116403
  // ../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js
115867
116404
  var require_wantedDepIsLocallyAvailable = __commonJS({
115868
116405
  "../resolve-dependencies/lib/wantedDepIsLocallyAvailable.js"(exports2) {
@@ -115949,6 +116486,7 @@ var require_resolveDependencies = __commonJS({
115949
116486
  var semver_12 = __importDefault(require_semver2());
115950
116487
  var encodePkgId_1 = __importDefault(require_encodePkgId());
115951
116488
  var getNonDevWantedDependencies_1 = __importDefault(require_getNonDevWantedDependencies());
116489
+ var mergePeers_1 = require_mergePeers();
115952
116490
  var nodeIdUtils_1 = require_nodeIdUtils();
115953
116491
  var wantedDepIsLocallyAvailable_1 = __importDefault(require_wantedDepIsLocallyAvailable());
115954
116492
  var dependencyResolvedLogger = (0, logger_1.default)("_dependency_resolved");
@@ -115960,17 +116498,30 @@ var require_resolveDependencies = __commonJS({
115960
116498
  }
115961
116499
  exports2.nodeIdToParents = nodeIdToParents;
115962
116500
  async function resolveDependencies(ctx, preferredVersions, wantedDependencies, options) {
115963
- const extendedWantedDeps = getDepsToResolve(wantedDependencies, ctx.wantedLockfile, {
115964
- preferredDependencies: options.preferredDependencies,
115965
- prefix: ctx.prefix,
115966
- proceed: options.proceed || ctx.forceFullResolution,
115967
- registries: ctx.registries,
115968
- resolvedDependencies: options.resolvedDependencies
115969
- });
116501
+ let extendedWantedDeps = [];
115970
116502
  const postponedResolutionsQueue = [];
115971
- const pkgAddresses = (await Promise.all(extendedWantedDeps.map(async (extendedWantedDep) => resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep)))).filter(Boolean);
116503
+ const pkgAddresses = [];
116504
+ while (true) {
116505
+ extendedWantedDeps = getDepsToResolve(wantedDependencies, ctx.wantedLockfile, {
116506
+ preferredDependencies: options.preferredDependencies,
116507
+ prefix: ctx.prefix,
116508
+ proceed: options.proceed || ctx.forceFullResolution,
116509
+ registries: ctx.registries,
116510
+ resolvedDependencies: options.resolvedDependencies
116511
+ });
116512
+ const newPkgAddresses = (await Promise.all(extendedWantedDeps.map(async (extendedWantedDep) => resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep)))).filter(Boolean);
116513
+ pkgAddresses.push(...newPkgAddresses);
116514
+ if (!ctx.autoInstallPeers)
116515
+ break;
116516
+ const allMissingPeers = mergePkgsDeps(newPkgAddresses.map(({ missingPeers }) => missingPeers));
116517
+ if (!Object.keys(allMissingPeers).length)
116518
+ break;
116519
+ wantedDependencies = (0, getNonDevWantedDependencies_1.default)({ dependencies: allMissingPeers });
116520
+ }
115972
116521
  const newPreferredVersions = { ...preferredVersions };
116522
+ const newParentPkgAliases = { ...options.parentPkgAliases };
115973
116523
  for (const pkgAddress of pkgAddresses) {
116524
+ newParentPkgAliases[pkgAddress.alias] = true;
115974
116525
  if (pkgAddress.updated) {
115975
116526
  ctx.updatedSet.add(pkgAddress.alias);
115976
116527
  }
@@ -115982,10 +116533,29 @@ var require_resolveDependencies = __commonJS({
115982
116533
  }
115983
116534
  newPreferredVersions[resolvedPackage.name][resolvedPackage.version] = "version";
115984
116535
  }
115985
- await Promise.all(postponedResolutionsQueue.map(async (postponedResolution) => postponedResolution(newPreferredVersions)));
116536
+ await Promise.all(postponedResolutionsQueue.map(async (postponedResolution) => postponedResolution(newPreferredVersions, newParentPkgAliases)));
115986
116537
  return pkgAddresses;
115987
116538
  }
115988
116539
  exports2.default = resolveDependencies;
116540
+ function mergePkgsDeps(pkgsDeps) {
116541
+ const groupedRanges = {};
116542
+ for (const deps of pkgsDeps) {
116543
+ for (const [name, range] of Object.entries(deps)) {
116544
+ if (!groupedRanges[name]) {
116545
+ groupedRanges[name] = [];
116546
+ }
116547
+ groupedRanges[name].push(range);
116548
+ }
116549
+ }
116550
+ const mergedPkgDeps = {};
116551
+ for (const [name, ranges] of Object.entries(groupedRanges)) {
116552
+ const intersection = (0, mergePeers_1.safeIntersect)(ranges);
116553
+ if (intersection) {
116554
+ mergedPkgDeps[name] = intersection;
116555
+ }
116556
+ }
116557
+ return mergedPkgDeps;
116558
+ }
115989
116559
  async function resolveDependenciesOfDependency(postponedResolutionsQueue, ctx, preferredVersions, options, extendedWantedDep) {
115990
116560
  var _a, _b;
115991
116561
  const updateDepth = typeof extendedWantedDep.wantedDependency.updateDepth === "number" ? extendedWantedDep.wantedDependency.updateDepth : options.updateDepth;
@@ -115994,6 +116564,7 @@ var require_resolveDependencies = __commonJS({
115994
116564
  const resolveDependencyOpts = {
115995
116565
  currentDepth: options.currentDepth,
115996
116566
  parentPkg: options.parentPkg,
116567
+ parentPkgAliases: options.parentPkgAliases,
115997
116568
  preferredVersions,
115998
116569
  workspacePackages: options.workspacePackages,
115999
116570
  currentPkg: (_b = extendedWantedDep.infoFromLockfile) !== null && _b !== void 0 ? _b : void 0,
@@ -116018,13 +116589,13 @@ var require_resolveDependencies = __commonJS({
116018
116589
  }
116019
116590
  if (!resolveDependencyResult.isNew)
116020
116591
  return resolveDependencyResult;
116021
- postponedResolutionsQueue.push(async (preferredVersions2) => {
116592
+ postponedResolutionsQueue.push(async (preferredVersions2, parentPkgAliases) => {
116022
116593
  var _a2;
116023
- return resolveChildren(ctx, resolveDependencyResult, (_a2 = extendedWantedDep.infoFromLockfile) === null || _a2 === void 0 ? void 0 : _a2.dependencyLockfile, options.workspacePackages, options.currentDepth, updateDepth, preferredVersions2);
116594
+ return resolveChildren(ctx, resolveDependencyResult, parentPkgAliases, (_a2 = extendedWantedDep.infoFromLockfile) === null || _a2 === void 0 ? void 0 : _a2.dependencyLockfile, options.workspacePackages, options.currentDepth, updateDepth, preferredVersions2);
116024
116595
  });
116025
116596
  return resolveDependencyResult;
116026
116597
  }
116027
- async function resolveChildren(ctx, parentPkg, dependencyLockfile, workspacePackages, parentDepth, updateDepth, preferredVersions) {
116598
+ async function resolveChildren(ctx, parentPkg, parentPkgAliases, dependencyLockfile, workspacePackages, parentDepth, updateDepth, preferredVersions) {
116028
116599
  var _a, _b;
116029
116600
  const currentResolvedDependencies = dependencyLockfile != null ? {
116030
116601
  ...dependencyLockfile.dependencies,
@@ -116036,6 +116607,7 @@ var require_resolveDependencies = __commonJS({
116036
116607
  const children = await resolveDependencies(ctx, preferredVersions, wantedDependencies, {
116037
116608
  currentDepth: parentDepth + 1,
116038
116609
  parentPkg,
116610
+ parentPkgAliases,
116039
116611
  preferredDependencies: currentResolvedDependencies,
116040
116612
  proceed: !parentPkg.depIsLinked || parentDependsOnPeer,
116041
116613
  resolvedDependencies,
@@ -116324,12 +116896,23 @@ var require_resolveDependencies = __commonJS({
116324
116896
  normalizedPref: options.currentDepth === 0 ? pkgResponse.body.normalizedPref : void 0,
116325
116897
  pkgId: pkgResponse.body.id,
116326
116898
  rootDir,
116899
+ missingPeers: getMissingPeers(pkg, options.parentPkgAliases),
116327
116900
  installable,
116328
116901
  isLinkedDependency: void 0,
116329
116902
  pkg,
116330
116903
  updated: pkgResponse.body.updated
116331
116904
  };
116332
116905
  }
116906
+ function getMissingPeers(pkg, parentPkgAliases) {
116907
+ var _a, _b, _c;
116908
+ const missingPeers = {};
116909
+ for (const [peerName, peerVersion] of Object.entries((_a = pkg.peerDependencies) !== null && _a !== void 0 ? _a : {})) {
116910
+ if (!parentPkgAliases[peerName] && !((_c = (_b = pkg.peerDependenciesMeta) === null || _b === void 0 ? void 0 : _b[peerName]) === null || _c === void 0 ? void 0 : _c.optional)) {
116911
+ missingPeers[peerName] = peerVersion;
116912
+ }
116913
+ }
116914
+ return missingPeers;
116915
+ }
116333
116916
  function pkgIsLeaf(pkg) {
116334
116917
  var _a, _b, _c;
116335
116918
  return (0, isEmpty_1.default)((_a = pkg.dependencies) !== null && _a !== void 0 ? _a : {}) && (0, isEmpty_1.default)((_b = pkg.optionalDependencies) !== null && _b !== void 0 ? _b : {}) && (0, isEmpty_1.default)((_c = pkg.peerDependencies) !== null && _c !== void 0 ? _c : {});
@@ -116435,6 +117018,7 @@ var require_resolveDependencyTree = __commonJS({
116435
117018
  const directDepsByImporterId = {};
116436
117019
  const wantedToBeSkippedPackageIds = /* @__PURE__ */ new Set();
116437
117020
  const ctx = {
117021
+ autoInstallPeers: opts.autoInstallPeers === true,
116438
117022
  allowBuild: opts.allowBuild,
116439
117023
  childrenByParentDepPath: {},
116440
117024
  currentLockfile: opts.currentLockfile,
@@ -116481,6 +117065,7 @@ var require_resolveDependencyTree = __commonJS({
116481
117065
  depPath: importer.id,
116482
117066
  rootDir: importer.rootDir
116483
117067
  },
117068
+ parentPkgAliases: {},
116484
117069
  proceed,
116485
117070
  resolvedDependencies: {
116486
117071
  ...projectSnapshot.dependencies,
@@ -116748,525 +117333,6 @@ var require_scan4 = __commonJS({
116748
117333
  }
116749
117334
  });
116750
117335
 
116751
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js
116752
- var require_utils9 = __commonJS({
116753
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/utils.js"(exports2) {
116754
- "use strict";
116755
- var __importDefault = exports2 && exports2.__importDefault || function(mod) {
116756
- return mod && mod.__esModule ? mod : { "default": mod };
116757
- };
116758
- Object.defineProperty(exports2, "__esModule", { value: true });
116759
- var semver_12 = __importDefault(require_semver3());
116760
- function isNotNull(value) {
116761
- return value !== null;
116762
- }
116763
- exports2.isNotNull = isNotNull;
116764
- function uniqueArray(array) {
116765
- return [...new Set(array)];
116766
- }
116767
- exports2.uniqueArray = uniqueArray;
116768
- function isNoIncludeNull(value) {
116769
- return value.every(isNotNull);
116770
- }
116771
- exports2.isNoIncludeNull = isNoIncludeNull;
116772
- function isPrerelease(version) {
116773
- if (version instanceof semver_12.default.SemVer) {
116774
- return version.prerelease.length !== 0;
116775
- } else {
116776
- return false;
116777
- }
116778
- }
116779
- exports2.isPrerelease = isPrerelease;
116780
- function isValidOperator(comparator, operatorList) {
116781
- return operatorList.includes(comparator.operator);
116782
- }
116783
- exports2.isValidOperator = isValidOperator;
116784
- function equalComparator(comparatorA, comparatorB) {
116785
- return comparatorA.value === comparatorB.value;
116786
- }
116787
- exports2.equalComparator = equalComparator;
116788
- function comparator2versionStr(comparator) {
116789
- const compSemver = comparator.semver;
116790
- return compSemver instanceof semver_12.default.SemVer ? compSemver.version : "";
116791
- }
116792
- exports2.comparator2versionStr = comparator2versionStr;
116793
- function isSameVersionEqualsLikeComparator(comparatorA, comparatorB) {
116794
- const compVersionA = comparator2versionStr(comparatorA);
116795
- const compVersionB = comparator2versionStr(comparatorB);
116796
- return compVersionA !== "" && compVersionB !== "" && compVersionA === compVersionB && /=|^$/.test(comparatorA.operator) && /=|^$/.test(comparatorB.operator);
116797
- }
116798
- exports2.isSameVersionEqualsLikeComparator = isSameVersionEqualsLikeComparator;
116799
- function isEqualsComparator(comparator) {
116800
- return comparator.semver instanceof semver_12.default.SemVer && isValidOperator(comparator, ["", "="]);
116801
- }
116802
- exports2.isEqualsComparator = isEqualsComparator;
116803
- function filterUniqueComparator(comparator, index, self2) {
116804
- return self2.findIndex((comp) => equalComparator(comparator, comp)) === index;
116805
- }
116806
- exports2.filterUniqueComparator = filterUniqueComparator;
116807
- function filterOperator(operatorList) {
116808
- return (comparator) => isValidOperator(comparator, operatorList);
116809
- }
116810
- exports2.filterOperator = filterOperator;
116811
- function isIntersectRanges(semverRangeList) {
116812
- return semverRangeList.every((rangeA, index, rangeList) => rangeList.slice(index + 1).every((rangeB) => rangeA.intersects(rangeB)));
116813
- }
116814
- exports2.isIntersectRanges = isIntersectRanges;
116815
- function stripSemVerPrerelease(semverVersion) {
116816
- if (!(semverVersion instanceof semver_12.default.SemVer)) {
116817
- return "";
116818
- }
116819
- if (!semverVersion.prerelease.length) {
116820
- return semverVersion.version;
116821
- }
116822
- const newSemverVersion = new semver_12.default.SemVer(semverVersion.version, semverVersion.options);
116823
- newSemverVersion.prerelease = [];
116824
- return newSemverVersion.format();
116825
- }
116826
- exports2.stripSemVerPrerelease = stripSemVerPrerelease;
116827
- function stripComparatorOperator(comparator) {
116828
- if (!comparator.operator) {
116829
- return comparator;
116830
- }
116831
- const versionStr = comparator2versionStr(comparator);
116832
- return new semver_12.default.Comparator(versionStr, comparator.options);
116833
- }
116834
- exports2.stripComparatorOperator = stripComparatorOperator;
116835
- function getLowerBoundComparator(comparatorList, options = {}) {
116836
- const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, [">", ">="]) || !(comparator.semver instanceof semver_12.default.SemVer));
116837
- const leComparatorVersionList = comparatorList.filter(filterOperator(["<="])).map(comparator2versionStr);
116838
- if (validComparatorList.length >= 1) {
116839
- return validComparatorList.reduce((a, b) => {
116840
- const semverA = a.semver;
116841
- const semverB = b.semver;
116842
- if (!(semverA instanceof semver_12.default.SemVer)) {
116843
- if (!options.singleRange && isPrerelease(semverB) && !(b.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverB)))) {
116844
- return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverB)}`, b.options);
116845
- }
116846
- return b;
116847
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
116848
- if (!options.singleRange && isPrerelease(semverA) && !(a.operator === ">=" && leComparatorVersionList.some((version) => version === String(semverA)))) {
116849
- return new semver_12.default.Comparator(`>=${stripSemVerPrerelease(semverA)}`, a.options);
116850
- }
116851
- return a;
116852
- }
116853
- const semverCmp = semver_12.default.compare(semverA, semverB);
116854
- if (a.operator === b.operator || semverCmp !== 0) {
116855
- if (!options.singleRange) {
116856
- const semverCmpMain = semverA.compareMain(semverB);
116857
- if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
116858
- if (semverCmpMain > 0) {
116859
- return new semver_12.default.Comparator(a.operator + stripSemVerPrerelease(semverA), a.options);
116860
- } else {
116861
- return new semver_12.default.Comparator(b.operator + stripSemVerPrerelease(semverB), b.options);
116862
- }
116863
- }
116864
- }
116865
- if (semverCmp > 0) {
116866
- return a;
116867
- } else {
116868
- return b;
116869
- }
116870
- } else {
116871
- if (a.operator === ">") {
116872
- return a;
116873
- } else {
116874
- return b;
116875
- }
116876
- }
116877
- });
116878
- } else {
116879
- return new semver_12.default.Comparator("");
116880
- }
116881
- }
116882
- exports2.getLowerBoundComparator = getLowerBoundComparator;
116883
- function getUpperBoundComparator(comparatorList, options = {}) {
116884
- const validComparatorList = comparatorList.filter((comparator) => isValidOperator(comparator, ["<", "<="]) || !(comparator.semver instanceof semver_12.default.SemVer));
116885
- const geComparatorVersionList = comparatorList.filter(filterOperator([">="])).map(comparator2versionStr);
116886
- if (validComparatorList.length >= 1) {
116887
- return validComparatorList.reduce((a, b) => {
116888
- const semverA = a.semver;
116889
- const semverB = b.semver;
116890
- if (!(semverA instanceof semver_12.default.SemVer)) {
116891
- if (!options.singleRange && isPrerelease(semverB) && !(b.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverB)))) {
116892
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
116893
- }
116894
- return b;
116895
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
116896
- if (!options.singleRange && isPrerelease(semverA) && !(a.operator === "<=" && geComparatorVersionList.some((version) => version === String(semverA)))) {
116897
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
116898
- }
116899
- return a;
116900
- }
116901
- const semverCmp = semver_12.default.compare(semverA, semverB);
116902
- if (a.operator === b.operator || semverCmp !== 0) {
116903
- if (!options.singleRange) {
116904
- const semverCmpMain = semverA.compareMain(semverB);
116905
- if (semverCmpMain !== 0 && semverA.prerelease.length && semverB.prerelease.length) {
116906
- if (semverCmpMain < 0) {
116907
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverA)}`, a.options);
116908
- } else {
116909
- return new semver_12.default.Comparator(`<${stripSemVerPrerelease(semverB)}`, b.options);
116910
- }
116911
- }
116912
- }
116913
- if (semverCmp < 0) {
116914
- return a;
116915
- } else {
116916
- return b;
116917
- }
116918
- } else {
116919
- if (a.operator === "<") {
116920
- return a;
116921
- } else {
116922
- return b;
116923
- }
116924
- }
116925
- });
116926
- } else {
116927
- return new semver_12.default.Comparator("");
116928
- }
116929
- }
116930
- exports2.getUpperBoundComparator = getUpperBoundComparator;
116931
- }
116932
- });
116933
-
116934
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js
116935
- var require_single_range = __commonJS({
116936
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/single-range.js"(exports2) {
116937
- "use strict";
116938
- var __importDefault = exports2 && exports2.__importDefault || function(mod) {
116939
- return mod && mod.__esModule ? mod : { "default": mod };
116940
- };
116941
- Object.defineProperty(exports2, "__esModule", { value: true });
116942
- var semver_12 = __importDefault(require_semver3());
116943
- var utils_1 = require_utils9();
116944
- var SingleVer = class {
116945
- constructor(comp) {
116946
- this.comp = comp;
116947
- }
116948
- toString() {
116949
- return this.comp.value;
116950
- }
116951
- intersect(singleRange) {
116952
- if (semver_12.default.intersects(String(this), String(singleRange))) {
116953
- return this;
116954
- } else {
116955
- return null;
116956
- }
116957
- }
116958
- merge(singleRange) {
116959
- if (semver_12.default.intersects(String(this), String(singleRange))) {
116960
- return singleRange;
116961
- }
116962
- return null;
116963
- }
116964
- };
116965
- exports2.SingleVer = SingleVer;
116966
- var SingleRange = class {
116967
- constructor(lowerBound, upperBound) {
116968
- this.lowerBound = lowerBound;
116969
- this.upperBound = upperBound;
116970
- if (!lowerBound.intersects(upperBound)) {
116971
- throw new Error(`Invalid range; version range does not intersect: ${this}`);
116972
- }
116973
- }
116974
- toString() {
116975
- return [this.lowerBound.value, this.upperBound.value].filter((v) => v !== "").join(" ");
116976
- }
116977
- intersect(singleRange) {
116978
- if (semver_12.default.intersects(String(this), String(singleRange))) {
116979
- if (singleRange instanceof SingleVer) {
116980
- return singleRange;
116981
- } else {
116982
- const lowerBoundComparatorList = [
116983
- this.lowerBound,
116984
- singleRange.lowerBound
116985
- ];
116986
- const upperBoundComparatorList = [
116987
- this.upperBound,
116988
- singleRange.upperBound
116989
- ];
116990
- const lowerBound = utils_1.getLowerBoundComparator([
116991
- ...lowerBoundComparatorList,
116992
- ...upperBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
116993
- ]);
116994
- const upperBound = utils_1.getUpperBoundComparator([
116995
- ...upperBoundComparatorList,
116996
- ...lowerBoundComparatorList.filter((comparator) => comparator.semver instanceof semver_12.default.SemVer)
116997
- ]);
116998
- if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
116999
- return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
117000
- }
117001
- return new SingleRange(lowerBound, upperBound);
117002
- }
117003
- } else {
117004
- return null;
117005
- }
117006
- }
117007
- merge(singleRange) {
117008
- if (semver_12.default.intersects(String(this), String(singleRange))) {
117009
- if (singleRange instanceof SingleVer) {
117010
- return this;
117011
- } else {
117012
- const lowerBound = ((a, b) => {
117013
- const semverA = a.semver;
117014
- const semverB = b.semver;
117015
- if (!(semverA instanceof semver_12.default.SemVer)) {
117016
- if (utils_1.isPrerelease(semverB)) {
117017
- return null;
117018
- }
117019
- return a;
117020
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
117021
- if (utils_1.isPrerelease(semverA)) {
117022
- return null;
117023
- }
117024
- return b;
117025
- }
117026
- const cmpMain = semverA.compareMain(semverB);
117027
- if (cmpMain < 0 && utils_1.isPrerelease(semverB) || cmpMain > 0 && utils_1.isPrerelease(semverA)) {
117028
- return null;
117029
- }
117030
- const semverCmp = semver_12.default.compare(semverA, semverB);
117031
- if (a.operator === b.operator || semverCmp !== 0) {
117032
- if (semverCmp < 0) {
117033
- return a;
117034
- } else {
117035
- return b;
117036
- }
117037
- } else {
117038
- if (a.operator === ">=") {
117039
- return a;
117040
- } else {
117041
- return b;
117042
- }
117043
- }
117044
- })(this.lowerBound, singleRange.lowerBound);
117045
- const upperBound = ((a, b) => {
117046
- const semverA = a.semver;
117047
- const semverB = b.semver;
117048
- if (!(semverA instanceof semver_12.default.SemVer)) {
117049
- if (utils_1.isPrerelease(semverB)) {
117050
- return null;
117051
- }
117052
- return a;
117053
- } else if (!(semverB instanceof semver_12.default.SemVer)) {
117054
- if (utils_1.isPrerelease(semverA)) {
117055
- return null;
117056
- }
117057
- return b;
117058
- }
117059
- const cmpMain = semverA.compareMain(semverB);
117060
- if (cmpMain > 0 && utils_1.isPrerelease(semverB) || cmpMain < 0 && utils_1.isPrerelease(semverA)) {
117061
- return null;
117062
- }
117063
- const semverCmp = semver_12.default.compare(semverA, semverB);
117064
- if (a.operator === b.operator || semverCmp !== 0) {
117065
- if (semverCmp > 0) {
117066
- return a;
117067
- } else {
117068
- return b;
117069
- }
117070
- } else {
117071
- if (a.operator === "<=") {
117072
- return a;
117073
- } else {
117074
- return b;
117075
- }
117076
- }
117077
- })(this.upperBound, singleRange.upperBound);
117078
- if (lowerBound && upperBound) {
117079
- return new SingleRange(lowerBound, upperBound);
117080
- }
117081
- }
117082
- }
117083
- return null;
117084
- }
117085
- };
117086
- exports2.SingleRange = SingleRange;
117087
- function createSingleRange(comparatorList) {
117088
- const equalsComparatorList = comparatorList.filter(utils_1.isEqualsComparator).filter(utils_1.filterUniqueComparator);
117089
- switch (equalsComparatorList.length) {
117090
- case 0: {
117091
- const lowerBound = utils_1.getLowerBoundComparator(comparatorList, {
117092
- singleRange: true
117093
- });
117094
- const upperBound = utils_1.getUpperBoundComparator(comparatorList, {
117095
- singleRange: true
117096
- });
117097
- if (utils_1.isSameVersionEqualsLikeComparator(lowerBound, upperBound)) {
117098
- return new SingleVer(utils_1.stripComparatorOperator(lowerBound));
117099
- }
117100
- try {
117101
- return new SingleRange(lowerBound, upperBound);
117102
- } catch (err) {
117103
- return null;
117104
- }
117105
- }
117106
- case 1:
117107
- return new SingleVer(equalsComparatorList[0]);
117108
- default:
117109
- return null;
117110
- }
117111
- }
117112
- exports2.createSingleRange = createSingleRange;
117113
- function isSingleRange(value) {
117114
- return value instanceof SingleVer || value instanceof SingleRange;
117115
- }
117116
- exports2.isSingleRange = isSingleRange;
117117
- }
117118
- });
117119
-
117120
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js
117121
- var require_multi_range = __commonJS({
117122
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/multi-range.js"(exports2) {
117123
- "use strict";
117124
- Object.defineProperty(exports2, "__esModule", { value: true });
117125
- var single_range_1 = require_single_range();
117126
- var utils_1 = require_utils9();
117127
- function normalizeSingleRangeList(singleRangeList) {
117128
- return singleRangeList.reduce((singleRangeList2, singleRange) => {
117129
- if (!singleRange) {
117130
- return [...singleRangeList2, singleRange];
117131
- }
117132
- let insertFirst = false;
117133
- const removeIndexList = [];
117134
- const appendSingleRange = singleRangeList2.reduce((appendSingleRange2, insertedSingleRange, index) => {
117135
- if (insertedSingleRange && appendSingleRange2) {
117136
- const mergedSingleRange = insertedSingleRange.merge(appendSingleRange2);
117137
- if (mergedSingleRange) {
117138
- if (String(mergedSingleRange) === String(insertedSingleRange)) {
117139
- return;
117140
- } else {
117141
- removeIndexList.push(index);
117142
- if (insertedSingleRange instanceof single_range_1.SingleRange && appendSingleRange2 instanceof single_range_1.SingleRange) {
117143
- insertFirst = true;
117144
- }
117145
- return mergedSingleRange;
117146
- }
117147
- }
117148
- }
117149
- return appendSingleRange2;
117150
- }, singleRange);
117151
- const removedSingleRangeList = singleRangeList2.filter((_, index) => !removeIndexList.includes(index));
117152
- if (appendSingleRange) {
117153
- if (insertFirst) {
117154
- return [appendSingleRange, ...removedSingleRangeList];
117155
- } else {
117156
- return [...removedSingleRangeList, appendSingleRange];
117157
- }
117158
- }
117159
- return removedSingleRangeList;
117160
- }, []);
117161
- }
117162
- exports2.normalizeSingleRangeList = normalizeSingleRangeList;
117163
- var MultiRange = class {
117164
- get valid() {
117165
- return this.set.length >= 1;
117166
- }
117167
- constructor(rangeList) {
117168
- if (rangeList) {
117169
- const singleRangeList = normalizeSingleRangeList(rangeList.map((singleRangeOrComparatorList) => {
117170
- if (single_range_1.isSingleRange(singleRangeOrComparatorList) || !singleRangeOrComparatorList) {
117171
- return singleRangeOrComparatorList;
117172
- } else {
117173
- return single_range_1.createSingleRange(singleRangeOrComparatorList);
117174
- }
117175
- }));
117176
- this.set = singleRangeList.filter(utils_1.isNotNull);
117177
- } else {
117178
- this.set = [];
117179
- }
117180
- }
117181
- toString() {
117182
- if (!this.valid) {
117183
- throw new Error("Invalid range");
117184
- }
117185
- return utils_1.uniqueArray(this.set.map(String)).join(" || ");
117186
- }
117187
- intersect(multiRange) {
117188
- if (this.valid && multiRange.valid) {
117189
- const singleRangeList = this.set.map((singleRangeA) => multiRange.set.map((singleRangeB) => singleRangeA.intersect(singleRangeB))).reduce((a, b) => [...a, ...b]).filter(utils_1.isNotNull);
117190
- return new MultiRange(singleRangeList);
117191
- } else if (this.valid) {
117192
- return this;
117193
- } else if (multiRange.valid) {
117194
- return multiRange;
117195
- } else {
117196
- return new MultiRange(null);
117197
- }
117198
- }
117199
- };
117200
- exports2.MultiRange = MultiRange;
117201
- }
117202
- });
117203
-
117204
- // ../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js
117205
- var require_dist12 = __commonJS({
117206
- "../../node_modules/.pnpm/semver-range-intersect@0.3.1/node_modules/semver-range-intersect/dist/index.js"(exports2) {
117207
- "use strict";
117208
- var __importDefault = exports2 && exports2.__importDefault || function(mod) {
117209
- return mod && mod.__esModule ? mod : { "default": mod };
117210
- };
117211
- Object.defineProperty(exports2, "__esModule", { value: true });
117212
- var semver_12 = __importDefault(require_semver3());
117213
- var multi_range_1 = require_multi_range();
117214
- var utils_1 = require_utils9();
117215
- function intersect(...ranges) {
117216
- const semverRangeList = (() => {
117217
- try {
117218
- return ranges.map((rangeStr) => new semver_12.default.Range(rangeStr));
117219
- } catch (err) {
117220
- return null;
117221
- }
117222
- })();
117223
- if (!semverRangeList || !utils_1.isIntersectRanges(semverRangeList)) {
117224
- return null;
117225
- }
117226
- const intersectRange = semverRangeList.map((range) => new multi_range_1.MultiRange(range.set)).reduce((multiRangeA, multiRangeB) => multiRangeA.intersect(multiRangeB), new multi_range_1.MultiRange(null));
117227
- return intersectRange.valid ? String(intersectRange) || "*" : null;
117228
- }
117229
- exports2.intersect = intersect;
117230
- }
117231
- });
117232
-
117233
- // ../resolve-dependencies/lib/mergePeers.js
117234
- var require_mergePeers = __commonJS({
117235
- "../resolve-dependencies/lib/mergePeers.js"(exports2) {
117236
- "use strict";
117237
- Object.defineProperty(exports2, "__esModule", { value: true });
117238
- exports2.mergePeers = void 0;
117239
- var semver_range_intersect_1 = require_dist12();
117240
- function mergePeers(missingPeers) {
117241
- const conflicts = [];
117242
- const intersections = {};
117243
- for (const [peerName, ranges] of Object.entries(missingPeers)) {
117244
- if (ranges.every(({ optional }) => optional))
117245
- continue;
117246
- if (ranges.length === 1) {
117247
- intersections[peerName] = ranges[0].wantedRange;
117248
- continue;
117249
- }
117250
- const intersection = safeIntersect(ranges.map(({ wantedRange }) => wantedRange));
117251
- if (intersection === null) {
117252
- conflicts.push(peerName);
117253
- } else {
117254
- intersections[peerName] = intersection;
117255
- }
117256
- }
117257
- return { conflicts, intersections };
117258
- }
117259
- exports2.mergePeers = mergePeers;
117260
- function safeIntersect(ranges) {
117261
- try {
117262
- return (0, semver_range_intersect_1.intersect)(...ranges);
117263
- } catch {
117264
- return null;
117265
- }
117266
- }
117267
- }
117268
- });
117269
-
117270
117336
  // ../resolve-dependencies/lib/resolvePeers.js
117271
117337
  var require_resolvePeers = __commonJS({
117272
117338
  "../resolve-dependencies/lib/resolvePeers.js"(exports2) {
@@ -118208,7 +118274,10 @@ var require_updateProjectManifest = __commonJS({
118208
118274
  if (!importer.manifest) {
118209
118275
  throw new Error("Cannot save because no package.json found");
118210
118276
  }
118211
- const specsToUpsert = opts.directDependencies.filter((rdd, index) => importer.wantedDependencies[index].updateSpec).map((rdd, index) => {
118277
+ const specsToUpsert = opts.directDependencies.filter((rdd, index) => {
118278
+ var _a;
118279
+ return (_a = importer.wantedDependencies[index]) === null || _a === void 0 ? void 0 : _a.updateSpec;
118280
+ }).map((rdd, index) => {
118212
118281
  var _a, _b;
118213
118282
  const wantedDep = importer.wantedDependencies[index];
118214
118283
  return resolvedDirectDepToSpecObject({ ...rdd, isNew: wantedDep.isNew, specRaw: wantedDep.raw }, importer, {
@@ -118354,7 +118423,10 @@ var require_lib95 = __commonJS({
118354
118423
  const projectSnapshot = opts.wantedLockfile.importers[project.id];
118355
118424
  opts.wantedLockfile.importers[project.id] = addDirectDependenciesToLockfile(updatedManifest, projectSnapshot, resolvedImporter.linkedDependencies, resolvedImporter.directDependencies, opts.registries);
118356
118425
  }
118357
- 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) : [];
118426
+ const topParents = project.manifest ? await getTopParents((0, difference_1.default)(Object.keys((0, manifest_utils_1.getAllDependenciesFromManifest)(project.manifest)), resolvedImporter.directDependencies.filter((dep, index2) => {
118427
+ var _a3;
118428
+ return ((_a3 = project.wantedDependencies[index2]) === null || _a3 === void 0 ? void 0 : _a3.isNew) === true;
118429
+ }).map(({ alias }) => alias) || []), project.modulesDir) : [];
118358
118430
  resolvedImporter.linkedDependencies.forEach((linkedDependency) => {
118359
118431
  topParents.push({
118360
118432
  name: linkedDependency.alias,
@@ -119900,6 +119972,7 @@ var require_extendInstallOptions = __commonJS({
119900
119972
  version: pnpmPkgJson_1.default.version
119901
119973
  };
119902
119974
  return {
119975
+ autoInstallPeers: false,
119903
119976
  childConcurrency: 5,
119904
119977
  depth: 0,
119905
119978
  enablePnp: false,
@@ -120906,6 +120979,7 @@ var require_install = __commonJS({
120906
120979
  }
120907
120980
  let { dependenciesGraph, dependenciesByProjectId, finishLockfileUpdates, linkedDependenciesByProjectId, newLockfile, outdatedDependencies, peerDependencyIssuesByProjects, wantedToBeSkippedPackageIds, waitTillAllFetchingsFinish } = await (0, resolve_dependencies_1.default)(projects, {
120908
120981
  allowBuild: createAllowBuildFunction(opts),
120982
+ autoInstallPeers: opts.autoInstallPeers,
120909
120983
  currentLockfile: ctx.currentLockfile,
120910
120984
  defaultUpdateDepth: opts.update || opts.updateMatching != null ? opts.depth : -1,
120911
120985
  dryRun: opts.lockfileOnly,
@@ -122743,7 +122817,6 @@ var require_installDeps = __commonJS({
122743
122817
  var logger_1 = __importDefault(require_lib6());
122744
122818
  var sort_packages_1 = require_lib99();
122745
122819
  var is_subdir_1 = __importDefault(require_is_subdir());
122746
- var isEmpty_1 = __importDefault(require_isEmpty2());
122747
122820
  var getOptionsFromRootManifest_1 = __importDefault(require_getOptionsFromRootManifest());
122748
122821
  var getPinnedVersion_1 = __importDefault(require_getPinnedVersion());
122749
122822
  var getSaveType_1 = __importDefault(require_getSaveType());
@@ -122756,7 +122829,7 @@ var require_installDeps = __commonJS({
122756
122829
  update: false
122757
122830
  };
122758
122831
  async function handler(opts, params) {
122759
- var _a, _b, _c, _d, _e, _f;
122832
+ var _a, _b, _c, _d;
122760
122833
  if (opts.workspace) {
122761
122834
  if (opts.latest) {
122762
122835
  throw new error_1.default("BAD_OPTIONS", "Cannot use --latest with --workspace simultaneously");
@@ -122868,25 +122941,8 @@ var require_installDeps = __commonJS({
122868
122941
  rootDir: opts.dir,
122869
122942
  targetDependenciesField: (0, getSaveType_1.default)(opts)
122870
122943
  };
122871
- let [updatedImporter] = await (0, core_1.mutateModules)([mutatedProject], installOpts);
122944
+ const [updatedImporter] = await (0, core_1.mutateModules)([mutatedProject], installOpts);
122872
122945
  if (opts.save !== false) {
122873
- if (opts.autoInstallPeers && !(0, isEmpty_1.default)((_f = (_e = updatedImporter.peerDependencyIssues) === null || _e === void 0 ? void 0 : _e.intersections) !== null && _f !== void 0 ? _f : {})) {
122874
- logger_1.default.info({
122875
- message: "Installing missing peer dependencies",
122876
- prefix: opts.dir
122877
- });
122878
- const dependencySelectors = Object.entries(updatedImporter.peerDependencyIssues.intersections).map(([name, version]) => `${name}@${version}`);
122879
- const result2 = await (0, core_1.mutateModules)([
122880
- {
122881
- ...mutatedProject,
122882
- dependencySelectors,
122883
- manifest: updatedImporter.manifest,
122884
- peer: false,
122885
- targetDependenciesField: "devDependencies"
122886
- }
122887
- ], installOpts);
122888
- updatedImporter = result2[0];
122889
- }
122890
122946
  await writeProjectManifest(updatedImporter.manifest);
122891
122947
  }
122892
122948
  return;
@@ -178690,6 +178746,7 @@ var require_dlx = __commonJS({
178690
178746
  var package_bins_1 = __importDefault(require_lib74());
178691
178747
  var store_path_1 = __importDefault(require_lib40());
178692
178748
  var execa_1 = __importDefault(require_lib19());
178749
+ var omit_1 = __importDefault(require_omit());
178693
178750
  var render_help_1 = __importDefault(require_lib32());
178694
178751
  var makeEnv_1 = require_makeEnv();
178695
178752
  exports2.commandNames = ["dlx"];
@@ -178743,9 +178800,10 @@ var require_dlx = __commonJS({
178743
178800
  const pkgs = (_a = opts.package) !== null && _a !== void 0 ? _a : [command];
178744
178801
  const env = (0, makeEnv_1.makeEnv)({ userAgent: opts.userAgent, prependPaths: [binsDir] });
178745
178802
  await plugin_commands_installation_1.add.handler({
178746
- ...opts,
178803
+ ...(0, omit_1.default)(["workspaceDir"], opts),
178804
+ bin: binsDir,
178747
178805
  dir: prefix,
178748
- bin: binsDir
178806
+ lockfileDir: prefix
178749
178807
  }, pkgs);
178750
178808
  const binName = opts.package ? command : await getBinName(modulesDir, await getPkgName(prefix));
178751
178809
  await (0, execa_1.default)(binName, args2, {
@@ -182423,24 +182481,34 @@ var require_string_prototype = __commonJS({
182423
182481
  }
182424
182482
  });
182425
182483
 
182426
- // ../plugin-commands-setup/lib/BadHomeDirError.js
182427
- var require_BadHomeDirError = __commonJS({
182428
- "../plugin-commands-setup/lib/BadHomeDirError.js"(exports2) {
182484
+ // ../plugin-commands-setup/lib/errors.js
182485
+ var require_errors9 = __commonJS({
182486
+ "../plugin-commands-setup/lib/errors.js"(exports2) {
182429
182487
  "use strict";
182430
182488
  var __importDefault = exports2 && exports2.__importDefault || function(mod) {
182431
182489
  return mod && mod.__esModule ? mod : { "default": mod };
182432
182490
  };
182433
182491
  Object.defineProperty(exports2, "__esModule", { value: true });
182434
- exports2.BadHomeDirError = void 0;
182492
+ exports2.BadShellSectionError = exports2.BadEnvVariableError = void 0;
182435
182493
  var error_1 = __importDefault(require_lib8());
182436
- var BadHomeDirError = class extends error_1.default {
182437
- constructor({ wantedDir, currentDir }) {
182438
- super("DIFFERENT_HOME_DIR_IS_SET", `Currently 'PNPM_HOME' is set to '${currentDir}'`, {
182439
- hint: "If you want to override the existing PNPM_HOME env variable, use the --force option"
182494
+ var BadEnvVariableError = class extends error_1.default {
182495
+ constructor({ envName, wantedValue, currentValue }) {
182496
+ super("BAD_ENV_FOUND", `Currently '${envName}' is set to '${wantedValue}'`, {
182497
+ hint: `If you want to override the existing ${envName} env variable, use the --force option`
182498
+ });
182499
+ }
182500
+ };
182501
+ exports2.BadEnvVariableError = BadEnvVariableError;
182502
+ var BadShellSectionError = class extends error_1.default {
182503
+ constructor({ wanted, current, configFile }) {
182504
+ super("BAD_SHELL_SECTION", `The config file at "${configFile} already contains a pnpm section but with other configuration`, {
182505
+ hint: "If you want to override the existing configuration section, use the --force option"
182440
182506
  });
182507
+ this.current = current;
182508
+ this.wanted = wanted;
182441
182509
  }
182442
182510
  };
182443
- exports2.BadHomeDirError = BadHomeDirError;
182511
+ exports2.BadShellSectionError = BadShellSectionError;
182444
182512
  }
182445
182513
  });
182446
182514
 
@@ -182453,22 +182521,12 @@ var require_setupOnWindows = __commonJS({
182453
182521
  };
182454
182522
  Object.defineProperty(exports2, "__esModule", { value: true });
182455
182523
  exports2.setupWindowsEnvironmentPath = void 0;
182524
+ var error_1 = __importDefault(require_lib8());
182456
182525
  var path_1 = require("path");
182457
182526
  var execa_1 = __importDefault(require_lib19());
182458
182527
  var string_prototype_matchall_1 = __importDefault(require_string_prototype());
182459
- var BadHomeDirError_1 = require_BadHomeDirError();
182528
+ var errors_1 = require_errors9();
182460
182529
  var REG_KEY = "HKEY_CURRENT_USER\\Environment";
182461
- function findEnvValuesInRegistry(regEntries, envVarName) {
182462
- const regexp = new RegExp(`^ {4}(?<name>${envVarName}) {4}(?<type>\\w+) {4}(?<data>.*)$`, "gim");
182463
- return Array.from((0, string_prototype_matchall_1.default)(regEntries, regexp));
182464
- }
182465
- function setEnvVarInRegistry(envVarName, envVarValue) {
182466
- return (0, execa_1.default)("reg", ["add", REG_KEY, "/v", envVarName, "/t", "REG_EXPAND_SZ", "/d", envVarValue, "/f"], { windowsHide: false });
182467
- }
182468
- function pathIncludesDir(pathValue, dir) {
182469
- const dirPath = path_1.win32.parse(path_1.win32.normalize(dir));
182470
- return pathValue.split(path_1.win32.delimiter).map((p) => path_1.win32.normalize(p)).map((p) => path_1.win32.parse(p)).map((p) => `${p.dir}${path_1.win32.sep}${p.base}`.toUpperCase()).filter((p) => p !== "").includes(`${dirPath.dir}${path_1.win32.sep}${dirPath.base}`.toUpperCase());
182471
- }
182472
182530
  async function setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
182473
182531
  var _a;
182474
182532
  const chcpResult = await (0, execa_1.default)("chcp");
@@ -182486,53 +182544,66 @@ var require_setupOnWindows = __commonJS({
182486
182544
  }
182487
182545
  exports2.setupWindowsEnvironmentPath = setupWindowsEnvironmentPath;
182488
182546
  async function _setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
182489
- var _a;
182490
- const queryResult = await (0, execa_1.default)("reg", ["query", REG_KEY], { windowsHide: false });
182491
- if (queryResult.failed) {
182492
- return "Win32 registry environment values could not be retrieved";
182493
- }
182494
- const queryOutput = queryResult.stdout;
182495
- const pathValueMatch = findEnvValuesInRegistry(queryOutput, "PATH");
182496
- const homeValueMatch = findEnvValuesInRegistry(queryOutput, "PNPM_HOME");
182497
- let commitNeeded = false;
182547
+ const registryOutput = await getRegistryOutput();
182498
182548
  const logger = [];
182499
- if (homeValueMatch.length === 1 && !opts.force) {
182500
- const currentHomeDir = homeValueMatch[0].groups.data;
182501
- if (currentHomeDir !== pnpmHomeDir) {
182502
- throw new BadHomeDirError_1.BadHomeDirError({ currentDir: currentHomeDir, wantedDir: pnpmHomeDir });
182549
+ logger.push(logEnvUpdate(await updateEnvVariable(registryOutput, "PNPM_HOME", pnpmHomeDir, opts), "PNPM_HOME"));
182550
+ logger.push(logEnvUpdate(await prependToPath(registryOutput, "%PNPM_HOME%"), "Path"));
182551
+ return logger.join("\n");
182552
+ }
182553
+ function logEnvUpdate(envUpdateResult, envName) {
182554
+ switch (envUpdateResult) {
182555
+ case "skipped":
182556
+ return `${envName} was already up-to-date`;
182557
+ case "updated":
182558
+ return `${envName} was updated`;
182559
+ }
182560
+ return "";
182561
+ }
182562
+ async function updateEnvVariable(registryOutput, name, value, opts) {
182563
+ const currentValue = await getEnvValueFromRegistry(registryOutput, name);
182564
+ if (currentValue && !opts.force) {
182565
+ if (currentValue !== value) {
182566
+ throw new errors_1.BadEnvVariableError({ envName: name, currentValue, wantedValue: value });
182503
182567
  }
182568
+ return "skipped";
182504
182569
  } else {
182505
- logger.push(`Setting 'PNPM_HOME' to value '${pnpmHomeDir}'`);
182506
- const addResult = await setEnvVarInRegistry("PNPM_HOME", pnpmHomeDir);
182507
- if (addResult.failed) {
182508
- logger.push(` ${addResult.stderr}`);
182509
- } else {
182510
- commitNeeded = true;
182511
- logger.push(` ${addResult.stdout}`);
182512
- }
182513
- }
182514
- const pathData = (_a = pathValueMatch[0]) === null || _a === void 0 ? void 0 : _a.groups.data;
182515
- if (pathData === void 0) {
182516
- logger.push("Current PATH is not set. No changes to this environment variable are applied");
182517
- } else if (pathData == null || pathData.trim() === "") {
182518
- logger.push("Current PATH is empty. No changes to this environment variable are applied");
182519
- } else if (pathIncludesDir(pathData, pnpmHomeDir)) {
182520
- logger.push("PATH already contains PNPM_HOME");
182570
+ await setEnvVarInRegistry(name, value);
182571
+ return "updated";
182572
+ }
182573
+ }
182574
+ async function prependToPath(registryOutput, prependDir) {
182575
+ const pathData = await getEnvValueFromRegistry(registryOutput, "Path");
182576
+ if (pathData === void 0 || pathData == null || pathData.trim() === "") {
182577
+ throw new error_1.default("NO_PATH", '"Path" environment variable is not found in the registry');
182578
+ } else if (pathData.split(path_1.win32.delimiter).includes(prependDir)) {
182579
+ return "skipped";
182521
182580
  } else {
182522
- logger.push("Updating PATH");
182523
- const newPathValue = `${pnpmHomeDir}${path_1.win32.delimiter}${pathData}`;
182524
- const addResult = await setEnvVarInRegistry(pathValueMatch[0].groups.name, newPathValue);
182525
- if (addResult.failed) {
182526
- logger.push(` ${addResult.stderr}`);
182527
- } else {
182528
- commitNeeded = true;
182529
- logger.push(` ${addResult.stdout}`);
182530
- }
182581
+ const newPathValue = `${prependDir}${path_1.win32.delimiter}${pathData}`;
182582
+ await setEnvVarInRegistry("Path", newPathValue);
182583
+ return "updated";
182531
182584
  }
182532
- if (commitNeeded) {
182533
- await (0, execa_1.default)("setx", ["PNPM_HOME", pnpmHomeDir]);
182585
+ }
182586
+ var EXEC_OPTS = { windowsHide: false };
182587
+ async function getRegistryOutput() {
182588
+ try {
182589
+ const queryResult = await (0, execa_1.default)("reg", ["query", REG_KEY], EXEC_OPTS);
182590
+ return queryResult.stdout;
182591
+ } catch (err) {
182592
+ throw new error_1.default("REG_READ", "win32 registry environment values could not be retrieved");
182534
182593
  }
182535
- return logger.join("\n");
182594
+ }
182595
+ async function getEnvValueFromRegistry(registryOutput, envVarName) {
182596
+ const regexp = new RegExp(`^ {4}(?<name>${envVarName}) {4}(?<type>\\w+) {4}(?<data>.*)$`, "gim");
182597
+ const match = Array.from((0, string_prototype_matchall_1.default)(registryOutput, regexp))[0];
182598
+ return match === null || match === void 0 ? void 0 : match.groups.data;
182599
+ }
182600
+ async function setEnvVarInRegistry(envVarName, envVarValue) {
182601
+ try {
182602
+ await (0, execa_1.default)("reg", ["add", REG_KEY, "/v", envVarName, "/t", "REG_EXPAND_SZ", "/d", envVarValue, "/f"], EXEC_OPTS);
182603
+ } catch (err) {
182604
+ throw new error_1.default("FAILED_SET_ENV", `Failed to set "${envVarName}" to "${envVarValue}": ${err.stderr}`);
182605
+ }
182606
+ await (0, execa_1.default)("setx", [envVarName, envVarValue], EXEC_OPTS);
182536
182607
  }
182537
182608
  }
182538
182609
  });
@@ -182553,7 +182624,7 @@ var require_setup = __commonJS({
182553
182624
  var logger_1 = __importDefault(require_lib6());
182554
182625
  var render_help_1 = __importDefault(require_lib32());
182555
182626
  var setupOnWindows_1 = require_setupOnWindows();
182556
- var BadHomeDirError_1 = require_BadHomeDirError();
182627
+ var errors_1 = require_errors9();
182557
182628
  var rcOptionsTypes = () => ({});
182558
182629
  exports2.rcOptionsTypes = rcOptionsTypes;
182559
182630
  var cliOptionsTypes = () => ({
@@ -182601,11 +182672,11 @@ var require_setup = __commonJS({
182601
182672
  }
182602
182673
  async function handler(opts) {
182603
182674
  var _a;
182604
- const currentShell = detectCurrentShell();
182605
182675
  const execPath = getExecPath();
182606
182676
  if (execPath.match(/\.[cm]?js$/) == null) {
182607
182677
  copyCli(execPath, opts.pnpmHomeDir);
182608
182678
  }
182679
+ const currentShell = detectCurrentShell();
182609
182680
  const updateOutput = await updateShell(currentShell, opts.pnpmHomeDir, { force: (_a = opts.force) !== null && _a !== void 0 ? _a : false });
182610
182681
  return `${updateOutput}
182611
182682
 
@@ -182623,16 +182694,12 @@ Setup complete. Open a new terminal to start using pnpm.`;
182623
182694
  }
182624
182695
  async function updateShell(currentShell, pnpmHomeDir, opts) {
182625
182696
  switch (currentShell) {
182626
- case "bash": {
182627
- const configFile = path_1.default.join(os_1.default.homedir(), ".bashrc");
182628
- return setupShell(configFile, pnpmHomeDir, opts);
182629
- }
182697
+ case "bash":
182630
182698
  case "zsh": {
182631
- const configFile = path_1.default.join(os_1.default.homedir(), ".zshrc");
182632
- return setupShell(configFile, pnpmHomeDir, opts);
182699
+ return reportShellChange(await setupShell(currentShell, pnpmHomeDir, opts));
182633
182700
  }
182634
182701
  case "fish": {
182635
- return setupFishShell(pnpmHomeDir, opts);
182702
+ return reportShellChange(await setupFishShell(pnpmHomeDir, opts));
182636
182703
  }
182637
182704
  }
182638
182705
  if (process.platform === "win32") {
@@ -182640,60 +182707,61 @@ Setup complete. Open a new terminal to start using pnpm.`;
182640
182707
  }
182641
182708
  return "Could not infer shell type.";
182642
182709
  }
182643
- async function setupShell(configFile, pnpmHomeDir, opts) {
182710
+ function reportShellChange({ action, configFile }) {
182711
+ switch (action) {
182712
+ case "created":
182713
+ return `Created ${configFile}`;
182714
+ case "added":
182715
+ return `Appended new lines to ${configFile}`;
182716
+ case "updated":
182717
+ return `Replaced configuration in ${configFile}`;
182718
+ case "skipped":
182719
+ return `Configuration already up-to-date in ${configFile}`;
182720
+ }
182721
+ }
182722
+ async function setupShell(shell, pnpmHomeDir, opts) {
182723
+ const configFile = path_1.default.join(os_1.default.homedir(), `.${shell}rc`);
182644
182724
  const content = `# pnpm
182645
182725
  export PNPM_HOME="${pnpmHomeDir}"
182646
182726
  export PATH="$PNPM_HOME:$PATH"
182647
- # pnpm end
182648
- `;
182649
- if (!fs_1.default.existsSync(configFile)) {
182650
- await fs_1.default.promises.writeFile(configFile, content, "utf8");
182651
- return `Created ${configFile}`;
182652
- }
182653
- const configContent = await fs_1.default.promises.readFile(configFile, "utf8");
182654
- if (!configContent.includes("PNPM_HOME")) {
182655
- await fs_1.default.promises.appendFile(configFile, `
182656
- ${content}`, "utf8");
182657
- return `Updated ${configFile}`;
182658
- }
182659
- const match = configContent.match(/export PNPM_HOME="(.*)"/);
182660
- if (match && match[1] !== pnpmHomeDir) {
182661
- if (!opts.force) {
182662
- throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
182663
- }
182664
- const newConfigContent = replaceSection(configContent, content);
182665
- await fs_1.default.promises.writeFile(configFile, newConfigContent, "utf8");
182666
- return `Updated ${configFile}`;
182667
- }
182668
- return `PNPM_HOME is already in ${configFile}`;
182727
+ # pnpm end`;
182728
+ return {
182729
+ action: await updateShellConfig(configFile, content, opts),
182730
+ configFile
182731
+ };
182669
182732
  }
182670
182733
  async function setupFishShell(pnpmHomeDir, opts) {
182671
182734
  const configFile = path_1.default.join(os_1.default.homedir(), ".config/fish/config.fish");
182672
182735
  const content = `# pnpm
182673
182736
  set -gx PNPM_HOME "${pnpmHomeDir}"
182674
182737
  set -gx PATH "$PNPM_HOME" $PATH
182675
- # pnpm end
182676
- `;
182738
+ # pnpm end`;
182739
+ return {
182740
+ action: await updateShellConfig(configFile, content, opts),
182741
+ configFile
182742
+ };
182743
+ }
182744
+ async function updateShellConfig(configFile, newContent, opts) {
182677
182745
  if (!fs_1.default.existsSync(configFile)) {
182678
- await fs_1.default.promises.writeFile(configFile, content, "utf8");
182679
- return `Created ${configFile}`;
182746
+ await fs_1.default.promises.writeFile(configFile, newContent, "utf8");
182747
+ return "created";
182680
182748
  }
182681
182749
  const configContent = await fs_1.default.promises.readFile(configFile, "utf8");
182682
- if (!configContent.includes("PNPM_HOME")) {
182750
+ const match = configContent.match(/# pnpm[\s\S]*# pnpm end/);
182751
+ if (!match) {
182683
182752
  await fs_1.default.promises.appendFile(configFile, `
182684
- ${content}`, "utf8");
182685
- return `Updated ${configFile}`;
182753
+ ${newContent}`, "utf8");
182754
+ return "added";
182686
182755
  }
182687
- const match = configContent.match(/set -gx PNPM_HOME "(.*)"/);
182688
- if (match && match[1] !== pnpmHomeDir) {
182756
+ if (match[0] !== newContent) {
182689
182757
  if (!opts.force) {
182690
- throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
182758
+ throw new errors_1.BadShellSectionError({ current: match[1], wanted: newContent, configFile });
182691
182759
  }
182692
- const newConfigContent = replaceSection(configContent, content);
182760
+ const newConfigContent = replaceSection(configContent, newContent);
182693
182761
  await fs_1.default.promises.writeFile(configFile, newConfigContent, "utf8");
182694
- return `Updated ${configFile}`;
182762
+ return "updated";
182695
182763
  }
182696
- return `PNPM_HOME is already in ${configFile}`;
182764
+ return "skipped";
182697
182765
  }
182698
182766
  function replaceSection(originalContent, newSection) {
182699
182767
  return originalContent.replace(/# pnpm[\s\S]*# pnpm end/g, newSection);