@vltpkg/cli-js 1.1.1 → 1.2.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.
Files changed (82) hide show
  1. package/{access-YYMAAPHV.js → access-FTHPFPUJ.js} +8 -8
  2. package/{bugs-RK5JBPSC.js → bugs-QS6HQUO2.js} +17 -17
  3. package/{build-DVJSYCNF.js → build-H27SXMAS.js} +11 -11
  4. package/{cache-JKQNGZ7L.js → cache-IB4HMFDT.js} +143 -14
  5. package/cache-unzip-src-unzip.js +2934 -164
  6. package/{chunk-BWEH7DHQ.js → chunk-3CUFJPBK.js} +1 -1
  7. package/{chunk-CBASIDQH.js → chunk-55DYW2MP.js} +1 -1
  8. package/{chunk-6FT6K5YN.js → chunk-5BD4QGW2.js} +25 -7
  9. package/{chunk-WE2TQN32.js → chunk-5PP77V44.js} +2 -2
  10. package/{chunk-LN2A74PF.js → chunk-5YB6UIC3.js} +247 -37
  11. package/{chunk-CEHPRPGQ.js → chunk-6A3XS52F.js} +33 -0
  12. package/{chunk-X2AWQGYG.js → chunk-6G7MTZGS.js} +6 -6
  13. package/{chunk-V4YCZZHY.js → chunk-7KFMQ3BR.js} +16 -8
  14. package/{chunk-JZJWASXL.js → chunk-B2FK2HHL.js} +79 -58
  15. package/{chunk-DF5K4CYR.js → chunk-FOJCK57G.js} +5 -5
  16. package/{chunk-GDT6KI4I.js → chunk-FSZF2RSQ.js} +4 -4
  17. package/{chunk-VFBCWAOC.js → chunk-G5BSQ6DP.js} +7 -0
  18. package/{chunk-XKVU23NC.js → chunk-G5NJ7CYI.js} +1 -1
  19. package/{chunk-34TE4HZS.js → chunk-GUATFMMU.js} +2 -2
  20. package/{chunk-YBVTY6ZW.js → chunk-JTUZP2OD.js} +1 -1
  21. package/{chunk-MZA6N2TA.js → chunk-LD4BQJBG.js} +4 -4
  22. package/{chunk-KDF7PEBY.js → chunk-LEGPLJWK.js} +5 -5
  23. package/{chunk-XIF734VO.js → chunk-LKQ5R4VX.js} +4 -4
  24. package/{chunk-DR4Z63B6.js → chunk-NJZSCUD4.js} +3 -3
  25. package/{chunk-2PWSMJD7.js → chunk-O44Z6MAV.js} +1 -1
  26. package/{chunk-DS7YMIHP.js → chunk-OE6VHHN4.js} +135 -36
  27. package/{src-MOKZQTH2.js → chunk-QA6RE2GS.js} +249 -28
  28. package/chunk-SPRVRSEL.js +75 -0
  29. package/{chunk-YOE3VZFX.js → chunk-SYGF27W7.js} +2 -2
  30. package/{chunk-LR42WTKN.js → chunk-UNWQVOLY.js} +14 -12
  31. package/{chunk-SNOBGFNM.js → chunk-UQUIO7LW.js} +47 -6
  32. package/{chunk-QQYTPGIL.js → chunk-VHHLO5L6.js} +1 -1
  33. package/{chunk-3LUM7NX5.js → chunk-YFNQ6HZ3.js} +3 -3
  34. package/{chunk-GDJ7JT2R.js → chunk-YTT3UHUB.js} +1 -1
  35. package/{ci-WVYVR4XK.js → ci-XJBYXFFJ.js} +10 -10
  36. package/cli-package.json +2 -1
  37. package/{config-VYOTYBGS.js → config-4Y46SH5K.js} +8 -8
  38. package/{config-2MFZVP2N.js → config-H2Q4ABSS.js} +12 -12
  39. package/{create-OJPLHBRR.js → create-LUYL2QI4.js} +18 -18
  40. package/{deprecate-V4PKGFF7.js → deprecate-5ANCI2L6.js} +13 -13
  41. package/{dist-tag-DNLV4VDE.js → dist-tag-SD2CRWIL.js} +8 -8
  42. package/{docs-LXHDCGL5.js → docs-B6LVNWTP.js} +17 -17
  43. package/{exec-P32YSP44.js → exec-CJ5KQA72.js} +18 -18
  44. package/{exec-cache-JZ5PDTOY.js → exec-cache-EE7DAOW2.js} +16 -16
  45. package/{exec-local-HHA464H4.js → exec-local-HT3VBN6S.js} +15 -15
  46. package/{help-GVTTOYUL.js → help-GZ44WYDS.js} +4 -4
  47. package/{init-RENGG74N.js → init-HVXRXFVY.js} +10 -10
  48. package/{install-V6VXOBH2.js → install-E2C7EE6P.js} +16 -16
  49. package/{list-7N7Y5OXB.js → list-V4V6SHJP.js} +18 -18
  50. package/{login-D2QSAUJC.js → login-VRFV7MCE.js} +12 -12
  51. package/{logout-QPOYBQNF.js → logout-SU75R7BN.js} +8 -8
  52. package/{pack-4YYGXP3A.js → pack-IVGKUXTL.js} +11 -11
  53. package/package.json +1 -1
  54. package/{ping-QYRIZONU.js → ping-WB222SDT.js} +8 -8
  55. package/{pkg-WQTNABKT.js → pkg-LAAFNONA.js} +11 -11
  56. package/{profile-PRI7WXK7.js → profile-P3AVHRDI.js} +8 -8
  57. package/{publish-PSBYJQS7.js → publish-IUNB3KH5.js} +17 -17
  58. package/{query-UFYLQW4N.js → query-XCN55INS.js} +18 -18
  59. package/{registry-YTJZ3AQD.js → registry-QQLWJHJI.js} +5 -5
  60. package/registry-client-src-revalidate.js +5940 -5804
  61. package/{repo-4S6ETFXX.js → repo-BQDWUCX5.js} +17 -17
  62. package/{reporter-GLWYHI2Y.js → reporter-5BVUNWQ6.js} +13 -13
  63. package/{run-OU7NUB7A.js → run-QT7DX243.js} +15 -15
  64. package/{run-exec-QPBY7ULE.js → run-exec-XYUI7GLN.js} +15 -15
  65. package/security-archive-src-update-expired.js +1 -1
  66. package/{setup-23QXG473.js → setup-CXDJXRAG.js} +18 -18
  67. package/{src-3GN7TDNH.js → src-2BUT4WYP.js} +7 -5
  68. package/src-OKMGXMAD.js +212 -0
  69. package/{src-575IYJOL.js → src-UBAERP25.js} +14 -14
  70. package/{token-FCIA3RGD.js → token-CBOK6DMT.js} +8 -8
  71. package/{uninstall-BQVZVKB5.js → uninstall-27VP46KJ.js} +12 -12
  72. package/{unpublish-YGJ5HEYF.js → unpublish-F4637OQX.js} +8 -8
  73. package/{update-WCGV66JK.js → update-NGWLJJ22.js} +15 -15
  74. package/{version-7EA3UQG7.js → version-WPD2KNVC.js} +13 -13
  75. package/{view-5FWIENVE.js → view-YKFTRRPD.js} +11 -11
  76. package/vlr.js +1 -1
  77. package/vlrx.js +1 -1
  78. package/vlt.js +1 -1
  79. package/vlx.js +1 -1
  80. package/vlxl.js +1 -1
  81. package/{whoami-O4ZTBIC4.js → whoami-I5Q6RTAP.js} +8 -8
  82. package/chunk-WD74RJXW.js +0 -75
@@ -11,26 +11,26 @@ 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-LN2A74PF.js";
14
+ } from "./chunk-5YB6UIC3.js";
15
15
  import {
16
16
  findCmdShimIfExists,
17
17
  install
18
- } from "./chunk-JZJWASXL.js";
18
+ } from "./chunk-B2FK2HHL.js";
19
19
  import {
20
20
  PathScurry
21
- } from "./chunk-X2AWQGYG.js";
21
+ } from "./chunk-6G7MTZGS.js";
22
22
  import {
23
23
  Spec
24
- } from "./chunk-XKVU23NC.js";
24
+ } from "./chunk-G5NJ7CYI.js";
25
25
  import {
26
26
  walkUp
27
27
  } from "./chunk-HTOTG4TS.js";
28
- import {
29
- parseScope
30
- } from "./chunk-VFBCWAOC.js";
31
28
  import {
32
29
  XDG
33
30
  } from "./chunk-XNLSTHDK.js";
31
+ import {
32
+ parseScope
33
+ } from "./chunk-G5BSQ6DP.js";
34
34
  import {
35
35
  error
36
36
  } from "./chunk-WZWDS3W4.js";
@@ -200,7 +200,7 @@ var vlxInstall = async (spec, options, promptFn) => {
200
200
  resolve3(dir, "package.json"),
201
201
  JSON.stringify(manifest, null, 2) + "\n"
202
202
  );
203
- await install({
203
+ const { graph } = await install({
204
204
  ...options,
205
205
  packageInfo,
206
206
  projectRoot: dir,
@@ -209,6 +209,14 @@ var vlxInstall = async (spec, options, promptFn) => {
209
209
  // allow lifecycle scripts but filter out malware via security archive
210
210
  allowScripts: ":scripts:not(:malware)"
211
211
  });
212
+ const installed = graph.mainImporter.edgesOut.get(pkgSpec.name)?.to;
213
+ if (!manifest.vlx.integrity && installed?.integrity) {
214
+ manifest.vlx.integrity = installed.integrity;
215
+ await writeFile(
216
+ resolve3(dir, "package.json"),
217
+ JSON.stringify(manifest, null, 2) + "\n"
218
+ );
219
+ }
212
220
  return vlxInfo(dir, options, manifest);
213
221
  };
214
222
 
@@ -13,14 +13,14 @@ import {
13
13
  AbortError,
14
14
  SecurityArchive,
15
15
  pRetry
16
- } from "./chunk-DF5K4CYR.js";
16
+ } from "./chunk-FOJCK57G.js";
17
17
  import {
18
18
  Monorepo,
19
19
  PackageJson,
20
20
  getUser,
21
21
  minimatch,
22
22
  platformCheck
23
- } from "./chunk-X2AWQGYG.js";
23
+ } from "./chunk-6G7MTZGS.js";
24
24
  import {
25
25
  asDepID,
26
26
  baseDepID,
@@ -35,10 +35,10 @@ import {
35
35
  joinExtra,
36
36
  splitDepID,
37
37
  splitExtra
38
- } from "./chunk-YOE3VZFX.js";
38
+ } from "./chunk-SYGF27W7.js";
39
39
  import {
40
40
  Spec as Spec2
41
- } from "./chunk-XKVU23NC.js";
41
+ } from "./chunk-G5NJ7CYI.js";
42
42
  import {
43
43
  load,
44
44
  walkUp
@@ -46,11 +46,17 @@ import {
46
46
  import {
47
47
  userAgent,
48
48
  userAgentHeaders
49
- } from "./chunk-YBVTY6ZW.js";
49
+ } from "./chunk-JTUZP2OD.js";
50
50
  import {
51
51
  graphStep,
52
52
  promiseSpawn
53
53
  } from "./chunk-U7TEQCBN.js";
54
+ import {
55
+ XDG
56
+ } from "./chunk-XNLSTHDK.js";
57
+ import {
58
+ rimraf
59
+ } from "./chunk-BHJT53TP.js";
54
60
  import {
55
61
  Spec,
56
62
  Version,
@@ -90,13 +96,7 @@ import {
90
96
  satisfies,
91
97
  shortDependencyTypes,
92
98
  subset
93
- } from "./chunk-VFBCWAOC.js";
94
- import {
95
- XDG
96
- } from "./chunk-XNLSTHDK.js";
97
- import {
98
- rimraf
99
- } from "./chunk-BHJT53TP.js";
99
+ } from "./chunk-G5BSQ6DP.js";
100
100
  import {
101
101
  error,
102
102
  typeError
@@ -4623,6 +4623,11 @@ var Node = class _Node {
4623
4623
  * Record of binary names to their paths in the package, if any.
4624
4624
  */
4625
4625
  bins;
4626
+ /**
4627
+ * True if the package has a root binding.gyp, when known without a
4628
+ * disk check (placed from the global store). Not persisted.
4629
+ */
4630
+ bindingGyp;
4626
4631
  /**
4627
4632
  * True if this node has been built as part of the reify step.
4628
4633
  */
@@ -7482,6 +7487,7 @@ var score = async (state) => {
7482
7487
 
7483
7488
  // ../../src/query/src/pseudo/scripts.ts
7484
7489
  var nodeNeedsBuild = (node) => {
7490
+ if (node.buildState === "needed") return true;
7485
7491
  const { manifest } = node;
7486
7492
  if (!manifest) return false;
7487
7493
  if (manifest.hasInstallScript) return true;
@@ -10503,9 +10509,6 @@ var load4 = (options) => {
10503
10509
  return graph;
10504
10510
  };
10505
10511
 
10506
- // ../../src/graph/src/reify/build.ts
10507
- import { join as join2 } from "node:path";
10508
-
10509
10512
  // ../../src/graph/src/non-empty-list.ts
10510
10513
  var isNonEmptyList = (list) => !!list.length;
10511
10514
  var nonEmptyList = (nodes) => isNonEmptyList(nodes) ? nodes : void 0;
@@ -10545,7 +10548,7 @@ var del = (diff2, node) => {
10545
10548
  };
10546
10549
 
10547
10550
  // ../../src/graph/src/reify/bin-chmod.ts
10548
- import { statSync as statSync3, existsSync as existsSync2 } from "node:fs";
10551
+ import { statSync as statSync3 } from "node:fs";
10549
10552
  import { chmod as chmod2 } from "node:fs/promises";
10550
10553
  var binChmodAll = async (nodes, scurry) => {
10551
10554
  const chmods = [];
@@ -10561,19 +10564,31 @@ var binChmod = async (node, scurry) => {
10561
10564
  const path2 = scurry.resolve(
10562
10565
  `${node.resolvedLocation(scurry)}/${bin}`
10563
10566
  );
10564
- if (existsSync2(path2)) {
10565
- chmods.push(makeExecutable(path2));
10567
+ let mode;
10568
+ try {
10569
+ mode = statSync3(path2).mode;
10570
+ } catch {
10571
+ continue;
10566
10572
  }
10573
+ if ((mode & 73) === 73) continue;
10574
+ chmods.push(chmod2(path2, mode & 511 | 73));
10567
10575
  }
10568
10576
  await Promise.all(chmods);
10569
10577
  };
10570
- var execMode = 0;
10571
- var makeExecutable = async (path2) => {
10572
- if (!execMode) {
10573
- execMode = statSync3(path2).mode & 511 | 73;
10578
+
10579
+ // ../../src/graph/src/reify/binding-gyp.ts
10580
+ import { lstatSync } from "node:fs";
10581
+ import { join as join2 } from "node:path";
10582
+ var onDisk = (dir) => {
10583
+ try {
10584
+ return !!lstatSync(join2(dir, "binding.gyp"), {
10585
+ throwIfNoEntry: false
10586
+ })?.isFile();
10587
+ } catch {
10588
+ return false;
10574
10589
  }
10575
- await chmod2(path2, execMode);
10576
10590
  };
10591
+ var hasBindingGyp = (node, scurry) => node.bindingGyp ?? onDisk(node.resolvedLocation(scurry));
10577
10592
 
10578
10593
  // ../../src/graph/src/reify/scripts-manifest.ts
10579
10594
  var scriptsManifest = (manifest, dir, packageJson) => manifest.hasInstallScript && !manifest.scripts ? packageJson.read(dir) : manifest;
@@ -10629,8 +10644,7 @@ var visit = async (packageJson, scurry, node, signal, _path) => {
10629
10644
  preprepare,
10630
10645
  postprepare
10631
10646
  } = scripts2;
10632
- const hasBindingGyp = scurry.lstatSync(join2(node.resolvedLocation(scurry), "binding.gyp"))?.isFile() ?? false;
10633
- const hasImplicitInstall = hasBindingGyp && !install2 && !preinstall;
10647
+ const hasImplicitInstall = hasBindingGyp(node, scurry) && !install2 && !preinstall;
10634
10648
  const runInstall = !!(install2 || preinstall || postinstall) || hasImplicitInstall;
10635
10649
  if (runInstall) {
10636
10650
  await run({
@@ -11768,7 +11782,7 @@ var GraphModifier = class _GraphModifier {
11768
11782
  // ../../src/init/src/index.ts
11769
11783
  import {
11770
11784
  appendFileSync,
11771
- existsSync as existsSync3,
11785
+ existsSync as existsSync2,
11772
11786
  readFileSync as readFileSync3,
11773
11787
  writeFileSync as writeFileSync2
11774
11788
  } from "node:fs";
@@ -11800,7 +11814,7 @@ var GITIGNORE_ENTRY = "node_modules";
11800
11814
  var NPMIGNORE_ENTRY = "vlt.json";
11801
11815
  var ensureGitignore = (cwd) => {
11802
11816
  const gitignorePath = resolve7(cwd, ".gitignore");
11803
- if (!existsSync3(gitignorePath)) {
11817
+ if (!existsSync2(gitignorePath)) {
11804
11818
  writeFileSync2(gitignorePath, `${GITIGNORE_ENTRY}
11805
11819
  `, "utf8");
11806
11820
  return { path: gitignorePath };
@@ -11821,7 +11835,7 @@ var ensureGitignore = (cwd) => {
11821
11835
  };
11822
11836
  var ensureNpmignore = (cwd) => {
11823
11837
  const npmignorePath = resolve7(cwd, ".npmignore");
11824
- if (!existsSync3(npmignorePath)) {
11838
+ if (!existsSync2(npmignorePath)) {
11825
11839
  writeFileSync2(npmignorePath, `${NPMIGNORE_ENTRY}
11826
11840
  `, "utf8");
11827
11841
  return { path: npmignorePath };
@@ -12419,7 +12433,7 @@ var canonicalizePeerIds = (graph, options = {}) => {
12419
12433
  };
12420
12434
 
12421
12435
  // ../../src/graph/src/ideal/move-peer-store-dirs.ts
12422
- import { existsSync as existsSync4 } from "node:fs";
12436
+ import { existsSync as existsSync3 } from "node:fs";
12423
12437
  import { rename as rename2 } from "node:fs/promises";
12424
12438
  var movePeerStoreDirs = async (moves, {
12425
12439
  scurry,
@@ -12463,7 +12477,7 @@ var movePeerStoreDirs = async (moves, {
12463
12477
  }
12464
12478
  return;
12465
12479
  }
12466
- if (!existsSync4(node.resolvedLocation(scurry))) {
12480
+ if (!existsSync3(node.resolvedLocation(scurry))) {
12467
12481
  node.extracted = false;
12468
12482
  }
12469
12483
  })
@@ -12586,39 +12600,42 @@ var extractNode = async (node, scurry, remover, options, packageInfo, diff2) =>
12586
12600
  error: new Error("Platform check failed or package deprecated")
12587
12601
  };
12588
12602
  }
12603
+ const { scripts: scripts2, hasInstallScript } = manifest;
12589
12604
  const extractOptions = {
12590
12605
  from,
12591
12606
  integrity,
12592
12607
  resolved,
12593
- fromLockfile: node.resolvedFromLockfile
12608
+ fromLockfile: node.resolvedFromLockfile,
12609
+ installScripts: !!(hasInstallScript || scripts2?.install || scripts2?.preinstall || scripts2?.postinstall)
12610
+ };
12611
+ const extracted = (r) => {
12612
+ if (r.integrity && !node.integrity) node.integrity = r.integrity;
12613
+ if (r.manifest && !node.manifest) {
12614
+ try {
12615
+ node.manifest = normalizeManifest(
12616
+ asManifest(JSON.parse(r.manifest))
12617
+ );
12618
+ } catch {
12619
+ }
12620
+ }
12621
+ if (r.bindingGyp !== void 0) node.bindingGyp = r.bindingGyp;
12622
+ return { success: true, node };
12594
12623
  };
12595
12624
  try {
12596
12625
  await remover.rm(target);
12597
12626
  if (removeOptionalFailedNode) {
12598
12627
  try {
12599
- const result = await packageInfo.extract(
12600
- spec2,
12601
- target,
12602
- extractOptions
12628
+ return extracted(
12629
+ await packageInfo.extract(spec2, target, extractOptions)
12603
12630
  );
12604
- if (result.integrity && !node.integrity) {
12605
- node.integrity = result.integrity;
12606
- }
12607
- return { success: true, node };
12608
12631
  } catch (error2) {
12609
12632
  removeOptionalFailedNode();
12610
12633
  return { success: false, node, error: error2 };
12611
12634
  }
12612
12635
  } else {
12613
- const result = await packageInfo.extract(
12614
- spec2,
12615
- target,
12616
- extractOptions
12636
+ return extracted(
12637
+ await packageInfo.extract(spec2, target, extractOptions)
12617
12638
  );
12618
- if (result.integrity && !node.integrity) {
12619
- node.integrity = result.integrity;
12620
- }
12621
- return { success: true, node };
12622
12639
  }
12623
12640
  } catch (error2) {
12624
12641
  if (removeOptionalFailedNode) {
@@ -14464,7 +14481,6 @@ var deleteEdges = (diff2, scurry, remover) => {
14464
14481
  };
14465
14482
 
14466
14483
  // ../../src/graph/src/reify/check-needed-build.ts
14467
- import { join as join3 } from "node:path";
14468
14484
  var nodeNeedsBuild2 = (node, scurry, packageJson) => {
14469
14485
  if (node.built) return false;
14470
14486
  let manifest;
@@ -14478,8 +14494,7 @@ var nodeNeedsBuild2 = (node, scurry, packageJson) => {
14478
14494
  const { scripts: scripts2 = {} } = manifest;
14479
14495
  const runInstall = !!(scripts2.install || scripts2.preinstall || scripts2.postinstall);
14480
14496
  if (runInstall) return true;
14481
- const hasBindingGyp = scurry.lstatSync(join3(node.resolvedLocation(scurry), "binding.gyp"))?.isFile() ?? false;
14482
- if (hasBindingGyp && !scripts2.install && !scripts2.preinstall)
14497
+ if (hasBindingGyp(node, scurry) && !scripts2.install && !scripts2.preinstall)
14483
14498
  return true;
14484
14499
  const prepable = node.id.startsWith("git") || node.importer || !node.inVltStore();
14485
14500
  const runPrepare = !!(scripts2.prepare || scripts2.preprepare || scripts2.postprepare) && prepable;
@@ -14920,6 +14935,12 @@ var reify_ = async (options, diff2, remover, saveImportersPackageJson) => {
14920
14935
  );
14921
14936
  if (rmActions.length) await Promise.all(rmActions);
14922
14937
  saveImportersPackageJson?.();
14938
+ for (const node of diff2.nodes.add) {
14939
+ const lfNode = lfData.nodes[node.id];
14940
+ if (lfNode && node.integrity && !lfNode[2]) {
14941
+ lfNode[2] = node.integrity;
14942
+ }
14943
+ }
14923
14944
  saveData(lfData, scurry.resolve("vlt-lock.json"), false);
14924
14945
  if (scurry.lstatSync("vlt.json")) {
14925
14946
  copyFileSync(
@@ -14931,7 +14952,7 @@ var reify_ = async (options, diff2, remover, saveImportersPackageJson) => {
14931
14952
  };
14932
14953
 
14933
14954
  // ../../src/graph/src/install.ts
14934
- import { existsSync as existsSync7, rmSync as rmSync3 } from "node:fs";
14955
+ import { existsSync as existsSync6, rmSync as rmSync3 } from "node:fs";
14935
14956
  import { resolve as resolve12 } from "node:path";
14936
14957
 
14937
14958
  // ../../src/graph/src/lockfile/format-options-change.ts
@@ -14951,7 +14972,7 @@ var formatOptionsChange = ({
14951
14972
  }) => `${section}:${key === void 0 ? "" : ` ${key}`} ` + (from === void 0 ? "(missing)" : `"${redactUserinfo(from)}"`) + ` -> ${to === void 0 ? "(removed)" : `"${redactUserinfo(to)}"`}`;
14952
14973
 
14953
14974
  // ../../src/graph/src/uninstall.ts
14954
- import { existsSync as existsSync5, rmSync } from "node:fs";
14975
+ import { existsSync as existsSync4, rmSync } from "node:fs";
14955
14976
  import { resolve as resolve10 } from "node:path";
14956
14977
  var uninstall = async (options, remove) => {
14957
14978
  const mainManifest = options.packageJson.read(options.projectRoot);
@@ -15003,7 +15024,7 @@ var uninstall = async (options, remove) => {
15003
15024
  options.projectRoot,
15004
15025
  "node_modules/.vlt-lock.json"
15005
15026
  );
15006
- if (existsSync5(hiddenLockfile)) {
15027
+ if (existsSync4(hiddenLockfile)) {
15007
15028
  rmSync(hiddenLockfile, { force: true });
15008
15029
  }
15009
15030
  } catch {
@@ -15013,7 +15034,7 @@ var uninstall = async (options, remove) => {
15013
15034
  };
15014
15035
 
15015
15036
  // ../../src/graph/src/update.ts
15016
- import { existsSync as existsSync6, rmSync as rmSync2 } from "node:fs";
15037
+ import { existsSync as existsSync5, rmSync as rmSync2 } from "node:fs";
15017
15038
  import { resolve as resolve11 } from "node:path";
15018
15039
  var update = async (options) => {
15019
15040
  let mainManifest = void 0;
@@ -15067,7 +15088,7 @@ var update = async (options) => {
15067
15088
  options.projectRoot,
15068
15089
  "node_modules/.vlt-lock.json"
15069
15090
  );
15070
- if (existsSync6(hiddenLockfile)) {
15091
+ if (existsSync5(hiddenLockfile)) {
15071
15092
  rmSync2(hiddenLockfile, { force: true });
15072
15093
  }
15073
15094
  } catch {
@@ -15163,7 +15184,7 @@ var install = async (options, add) => {
15163
15184
  }
15164
15185
  if (options.expectLockfile || options.frozenLockfile) {
15165
15186
  const lockfilePath = resolve12(options.projectRoot, "vlt-lock.json");
15166
- if (!existsSync7(lockfilePath)) {
15187
+ if (!existsSync6(lockfilePath)) {
15167
15188
  throw error(
15168
15189
  "vlt-lock.json file is required when using --expect-lockfile, --frozen-lockfile, or ci command",
15169
15190
  {
@@ -15299,7 +15320,7 @@ var install = async (options, add) => {
15299
15320
  options.projectRoot,
15300
15321
  "node_modules"
15301
15322
  );
15302
- if (existsSync7(nodeModulesPath)) {
15323
+ if (existsSync6(nodeModulesPath)) {
15303
15324
  await remover.rm(nodeModulesPath);
15304
15325
  remover.confirm();
15305
15326
  }
@@ -15367,7 +15388,7 @@ var install = async (options, add) => {
15367
15388
  options.projectRoot,
15368
15389
  "node_modules/.vlt-lock.json"
15369
15390
  );
15370
- if (existsSync7(hiddenLockfile)) {
15391
+ if (existsSync6(hiddenLockfile)) {
15371
15392
  rmSync3(hiddenLockfile, { force: true });
15372
15393
  }
15373
15394
  } catch {
@@ -13,19 +13,19 @@ import {
13
13
  asDepID,
14
14
  baseDepID,
15
15
  splitDepID
16
- } from "./chunk-YOE3VZFX.js";
16
+ } from "./chunk-SYGF27W7.js";
17
17
  import {
18
18
  userAgent
19
- } from "./chunk-YBVTY6ZW.js";
19
+ } from "./chunk-JTUZP2OD.js";
20
20
  import {
21
21
  I
22
22
  } from "./chunk-U7TEQCBN.js";
23
- import {
24
- defaultRegistryName
25
- } from "./chunk-VFBCWAOC.js";
26
23
  import {
27
24
  XDG
28
25
  } from "./chunk-XNLSTHDK.js";
26
+ import {
27
+ defaultRegistryName
28
+ } from "./chunk-G5BSQ6DP.js";
29
29
  import {
30
30
  error
31
31
  } from "./chunk-WZWDS3W4.js";
@@ -11,19 +11,19 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  openUrl
14
- } from "./chunk-BWEH7DHQ.js";
14
+ } from "./chunk-3CUFJPBK.js";
15
15
  import {
16
16
  stderr
17
- } from "./chunk-LR42WTKN.js";
17
+ } from "./chunk-UNWQVOLY.js";
18
18
  import {
19
19
  mermaidOutput
20
- } from "./chunk-JZJWASXL.js";
20
+ } from "./chunk-B2FK2HHL.js";
21
21
  import {
22
22
  ViewClass
23
23
  } from "./chunk-4KCU2KZL.js";
24
24
  import {
25
25
  getTokenByURL
26
- } from "./chunk-DS7YMIHP.js";
26
+ } from "./chunk-OE6VHHN4.js";
27
27
 
28
28
  // ../../src/cli-sdk/src/query-auth.ts
29
29
  var createGetAuthHeader = (conf) => async (url) => getTokenByURL(url, conf.options.identity);
@@ -1946,6 +1946,9 @@ var normalizeBinPaths = (manifest) => {
1946
1946
  }
1947
1947
  };
1948
1948
  var isBoolean = (value) => typeof value === "boolean";
1949
+ var integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/;
1950
+ var isIntegrity = (i) => typeof i === "string" && integrityRE.test(i);
1951
+ var integrityHex = (i) => isIntegrity(i) ? Buffer.from(i.slice(7), "base64").toString("hex") : void 0;
1949
1952
  var asError = (er, fallbackMessage = "Unknown error") => er instanceof Error ? er : new Error(String(er) || fallbackMessage);
1950
1953
  var isError = (er) => er instanceof Error;
1951
1954
  var isErrorWithCause = (er) => isError(er) && "cause" in er;
@@ -2508,6 +2511,9 @@ export {
2508
2511
  isSpec,
2509
2512
  currentDefaultRegistryName,
2510
2513
  Spec,
2514
+ normalizeBinPaths,
2515
+ integrityRE,
2516
+ integrityHex,
2511
2517
  asError,
2512
2518
  isError,
2513
2519
  isErrorWithCause,
@@ -2515,6 +2521,7 @@ export {
2515
2521
  isRecordStringString,
2516
2522
  assertRecordStringString,
2517
2523
  assertRecordStringT,
2524
+ isManifest,
2518
2525
  asManifest,
2519
2526
  normalizeManifest,
2520
2527
  asNormalizedManifest,
@@ -12,7 +12,7 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  Spec,
14
14
  kCustomInspect
15
- } from "./chunk-VFBCWAOC.js";
15
+ } from "./chunk-G5BSQ6DP.js";
16
16
 
17
17
  // ../../src/spec/src/index.ts
18
18
  import { homedir } from "node:os";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-WGDTG44V.js";
15
15
  import {
16
16
  commandAliases
17
- } from "./chunk-CEHPRPGQ.js";
17
+ } from "./chunk-6A3XS52F.js";
18
18
 
19
19
  // ../../node_modules/.vlt/~npm~package-json-from-dist@1.0.1/node_modules/package-json-from-dist/dist/esm/index.js
20
20
  import { readFileSync } from "node:fs";
@@ -107,7 +107,7 @@ var commandHelp = {
107
107
  defaultOrder: 4
108
108
  },
109
109
  cache: {
110
- args: "[add|ls|info|clean|delete|delete-before|delete-all]",
110
+ args: "[add|ls|info|clean|delete|delete-before|delete-all|verify|prune-store]",
111
111
  desc: "Manage the package cache"
112
112
  },
113
113
  ci: {
@@ -14,7 +14,7 @@ var require = _vlt_createRequire(import.meta.filename);
14
14
  var package_default = {
15
15
  name: "@vltpkg/user-agent",
16
16
  description: "The User-Agent string that vlt sends with every outbound request",
17
- version: "1.1.1",
17
+ version: "1.2.0",
18
18
  repository: {
19
19
  type: "git",
20
20
  url: "git+https://github.com/vltpkg/vltpkg.git",
@@ -15,14 +15,14 @@ import {
15
15
  pairsToRecords,
16
16
  registrySelectionFields,
17
17
  registrySelectors
18
- } from "./chunk-6FT6K5YN.js";
18
+ } from "./chunk-5BD4QGW2.js";
19
19
  import {
20
20
  normalizeRegistryURL
21
- } from "./chunk-2PWSMJD7.js";
21
+ } from "./chunk-O44Z6MAV.js";
22
22
  import {
23
23
  getCommand,
24
24
  isRecordField
25
- } from "./chunk-CEHPRPGQ.js";
25
+ } from "./chunk-6A3XS52F.js";
26
26
  import {
27
27
  find
28
28
  } from "./chunk-HTOTG4TS.js";
@@ -33,7 +33,7 @@ import {
33
33
  defaultRegistries,
34
34
  defaultRegistryName,
35
35
  isObject
36
- } from "./chunk-VFBCWAOC.js";
36
+ } from "./chunk-G5BSQ6DP.js";
37
37
  import {
38
38
  error
39
39
  } from "./chunk-WZWDS3W4.js";
@@ -14,12 +14,12 @@ import {
14
14
  } from "./chunk-RIYFGX27.js";
15
15
  import {
16
16
  createHostContextsMap
17
- } from "./chunk-3LUM7NX5.js";
17
+ } from "./chunk-YFNQ6HZ3.js";
18
18
  import {
19
19
  stderr,
20
20
  stdout,
21
21
  styleTextStdout
22
- } from "./chunk-LR42WTKN.js";
22
+ } from "./chunk-UNWQVOLY.js";
23
23
  import {
24
24
  require_emoji_regex
25
25
  } from "./chunk-VTEFO2FT.js";
@@ -27,13 +27,13 @@ import {
27
27
  Query,
28
28
  actual,
29
29
  isRunResult
30
- } from "./chunk-JZJWASXL.js";
30
+ } from "./chunk-B2FK2HHL.js";
31
31
  import {
32
32
  Monorepo
33
- } from "./chunk-X2AWQGYG.js";
33
+ } from "./chunk-6G7MTZGS.js";
34
34
  import {
35
35
  isErrorWithCause
36
- } from "./chunk-VFBCWAOC.js";
36
+ } from "./chunk-G5BSQ6DP.js";
37
37
  import {
38
38
  error
39
39
  } from "./chunk-WZWDS3W4.js";
@@ -11,18 +11,18 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  asUnknownSpecPrefix
14
- } from "./chunk-2PWSMJD7.js";
14
+ } from "./chunk-O44Z6MAV.js";
15
15
  import {
16
16
  addKey,
17
17
  asDependency
18
- } from "./chunk-JZJWASXL.js";
18
+ } from "./chunk-B2FK2HHL.js";
19
19
  import {
20
20
  joinDepIDTuple,
21
21
  splitDepID
22
- } from "./chunk-YOE3VZFX.js";
22
+ } from "./chunk-SYGF27W7.js";
23
23
  import {
24
24
  Spec
25
- } from "./chunk-XKVU23NC.js";
25
+ } from "./chunk-G5NJ7CYI.js";
26
26
 
27
27
  // ../../src/cli-sdk/src/parse-add-remove-args.ts
28
28
  import { isAbsolute, relative, resolve } from "node:path";
@@ -12,15 +12,15 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  init,
14
14
  install
15
- } from "./chunk-JZJWASXL.js";
15
+ } from "./chunk-B2FK2HHL.js";
16
16
  import {
17
17
  commandUsage
18
- } from "./chunk-CBASIDQH.js";
18
+ } from "./chunk-55DYW2MP.js";
19
19
  import {
20
20
  asWSConfig,
21
21
  assertWSConfig,
22
22
  minimatch
23
- } from "./chunk-X2AWQGYG.js";
23
+ } from "./chunk-6G7MTZGS.js";
24
24
  import {
25
25
  load,
26
26
  save
@@ -14,7 +14,7 @@ import {
14
14
  defaultRegistryName,
15
15
  isErrorWithCause,
16
16
  isObject
17
- } from "./chunk-VFBCWAOC.js";
17
+ } from "./chunk-G5BSQ6DP.js";
18
18
  import {
19
19
  error
20
20
  } from "./chunk-WZWDS3W4.js";