@vltpkg/cli-js 1.3.6 → 1.3.8

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 (84) hide show
  1. package/{access-SFEGWG3Y.js → access-WLKANIOE.js} +8 -8
  2. package/{bugs-X2JHO4WZ.js → bugs-5Q3QSTWP.js} +17 -17
  3. package/{build-BK4ITRPX.js → build-XSFR63AW.js} +9 -9
  4. package/{cache-JRW72UJE.js → cache-UVPK5J5A.js} +13 -13
  5. package/chunk-3U6QWN62.js +45 -0
  6. package/{chunk-2XDF3JBH.js → chunk-43HNQWPQ.js} +6 -6
  7. package/chunk-4JAZZRKR.js +76 -0
  8. package/{chunk-F6ZN6TTL.js → chunk-5KOLUYXH.js} +61 -11
  9. package/{chunk-TY2UJ3SA.js → chunk-6BQKR2FM.js} +1 -1
  10. package/{chunk-PBBULTAG.js → chunk-6D54UN4T.js} +1 -1
  11. package/{chunk-FOSDT7YU.js → chunk-6P5CFJR7.js} +4 -4
  12. package/{chunk-J4NHRZX6.js → chunk-A2TSRXZD.js} +1 -1
  13. package/{chunk-IXAHSTBN.js → chunk-BGA3WB7H.js} +86 -10
  14. package/{chunk-GDYDW277.js → chunk-CB65DPZ2.js} +195 -195
  15. package/{chunk-VI7V6OCC.js → chunk-DL3H4EMY.js} +46 -19
  16. package/{chunk-O2B5SLP7.js → chunk-EL4GVZK5.js} +2 -2
  17. package/{chunk-HD6TAM7A.js → chunk-FIUUAQGC.js} +5 -5
  18. package/{chunk-64VFL4WI.js → chunk-GZ5MYMBT.js} +1 -1
  19. package/{chunk-X2WYIUFQ.js → chunk-H77JYU7F.js} +1 -1
  20. package/{chunk-BP3PQ67D.js → chunk-IBGFQR23.js} +16 -0
  21. package/{chunk-CRGWLUGC.js → chunk-IHXJVKAE.js} +1 -1
  22. package/{chunk-2XFFMF6G.js → chunk-IUL6MPP6.js} +4 -4
  23. package/{chunk-BCANUHR3.js → chunk-KMOOTBHM.js} +5 -1
  24. package/{chunk-WGSYVB4F.js → chunk-NWHKSRO3.js} +268 -21
  25. package/{chunk-JELA46YR.js → chunk-OAP2ROTL.js} +1 -1
  26. package/{chunk-AFUXQ3P4.js → chunk-OWMR2EDW.js} +1 -1
  27. package/{chunk-RAE3LNUK.js → chunk-PJJCFMLW.js} +3 -3
  28. package/chunk-QNDM4DVO.js +25 -0
  29. package/{chunk-XU5WNX4S.js → chunk-SE2FSMBR.js} +1 -0
  30. package/{chunk-JIQBZ2UT.js → chunk-SV4WK3KX.js} +2 -2
  31. package/{chunk-LHIDMYN2.js → chunk-TLY4VGMH.js} +1 -1
  32. package/{chunk-WS7BNE5S.js → chunk-WHLYMMI2.js} +3 -3
  33. package/{chunk-LFCZGP2L.js → chunk-WKA5UYNA.js} +3 -10
  34. package/{chunk-2XD7RUKI.js → chunk-XCDLOQZZ.js} +3 -3
  35. package/{chunk-TOKUDCSW.js → chunk-XDSZO74H.js} +6 -6
  36. package/{ci-6GQ3GMJK.js → ci-EDRETPUF.js} +10 -10
  37. package/cli-package.json +3 -1
  38. package/{config-6VRNS5F3.js → config-MVNXGEOQ.js} +8 -8
  39. package/{config-5VN6JXGK.js → config-OKBXU7TU.js} +10 -10
  40. package/{create-K7ROUCVJ.js → create-R7BXYJSU.js} +18 -18
  41. package/{deprecate-WRSZJ2WG.js → deprecate-YSUKBKQM.js} +11 -11
  42. package/{dist-tag-NSTCFNON.js → dist-tag-MIGYSR4F.js} +8 -8
  43. package/{docs-E2PATRJS.js → docs-4WVIN75H.js} +17 -17
  44. package/{exec-SV4RXF2E.js → exec-IXHDQLAM.js} +26 -18
  45. package/{exec-cache-K4LBRSRD.js → exec-cache-EA7GHIK7.js} +16 -16
  46. package/{exec-local-RT27P325.js → exec-local-GM4LH56M.js} +15 -15
  47. package/{help-XXKA42B7.js → help-TCXGBICU.js} +4 -4
  48. package/{init-IYCFQJPW.js → init-MWZDWQHM.js} +10 -10
  49. package/{install-RRCUQ34D.js → install-HPI5HU3C.js} +16 -16
  50. package/{list-WFYB66G7.js → list-2CX6REPJ.js} +21 -19
  51. package/{login-K6HTWO4J.js → login-RAY23CVG.js} +12 -12
  52. package/{logout-F6EI7WST.js → logout-ICB5OMGY.js} +8 -8
  53. package/outdated-FYHPXRMT.js +533 -0
  54. package/{pack-FX24JZR4.js → pack-E5MNPQXK.js} +11 -11
  55. package/package.json +1 -1
  56. package/{ping-6QRL622S.js → ping-REQ2KSAR.js} +8 -8
  57. package/{pkg-FPWX4VUE.js → pkg-YB4GSRII.js} +11 -11
  58. package/{profile-WAI5BGPU.js → profile-GKBW6GRI.js} +8 -8
  59. package/{publish-GI7T7TE2.js → publish-4ZQJYYLF.js} +17 -17
  60. package/{query-GC2DGBWT.js → query-SKXBF3MJ.js} +21 -19
  61. package/{registry-PY2L5ZWC.js → registry-MQJJCWJY.js} +5 -5
  62. package/registry-client-src-revalidate.js +58 -9
  63. package/{repo-CFXNFSY7.js → repo-ACPTZI2C.js} +17 -17
  64. package/{reporter-5QKWEQNH.js → reporter-4KK2JNGO.js} +10 -10
  65. package/{run-VFHTHV5N.js → run-YW3ITX2A.js} +15 -15
  66. package/{run-exec-OJEIP3WL.js → run-exec-7VQX3OFG.js} +15 -15
  67. package/security-archive-src-update-expired.js +1 -1
  68. package/{setup-CCM2QAVA.js → setup-PLEKCMXN.js} +15 -15
  69. package/{src-3MEJQYBG.js → src-GP7VLT7P.js} +2 -2
  70. package/{src-LLE3Q5NY.js → src-PXDFMQ6W.js} +6 -4
  71. package/{src-54SW7RQE.js → src-XQ7KVUVN.js} +14 -14
  72. package/{token-P5N54F4D.js → token-GB7RPE5J.js} +8 -8
  73. package/{uninstall-QJA3X4GY.js → uninstall-RLCECX37.js} +12 -12
  74. package/{unpublish-IAB6LNVC.js → unpublish-3ZXEAVHF.js} +8 -8
  75. package/{update-VZEF6QRY.js → update-VDZP6EZN.js} +25 -16
  76. package/{version-A6FPEDV5.js → version-MRELJPOK.js} +10 -10
  77. package/{view-SA6QU2NW.js → view-LCXMTGCJ.js} +76 -52
  78. package/vlr.js +1 -1
  79. package/vlrx.js +1 -1
  80. package/vlt.js +1 -1
  81. package/vlx.js +1 -1
  82. package/vlxl.js +1 -1
  83. package/{whoami-YDNKCWU7.js → whoami-PNRDBS45.js} +8 -8
  84. package/chunk-MXRSLXAC.js +0 -75
@@ -13,7 +13,7 @@ import {
13
13
  AbortError,
14
14
  SecurityArchive,
15
15
  pRetry
16
- } from "./chunk-2XD7RUKI.js";
16
+ } from "./chunk-XCDLOQZZ.js";
17
17
  import {
18
18
  Monorepo,
19
19
  PackageJson,
@@ -21,7 +21,7 @@ import {
21
21
  getUser,
22
22
  minimatch,
23
23
  platformCheck
24
- } from "./chunk-GDYDW277.js";
24
+ } from "./chunk-CB65DPZ2.js";
25
25
  import {
26
26
  asDepID,
27
27
  baseDepID,
@@ -36,10 +36,10 @@ import {
36
36
  joinExtra,
37
37
  splitDepID,
38
38
  splitExtra
39
- } from "./chunk-JIQBZ2UT.js";
39
+ } from "./chunk-SV4WK3KX.js";
40
40
  import {
41
41
  Spec as Spec2
42
- } from "./chunk-64VFL4WI.js";
42
+ } from "./chunk-GZ5MYMBT.js";
43
43
  import {
44
44
  load,
45
45
  walkUp
@@ -47,7 +47,7 @@ import {
47
47
  import {
48
48
  userAgent,
49
49
  userAgentHeaders
50
- } from "./chunk-TY2UJ3SA.js";
50
+ } from "./chunk-6BQKR2FM.js";
51
51
  import {
52
52
  graphStep,
53
53
  promiseSpawn
@@ -100,9 +100,10 @@ import {
100
100
  shortDependencyTypes,
101
101
  subset,
102
102
  tarballFormat
103
- } from "./chunk-BP3PQ67D.js";
103
+ } from "./chunk-IBGFQR23.js";
104
104
  import {
105
105
  error,
106
+ syntaxError,
106
107
  typeError
107
108
  } from "./chunk-WZWDS3W4.js";
108
109
  import {
@@ -4913,6 +4914,9 @@ var Node = class _Node {
4913
4914
  }
4914
4915
  };
4915
4916
  var copyPackageMetadata = (to, from) => {
4917
+ if (!from.integrity && !from.resolved) return;
4918
+ if (!to.integrity && !to.resolved) to.brotli = from.brotli;
4919
+ if (to.brotli !== from.brotli) return;
4916
4920
  to.integrity ??= from.integrity;
4917
4921
  to.resolved ??= from.resolved;
4918
4922
  if (from.resolvedFromLockfile && to.integrity && to.resolved) {
@@ -5629,6 +5633,85 @@ var runExecFG = async (options) => runExecImpl(options, runFG, execFG);
5629
5633
  // ../../src/dss-parser/src/index.ts
5630
5634
  var import_postcss_selector_parser = __toESM(require_dist(), 1);
5631
5635
 
5636
+ // ../../src/dss-parser/src/grammar.ts
5637
+ var pseudoClassNames = [
5638
+ "abandoned",
5639
+ "attr",
5640
+ "built",
5641
+ "confused",
5642
+ "cve",
5643
+ "cwe",
5644
+ "debug",
5645
+ "deprecated",
5646
+ "dev",
5647
+ "diff",
5648
+ "dist",
5649
+ "dynamic",
5650
+ "empty",
5651
+ "entropic",
5652
+ "env",
5653
+ "eval",
5654
+ "fs",
5655
+ "has",
5656
+ "host",
5657
+ "hostname",
5658
+ "is",
5659
+ "license",
5660
+ "link",
5661
+ "malware",
5662
+ "minified",
5663
+ "missing",
5664
+ "native",
5665
+ "network",
5666
+ "not",
5667
+ "obfuscated",
5668
+ "optional",
5669
+ "outdated",
5670
+ "overridden",
5671
+ "path",
5672
+ "peer",
5673
+ "prerelease",
5674
+ "private",
5675
+ "prod",
5676
+ "project",
5677
+ "published",
5678
+ "registry",
5679
+ "root",
5680
+ "scanned",
5681
+ "scope",
5682
+ "score",
5683
+ "scripts",
5684
+ "semver",
5685
+ "sev",
5686
+ "severity",
5687
+ "shell",
5688
+ "shrinkwrap",
5689
+ "spec",
5690
+ "squat",
5691
+ "suspicious",
5692
+ "tracker",
5693
+ "trivial",
5694
+ "type",
5695
+ "undesirable",
5696
+ "unknown",
5697
+ "unmaintained",
5698
+ "unpopular",
5699
+ "unstable",
5700
+ "v",
5701
+ "vuln",
5702
+ "vulnerable",
5703
+ "workspace"
5704
+ ];
5705
+ var combinatorNames = [">", "~", " "];
5706
+ var attributeOperatorNames = [
5707
+ "=",
5708
+ "^=",
5709
+ "$=",
5710
+ "~=",
5711
+ "*=",
5712
+ "|="
5713
+ ];
5714
+
5632
5715
  // ../../src/dss-parser/src/types.ts
5633
5716
  var isPostcssNodeWithChildren = (node) => "type" in node && "nodes" in node;
5634
5717
  var asPostcssNodeWithChildren = (node) => {
@@ -5755,7 +5838,68 @@ var pseudoCleanUpNeeded = /* @__PURE__ */ new Set([
5755
5838
  ":vulnerable"
5756
5839
  ]);
5757
5840
  var hasParamsToEscape = (node) => pseudoCleanUpNeeded.has(node.value);
5758
- var parse2 = (query) => {
5841
+ var pseudoClasses = new Set(pseudoClassNames);
5842
+ var combinators = new Set(combinatorNames);
5843
+ var attributeOperators = new Set(attributeOperatorNames);
5844
+ var selectorPseudos = /* @__PURE__ */ new Set(["has", "is", "not"]);
5845
+ var invalid = (message, found) => syntaxError(message, { code: "EQUERY", found });
5846
+ var validate = (selector, query, forgiving = false) => {
5847
+ const nodes = selector.nodes.filter((n) => n.type !== "comment");
5848
+ if (!nodes.length && !forgiving) {
5849
+ throw invalid("Empty selector", query);
5850
+ }
5851
+ nodes.forEach((node, i) => {
5852
+ if (node.type === "id" && !node.value || node.type === "attribute" && !node.attribute) {
5853
+ throw invalid(
5854
+ "Unsupported selector",
5855
+ node.type === "id" ? "#" : "[]"
5856
+ );
5857
+ }
5858
+ if (isCombinatorNode(node)) {
5859
+ if (forgiving) return;
5860
+ if (!combinators.has(node.value)) {
5861
+ throw syntaxError(`Unsupported combinator: ${node.value}`, {
5862
+ code: "EQUERY",
5863
+ found: node.value,
5864
+ validOptions: combinatorNames
5865
+ });
5866
+ }
5867
+ const next = nodes[i + 1];
5868
+ if (!next || isCombinatorNode(next)) {
5869
+ throw invalid("Dangling combinator", query);
5870
+ }
5871
+ } else if (isPseudoNode(node)) {
5872
+ const name = node.value.slice(1);
5873
+ if (!pseudoClasses.has(name)) {
5874
+ if (forgiving) return;
5875
+ throw invalid(
5876
+ `Unsupported pseudo-class: ${node.value}`,
5877
+ node.value
5878
+ );
5879
+ }
5880
+ if (selectorPseudos.has(name)) {
5881
+ for (const n of node.nodes) {
5882
+ validate(
5883
+ asSelectorNode(n),
5884
+ query,
5885
+ forgiving || name === "is"
5886
+ );
5887
+ }
5888
+ }
5889
+ } else if (isAttributeNode(node)) {
5890
+ if (!forgiving && node.operator && !attributeOperators.has(node.operator)) {
5891
+ throw invalid(
5892
+ `Unsupported attribute operator: ${node.operator}`,
5893
+ node.operator
5894
+ );
5895
+ }
5896
+ } else if (isTagNode(node) && node.value !== "{" && node.value !== "}" || isStringNode(node)) {
5897
+ throw invalid("Unsupported selector", node.value);
5898
+ }
5899
+ });
5900
+ };
5901
+ var parse2 = (query, { loose = false } = {}) => {
5902
+ if (!loose && !query.trim()) throw invalid("Empty query", query);
5759
5903
  const escapedQuery = escapeDots(escapeScopedNamesSlashes(query));
5760
5904
  const transformAst = (root2) => {
5761
5905
  root2.walk((node) => {
@@ -5765,6 +5909,7 @@ var parse2 = (query) => {
5765
5909
  if (isPseudoNode(node) && hasParamsToEscape(node)) {
5766
5910
  for (const n of node.nodes) {
5767
5911
  const selector = asSelectorNode(n);
5912
+ if (!selector.nodes.length) continue;
5768
5913
  selector.nodes.forEach((currentNode, index, arr) => {
5769
5914
  const nextNode = arr[index + 1];
5770
5915
  if (isCombinatorNode(currentNode) && isTagNode(nextNode)) {
@@ -5794,7 +5939,24 @@ var parse2 = (query) => {
5794
5939
  }
5795
5940
  });
5796
5941
  };
5797
- return (0, import_postcss_selector_parser.default)(transformAst).astSync(escapedQuery);
5942
+ let ast;
5943
+ try {
5944
+ ast = (0, import_postcss_selector_parser.default)(transformAst).astSync(escapedQuery);
5945
+ } catch (err) {
5946
+ const reason = err instanceof TypeError ? "unexpected end of input" : err.message;
5947
+ throw syntaxError(`Invalid query syntax: ${reason}`, {
5948
+ code: "EQUERY",
5949
+ found: query,
5950
+ cause: err
5951
+ });
5952
+ }
5953
+ if (!loose) {
5954
+ if (/(^|[^\\])(\\\\)*,\s*$/.test(query)) {
5955
+ throw invalid("Empty selector", query);
5956
+ }
5957
+ for (const s of ast.nodes) validate(s, query);
5958
+ }
5959
+ return ast;
5798
5960
  };
5799
5961
 
5800
5962
  // ../../src/query/src/error.ts
@@ -8948,7 +9110,7 @@ var Query = class {
8948
9110
  edges.add(edge);
8949
9111
  }
8950
9112
  }
8951
- const current = parse2(query);
9113
+ const current = parse2(query, { loose: true });
8952
9114
  const loose = asPostcssNodeWithChildren(current).nodes.length > 1;
8953
9115
  const {
8954
9116
  collect,
@@ -9003,7 +9165,7 @@ var Query = class {
9003
9165
  const tokens = [];
9004
9166
  const ast = (q) => {
9005
9167
  try {
9006
- return parse2(q);
9168
+ return parse2(q, { loose: true });
9007
9169
  } catch (_e) {
9008
9170
  return ast(q.slice(0, -1));
9009
9171
  }
@@ -9434,9 +9596,10 @@ var Graph = class {
9434
9596
  /**
9435
9597
  * Whether the lockfile on disk no longer matches this graph even
9436
9598
  * though no node changed, e.g. an importer edge spec was rewritten to
9437
- * the value saved to `package.json`, or the config options the graph
9438
- * was built with differ from the ones stored in the lockfile. Reify
9439
- * saves the lockfiles from its no-diff early return when set.
9599
+ * the value saved to `package.json`, a node dev/optional flag was
9600
+ * re-derived, or the config options the graph was built with differ
9601
+ * from the ones stored in the lockfile. Reify saves the lockfiles
9602
+ * from its no-diff early return when set.
9440
9603
  */
9441
9604
  lockfileStale = false;
9442
9605
  /**
@@ -9527,6 +9690,34 @@ var Graph = class {
9527
9690
  nextPeerContextIndex() {
9528
9691
  return ++this.currentPeerContextIndex;
9529
9692
  }
9693
+ /**
9694
+ * Re-derive node `dev`/`optional` flags: a node is dev/optional only
9695
+ * when every importer path crosses a dev/optional edge. Placement only
9696
+ * ever lowers these flags, so removed or retyped edges leave them
9697
+ * stale. Sets `lockfileStale` when any flag changes.
9698
+ */
9699
+ recomputeFlags() {
9700
+ const reach = (skip) => {
9701
+ const seen = new Set(this.importers);
9702
+ for (const node of seen) {
9703
+ for (const edge of node.edgesOut.values()) {
9704
+ if (edge.to && !skip(edge)) seen.add(edge.to);
9705
+ }
9706
+ }
9707
+ return seen;
9708
+ };
9709
+ const nonDev = reach((edge) => edge.dev);
9710
+ const nonOptional = reach((edge) => edge.optional);
9711
+ for (const node of this.nodes.values()) {
9712
+ const dev2 = !nonDev.has(node);
9713
+ const optional2 = !nonOptional.has(node);
9714
+ if (node.dev !== dev2 || node.optional !== optional2) {
9715
+ node.dev = dev2;
9716
+ node.optional = optional2;
9717
+ this.lockfileStale = true;
9718
+ }
9719
+ }
9720
+ }
9530
9721
  /**
9531
9722
  * Delete all nodes and edges that are unreachable from the importers.
9532
9723
  * The collection of deleted nodes is returned.
@@ -10070,7 +10261,9 @@ var loadNodes = (graph, nodes, options, actual2, throwOnMissingManifest) => {
10070
10261
  node.optional = optional2;
10071
10262
  node.brotli = brotli;
10072
10263
  node.integrity = integrity ?? referenceNode?.integrity;
10073
- node.resolved = type2 === "remote" ? filepath : resolved ?? referenceNode?.resolved;
10264
+ const refResolved = referenceNode?.resolved;
10265
+ const refResolvedUsable = !integrity || !refResolved || tarballFormat(refResolved) === "brotli" === brotli;
10266
+ node.resolved = type2 === "remote" ? filepath : resolved ?? (refResolvedUsable ? refResolved : void 0);
10074
10267
  node.resolvedFromLockfile = !!(node.integrity && node.resolved);
10075
10268
  node.projectRoot = graph.projectRoot;
10076
10269
  if (!node.resolved) node.setResolved();
@@ -11508,7 +11701,7 @@ var Breadcrumb = class {
11508
11701
  constructor(query) {
11509
11702
  this.#items = [];
11510
11703
  this.specificity = { idCounter: 0, commonCounter: 0 };
11511
- const ast = parse2(query);
11704
+ const ast = parse2(query, { loose: true });
11512
11705
  let afterCombinator = true;
11513
11706
  for (const item of ast.first.nodes) {
11514
11707
  const pseudoNode = isPseudoNode(item);
@@ -14171,6 +14364,7 @@ var buildIdealFromStartingGraph = async (options) => {
14171
14364
  options
14172
14365
  );
14173
14366
  }
14367
+ options.graph.recomputeFlags();
14174
14368
  return options.graph;
14175
14369
  };
14176
14370
 
@@ -14305,7 +14499,7 @@ import {
14305
14499
  stat as stat2,
14306
14500
  writeFile as writeFile3
14307
14501
  } from "node:fs/promises";
14308
- import { dirname as dirname5, relative as relative2 } from "node:path";
14502
+ import { dirname as dirname5, isAbsolute, relative as relative2 } from "node:path";
14309
14503
 
14310
14504
  // ../../src/cmd-shim/src/to-batch-syntax.ts
14311
14505
  var convertToSetCommand = (key, value) => convertToSetCommand_(key.trim(), value.trim());
@@ -14406,6 +14600,18 @@ var cmdShimIfExists = async (from, to, remover) => {
14406
14600
  }
14407
14601
  await writeShim(from, to, remover);
14408
14602
  };
14603
+ var cmdShim = async (from, to, remover) => {
14604
+ try {
14605
+ await stat2(from);
14606
+ await writeShim(from, to, remover);
14607
+ } catch (er) {
14608
+ throw error("Could not shim to executable file", {
14609
+ path: from,
14610
+ target: to,
14611
+ cause: er
14612
+ });
14613
+ }
14614
+ };
14409
14615
  var writeShim = async (from, to, remover) => {
14410
14616
  await Promise.all([
14411
14617
  remover.rm(to),
@@ -14430,6 +14636,7 @@ var writeShim = async (from, to, remover) => {
14430
14636
  };
14431
14637
  var writeShim_ = async (from, to, prog, args, variables) => {
14432
14638
  let shTarget = relative2(dirname5(to), from);
14639
+ const [dp0, basedir] = isAbsolute(shTarget) ? ["", ""] : ["%dp0%\\", "$basedir/"];
14433
14640
  let target = shTarget.split("/").join("\\");
14434
14641
  let longProg;
14435
14642
  let shProg = prog?.split("\\").join("/");
@@ -14440,8 +14647,8 @@ var writeShim_ = async (from, to, prog, args, variables) => {
14440
14647
  args = args || "";
14441
14648
  variables = variables || "";
14442
14649
  if (!prog) {
14443
- prog = `"%dp0%\\${target}"`;
14444
- shProg = `"$basedir/${shTarget}"`;
14650
+ prog = `"${dp0}${target}"`;
14651
+ shProg = `"${basedir}${shTarget}"`;
14445
14652
  pwshProg = shProg;
14446
14653
  args = "";
14447
14654
  target = "";
@@ -14450,8 +14657,8 @@ var writeShim_ = async (from, to, prog, args, variables) => {
14450
14657
  longProg = `"%dp0%\\${prog}.exe"`;
14451
14658
  shLongProg = `"$basedir/${prog}"`;
14452
14659
  pwshLongProg = `"$basedir/${prog}$exe"`;
14453
- target = `"%dp0%\\${target}"`;
14454
- shTarget = `"$basedir/${shTarget}"`;
14660
+ target = `"${dp0}${target}"`;
14661
+ shTarget = `"${basedir}${shTarget}"`;
14455
14662
  }
14456
14663
  const head = "@ECHO off\r\nGOTO start\r\n:find_dp0\r\nSET dp0=%~dp0\r\nEXIT /b\r\n:start\r\nSETLOCAL\r\nCALL :find_dp0\r\n";
14457
14664
  let cmd;
@@ -15169,15 +15376,21 @@ var uninstall = async (options, remove) => {
15169
15376
  const mainManifest = options.packageJson.read(options.projectRoot);
15170
15377
  const modifiers = GraphModifier.maybeLoad(options);
15171
15378
  const remover = new RollbackRemove();
15379
+ const monorepo = Monorepo.maybeLoad(options.projectRoot, {
15380
+ packageJson: options.packageJson,
15381
+ scurry: options.scurry
15382
+ });
15172
15383
  try {
15173
15384
  const act = load4({
15174
15385
  ...options,
15386
+ monorepo,
15175
15387
  modifiers: void 0,
15176
15388
  mainManifest,
15177
15389
  loadManifests: true
15178
15390
  });
15179
15391
  const graph = await build3({
15180
15392
  ...options,
15393
+ monorepo,
15181
15394
  actual: act,
15182
15395
  remove,
15183
15396
  mainManifest,
@@ -15227,6 +15440,30 @@ var uninstall = async (options, remove) => {
15227
15440
  // ../../src/graph/src/update.ts
15228
15441
  import { existsSync as existsSync5, rmSync as rmSync3 } from "node:fs";
15229
15442
  import { resolve as resolve12 } from "node:path";
15443
+ var startingGraph = (options, monorepo) => {
15444
+ const fresh = () => new Graph({ ...options, monorepo });
15445
+ if (!options.monorepo || !monorepo) return fresh();
15446
+ const selected = new Set(
15447
+ [...options.monorepo.values()].map((ws) => ws.id)
15448
+ );
15449
+ if (selected.size === monorepo.size) return fresh();
15450
+ let graph;
15451
+ try {
15452
+ graph = load3({ ...options, monorepo });
15453
+ } catch (err) {
15454
+ if (isPathSecurityError(err)) throw err;
15455
+ graph = load4({ ...options, monorepo, loadManifests: true });
15456
+ }
15457
+ for (const importer of graph.importers) {
15458
+ if (!selected.has(importer.id)) continue;
15459
+ for (const edge of importer.edgesOut.values()) {
15460
+ edge.to?.edgesIn.delete(edge);
15461
+ }
15462
+ importer.edgesOut.clear();
15463
+ }
15464
+ graph.gc();
15465
+ return graph;
15466
+ };
15230
15467
  var update = async (options) => {
15231
15468
  let mainManifest = void 0;
15232
15469
  try {
@@ -15243,6 +15480,10 @@ var update = async (options) => {
15243
15480
  }
15244
15481
  const modifiers = GraphModifier.maybeLoad(options);
15245
15482
  const remover = new RollbackRemove();
15483
+ const monorepo = Monorepo.maybeLoad(options.projectRoot, {
15484
+ packageJson: options.packageJson,
15485
+ scurry: options.scurry
15486
+ });
15246
15487
  try {
15247
15488
  const done = graphStep("build");
15248
15489
  const graph = await buildIdealFromStartingGraph({
@@ -15251,13 +15492,17 @@ var update = async (options) => {
15251
15492
  remove: Object.assign(/* @__PURE__ */ new Map(), {
15252
15493
  modifiedDependencies: false
15253
15494
  }),
15254
- graph: new Graph({ ...options, mainManifest }),
15495
+ graph: startingGraph(
15496
+ { ...options, mainManifest, modifiers },
15497
+ monorepo
15498
+ ),
15255
15499
  modifiers,
15256
15500
  remover
15257
15501
  });
15258
15502
  done();
15259
15503
  const act = load4({
15260
15504
  ...options,
15505
+ monorepo,
15261
15506
  mainManifest,
15262
15507
  loadManifests: true
15263
15508
  });
@@ -15591,6 +15836,7 @@ var install = async (options, add) => {
15591
15836
  export {
15592
15837
  asDependency,
15593
15838
  addKey,
15839
+ Edge,
15594
15840
  asNode,
15595
15841
  run,
15596
15842
  runFG,
@@ -15606,6 +15852,7 @@ export {
15606
15852
  humanReadableOutput,
15607
15853
  mermaidOutput,
15608
15854
  findCmdShimIfExists,
15855
+ cmdShim,
15609
15856
  RollbackRemove,
15610
15857
  GraphModifier,
15611
15858
  init,
@@ -34,7 +34,7 @@ var run = async (command) => {
34
34
  if (command) {
35
35
  process.argv.splice(2, 0, command);
36
36
  }
37
- const vlt = await import("./src-54SW7RQE.js");
37
+ const vlt = await import("./src-XQ7KVUVN.js");
38
38
  await vlt.default();
39
39
  };
40
40
 
@@ -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
  stderr
14
- } from "./chunk-TOKUDCSW.js";
14
+ } from "./chunk-XDSZO74H.js";
15
15
  import {
16
16
  urlOpen
17
17
  } from "./chunk-APMYKJI2.js";
@@ -12,16 +12,16 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  init,
14
14
  install
15
- } from "./chunk-WGSYVB4F.js";
15
+ } from "./chunk-NWHKSRO3.js";
16
16
  import {
17
17
  commandUsage
18
- } from "./chunk-LHIDMYN2.js";
18
+ } from "./chunk-TLY4VGMH.js";
19
19
  import {
20
20
  assertWSConfig,
21
21
  minimatch,
22
22
  resolveWSConfig,
23
23
  splitNegatedPatterns
24
- } from "./chunk-GDYDW277.js";
24
+ } from "./chunk-CB65DPZ2.js";
25
25
  import {
26
26
  load,
27
27
  save
@@ -0,0 +1,25 @@
1
+ var global = globalThis;
2
+ import {Buffer} from "node:buffer";
3
+ import {setTimeout as _vlt_setTimeout,clearTimeout as _vlt_clearTimeout,setImmediate as _vlt_setImmediate,clearImmediate as _vlt_clearImmediate,setInterval as _vlt_setInterval,clearInterval as _vlt_clearInterval} from "node:timers";
4
+ globalThis.setTimeout = _vlt_setTimeout;
5
+ globalThis.clearTimeout = _vlt_clearTimeout;
6
+ globalThis.setImmediate = _vlt_setImmediate;
7
+ globalThis.clearImmediate = _vlt_clearImmediate;
8
+ globalThis.setInterval = _vlt_setInterval;
9
+ globalThis.clearInterval = _vlt_clearInterval;
10
+ import {createRequire as _vlt_createRequire} from "node:module";
11
+ var require = _vlt_createRequire(import.meta.filename);
12
+ import {
13
+ getTokenByURL,
14
+ registryKeys
15
+ } from "./chunk-5KOLUYXH.js";
16
+
17
+ // ../../src/cli-sdk/src/query-auth.ts
18
+ var createGetAuthHeader = (conf) => {
19
+ const keys = registryKeys(conf.options);
20
+ return async (url) => getTokenByURL(url, conf.options.identity, keys);
21
+ };
22
+
23
+ export {
24
+ createGetAuthHeader
25
+ };
@@ -1096,6 +1096,7 @@ var canonicalCommands = {
1096
1096
  logout: "logout",
1097
1097
  list: "list",
1098
1098
  ls: "ls",
1099
+ outdated: "outdated",
1099
1100
  pack: "pack",
1100
1101
  ping: "ping",
1101
1102
  pkg: "pkg",
@@ -11,12 +11,12 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  Spec as Spec2
14
- } from "./chunk-64VFL4WI.js";
14
+ } from "./chunk-GZ5MYMBT.js";
15
15
  import {
16
16
  Spec,
17
17
  currentDefaultRegistryName,
18
18
  defaultRegistryName
19
- } from "./chunk-BP3PQ67D.js";
19
+ } from "./chunk-IBGFQR23.js";
20
20
  import {
21
21
  error
22
22
  } from "./chunk-WZWDS3W4.js";
@@ -12,7 +12,7 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  commandAliases,
14
14
  jack
15
- } from "./chunk-XU5WNX4S.js";
15
+ } from "./chunk-SE2FSMBR.js";
16
16
 
17
17
  // ../../src/cli-sdk/src/config/usage.ts
18
18
  var toArr = (v) => Array.isArray(v) ? v : [v];
@@ -13,10 +13,10 @@ import {
13
13
  actual,
14
14
  callLimit,
15
15
  createVirtualRoot
16
- } from "./chunk-WGSYVB4F.js";
16
+ } from "./chunk-NWHKSRO3.js";
17
17
  import {
18
18
  SecurityArchive
19
- } from "./chunk-2XD7RUKI.js";
19
+ } from "./chunk-XCDLOQZZ.js";
20
20
  import {
21
21
  error
22
22
  } from "./chunk-WZWDS3W4.js";
@@ -140,7 +140,7 @@ var reloadConfig = async (folder) => {
140
140
  unload("project");
141
141
  } catch {
142
142
  }
143
- const { Config } = await import("./config-6VRNS5F3.js");
143
+ const { Config } = await import("./config-MVNXGEOQ.js");
144
144
  return Config.load(folder, process.argv, true);
145
145
  };
146
146
 
@@ -11,22 +11,16 @@ 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-AFUXQ3P4.js";
14
+ } from "./chunk-OWMR2EDW.js";
15
15
  import {
16
16
  stderr
17
- } from "./chunk-TOKUDCSW.js";
17
+ } from "./chunk-XDSZO74H.js";
18
18
  import {
19
19
  mermaidOutput
20
- } from "./chunk-WGSYVB4F.js";
20
+ } from "./chunk-NWHKSRO3.js";
21
21
  import {
22
22
  ViewClass
23
23
  } from "./chunk-4KCU2KZL.js";
24
- import {
25
- getTokenByURL
26
- } from "./chunk-F6ZN6TTL.js";
27
-
28
- // ../../src/cli-sdk/src/query-auth.ts
29
- var createGetAuthHeader = (conf) => async (url) => getTokenByURL(url, conf.options.identity);
30
24
 
31
25
  // ../../src/cli-sdk/src/mermaid-image-view.ts
32
26
  var MermaidImageView = class extends ViewClass {
@@ -53,6 +47,5 @@ var MermaidImageView = class extends ViewClass {
53
47
  };
54
48
 
55
49
  export {
56
- createGetAuthHeader,
57
50
  MermaidImageView
58
51
  };
@@ -13,10 +13,10 @@ import {
13
13
  asDepID,
14
14
  baseDepID,
15
15
  splitDepID
16
- } from "./chunk-JIQBZ2UT.js";
16
+ } from "./chunk-SV4WK3KX.js";
17
17
  import {
18
18
  userAgent
19
- } from "./chunk-TY2UJ3SA.js";
19
+ } from "./chunk-6BQKR2FM.js";
20
20
  import {
21
21
  I
22
22
  } from "./chunk-U7TEQCBN.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-XNLSTHDK.js";
26
26
  import {
27
27
  defaultRegistryName
28
- } from "./chunk-BP3PQ67D.js";
28
+ } from "./chunk-IBGFQR23.js";
29
29
  import {
30
30
  error
31
31
  } from "./chunk-WZWDS3W4.js";