@vltpkg/cli-js 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/{access-M5BOAKLX.js → access-KMBBQIIT.js} +2 -2
  2. package/{bugs-QZ5NURDC.js → bugs-CABZX76X.js} +5 -5
  3. package/{build-CEAMZG7H.js → build-WNHKYA4E.js} +3 -3
  4. package/{cache-ILCET6EY.js → cache-KKT4GIYD.js} +2 -2
  5. package/{chunk-NAVFU65Z.js → chunk-3IDIPSH7.js} +1 -1
  6. package/chunk-7JK53T6G.js +75 -0
  7. package/{chunk-4WQ76RJD.js → chunk-DCFLXO2M.js} +1 -1
  8. package/{chunk-4QYSZZZQ.js → chunk-GA4LA6B2.js} +2 -2
  9. package/{chunk-4FHGRT4J.js → chunk-GZWJAGBL.js} +1 -1
  10. package/{chunk-E53Z7AF6.js → chunk-HCMAX6Q5.js} +1 -1
  11. package/{chunk-EJFGJ543.js → chunk-LY5FNWRY.js} +3 -3
  12. package/{chunk-ZMRJRQDK.js → chunk-MOL2DUEQ.js} +14 -11
  13. package/{chunk-USLE2NXK.js → chunk-QBXGMTDE.js} +1 -1
  14. package/{chunk-HBB2ECAT.js → chunk-ROCFQPP2.js} +1 -1
  15. package/{chunk-O63K3ZP6.js → chunk-SH24EMXO.js} +24 -11
  16. package/{chunk-2UW4UIVL.js → chunk-TJBBYDUN.js} +2 -2
  17. package/{chunk-3NWCWTIU.js → chunk-YU2W5UPG.js} +1 -1
  18. package/{chunk-QX6KMBTX.js → chunk-ZBJRZXSU.js} +2 -2
  19. package/{chunk-IIXKXSLE.js → chunk-ZRRNOLEG.js} +123 -81
  20. package/{ci-4AI6XHRE.js → ci-BGVGC5RF.js} +4 -4
  21. package/cli-package.json +1 -1
  22. package/{config-PJVA5HZQ.js → config-AWX2VEKL.js} +2 -2
  23. package/{config-UHPA5FHX.js → config-FIKZ4VWG.js} +2 -2
  24. package/{create-NQNFYWOC.js → create-CHTG7KO3.js} +7 -7
  25. package/{deprecate-35D4AZFD.js → deprecate-W7KQ62HF.js} +3 -3
  26. package/{dist-tag-W3AJECYB.js → dist-tag-66CC6HT7.js} +2 -2
  27. package/{docs-OFRPTPOG.js → docs-HW4U5TGD.js} +5 -5
  28. package/{exec-UTWGYF3B.js → exec-BVVNAGFI.js} +7 -7
  29. package/{exec-cache-VLPJMK7E.js → exec-cache-L3ONPM5C.js} +5 -5
  30. package/{exec-local-JKBHBKJZ.js → exec-local-NR3RYQDQ.js} +5 -5
  31. package/{help-YRQQVODA.js → help-5YL6SUAN.js} +1 -1
  32. package/{init-2QZ5TITF.js → init-RI2WVCGL.js} +4 -4
  33. package/{install-QBVAEHTO.js → install-OWAI4EOW.js} +8 -8
  34. package/{list-P4UQWDX7.js → list-4ZFX7ANG.js} +6 -6
  35. package/{login-6KPWMFG4.js → login-6TL3EE6Q.js} +4 -4
  36. package/{logout-KCYMUY6H.js → logout-VQWHVHBE.js} +2 -2
  37. package/{pack-WQLFLOE2.js → pack-Q5IRRAMU.js} +4 -4
  38. package/package.json +1 -1
  39. package/{ping-GYFPW4F5.js → ping-2WV3V7GB.js} +2 -2
  40. package/{pkg-KVQ6QMQH.js → pkg-RXB6BRS5.js} +5 -5
  41. package/{profile-APD6X27T.js → profile-GNGWS5H2.js} +2 -2
  42. package/{publish-EYKECRD3.js → publish-PI74W4GH.js} +5 -5
  43. package/{query-3N5D2ZZW.js → query-NESDWXGE.js} +6 -6
  44. package/registry-client-src-revalidate.js +24 -11
  45. package/{repo-6B5W7Q2C.js → repo-PPBN3SKP.js} +5 -5
  46. package/{reporter-ZEDO2YIG.js → reporter-XBHCUW7W.js} +3 -3
  47. package/{run-INZMUBF2.js → run-7GTWIFMV.js} +5 -5
  48. package/{run-exec-RVYS73II.js → run-exec-VLSH5SOB.js} +5 -5
  49. package/security-archive-src-update-expired.js +1 -1
  50. package/{setup-Q7JD6XJV.js → setup-6O7RFGU2.js} +4 -4
  51. package/{src-527GIT4Y.js → src-6E7KCC7J.js} +3 -3
  52. package/{src-3UQFZRM3.js → src-U4MCZFJT.js} +2 -2
  53. package/{token-5HFD3COV.js → token-NZ4HODXE.js} +2 -2
  54. package/{uninstall-4R7Z2FD7.js → uninstall-KBZ6PJBG.js} +5 -5
  55. package/{unpublish-RBRQE53F.js → unpublish-JBWSIBRX.js} +2 -2
  56. package/{update-7LXJAEJN.js → update-X4EC6MPP.js} +7 -7
  57. package/{version-UHRS2KJX.js → version-QEHPAFAE.js} +4 -4
  58. package/{view-BNQKJF5L.js → view-WGGZTYAT.js} +3 -3
  59. package/vlr.js +1 -1
  60. package/vlrx.js +1 -1
  61. package/vlt.js +1 -1
  62. package/vlx.js +1 -1
  63. package/vlxl.js +1 -1
  64. package/{whoami-GYAT6NWM.js → whoami-RYNXOULV.js} +2 -2
  65. package/chunk-TGOC27YZ.js +0 -75
@@ -13,7 +13,7 @@ import {
13
13
  AbortError,
14
14
  SecurityArchive,
15
15
  pRetry
16
- } from "./chunk-4WQ76RJD.js";
16
+ } from "./chunk-DCFLXO2M.js";
17
17
  import {
18
18
  Monorepo,
19
19
  PackageJson,
@@ -46,7 +46,7 @@ import {
46
46
  import {
47
47
  userAgent,
48
48
  userAgentHeaders
49
- } from "./chunk-3NWCWTIU.js";
49
+ } from "./chunk-YU2W5UPG.js";
50
50
  import {
51
51
  graphStep,
52
52
  promiseSpawn
@@ -204,12 +204,12 @@ var require_isexe = __commonJS({
204
204
  if (typeof Promise !== "function") {
205
205
  throw new TypeError("callback not provided");
206
206
  }
207
- return new Promise(function(resolve13, reject) {
207
+ return new Promise(function(resolve14, reject) {
208
208
  isexe(path2, options || {}, function(er, is2) {
209
209
  if (er) {
210
210
  reject(er);
211
211
  } else {
212
- resolve13(is2);
212
+ resolve14(is2);
213
213
  }
214
214
  });
215
215
  });
@@ -275,27 +275,27 @@ var require_which = __commonJS({
275
275
  opt = {};
276
276
  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
277
277
  const found = [];
278
- const step = (i) => new Promise((resolve13, reject) => {
278
+ const step = (i) => new Promise((resolve14, reject) => {
279
279
  if (i === pathEnv.length)
280
- return opt.all && found.length ? resolve13(found) : reject(getNotFoundError(cmd));
280
+ return opt.all && found.length ? resolve14(found) : reject(getNotFoundError(cmd));
281
281
  const ppRaw = pathEnv[i];
282
282
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
283
283
  const pCmd = path2.join(pathPart, cmd);
284
284
  const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
285
- resolve13(subStep(p, i, 0));
285
+ resolve14(subStep(p, i, 0));
286
286
  });
287
- const subStep = (p, i, ii) => new Promise((resolve13, reject) => {
287
+ const subStep = (p, i, ii) => new Promise((resolve14, reject) => {
288
288
  if (ii === pathExt.length)
289
- return resolve13(step(i + 1));
289
+ return resolve14(step(i + 1));
290
290
  const ext = pathExt[ii];
291
291
  isexe(p + ext, { pathExt: pathExtExe }, (er, is2) => {
292
292
  if (!er && is2) {
293
293
  if (opt.all)
294
294
  found.push(p + ext);
295
295
  else
296
- return resolve13(p + ext);
296
+ return resolve14(p + ext);
297
297
  }
298
- return resolve13(subStep(p, i, ii + 1));
298
+ return resolve14(subStep(p, i, ii + 1));
299
299
  });
300
300
  });
301
301
  return cb ? step(0).then((res) => cb(null, res), cb) : step(0);
@@ -3984,7 +3984,7 @@ var require_processor = __commonJS({
3984
3984
  if (options === void 0) {
3985
3985
  options = {};
3986
3986
  }
3987
- return new Promise(function(resolve13, reject) {
3987
+ return new Promise(function(resolve14, reject) {
3988
3988
  try {
3989
3989
  var root_1 = _this._root(rule, options);
3990
3990
  Promise.resolve(_this.func(root_1)).then(function(transform) {
@@ -3994,7 +3994,7 @@ var require_processor = __commonJS({
3994
3994
  rule.selector = string;
3995
3995
  }
3996
3996
  return { transform, root: root_1, string };
3997
- }).then(resolve13, reject);
3997
+ }).then(resolve14, reject);
3998
3998
  } catch (e) {
3999
3999
  reject(e);
4000
4000
  return;
@@ -4481,6 +4481,7 @@ var Node = class _Node {
4481
4481
  }
4482
4482
  #options;
4483
4483
  #location;
4484
+ #resolvedLoc;
4484
4485
  #rawManifest;
4485
4486
  #optional = false;
4486
4487
  /**
@@ -4699,9 +4700,16 @@ var Node = class _Node {
4699
4700
  }
4700
4701
  /**
4701
4702
  * The resolved location of the node in the file system.
4703
+ * Memoized per location and scurry cwd.
4702
4704
  */
4703
4705
  resolvedLocation(scurry) {
4704
- return scurry.cwd.resolve(this.location).fullpath();
4706
+ const loc = this.location;
4707
+ const { cwd } = scurry;
4708
+ const m = this.#resolvedLoc;
4709
+ if (m?.loc === loc && m.cwd === cwd) return m.path;
4710
+ const path2 = cwd.resolve(loc).fullpath();
4711
+ this.#resolvedLoc = { loc, cwd, path: path2 };
4712
+ return path2;
4705
4713
  }
4706
4714
  /**
4707
4715
  * The location of the node_modules folder where this node's edgesOut
@@ -4713,7 +4721,11 @@ var Node = class _Node {
4713
4721
  */
4714
4722
  nodeModules(scurry) {
4715
4723
  const loc = this.resolvedLocation(scurry);
4716
- return this.inVltStore() ? loc.substring(0, loc.length - this.name.length - 1) : scurry.resolve(loc, "node_modules");
4724
+ if (this.inVltStore()) {
4725
+ return loc.substring(0, loc.length - this.name.length - 1);
4726
+ }
4727
+ const { sep: sep2 } = scurry.cwd;
4728
+ return (loc.endsWith(sep2) ? loc : loc + sep2) + "node_modules";
4717
4729
  }
4718
4730
  constructor(options, id2, manifest, spec2, name, version) {
4719
4731
  this.#options = options;
@@ -8944,8 +8956,8 @@ var Query = class {
8944
8956
  specificity
8945
8957
  } = await walk({
8946
8958
  cancellable: async () => {
8947
- await new Promise((resolve13) => {
8948
- setTimeout(resolve13, 0);
8959
+ await new Promise((resolve14) => {
8960
+ setTimeout(resolve14, 0);
8949
8961
  });
8950
8962
  signal.throwIfAborted();
8951
8963
  },
@@ -10586,10 +10598,36 @@ var del = (diff2, node) => {
10586
10598
  diff2.nodes.add.delete(node);
10587
10599
  diff2.nodes.delete.add(node);
10588
10600
  };
10601
+ var isUnsupported = (node) => !!node.manifest?.deprecated || !platformCheck(
10602
+ node.platform ?? node.manifest ?? {},
10603
+ process.version,
10604
+ process.platform,
10605
+ process.arch
10606
+ );
10607
+ var pruneUnsupportedOptional = (diff2) => {
10608
+ let pruned = false;
10609
+ for (const node of diff2.nodes.add) {
10610
+ if (node.inVltStore() && !node.extracted && node.isOptional() && isUnsupported(node)) {
10611
+ del(diff2, node);
10612
+ pruned = true;
10613
+ }
10614
+ }
10615
+ if (!pruned) return;
10616
+ for (const node of diff2.to.gc().values()) {
10617
+ diff2.nodes.add.delete(node);
10618
+ diff2.nodes.delete.add(node);
10619
+ }
10620
+ for (const edge of diff2.edges.add) {
10621
+ if (diff2.to.nodes.get(edge.from.id) !== edge.from) {
10622
+ diff2.edges.add.delete(edge);
10623
+ }
10624
+ }
10625
+ };
10589
10626
 
10590
10627
  // ../../src/graph/src/reify/bin-chmod.ts
10591
10628
  import { statSync as statSync3 } from "node:fs";
10592
10629
  import { chmod as chmod2 } from "node:fs/promises";
10630
+ import { join as join2 } from "node:path";
10593
10631
  var binChmodAll = async (nodes, scurry) => {
10594
10632
  const chmods = [];
10595
10633
  for (const node of nodes) {
@@ -10601,9 +10639,7 @@ var binChmod = async (node, scurry) => {
10601
10639
  const chmods = [];
10602
10640
  if (!node.bins) return;
10603
10641
  for (const bin of Object.values(node.bins)) {
10604
- const path2 = scurry.resolve(
10605
- `${node.resolvedLocation(scurry)}/${bin}`
10606
- );
10642
+ const path2 = join2(node.resolvedLocation(scurry), bin);
10607
10643
  let mode;
10608
10644
  try {
10609
10645
  mode = statSync3(path2).mode;
@@ -10618,10 +10654,10 @@ var binChmod = async (node, scurry) => {
10618
10654
 
10619
10655
  // ../../src/graph/src/reify/binding-gyp.ts
10620
10656
  import { lstatSync } from "node:fs";
10621
- import { join as join2 } from "node:path";
10657
+ import { join as join3 } from "node:path";
10622
10658
  var onDisk = (dir) => {
10623
10659
  try {
10624
- return !!lstatSync(join2(dir, "binding.gyp"), {
10660
+ return !!lstatSync(join3(dir, "binding.gyp"), {
10625
10661
  throwIfNoEntry: false
10626
10662
  })?.isFile();
10627
10663
  } catch {
@@ -12611,6 +12647,7 @@ var isPathSecurityError = (er) => {
12611
12647
  };
12612
12648
 
12613
12649
  // ../../src/graph/src/reify/extract-node.ts
12650
+ import { lstatSync as lstatSync2 } from "node:fs";
12614
12651
  var getOptionalFailedNodeRemover = (node, diff2) => {
12615
12652
  return diff2 ? optionalFail(diff2, node) : node.isOptional() ? () => removeOptionalSubgraph(node.graph, node) : void 0;
12616
12653
  };
@@ -12625,14 +12662,7 @@ var extractNode = async (node, scurry, remover, options, packageInfo, diff2) =>
12625
12662
  diff2
12626
12663
  );
12627
12664
  const { integrity, resolved } = node;
12628
- const platformData = node.platform ?? manifest;
12629
- if (removeOptionalFailedNode && (manifest.deprecated || !platformCheck(
12630
- platformData,
12631
- process.version,
12632
- process.platform,
12633
- process.arch
12634
- // libc is auto-detected by platformCheck when not provided
12635
- ))) {
12665
+ if (removeOptionalFailedNode && isUnsupported(node)) {
12636
12666
  removeOptionalFailedNode();
12637
12667
  return {
12638
12668
  success: false,
@@ -12662,7 +12692,9 @@ var extractNode = async (node, scurry, remover, options, packageInfo, diff2) =>
12662
12692
  return { success: true, node };
12663
12693
  };
12664
12694
  try {
12665
- await remover.rm(target);
12695
+ if (lstatSync2(target, { throwIfNoEntry: false })) {
12696
+ await remover.rm(target);
12697
+ }
12666
12698
  if (removeOptionalFailedNode) {
12667
12699
  try {
12668
12700
  return extracted(
@@ -13542,7 +13574,10 @@ var fetchManifestsForDeps = async (packageInfo, graph, fromNode, deps, scurry, o
13542
13574
  // `keepVersion` marks a fork that only differs by an optional peer
13543
13575
  // link, so the copy keeps the version it forked from instead of
13544
13576
  // re-resolving the range to the newest satisfying release
13545
- existingNode?.manifest && (existingNode.detached || peerCompatResult.keepVersion) ? Promise.resolve(existingNode.manifest) : packageInfo.manifest(spec2, { from }).then((manifest) => manifest).catch((er) => {
13577
+ existingNode?.manifest && (existingNode.detached || peerCompatResult.keepVersion) ? Promise.resolve(existingNode.manifest) : packageInfo.manifest(
13578
+ spec2,
13579
+ isExplicit ? { from } : { from, backgroundRevalidate: true }
13580
+ ).then((manifest) => manifest).catch((er) => {
13546
13581
  if (isPathSecurityError(er)) throw er;
13547
13582
  if (!isExplicit && (edgeOptional || fromNode.optional)) {
13548
13583
  return void 0;
@@ -14121,7 +14156,7 @@ var callLimit = (queue, { limit: limit2 = defLimit, rejectLate } = {}) => new Pr
14121
14156
  rej(rejection);
14122
14157
  };
14123
14158
  let resolved = false;
14124
- const resolve13 = () => {
14159
+ const resolve14 = () => {
14125
14160
  if (resolved || active > 0)
14126
14161
  return;
14127
14162
  resolved = true;
@@ -14130,7 +14165,7 @@ var callLimit = (queue, { limit: limit2 = defLimit, rejectLate } = {}) => new Pr
14130
14165
  const run2 = () => {
14131
14166
  const c = current++;
14132
14167
  if (c >= queue.length)
14133
- return rejected ? reject() : resolve13();
14168
+ return rejected ? reject() : resolve14();
14134
14169
  active++;
14135
14170
  const step = queue[c];
14136
14171
  if (!step)
@@ -14398,21 +14433,35 @@ var chmodShim = async (to) => await Promise.all([
14398
14433
  ]);
14399
14434
 
14400
14435
  // ../../src/graph/src/reify/add-edge.ts
14401
- import { mkdir as mkdir3, symlink } from "node:fs/promises";
14402
- import { dirname as dirname6, relative as relative3, resolve as resolve9 } from "node:path";
14436
+ import { symlinkSync as symlinkSync2 } from "node:fs";
14437
+ import { dirname as dirname7, relative as relative3, resolve as resolve9 } from "node:path";
14438
+
14439
+ // ../../src/graph/src/reify/symlink-sync.ts
14440
+ import { mkdirSync as mkdirSync2, symlinkSync } from "node:fs";
14441
+ import { dirname as dirname6 } from "node:path";
14442
+ var symlinkSyncMkdirp = (target, link2, type2) => {
14443
+ try {
14444
+ symlinkSync(target, link2, type2);
14445
+ } catch (er) {
14446
+ if (er.code !== "ENOENT") throw er;
14447
+ mkdirSync2(dirname6(link2), { recursive: true });
14448
+ symlinkSync(target, link2, type2);
14449
+ }
14450
+ };
14451
+
14452
+ // ../../src/graph/src/reify/add-edge.ts
14403
14453
  var clobberSymlink = async (target, link2, remover, type2 = "file") => {
14404
14454
  const symlinkType = type2 === "dir" && process.platform === "win32" ? "junction" : type2;
14405
- const symlinkTarget = symlinkType === "junction" ? resolve9(dirname6(link2), target) : target;
14406
- await mkdir3(dirname6(link2), { recursive: true });
14455
+ const symlinkTarget = symlinkType === "junction" ? resolve9(dirname7(link2), target) : target;
14407
14456
  try {
14408
- await symlink(symlinkTarget, link2, symlinkType);
14457
+ symlinkSyncMkdirp(symlinkTarget, link2, symlinkType);
14409
14458
  } catch (er) {
14410
14459
  if (er.code !== "EEXIST") {
14411
14460
  throw er;
14412
14461
  }
14413
14462
  await remover.rm(link2);
14414
14463
  try {
14415
- await symlink(symlinkTarget, link2, symlinkType);
14464
+ symlinkSync2(symlinkTarget, link2, symlinkType);
14416
14465
  } catch (er2) {
14417
14466
  if (er2.code !== "EEXIST") {
14418
14467
  throw er2;
@@ -14422,17 +14471,13 @@ var clobberSymlink = async (target, link2, remover, type2 = "file") => {
14422
14471
  };
14423
14472
  var addEdge = async (edge, scurry, remover, bins) => {
14424
14473
  if (!edge.to) return;
14425
- const binRoot = scurry.resolve(
14426
- edge.from.nodeModules(scurry),
14427
- ".bin"
14428
- );
14429
- const path2 = scurry.resolve(
14430
- edge.from.nodeModules(scurry),
14431
- edge.spec.name
14432
- );
14474
+ const { sep: sep2 } = scurry.cwd;
14475
+ const nm = edge.from.nodeModules(scurry);
14476
+ const binRoot = nm + sep2 + ".bin";
14477
+ const path2 = nm + sep2 + edge.spec.name.replace("/", sep2);
14433
14478
  const promises = [];
14434
14479
  const target = relative3(
14435
- dirname6(path2),
14480
+ dirname7(path2),
14436
14481
  edge.to.resolvedLocation(scurry)
14437
14482
  );
14438
14483
  const p = clobberSymlink(target, path2, remover, "dir");
@@ -14440,8 +14485,8 @@ var addEdge = async (edge, scurry, remover, bins) => {
14440
14485
  else promises.push(p);
14441
14486
  if (bins) {
14442
14487
  for (const [key, val] of Object.entries(bins)) {
14443
- const link2 = scurry.resolve(binRoot, key);
14444
- const absTarget = scurry.resolve(path2, val);
14488
+ const link2 = resolve9(binRoot, key);
14489
+ const absTarget = resolve9(path2, val);
14445
14490
  const target2 = relative3(binRoot, absTarget);
14446
14491
  promises.push(
14447
14492
  process.platform === "win32" ? cmdShimIfExists(absTarget, link2, remover) : clobberSymlink(target2, link2, remover)
@@ -14477,6 +14522,7 @@ var addNodes = (diff2, scurry, remover, options, packageInfo) => {
14477
14522
  };
14478
14523
 
14479
14524
  // ../../src/graph/src/reify/delete-edge.ts
14525
+ import { resolve as resolve10 } from "node:path";
14480
14526
  var rmBinPosix = (remover, bin) => {
14481
14527
  return [remover.rm(bin)];
14482
14528
  };
@@ -14493,15 +14539,16 @@ var deleteEdge = async (edge, scurry, remover) => {
14493
14539
  spec: { name },
14494
14540
  to
14495
14541
  } = edge;
14542
+ const { sep: sep2 } = scurry.cwd;
14496
14543
  const nm = edge.from.nodeModules(scurry);
14497
- const path2 = scurry.resolve(nm, name);
14498
- const binRoot = scurry.cwd.resolve(`${nm}/.bin`);
14544
+ const path2 = nm + sep2 + name.replace("/", sep2);
14545
+ const binRoot = nm + sep2 + ".bin";
14499
14546
  const promises = [];
14500
14547
  promises.push(remover.rm(path2));
14501
14548
  const bins = to?.bins;
14502
14549
  if (bins) {
14503
14550
  for (const key of Object.keys(bins)) {
14504
- const bin = binRoot.resolve(key).fullpath();
14551
+ const bin = resolve10(binRoot, key);
14505
14552
  promises.push(...rmBin(remover, bin));
14506
14553
  }
14507
14554
  }
@@ -14558,10 +14605,11 @@ var checkNeededBuild = (options) => {
14558
14605
  // ../../src/graph/src/reify/delete-nodes.ts
14559
14606
  var deleteNodes = (diff2, remover, scurry) => {
14560
14607
  const store = scurry.resolve("node_modules/.vlt");
14608
+ const { sep: sep2 } = scurry.cwd;
14561
14609
  const rmActions = [];
14562
14610
  for (const node of diff2.nodes.delete) {
14563
14611
  if (!node.inVltStore()) continue;
14564
- rmActions.push(remover.rm(scurry.resolve(store, node.id)));
14612
+ rmActions.push(remover.rm(store + sep2 + node.id));
14565
14613
  for (const edge of node.edgesIn) {
14566
14614
  rmActions.push(deleteEdge(edge, scurry, remover));
14567
14615
  }
@@ -14570,8 +14618,8 @@ var deleteNodes = (diff2, remover, scurry) => {
14570
14618
  };
14571
14619
 
14572
14620
  // ../../src/graph/src/reify/internal-hoist.ts
14573
- import { mkdir as mkdir4, symlink as symlink2 } from "node:fs/promises";
14574
- import { dirname as dirname7, relative as relative4 } from "node:path";
14621
+ import { mkdir as mkdir3 } from "node:fs/promises";
14622
+ import { dirname as dirname8, relative as relative4 } from "node:path";
14575
14623
  var pickNodeToHoist = (nodes) => {
14576
14624
  let pick = void 0;
14577
14625
  let pickNode = void 0;
@@ -14652,7 +14700,7 @@ var internalHoist = async (graph, options, remover) => {
14652
14700
  const hoistDir = scurry.cwd.resolve(
14653
14701
  "node_modules/.vlt/node_modules"
14654
14702
  );
14655
- await mkdir4(hoistDir.fullpath(), { recursive: true });
14703
+ await mkdir3(hoistDir.fullpath(), { recursive: true });
14656
14704
  const removes = [];
14657
14705
  for (const entry of await hoistDir.readdir()) {
14658
14706
  const name = entry.name;
@@ -14679,22 +14727,15 @@ var internalHoist = async (graph, options, remover) => {
14679
14727
  }
14680
14728
  }
14681
14729
  await Promise.all(removes);
14682
- const symlinks = [];
14730
+ const hoistPath = hoistDir.fullpath();
14731
+ const vlt = scurry.resolve("node_modules/.vlt");
14732
+ const { sep: sep2 } = scurry.cwd;
14733
+ const native = (n) => n.replace("/", sep2);
14683
14734
  for (const [name, { name: nodeName, id: id2 }] of links) {
14684
- const target = scurry.resolve(
14685
- `node_modules/.vlt/${id2}/node_modules/${nodeName}`
14686
- );
14687
- const path2 = scurry.resolve(
14688
- `node_modules/.vlt/node_modules/${name}`
14689
- );
14690
- if (name.includes("/")) {
14691
- await mkdir4(dirname7(path2), { recursive: true });
14692
- }
14693
- symlinks.push(
14694
- symlink2(relative4(dirname7(path2), target), path2, "dir")
14695
- );
14735
+ const target = vlt + sep2 + id2 + sep2 + "node_modules" + sep2 + native(nodeName);
14736
+ const path2 = hoistPath + sep2 + native(name);
14737
+ symlinkSyncMkdirp(relative4(dirname8(path2), target), path2, "dir");
14696
14738
  }
14697
- await Promise.all(symlinks);
14698
14739
  };
14699
14740
  var checkExisting = async (name, entry, links, removes, scurry, remover) => {
14700
14741
  const target = await entry.readlink();
@@ -14942,6 +14983,7 @@ var reify_ = async (options, diff2, remover, saveImportersPackageJson) => {
14942
14983
  const res = {};
14943
14984
  const { packageInfo, packageJson, scurry, allowScripts } = options;
14944
14985
  const lfData = lockfileData(options);
14986
+ pruneUnsupportedOptional(diff2);
14945
14987
  const actions = addNodes(
14946
14988
  diff2,
14947
14989
  scurry,
@@ -14993,7 +15035,7 @@ var reify_ = async (options, diff2, remover, saveImportersPackageJson) => {
14993
15035
 
14994
15036
  // ../../src/graph/src/install.ts
14995
15037
  import { existsSync as existsSync6, rmSync as rmSync3 } from "node:fs";
14996
- import { resolve as resolve12 } from "node:path";
15038
+ import { resolve as resolve13 } from "node:path";
14997
15039
 
14998
15040
  // ../../src/graph/src/lockfile/format-options-change.ts
14999
15041
  var redactUserinfo = (value) => {
@@ -15013,7 +15055,7 @@ var formatOptionsChange = ({
15013
15055
 
15014
15056
  // ../../src/graph/src/uninstall.ts
15015
15057
  import { existsSync as existsSync4, rmSync } from "node:fs";
15016
- import { resolve as resolve10 } from "node:path";
15058
+ import { resolve as resolve11 } from "node:path";
15017
15059
  var uninstall = async (options, remove) => {
15018
15060
  const mainManifest = options.packageJson.read(options.projectRoot);
15019
15061
  const modifiers = GraphModifier.maybeLoad(options);
@@ -15060,7 +15102,7 @@ var uninstall = async (options, remove) => {
15060
15102
  await remover.rollback().catch(() => {
15061
15103
  });
15062
15104
  try {
15063
- const hiddenLockfile = resolve10(
15105
+ const hiddenLockfile = resolve11(
15064
15106
  options.projectRoot,
15065
15107
  "node_modules/.vlt-lock.json"
15066
15108
  );
@@ -15075,7 +15117,7 @@ var uninstall = async (options, remove) => {
15075
15117
 
15076
15118
  // ../../src/graph/src/update.ts
15077
15119
  import { existsSync as existsSync5, rmSync as rmSync2 } from "node:fs";
15078
- import { resolve as resolve11 } from "node:path";
15120
+ import { resolve as resolve12 } from "node:path";
15079
15121
  var update = async (options) => {
15080
15122
  let mainManifest = void 0;
15081
15123
  try {
@@ -15124,7 +15166,7 @@ var update = async (options) => {
15124
15166
  await remover.rollback().catch(() => {
15125
15167
  });
15126
15168
  try {
15127
- const hiddenLockfile = resolve11(
15169
+ const hiddenLockfile = resolve12(
15128
15170
  options.projectRoot,
15129
15171
  "node_modules/.vlt-lock.json"
15130
15172
  );
@@ -15223,7 +15265,7 @@ var install = async (options, add) => {
15223
15265
  );
15224
15266
  }
15225
15267
  if (options.expectLockfile || options.frozenLockfile) {
15226
- const lockfilePath = resolve12(options.projectRoot, "vlt-lock.json");
15268
+ const lockfilePath = resolve13(options.projectRoot, "vlt-lock.json");
15227
15269
  if (!existsSync6(lockfilePath)) {
15228
15270
  throw error(
15229
15271
  "vlt-lock.json file is required when using --expect-lockfile, --frozen-lockfile, or ci command",
@@ -15342,7 +15384,7 @@ var install = async (options, add) => {
15342
15384
  );
15343
15385
  }
15344
15386
  }
15345
- const lockfilePath = resolve12(
15387
+ const lockfilePath = resolve13(
15346
15388
  options.projectRoot,
15347
15389
  "vlt-lock.json"
15348
15390
  );
@@ -15356,7 +15398,7 @@ var install = async (options, add) => {
15356
15398
  }
15357
15399
  const remover = new RollbackRemove();
15358
15400
  if (options.cleanInstall) {
15359
- const nodeModulesPath = resolve12(
15401
+ const nodeModulesPath = resolve13(
15360
15402
  options.projectRoot,
15361
15403
  "node_modules"
15362
15404
  );
@@ -15424,7 +15466,7 @@ var install = async (options, add) => {
15424
15466
  await remover.rollback().catch(() => {
15425
15467
  });
15426
15468
  try {
15427
- const hiddenLockfile = resolve12(
15469
+ const hiddenLockfile = resolve13(
15428
15470
  options.projectRoot,
15429
15471
  "node_modules/.vlt-lock.json"
15430
15472
  );
@@ -11,8 +11,8 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  install
14
- } from "./chunk-IIXKXSLE.js";
15
- import "./chunk-4WQ76RJD.js";
14
+ } from "./chunk-ZRRNOLEG.js";
15
+ import "./chunk-DCFLXO2M.js";
16
16
  import {
17
17
  commandUsage
18
18
  } from "./chunk-I6QGYSB4.js";
@@ -24,7 +24,7 @@ import "./chunk-JIQBZ2UT.js";
24
24
  import "./chunk-64VFL4WI.js";
25
25
  import "./chunk-ENSGPOLR.js";
26
26
  import "./chunk-HTOTG4TS.js";
27
- import "./chunk-3NWCWTIU.js";
27
+ import "./chunk-YU2W5UPG.js";
28
28
  import "./chunk-U7TEQCBN.js";
29
29
  import "./chunk-XNLSTHDK.js";
30
30
  import "./chunk-PDWPFR5T.js";
@@ -63,7 +63,7 @@ var usage = () => commandUsage({
63
63
  var views = {
64
64
  json: (i) => i.graph.toJSON(),
65
65
  human: lazyView(
66
- async () => (await import("./reporter-ZEDO2YIG.js")).InstallReporter
66
+ async () => (await import("./reporter-XBHCUW7W.js")).InstallReporter
67
67
  )
68
68
  };
69
69
  var command = async (conf) => {
package/cli-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vltpkg/cli-sdk",
3
3
  "description": "The source for the vlt CLI",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
@@ -16,8 +16,8 @@ import {
16
16
  kCustomInspect,
17
17
  pairsToRecords,
18
18
  recordsToPairs
19
- } from "./chunk-4FHGRT4J.js";
20
- import "./chunk-ZMRJRQDK.js";
19
+ } from "./chunk-GZWJAGBL.js";
20
+ import "./chunk-MOL2DUEQ.js";
21
21
  import "./chunk-ZWKI5OSF.js";
22
22
  import "./chunk-BUKZHMMK.js";
23
23
  import "./chunk-JIQBZ2UT.js";
@@ -19,8 +19,8 @@ import {
19
19
  import {
20
20
  pairsToRecords,
21
21
  recordsToPairs
22
- } from "./chunk-4FHGRT4J.js";
23
- import "./chunk-ZMRJRQDK.js";
22
+ } from "./chunk-GZWJAGBL.js";
23
+ import "./chunk-MOL2DUEQ.js";
24
24
  import "./chunk-ZWKI5OSF.js";
25
25
  import {
26
26
  commandUsage
@@ -11,13 +11,13 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  vlxResolve
14
- } from "./chunk-QX6KMBTX.js";
14
+ } from "./chunk-ZBJRZXSU.js";
15
15
  import {
16
16
  ExecCommand,
17
17
  views
18
- } from "./chunk-2UW4UIVL.js";
18
+ } from "./chunk-TJBBYDUN.js";
19
19
  import "./chunk-RIYFGX27.js";
20
- import "./chunk-EJFGJ543.js";
20
+ import "./chunk-LY5FNWRY.js";
21
21
  import {
22
22
  styleTextStdout
23
23
  } from "./chunk-CSZTT7QN.js";
@@ -25,15 +25,15 @@ import "./chunk-CU752KW7.js";
25
25
  import "./chunk-G2YT2GWF.js";
26
26
  import "./chunk-CRGWLUGC.js";
27
27
  import "./chunk-VTEFO2FT.js";
28
- import "./chunk-ZMRJRQDK.js";
28
+ import "./chunk-MOL2DUEQ.js";
29
29
  import "./chunk-ZWKI5OSF.js";
30
30
  import "./chunk-WGDTG44V.js";
31
31
  import "./chunk-J4NHRZX6.js";
32
32
  import {
33
33
  exec,
34
34
  execFG
35
- } from "./chunk-IIXKXSLE.js";
36
- import "./chunk-4WQ76RJD.js";
35
+ } from "./chunk-ZRRNOLEG.js";
36
+ import "./chunk-DCFLXO2M.js";
37
37
  import {
38
38
  commandUsage
39
39
  } from "./chunk-I6QGYSB4.js";
@@ -44,7 +44,7 @@ import "./chunk-64VFL4WI.js";
44
44
  import "./chunk-ENSGPOLR.js";
45
45
  import "./chunk-HTOTG4TS.js";
46
46
  import "./chunk-PBBULTAG.js";
47
- import "./chunk-3NWCWTIU.js";
47
+ import "./chunk-YU2W5UPG.js";
48
48
  import "./chunk-U7TEQCBN.js";
49
49
  import "./chunk-XNLSTHDK.js";
50
50
  import "./chunk-PDWPFR5T.js";
@@ -11,7 +11,7 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  PackageInfoClient
14
- } from "./chunk-ZMRJRQDK.js";
14
+ } from "./chunk-MOL2DUEQ.js";
15
15
  import "./chunk-ZWKI5OSF.js";
16
16
  import {
17
17
  resolveRegistry
@@ -28,13 +28,13 @@ import "./chunk-ENSGPOLR.js";
28
28
  import "./chunk-HTOTG4TS.js";
29
29
  import {
30
30
  RegistryClient
31
- } from "./chunk-O63K3ZP6.js";
31
+ } from "./chunk-SH24EMXO.js";
32
32
  import "./chunk-APMYKJI2.js";
33
33
  import {
34
34
  assertOk,
35
35
  requestError
36
36
  } from "./chunk-PBBULTAG.js";
37
- import "./chunk-3NWCWTIU.js";
37
+ import "./chunk-YU2W5UPG.js";
38
38
  import "./chunk-U7TEQCBN.js";
39
39
  import "./chunk-XNLSTHDK.js";
40
40
  import "./chunk-PDWPFR5T.js";
@@ -21,12 +21,12 @@ import {
21
21
  import "./chunk-ENSGPOLR.js";
22
22
  import {
23
23
  RegistryClient
24
- } from "./chunk-O63K3ZP6.js";
24
+ } from "./chunk-SH24EMXO.js";
25
25
  import "./chunk-APMYKJI2.js";
26
26
  import {
27
27
  assertOk
28
28
  } from "./chunk-PBBULTAG.js";
29
- import "./chunk-3NWCWTIU.js";
29
+ import "./chunk-YU2W5UPG.js";
30
30
  import "./chunk-U7TEQCBN.js";
31
31
  import "./chunk-XNLSTHDK.js";
32
32
  import "./chunk-PDWPFR5T.js";