@vltpkg/cli-js 1.4.0 → 1.5.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 (98) hide show
  1. package/{access-422UGEWN.js → access-QPX4QXV4.js} +13 -12
  2. package/{bugs-RED7Y33Q.js → bugs-TLOECXEM.js} +28 -25
  3. package/{build-IHMPBWRO.js → build-IQOS3LKO.js} +28 -19
  4. package/{cache-FJP2RZJX.js → cache-O5IBYYSB.js} +17 -17
  5. package/cache-unzip-src-unzip.js +35 -11
  6. package/{chunk-OVPHE4O7.js → chunk-2U4PVHP4.js} +5232 -10882
  7. package/{chunk-OAJ3PO3Z.js → chunk-35EG6T3J.js} +7 -7
  8. package/{chunk-GIIAODRI.js → chunk-3S3W7QEM.js} +7 -5
  9. package/{chunk-UGCKF5ZE.js → chunk-43EJ4Q42.js} +1 -1
  10. package/{chunk-5Y4SYLJ2.js → chunk-4TSHLSRK.js} +1 -1
  11. package/chunk-4UH3KMTD.js +6444 -0
  12. package/{chunk-SR2VOY5J.js → chunk-5KW6AOTT.js} +1 -1
  13. package/{chunk-FLH4YC6W.js → chunk-6LZM3I4Q.js} +35 -11
  14. package/{chunk-X4FVR4R5.js → chunk-6W5XMVIZ.js} +12 -10
  15. package/{chunk-TPRK6IDA.js → chunk-7UWRR6EE.js} +2 -2
  16. package/{chunk-ASLX43R3.js → chunk-ARE7FKDG.js} +6 -4
  17. package/chunk-B6RIGNEO.js +626 -0
  18. package/{chunk-I7UMHYZX.js → chunk-C6ZVVEFV.js} +111 -1186
  19. package/{chunk-WF6KLKRN.js → chunk-CMLDLZZ3.js} +47 -1
  20. package/{chunk-ISE4IRHF.js → chunk-CS6AYPY5.js} +6 -6
  21. package/{chunk-LHPEBLOU.js → chunk-CW56EJIL.js} +1 -1
  22. package/{chunk-PLG3OYCX.js → chunk-F7NPYSI2.js} +3 -2
  23. package/{chunk-ZJMJ7MCT.js → chunk-G3FZ2ZJK.js} +1 -1
  24. package/chunk-GUP55DM6.js +59 -0
  25. package/chunk-HOF7LEIC.js +24 -0
  26. package/chunk-IFEZ6BFV.js +1111 -0
  27. package/{chunk-7T3XAYP4.js → chunk-IJUVVD7E.js} +1 -1
  28. package/{chunk-DNRR3XMG.js → chunk-ISAMD2FE.js} +1 -1
  29. package/{chunk-PHJJPY5G.js → chunk-LH7J5BDU.js} +5 -5
  30. package/{chunk-5IJTPZXP.js → chunk-LUVDMEW4.js} +1 -1
  31. package/{chunk-C23TDXRG.js → chunk-MYX4JCIJ.js} +1 -1
  32. package/{chunk-APMYKJI2.js → chunk-QNHBAGXQ.js} +1 -1
  33. package/{chunk-5TNXLRW2.js → chunk-SMXXFQPI.js} +50 -12
  34. package/chunk-SUU2WETN.js +268 -0
  35. package/chunk-T2VBCUF5.js +77 -0
  36. package/{chunk-MKWPTN3C.js → chunk-T5EP7QEF.js} +2 -2
  37. package/{chunk-THSYN5EK.js → chunk-UZ6ICZE3.js} +1 -1
  38. package/{chunk-TO23PR7J.js → chunk-VR7NRWAD.js} +14 -12
  39. package/chunk-W4T5CGCO.js +52 -0
  40. package/{chunk-FZUYGJZU.js → chunk-WHWPAYZY.js} +117 -19
  41. package/{chunk-QCSUWACA.js → chunk-X6JKMIOU.js} +5 -1
  42. package/{chunk-5RHABCYI.js → chunk-XCQCYB6G.js} +8 -8
  43. package/{chunk-2AMOC4DN.js → chunk-XCSNI6AO.js} +4 -4
  44. package/{chunk-4UCADW6S.js → chunk-XD5KUDXX.js} +7 -7
  45. package/{chunk-HZXJ423P.js → chunk-Z5D5KODU.js} +1 -1
  46. package/{ci-YSKNNO5M.js → ci-ESVUMOZO.js} +31 -13
  47. package/cli-package.json +1 -1
  48. package/{config-CSPCDMR3.js → config-TMB2X6DW.js} +11 -9
  49. package/{config-HO7GY3QT.js → config-ZVVLFKR7.js} +15 -13
  50. package/{create-2TJT3AHJ.js → create-BLTNKSBQ.js} +28 -26
  51. package/{deprecate-7FRJI2RL.js → deprecate-VA6PGHYL.js} +17 -15
  52. package/{dist-tag-WCFF5OEG.js → dist-tag-OYJREFO2.js} +13 -12
  53. package/{docs-JMBPTU23.js → docs-6OC3OQNM.js} +28 -25
  54. package/{exec-FBOUKZZ2.js → exec-AZPGFVRY.js} +28 -26
  55. package/{exec-cache-X3ZWM5S3.js → exec-cache-D75UY2WI.js} +24 -22
  56. package/{exec-local-Y3KQC22N.js → exec-local-E2JKB4X4.js} +22 -20
  57. package/{help-PUKVH5X7.js → help-UPW77X5N.js} +5 -5
  58. package/{init-GOKAQXXZ.js → init-SNO6QL7C.js} +14 -11
  59. package/{install-XFN4UFOC.js → install-TEJM2YVX.js} +67 -28
  60. package/{list-43JFFG5D.js → list-NHCC2RNB.js} +33 -27
  61. package/{login-RSTZKNKN.js → login-XNZXCGFD.js} +18 -16
  62. package/{logout-4576FFXZ.js → logout-YCM7O36Q.js} +13 -12
  63. package/{outdated-ACQ5A2Y7.js → outdated-4LA7N63W.js} +26 -22
  64. package/{pack-QQVJ3G25.js → pack-RC4CZSWF.js} +22 -18
  65. package/package.json +1 -1
  66. package/{ping-QCDQQRO5.js → ping-RLVAZGDL.js} +13 -12
  67. package/{pkg-CSOJV7UC.js → pkg-FED5C6TP.js} +18 -14
  68. package/{profile-VL4HPW3N.js → profile-DJZNLQPG.js} +13 -12
  69. package/{publish-2YBO6ZXE.js → publish-54AMVMTQ.js} +56 -45
  70. package/{query-IHHFMJRT.js → query-ZQLMSJ7O.js} +35 -29
  71. package/{registry-W7BRZZZ2.js → registry-6HKQYSZX.js} +7 -7
  72. package/registry-client-src-revalidate.js +36 -12
  73. package/{repo-L3BXAAWS.js → repo-ITA4BLZ4.js} +28 -25
  74. package/{reporter-5NYOHBO7.js → reporter-UYVR2WMB.js} +72 -14
  75. package/{run-AMUUVLTI.js → run-TP2HTJRN.js} +22 -20
  76. package/{run-exec-5W3XWQZA.js → run-exec-UGCC53DV.js} +22 -20
  77. package/security-archive-src-update-expired.js +43 -17
  78. package/{setup-TFM4GJF7.js → setup-XPAM5U3Z.js} +22 -21
  79. package/skills-LR6GXW3X.js +413 -0
  80. package/skills-YD2TB2VD.js +495 -0
  81. package/{src-4CYCUWZL.js → src-34D4DOOH.js} +23 -18
  82. package/{src-I3GMULFP.js → src-H6DFCAPH.js} +9 -8
  83. package/{src-LUTN2ODD.js → src-LHDC4NJO.js} +2 -2
  84. package/{token-OANOBE3G.js → token-OF63PFTQ.js} +13 -12
  85. package/{uninstall-YXTQ4AIZ.js → uninstall-B54FQ5KQ.js} +20 -15
  86. package/{unpublish-SZXYMYIU.js → unpublish-CSHIGMDQ.js} +31 -16
  87. package/{update-FHLMWGIM.js → update-HS4VJ5ZG.js} +50 -25
  88. package/{version-ZWFCTU5V.js → version-L7S3DHUS.js} +19 -14
  89. package/{view-NFNJXMLV.js → view-NWKKWFVA.js} +17 -15
  90. package/vlr.js +1 -1
  91. package/vlrx.js +1 -1
  92. package/vlt.js +1 -1
  93. package/vlx.js +1 -1
  94. package/vlxl.js +1 -1
  95. package/{whoami-O7GOSGCI.js → whoami-65K35VGW.js} +13 -12
  96. package/chunk-G2YT2GWF.js +0 -120
  97. package/chunk-T6FBP4OU.js +0 -76
  98. package/chunk-U7TEQCBN.js +0 -880
@@ -11,56 +11,60 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  MermaidImageView
14
- } from "./chunk-PHJJPY5G.js";
14
+ } from "./chunk-LH7J5BDU.js";
15
15
  import {
16
16
  createGetAuthHeader
17
- } from "./chunk-HZXJ423P.js";
17
+ } from "./chunk-Z5D5KODU.js";
18
18
  import {
19
19
  createDiffFilesProvider
20
20
  } from "./chunk-RIYFGX27.js";
21
- import "./chunk-TPRK6IDA.js";
21
+ import "./chunk-7UWRR6EE.js";
22
22
  import {
23
23
  assertVltInstalled,
24
24
  createHostContextsMap
25
- } from "./chunk-ASLX43R3.js";
26
- import {
27
- stdout
28
- } from "./chunk-FZUYGJZU.js";
29
- import "./chunk-QCSUWACA.js";
30
- import "./chunk-G2YT2GWF.js";
31
- import "./chunk-5Y4SYLJ2.js";
32
- import "./chunk-WGDTG44V.js";
33
- import "./chunk-THSYN5EK.js";
25
+ } from "./chunk-ARE7FKDG.js";
34
26
  import {
35
27
  GraphModifier,
36
- Query,
37
28
  actual,
38
- asNode,
39
29
  humanReadableOutput,
40
30
  jsonOutput,
41
31
  mermaidOutput
42
- } from "./chunk-OVPHE4O7.js";
32
+ } from "./chunk-4UH3KMTD.js";
33
+ import {
34
+ Query,
35
+ asNode,
36
+ hasSkills
37
+ } from "./chunk-2U4PVHP4.js";
43
38
  import {
44
39
  SecurityArchive
45
- } from "./chunk-5TNXLRW2.js";
40
+ } from "./chunk-SMXXFQPI.js";
41
+ import {
42
+ stdout
43
+ } from "./chunk-WHWPAYZY.js";
44
+ import "./chunk-X6JKMIOU.js";
45
+ import "./chunk-4TSHLSRK.js";
46
46
  import {
47
47
  commandUsage
48
- } from "./chunk-LHPEBLOU.js";
49
- import "./chunk-I7UMHYZX.js";
48
+ } from "./chunk-CW56EJIL.js";
49
+ import "./chunk-IFEZ6BFV.js";
50
+ import "./chunk-C6ZVVEFV.js";
50
51
  import "./chunk-4KCU2KZL.js";
51
- import "./chunk-PLG3OYCX.js";
52
- import "./chunk-5IJTPZXP.js";
53
- import "./chunk-WF6KLKRN.js";
52
+ import "./chunk-WGDTG44V.js";
53
+ import "./chunk-UZ6ICZE3.js";
54
+ import "./chunk-CMLDLZZ3.js";
55
+ import "./chunk-F7NPYSI2.js";
56
+ import "./chunk-LUVDMEW4.js";
54
57
  import "./chunk-HTOTG4TS.js";
55
- import "./chunk-OAJ3PO3Z.js";
56
- import "./chunk-APMYKJI2.js";
57
- import "./chunk-SR2VOY5J.js";
58
- import "./chunk-ZJMJ7MCT.js";
59
- import "./chunk-U7TEQCBN.js";
58
+ import "./chunk-35EG6T3J.js";
59
+ import "./chunk-QNHBAGXQ.js";
60
+ import "./chunk-G3FZ2ZJK.js";
61
+ import "./chunk-5KW6AOTT.js";
62
+ import "./chunk-SUU2WETN.js";
63
+ import "./chunk-B6RIGNEO.js";
60
64
  import "./chunk-XNLSTHDK.js";
61
65
  import "./chunk-PDWPFR5T.js";
62
66
  import "./chunk-Y5PA7DVK.js";
63
- import "./chunk-FLH4YC6W.js";
67
+ import "./chunk-6LZM3I4Q.js";
64
68
  import {
65
69
  error
66
70
  } from "./chunk-WZWDS3W4.js";
@@ -212,7 +216,8 @@ var command = async (conf) => {
212
216
  securityArchive,
213
217
  hostContexts,
214
218
  diffFiles,
215
- getAuthHeader
219
+ getAuthHeader,
220
+ hasSkills
216
221
  });
217
222
  const { nodes: resultNodes } = await scopeQuery.search(
218
223
  scopeQueryString,
@@ -274,7 +279,8 @@ var command = async (conf) => {
274
279
  securityArchive,
275
280
  hostContexts,
276
281
  diffFiles,
277
- getAuthHeader
282
+ getAuthHeader,
283
+ hasSkills
278
284
  });
279
285
  const query = queryString || (graph ? defaultProjectQueryString : defaultLocalScopeQueryString);
280
286
  const {
@@ -9,18 +9,18 @@ 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";
14
+ } from "./chunk-CW56EJIL.js";
15
+ import {
16
+ resolveRegistry
17
+ } from "./chunk-UZ6ICZE3.js";
19
18
  import {
20
19
  getCommand
21
- } from "./chunk-WF6KLKRN.js";
20
+ } from "./chunk-CMLDLZZ3.js";
21
+ import "./chunk-LUVDMEW4.js";
22
22
  import "./chunk-XNLSTHDK.js";
23
- import "./chunk-FLH4YC6W.js";
23
+ import "./chunk-6LZM3I4Q.js";
24
24
  import {
25
25
  error
26
26
  } from "./chunk-WZWDS3W4.js";
@@ -26862,9 +26862,10 @@ var gitHostWebsites = {
26862
26862
  gitlab: "https://gitlab.com/"
26863
26863
  };
26864
26864
  var getOptions = (options) => ({
26865
- catalog: {},
26866
26865
  catalogs: {},
26867
26866
  ...options,
26867
+ // after spread: explicit `catalog: undefined` gets default too
26868
+ catalog: options?.catalog ?? {},
26868
26869
  // built-in aliases are user/service-overridable: user config wins
26869
26870
  "jsr-registries": {
26870
26871
  ...defaultJsrRegistries,
@@ -27041,19 +27042,25 @@ var Spec = class _Spec {
27041
27042
  }
27042
27043
  if (this.bareSpec.startsWith("catalog:")) {
27043
27044
  this.catalog = this.bareSpec.substring("catalog:".length);
27044
- const catalog = this.catalog ? this.options.catalogs?.[this.catalog] : this.options.catalog;
27045
+ const { catalog: defaultCatalog, catalogs = {} } = this.options;
27046
+ const catalog = this.catalog ? Object.hasOwn(catalogs, this.catalog) ? catalogs[this.catalog] : void 0 : Object.keys(defaultCatalog).length ? defaultCatalog : void 0;
27045
27047
  if (!catalog) {
27046
- throw this.#error("Named catalog not found", {
27047
- name: this.catalog,
27048
- validOptions: this.options.catalogs && Object.keys(this.options.catalogs)
27049
- });
27048
+ throw this.#catalogError(
27049
+ this.catalog ? `Catalog "${this.catalog}" not found for ${this.spec}` : `Default catalog not found for ${this.spec}`
27050
+ );
27050
27051
  }
27051
- const sub = catalog[this.name];
27052
+ const catalogName = this.catalog ? `catalog "${this.catalog}"` : "default catalog";
27053
+ const sub = Object.hasOwn(catalog, this.name) ? catalog[this.name] : void 0;
27052
27054
  if (!sub) {
27053
- throw this.#error("Name not found in catalog", {
27054
- name: this.name,
27055
- validOptions: Object.keys(catalog)
27056
- });
27055
+ throw this.#catalogError(
27056
+ `Package "${this.name}" not found in ${catalogName}`
27057
+ );
27058
+ }
27059
+ if (sub.startsWith("catalog:")) {
27060
+ throw this.#error(
27061
+ `Catalog entry "${this.name}" in ${catalogName} cannot be a catalog: spec`,
27062
+ { code: "ECONFIG", found: sub }
27063
+ );
27057
27064
  }
27058
27065
  this.subspec = _Spec.parse(this.name, sub, this.options);
27059
27066
  this.type = "catalog";
@@ -27369,6 +27376,23 @@ var Spec = class _Spec {
27369
27376
  ].map((p) => `${p}:`)
27370
27377
  });
27371
27378
  }
27379
+ /** ECONFIG error listing defined catalogs & ones defining this dep */
27380
+ #catalogError(message) {
27381
+ const { catalog, catalogs = {} } = this.options;
27382
+ const defined = [
27383
+ ...Object.keys(catalog).length ? [["", catalog]] : [],
27384
+ ...Object.entries(catalogs)
27385
+ ];
27386
+ const validOptions = defined.map(([n7]) => `catalog:${n7}`);
27387
+ const wanted = defined.filter(
27388
+ ([, c]) => Object.hasOwn(c, this.name) && !!c[this.name]
27389
+ ).map(([n7]) => `catalog:${n7}`);
27390
+ return this.#error(message, {
27391
+ code: "ECONFIG",
27392
+ ...validOptions.length ? { validOptions } : {},
27393
+ ...wanted.length ? { wanted } : {}
27394
+ });
27395
+ }
27372
27396
  #error(message, extra = {}) {
27373
27397
  return error(message, { spec: this.spec, ...extra }, this.#error);
27374
27398
  }
@@ -32489,7 +32513,7 @@ import { createGunzip } from "node:zlib";
32489
32513
  var package_default = {
32490
32514
  name: "@vltpkg/user-agent",
32491
32515
  description: "The User-Agent string that vlt sends with every outbound request",
32492
- version: "1.4.0",
32516
+ version: "1.5.0",
32493
32517
  repository: {
32494
32518
  type: "git",
32495
32519
  url: "git+https://github.com/vltpkg/vltpkg.git",
@@ -14,46 +14,49 @@ import {
14
14
  } from "./chunk-CLVRCGOZ.js";
15
15
  import {
16
16
  openUrl
17
- } from "./chunk-TPRK6IDA.js";
17
+ } from "./chunk-7UWRR6EE.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-ARE7FKDG.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-4UH3KMTD.js";
24
+ import {
25
+ Query
26
+ } from "./chunk-2U4PVHP4.js";
35
27
  import {
36
28
  SecurityArchive
37
- } from "./chunk-5TNXLRW2.js";
29
+ } from "./chunk-SMXXFQPI.js";
30
+ import "./chunk-WHWPAYZY.js";
31
+ import "./chunk-X6JKMIOU.js";
32
+ import "./chunk-4TSHLSRK.js";
38
33
  import {
39
34
  commandUsage
40
- } from "./chunk-LHPEBLOU.js";
41
- import "./chunk-I7UMHYZX.js";
35
+ } from "./chunk-CW56EJIL.js";
36
+ import {
37
+ PackageInfoClient
38
+ } from "./chunk-VR7NRWAD.js";
39
+ import "./chunk-SRWDPPLX.js";
40
+ import "./chunk-IFEZ6BFV.js";
41
+ import "./chunk-C6ZVVEFV.js";
42
42
  import "./chunk-4KCU2KZL.js";
43
- import "./chunk-PLG3OYCX.js";
43
+ import "./chunk-WGDTG44V.js";
44
+ import "./chunk-UZ6ICZE3.js";
45
+ import "./chunk-CMLDLZZ3.js";
46
+ import "./chunk-F7NPYSI2.js";
44
47
  import {
45
48
  Spec
46
- } from "./chunk-5IJTPZXP.js";
47
- import "./chunk-WF6KLKRN.js";
49
+ } from "./chunk-LUVDMEW4.js";
48
50
  import "./chunk-HTOTG4TS.js";
49
- import "./chunk-APMYKJI2.js";
50
- import "./chunk-SR2VOY5J.js";
51
- import "./chunk-ZJMJ7MCT.js";
52
- import "./chunk-U7TEQCBN.js";
51
+ import "./chunk-QNHBAGXQ.js";
52
+ import "./chunk-G3FZ2ZJK.js";
53
+ import "./chunk-5KW6AOTT.js";
54
+ import "./chunk-SUU2WETN.js";
55
+ import "./chunk-B6RIGNEO.js";
53
56
  import "./chunk-XNLSTHDK.js";
54
57
  import "./chunk-PDWPFR5T.js";
55
58
  import "./chunk-Y5PA7DVK.js";
56
- import "./chunk-FLH4YC6W.js";
59
+ import "./chunk-6LZM3I4Q.js";
57
60
  import {
58
61
  error
59
62
  } from "./chunk-WZWDS3W4.js";
@@ -11,35 +11,43 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  persistedEntries
14
- } from "./chunk-2AMOC4DN.js";
14
+ } from "./chunk-XCSNI6AO.js";
15
+ import {
16
+ keptLine,
17
+ savedLine,
18
+ unmatchedLines,
19
+ unscannedLines
20
+ } from "./chunk-W4T5CGCO.js";
15
21
  import {
16
22
  require_emoji_regex
17
23
  } from "./chunk-VTEFO2FT.js";
18
- import "./chunk-5RHABCYI.js";
19
- import "./chunk-TO23PR7J.js";
24
+ import "./chunk-XCQCYB6G.js";
25
+ import "./chunk-VR7NRWAD.js";
20
26
  import "./chunk-SRWDPPLX.js";
21
- import {
22
- source_default
23
- } from "./chunk-WGDTG44V.js";
24
- import "./chunk-THSYN5EK.js";
25
- import "./chunk-I7UMHYZX.js";
27
+ import "./chunk-IFEZ6BFV.js";
28
+ import "./chunk-C6ZVVEFV.js";
26
29
  import {
27
30
  ViewClass
28
31
  } from "./chunk-4KCU2KZL.js";
29
- import "./chunk-PLG3OYCX.js";
30
- import "./chunk-5IJTPZXP.js";
31
- import "./chunk-WF6KLKRN.js";
32
+ import {
33
+ source_default
34
+ } from "./chunk-WGDTG44V.js";
35
+ import "./chunk-UZ6ICZE3.js";
36
+ import "./chunk-CMLDLZZ3.js";
37
+ import "./chunk-F7NPYSI2.js";
38
+ import "./chunk-LUVDMEW4.js";
32
39
  import "./chunk-HTOTG4TS.js";
33
- import "./chunk-SR2VOY5J.js";
40
+ import "./chunk-5KW6AOTT.js";
41
+ import "./chunk-SUU2WETN.js";
34
42
  import {
35
43
  emitter
36
- } from "./chunk-U7TEQCBN.js";
44
+ } from "./chunk-B6RIGNEO.js";
37
45
  import "./chunk-XNLSTHDK.js";
38
46
  import "./chunk-6IF3RJND.js";
39
47
  import "./chunk-Y5PA7DVK.js";
40
48
  import {
41
49
  asError
42
- } from "./chunk-FLH4YC6W.js";
50
+ } from "./chunk-6LZM3I4Q.js";
43
51
  import "./chunk-WZWDS3W4.js";
44
52
  import {
45
53
  __commonJS,
@@ -18621,6 +18629,10 @@ var App2 = ({ trailer }) => {
18621
18629
  var InstallReporter = class extends ViewClass {
18622
18630
  #instance = null;
18623
18631
  start() {
18632
+ if (!process.stdout.isTTY) {
18633
+ const cols = Number(process.env.COLUMNS);
18634
+ process.stdout.columns ||= Number.isInteger(cols) && cols > 0 ? cols : 80;
18635
+ }
18624
18636
  this.#instance = render_default((0, import_react30.createElement)(App2));
18625
18637
  }
18626
18638
  async done(_result, { time }) {
@@ -18633,6 +18645,42 @@ var InstallReporter = class extends ViewClass {
18633
18645
  out += "\u{1F50E} Run `vlt query :scripts` to list them\n";
18634
18646
  out += "\u{1F528} Run `vlt build` to run all required scripts to build installed packages.\n";
18635
18647
  }
18648
+ const {
18649
+ linked = [],
18650
+ removed = [],
18651
+ conflicts = [],
18652
+ skipped = [],
18653
+ gitignore = [],
18654
+ unmatched = []
18655
+ } = _result.skills ?? {};
18656
+ const s = (n) => n === 1 ? "" : "s";
18657
+ const skills = [];
18658
+ if (linked.length) {
18659
+ const n = new Set(linked.map((r) => `${r.id}\0${r.skill}`)).size;
18660
+ const dirs = [...new Set(linked.map((r) => r.dir))].join(", ");
18661
+ skills.push(`\u{1F517} Linked ${n} agent skill${s(n)} into ${dirs}`);
18662
+ }
18663
+ if (removed.length) {
18664
+ skills.push(
18665
+ `\u{1F9F9} Removed ${removed.length} stale skill link${s(removed.length)}: ${removed.join(", ")}`
18666
+ );
18667
+ }
18668
+ if (conflicts.length) {
18669
+ skills.push(
18670
+ `\u26A0\uFE0F ${conflicts.length} skill link${s(conflicts.length)} skipped, path in use or taken by another package: ${conflicts.join(", ")}`
18671
+ );
18672
+ }
18673
+ skills.push(...unmatchedLines(unmatched));
18674
+ if (skipped.length) {
18675
+ skills.push(`\u26A0\uFE0F Skipped ${skipped.join(", ")}`);
18676
+ }
18677
+ if (gitignore.length) {
18678
+ skills.push(`\u26A0\uFE0F Could not update ${gitignore.join(", ")}`);
18679
+ }
18680
+ skills.push(...unscannedLines(_result.skills ?? {}));
18681
+ if (skills.length) out += `
18682
+ ${skills.join("\n")}
18683
+ `;
18636
18684
  const saved = _result.persistedConfig;
18637
18685
  if (saved) {
18638
18686
  for (const e of persistedEntries(saved.values)) {
@@ -18640,6 +18688,16 @@ var InstallReporter = class extends ViewClass {
18640
18688
  Saved ${e} to ${saved.which} vlt.json`;
18641
18689
  }
18642
18690
  }
18691
+ const migrated = _result.migratedWorkspaces;
18692
+ if (migrated) {
18693
+ out += `
18694
+ Saved workspaces from ${migrated.source} to vlt.json`;
18695
+ }
18696
+ const a = _result.allowSkills;
18697
+ if (a?.stored) out += `
18698
+ ${keptLine(a.stored)}`;
18699
+ else if (a) out += `
18700
+ ${savedLine(a.query, "project")}`;
18643
18701
  this.#instance?.rerender((0, import_react30.createElement)(App2, { trailer: out }));
18644
18702
  return void 0;
18645
18703
  }
@@ -12,37 +12,39 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  ExecCommand,
14
14
  views
15
- } from "./chunk-X4FVR4R5.js";
16
- import "./chunk-UGCKF5ZE.js";
15
+ } from "./chunk-6W5XMVIZ.js";
16
+ import "./chunk-43EJ4Q42.js";
17
17
  import "./chunk-RIYFGX27.js";
18
- import "./chunk-ASLX43R3.js";
19
- import "./chunk-FZUYGJZU.js";
20
- import "./chunk-QCSUWACA.js";
21
- import "./chunk-G2YT2GWF.js";
22
- import "./chunk-5Y4SYLJ2.js";
23
- import "./chunk-VTEFO2FT.js";
24
- import "./chunk-WGDTG44V.js";
25
- import "./chunk-THSYN5EK.js";
18
+ import "./chunk-ARE7FKDG.js";
26
19
  import {
27
20
  run,
28
21
  runFG
29
- } from "./chunk-OVPHE4O7.js";
30
- import "./chunk-5TNXLRW2.js";
22
+ } from "./chunk-4UH3KMTD.js";
23
+ import "./chunk-2U4PVHP4.js";
24
+ import "./chunk-SMXXFQPI.js";
25
+ import "./chunk-WHWPAYZY.js";
26
+ import "./chunk-X6JKMIOU.js";
27
+ import "./chunk-4TSHLSRK.js";
31
28
  import {
32
29
  commandUsage
33
- } from "./chunk-LHPEBLOU.js";
34
- import "./chunk-I7UMHYZX.js";
30
+ } from "./chunk-CW56EJIL.js";
31
+ import "./chunk-VTEFO2FT.js";
32
+ import "./chunk-IFEZ6BFV.js";
33
+ import "./chunk-C6ZVVEFV.js";
35
34
  import "./chunk-4KCU2KZL.js";
36
- import "./chunk-PLG3OYCX.js";
37
- import "./chunk-5IJTPZXP.js";
38
- import "./chunk-WF6KLKRN.js";
35
+ import "./chunk-WGDTG44V.js";
36
+ import "./chunk-UZ6ICZE3.js";
37
+ import "./chunk-CMLDLZZ3.js";
38
+ import "./chunk-F7NPYSI2.js";
39
+ import "./chunk-LUVDMEW4.js";
39
40
  import "./chunk-HTOTG4TS.js";
40
- import "./chunk-ZJMJ7MCT.js";
41
- import "./chunk-U7TEQCBN.js";
41
+ import "./chunk-G3FZ2ZJK.js";
42
+ import "./chunk-SUU2WETN.js";
43
+ import "./chunk-B6RIGNEO.js";
42
44
  import "./chunk-XNLSTHDK.js";
43
45
  import "./chunk-PDWPFR5T.js";
44
46
  import "./chunk-Y5PA7DVK.js";
45
- import "./chunk-FLH4YC6W.js";
47
+ import "./chunk-6LZM3I4Q.js";
46
48
  import "./chunk-WZWDS3W4.js";
47
49
  import "./chunk-PZLD7RTK.js";
48
50
 
@@ -12,37 +12,39 @@ var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  ExecCommand,
14
14
  views
15
- } from "./chunk-X4FVR4R5.js";
16
- import "./chunk-UGCKF5ZE.js";
15
+ } from "./chunk-6W5XMVIZ.js";
16
+ import "./chunk-43EJ4Q42.js";
17
17
  import "./chunk-RIYFGX27.js";
18
- import "./chunk-ASLX43R3.js";
19
- import "./chunk-FZUYGJZU.js";
20
- import "./chunk-QCSUWACA.js";
21
- import "./chunk-G2YT2GWF.js";
22
- import "./chunk-5Y4SYLJ2.js";
23
- import "./chunk-VTEFO2FT.js";
24
- import "./chunk-WGDTG44V.js";
25
- import "./chunk-THSYN5EK.js";
18
+ import "./chunk-ARE7FKDG.js";
26
19
  import {
27
20
  runExec,
28
21
  runExecFG
29
- } from "./chunk-OVPHE4O7.js";
30
- import "./chunk-5TNXLRW2.js";
22
+ } from "./chunk-4UH3KMTD.js";
23
+ import "./chunk-2U4PVHP4.js";
24
+ import "./chunk-SMXXFQPI.js";
25
+ import "./chunk-WHWPAYZY.js";
26
+ import "./chunk-X6JKMIOU.js";
27
+ import "./chunk-4TSHLSRK.js";
31
28
  import {
32
29
  commandUsage
33
- } from "./chunk-LHPEBLOU.js";
34
- import "./chunk-I7UMHYZX.js";
30
+ } from "./chunk-CW56EJIL.js";
31
+ import "./chunk-VTEFO2FT.js";
32
+ import "./chunk-IFEZ6BFV.js";
33
+ import "./chunk-C6ZVVEFV.js";
35
34
  import "./chunk-4KCU2KZL.js";
36
- import "./chunk-PLG3OYCX.js";
37
- import "./chunk-5IJTPZXP.js";
38
- import "./chunk-WF6KLKRN.js";
35
+ import "./chunk-WGDTG44V.js";
36
+ import "./chunk-UZ6ICZE3.js";
37
+ import "./chunk-CMLDLZZ3.js";
38
+ import "./chunk-F7NPYSI2.js";
39
+ import "./chunk-LUVDMEW4.js";
39
40
  import "./chunk-HTOTG4TS.js";
40
- import "./chunk-ZJMJ7MCT.js";
41
- import "./chunk-U7TEQCBN.js";
41
+ import "./chunk-G3FZ2ZJK.js";
42
+ import "./chunk-SUU2WETN.js";
43
+ import "./chunk-B6RIGNEO.js";
42
44
  import "./chunk-XNLSTHDK.js";
43
45
  import "./chunk-PDWPFR5T.js";
44
46
  import "./chunk-Y5PA7DVK.js";
45
- import "./chunk-FLH4YC6W.js";
47
+ import "./chunk-6LZM3I4Q.js";
46
48
  import "./chunk-WZWDS3W4.js";
47
49
  import "./chunk-PZLD7RTK.js";
48
50
 
@@ -1312,9 +1312,10 @@ var gitHostWebsites = {
1312
1312
  gitlab: "https://gitlab.com/"
1313
1313
  };
1314
1314
  var getOptions = (options) => ({
1315
- catalog: {},
1316
1315
  catalogs: {},
1317
1316
  ...options,
1317
+ // after spread: explicit `catalog: undefined` gets default too
1318
+ catalog: options?.catalog ?? {},
1318
1319
  // built-in aliases are user/service-overridable: user config wins
1319
1320
  "jsr-registries": {
1320
1321
  ...defaultJsrRegistries,
@@ -1491,19 +1492,25 @@ var Spec = class _Spec {
1491
1492
  }
1492
1493
  if (this.bareSpec.startsWith("catalog:")) {
1493
1494
  this.catalog = this.bareSpec.substring("catalog:".length);
1494
- const catalog = this.catalog ? this.options.catalogs?.[this.catalog] : this.options.catalog;
1495
+ const { catalog: defaultCatalog, catalogs = {} } = this.options;
1496
+ const catalog = this.catalog ? Object.hasOwn(catalogs, this.catalog) ? catalogs[this.catalog] : void 0 : Object.keys(defaultCatalog).length ? defaultCatalog : void 0;
1495
1497
  if (!catalog) {
1496
- throw this.#error("Named catalog not found", {
1497
- name: this.catalog,
1498
- validOptions: this.options.catalogs && Object.keys(this.options.catalogs)
1499
- });
1498
+ throw this.#catalogError(
1499
+ this.catalog ? `Catalog "${this.catalog}" not found for ${this.spec}` : `Default catalog not found for ${this.spec}`
1500
+ );
1500
1501
  }
1501
- const sub = catalog[this.name];
1502
+ const catalogName = this.catalog ? `catalog "${this.catalog}"` : "default catalog";
1503
+ const sub = Object.hasOwn(catalog, this.name) ? catalog[this.name] : void 0;
1502
1504
  if (!sub) {
1503
- throw this.#error("Name not found in catalog", {
1504
- name: this.name,
1505
- validOptions: Object.keys(catalog)
1506
- });
1505
+ throw this.#catalogError(
1506
+ `Package "${this.name}" not found in ${catalogName}`
1507
+ );
1508
+ }
1509
+ if (sub.startsWith("catalog:")) {
1510
+ throw this.#error(
1511
+ `Catalog entry "${this.name}" in ${catalogName} cannot be a catalog: spec`,
1512
+ { code: "ECONFIG", found: sub }
1513
+ );
1507
1514
  }
1508
1515
  this.subspec = _Spec.parse(this.name, sub, this.options);
1509
1516
  this.type = "catalog";
@@ -1819,6 +1826,23 @@ var Spec = class _Spec {
1819
1826
  ].map((p) => `${p}:`)
1820
1827
  });
1821
1828
  }
1829
+ /** ECONFIG error listing defined catalogs & ones defining this dep */
1830
+ #catalogError(message) {
1831
+ const { catalog, catalogs = {} } = this.options;
1832
+ const defined = [
1833
+ ...Object.keys(catalog).length ? [["", catalog]] : [],
1834
+ ...Object.entries(catalogs)
1835
+ ];
1836
+ const validOptions = defined.map(([n]) => `catalog:${n}`);
1837
+ const wanted = defined.filter(
1838
+ ([, c]) => Object.hasOwn(c, this.name) && !!c[this.name]
1839
+ ).map(([n]) => `catalog:${n}`);
1840
+ return this.#error(message, {
1841
+ code: "ECONFIG",
1842
+ ...validOptions.length ? { validOptions } : {},
1843
+ ...wanted.length ? { wanted } : {}
1844
+ });
1845
+ }
1822
1846
  #error(message, extra = {}) {
1823
1847
  return error(message, { spec: this.spec, ...extra }, this.#error);
1824
1848
  }
@@ -2166,7 +2190,7 @@ var baseDepID = (id) => {
2166
2190
  var package_default = {
2167
2191
  name: "@vltpkg/user-agent",
2168
2192
  description: "The User-Agent string that vlt sends with every outbound request",
2169
- version: "1.4.0",
2193
+ version: "1.5.0",
2170
2194
  repository: {
2171
2195
  type: "git",
2172
2196
  url: "git+https://github.com/vltpkg/vltpkg.git",
@@ -2270,7 +2294,8 @@ var __CODE_SPLIT_SCRIPT_NAME = import.meta.filename;
2270
2294
  var SOCKET_API_V0_URL = "https://api.socket.dev/v0/purl?alerts=true";
2271
2295
  var SOCKET_PUBLIC_API_TOKEN = "sktsec_t_--RAN5U4ivauy4w37-6aoKyYPDt5ZbaT5JBVMqiwKo_api";
2272
2296
  var isMain = (path) => path === __CODE_SPLIT_SCRIPT_NAME || path === pathToFileURL(__CODE_SPLIT_SCRIPT_NAME).toString();
2273
- var retrieveRemoteData = async (queue, retries) => {
2297
+ var retrieveRemoteData = async (queue, retries, timeout) => {
2298
+ const signal = AbortSignal.timeout(timeout);
2274
2299
  return pRetry(
2275
2300
  async () => {
2276
2301
  const req = await fetch(SOCKET_API_V0_URL, {
@@ -2281,7 +2306,8 @@ var retrieveRemoteData = async (queue, retries) => {
2281
2306
  },
2282
2307
  body: JSON.stringify({
2283
2308
  components: Array.from(queue)
2284
- })
2309
+ }),
2310
+ signal
2285
2311
  });
2286
2312
  if (req.status === 404) {
2287
2313
  throw new AbortError("Missing API");
@@ -2294,7 +2320,7 @@ var retrieveRemoteData = async (queue, retries) => {
2294
2320
  const str = await req.text();
2295
2321
  return str.trim() + "\n";
2296
2322
  },
2297
- { retries }
2323
+ { retries, signal }
2298
2324
  );
2299
2325
  };
2300
2326
  var main = async (input = process.stdin) => {
@@ -2317,7 +2343,7 @@ var main = async (input = process.stdin) => {
2317
2343
  input.on("error", reject);
2318
2344
  }
2319
2345
  );
2320
- const { dbPath, retries, ttl, expired } = payload;
2346
+ const { dbPath, retries, timeout, ttl, expired } = payload;
2321
2347
  if (!expired.length) {
2322
2348
  return false;
2323
2349
  }
@@ -2328,7 +2354,7 @@ var main = async (input = process.stdin) => {
2328
2354
  expiredQueue.add({ purl });
2329
2355
  entryByNameVersion.set(`${entry.name}@${entry.version}`, entry);
2330
2356
  }
2331
- const res = await retrieveRemoteData(expiredQueue, retries);
2357
+ const res = await retrieveRemoteData(expiredQueue, retries, timeout);
2332
2358
  const now = Date.now();
2333
2359
  const results = [];
2334
2360
  const json = res.split("}\n");