@vltpkg/cli-js 1.3.7 → 1.4.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 (87) hide show
  1. package/{access-4W6PMOGC.js → access-422UGEWN.js} +8 -8
  2. package/{bugs-FJHQFPZF.js → bugs-RED7Y33Q.js} +17 -17
  3. package/{build-SPWU3NOH.js → build-IHMPBWRO.js} +9 -9
  4. package/{cache-SBNEPOMQ.js → cache-FJP2RZJX.js} +31 -19
  5. package/cache-unzip-src-unzip.js +21 -1
  6. package/{chunk-SPWJ3X5Y.js → chunk-2AMOC4DN.js} +4 -4
  7. package/{chunk-QYS5MGGM.js → chunk-4UCADW6S.js} +86 -10
  8. package/{chunk-GZ5MYMBT.js → chunk-5IJTPZXP.js} +1 -1
  9. package/{chunk-L3K2ZAOO.js → chunk-5RHABCYI.js} +76 -11
  10. package/{chunk-OWUICQFY.js → chunk-5TNXLRW2.js} +33 -20
  11. package/{chunk-IHXJVKAE.js → chunk-5Y4SYLJ2.js} +2 -1
  12. package/chunk-6IF3RJND.js +81 -0
  13. package/{chunk-3U6QWN62.js → chunk-7T3XAYP4.js} +1 -1
  14. package/{chunk-FKZ5I53D.js → chunk-ASLX43R3.js} +3 -3
  15. package/{chunk-5ZCDGBVU.js → chunk-C23TDXRG.js} +1 -1
  16. package/{chunk-H77JYU7F.js → chunk-DNRR3XMG.js} +12 -3
  17. package/{chunk-IBGFQR23.js → chunk-FLH4YC6W.js} +21 -0
  18. package/{chunk-XDSZO74H.js → chunk-FZUYGJZU.js} +7 -7
  19. package/{chunk-W2ZO5RZL.js → chunk-GIIAODRI.js} +4 -4
  20. package/{chunk-F5D3DVC5.js → chunk-HZXJ423P.js} +7 -3
  21. package/{chunk-CB65DPZ2.js → chunk-I7UMHYZX.js} +151 -27
  22. package/{chunk-2M2O6A4R.js → chunk-ISE4IRHF.js} +4 -4
  23. package/{chunk-TLY4VGMH.js → chunk-LHPEBLOU.js} +1 -1
  24. package/{chunk-EL4GVZK5.js → chunk-MKWPTN3C.js} +2 -2
  25. package/{chunk-QVPNKMUU.js → chunk-OAJ3PO3Z.js} +115 -19
  26. package/{chunk-7BHHCB5C.js → chunk-OVPHE4O7.js} +348 -24
  27. package/{chunk-KOFQTETH.js → chunk-PHJJPY5G.js} +3 -3
  28. package/{chunk-SV4WK3KX.js → chunk-PLG3OYCX.js} +2 -2
  29. package/{chunk-KMOOTBHM.js → chunk-QCSUWACA.js} +1 -1
  30. package/{chunk-6D54UN4T.js → chunk-SR2VOY5J.js} +1 -1
  31. package/chunk-T6FBP4OU.js +76 -0
  32. package/{chunk-A2TSRXZD.js → chunk-THSYN5EK.js} +1 -1
  33. package/{chunk-3D3IB4YN.js → chunk-TO23PR7J.js} +61 -27
  34. package/{chunk-OWMR2EDW.js → chunk-TPRK6IDA.js} +1 -1
  35. package/chunk-UGCKF5ZE.js +57 -0
  36. package/{chunk-SE2FSMBR.js → chunk-WF6KLKRN.js} +26 -10
  37. package/{chunk-I7SCSGUO.js → chunk-X4FVR4R5.js} +23 -18
  38. package/{chunk-VBDNOU76.js → chunk-ZJMJ7MCT.js} +1 -1
  39. package/{ci-76TAJGF5.js → ci-YSKNNO5M.js} +10 -10
  40. package/cli-package.json +1 -1
  41. package/{config-3UQXAYAA.js → config-CSPCDMR3.js} +9 -8
  42. package/{config-AFIHF54I.js → config-HO7GY3QT.js} +11 -10
  43. package/{create-5ADQTH6K.js → create-2TJT3AHJ.js} +19 -18
  44. package/{deprecate-RTQVLJDZ.js → deprecate-7FRJI2RL.js} +11 -11
  45. package/{dist-tag-V4DRDHWA.js → dist-tag-WCFF5OEG.js} +8 -8
  46. package/{docs-RRULRTKQ.js → docs-JMBPTU23.js} +17 -17
  47. package/{exec-NXQUCX3I.js → exec-FBOUKZZ2.js} +27 -18
  48. package/{exec-cache-KVZJHFZD.js → exec-cache-X3ZWM5S3.js} +16 -16
  49. package/{exec-local-53B5IRKG.js → exec-local-Y3KQC22N.js} +16 -15
  50. package/{help-EN4XUTMS.js → help-PUKVH5X7.js} +4 -4
  51. package/{init-4L6CQMIL.js → init-GOKAQXXZ.js} +10 -10
  52. package/{install-MHWLYW3X.js → install-XFN4UFOC.js} +116 -16
  53. package/{list-XZRF7TBW.js → list-43JFFG5D.js} +19 -19
  54. package/{login-6GRRY4H7.js → login-RSTZKNKN.js} +13 -12
  55. package/{logout-KI2AOYRT.js → logout-4576FFXZ.js} +8 -8
  56. package/{outdated-TWUPFRCD.js → outdated-ACQ5A2Y7.js} +31 -29
  57. package/{pack-2ZQLDYFD.js → pack-QQVJ3G25.js} +15 -12
  58. package/package.json +1 -1
  59. package/{ping-ZOTGLOKY.js → ping-QCDQQRO5.js} +8 -8
  60. package/{pkg-HRNOTFXB.js → pkg-CSOJV7UC.js} +17 -12
  61. package/{profile-5V3FFDMG.js → profile-VL4HPW3N.js} +8 -8
  62. package/{publish-7ZXEMWTW.js → publish-2YBO6ZXE.js} +23 -18
  63. package/{query-62UDNMGR.js → query-IHHFMJRT.js} +19 -19
  64. package/{registry-MQJJCWJY.js → registry-W7BRZZZ2.js} +5 -5
  65. package/registry-client-src-revalidate.js +132 -17
  66. package/{repo-HDUGP5PH.js → repo-L3BXAAWS.js} +17 -17
  67. package/{reporter-TGBPLNR5.js → reporter-5NYOHBO7.js} +11 -10
  68. package/{run-6NRDZD4T.js → run-AMUUVLTI.js} +16 -15
  69. package/{run-exec-I4IIXTLW.js → run-exec-5W3XWQZA.js} +16 -15
  70. package/security-archive-src-update-expired.js +46 -12
  71. package/{setup-UVXEFUUJ.js → setup-TFM4GJF7.js} +16 -15
  72. package/{src-QEJ6WZQ7.js → src-4CYCUWZL.js} +29 -24
  73. package/{src-6CJEMSVB.js → src-I3GMULFP.js} +6 -4
  74. package/{src-GP7VLT7P.js → src-LUTN2ODD.js} +58 -9
  75. package/{token-WTN27E7A.js → token-OANOBE3G.js} +8 -8
  76. package/{uninstall-ZJOKXIVQ.js → uninstall-YXTQ4AIZ.js} +12 -12
  77. package/{unpublish-LMUGR7GI.js → unpublish-SZXYMYIU.js} +8 -8
  78. package/{update-WVWMRUYY.js → update-FHLMWGIM.js} +26 -16
  79. package/{version-OJTRHNKV.js → version-ZWFCTU5V.js} +16 -11
  80. package/{view-6Q5B7ZYN.js → view-NFNJXMLV.js} +73 -25
  81. package/vlr.js +1 -1
  82. package/vlrx.js +1 -1
  83. package/vlt.js +1 -1
  84. package/vlx.js +1 -1
  85. package/vlxl.js +1 -1
  86. package/{whoami-SPF34TV6.js → whoami-O7GOSGCI.js} +8 -8
  87. package/chunk-A6FAI65V.js +0 -76
@@ -11,44 +11,140 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  parseAddArgs
14
- } from "./chunk-2M2O6A4R.js";
14
+ } from "./chunk-ISE4IRHF.js";
15
15
  import {
16
16
  trackInstall
17
17
  } from "./chunk-G2YT2GWF.js";
18
18
  import {
19
19
  planSpecConfigPersist
20
- } from "./chunk-SPWJ3X5Y.js";
21
- import "./chunk-L3K2ZAOO.js";
22
- import "./chunk-3D3IB4YN.js";
20
+ } from "./chunk-2AMOC4DN.js";
21
+ import "./chunk-5RHABCYI.js";
22
+ import "./chunk-TO23PR7J.js";
23
23
  import "./chunk-SRWDPPLX.js";
24
24
  import {
25
25
  asUnknownSpecPrefix
26
- } from "./chunk-A2TSRXZD.js";
26
+ } from "./chunk-THSYN5EK.js";
27
27
  import {
28
+ addKey,
29
+ asDependency,
28
30
  install
29
- } from "./chunk-7BHHCB5C.js";
30
- import "./chunk-OWUICQFY.js";
31
+ } from "./chunk-OVPHE4O7.js";
32
+ import "./chunk-5TNXLRW2.js";
31
33
  import {
32
34
  commandUsage
33
- } from "./chunk-TLY4VGMH.js";
34
- import "./chunk-CB65DPZ2.js";
35
+ } from "./chunk-LHPEBLOU.js";
36
+ import "./chunk-I7UMHYZX.js";
35
37
  import {
36
38
  lazyView
37
39
  } from "./chunk-4KCU2KZL.js";
38
- import "./chunk-SV4WK3KX.js";
39
- import "./chunk-GZ5MYMBT.js";
40
- import "./chunk-SE2FSMBR.js";
40
+ import {
41
+ splitDepID
42
+ } from "./chunk-PLG3OYCX.js";
43
+ import {
44
+ Spec
45
+ } from "./chunk-5IJTPZXP.js";
46
+ import "./chunk-WF6KLKRN.js";
41
47
  import "./chunk-HTOTG4TS.js";
42
- import "./chunk-6D54UN4T.js";
43
- import "./chunk-VBDNOU76.js";
48
+ import "./chunk-SR2VOY5J.js";
49
+ import "./chunk-ZJMJ7MCT.js";
44
50
  import "./chunk-U7TEQCBN.js";
45
51
  import "./chunk-XNLSTHDK.js";
52
+ import "./chunk-6IF3RJND.js";
46
53
  import "./chunk-PDWPFR5T.js";
47
54
  import "./chunk-Y5PA7DVK.js";
48
- import "./chunk-IBGFQR23.js";
55
+ import {
56
+ isErrorWithCause,
57
+ isObject,
58
+ longDependencyTypes,
59
+ parse
60
+ } from "./chunk-FLH4YC6W.js";
49
61
  import "./chunk-WZWDS3W4.js";
50
62
  import "./chunk-PZLD7RTK.js";
51
63
 
64
+ // ../../src/cli-sdk/src/save-types.ts
65
+ import { resolve } from "node:path";
66
+ var typesName = (name) => `@types/${name.startsWith("@") ? name.slice(1).replace("/", "__") : name}`;
67
+ var exportsHaveTypes = (e) => !!e && typeof e === "object" && Object.entries(e).some(
68
+ ([k, v]) => k === "types" || k.startsWith("types@") || exportsHaveTypes(v)
69
+ );
70
+ var rootExport = (e) => isObject(e) && Object.keys(e).some((k) => k.startsWith(".")) ? e["."] : e;
71
+ var hasOwnTypes = (m) => !!(m.types || m.typings || m.typesVersions) || exportsHaveTypes(rootExport(m.exports));
72
+ var isResolveError = (er) => isErrorWithCause(er) && isObject(er.cause) && er.cause.code === "ERESOLVE";
73
+ var addTypesDeps = async (conf, add) => {
74
+ const { options } = conf;
75
+ const { packageInfo, packageJson, projectRoot } = options;
76
+ const exact = conf.values["save-exact"];
77
+ const prefix = conf.values["save-prefix"];
78
+ const lookups = /* @__PURE__ */ new Map();
79
+ const lookup = async (spec, name) => {
80
+ const types = (range) => packageInfo.manifest(Spec.parse(name, range, options));
81
+ try {
82
+ const m = await packageInfo.manifest(spec);
83
+ const { version = "" } = m;
84
+ const v = parse(version);
85
+ if (!v || hasOwnTypes(m)) return;
86
+ let tm;
87
+ try {
88
+ tm = await types(v.major ? String(v.major) : `0.${v.minor}`);
89
+ } catch (er) {
90
+ if (!isResolveError(er)) throw er;
91
+ tm = await types("latest");
92
+ if (!parse(tm.version ?? "")?.lessThan(v)) return;
93
+ }
94
+ if (!tm.version || tm.deprecated) return;
95
+ const { versions } = await packageInfo.packument(spec, {
96
+ full: true
97
+ });
98
+ if (hasOwnTypes({ ...versions[version] })) return;
99
+ return Spec.parse(
100
+ name,
101
+ exact ? tm.version : `${prefix}${tm.version}`,
102
+ options
103
+ );
104
+ } catch (er) {
105
+ if (isResolveError(er)) return;
106
+ throw er;
107
+ }
108
+ };
109
+ await Promise.all(
110
+ [...add].map(async ([importer, deps]) => {
111
+ const mani = packageJson.maybeRead(
112
+ resolve(projectRoot, splitDepID(importer)[1])
113
+ ) ?? {};
114
+ const found = await Promise.all(
115
+ [...deps.values()].map(async ({ spec }) => {
116
+ const { final } = spec;
117
+ const name = typesName(spec.name);
118
+ if (final.type !== "registry" || final.name !== spec.name || spec.name.startsWith("@types/") || deps.has(name) || [...longDependencyTypes].some(
119
+ (t) => mani[t]?.[name] !== void 0
120
+ ) || // other registry: its @types/<name> is a different pkg
121
+ final.registry !== Spec.parse(name, "", options).final.registry) {
122
+ return;
123
+ }
124
+ const key = String(spec);
125
+ let p = lookups.get(key);
126
+ if (!p) lookups.set(key, p = lookup(spec, name));
127
+ return p;
128
+ })
129
+ );
130
+ const types = found.filter((s) => s !== void 0);
131
+ if (!types.length) return;
132
+ add.set(
133
+ importer,
134
+ new Map([
135
+ ...deps,
136
+ ...types.map(
137
+ (spec) => [
138
+ addKey(spec),
139
+ asDependency({ spec, type: "dev" })
140
+ ]
141
+ )
142
+ ])
143
+ );
144
+ })
145
+ );
146
+ };
147
+
52
148
  // ../../src/cli-sdk/src/commands/install.ts
53
149
  var needsRegistry = true;
54
150
  var needsNpmRegistry = true;
@@ -77,6 +173,9 @@ var usage = () => commandUsage({
77
173
  "save-prod": {
78
174
  description: "Save installed packages to package.json as dependencies."
79
175
  },
176
+ "save-types": {
177
+ description: "Also save matching @types/* packages to devDependencies for added packages that ship no types."
178
+ },
80
179
  "save-config": {
81
180
  description: "Save registry and git host options given on the command line or via env (e.g. `--registries name=url`) to the project vlt.json, or the user vlt.json with --config=user."
82
181
  },
@@ -149,7 +248,7 @@ var views = {
149
248
  };
150
249
  },
151
250
  human: lazyView(
152
- async () => (await import("./reporter-TGBPLNR5.js")).InstallReporter
251
+ async () => (await import("./reporter-5NYOHBO7.js")).InstallReporter
153
252
  )
154
253
  };
155
254
  var command = async (conf) => {
@@ -157,6 +256,7 @@ var command = async (conf) => {
157
256
  const scurry = conf.options.scurry;
158
257
  const { add } = parseAddArgs(conf, scurry, monorepo);
159
258
  const persist = planSpecConfigPersist(conf);
259
+ if (conf.values["save-types"]) await addTypesDeps(conf, add);
160
260
  const frozenLockfile = conf.options["frozen-lockfile"];
161
261
  const expectLockfile = conf.options["expect-lockfile"];
162
262
  const lockfileOnly = conf.options["lockfile-only"];
@@ -11,21 +11,21 @@ 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-KOFQTETH.js";
14
+ } from "./chunk-PHJJPY5G.js";
15
15
  import {
16
16
  createGetAuthHeader
17
- } from "./chunk-F5D3DVC5.js";
18
- import "./chunk-OWMR2EDW.js";
17
+ } from "./chunk-HZXJ423P.js";
18
+ import "./chunk-TPRK6IDA.js";
19
19
  import {
20
20
  assertVltInstalled,
21
21
  createHostContextsMap
22
- } from "./chunk-FKZ5I53D.js";
23
- import "./chunk-XDSZO74H.js";
24
- import "./chunk-KMOOTBHM.js";
22
+ } from "./chunk-ASLX43R3.js";
23
+ import "./chunk-FZUYGJZU.js";
24
+ import "./chunk-QCSUWACA.js";
25
25
  import "./chunk-G2YT2GWF.js";
26
- import "./chunk-IHXJVKAE.js";
26
+ import "./chunk-5Y4SYLJ2.js";
27
27
  import "./chunk-WGDTG44V.js";
28
- import "./chunk-A2TSRXZD.js";
28
+ import "./chunk-THSYN5EK.js";
29
29
  import {
30
30
  GraphModifier,
31
31
  Query,
@@ -34,28 +34,28 @@ import {
34
34
  humanReadableOutput,
35
35
  jsonOutput,
36
36
  mermaidOutput
37
- } from "./chunk-7BHHCB5C.js";
37
+ } from "./chunk-OVPHE4O7.js";
38
38
  import {
39
39
  SecurityArchive
40
- } from "./chunk-OWUICQFY.js";
40
+ } from "./chunk-5TNXLRW2.js";
41
41
  import {
42
42
  commandUsage
43
- } from "./chunk-TLY4VGMH.js";
44
- import "./chunk-CB65DPZ2.js";
43
+ } from "./chunk-LHPEBLOU.js";
44
+ import "./chunk-I7UMHYZX.js";
45
45
  import "./chunk-4KCU2KZL.js";
46
- import "./chunk-SV4WK3KX.js";
47
- import "./chunk-GZ5MYMBT.js";
48
- import "./chunk-SE2FSMBR.js";
46
+ import "./chunk-PLG3OYCX.js";
47
+ import "./chunk-5IJTPZXP.js";
48
+ import "./chunk-WF6KLKRN.js";
49
49
  import "./chunk-HTOTG4TS.js";
50
- import "./chunk-QVPNKMUU.js";
50
+ import "./chunk-OAJ3PO3Z.js";
51
51
  import "./chunk-APMYKJI2.js";
52
- import "./chunk-6D54UN4T.js";
53
- import "./chunk-VBDNOU76.js";
52
+ import "./chunk-SR2VOY5J.js";
53
+ import "./chunk-ZJMJ7MCT.js";
54
54
  import "./chunk-U7TEQCBN.js";
55
55
  import "./chunk-XNLSTHDK.js";
56
56
  import "./chunk-PDWPFR5T.js";
57
57
  import "./chunk-Y5PA7DVK.js";
58
- import "./chunk-IBGFQR23.js";
58
+ import "./chunk-FLH4YC6W.js";
59
59
  import {
60
60
  error
61
61
  } from "./chunk-WZWDS3W4.js";
@@ -11,31 +11,32 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  configWriteTarget
14
- } from "./chunk-L3K2ZAOO.js";
15
- import "./chunk-3D3IB4YN.js";
14
+ } from "./chunk-5RHABCYI.js";
15
+ import "./chunk-TO23PR7J.js";
16
16
  import "./chunk-SRWDPPLX.js";
17
17
  import {
18
18
  missingRegistryError
19
- } from "./chunk-A2TSRXZD.js";
19
+ } from "./chunk-THSYN5EK.js";
20
20
  import {
21
21
  commandUsage
22
- } from "./chunk-TLY4VGMH.js";
23
- import "./chunk-CB65DPZ2.js";
24
- import "./chunk-SV4WK3KX.js";
25
- import "./chunk-GZ5MYMBT.js";
26
- import "./chunk-SE2FSMBR.js";
22
+ } from "./chunk-LHPEBLOU.js";
23
+ import "./chunk-I7UMHYZX.js";
24
+ import "./chunk-PLG3OYCX.js";
25
+ import "./chunk-5IJTPZXP.js";
26
+ import "./chunk-WF6KLKRN.js";
27
27
  import "./chunk-HTOTG4TS.js";
28
28
  import {
29
29
  RegistryClient
30
- } from "./chunk-QVPNKMUU.js";
30
+ } from "./chunk-OAJ3PO3Z.js";
31
31
  import "./chunk-APMYKJI2.js";
32
- import "./chunk-6D54UN4T.js";
33
- import "./chunk-VBDNOU76.js";
32
+ import "./chunk-SR2VOY5J.js";
33
+ import "./chunk-ZJMJ7MCT.js";
34
34
  import "./chunk-U7TEQCBN.js";
35
35
  import "./chunk-XNLSTHDK.js";
36
+ import "./chunk-6IF3RJND.js";
36
37
  import "./chunk-PDWPFR5T.js";
37
38
  import "./chunk-Y5PA7DVK.js";
38
- import "./chunk-IBGFQR23.js";
39
+ import "./chunk-FLH4YC6W.js";
39
40
  import "./chunk-WZWDS3W4.js";
40
41
  import "./chunk-PZLD7RTK.js";
41
42
 
@@ -11,23 +11,23 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  resolveRegistry
14
- } from "./chunk-A2TSRXZD.js";
14
+ } from "./chunk-THSYN5EK.js";
15
15
  import {
16
16
  commandUsage
17
- } from "./chunk-TLY4VGMH.js";
18
- import "./chunk-GZ5MYMBT.js";
19
- import "./chunk-SE2FSMBR.js";
17
+ } from "./chunk-LHPEBLOU.js";
18
+ import "./chunk-5IJTPZXP.js";
19
+ import "./chunk-WF6KLKRN.js";
20
20
  import {
21
21
  RegistryClient
22
- } from "./chunk-QVPNKMUU.js";
22
+ } from "./chunk-OAJ3PO3Z.js";
23
23
  import "./chunk-APMYKJI2.js";
24
- import "./chunk-6D54UN4T.js";
25
- import "./chunk-VBDNOU76.js";
24
+ import "./chunk-SR2VOY5J.js";
25
+ import "./chunk-ZJMJ7MCT.js";
26
26
  import "./chunk-U7TEQCBN.js";
27
27
  import "./chunk-XNLSTHDK.js";
28
28
  import "./chunk-PDWPFR5T.js";
29
29
  import "./chunk-Y5PA7DVK.js";
30
- import "./chunk-IBGFQR23.js";
30
+ import "./chunk-FLH4YC6W.js";
31
31
  import "./chunk-WZWDS3W4.js";
32
32
  import "./chunk-PZLD7RTK.js";
33
33
 
@@ -11,41 +11,41 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  createStubNode
14
- } from "./chunk-3U6QWN62.js";
14
+ } from "./chunk-7T3XAYP4.js";
15
15
  import {
16
16
  createGetAuthHeader
17
- } from "./chunk-F5D3DVC5.js";
17
+ } from "./chunk-HZXJ423P.js";
18
18
  import {
19
19
  assertVltInstalled,
20
20
  createHostContextsMap
21
- } from "./chunk-FKZ5I53D.js";
21
+ } from "./chunk-ASLX43R3.js";
22
22
  import {
23
23
  PackageInfoClient
24
- } from "./chunk-3D3IB4YN.js";
24
+ } from "./chunk-TO23PR7J.js";
25
25
  import "./chunk-SRWDPPLX.js";
26
26
  import {
27
27
  Edge,
28
28
  GraphModifier,
29
29
  Query,
30
30
  actual
31
- } from "./chunk-7BHHCB5C.js";
31
+ } from "./chunk-OVPHE4O7.js";
32
32
  import {
33
33
  SecurityArchive
34
- } from "./chunk-OWUICQFY.js";
34
+ } from "./chunk-5TNXLRW2.js";
35
35
  import {
36
36
  commandUsage
37
- } from "./chunk-TLY4VGMH.js";
37
+ } from "./chunk-LHPEBLOU.js";
38
38
  import {
39
39
  pickManifest
40
- } from "./chunk-CB65DPZ2.js";
41
- import "./chunk-SV4WK3KX.js";
42
- import "./chunk-GZ5MYMBT.js";
43
- import "./chunk-SE2FSMBR.js";
40
+ } from "./chunk-I7UMHYZX.js";
41
+ import "./chunk-PLG3OYCX.js";
42
+ import "./chunk-5IJTPZXP.js";
43
+ import "./chunk-WF6KLKRN.js";
44
44
  import "./chunk-HTOTG4TS.js";
45
- import "./chunk-QVPNKMUU.js";
45
+ import "./chunk-OAJ3PO3Z.js";
46
46
  import "./chunk-APMYKJI2.js";
47
- import "./chunk-6D54UN4T.js";
48
- import "./chunk-VBDNOU76.js";
47
+ import "./chunk-SR2VOY5J.js";
48
+ import "./chunk-ZJMJ7MCT.js";
49
49
  import "./chunk-U7TEQCBN.js";
50
50
  import "./chunk-XNLSTHDK.js";
51
51
  import "./chunk-PDWPFR5T.js";
@@ -56,7 +56,7 @@ import {
56
56
  rsort,
57
57
  satisfies,
58
58
  stable
59
- } from "./chunk-IBGFQR23.js";
59
+ } from "./chunk-FLH4YC6W.js";
60
60
  import "./chunk-WZWDS3W4.js";
61
61
  import "./chunk-PZLD7RTK.js";
62
62
 
@@ -219,25 +219,26 @@ var suggestActions = (result) => {
219
219
  );
220
220
  }
221
221
  const installs = /* @__PURE__ */ new Map();
222
+ const edits = /* @__PURE__ */ new Set();
222
223
  for (const { action } of result) {
223
- if (!action?.startsWith("vlt install ")) continue;
224
- const [spec = "", ...flags] = action.slice("vlt install ".length).split(" ");
225
- const key = flags.join(" ");
226
- const specs = installs.get(key) ?? [];
227
- specs.push(spec);
228
- installs.set(key, specs);
224
+ if (!action) continue;
225
+ if (action.startsWith("vlt install ")) {
226
+ const [spec = "", ...flags] = action.slice("vlt install ".length).split(" ");
227
+ const key = flags.join(" ");
228
+ const specs = installs.get(key) ?? /* @__PURE__ */ new Set();
229
+ specs.add(spec);
230
+ installs.set(key, specs);
231
+ } else if (!action.startsWith("vlt ")) {
232
+ edits.add(
233
+ `${action.charAt(0).toUpperCase()}${action.slice(1)}.`
234
+ );
235
+ }
229
236
  }
230
237
  for (const [flags, specs] of installs) {
231
238
  const args = [...specs, ...flags ? [flags] : []].join(" ");
232
239
  lines.push(`Run \`vlt install ${args}\` to move to latest.`);
233
240
  }
234
- for (const { action } of result) {
235
- if (action && !action.startsWith("vlt ")) {
236
- lines.push(
237
- `${action.charAt(0).toUpperCase()}${action.slice(1)}.`
238
- );
239
- }
240
- }
241
+ lines.push(...edits);
241
242
  return lines;
242
243
  };
243
244
  var views = {
@@ -346,7 +347,8 @@ var actionFor = (edge, entry, { savePrefix }) => {
346
347
  if (satisfies(latest, range)) return "vlt update";
347
348
  const newRange = `${savePrefix}${latest}`;
348
349
  if (edge.spec.type === "catalog") {
349
- return `set the catalog entry for ${edge.name} in vlt.json to ${newRange}`;
350
+ const catalog = edge.spec.catalog ? `"${edge.spec.catalog}" catalog` : "catalog";
351
+ return `set the ${catalog} entry for ${edge.name} in vlt.json to ${newRange}`;
350
352
  }
351
353
  const workspace = edge.from.mainImporter ? "" : ` --workspace=${edge.from.location.replace(/^\.\//, "")}`;
352
354
  return `vlt install ${installSpec(edge, newRange)}${saveFlags[edge.type]}${workspace}`;
@@ -11,10 +11,13 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  packTarball
14
- } from "./chunk-EL4GVZK5.js";
14
+ } from "./chunk-MKWPTN3C.js";
15
+ import {
16
+ sortScopeLocations
17
+ } from "./chunk-UGCKF5ZE.js";
15
18
  import {
16
19
  createHostContextsMap
17
- } from "./chunk-FKZ5I53D.js";
20
+ } from "./chunk-ASLX43R3.js";
18
21
  import {
19
22
  prettyBytes
20
23
  } from "./chunk-XA47WS4N.js";
@@ -23,24 +26,24 @@ import {
23
26
  Query,
24
27
  actual,
25
28
  run
26
- } from "./chunk-7BHHCB5C.js";
27
- import "./chunk-OWUICQFY.js";
29
+ } from "./chunk-OVPHE4O7.js";
30
+ import "./chunk-5TNXLRW2.js";
28
31
  import {
29
32
  commandUsage
30
- } from "./chunk-TLY4VGMH.js";
33
+ } from "./chunk-LHPEBLOU.js";
31
34
  import {
32
35
  minimatch
33
- } from "./chunk-CB65DPZ2.js";
34
- import "./chunk-SV4WK3KX.js";
35
- import "./chunk-GZ5MYMBT.js";
36
- import "./chunk-SE2FSMBR.js";
36
+ } from "./chunk-I7UMHYZX.js";
37
+ import "./chunk-PLG3OYCX.js";
38
+ import "./chunk-5IJTPZXP.js";
39
+ import "./chunk-WF6KLKRN.js";
37
40
  import "./chunk-HTOTG4TS.js";
38
- import "./chunk-VBDNOU76.js";
41
+ import "./chunk-ZJMJ7MCT.js";
39
42
  import "./chunk-U7TEQCBN.js";
40
43
  import "./chunk-XNLSTHDK.js";
41
44
  import "./chunk-PDWPFR5T.js";
42
45
  import "./chunk-Y5PA7DVK.js";
43
- import "./chunk-IBGFQR23.js";
46
+ import "./chunk-FLH4YC6W.js";
44
47
  import {
45
48
  error
46
49
  } from "./chunk-WZWDS3W4.js";
@@ -133,7 +136,7 @@ var scopeLocations = async (queryString, conf) => {
133
136
  );
134
137
  locations.push(resolve(projectRoot, location));
135
138
  }
136
- return locations;
139
+ return sortScopeLocations(locations, options.monorepo);
137
140
  };
138
141
  var command = async (conf) => {
139
142
  const { options, projectRoot } = conf;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vltpkg/cli-js",
3
3
  "description": "The vlt CLI",
4
- "version": "1.3.7",
4
+ "version": "1.4.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
@@ -11,23 +11,23 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  requireRegistry
14
- } from "./chunk-A2TSRXZD.js";
14
+ } from "./chunk-THSYN5EK.js";
15
15
  import {
16
16
  commandUsage
17
- } from "./chunk-TLY4VGMH.js";
18
- import "./chunk-GZ5MYMBT.js";
19
- import "./chunk-SE2FSMBR.js";
17
+ } from "./chunk-LHPEBLOU.js";
18
+ import "./chunk-5IJTPZXP.js";
19
+ import "./chunk-WF6KLKRN.js";
20
20
  import {
21
21
  RegistryClient
22
- } from "./chunk-QVPNKMUU.js";
22
+ } from "./chunk-OAJ3PO3Z.js";
23
23
  import "./chunk-APMYKJI2.js";
24
- import "./chunk-6D54UN4T.js";
25
- import "./chunk-VBDNOU76.js";
24
+ import "./chunk-SR2VOY5J.js";
25
+ import "./chunk-ZJMJ7MCT.js";
26
26
  import "./chunk-U7TEQCBN.js";
27
27
  import "./chunk-XNLSTHDK.js";
28
28
  import "./chunk-PDWPFR5T.js";
29
29
  import "./chunk-Y5PA7DVK.js";
30
- import "./chunk-IBGFQR23.js";
30
+ import "./chunk-FLH4YC6W.js";
31
31
  import {
32
32
  error
33
33
  } from "./chunk-WZWDS3W4.js";
@@ -11,41 +11,44 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  views
14
- } from "./chunk-W2ZO5RZL.js";
14
+ } from "./chunk-GIIAODRI.js";
15
15
  import {
16
16
  del,
17
17
  get,
18
18
  set
19
19
  } from "./chunk-DBANBIL2.js";
20
+ import {
21
+ sortScopeLocations
22
+ } from "./chunk-UGCKF5ZE.js";
20
23
  import {
21
24
  createHostContextsMap
22
- } from "./chunk-FKZ5I53D.js";
25
+ } from "./chunk-ASLX43R3.js";
23
26
  import {
24
27
  GraphModifier,
25
28
  Query,
26
29
  VIRTUAL_ROOT_ID,
27
30
  actual,
28
31
  init
29
- } from "./chunk-7BHHCB5C.js";
32
+ } from "./chunk-OVPHE4O7.js";
30
33
  import {
31
34
  SecurityArchive
32
- } from "./chunk-OWUICQFY.js";
35
+ } from "./chunk-5TNXLRW2.js";
33
36
  import {
34
37
  commandUsage
35
- } from "./chunk-TLY4VGMH.js";
38
+ } from "./chunk-LHPEBLOU.js";
36
39
  import {
37
40
  minimatch
38
- } from "./chunk-CB65DPZ2.js";
39
- import "./chunk-SV4WK3KX.js";
40
- import "./chunk-GZ5MYMBT.js";
41
- import "./chunk-SE2FSMBR.js";
41
+ } from "./chunk-I7UMHYZX.js";
42
+ import "./chunk-PLG3OYCX.js";
43
+ import "./chunk-5IJTPZXP.js";
44
+ import "./chunk-WF6KLKRN.js";
42
45
  import "./chunk-HTOTG4TS.js";
43
- import "./chunk-VBDNOU76.js";
46
+ import "./chunk-ZJMJ7MCT.js";
44
47
  import "./chunk-U7TEQCBN.js";
45
48
  import "./chunk-XNLSTHDK.js";
46
49
  import "./chunk-PDWPFR5T.js";
47
50
  import "./chunk-Y5PA7DVK.js";
48
- import "./chunk-IBGFQR23.js";
51
+ import "./chunk-FLH4YC6W.js";
49
52
  import {
50
53
  error
51
54
  } from "./chunk-WZWDS3W4.js";
@@ -170,6 +173,7 @@ var command = async (conf) => {
170
173
  const { nodes: resultNodes } = await query.search(queryString, {
171
174
  signal: new AbortController().signal
172
175
  });
176
+ const found = [];
173
177
  for (const node of resultNodes) {
174
178
  const location = node.location;
175
179
  assert(
@@ -179,9 +183,10 @@ var command = async (conf) => {
179
183
  })
180
184
  );
181
185
  if (node.id !== VIRTUAL_ROOT_ID) {
182
- locations.push(resolve(node.projectRoot, location));
186
+ found.push(resolve(node.projectRoot, location));
183
187
  }
184
188
  }
189
+ locations.push(...sortScopeLocations(found, options.monorepo));
185
190
  } else if (paths?.length || groups?.length || recursive) {
186
191
  for (const workspace of options.monorepo ?? []) {
187
192
  if (paths?.length) {
@@ -11,25 +11,25 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  resolveRegistry
14
- } from "./chunk-A2TSRXZD.js";
14
+ } from "./chunk-THSYN5EK.js";
15
15
  import {
16
16
  commandUsage
17
- } from "./chunk-TLY4VGMH.js";
18
- import "./chunk-GZ5MYMBT.js";
19
- import "./chunk-SE2FSMBR.js";
17
+ } from "./chunk-LHPEBLOU.js";
18
+ import "./chunk-5IJTPZXP.js";
19
+ import "./chunk-WF6KLKRN.js";
20
20
  import {
21
21
  RegistryClient
22
- } from "./chunk-QVPNKMUU.js";
22
+ } from "./chunk-OAJ3PO3Z.js";
23
23
  import "./chunk-APMYKJI2.js";
24
24
  import {
25
25
  assertOk
26
- } from "./chunk-6D54UN4T.js";
27
- import "./chunk-VBDNOU76.js";
26
+ } from "./chunk-SR2VOY5J.js";
27
+ import "./chunk-ZJMJ7MCT.js";
28
28
  import "./chunk-U7TEQCBN.js";
29
29
  import "./chunk-XNLSTHDK.js";
30
30
  import "./chunk-PDWPFR5T.js";
31
31
  import "./chunk-Y5PA7DVK.js";
32
- import "./chunk-IBGFQR23.js";
32
+ import "./chunk-FLH4YC6W.js";
33
33
  import {
34
34
  error
35
35
  } from "./chunk-WZWDS3W4.js";