pnpm 7.23.0 → 7.24.0

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.
@@ -200,11 +200,11 @@ included:
200
200
  injectedDeps: {}
201
201
  layoutVersion: 5
202
202
  nodeLinker: hoisted
203
- packageManager: pnpm@7.22.0
203
+ packageManager: pnpm@7.23.0
204
204
  pendingBuilds:
205
205
  - /node-gyp/9.3.1
206
206
  - /encoding/0.1.13
207
- prunedAt: Thu, 05 Jan 2023 13:49:34 GMT
207
+ prunedAt: Mon, 09 Jan 2023 17:57:23 GMT
208
208
  publicHoistPattern:
209
209
  - '*eslint*'
210
210
  - '*prettier*'
package/dist/pnpm.cjs CHANGED
@@ -3224,7 +3224,7 @@ var require_lib4 = __commonJS({
3224
3224
  var load_json_file_1 = __importDefault(require_load_json_file());
3225
3225
  var defaultManifest = {
3226
3226
  name: "pnpm" != null && true ? "pnpm" : "pnpm",
3227
- version: "7.23.0" != null && true ? "7.23.0" : "0.0.0"
3227
+ version: "7.24.0" != null && true ? "7.24.0" : "0.0.0"
3228
3228
  };
3229
3229
  var pkgJson;
3230
3230
  if (require.main == null) {
@@ -12835,9 +12835,10 @@ var require_lib7 = __commonJS({
12835
12835
  "../packages/constants/lib/index.js"(exports2) {
12836
12836
  "use strict";
12837
12837
  Object.defineProperty(exports2, "__esModule", { value: true });
12838
- exports2.WORKSPACE_MANIFEST_FILENAME = exports2.LAYOUT_VERSION = exports2.ENGINE_NAME = exports2.LOCKFILE_VERSION = exports2.WANTED_LOCKFILE = void 0;
12838
+ exports2.WORKSPACE_MANIFEST_FILENAME = exports2.LAYOUT_VERSION = exports2.ENGINE_NAME = exports2.LOCKFILE_VERSION_V6 = exports2.LOCKFILE_VERSION = exports2.WANTED_LOCKFILE = void 0;
12839
12839
  exports2.WANTED_LOCKFILE = "pnpm-lock.yaml";
12840
12840
  exports2.LOCKFILE_VERSION = 5.4;
12841
+ exports2.LOCKFILE_VERSION_V6 = "6.0";
12841
12842
  exports2.ENGINE_NAME = `${process.platform}-${process.arch}-node-${process.version.split(".")[0]}`;
12842
12843
  exports2.LAYOUT_VERSION = 5;
12843
12844
  exports2.WORKSPACE_MANIFEST_FILENAME = "pnpm-workspace.yaml";
@@ -24905,6 +24906,7 @@ var require_lib21 = __commonJS({
24905
24906
  "strict-peer-dependencies": Boolean,
24906
24907
  "use-beta-cli": Boolean,
24907
24908
  "use-inline-specifiers-lockfile-format": Boolean,
24909
+ "use-lockfile-v6": Boolean,
24908
24910
  "use-node-version": String,
24909
24911
  "use-running-store-server": Boolean,
24910
24912
  "use-store-server": Boolean,
@@ -98852,7 +98854,9 @@ var require_lib58 = __commonJS({
98852
98854
  async function preparePackage(opts, pkgDir) {
98853
98855
  const manifest = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgDir);
98854
98856
  if (manifest?.scripts == null || !packageShouldBeBuilt(manifest, pkgDir))
98855
- return;
98857
+ return false;
98858
+ if (opts.ignoreScripts)
98859
+ return true;
98856
98860
  const pm = (await (0, preferred_pm_1.default)(pkgDir))?.name ?? "npm";
98857
98861
  const execOpts = {
98858
98862
  depPath: `${manifest.name}@${manifest.version}`,
@@ -98875,6 +98879,7 @@ var require_lib58 = __commonJS({
98875
98879
  throw err;
98876
98880
  }
98877
98881
  await (0, rimraf_1.default)(path_1.default.join(pkgDir, "node_modules"));
98882
+ return true;
98878
98883
  }
98879
98884
  exports2.preparePackage = preparePackage;
98880
98885
  function packageShouldBeBuilt(manifest, pkgDir) {
@@ -98917,6 +98922,7 @@ var require_gitHostedTarballFetcher = __commonJS({
98917
98922
  };
98918
98923
  Object.defineProperty(exports2, "__esModule", { value: true });
98919
98924
  exports2.waitForFilesIndex = exports2.createGitHostedTarballFetcher = void 0;
98925
+ var logger_1 = require_lib6();
98920
98926
  var prepare_package_1 = require_lib58();
98921
98927
  var p_map_values_1 = __importDefault(require_lib59());
98922
98928
  var omit_1 = __importDefault(require_omit());
@@ -98924,7 +98930,11 @@ var require_gitHostedTarballFetcher = __commonJS({
98924
98930
  const fetch = async (cafs, resolution, opts) => {
98925
98931
  const { filesIndex } = await fetchRemoteTarball(cafs, resolution, opts);
98926
98932
  try {
98927
- return { filesIndex: await prepareGitHostedPkg(filesIndex, cafs, fetcherOpts) };
98933
+ const prepareResult = await prepareGitHostedPkg(filesIndex, cafs, fetcherOpts);
98934
+ if (prepareResult.ignoredBuild) {
98935
+ (0, logger_1.globalWarn)(`The git-hosted package fetched from "${resolution.tarball}" has to be built but the build scripts were ignored.`);
98936
+ }
98937
+ return { filesIndex: prepareResult.filesIndex };
98928
98938
  } catch (err) {
98929
98939
  err.message = `Failed to prepare git-hosted package fetched from "${resolution.tarball}": ${err.message}`;
98930
98940
  throw err;
@@ -98942,9 +98952,12 @@ var require_gitHostedTarballFetcher = __commonJS({
98942
98952
  },
98943
98953
  force: true
98944
98954
  });
98945
- await (0, prepare_package_1.preparePackage)(opts, tempLocation);
98955
+ const shouldBeBuilt = await (0, prepare_package_1.preparePackage)(opts, tempLocation);
98946
98956
  const newFilesIndex = await cafs.addFilesFromDir(tempLocation);
98947
- return newFilesIndex;
98957
+ return {
98958
+ filesIndex: newFilesIndex,
98959
+ ignoredBuild: opts.ignoreScripts && shouldBeBuilt
98960
+ };
98948
98961
  }
98949
98962
  async function waitForFilesIndex(filesIndex) {
98950
98963
  return (0, p_map_values_1.default)(async (fileInfo) => {
@@ -106621,13 +106634,19 @@ var require_lib70 = __commonJS({
106621
106634
  Object.defineProperty(exports2, "__esModule", { value: true });
106622
106635
  exports2.createGitFetcher = void 0;
106623
106636
  var path_1 = __importDefault(require("path"));
106637
+ var logger_1 = require_lib6();
106624
106638
  var prepare_package_1 = require_lib58();
106625
106639
  var rimraf_1 = __importDefault(require_rimraf2());
106626
106640
  var execa_1 = __importDefault(require_lib17());
106627
106641
  var url_1 = require("url");
106628
106642
  function createGitFetcher(createOpts) {
106629
106643
  const allowedHosts = new Set(createOpts?.gitShallowHosts ?? []);
106630
- const preparePkg = prepare_package_1.preparePackage.bind(null, { rawConfig: createOpts.rawConfig, unsafePerm: createOpts.unsafePerm });
106644
+ const ignoreScripts = createOpts.ignoreScripts ?? false;
106645
+ const preparePkg = prepare_package_1.preparePackage.bind(null, {
106646
+ ignoreScripts: createOpts.ignoreScripts,
106647
+ rawConfig: createOpts.rawConfig,
106648
+ unsafePerm: createOpts.unsafePerm
106649
+ });
106631
106650
  const gitFetcher = async (cafs, resolution, opts) => {
106632
106651
  const tempLocation = await cafs.tempDir();
106633
106652
  if (allowedHosts.size > 0 && shouldUseShallow(resolution.repo, allowedHosts)) {
@@ -106639,7 +106658,10 @@ var require_lib70 = __commonJS({
106639
106658
  }
106640
106659
  await execGit(["checkout", resolution.commit], { cwd: tempLocation });
106641
106660
  try {
106642
- await preparePkg(tempLocation);
106661
+ const shouldBeBuilt = await preparePkg(tempLocation);
106662
+ if (ignoreScripts && shouldBeBuilt) {
106663
+ (0, logger_1.globalWarn)(`The git-hosted package fetched from "${resolution.repo}" has to be built but the build scripts were ignored.`);
106664
+ }
106643
106665
  } catch (err) {
106644
106666
  err.message = `Failed to prepare git-hosted package fetched from "${resolution.repo}": ${err.message}`;
106645
106667
  throw err;
@@ -107115,7 +107137,7 @@ var require_lib76 = __commonJS({
107115
107137
  return mod && mod.__esModule ? mod : { "default": mod };
107116
107138
  };
107117
107139
  Object.defineProperty(exports2, "__esModule", { value: true });
107118
- exports2.createPeersFolderSuffix = exports2.depPathToFilename = exports2.parse = exports2.refToRelative = exports2.relative = exports2.getRegistryByPackageName = exports2.refToAbsolute = exports2.tryGetPackageId = exports2.resolve = exports2.isAbsolute = void 0;
107140
+ exports2.createPeersFolderSuffix = exports2.createPeersFolderSuffixNewFormat = exports2.depPathToFilename = exports2.parse = exports2.refToRelative = exports2.relative = exports2.getRegistryByPackageName = exports2.refToAbsolute = exports2.tryGetPackageId = exports2.resolve = exports2.isAbsolute = void 0;
107119
107141
  var crypto_base32_hash_1 = require_lib75();
107120
107142
  var encode_registry_1 = __importDefault(require_encode_registry());
107121
107143
  var semver_12 = __importDefault(require_semver2());
@@ -107143,6 +107165,10 @@ var require_lib76 = __commonJS({
107143
107165
  if (relDepPath[0] !== "/") {
107144
107166
  return null;
107145
107167
  }
107168
+ const sepIndex = relDepPath.indexOf("(", relDepPath.lastIndexOf("/"));
107169
+ if (sepIndex !== -1) {
107170
+ return resolve(registries, relDepPath.slice(0, sepIndex));
107171
+ }
107146
107172
  const underscoreIndex = relDepPath.indexOf("_", relDepPath.lastIndexOf("/"));
107147
107173
  if (underscoreIndex !== -1) {
107148
107174
  return resolve(registries, relDepPath.slice(0, underscoreIndex));
@@ -107154,7 +107180,7 @@ var require_lib76 = __commonJS({
107154
107180
  if (reference.startsWith("link:")) {
107155
107181
  return null;
107156
107182
  }
107157
- if (!reference.includes("/")) {
107183
+ if (!reference.includes("/") || reference.includes("(") && reference.lastIndexOf("/", reference.indexOf("(")) === -1) {
107158
107184
  const registryName2 = (0, encode_registry_1.default)(getRegistryByPackageName(registries, pkgName));
107159
107185
  return `${registryName2}/${pkgName}/${reference}`;
107160
107186
  }
@@ -107186,7 +107212,7 @@ var require_lib76 = __commonJS({
107186
107212
  if (reference.startsWith("file:")) {
107187
107213
  return reference;
107188
107214
  }
107189
- if (!reference.includes("/")) {
107215
+ if (!reference.includes("/") || reference.includes("(") && reference.lastIndexOf("/", reference.indexOf("(")) === -1) {
107190
107216
  return `/${pkgName}/${reference}`;
107191
107217
  }
107192
107218
  return reference;
@@ -107202,13 +107228,22 @@ var require_lib76 = __commonJS({
107202
107228
  parts.shift();
107203
107229
  const host = _isAbsolute ? parts.shift() : void 0;
107204
107230
  const name = parts[0].startsWith("@") ? `${parts.shift()}/${parts.shift()}` : parts.shift();
107205
- let version = parts.shift();
107231
+ let version = parts.join("/");
107206
107232
  if (version) {
107207
- const underscoreIndex = version.indexOf("_");
107233
+ let peerSepIndex;
107208
107234
  let peersSuffix;
107209
- if (underscoreIndex !== -1) {
107210
- peersSuffix = version.substring(underscoreIndex + 1);
107211
- version = version.substring(0, underscoreIndex);
107235
+ if (version.includes("(") && version.endsWith(")")) {
107236
+ peerSepIndex = version.indexOf("(");
107237
+ if (peerSepIndex !== -1) {
107238
+ peersSuffix = version.substring(peerSepIndex);
107239
+ version = version.substring(0, peerSepIndex);
107240
+ }
107241
+ } else {
107242
+ peerSepIndex = version.indexOf("_");
107243
+ if (peerSepIndex !== -1) {
107244
+ peersSuffix = version.substring(peerSepIndex + 1);
107245
+ version = version.substring(0, peerSepIndex);
107246
+ }
107212
107247
  }
107213
107248
  if (semver_12.default.valid(version)) {
107214
107249
  return {
@@ -107241,11 +107276,16 @@ var require_lib76 = __commonJS({
107241
107276
  if (depPath.startsWith("/")) {
107242
107277
  depPath = depPath.substring(1);
107243
107278
  }
107244
- const index = depPath.lastIndexOf("/");
107279
+ const index = depPath.lastIndexOf("/", depPath.includes("(") ? depPath.indexOf("(") - 1 : depPath.length);
107245
107280
  return `${depPath.substring(0, index)}@${depPath.slice(index + 1)}`;
107246
107281
  }
107247
107282
  return depPath.replace(":", "+");
107248
107283
  }
107284
+ function createPeersFolderSuffixNewFormat(peers) {
107285
+ const folderName = peers.map(({ name, version }) => `${name}@${version}`).sort().join(")(");
107286
+ return `(${folderName})`;
107287
+ }
107288
+ exports2.createPeersFolderSuffixNewFormat = createPeersFolderSuffixNewFormat;
107249
107289
  function createPeersFolderSuffix(peers) {
107250
107290
  const folderName = peers.map(({ name, version }) => `${name.replace("/", "+")}@${version}`).sort().join("+");
107251
107291
  if (folderName.length > 26) {
@@ -108113,22 +108153,113 @@ var require_InlineSpecifiersLockfile = __commonJS({
108113
108153
  var require_inlineSpecifiersLockfileConverters = __commonJS({
108114
108154
  "../lockfile/lockfile-file/lib/experiments/inlineSpecifiersLockfileConverters.js"(exports2) {
108115
108155
  "use strict";
108156
+ var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
108157
+ if (k2 === void 0)
108158
+ k2 = k;
108159
+ var desc = Object.getOwnPropertyDescriptor(m, k);
108160
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
108161
+ desc = { enumerable: true, get: function() {
108162
+ return m[k];
108163
+ } };
108164
+ }
108165
+ Object.defineProperty(o, k2, desc);
108166
+ } : function(o, m, k, k2) {
108167
+ if (k2 === void 0)
108168
+ k2 = k;
108169
+ o[k2] = m[k];
108170
+ });
108171
+ var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
108172
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
108173
+ } : function(o, v) {
108174
+ o["default"] = v;
108175
+ });
108176
+ var __importStar2 = exports2 && exports2.__importStar || function(mod) {
108177
+ if (mod && mod.__esModule)
108178
+ return mod;
108179
+ var result2 = {};
108180
+ if (mod != null) {
108181
+ for (var k in mod)
108182
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
108183
+ __createBinding2(result2, mod, k);
108184
+ }
108185
+ __setModuleDefault2(result2, mod);
108186
+ return result2;
108187
+ };
108116
108188
  Object.defineProperty(exports2, "__esModule", { value: true });
108117
- exports2.revertFromInlineSpecifiersFormat = exports2.revertFromInlineSpecifiersFormatIfNecessary = exports2.convertToInlineSpecifiersFormat = exports2.isExperimentalInlineSpecifiersFormat = void 0;
108189
+ exports2.convertNewDepPathToOldDepPath = exports2.revertFromInlineSpecifiersFormat = exports2.revertFromInlineSpecifiersFormatIfNecessary = exports2.convertToInlineSpecifiersFormat = exports2.isExperimentalInlineSpecifiersFormat = void 0;
108190
+ var dp = __importStar2(require_lib76());
108118
108191
  var InlineSpecifiersLockfile_1 = require_InlineSpecifiersLockfile();
108119
108192
  function isExperimentalInlineSpecifiersFormat(lockfile) {
108120
108193
  const { lockfileVersion } = lockfile;
108121
- return typeof lockfileVersion === "string" && lockfileVersion.endsWith(InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX);
108194
+ return lockfileVersion.toString().startsWith("6.") || typeof lockfileVersion === "string" && lockfileVersion.endsWith(InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX);
108122
108195
  }
108123
108196
  exports2.isExperimentalInlineSpecifiersFormat = isExperimentalInlineSpecifiersFormat;
108124
108197
  function convertToInlineSpecifiersFormat(lockfile) {
108125
- return {
108198
+ let importers = lockfile.importers;
108199
+ let packages = lockfile.packages;
108200
+ if (lockfile.lockfileVersion.toString().startsWith("6.")) {
108201
+ importers = Object.fromEntries(Object.entries(lockfile.importers ?? {}).map(([importerId, pkgSnapshot]) => {
108202
+ const newSnapshot = { ...pkgSnapshot };
108203
+ if (newSnapshot.dependencies != null) {
108204
+ newSnapshot.dependencies = mapValues(newSnapshot.dependencies, convertOldRefToNewRef);
108205
+ }
108206
+ if (newSnapshot.optionalDependencies != null) {
108207
+ newSnapshot.optionalDependencies = mapValues(newSnapshot.optionalDependencies, convertOldRefToNewRef);
108208
+ }
108209
+ if (newSnapshot.devDependencies != null) {
108210
+ newSnapshot.devDependencies = mapValues(newSnapshot.devDependencies, convertOldRefToNewRef);
108211
+ }
108212
+ return [importerId, newSnapshot];
108213
+ }));
108214
+ packages = Object.fromEntries(Object.entries(lockfile.packages ?? {}).map(([depPath, pkgSnapshot]) => {
108215
+ const newSnapshot = { ...pkgSnapshot };
108216
+ if (newSnapshot.dependencies != null) {
108217
+ newSnapshot.dependencies = mapValues(newSnapshot.dependencies, convertOldRefToNewRef);
108218
+ }
108219
+ if (newSnapshot.optionalDependencies != null) {
108220
+ newSnapshot.optionalDependencies = mapValues(newSnapshot.optionalDependencies, convertOldRefToNewRef);
108221
+ }
108222
+ return [convertOldDepPathToNewDepPath(depPath), newSnapshot];
108223
+ }));
108224
+ }
108225
+ const newLockfile = {
108126
108226
  ...lockfile,
108127
- lockfileVersion: `${lockfile.lockfileVersion}${InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX}`,
108128
- importers: mapValues(lockfile.importers, convertProjectSnapshotToInlineSpecifiersFormat)
108227
+ packages,
108228
+ lockfileVersion: lockfile.lockfileVersion.toString().startsWith("6.") ? lockfile.lockfileVersion.toString() : lockfile.lockfileVersion.toString().endsWith(InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX) ? lockfile.lockfileVersion.toString() : `${lockfile.lockfileVersion}${InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX}`,
108229
+ importers: mapValues(importers, convertProjectSnapshotToInlineSpecifiersFormat)
108129
108230
  };
108231
+ if (lockfile.lockfileVersion.toString().startsWith("6.") && newLockfile.time) {
108232
+ newLockfile.time = Object.fromEntries(Object.entries(newLockfile.time).map(([depPath, time]) => [convertOldDepPathToNewDepPath(depPath), time]));
108233
+ }
108234
+ return newLockfile;
108130
108235
  }
108131
108236
  exports2.convertToInlineSpecifiersFormat = convertToInlineSpecifiersFormat;
108237
+ function convertOldDepPathToNewDepPath(oldDepPath) {
108238
+ const parsedDepPath = dp.parse(oldDepPath);
108239
+ if (!parsedDepPath.name || !parsedDepPath.version)
108240
+ return oldDepPath;
108241
+ let newDepPath = `/${parsedDepPath.name}@${parsedDepPath.version}`;
108242
+ if (parsedDepPath.peersSuffix) {
108243
+ if (parsedDepPath.peersSuffix.startsWith("(")) {
108244
+ newDepPath += parsedDepPath.peersSuffix;
108245
+ } else {
108246
+ newDepPath += `_${parsedDepPath.peersSuffix}`;
108247
+ }
108248
+ }
108249
+ if (parsedDepPath.host) {
108250
+ newDepPath = `${parsedDepPath.host}${newDepPath}`;
108251
+ }
108252
+ return newDepPath;
108253
+ }
108254
+ function convertOldRefToNewRef(oldRef) {
108255
+ if (oldRef.startsWith("link:") || oldRef.startsWith("file:")) {
108256
+ return oldRef;
108257
+ }
108258
+ if (oldRef.includes("/")) {
108259
+ return convertOldDepPathToNewDepPath(oldRef);
108260
+ }
108261
+ return oldRef;
108262
+ }
108132
108263
  function revertFromInlineSpecifiersFormatIfNecessary(lockfile) {
108133
108264
  return isExperimentalInlineSpecifiersFormat(lockfile) ? revertFromInlineSpecifiersFormat(lockfile) : lockfile;
108134
108265
  }
@@ -108140,13 +108271,63 @@ var require_inlineSpecifiersLockfileConverters = __commonJS({
108140
108271
  if (isNaN(originalVersion)) {
108141
108272
  throw new Error(`Unable to revert lockfile from inline specifiers format. Invalid version parsed: ${originalVersionStr}`);
108142
108273
  }
108143
- return {
108274
+ let revertedImporters = mapValues(importers, revertProjectSnapshot);
108275
+ let packages = lockfile.packages;
108276
+ if (originalVersion === 6) {
108277
+ revertedImporters = Object.fromEntries(Object.entries(revertedImporters ?? {}).map(([importerId, pkgSnapshot]) => {
108278
+ const newSnapshot = { ...pkgSnapshot };
108279
+ if (newSnapshot.dependencies != null) {
108280
+ newSnapshot.dependencies = mapValues(newSnapshot.dependencies, convertNewRefToOldRef);
108281
+ }
108282
+ if (newSnapshot.optionalDependencies != null) {
108283
+ newSnapshot.optionalDependencies = mapValues(newSnapshot.optionalDependencies, convertNewRefToOldRef);
108284
+ }
108285
+ if (newSnapshot.devDependencies != null) {
108286
+ newSnapshot.devDependencies = mapValues(newSnapshot.devDependencies, convertNewRefToOldRef);
108287
+ }
108288
+ return [importerId, newSnapshot];
108289
+ }));
108290
+ packages = Object.fromEntries(Object.entries(lockfile.packages ?? {}).map(([depPath, pkgSnapshot]) => {
108291
+ const newSnapshot = { ...pkgSnapshot };
108292
+ if (newSnapshot.dependencies != null) {
108293
+ newSnapshot.dependencies = mapValues(newSnapshot.dependencies, convertNewRefToOldRef);
108294
+ }
108295
+ if (newSnapshot.optionalDependencies != null) {
108296
+ newSnapshot.optionalDependencies = mapValues(newSnapshot.optionalDependencies, convertNewRefToOldRef);
108297
+ }
108298
+ return [convertNewDepPathToOldDepPath(depPath), newSnapshot];
108299
+ }));
108300
+ }
108301
+ const newLockfile = {
108144
108302
  ...rest,
108145
- lockfileVersion: originalVersion,
108146
- importers: mapValues(importers, revertProjectSnapshot)
108303
+ lockfileVersion: lockfileVersion.endsWith(InlineSpecifiersLockfile_1.INLINE_SPECIFIERS_FORMAT_LOCKFILE_VERSION_SUFFIX) ? originalVersion : lockfileVersion,
108304
+ packages,
108305
+ importers: revertedImporters
108147
108306
  };
108307
+ if (originalVersion === 6 && newLockfile.time) {
108308
+ newLockfile.time = Object.fromEntries(Object.entries(newLockfile.time).map(([depPath, time]) => [convertNewDepPathToOldDepPath(depPath), time]));
108309
+ }
108310
+ return newLockfile;
108148
108311
  }
108149
108312
  exports2.revertFromInlineSpecifiersFormat = revertFromInlineSpecifiersFormat;
108313
+ function convertNewDepPathToOldDepPath(oldDepPath) {
108314
+ if (!oldDepPath.includes("@", 2))
108315
+ return oldDepPath;
108316
+ const index = oldDepPath.indexOf("@", oldDepPath.indexOf("/@") + 2);
108317
+ if (oldDepPath.includes("(") && index > oldDepPath.indexOf("("))
108318
+ return oldDepPath;
108319
+ return `${oldDepPath.substring(0, index)}/${oldDepPath.substring(index + 1)}`;
108320
+ }
108321
+ exports2.convertNewDepPathToOldDepPath = convertNewDepPathToOldDepPath;
108322
+ function convertNewRefToOldRef(oldRef) {
108323
+ if (oldRef.startsWith("link:") || oldRef.startsWith("file:")) {
108324
+ return oldRef;
108325
+ }
108326
+ if (oldRef.includes("@")) {
108327
+ return convertNewDepPathToOldDepPath(oldRef);
108328
+ }
108329
+ return oldRef;
108330
+ }
108150
108331
  function convertProjectSnapshotToInlineSpecifiersFormat(projectSnapshot) {
108151
108332
  const { specifiers, ...rest } = projectSnapshot;
108152
108333
  const convertBlock = (block) => block != null ? convertResolvedDependenciesToInlineSpecifiersFormat(block, { specifiers }) : block;
@@ -108280,7 +108461,7 @@ var require_write = __commonJS({
108280
108461
  if (isEmptyLockfile(wantedLockfile)) {
108281
108462
  return (0, rimraf_1.default)(lockfilePath);
108282
108463
  }
108283
- const lockfileToStringify = opts?.useInlineSpecifiersFormat ?? false ? (0, inlineSpecifiersLockfileConverters_1.convertToInlineSpecifiersFormat)(wantedLockfile) : wantedLockfile;
108464
+ const lockfileToStringify = Boolean(opts?.useInlineSpecifiersFormat) || wantedLockfile["lockfileVersion"].toString().startsWith("6.") ? (0, inlineSpecifiersLockfileConverters_1.convertToInlineSpecifiersFormat)(wantedLockfile) : wantedLockfile;
108284
108465
  const yamlDoc = yamlStringify(lockfileToStringify, {
108285
108466
  forceSharedFormat: opts?.forceSharedFormat === true,
108286
108467
  includeEmptySpecifiersField: !opts?.useInlineSpecifiersFormat
@@ -108338,7 +108519,7 @@ var require_write = __commonJS({
108338
108519
  }
108339
108520
  }
108340
108521
  if (lockfileToSave.time) {
108341
- lockfileToSave.time = pruneTime(lockfileToSave.time, lockfile.importers);
108522
+ lockfileToSave.time = (lockfileToSave.lockfileVersion.toString().startsWith("6.") ? pruneTimeInLockfileV6 : pruneTime)(lockfileToSave.time, lockfile.importers);
108342
108523
  }
108343
108524
  if (lockfileToSave.overrides != null && (0, isEmpty_1.default)(lockfileToSave.overrides)) {
108344
108525
  delete lockfileToSave.overrides;
@@ -108362,6 +108543,37 @@ var require_write = __commonJS({
108362
108543
  return lockfileToSave;
108363
108544
  }
108364
108545
  exports2.normalizeLockfile = normalizeLockfile;
108546
+ function pruneTimeInLockfileV6(time, importers) {
108547
+ const rootDepPaths = /* @__PURE__ */ new Set();
108548
+ for (const importer of Object.values(importers)) {
108549
+ for (const depType of types_1.DEPENDENCIES_FIELDS) {
108550
+ for (let [depName, ref] of Object.entries(importer[depType] ?? {})) {
108551
+ if (ref["version"]) {
108552
+ ref = ref["version"];
108553
+ }
108554
+ const suffixStart = ref.indexOf("(");
108555
+ const refWithoutPeerSuffix = suffixStart === -1 ? ref : ref.slice(0, suffixStart);
108556
+ const depPath = refToRelative(refWithoutPeerSuffix, depName);
108557
+ if (!depPath)
108558
+ continue;
108559
+ rootDepPaths.add(depPath);
108560
+ }
108561
+ }
108562
+ }
108563
+ return (0, pickBy_1.default)((_, depPath) => rootDepPaths.has(depPath), time);
108564
+ }
108565
+ function refToRelative(reference, pkgName) {
108566
+ if (reference.startsWith("link:")) {
108567
+ return null;
108568
+ }
108569
+ if (reference.startsWith("file:")) {
108570
+ return reference;
108571
+ }
108572
+ if (!reference.includes("/") || !reference.replace(/(\([^)]+\))+$/, "").includes("/")) {
108573
+ return `/${pkgName}@${reference}`;
108574
+ }
108575
+ return reference;
108576
+ }
108365
108577
  function pruneTime(time, importers) {
108366
108578
  const rootDepPaths = /* @__PURE__ */ new Set();
108367
108579
  for (const importer of Object.values(importers)) {
@@ -108393,7 +108605,7 @@ var require_write = __commonJS({
108393
108605
  return;
108394
108606
  }
108395
108607
  const forceSharedFormat = opts?.forceSharedFormat === true;
108396
- const wantedLockfileToStringify = opts.useInlineSpecifiersFormat ?? false ? (0, inlineSpecifiersLockfileConverters_1.convertToInlineSpecifiersFormat)(opts.wantedLockfile) : opts.wantedLockfile;
108608
+ const wantedLockfileToStringify = Boolean(opts.useInlineSpecifiersFormat) || opts.wantedLockfile.lockfileVersion.toString().startsWith("6.") ? (0, inlineSpecifiersLockfileConverters_1.convertToInlineSpecifiersFormat)(opts.wantedLockfile) : opts.wantedLockfile;
108397
108609
  const normalizeOpts = {
108398
108610
  forceSharedFormat,
108399
108611
  includeEmptySpecifiersField: !opts.useInlineSpecifiersFormat
@@ -108757,13 +108969,17 @@ var require_read = __commonJS({
108757
108969
  if (lockfileFile) {
108758
108970
  const lockfile = (0, inlineSpecifiersLockfileConverters_1.revertFromInlineSpecifiersFormatIfNecessary)(convertFromLockfileFileMutable(lockfileFile));
108759
108971
  const lockfileSemver = (0, comver_to_semver_1.default)((lockfile.lockfileVersion ?? 0).toString());
108760
- if (typeof opts.wantedVersion !== "number" || semver_12.default.major(lockfileSemver) === semver_12.default.major((0, comver_to_semver_1.default)(opts.wantedVersion.toString()))) {
108761
- if (typeof opts.wantedVersion === "number" && semver_12.default.gt(lockfileSemver, (0, comver_to_semver_1.default)(opts.wantedVersion.toString()))) {
108972
+ if (!opts.wantedVersions || opts.wantedVersions.length === 0 || opts.wantedVersions.some((wantedVersion) => {
108973
+ if (semver_12.default.major(lockfileSemver) !== semver_12.default.major((0, comver_to_semver_1.default)(wantedVersion)))
108974
+ return false;
108975
+ if (semver_12.default.gt(lockfileSemver, (0, comver_to_semver_1.default)(wantedVersion))) {
108762
108976
  logger_1.lockfileLogger.warn({
108763
- message: `Your ${constants_1.WANTED_LOCKFILE} was generated by a newer version of pnpm. It is a compatible version but it might get downgraded to version ${opts.wantedVersion}`,
108977
+ message: `Your ${constants_1.WANTED_LOCKFILE} was generated by a newer version of pnpm. It is a compatible version but it might get downgraded to version ${wantedVersion}`,
108764
108978
  prefix
108765
108979
  });
108766
108980
  }
108981
+ return true;
108982
+ })) {
108767
108983
  return { lockfile, hadConflicts };
108768
108984
  }
108769
108985
  }
@@ -114814,7 +115030,13 @@ var require_config2 = __commonJS({
114814
115030
  }
114815
115031
  switch (params[0]) {
114816
115032
  case "set": {
114817
- return (0, configSet_1.configSet)(opts, params[1], params[2] ?? "");
115033
+ let [key, value] = params.slice(1);
115034
+ if (value == null) {
115035
+ const parts = key.split("=");
115036
+ key = parts.shift();
115037
+ value = parts.join("=");
115038
+ }
115039
+ return (0, configSet_1.configSet)(opts, key, value ?? "");
114818
115040
  }
114819
115041
  case "get": {
114820
115042
  return (0, configGet_1.configGet)(opts, params[1]);
@@ -115797,6 +116019,7 @@ var require_connectStoreController = __commonJS({
115797
116019
  close: async () => {
115798
116020
  },
115799
116021
  fetchPackage: fetchPackage.bind(null, remotePrefix, limitedFetch),
116022
+ getFilesIndexFilePath: () => ({ filesIndexFile: "", target: "" }),
115800
116023
  importPackage: async (to, opts) => {
115801
116024
  return limitedFetch(`${remotePrefix}/importPackage`, {
115802
116025
  opts,
@@ -116838,7 +117061,14 @@ var require_packageRequester = __commonJS({
116838
117061
  resolve: opts.resolve,
116839
117062
  storeDir: opts.storeDir
116840
117063
  });
116841
- return Object.assign(requestPackage, { fetchPackageToStore, requestPackage });
117064
+ return Object.assign(requestPackage, {
117065
+ fetchPackageToStore,
117066
+ getFilesIndexFilePath: getFilesIndexFilePath.bind(null, {
117067
+ getFilePathInCafs,
117068
+ storeDir: opts.storeDir
117069
+ }),
117070
+ requestPackage
117071
+ });
116842
117072
  }
116843
117073
  exports2.createPackageRequester = createPackageRequester;
116844
117074
  async function resolveAndFetch(ctx, wantedDependency, options) {
@@ -116919,6 +117149,7 @@ var require_packageRequester = __commonJS({
116919
117149
  const fetchResult = ctx.fetchPackageToStore({
116920
117150
  fetchRawManifest: true,
116921
117151
  force: forceFetch,
117152
+ ignoreScripts: options.ignoreScripts,
116922
117153
  lockfileDir: options.lockfileDir,
116923
117154
  pkg: {
116924
117155
  ...pkg,
@@ -116946,18 +117177,22 @@ var require_packageRequester = __commonJS({
116946
117177
  finishing: fetchResult.finishing
116947
117178
  };
116948
117179
  }
117180
+ function getFilesIndexFilePath(ctx, opts) {
117181
+ const targetRelative = (0, dependency_path_1.depPathToFilename)(opts.pkg.id);
117182
+ const target = path_1.default.join(ctx.storeDir, targetRelative);
117183
+ const filesIndexFile = opts.pkg.resolution["integrity"] ? ctx.getFilePathInCafs(opts.pkg.resolution["integrity"], "index") : path_1.default.join(target, opts.ignoreScripts ? "integrity-not-built.json" : "integrity.json");
117184
+ return { filesIndexFile, target };
117185
+ }
116949
117186
  function fetchToStore(ctx, opts) {
116950
117187
  if (!opts.pkg.name) {
116951
117188
  opts.fetchRawManifest = true;
116952
117189
  }
116953
- const targetRelative = (0, dependency_path_1.depPathToFilename)(opts.pkg.id);
116954
- const target = path_1.default.join(ctx.storeDir, targetRelative);
116955
117190
  if (!ctx.fetchingLocker.has(opts.pkg.id)) {
116956
117191
  const bundledManifest = (0, p_defer_1.default)();
116957
117192
  const files = (0, p_defer_1.default)();
116958
117193
  const finishing = (0, p_defer_1.default)();
116959
- const filesIndexFile = opts.pkg.resolution["integrity"] ? ctx.getFilePathInCafs(opts.pkg.resolution["integrity"], "index") : path_1.default.join(target, "integrity.json");
116960
- doFetchToStore(filesIndexFile, bundledManifest, files, finishing);
117194
+ const { filesIndexFile, target } = getFilesIndexFilePath(ctx, opts);
117195
+ doFetchToStore(filesIndexFile, bundledManifest, files, finishing, target);
116961
117196
  if (opts.fetchRawManifest) {
116962
117197
  ctx.fetchingLocker.set(opts.pkg.id, {
116963
117198
  bundledManifest: removeKeyOnFail(bundledManifest.promise),
@@ -117022,7 +117257,7 @@ var require_packageRequester = __commonJS({
117022
117257
  throw err;
117023
117258
  }
117024
117259
  }
117025
- async function doFetchToStore(filesIndexFile, bundledManifest, files, finishing) {
117260
+ async function doFetchToStore(filesIndexFile, bundledManifest, files, finishing, target) {
117026
117261
  try {
117027
117262
  const isLocalTarballDep = opts.pkg.id.startsWith("file:");
117028
117263
  const isLocalPkg = opts.pkg.resolution.type === "directory";
@@ -117288,6 +117523,7 @@ var require_storeController = __commonJS({
117288
117523
  close: async () => {
117289
117524
  },
117290
117525
  fetchPackage: packageRequester.fetchPackageToStore,
117526
+ getFilesIndexFilePath: packageRequester.getFilesIndexFilePath,
117291
117527
  importPackage: cafs.importPackage,
117292
117528
  prune: prune_1.prune.bind(null, { storeDir, cacheDir: initOpts.cacheDir }),
117293
117529
  requestPackage: packageRequester.requestPackage,
@@ -117415,6 +117651,7 @@ var require_createNewStoreController = __commonJS({
117415
117651
  filterMetadata: fullMetadata,
117416
117652
  httpProxy: opts.httpProxy,
117417
117653
  httpsProxy: opts.httpsProxy,
117654
+ ignoreScripts: opts.ignoreScripts,
117418
117655
  key: opts.key,
117419
117656
  localAddress: opts.localAddress,
117420
117657
  noProxy: opts.noProxy,
@@ -118367,9 +118604,10 @@ var require_readLockfiles = __commonJS({
118367
118604
  var clone_1 = __importDefault(require_clone3());
118368
118605
  var equals_1 = __importDefault(require_equals2());
118369
118606
  async function readLockfiles(opts) {
118607
+ const wantedLockfileVersion = opts.useLockfileV6 ? constants_1.LOCKFILE_VERSION_V6 : constants_1.LOCKFILE_VERSION;
118370
118608
  const lockfileOpts = {
118371
118609
  ignoreIncompatible: opts.force || ci_info_1.isCI,
118372
- wantedVersion: constants_1.LOCKFILE_VERSION,
118610
+ wantedVersions: [constants_1.LOCKFILE_VERSION.toString(), constants_1.LOCKFILE_VERSION_V6],
118373
118611
  useGitBranchLockfile: opts.useGitBranchLockfile,
118374
118612
  mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles
118375
118613
  };
@@ -118414,7 +118652,7 @@ var require_readLockfiles = __commonJS({
118414
118652
  }
118415
118653
  })());
118416
118654
  const files = await Promise.all(fileReads);
118417
- const sopts = { lockfileVersion: constants_1.LOCKFILE_VERSION };
118655
+ const sopts = { lockfileVersion: wantedLockfileVersion };
118418
118656
  const importerIds = opts.projects.map((importer) => importer.id);
118419
118657
  const currentLockfile = files[1] ?? (0, lockfile_file_1.createLockfileObject)(importerIds, sopts);
118420
118658
  for (const importerId of importerIds) {
@@ -118553,7 +118791,8 @@ var require_lib101 = __commonJS({
118553
118791
  useLockfile: opts.useLockfile,
118554
118792
  useGitBranchLockfile: opts.useGitBranchLockfile,
118555
118793
  mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles,
118556
- virtualStoreDir
118794
+ virtualStoreDir,
118795
+ useLockfileV6: opts.useLockfileV6
118557
118796
  })
118558
118797
  };
118559
118798
  core_loggers_1.contextLogger.debug({
@@ -118725,7 +118964,8 @@ var require_lib101 = __commonJS({
118725
118964
  useLockfile: opts.useLockfile,
118726
118965
  useGitBranchLockfile: opts.useGitBranchLockfile,
118727
118966
  mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles,
118728
- virtualStoreDir
118967
+ virtualStoreDir,
118968
+ useLockfileV6: opts.useLockfileV6
118729
118969
  })
118730
118970
  };
118731
118971
  core_loggers_1.packageManifestLogger.debug({
@@ -128310,6 +128550,7 @@ var require_lockfileToDepGraph = __commonJS({
128310
128550
  fetchResponse = opts.storeController.fetchPackage({
128311
128551
  force: false,
128312
128552
  lockfileDir: opts.lockfileDir,
128553
+ ignoreScripts: opts.ignoreScripts,
128313
128554
  pkg: {
128314
128555
  id: packageId,
128315
128556
  resolution
@@ -169230,17 +169471,23 @@ var require_lockfileToHoistedDepGraph = __commonJS({
169230
169471
  const resolution = (0, lockfile_utils_1.pkgSnapshotToResolution)(depPath, pkgSnapshot, opts.registries);
169231
169472
  let fetchResponse;
169232
169473
  const skipFetch = opts.currentHoistedLocations?.[depPath]?.includes(depLocation);
169474
+ const pkgResolution = {
169475
+ id: packageId,
169476
+ resolution
169477
+ };
169233
169478
  if (skipFetch) {
169234
- fetchResponse = {};
169479
+ const { filesIndexFile } = opts.storeController.getFilesIndexFilePath({
169480
+ ignoreScripts: opts.ignoreScripts,
169481
+ pkg: pkgResolution
169482
+ });
169483
+ fetchResponse = { filesIndexFile };
169235
169484
  } else {
169236
169485
  try {
169237
169486
  fetchResponse = opts.storeController.fetchPackage({
169238
169487
  force: false,
169239
169488
  lockfileDir: opts.lockfileDir,
169240
- pkg: {
169241
- id: packageId,
169242
- resolution
169243
- },
169489
+ ignoreScripts: opts.ignoreScripts,
169490
+ pkg: pkgResolution,
169244
169491
  expectedPkg: {
169245
169492
  name: pkgName,
169246
169493
  version: pkgVersion
@@ -170233,7 +170480,7 @@ var require_depPathToRef = __commonJS({
170233
170480
  }
170234
170481
  if (depPath[0] === "/" && opts.alias === opts.realName) {
170235
170482
  const ref = depPath.replace(`/${opts.realName}/`, "");
170236
- if (!ref.includes("/"))
170483
+ if (!ref.includes("/") || !ref.replace(/(\([^)]+\))+$/, "").includes("/"))
170237
170484
  return ref;
170238
170485
  }
170239
170486
  return depPath;
@@ -173428,6 +173675,7 @@ var require_resolveDependencies = __commonJS({
173428
173675
  } : void 0,
173429
173676
  expectedPkg: currentPkg,
173430
173677
  defaultTag: ctx.defaultTag,
173678
+ ignoreScripts: ctx.ignoreScripts,
173431
173679
  publishedBy: options.publishedBy,
173432
173680
  pickLowestVersion: options.pickLowestVersion,
173433
173681
  downloadPriority: -options.currentDepth,
@@ -173793,6 +174041,7 @@ var require_resolveDependencyTree = __commonJS({
173793
174041
  engineStrict: opts.engineStrict,
173794
174042
  force: opts.force,
173795
174043
  forceFullResolution: opts.forceFullResolution,
174044
+ ignoreScripts: opts.ignoreScripts,
173796
174045
  linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? -1,
173797
174046
  lockfileDir: opts.lockfileDir,
173798
174047
  nodeVersion: opts.nodeVersion,
@@ -182630,7 +182879,8 @@ var require_resolvePeers = __commonJS({
182630
182879
  peerDependencyIssues,
182631
182880
  purePkgs: /* @__PURE__ */ new Set(),
182632
182881
  rootDir,
182633
- virtualStoreDir: opts.virtualStoreDir
182882
+ virtualStoreDir: opts.virtualStoreDir,
182883
+ useLockfileV6: opts.useLockfileV6
182634
182884
  });
182635
182885
  if (!(0, isEmpty_1.default)(peerDependencyIssues.bad) || !(0, isEmpty_1.default)(peerDependencyIssues.missing)) {
182636
182886
  peerDependencyIssuesByProjects[id] = {
@@ -182732,7 +182982,7 @@ var require_resolvePeers = __commonJS({
182732
182982
  if ((0, isEmpty_1.default)(allResolvedPeers)) {
182733
182983
  depPath = resolvedPackage.depPath;
182734
182984
  } else {
182735
- const peersFolderSuffix = (0, dependency_path_1.createPeersFolderSuffix)(Object.entries(allResolvedPeers).map(([alias, nodeId2]) => {
182985
+ const peersFolderSuffix = (ctx.useLockfileV6 ? dependency_path_1.createPeersFolderSuffixNewFormat : dependency_path_1.createPeersFolderSuffix)(Object.entries(allResolvedPeers).map(([alias, nodeId2]) => {
182736
182986
  if (nodeId2.startsWith("link:")) {
182737
182987
  const linkedDir = nodeId2.slice(5);
182738
182988
  return {
@@ -183703,7 +183953,8 @@ var require_lib128 = __commonJS({
183703
183953
  lockfileDir: opts.lockfileDir,
183704
183954
  projects: projectsToLink,
183705
183955
  virtualStoreDir: opts.virtualStoreDir,
183706
- resolvePeersFromWorkspaceRoot: Boolean(opts.resolvePeersFromWorkspaceRoot)
183956
+ resolvePeersFromWorkspaceRoot: Boolean(opts.resolvePeersFromWorkspaceRoot),
183957
+ useLockfileV6: Boolean(opts.useLockfileV6)
183707
183958
  });
183708
183959
  for (const { id, manifest } of projectsToLink) {
183709
183960
  for (const [alias, depPath] of Object.entries(dependenciesByProjectId[id])) {
@@ -185554,7 +185805,8 @@ var require_extendInstallOptions = __commonJS({
185554
185805
  modulesCacheMaxAge: 7 * 24 * 60,
185555
185806
  resolveSymlinksInInjectedDirs: false,
185556
185807
  dedupeDirectDeps: false,
185557
- resolvePeersFromWorkspaceRoot: false
185808
+ resolvePeersFromWorkspaceRoot: false,
185809
+ useLockfileV6: false
185558
185810
  };
185559
185811
  };
185560
185812
  async function extendOptions(opts) {
@@ -186157,7 +186409,7 @@ var require_install = __commonJS({
186157
186409
  onlyBuiltDependencies: opts.onlyBuiltDependencies,
186158
186410
  packageExtensionsChecksum,
186159
186411
  patchedDependencies
186160
- }) || opts.fixLockfile;
186412
+ }) || opts.fixLockfile || opts.useLockfileV6 && !ctx.wantedLockfile.lockfileVersion.toString().startsWith("6.");
186161
186413
  if (needsFullResolution) {
186162
186414
  ctx.wantedLockfile.overrides = opts.overrides;
186163
186415
  ctx.wantedLockfile.neverBuiltDependencies = opts.neverBuiltDependencies;
@@ -186509,6 +186761,7 @@ var require_install = __commonJS({
186509
186761
  engineStrict: opts.engineStrict,
186510
186762
  force: opts.force,
186511
186763
  forceFullResolution,
186764
+ ignoreScripts: opts.ignoreScripts,
186512
186765
  hooks: {
186513
186766
  readPackage: opts.readPackageHook
186514
186767
  },
@@ -186530,7 +186783,8 @@ var require_install = __commonJS({
186530
186783
  workspacePackages: opts.workspacePackages,
186531
186784
  patchedDependencies: opts.patchedDependencies,
186532
186785
  lockfileIncludeTarballUrl: opts.lockfileIncludeTarballUrl,
186533
- resolvePeersFromWorkspaceRoot: opts.resolvePeersFromWorkspaceRoot
186786
+ resolvePeersFromWorkspaceRoot: opts.resolvePeersFromWorkspaceRoot,
186787
+ useLockfileV6: opts.useLockfileV6
186534
186788
  });
186535
186789
  if (!opts.include.optionalDependencies || !opts.include.devDependencies || !opts.include.dependencies) {
186536
186790
  linkedDependenciesByProjectId = (0, map_1.default)((linkedDeps) => linkedDeps.filter((linkedDep) => !(linkedDep.dev && !opts.include.devDependencies || linkedDep.optional && !opts.include.optionalDependencies || !linkedDep.dev && !linkedDep.optional && !opts.include.dependencies)), linkedDependenciesByProjectId ?? {});
@@ -186551,7 +186805,11 @@ var require_install = __commonJS({
186551
186805
  });
186552
186806
  newLockfile = opts.hooks?.afterAllResolved != null ? await (0, pipeWith_1.default)(async (f, res) => f(await res), opts.hooks.afterAllResolved)(newLockfile) : newLockfile;
186553
186807
  if (opts.updateLockfileMinorVersion) {
186554
- newLockfile.lockfileVersion = constants_1.LOCKFILE_VERSION;
186808
+ if (opts.useLockfileV6 || newLockfile.lockfileVersion.toString().startsWith("6.")) {
186809
+ newLockfile.lockfileVersion = constants_1.LOCKFILE_VERSION_V6;
186810
+ } else {
186811
+ newLockfile.lockfileVersion = constants_1.LOCKFILE_VERSION;
186812
+ }
186555
186813
  }
186556
186814
  const depsStateCache = {};
186557
186815
  const lockfileOpts = {
@@ -188254,6 +188512,7 @@ var require_install2 = __commonJS({
188254
188512
  "only",
188255
188513
  "optional",
188256
188514
  "unsafe-perm",
188515
+ "use-lockfile-v6",
188257
188516
  "use-running-store-server",
188258
188517
  "use-store-server",
188259
188518
  "verify-store-integrity",
@@ -212161,9 +212420,15 @@ var require_makeEnv = __commonJS({
212161
212420
  };
212162
212421
  Object.defineProperty(exports2, "__esModule", { value: true });
212163
212422
  exports2.makeEnv = void 0;
212423
+ var error_1 = require_lib8();
212164
212424
  var path_1 = __importDefault(require("path"));
212165
212425
  var path_name_1 = __importDefault(require_path_name());
212166
212426
  function makeEnv(opts) {
212427
+ for (const prependPath of opts.prependPaths) {
212428
+ if (prependPath.includes(path_1.default.delimiter)) {
212429
+ throw new error_1.PnpmError("BAD_PATH_DIR", `Cannot add ${prependPath} to PATH because it contains the path delimiter character (${path_1.default.delimiter})`);
212430
+ }
212431
+ }
212167
212432
  return {
212168
212433
  ...process.env,
212169
212434
  ...opts.extraEnv,
@@ -212839,7 +213104,6 @@ var require_exec = __commonJS({
212839
213104
  };
212840
213105
  Object.defineProperty(exports2, "__esModule", { value: true });
212841
213106
  exports2.handler = exports2.getResumedPackageChunks = exports2.help = exports2.cliOptionsTypes = exports2.rcOptionsTypes = exports2.commandNames = exports2.shorthands = void 0;
212842
- var path_1 = __importDefault(require("path"));
212843
213107
  var cli_utils_1 = require_lib27();
212844
213108
  var config_1 = require_lib21();
212845
213109
  var lifecycle_1 = require_lib57();
@@ -212969,7 +213233,7 @@ var require_exec = __commonJS({
212969
213233
  PNPM_PACKAGE_NAME: opts.selectedProjectsGraph[prefix]?.package.manifest.name
212970
213234
  },
212971
213235
  prependPaths: [
212972
- path_1.default.join(prefix, "node_modules/.bin"),
213236
+ "./node_modules/.bin",
212973
213237
  ...opts.extraBinPaths
212974
213238
  ],
212975
213239
  userAgent: opts.userAgent
@@ -212995,7 +213259,9 @@ var require_exec = __commonJS({
212995
213259
  });
212996
213260
  return;
212997
213261
  }
212998
- err["code"] = "ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL";
213262
+ if (!err["code"]?.startsWith("ERR_PNPM_")) {
213263
+ err["code"] = "ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL";
213264
+ }
212999
213265
  err["prefix"] = prefix;
213000
213266
  throw err;
213001
213267
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pnpm",
3
3
  "description": "Fast, disk space efficient package manager",
4
- "version": "7.23.0",
4
+ "version": "7.24.0",
5
5
  "bin": {
6
6
  "pnpm": "bin/pnpm.cjs",
7
7
  "pnpx": "bin/pnpx.cjs"