@vltpkg/cli-js 1.4.0 → 1.6.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 (105) hide show
  1. package/{access-422UGEWN.js → access-AJ654YKY.js} +13 -12
  2. package/{bugs-RED7Y33Q.js → bugs-N73DVYHD.js} +32 -25
  3. package/{build-IHMPBWRO.js → build-VZ3EZKMM.js} +65 -21
  4. package/{cache-FJP2RZJX.js → cache-VROEWG2C.js} +20 -17
  5. package/cache-unzip-src-unzip.js +58 -15
  6. package/{chunk-TPRK6IDA.js → chunk-22LZBDEC.js} +2 -2
  7. package/chunk-36UIE654.js +6248 -0
  8. package/{chunk-UGCKF5ZE.js → chunk-3JIN46K5.js} +1 -1
  9. package/{chunk-OAJ3PO3Z.js → chunk-44AWMA4F.js} +25 -13
  10. package/chunk-4E65BBTM.js +77 -0
  11. package/{chunk-SR2VOY5J.js → chunk-4GMNWW4C.js} +1 -1
  12. package/{chunk-5IJTPZXP.js → chunk-6D3QAFNZ.js} +1 -1
  13. package/{chunk-X4FVR4R5.js → chunk-75HGJVNG.js} +12 -10
  14. package/{chunk-THSYN5EK.js → chunk-7M2VTFLP.js} +12 -1
  15. package/{chunk-2AMOC4DN.js → chunk-ANW36H4T.js} +4 -4
  16. package/chunk-B6RIGNEO.js +626 -0
  17. package/{chunk-FLH4YC6W.js → chunk-BF5DRGRZ.js} +60 -15
  18. package/chunk-BH5CVXNY.js +115 -0
  19. package/{chunk-PLG3OYCX.js → chunk-CAV7FKWQ.js} +3 -2
  20. package/{chunk-C23TDXRG.js → chunk-CYK6I4M6.js} +1 -1
  21. package/chunk-DXED4ARV.js +436 -0
  22. package/chunk-E74WGW5C.js +49 -0
  23. package/{chunk-WF6KLKRN.js → chunk-EFHOWRKU.js} +103 -1
  24. package/chunk-EMTGRCSE.js +1111 -0
  25. package/{chunk-5Y4SYLJ2.js → chunk-EYGOEAJM.js} +1 -1
  26. package/{chunk-OVPHE4O7.js → chunk-F5LZMLAQ.js} +5335 -10902
  27. package/{chunk-HZXJ423P.js → chunk-FXD3IV2S.js} +4 -2
  28. package/chunk-GCTREKA4.js +115 -0
  29. package/{chunk-ZJMJ7MCT.js → chunk-GEQFMH5M.js} +1 -1
  30. package/{chunk-ISE4IRHF.js → chunk-GZVI75KX.js} +7 -14
  31. package/chunk-HOF7LEIC.js +24 -0
  32. package/{chunk-LHPEBLOU.js → chunk-HT6FS4VB.js} +1 -1
  33. package/{chunk-PHJJPY5G.js → chunk-IXAMCWIT.js} +5 -5
  34. package/{chunk-ASLX43R3.js → chunk-JCNI6ZHH.js} +7 -5
  35. package/chunk-JV5XR5JQ.js +349 -0
  36. package/{chunk-7T3XAYP4.js → chunk-KD5ZK72K.js} +1 -1
  37. package/{chunk-FZUYGJZU.js → chunk-KVWGMSPW.js} +137 -19
  38. package/{chunk-TO23PR7J.js → chunk-LCLRP64K.js} +14 -12
  39. package/{chunk-QCSUWACA.js → chunk-LGQVZTYR.js} +8 -36
  40. package/{chunk-5RHABCYI.js → chunk-LP3ORD3D.js} +143 -17
  41. package/chunk-MCDLJZXT.js +82 -0
  42. package/{chunk-DNRR3XMG.js → chunk-N6HV7JWC.js} +1 -1
  43. package/chunk-O6MQ7NN6.js +1155 -0
  44. package/{chunk-GIIAODRI.js → chunk-PC2HOBAQ.js} +7 -5
  45. package/{chunk-APMYKJI2.js → chunk-QNHBAGXQ.js} +1 -1
  46. package/chunk-RBQO54TG.js +59 -0
  47. package/chunk-SUU2WETN.js +268 -0
  48. package/{chunk-I7UMHYZX.js → chunk-TQQO2F56.js} +113 -1187
  49. package/{chunk-4UCADW6S.js → chunk-TWDSXQPN.js} +9 -7
  50. package/{chunk-MKWPTN3C.js → chunk-VLVMLSIF.js} +2 -2
  51. package/chunk-W4T5CGCO.js +52 -0
  52. package/{chunk-5TNXLRW2.js → chunk-YTDABXPD.js} +50 -12
  53. package/{ci-YSKNNO5M.js → ci-3BVMVQIT.js} +35 -13
  54. package/cli-package.json +3 -1
  55. package/{config-HO7GY3QT.js → config-2KQV7N5A.js} +16 -13
  56. package/{config-CSPCDMR3.js → config-EKHBW6I5.js} +12 -9
  57. package/{create-2TJT3AHJ.js → create-QVHNOIV3.js} +35 -29
  58. package/{deprecate-7FRJI2RL.js → deprecate-E254QBH6.js} +17 -15
  59. package/{dist-tag-WCFF5OEG.js → dist-tag-SITRFD7O.js} +13 -12
  60. package/{docs-JMBPTU23.js → docs-IDL2P7CA.js} +32 -25
  61. package/{exec-FBOUKZZ2.js → exec-7BK2W2WL.js} +35 -29
  62. package/{exec-cache-X3ZWM5S3.js → exec-cache-VY46L7DR.js} +27 -21
  63. package/{exec-local-Y3KQC22N.js → exec-local-D7R5T3DF.js} +26 -20
  64. package/{help-PUKVH5X7.js → help-RMRIEJQL.js} +6 -5
  65. package/{init-GOKAQXXZ.js → init-BGW4HJ6V.js} +15 -11
  66. package/{install-XFN4UFOC.js → install-U5GATZ2N.js} +144 -49
  67. package/{list-43JFFG5D.js → list-3VG4M2XL.js} +41 -28
  68. package/{login-RSTZKNKN.js → login-PHQWI6S6.js} +19 -16
  69. package/{logout-4576FFXZ.js → logout-DJCOGRFF.js} +13 -12
  70. package/{outdated-ACQ5A2Y7.js → outdated-JH3O6R3Y.js} +27 -22
  71. package/{pack-QQVJ3G25.js → pack-U5W5YWHK.js} +23 -18
  72. package/package.json +1 -1
  73. package/{ping-QCDQQRO5.js → ping-EKX43AOW.js} +13 -12
  74. package/{pkg-CSOJV7UC.js → pkg-SW5GMERT.js} +19 -14
  75. package/{profile-VL4HPW3N.js → profile-UGDRDMQ6.js} +13 -12
  76. package/{publish-2YBO6ZXE.js → publish-HTWKK3NN.js} +60 -45
  77. package/{query-IHHFMJRT.js → query-YE3FUVGG.js} +43 -30
  78. package/{registry-W7BRZZZ2.js → registry-ZGGWVLBM.js} +7 -7
  79. package/registry-client-src-revalidate.js +76 -22
  80. package/{repo-L3BXAAWS.js → repo-WDOCU6SE.js} +32 -25
  81. package/{reporter-5NYOHBO7.js → reporter-N5PAXB26.js} +121 -17
  82. package/{run-AMUUVLTI.js → run-IPARVIIQ.js} +26 -20
  83. package/{run-exec-5W3XWQZA.js → run-exec-C4RTREEW.js} +26 -20
  84. package/security-archive-src-update-expired.js +66 -21
  85. package/{setup-TFM4GJF7.js → setup-SYYUEHZL.js} +212 -32
  86. package/skills-KA2VR5Q5.js +480 -0
  87. package/skills-UBBMSBDQ.js +416 -0
  88. package/{src-4CYCUWZL.js → src-FUSTSM4J.js} +33 -22
  89. package/{src-I3GMULFP.js → src-QO5G2S4O.js} +11 -8
  90. package/{src-LUTN2ODD.js → src-W2VQULRG.js} +2 -2
  91. package/{token-OANOBE3G.js → token-UQNABECH.js} +15 -13
  92. package/{uninstall-YXTQ4AIZ.js → uninstall-FHBJ3OUV.js} +59 -18
  93. package/{unpublish-SZXYMYIU.js → unpublish-APJTEUBA.js} +31 -16
  94. package/{update-FHLMWGIM.js → update-NWZTL4S7.js} +52 -25
  95. package/{version-ZWFCTU5V.js → version-EMKKTL77.js} +20 -14
  96. package/{view-NFNJXMLV.js → view-BUUI33RV.js} +17 -15
  97. package/vlr.js +1 -1
  98. package/vlrx.js +1 -1
  99. package/vlt.js +1 -1
  100. package/vlx.js +1 -1
  101. package/vlxl.js +1 -1
  102. package/{whoami-O7GOSGCI.js → whoami-F6BSXGQ2.js} +13 -12
  103. package/chunk-G2YT2GWF.js +0 -120
  104. package/chunk-T6FBP4OU.js +0 -76
  105. package/chunk-U7TEQCBN.js +0 -880
@@ -9,27 +9,28 @@ globalThis.setInterval = _vlt_setInterval;
9
9
  globalThis.clearInterval = _vlt_clearInterval;
10
10
  import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
- import {
13
- resolveRegistry
14
- } from "./chunk-THSYN5EK.js";
15
12
  import {
16
13
  commandUsage
17
- } from "./chunk-LHPEBLOU.js";
18
- import "./chunk-5IJTPZXP.js";
19
- import "./chunk-WF6KLKRN.js";
14
+ } from "./chunk-HT6FS4VB.js";
15
+ import {
16
+ resolveRegistry
17
+ } from "./chunk-7M2VTFLP.js";
18
+ import "./chunk-EFHOWRKU.js";
19
+ import "./chunk-6D3QAFNZ.js";
20
20
  import {
21
21
  RegistryClient
22
- } from "./chunk-OAJ3PO3Z.js";
23
- import "./chunk-APMYKJI2.js";
22
+ } from "./chunk-44AWMA4F.js";
23
+ import "./chunk-QNHBAGXQ.js";
24
+ import "./chunk-GEQFMH5M.js";
24
25
  import {
25
26
  assertOk
26
- } from "./chunk-SR2VOY5J.js";
27
- import "./chunk-ZJMJ7MCT.js";
28
- import "./chunk-U7TEQCBN.js";
27
+ } from "./chunk-4GMNWW4C.js";
28
+ import "./chunk-SUU2WETN.js";
29
+ import "./chunk-B6RIGNEO.js";
29
30
  import "./chunk-XNLSTHDK.js";
30
31
  import "./chunk-PDWPFR5T.js";
31
32
  import "./chunk-Y5PA7DVK.js";
32
- import "./chunk-FLH4YC6W.js";
33
+ import "./chunk-BF5DRGRZ.js";
33
34
  import {
34
35
  error
35
36
  } from "./chunk-WZWDS3W4.js";
@@ -14,46 +14,53 @@ import {
14
14
  } from "./chunk-CLVRCGOZ.js";
15
15
  import {
16
16
  openUrl
17
- } from "./chunk-TPRK6IDA.js";
17
+ } from "./chunk-22LZBDEC.js";
18
18
  import {
19
19
  createHostContextsMap
20
- } from "./chunk-ASLX43R3.js";
21
- import "./chunk-FZUYGJZU.js";
22
- import "./chunk-QCSUWACA.js";
23
- import "./chunk-G2YT2GWF.js";
24
- import "./chunk-5Y4SYLJ2.js";
20
+ } from "./chunk-JCNI6ZHH.js";
25
21
  import {
26
- PackageInfoClient
27
- } from "./chunk-TO23PR7J.js";
28
- import "./chunk-SRWDPPLX.js";
29
- import "./chunk-WGDTG44V.js";
30
- import "./chunk-THSYN5EK.js";
31
- import {
32
- Query,
33
22
  actual
34
- } from "./chunk-OVPHE4O7.js";
23
+ } from "./chunk-36UIE654.js";
24
+ import {
25
+ Query
26
+ } from "./chunk-F5LZMLAQ.js";
35
27
  import {
36
28
  SecurityArchive
37
- } from "./chunk-5TNXLRW2.js";
29
+ } from "./chunk-YTDABXPD.js";
30
+ import "./chunk-KVWGMSPW.js";
31
+ import "./chunk-LGQVZTYR.js";
32
+ import "./chunk-EYGOEAJM.js";
38
33
  import {
39
34
  commandUsage
40
- } from "./chunk-LHPEBLOU.js";
41
- import "./chunk-I7UMHYZX.js";
35
+ } from "./chunk-HT6FS4VB.js";
36
+ import {
37
+ PackageInfoClient
38
+ } from "./chunk-LCLRP64K.js";
39
+ import "./chunk-SRWDPPLX.js";
40
+ import "./chunk-JV5XR5JQ.js";
41
+ import "./chunk-EMTGRCSE.js";
42
+ import "./chunk-TQQO2F56.js";
42
43
  import "./chunk-4KCU2KZL.js";
43
- import "./chunk-PLG3OYCX.js";
44
+ import "./chunk-WGDTG44V.js";
45
+ import "./chunk-E74WGW5C.js";
46
+ import "./chunk-GCTREKA4.js";
47
+ import "./chunk-MCDLJZXT.js";
48
+ import "./chunk-7M2VTFLP.js";
49
+ import "./chunk-EFHOWRKU.js";
50
+ import "./chunk-CAV7FKWQ.js";
44
51
  import {
45
52
  Spec
46
- } from "./chunk-5IJTPZXP.js";
47
- import "./chunk-WF6KLKRN.js";
53
+ } from "./chunk-6D3QAFNZ.js";
48
54
  import "./chunk-HTOTG4TS.js";
49
- import "./chunk-APMYKJI2.js";
50
- import "./chunk-SR2VOY5J.js";
51
- import "./chunk-ZJMJ7MCT.js";
52
- import "./chunk-U7TEQCBN.js";
55
+ import "./chunk-QNHBAGXQ.js";
56
+ import "./chunk-GEQFMH5M.js";
57
+ import "./chunk-4GMNWW4C.js";
58
+ import "./chunk-SUU2WETN.js";
59
+ import "./chunk-B6RIGNEO.js";
53
60
  import "./chunk-XNLSTHDK.js";
54
61
  import "./chunk-PDWPFR5T.js";
55
62
  import "./chunk-Y5PA7DVK.js";
56
- import "./chunk-FLH4YC6W.js";
63
+ import "./chunk-BF5DRGRZ.js";
57
64
  import {
58
65
  error
59
66
  } from "./chunk-WZWDS3W4.js";
@@ -10,41 +10,57 @@ globalThis.clearInterval = _vlt_clearInterval;
10
10
  import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
+ actual,
13
14
  build
14
- } from "./chunk-OVPHE4O7.js";
15
- import "./chunk-5TNXLRW2.js";
15
+ } from "./chunk-36UIE654.js";
16
+ import "./chunk-F5LZMLAQ.js";
17
+ import "./chunk-YTDABXPD.js";
16
18
  import {
17
19
  commandUsage
18
- } from "./chunk-LHPEBLOU.js";
19
- import "./chunk-I7UMHYZX.js";
20
- import "./chunk-PLG3OYCX.js";
21
- import "./chunk-5IJTPZXP.js";
22
- import "./chunk-WF6KLKRN.js";
20
+ } from "./chunk-HT6FS4VB.js";
21
+ import {
22
+ globalBinsLines,
23
+ linkGlobalBins,
24
+ resolveGlobalBinDir
25
+ } from "./chunk-O6MQ7NN6.js";
26
+ import "./chunk-BH5CVXNY.js";
27
+ import "./chunk-JV5XR5JQ.js";
28
+ import "./chunk-EMTGRCSE.js";
29
+ import "./chunk-TQQO2F56.js";
30
+ import "./chunk-GCTREKA4.js";
31
+ import "./chunk-MCDLJZXT.js";
32
+ import "./chunk-7M2VTFLP.js";
33
+ import "./chunk-EFHOWRKU.js";
34
+ import "./chunk-CAV7FKWQ.js";
35
+ import "./chunk-6D3QAFNZ.js";
23
36
  import "./chunk-HTOTG4TS.js";
24
- import "./chunk-ZJMJ7MCT.js";
25
- import "./chunk-U7TEQCBN.js";
37
+ import "./chunk-GEQFMH5M.js";
38
+ import "./chunk-SUU2WETN.js";
39
+ import "./chunk-B6RIGNEO.js";
26
40
  import "./chunk-XNLSTHDK.js";
27
41
  import "./chunk-PDWPFR5T.js";
28
42
  import "./chunk-Y5PA7DVK.js";
29
43
  import {
30
44
  isErrorWithCause
31
- } from "./chunk-FLH4YC6W.js";
45
+ } from "./chunk-BF5DRGRZ.js";
32
46
  import {
33
47
  error
34
48
  } from "./chunk-WZWDS3W4.js";
35
49
  import "./chunk-PZLD7RTK.js";
36
50
 
37
51
  // ../../src/cli-sdk/src/commands/build.ts
52
+ var skippedMessage = (count, reason) => `${count} package${count === 1 ? "" : "s"} not built, ${reason === "unscanned" ? "Socket has not scanned them yet" : "security data timed out"}. Run "vlt build" again later.`;
38
53
  var views = {
39
54
  human: (result) => {
40
55
  const successCount = result.success.length;
41
56
  const failureCount = result.failure.length;
57
+ const skippedCount = result.skipped?.length ?? 0;
42
58
  const messages = [];
43
59
  if (successCount > 0) {
44
60
  messages.push(
45
61
  `\u{1F528} Built ${successCount} package${successCount === 1 ? "" : "s"} successfully.`
46
62
  );
47
- } else {
63
+ } else if (!skippedCount) {
48
64
  messages.push("\u{1F4E6} All packages are already built.");
49
65
  }
50
66
  if (failureCount > 0) {
@@ -53,23 +69,30 @@ var views = {
53
69
  failureCount === 1 ? "" : "s"} failed to build.`
54
70
  );
55
71
  }
72
+ if (skippedCount > 0) {
73
+ messages.push(
74
+ `\u23F3 ${skippedMessage(skippedCount, result.skippedReason)}`
75
+ );
76
+ }
77
+ if (result.global)
78
+ messages.push(...globalBinsLines(result.global));
56
79
  return messages.join("\n");
57
80
  },
58
81
  json: (result) => {
59
- const successList = result.success.map((node) => ({
82
+ const toJSON = (node) => ({
60
83
  id: node.id,
61
84
  name: node.name,
62
85
  version: node.version
63
- }));
64
- const failureList = result.failure.map((node) => ({
65
- id: node.id,
66
- name: node.name,
67
- version: node.version
68
- }));
86
+ });
87
+ const successList = result.success.map(toJSON);
88
+ const failureList = result.failure.map(toJSON);
89
+ const skippedList = result.skipped?.map(toJSON) ?? [];
69
90
  return {
70
91
  success: successList,
71
92
  failure: failureList,
72
- message: successList.length > 0 ? `Built ${successList.length} package${successList.length === 1 ? "" : "s"}.` : "No packages needed building."
93
+ ...skippedList.length ? { skipped: skippedList, skippedReason: result.skippedReason } : {},
94
+ message: successList.length > 0 ? `Built ${successList.length} package${successList.length === 1 ? "" : "s"}.` : skippedList.length ? skippedMessage(skippedList.length, result.skippedReason) : "No packages needed building.",
95
+ ...result.global ? { global: result.global } : null
73
96
  };
74
97
  }
75
98
  };
@@ -92,17 +115,22 @@ var usage = () => commandUsage({
92
115
  target: {
93
116
  value: "<query>",
94
117
  description: "Query selector to filter packages using DSS syntax."
118
+ },
119
+ global: {
120
+ description: "Build packages installed in the global project."
95
121
  }
96
122
  }
97
123
  });
98
124
  var isGraphRunError = (error2) => typeof error2 === "object" && error2 !== null && "code" in error2 && error2.code === "GRAPHRUN_TRAVERSAL" && "node" in error2;
99
125
  var command = async (conf) => {
100
126
  const { options, projectRoot } = conf;
127
+ const binDir = conf.globalRoot ? await resolveGlobalBinDir(conf) : void 0;
128
+ let result;
101
129
  try {
102
130
  const targetOption = conf.get("target");
103
131
  const targetPositional = conf.positionals[0];
104
132
  const target = targetOption || targetPositional || ":scripts:not(:built):not(:malware)";
105
- const result = await build({
133
+ result = await build({
106
134
  ...options,
107
135
  projectRoot,
108
136
  packageJson: options.packageJson,
@@ -110,7 +138,6 @@ var command = async (conf) => {
110
138
  scurry: options.scurry,
111
139
  target
112
140
  });
113
- return result;
114
141
  } catch (cause) {
115
142
  const graphRunError = isErrorWithCause(cause) && isGraphRunError(cause.cause) ? cause.cause : void 0;
116
143
  if (graphRunError?.code === "GRAPHRUN_TRAVERSAL") {
@@ -122,6 +149,23 @@ var command = async (conf) => {
122
149
  }
123
150
  throw error("Build failed", { cause });
124
151
  }
152
+ if (!binDir) return result;
153
+ const graph = actual.load({
154
+ ...options,
155
+ projectRoot,
156
+ mainManifest: options.packageJson.read(projectRoot),
157
+ monorepo: options.monorepo,
158
+ scurry: options.scurry,
159
+ loadManifests: true
160
+ });
161
+ const global = await linkGlobalBins(graph, {
162
+ projectRoot,
163
+ scurry: options.scurry,
164
+ force: options.force,
165
+ binDir,
166
+ fallback: () => resolveGlobalBinDir(conf, { selfUnwritable: true })
167
+ });
168
+ return { ...result, global };
125
169
  };
126
170
  export {
127
171
  command,
@@ -15,32 +15,35 @@ import {
15
15
  import {
16
16
  stderr,
17
17
  stdout
18
- } from "./chunk-FZUYGJZU.js";
19
- import "./chunk-QCSUWACA.js";
20
- import "./chunk-G2YT2GWF.js";
21
- import "./chunk-5Y4SYLJ2.js";
22
- import "./chunk-WGDTG44V.js";
23
- import "./chunk-THSYN5EK.js";
18
+ } from "./chunk-KVWGMSPW.js";
19
+ import "./chunk-LGQVZTYR.js";
20
+ import "./chunk-EYGOEAJM.js";
24
21
  import {
25
22
  commandUsage
26
- } from "./chunk-LHPEBLOU.js";
23
+ } from "./chunk-HT6FS4VB.js";
27
24
  import {
28
25
  ViewClass
29
26
  } from "./chunk-4KCU2KZL.js";
30
- import "./chunk-PLG3OYCX.js";
27
+ import "./chunk-WGDTG44V.js";
28
+ import "./chunk-E74WGW5C.js";
29
+ import "./chunk-GCTREKA4.js";
30
+ import "./chunk-MCDLJZXT.js";
31
+ import "./chunk-7M2VTFLP.js";
32
+ import "./chunk-EFHOWRKU.js";
33
+ import "./chunk-CAV7FKWQ.js";
31
34
  import {
32
35
  Spec
33
- } from "./chunk-5IJTPZXP.js";
34
- import "./chunk-WF6KLKRN.js";
36
+ } from "./chunk-6D3QAFNZ.js";
35
37
  import {
36
38
  CacheEntry
37
- } from "./chunk-OAJ3PO3Z.js";
38
- import "./chunk-APMYKJI2.js";
39
+ } from "./chunk-44AWMA4F.js";
40
+ import "./chunk-QNHBAGXQ.js";
41
+ import "./chunk-GEQFMH5M.js";
39
42
  import {
40
43
  assertOk
41
- } from "./chunk-SR2VOY5J.js";
42
- import "./chunk-ZJMJ7MCT.js";
43
- import "./chunk-U7TEQCBN.js";
44
+ } from "./chunk-4GMNWW4C.js";
45
+ import "./chunk-SUU2WETN.js";
46
+ import "./chunk-B6RIGNEO.js";
44
47
  import "./chunk-XNLSTHDK.js";
45
48
  import {
46
49
  readStoreIndex,
@@ -51,12 +54,12 @@ import {
51
54
  storeEntryNames,
52
55
  storeEntryTime,
53
56
  verifyStoreEntry
54
- } from "./chunk-DNRR3XMG.js";
57
+ } from "./chunk-N6HV7JWC.js";
55
58
  import "./chunk-PDWPFR5T.js";
56
59
  import "./chunk-Y5PA7DVK.js";
57
60
  import {
58
61
  integrityHex
59
- } from "./chunk-FLH4YC6W.js";
62
+ } from "./chunk-BF5DRGRZ.js";
60
63
  import {
61
64
  error
62
65
  } from "./chunk-WZWDS3W4.js";
@@ -810,12 +810,31 @@ var Comparator = class {
810
810
  );
811
811
  }
812
812
  #parseCaret(comp) {
813
- const min = this.#xInclusiveMin(comp);
814
- if (isAny(min)) {
815
- this.tuples.push(min);
813
+ const parsed = this.#parseX(comp);
814
+ if (isXMajor(parsed)) {
815
+ this.tuples.push(this.#getComparatorAny());
816
816
  return;
817
817
  }
818
- const minv = min[1];
818
+ const z = this.includePrerelease ? "0" : void 0;
819
+ if (isXMinor(parsed)) {
820
+ const [M4] = parsed;
821
+ this.tuples.push(
822
+ [">=", new Version(comp, M4, 0, 0, z, void 0)],
823
+ ["<", new Version(comp, M4 + 1, 0, 0, "0", void 0)]
824
+ );
825
+ return;
826
+ }
827
+ if (isXPatch(parsed)) {
828
+ const [M4, m2] = parsed;
829
+ this.tuples.push(
830
+ [">=", new Version(comp, M4, m2, 0, z, void 0)],
831
+ M4 !== 0 ? ["<", new Version(comp, M4 + 1, 0, 0, "0", void 0)] : ["<", new Version(comp, 0, m2 + 1, 0, "0", void 0)]
832
+ );
833
+ return;
834
+ }
835
+ const [M3, m, p, pr = z, build] = parsed;
836
+ const minv = new Version(comp, M3, m, p, pr, build);
837
+ const min = [">=", minv];
819
838
  if (minv.major !== 0) {
820
839
  this.tuples.push(min, [
821
840
  "<",
@@ -1090,9 +1109,10 @@ var gitHostWebsites = {
1090
1109
  gitlab: "https://gitlab.com/"
1091
1110
  };
1092
1111
  var getOptions = (options) => ({
1093
- catalog: {},
1094
1112
  catalogs: {},
1095
1113
  ...options,
1114
+ // after spread: explicit `catalog: undefined` gets default too
1115
+ catalog: options?.catalog ?? {},
1096
1116
  // built-in aliases are user/service-overridable: user config wins
1097
1117
  "jsr-registries": {
1098
1118
  ...defaultJsrRegistries,
@@ -1269,19 +1289,25 @@ var Spec = class _Spec {
1269
1289
  }
1270
1290
  if (this.bareSpec.startsWith("catalog:")) {
1271
1291
  this.catalog = this.bareSpec.substring("catalog:".length);
1272
- const catalog = this.catalog ? this.options.catalogs?.[this.catalog] : this.options.catalog;
1292
+ const { catalog: defaultCatalog, catalogs = {} } = this.options;
1293
+ const catalog = this.catalog ? Object.hasOwn(catalogs, this.catalog) ? catalogs[this.catalog] : void 0 : Object.keys(defaultCatalog).length ? defaultCatalog : void 0;
1273
1294
  if (!catalog) {
1274
- throw this.#error("Named catalog not found", {
1275
- name: this.catalog,
1276
- validOptions: this.options.catalogs && Object.keys(this.options.catalogs)
1277
- });
1295
+ throw this.#catalogError(
1296
+ this.catalog ? `Catalog "${this.catalog}" not found for ${this.spec}` : `Default catalog not found for ${this.spec}`
1297
+ );
1278
1298
  }
1279
- const sub = catalog[this.name];
1299
+ const catalogName = this.catalog ? `catalog "${this.catalog}"` : "default catalog";
1300
+ const sub = Object.hasOwn(catalog, this.name) ? catalog[this.name] : void 0;
1280
1301
  if (!sub) {
1281
- throw this.#error("Name not found in catalog", {
1282
- name: this.name,
1283
- validOptions: Object.keys(catalog)
1284
- });
1302
+ throw this.#catalogError(
1303
+ `Package "${this.name}" not found in ${catalogName}`
1304
+ );
1305
+ }
1306
+ if (sub.startsWith("catalog:")) {
1307
+ throw this.#error(
1308
+ `Catalog entry "${this.name}" in ${catalogName} cannot be a catalog: spec`,
1309
+ { code: "ECONFIG", found: sub }
1310
+ );
1285
1311
  }
1286
1312
  this.subspec = _Spec.parse(this.name, sub, this.options);
1287
1313
  this.type = "catalog";
@@ -1597,6 +1623,23 @@ var Spec = class _Spec {
1597
1623
  ].map((p) => `${p}:`)
1598
1624
  });
1599
1625
  }
1626
+ /** ECONFIG error listing defined catalogs & ones defining this dep */
1627
+ #catalogError(message) {
1628
+ const { catalog, catalogs = {} } = this.options;
1629
+ const defined = [
1630
+ ...Object.keys(catalog).length ? [["", catalog]] : [],
1631
+ ...Object.entries(catalogs)
1632
+ ];
1633
+ const validOptions = defined.map(([n7]) => `catalog:${n7}`);
1634
+ const wanted = defined.filter(
1635
+ ([, c]) => Object.hasOwn(c, this.name) && !!c[this.name]
1636
+ ).map(([n7]) => `catalog:${n7}`);
1637
+ return this.#error(message, {
1638
+ code: "ECONFIG",
1639
+ ...validOptions.length ? { validOptions } : {},
1640
+ ...wanted.length ? { wanted } : {}
1641
+ });
1642
+ }
1600
1643
  #error(message, extra = {}) {
1601
1644
  return error(message, { spec: this.spec, ...extra }, this.#error);
1602
1645
  }
@@ -11,10 +11,10 @@ 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-FZUYGJZU.js";
14
+ } from "./chunk-KVWGMSPW.js";
15
15
  import {
16
16
  urlOpen
17
- } from "./chunk-APMYKJI2.js";
17
+ } from "./chunk-QNHBAGXQ.js";
18
18
 
19
19
  // ../../src/cli-sdk/src/open-url.ts
20
20
  var openUrl = async (url) => {