@vltpkg/cli-sdk 1.0.0-rc.10 → 1.0.0-rc.12

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 (266) hide show
  1. package/dist/commands/bugs.d.ts.map +1 -0
  2. package/dist/commands/bugs.js.map +1 -0
  3. package/dist/commands/build.d.ts.map +1 -0
  4. package/dist/commands/build.js.map +1 -0
  5. package/dist/commands/cache.d.ts.map +1 -0
  6. package/dist/commands/cache.js.map +1 -0
  7. package/dist/commands/ci.d.ts.map +1 -0
  8. package/dist/commands/ci.js.map +1 -0
  9. package/dist/commands/config.d.ts.map +1 -0
  10. package/dist/commands/config.js.map +1 -0
  11. package/dist/commands/docs.d.ts.map +1 -0
  12. package/dist/commands/docs.js.map +1 -0
  13. package/dist/commands/exec-cache.d.ts.map +1 -0
  14. package/dist/commands/exec-cache.js.map +1 -0
  15. package/dist/commands/exec-local.d.ts.map +1 -0
  16. package/dist/commands/exec-local.js.map +1 -0
  17. package/dist/commands/exec.d.ts.map +1 -0
  18. package/dist/commands/exec.js.map +1 -0
  19. package/dist/commands/help.d.ts.map +1 -0
  20. package/dist/commands/help.js.map +1 -0
  21. package/dist/commands/init.d.ts.map +1 -0
  22. package/dist/commands/init.js.map +1 -0
  23. package/dist/commands/install/reporter.d.ts.map +1 -0
  24. package/dist/commands/install/reporter.js.map +1 -0
  25. package/dist/commands/install.d.ts.map +1 -0
  26. package/dist/commands/install.js.map +1 -0
  27. package/dist/commands/list.d.ts.map +1 -0
  28. package/dist/commands/list.js.map +1 -0
  29. package/dist/commands/login.d.ts.map +1 -0
  30. package/dist/commands/login.js.map +1 -0
  31. package/dist/commands/logout.d.ts.map +1 -0
  32. package/dist/commands/logout.js.map +1 -0
  33. package/dist/commands/pack.d.ts.map +1 -0
  34. package/dist/commands/pack.js.map +1 -0
  35. package/dist/commands/pkg.d.ts.map +1 -0
  36. package/dist/commands/pkg.js.map +1 -0
  37. package/dist/commands/publish.d.ts.map +1 -0
  38. package/dist/commands/publish.js.map +1 -0
  39. package/dist/commands/query.d.ts.map +1 -0
  40. package/dist/commands/query.js.map +1 -0
  41. package/dist/commands/run-exec.d.ts.map +1 -0
  42. package/dist/commands/run-exec.js.map +1 -0
  43. package/dist/commands/run.d.ts.map +1 -0
  44. package/dist/commands/run.js.map +1 -0
  45. package/dist/commands/serve.d.ts.map +1 -0
  46. package/dist/commands/serve.js.map +1 -0
  47. package/dist/commands/token.d.ts.map +1 -0
  48. package/dist/commands/token.js.map +1 -0
  49. package/dist/commands/uninstall.d.ts.map +1 -0
  50. package/dist/commands/uninstall.js.map +1 -0
  51. package/dist/commands/update.d.ts.map +1 -0
  52. package/dist/commands/update.js.map +1 -0
  53. package/dist/commands/version.d.ts.map +1 -0
  54. package/dist/commands/version.js.map +1 -0
  55. package/dist/commands/whoami.d.ts.map +1 -0
  56. package/dist/commands/whoami.js.map +1 -0
  57. package/dist/config/definition.d.ts.map +1 -0
  58. package/dist/config/definition.js.map +1 -0
  59. package/dist/config/index.d.ts.map +1 -0
  60. package/dist/config/index.js.map +1 -0
  61. package/dist/config/merge.d.ts.map +1 -0
  62. package/dist/config/merge.js.map +1 -0
  63. package/dist/config/usage.d.ts.map +1 -0
  64. package/dist/config/usage.js.map +1 -0
  65. package/dist/custom-help.d.ts.map +1 -0
  66. package/dist/custom-help.js.map +1 -0
  67. package/dist/exec-command.d.ts.map +1 -0
  68. package/dist/{esm/exec-command.js → exec-command.js} +4 -2
  69. package/dist/exec-command.js.map +1 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/load-command.d.ts.map +1 -0
  73. package/dist/load-command.js.map +1 -0
  74. package/dist/output.d.ts.map +1 -0
  75. package/dist/output.js.map +1 -0
  76. package/dist/pack-tarball.d.ts.map +1 -0
  77. package/dist/pack-tarball.js.map +1 -0
  78. package/dist/parse-add-remove-args.d.ts.map +1 -0
  79. package/dist/parse-add-remove-args.js.map +1 -0
  80. package/dist/print-err.d.ts.map +1 -0
  81. package/dist/{esm/print-err.js → print-err.js} +1 -1
  82. package/dist/print-err.js.map +1 -0
  83. package/dist/query-host-contexts.d.ts.map +1 -0
  84. package/dist/query-host-contexts.js.map +1 -0
  85. package/dist/read-password.d.ts.map +1 -0
  86. package/dist/read-password.js.map +1 -0
  87. package/dist/start-gui.d.ts.map +1 -0
  88. package/dist/start-gui.js.map +1 -0
  89. package/dist/view.d.ts.map +1 -0
  90. package/dist/view.js.map +1 -0
  91. package/package.json +31 -51
  92. package/dist/esm/commands/bugs.d.ts.map +0 -1
  93. package/dist/esm/commands/bugs.js.map +0 -1
  94. package/dist/esm/commands/build.d.ts.map +0 -1
  95. package/dist/esm/commands/build.js.map +0 -1
  96. package/dist/esm/commands/cache.d.ts.map +0 -1
  97. package/dist/esm/commands/cache.js.map +0 -1
  98. package/dist/esm/commands/ci.d.ts.map +0 -1
  99. package/dist/esm/commands/ci.js.map +0 -1
  100. package/dist/esm/commands/config.d.ts.map +0 -1
  101. package/dist/esm/commands/config.js.map +0 -1
  102. package/dist/esm/commands/docs.d.ts.map +0 -1
  103. package/dist/esm/commands/docs.js.map +0 -1
  104. package/dist/esm/commands/exec-cache.d.ts.map +0 -1
  105. package/dist/esm/commands/exec-cache.js.map +0 -1
  106. package/dist/esm/commands/exec-local.d.ts.map +0 -1
  107. package/dist/esm/commands/exec-local.js.map +0 -1
  108. package/dist/esm/commands/exec.d.ts.map +0 -1
  109. package/dist/esm/commands/exec.js.map +0 -1
  110. package/dist/esm/commands/help.d.ts.map +0 -1
  111. package/dist/esm/commands/help.js.map +0 -1
  112. package/dist/esm/commands/init.d.ts.map +0 -1
  113. package/dist/esm/commands/init.js.map +0 -1
  114. package/dist/esm/commands/install/reporter.d.ts.map +0 -1
  115. package/dist/esm/commands/install/reporter.js.map +0 -1
  116. package/dist/esm/commands/install.d.ts.map +0 -1
  117. package/dist/esm/commands/install.js.map +0 -1
  118. package/dist/esm/commands/list.d.ts.map +0 -1
  119. package/dist/esm/commands/list.js.map +0 -1
  120. package/dist/esm/commands/login.d.ts.map +0 -1
  121. package/dist/esm/commands/login.js.map +0 -1
  122. package/dist/esm/commands/logout.d.ts.map +0 -1
  123. package/dist/esm/commands/logout.js.map +0 -1
  124. package/dist/esm/commands/pack.d.ts.map +0 -1
  125. package/dist/esm/commands/pack.js.map +0 -1
  126. package/dist/esm/commands/pkg.d.ts.map +0 -1
  127. package/dist/esm/commands/pkg.js.map +0 -1
  128. package/dist/esm/commands/publish.d.ts.map +0 -1
  129. package/dist/esm/commands/publish.js.map +0 -1
  130. package/dist/esm/commands/query.d.ts.map +0 -1
  131. package/dist/esm/commands/query.js.map +0 -1
  132. package/dist/esm/commands/run-exec.d.ts.map +0 -1
  133. package/dist/esm/commands/run-exec.js.map +0 -1
  134. package/dist/esm/commands/run.d.ts.map +0 -1
  135. package/dist/esm/commands/run.js.map +0 -1
  136. package/dist/esm/commands/serve.d.ts.map +0 -1
  137. package/dist/esm/commands/serve.js.map +0 -1
  138. package/dist/esm/commands/token.d.ts.map +0 -1
  139. package/dist/esm/commands/token.js.map +0 -1
  140. package/dist/esm/commands/uninstall.d.ts.map +0 -1
  141. package/dist/esm/commands/uninstall.js.map +0 -1
  142. package/dist/esm/commands/update.d.ts.map +0 -1
  143. package/dist/esm/commands/update.js.map +0 -1
  144. package/dist/esm/commands/version.d.ts.map +0 -1
  145. package/dist/esm/commands/version.js.map +0 -1
  146. package/dist/esm/commands/whoami.d.ts.map +0 -1
  147. package/dist/esm/commands/whoami.js.map +0 -1
  148. package/dist/esm/config/definition.d.ts.map +0 -1
  149. package/dist/esm/config/definition.js.map +0 -1
  150. package/dist/esm/config/index.d.ts.map +0 -1
  151. package/dist/esm/config/index.js.map +0 -1
  152. package/dist/esm/config/merge.d.ts.map +0 -1
  153. package/dist/esm/config/merge.js.map +0 -1
  154. package/dist/esm/config/usage.d.ts.map +0 -1
  155. package/dist/esm/config/usage.js.map +0 -1
  156. package/dist/esm/custom-help.d.ts.map +0 -1
  157. package/dist/esm/custom-help.js.map +0 -1
  158. package/dist/esm/exec-command.d.ts.map +0 -1
  159. package/dist/esm/exec-command.js.map +0 -1
  160. package/dist/esm/index.d.ts.map +0 -1
  161. package/dist/esm/index.js.map +0 -1
  162. package/dist/esm/load-command.d.ts.map +0 -1
  163. package/dist/esm/load-command.js.map +0 -1
  164. package/dist/esm/output.d.ts.map +0 -1
  165. package/dist/esm/output.js.map +0 -1
  166. package/dist/esm/pack-tarball.d.ts.map +0 -1
  167. package/dist/esm/pack-tarball.js.map +0 -1
  168. package/dist/esm/package.json +0 -3
  169. package/dist/esm/parse-add-remove-args.d.ts.map +0 -1
  170. package/dist/esm/parse-add-remove-args.js.map +0 -1
  171. package/dist/esm/print-err.d.ts.map +0 -1
  172. package/dist/esm/print-err.js.map +0 -1
  173. package/dist/esm/query-host-contexts.d.ts.map +0 -1
  174. package/dist/esm/query-host-contexts.js.map +0 -1
  175. package/dist/esm/read-password.d.ts.map +0 -1
  176. package/dist/esm/read-password.js.map +0 -1
  177. package/dist/esm/start-gui.d.ts.map +0 -1
  178. package/dist/esm/start-gui.js.map +0 -1
  179. package/dist/esm/view.d.ts.map +0 -1
  180. package/dist/esm/view.js.map +0 -1
  181. /package/dist/{esm/commands → commands}/bugs.d.ts +0 -0
  182. /package/dist/{esm/commands → commands}/bugs.js +0 -0
  183. /package/dist/{esm/commands → commands}/build.d.ts +0 -0
  184. /package/dist/{esm/commands → commands}/build.js +0 -0
  185. /package/dist/{esm/commands → commands}/cache.d.ts +0 -0
  186. /package/dist/{esm/commands → commands}/cache.js +0 -0
  187. /package/dist/{esm/commands → commands}/ci.d.ts +0 -0
  188. /package/dist/{esm/commands → commands}/ci.js +0 -0
  189. /package/dist/{esm/commands → commands}/config.d.ts +0 -0
  190. /package/dist/{esm/commands → commands}/config.js +0 -0
  191. /package/dist/{esm/commands → commands}/docs.d.ts +0 -0
  192. /package/dist/{esm/commands → commands}/docs.js +0 -0
  193. /package/dist/{esm/commands → commands}/exec-cache.d.ts +0 -0
  194. /package/dist/{esm/commands → commands}/exec-cache.js +0 -0
  195. /package/dist/{esm/commands → commands}/exec-local.d.ts +0 -0
  196. /package/dist/{esm/commands → commands}/exec-local.js +0 -0
  197. /package/dist/{esm/commands → commands}/exec.d.ts +0 -0
  198. /package/dist/{esm/commands → commands}/exec.js +0 -0
  199. /package/dist/{esm/commands → commands}/help.d.ts +0 -0
  200. /package/dist/{esm/commands → commands}/help.js +0 -0
  201. /package/dist/{esm/commands → commands}/init.d.ts +0 -0
  202. /package/dist/{esm/commands → commands}/init.js +0 -0
  203. /package/dist/{esm/commands → commands}/install/reporter.d.ts +0 -0
  204. /package/dist/{esm/commands → commands}/install/reporter.js +0 -0
  205. /package/dist/{esm/commands → commands}/install.d.ts +0 -0
  206. /package/dist/{esm/commands → commands}/install.js +0 -0
  207. /package/dist/{esm/commands → commands}/list.d.ts +0 -0
  208. /package/dist/{esm/commands → commands}/list.js +0 -0
  209. /package/dist/{esm/commands → commands}/login.d.ts +0 -0
  210. /package/dist/{esm/commands → commands}/login.js +0 -0
  211. /package/dist/{esm/commands → commands}/logout.d.ts +0 -0
  212. /package/dist/{esm/commands → commands}/logout.js +0 -0
  213. /package/dist/{esm/commands → commands}/pack.d.ts +0 -0
  214. /package/dist/{esm/commands → commands}/pack.js +0 -0
  215. /package/dist/{esm/commands → commands}/pkg.d.ts +0 -0
  216. /package/dist/{esm/commands → commands}/pkg.js +0 -0
  217. /package/dist/{esm/commands → commands}/publish.d.ts +0 -0
  218. /package/dist/{esm/commands → commands}/publish.js +0 -0
  219. /package/dist/{esm/commands → commands}/query.d.ts +0 -0
  220. /package/dist/{esm/commands → commands}/query.js +0 -0
  221. /package/dist/{esm/commands → commands}/run-exec.d.ts +0 -0
  222. /package/dist/{esm/commands → commands}/run-exec.js +0 -0
  223. /package/dist/{esm/commands → commands}/run.d.ts +0 -0
  224. /package/dist/{esm/commands → commands}/run.js +0 -0
  225. /package/dist/{esm/commands → commands}/serve.d.ts +0 -0
  226. /package/dist/{esm/commands → commands}/serve.js +0 -0
  227. /package/dist/{esm/commands → commands}/token.d.ts +0 -0
  228. /package/dist/{esm/commands → commands}/token.js +0 -0
  229. /package/dist/{esm/commands → commands}/uninstall.d.ts +0 -0
  230. /package/dist/{esm/commands → commands}/uninstall.js +0 -0
  231. /package/dist/{esm/commands → commands}/update.d.ts +0 -0
  232. /package/dist/{esm/commands → commands}/update.js +0 -0
  233. /package/dist/{esm/commands → commands}/version.d.ts +0 -0
  234. /package/dist/{esm/commands → commands}/version.js +0 -0
  235. /package/dist/{esm/commands → commands}/whoami.d.ts +0 -0
  236. /package/dist/{esm/commands → commands}/whoami.js +0 -0
  237. /package/dist/{esm/config → config}/definition.d.ts +0 -0
  238. /package/dist/{esm/config → config}/definition.js +0 -0
  239. /package/dist/{esm/config → config}/index.d.ts +0 -0
  240. /package/dist/{esm/config → config}/index.js +0 -0
  241. /package/dist/{esm/config → config}/merge.d.ts +0 -0
  242. /package/dist/{esm/config → config}/merge.js +0 -0
  243. /package/dist/{esm/config → config}/usage.d.ts +0 -0
  244. /package/dist/{esm/config → config}/usage.js +0 -0
  245. /package/dist/{esm/custom-help.d.ts → custom-help.d.ts} +0 -0
  246. /package/dist/{esm/custom-help.js → custom-help.js} +0 -0
  247. /package/dist/{esm/exec-command.d.ts → exec-command.d.ts} +0 -0
  248. /package/dist/{esm/index.d.ts → index.d.ts} +0 -0
  249. /package/dist/{esm/index.js → index.js} +0 -0
  250. /package/dist/{esm/load-command.d.ts → load-command.d.ts} +0 -0
  251. /package/dist/{esm/load-command.js → load-command.js} +0 -0
  252. /package/dist/{esm/output.d.ts → output.d.ts} +0 -0
  253. /package/dist/{esm/output.js → output.js} +0 -0
  254. /package/dist/{esm/pack-tarball.d.ts → pack-tarball.d.ts} +0 -0
  255. /package/dist/{esm/pack-tarball.js → pack-tarball.js} +0 -0
  256. /package/dist/{esm/parse-add-remove-args.d.ts → parse-add-remove-args.d.ts} +0 -0
  257. /package/dist/{esm/parse-add-remove-args.js → parse-add-remove-args.js} +0 -0
  258. /package/dist/{esm/print-err.d.ts → print-err.d.ts} +0 -0
  259. /package/dist/{esm/query-host-contexts.d.ts → query-host-contexts.d.ts} +0 -0
  260. /package/dist/{esm/query-host-contexts.js → query-host-contexts.js} +0 -0
  261. /package/dist/{esm/read-password.d.ts → read-password.d.ts} +0 -0
  262. /package/dist/{esm/read-password.js → read-password.js} +0 -0
  263. /package/dist/{esm/start-gui.d.ts → start-gui.d.ts} +0 -0
  264. /package/dist/{esm/start-gui.js → start-gui.js} +0 -0
  265. /package/dist/{esm/view.d.ts → view.d.ts} +0 -0
  266. /package/dist/{esm/view.js → view.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WriteStream } from 'node:tty'\nimport {\n formatWithOptions,\n styleText as utilStyleText,\n} from 'node:util'\nimport { createSupportsColor } from 'supports-color'\nimport { defaultView } from './config/definition.ts'\nimport type { LoadedConfig } from './config/index.ts'\nimport type { Command } from './index.ts'\nimport { printErr, formatOptions } from './print-err.ts'\nimport type { View, ViewOptions, Views } from './view.ts'\nimport { isViewClass } from './view.ts'\nimport {\n generateDefaultHelp,\n generateFullHelp,\n} from './custom-help.ts'\n\nconst supportsColor = (stream: WriteStream) => {\n const res = createSupportsColor(stream, { sniffFlags: false })\n if (res === false) return false\n /* c8 ignore next */\n return res.level > 0\n}\n\n// eslint-disable-next-line no-console\nexport const stdout = (...args: unknown[]) => console.log(...args)\n// eslint-disable-next-line no-console\nexport const stderr = (...args: unknown[]) => console.error(...args)\n\ntype StyleTextFn = (\n format: Parameters<typeof utilStyleText>[0],\n s: string,\n) => string\n\n/* c8 ignore start */\nconst styleText: StyleTextFn = (f, s) =>\n utilStyleText(f, s, { validateStream: false })\n/* c8 ignore stop */\n\n// TODO: stop exporting mutable variables once exec output is refactored\n/* c8 ignore start */\nexport let styleTextStdout: StyleTextFn = (_, s) => s\nexport let styleTextStderr: StyleTextFn = (_, s) => s\n/* c8 ignore stop */\n\nconst identity = <T>(x: T): T => x\n\nexport const getView = <T>(\n conf: LoadedConfig,\n views?: Views<T>,\n): View<T> => {\n const viewName = conf.values.view\n\n const viewFn =\n viewName === 'inspect' ? identity\n : viewName === 'silent' ? () => undefined\n : typeof views === 'function' ? views\n : views && typeof views === 'object' ? views[viewName]\n : identity\n\n // if the user specified a view that doesn't exist, then set it back to the\n // default, and try again. This will fall back to identity if it's also\n // missing. We also always treat 'json' as a valid view that falls back to\n // identity. This allows the explicit use of `--view=json` to work even\n // when the default view is `human`.\n if (\n !viewFn &&\n conf.values.view !== defaultView &&\n conf.values.view !== 'json' &&\n conf.values.view !== 'silent'\n ) {\n conf.values.view = defaultView\n process.env.VLT_VIEW = defaultView\n return getView(conf, views)\n }\n\n return viewFn ?? identity\n}\n\nexport type OnDone<T> = (result: T) => Promise<unknown>\n\n/**\n * If the view is a View class, then instantiate and start it.\n * If it's a view function, then just define the onDone method.\n */\nconst startView = <T>(\n conf: LoadedConfig,\n opts: ViewOptions,\n views?: Views<T>,\n { start }: { start: number } = { start: Date.now() },\n): {\n onDone: OnDone<T>\n onError?: (err: unknown) => void\n} => {\n const View = getView<T>(conf, views)\n\n if (isViewClass(View)) {\n const view = new View(opts, conf)\n view.start()\n return {\n async onDone(r) {\n return view.done(r, { time: Date.now() - start })\n },\n onError(err) {\n view.error(err)\n },\n }\n }\n\n return {\n async onDone(r) {\n if (r === undefined) return\n return View(r, opts, conf)\n },\n }\n}\n\n/**\n * Main export. Run the command appropriately, displaying output using\n * the user-requested view, or the default if the user requested a view\n * that is not defined for this command.\n */\nexport const outputCommand = async <T>(\n cliCommand: Command<T>,\n conf: LoadedConfig,\n { start }: { start: number } = { start: Date.now() },\n) => {\n const { usage, views, command } = cliCommand\n\n const stdoutColor =\n conf.values.color ?? supportsColor(process.stdout)\n const stderrColor =\n conf.values.color ?? supportsColor(process.stderr)\n\n if (conf.values.help) {\n // Show custom help for main vlt command\n /* c8 ignore start */\n if (conf.command === 'help' && conf.positionals.length === 0) {\n if (conf.get('all')) {\n return stdout(generateFullHelp(stdoutColor))\n }\n return stdout(generateDefaultHelp(stdoutColor))\n }\n /* c8 ignore stop */\n return stdout(usage().usage())\n }\n\n /* c8 ignore start */\n if (stdoutColor) styleTextStdout = styleText\n if (stderrColor) styleTextStderr = styleText\n /* c8 ignore stop */\n\n const { onDone, onError } = startView(\n conf,\n // assume views will always output to stdout so use color support from there\n { colors: stdoutColor },\n views,\n { start },\n )\n\n try {\n const output = await onDone(await command(conf))\n if (output !== undefined && conf.values.view !== 'silent') {\n stdout(\n conf.values.view === 'json' ?\n JSON.stringify(output, null, 2)\n : formatWithOptions(\n {\n ...formatOptions,\n colors: stdoutColor,\n },\n output,\n ),\n )\n }\n } catch (err) {\n onError?.(err)\n process.exitCode ||= 1\n\n printErr(err, usage, stderr, {\n ...formatOptions,\n colors: stderrColor,\n })\n\n process.exit(process.exitCode)\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-tarball.d.ts","sourceRoot":"","sources":["../src/pack-tarball.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAQvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAwHD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,aACZ,kBAAkB,OACvB,MAAM,UACH,YAAY,KACnB,OAAO,CAAC,iBAAiB,CAsN3B,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-tarball.js","sourceRoot":"","sources":["../src/pack-tarball.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,KAAK,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAc9C;;;;;GAKG;AACH,MAAM,+BAA+B,GAAG,CACtC,SAA6B,EAC7B,MAAoB,EACA,EAAE;IACtB,qEAAqE;IACrE,yDAAyD;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAuB,CAAA;IAElE,sDAAsD;IACtD,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;IAEhE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG;QACf,cAAc;QACd,iBAAiB;QACjB,sBAAsB;QACtB,kBAAkB;KACV,CAAA;IAEV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9B,oBAAoB;QACpB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAE/C,MAAM,OAAO,GAAG,IAA+B,CAAA;QAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,oBAAoB;YACpB,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAQ;YAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,OAAO,EAAE,EAAE;gBAC/C,OAAO;gBACP,QAAQ;aACT,CAAC,CAAA;YAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,CACJ,QAAQ,EACR,KAAK,CAAC,wCAAwC,OAAO,EAAE,EAAE;wBACvD,KAAK,EAAE,OAAO;qBACf,CAAC,CACH,CAAA;oBAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAA;oBACpC,MAAM,CACJ,aAAa,EACb,KAAK,CAAC,+BAA+B,OAAO,EAAE,EAAE;wBAC9C,KAAK,EAAE,OAAO;qBACf,CAAC,CACH,CAAA;oBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC7C,MAAM,CACJ,SAAS,EACT,KAAK,CAAC,cAAc,aAAa,aAAa,EAAE;wBAC9C,KAAK,EAAE,aAAa;wBACpB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;qBAC1C,CAAC,CACH,CAAA;oBAED,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAA;oBAChD,MAAM,CACJ,aAAa,EACb,KAAK,CACH,mCAAmC,aAAa,GAAG,EACnD;wBACE,KAAK,EAAE,aAAa;wBACpB,MAAM,EAAE,iBAAiB;qBAC1B,CACF,CACF,CAAA;oBAED,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAA;oBAEhC,MAAK;gBACP,CAAC;gBAED,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;oBACtC,MAAM,aAAa,GACjB,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;oBAC/C,MAAM,CACJ,aAAa,EACb,KAAK,CAAC,YAAY,WAAW,aAAa,EAAE;wBAC1C,KAAK,EAAE,WAAW;wBAClB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;qBACpC,CAAC,CACH,CAAA;oBAED,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;oBAC5C,MAAM,CACJ,aAAa,EACb,KAAK,CACH,YAAY,OAAO,2BAA2B,WAAW,IAAI,SAAS,GAAG,EACzE;wBACE,KAAK,EAAE,OAAO;wBACd,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;qBACzC,CACF,CACF,CAAA;oBAED,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAA;oBAEhC,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,QAA4B,EAC5B,GAAW,EACX,MAAoB,EACQ,EAAE;IAC9B,IAAI,OAAO,GAAG,GAAG,CAAA;IAEjB,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxD,IAAI,gBAAgB,EAAE,CAAC;QACrB,gEAAgE;QAChE,MAAM,CACJ,UAAU,CAAC,gBAAgB,CAAC,EAC5B,KAAK,CAAC,qCAAqC,gBAAgB,EAAE,EAAE;YAC7D,KAAK,EAAE,gBAAgB;SACxB,CAAC,CACH,CAAA;QACD,MAAM,CACJ,QAAQ,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,EACxC,KAAK,CACH,yCAAyC,gBAAgB,EAAE,EAC3D;YACE,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,WAAW;SACpB,CACF,CACF,CAAA;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACvD,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,GAAG,gBAAgB,CAAA;IAC5B,CAAC;IAED,MAAM,CACJ,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EACjC,KAAK,CAAC,sCAAsC,CAAC,CAC9C,CAAA;IAED,MAAM,iBAAiB,GAAG,+BAA+B,CACvD,QAAQ,EACR,MAAM,CACP,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,MAAM,CAAA;IAC9F,MAAM,WAAW,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,MAAM,CAAA;IAE9D,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QAE5D,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC;YACE,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,uCAAuC;gBACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBAEhD,gCAAgC;gBAChC,IAAI,IAAI,KAAK,GAAG,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1C,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,qBAAqB,GAAG;oBAC5B,oBAAoB;oBACpB,2BAA2B;oBAC3B,2BAA2B;oBAC3B,uBAAuB;oBACvB,oBAAoB;oBACpB,iBAAiB;oBACjB,4BAA4B;oBAC5B,oBAAoB;oBACpB,yBAAyB;oBACzB,oBAAoB;oBACpB,mBAAmB;oBACnB,wBAAwB;oBACxB,IAAI;oBACJ,QAAQ;iBACT,CAAA;gBAED,IACE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACnC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAC7B,EACD,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,qBAAqB,GAAG;oBAC5B,kBAAkB;oBAClB,qBAAqB;oBACrB,mBAAmB;oBACnB,mBAAmB;oBACnB,mBAAmB;iBACpB,CAAA;gBAED,IACE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACnC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAC7B,EACD,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,oEAAoE;gBACpE,MAAM,iBAAiB,GAAG,QAEzB,CAAA;gBACD,IACE,iBAAiB,CAAC,KAAK;oBACvB,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACtC,CAAC;oBACD,0EAA0E;oBAC1E,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACzC,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE;wBACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;4BACpC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4BACjD,MAAM,UAAU,GAAG,cAAc,KAAK,OAAO,CAAA;4BAC7C,MAAM,eAAe,GAAG,SAAS,CAC/B,cAAc,EACd,WAAW,EACX;gCACE,GAAG,EAAE,IAAI;6BACV,CACF,CAAA;4BACD,OAAO,UAAU,IAAI,eAAe,CAAA;wBACtC,CAAC;wBAED,kGAAkG;wBAClG,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE;4BACrD,GAAG,EAAE,IAAI;yBACV,CAAC,CAAA;wBACF,mEAAmE;wBACnE,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;4BACrB,OAAO,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC,CAAA;wBAC1C,OAAO,WAAW,IAAI,WAAW,CAAA;oBACnC,CAAC,CAAC,CAAA;gBACJ,CAAC;gBAED,0EAA0E;gBAC1E,MAAM,sBAAsB,GAAG;oBAC7B,uBAAuB;oBACvB,qBAAqB;oBACrB,qBAAqB;oBACrB,qBAAqB;oBACrB,wBAAwB;iBACzB,CAAA;gBAED,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC5C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAC7B,CAAA;YACH,CAAC;SACF,EACD,CAAC,GAAG,CAAC,CACN,CAAC,MAAM,EAAE,CAAA;QAEV,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC;gBACrB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACf,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC1B,YAAY,IAAI,KAAK,CAAC,IAAI,CAAA;wBAC1B,sDAAsD;wBACtD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;wBACpD,IAAI,SAAS,EAAE,CAAC;4BACd,mBAAmB;4BACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAA;YACF,MAAM;iBACH,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC1B,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACnB,KAAK,CAAC,WAAW,CAAC,CAAA;YACrB,MAAM,CAAC,GAAG,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC9C,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC7C,CAAC,CAAA;QAEF,gEAAgE;QAChE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;QACtD,0DAA0D;QAC1D,6DAA6D;QAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAEnC,CAAA;QAEb,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ;YACR,WAAW;YACX,WAAW;YACX,YAAY;YACZ,KAAK;YACL,SAAS;YACT,MAAM;SACP,CAAA;IACH,CAAC;YAAS,CAAC;QACT,0DAA0D;QAC1D,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;AACH,CAAC,CAAA","sourcesContent":["import type { NormalizedManifest } from '@vltpkg/types'\nimport { create as tarCreate, list as tarList } from 'tar'\nimport { minimatch } from 'minimatch'\nimport { error } from '@vltpkg/error-cause'\nimport * as ssri from 'ssri'\nimport assert from 'node:assert'\nimport { existsSync, statSync } from 'node:fs'\nimport { Spec } from '@vltpkg/spec'\nimport type { LoadedConfig } from './config/index.ts'\nimport { join } from 'node:path'\nimport { parse, stringify } from 'polite-json'\n\nexport type PackTarballResult = {\n name: string\n version: string\n filename: string\n tarballName: string\n tarballData: Buffer\n unpackedSize: number\n files: string[]\n integrity?: string\n shasum?: string\n}\n\n/**\n * Replace workspace: and catalog: specs with actual versions\n * @param {NormalizedManifest} manifest_ - The manifest to process\n * @param {LoadedConfig} config - The loaded configuration containing project root, monorepo, and catalog data\n * @returns {NormalizedManifest} The manifest with replaced specs\n */\nconst replaceWorkspaceAndCatalogSpecs = (\n manifest_: NormalizedManifest,\n config: LoadedConfig,\n): NormalizedManifest => {\n // Create a json copy of the manifest to avoid modifying the original\n // preserves original formatting symbols from polite-json\n const manifest = parse(stringify(manifest_)) as NormalizedManifest\n\n // Get workspace and catalog configuration from config\n const { monorepo, catalog = {}, catalogs = {} } = config.options\n\n // Process dependency types\n const depTypes = [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'peerDependencies',\n ] as const\n\n for (const depType of depTypes) {\n const deps = manifest[depType]\n /* c8 ignore next */\n if (!deps || typeof deps !== 'object') continue\n\n const depsObj = deps as Record<string, unknown>\n for (const [depName, depSpec] of Object.entries(depsObj)) {\n /* c8 ignore next */\n if (typeof depSpec !== 'string') continue\n\n const spec = Spec.parse(`${depName}@${depSpec}`, {\n catalog,\n catalogs,\n })\n\n switch (spec.type) {\n case 'workspace': {\n assert(\n monorepo,\n error(`No workspace configuration found for ${depName}`, {\n found: depName,\n }),\n )\n\n const workspaceName = spec.workspace\n assert(\n workspaceName,\n error(`No workspace name found for ${depName}`, {\n found: depName,\n }),\n )\n\n const workspace = monorepo.get(workspaceName)\n assert(\n workspace,\n error(`Workspace '${workspaceName}' not found`, {\n found: workspaceName,\n validOptions: Array.from(monorepo.keys()),\n }),\n )\n\n const actualVersion = workspace.manifest.version\n assert(\n actualVersion,\n error(\n `No version found for workspace '${workspaceName}'`,\n {\n found: workspaceName,\n wanted: 'package version',\n },\n ),\n )\n\n depsObj[depName] = actualVersion\n\n break\n }\n\n case 'catalog': {\n const catalogName = spec.catalog || ''\n const targetCatalog =\n catalogName ? catalogs[catalogName] : catalog\n assert(\n targetCatalog,\n error(`Catalog '${catalogName}' not found`, {\n found: catalogName,\n validOptions: Object.keys(catalogs),\n }),\n )\n\n const actualVersion = targetCatalog[depName]\n assert(\n actualVersion,\n error(\n `Package '${depName}' not found in catalog '${catalogName || 'default'}'`,\n {\n found: depName,\n validOptions: Object.keys(targetCatalog),\n },\n ),\n )\n\n depsObj[depName] = actualVersion\n\n break\n }\n }\n }\n }\n\n return manifest\n}\n\n/**\n * Create a tarball from a package directory\n * @param {NormalizedManifest} manifest - The manifest of the package to pack\n * @param {string} dir - The directory containing the package to pack\n * @param {LoadedConfig} [config] - The loaded configuration (for workspace/catalog resolution)\n * @returns {Promise<PackTarballResult>} The manifest, filename, and tarball data (unless dry run)\n */\nexport const packTarball = async (\n manifest: NormalizedManifest,\n dir: string,\n config: LoadedConfig,\n): Promise<PackTarballResult> => {\n let packDir = dir\n\n // Check if publishDirectory is configured\n const publishDirectory = config.get('publish-directory')\n if (publishDirectory) {\n // Validate that the publish directory exists and is a directory\n assert(\n existsSync(publishDirectory),\n error(`Publish directory does not exist: ${publishDirectory}`, {\n found: publishDirectory,\n }),\n )\n assert(\n statSync(publishDirectory).isDirectory(),\n error(\n `Publish directory is not a directory: ${publishDirectory}`,\n {\n found: publishDirectory,\n wanted: 'directory',\n },\n ),\n )\n if (existsSync(join(publishDirectory, 'package.json'))) {\n manifest = config.options.packageJson.read(publishDirectory)\n }\n packDir = publishDirectory\n }\n\n assert(\n manifest.name && manifest.version,\n error('Package must have a name and version'),\n )\n\n const processedManifest = replaceWorkspaceAndCatalogSpecs(\n manifest,\n config,\n )\n\n const filename = `${manifest.name.replace('@', '').replace('/', '-')}-${manifest.version}.tgz`\n const tarballName = `${manifest.name}-${manifest.version}.tgz`\n\n try {\n config.options.packageJson.write(packDir, processedManifest)\n\n const tarballData = await tarCreate(\n {\n cwd: packDir,\n gzip: true,\n portable: true,\n prefix: 'package/',\n filter: (path: string) => {\n // Normalize path - remove leading './'\n const normalizedPath = path.replace(/^\\.\\//, '')\n\n // Always include root directory\n if (path === '.' || normalizedPath === '') {\n return true\n }\n\n // Always exclude certain files/directories\n const alwaysExcludePatterns = [\n /^\\.?\\/?\\.git(\\/|$)/,\n /^\\.?\\/?node_modules(\\/|$)/,\n /^\\.?\\/?\\.nyc_output(\\/|$)/,\n /^\\.?\\/?coverage(\\/|$)/,\n /^\\.?\\/?\\.DS_Store$/,\n /^\\.?\\/?\\.npmrc$/,\n /^\\.?\\/?package-lock\\.json$/,\n /^\\.?\\/?yarn\\.lock$/,\n /^\\.?\\/?pnpm-lock\\.yaml$/,\n /^\\.?\\/?bun\\.lockb$/,\n /^\\.?\\/?bun\\.lock$/,\n /^\\.?\\/?vlt-lock\\.json$/,\n /~$/,\n /\\.swp$/,\n ]\n\n if (\n alwaysExcludePatterns.some(pattern =>\n pattern.test(normalizedPath),\n )\n ) {\n return false\n }\n\n // Always include certain files\n const alwaysIncludePatterns = [\n /^README(\\..*)?$/i,\n /^CHANGELOG(\\..*)?$/i,\n /^HISTORY(\\..*)?$/i,\n /^LICENSE(\\..*)?$/i,\n /^LICENCE(\\..*)?$/i,\n ]\n\n if (\n alwaysIncludePatterns.some(pattern =>\n pattern.test(normalizedPath),\n )\n ) {\n return true\n }\n\n // Always include package.json\n if (normalizedPath === 'package.json') {\n return true\n }\n\n // If files field is specified in package.json, use it for inclusion\n const manifestWithFiles = manifest as NormalizedManifest & {\n files?: string[]\n }\n if (\n manifestWithFiles.files &&\n Array.isArray(manifestWithFiles.files)\n ) {\n // Empty files array means exclude everything except always-included files\n if (manifestWithFiles.files.length === 0) {\n return false\n }\n return manifestWithFiles.files.some((pattern: string) => {\n if (pattern.endsWith('/')) {\n const dirName = pattern.slice(0, -1)\n const globPattern = pattern.replace(/\\/$/, '/**')\n const matchesDir = normalizedPath === dirName\n const matchesContents = minimatch(\n normalizedPath,\n globPattern,\n {\n dot: true,\n },\n )\n return matchesDir || matchesContents\n }\n\n // File pattern: check direct match and if this path is a directory that could contain the pattern\n const directMatch = minimatch(normalizedPath, pattern, {\n dot: true,\n })\n // Check if this path is a directory that could contain the pattern\n const isParentDir =\n pattern.includes('/') &&\n pattern.startsWith(normalizedPath + '/')\n return directMatch || isParentDir\n })\n }\n\n // Default behavior when no files field - exclude common development files\n const defaultExcludePatterns = [\n /^\\.?\\/?\\.vscode(\\/|$)/,\n /^\\.?\\/?\\.idea(\\/|$)/,\n /^\\.?\\/?\\.gitignore$/,\n /^\\.?\\/?\\.npmignore$/,\n /^\\.?\\/?\\.editorconfig$/,\n ]\n\n return !defaultExcludePatterns.some(pattern =>\n pattern.test(normalizedPath),\n )\n },\n },\n ['.'],\n ).concat()\n\n let unpackedSize = 0\n const files: string[] = []\n await new Promise<void>((resolve, reject) => {\n const stream = tarList({\n onentry: entry => {\n if (entry.type === 'File') {\n unpackedSize += entry.size\n // Remove the package/ prefix for cleaner file listing\n const cleanPath = entry.path.replace(/^[^/]+\\//, '')\n if (cleanPath) {\n // Skip empty paths\n files.push(cleanPath)\n }\n }\n },\n })\n stream\n .on('end', () => resolve())\n .on('error', reject)\n .write(tarballData)\n stream.end()\n })\n\n const integrityMap = ssri.fromData(tarballData, {\n algorithms: [...new Set(['sha1', 'sha512'])],\n })\n\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const integrity = integrityMap.sha512?.[0]?.toString()\n // @ts-expect-error -- types from DT are missing hexDigest\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const shasum = integrityMap.sha1?.[0]?.hexDigest() as\n | string\n | undefined\n\n return {\n name: manifest.name,\n version: manifest.version,\n filename,\n tarballName,\n tarballData,\n unpackedSize,\n files,\n integrity,\n shasum,\n }\n } finally {\n // Restore the original package.json to the pack directory\n config.options.packageJson.write(packDir, manifest)\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-add-remove-args.d.ts","sourceRoot":"","sources":["../src/parse-add-remove-args.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EACV,2BAA2B,EAE3B,8BAA8B,EAC/B,MAAM,eAAe,CAAA;AAGtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,2BAA2B,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,8BAA8B,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B,CAAA;AAgED;;GAEG;AACH,eAAO,MAAM,YAAY,WACf,YAAY,UACZ,UAAU,aACP,QAAQ,KAClB,aAuCF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,WAClB,YAAY,UACZ,UAAU,aACP,QAAQ,KAClB,gBAoBF,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-add-remove-args.js","sourceRoot":"","sources":["../src/parse-add-remove-args.ts"],"names":[],"mappings":"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","sourcesContent":["import { asDependency } from '@vltpkg/graph'\nimport { joinDepIDTuple } from '@vltpkg/dep-id'\nimport { Spec } from '@vltpkg/spec'\nimport type { PathScurry } from 'path-scurry'\nimport type { DepID } from '@vltpkg/dep-id'\nimport type {\n AddImportersDependenciesMap,\n Dependency,\n RemoveImportersDependenciesMap,\n} from '@vltpkg/graph'\nimport type { SpecOptions } from '@vltpkg/spec'\nimport type { DependencySaveType } from '@vltpkg/types'\nimport type { Monorepo } from '@vltpkg/workspaces'\nimport type { LoadedConfig } from './config/index.ts'\n\nexport type ParsedAddArgs = {\n add: AddImportersDependenciesMap\n}\n\nexport type ParsedRemoveArgs = {\n remove: RemoveImportersDependenciesMap\n}\n\nexport type SaveTypes = {\n 'save-dev'?: boolean\n 'save-optional'?: boolean\n 'save-peer'?: boolean\n 'save-prod'?: boolean\n}\n\nexport type WorkspaceTypes = {\n workspace?: string[]\n 'workspace-group'?: string[]\n}\n\nconst rootDepID = joinDepIDTuple(['file', '.'])\n\n/**\n * Compute a DepID for the current working directory relative to the project\n * root. Returns the root DepID if cwd is the project root, otherwise returns\n * the computed DepID.\n */\nconst getCwdDepID = (scurry: PathScurry): DepID => {\n const cwd = process.cwd()\n const relPath = scurry.relativePosix(cwd)\n // If cwd is the project root or outside it, return root DepID\n if (!relPath || relPath.startsWith('..')) {\n return rootDepID\n }\n // Return a DepID for the nested folder (posix-style path)\n return joinDepIDTuple(['file', relPath.split('\\\\').join('/')])\n}\n\n/**\n * Get the list of importers that are currently selected\n * in {@link WorkspaceTypes}.\n */\nconst getWorkspaceImporters = (\n opts: WorkspaceTypes,\n monorepo?: Monorepo,\n): Set<DepID> => {\n const res = new Set<DepID>()\n\n // collects DepID references to any selected workspace\n if (monorepo) {\n for (const ws of monorepo.filter(opts)) {\n res.add(ws.id)\n }\n }\n\n return res\n}\n\nconst getType = (opts: SaveTypes): DependencySaveType =>\n opts['save-prod'] ? 'prod'\n : opts['save-dev'] ? 'dev'\n : opts['save-peer'] ?\n opts['save-optional'] ?\n 'peerOptional'\n : 'peer'\n : opts['save-optional'] ? 'optional'\n : 'implicit'\n\nclass AddImportersDependenciesMapImpl\n extends Map\n implements AddImportersDependenciesMap\n{\n modifiedDependencies = false\n}\n\nclass RemoveImportersDependenciesMapImpl\n extends Map\n implements RemoveImportersDependenciesMap\n{\n modifiedDependencies = false\n}\n\n/**\n * Parses the positional arguments into {@link AddImportersDependenciesMap}.\n */\nexport const parseAddArgs = (\n config: LoadedConfig,\n scurry: PathScurry,\n monorepo?: Monorepo,\n): ParsedAddArgs => {\n const add: AddImportersDependenciesMap =\n new AddImportersDependenciesMapImpl()\n const items = config.positionals\n const type = getType(config.values)\n const importers = getWorkspaceImporters(config.values, monorepo)\n const newDependencies = new Map<string, Dependency>()\n const specOptions: SpecOptions = config.options\n\n // nameless spec definitions will need to use their full\n // stringified spec result instead of their name in order\n // to have an unique key name in the resulting Map\n const getName = (s: Spec): string =>\n s.name === '(unknown)' ? s.spec : s.name\n\n // parses each positional argument into a Spec and\n // adds it to the new dependencies Map\n for (const item of items) {\n const spec = Spec.parseArgs(item, specOptions)\n newDependencies.set(getName(spec), asDependency({ spec, type }))\n add.modifiedDependencies = true\n }\n\n // assigns the new dependencies to each selected workspace importer\n for (const importer of importers) {\n add.set(importer, newDependencies)\n }\n\n // if no workspaces were selected, default to the cwd importer which\n // can be either the root or a nested folder in case the user is installing\n // from a subfolder that is also a file: type dependency\n if (!importers.size) {\n const cwdDepID = getCwdDepID(scurry)\n add.set(cwdDepID, newDependencies)\n }\n\n return {\n add,\n }\n}\n\n/**\n * Parses the positional arguments into {@link RemoveImportersDependenciesMap}.\n */\nexport const parseRemoveArgs = (\n config: LoadedConfig,\n scurry: PathScurry,\n monorepo?: Monorepo,\n): ParsedRemoveArgs => {\n const remove: RemoveImportersDependenciesMap =\n new RemoveImportersDependenciesMapImpl()\n const importers = getWorkspaceImporters(config.values, monorepo)\n\n for (const importer of importers) {\n remove.set(importer, new Set(config.positionals))\n remove.modifiedDependencies = true\n }\n\n // if no workspaces were selected, default to the cwd importer\n if (!importers.size) {\n const cwdDepID = getCwdDepID(scurry)\n remove.set(cwdDepID, new Set(config.positionals))\n remove.modifiedDependencies = true\n }\n\n return {\n remove,\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-err.d.ts","sourceRoot":"","sources":["../src/print-err.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,aAAa;;;;CAIS,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,OAAO,EACZ,OAAO,CAAC,EAAE,kBAAkB,KACzB,MAAM,CAAA;AAWX,eAAO,MAAM,MAAM,UAAW,MAAM,yBAIrB,CAAA;AAoBf,eAAO,MAAM,QAAQ,MAChB,OAAO,SACH,YAAY,UACX,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,aACrB,kBAAkB,SAwC9B,CAAA"}
@@ -2,7 +2,7 @@ import { splitDepID } from '@vltpkg/dep-id';
2
2
  import { parseError } from '@vltpkg/output/error';
3
3
  import { isErrorWithCause, isObject } from '@vltpkg/types';
4
4
  import { XDG } from '@vltpkg/xdg';
5
- import { isGraphRunError } from 'graph-run';
5
+ import { isGraphRunError } from '@vltpkg/graph-run';
6
6
  import { mkdirSync, writeFileSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  import { formatWithOptions } from 'node:util';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-err.js","sourceRoot":"","sources":["../src/print-err.ts"],"names":[],"mappings":"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","sourcesContent":["import { splitDepID } from '@vltpkg/dep-id'\nimport type { Node } from '@vltpkg/graph'\nimport type { ParsedError } from '@vltpkg/output/error'\nimport { parseError } from '@vltpkg/output/error'\nimport { isErrorWithCause, isObject } from '@vltpkg/types'\nimport { XDG } from '@vltpkg/xdg'\nimport { isGraphRunError } from '@vltpkg/graph-run'\nimport { mkdirSync, writeFileSync } from 'node:fs'\nimport { join } from 'node:path'\nimport type { InspectOptions } from 'node:util'\nimport { formatWithOptions } from 'node:util'\nimport type { CommandUsage } from './index.ts'\n\nexport const formatOptions = {\n depth: Infinity,\n maxArrayLength: Infinity,\n maxStringLength: Infinity,\n} as const satisfies InspectOptions\n\nexport type ErrorFormatOptions = InspectOptions & {\n maxLines?: number\n}\n\nexport type Formatter = (\n arg: unknown,\n options?: ErrorFormatOptions,\n) => string\n\nconst isNonEmptyString = (v: unknown): v is string =>\n !!v && typeof v === 'string'\n\nconst formatURL = (v: unknown, format: Formatter) =>\n v instanceof URL ? v.toString() : /* c8 ignore next */ format(v)\n\nconst formatArray = (v: unknown, format: Formatter, joiner = ', ') =>\n Array.isArray(v) ? v.join(joiner) : /* c8 ignore next */ format(v)\n\nexport const indent = (lines: string, num = 2) =>\n lines\n .split('\\n')\n .map(l => ' '.repeat(num) + l)\n .join('\\n')\n\nconst writeErrorLog = (e: unknown, format: Formatter) => {\n try {\n const dir = new XDG('vlt/error-logs').data()\n const file = join(dir, `error-${process.pid}.log`)\n mkdirSync(dir, { recursive: true })\n writeFileSync(\n file,\n format(e, {\n colors: false,\n maxLines: Infinity,\n }),\n )\n return file\n } catch {\n return null\n }\n}\n\nexport const printErr = (\n e: unknown,\n usage: CommandUsage,\n stderr: (...a: string[]) => void,\n baseOpts?: ErrorFormatOptions,\n) => {\n const format: Formatter = (arg: unknown, opts) => {\n const { maxLines = 200, ...rest } = {\n ...formatOptions,\n ...baseOpts,\n ...opts,\n }\n const lines = formatWithOptions(rest, arg).split('\\n')\n const totalLines = lines.length\n if (totalLines > maxLines) {\n lines.length = maxLines\n lines.push(`... ${totalLines - maxLines} lines hidden ...`)\n }\n return lines.join('\\n')\n }\n\n const err = parseError(e)\n const knownError = printCode(err, usage, stderr, format)\n const fileWritten =\n !knownError || knownError.file ? writeErrorLog(e, format) : null\n\n // We could not write an error log and its not a know error,\n // so we print the entire formatted value.\n if (!fileWritten && !knownError) {\n return stderr(format(e))\n }\n\n if (err && !knownError) {\n stderr(`${err.name}: ${err.message}`)\n }\n if (fileWritten) {\n stderr('')\n stderr(`Full details written to: ${fileWritten}`)\n }\n if (!knownError || knownError.bug) {\n stderr('')\n stderr('Open an issue with the full error details at:')\n stderr(indent('https://github.com/vltpkg/vltpkg/issues/new'))\n }\n}\n\nconst printCode = (\n err: ParsedError | null,\n usage: CommandUsage,\n stderr: (...a: string[]) => void,\n format: Formatter,\n): void | { bug?: boolean; file?: boolean } => {\n if (!err) return\n\n switch (err.cause?.code) {\n case 'GRAPHRUN_TRAVERSAL': {\n if (!isGraphRunError<Node>(err)) break\n const { node, path, cause } = err.cause\n stderr(\n `Graph traversal failure at: ${splitDepID(node.id).join(' ')}`,\n )\n if (Array.isArray(path) && path.length) {\n stderr(indent(`Path: ${path.map(n => n.id).join(',')}`))\n }\n if (\n isErrorWithCause(cause) &&\n isObject(cause.cause) &&\n 'command' in cause.cause &&\n 'stdout' in cause.cause &&\n 'stderr' in cause.cause &&\n 'status' in cause.cause &&\n 'signal' in cause.cause &&\n 'cwd' in cause.cause\n ) {\n const {\n command,\n args,\n cwd,\n stdout: cmdStdout,\n stderr: cmdStderr,\n status,\n signal,\n } = cause.cause\n stderr(`Command: ${command}`)\n if (args && Array.isArray(args) && args.length) {\n stderr(\n `Args: ${args.map(a => JSON.stringify(a)).join(', ')}`,\n )\n }\n stderr(`Cwd: ${cwd}`)\n\n if (cmdStderr || cmdStdout) {\n stderr('')\n if (isNonEmptyString(cmdStderr)) {\n stderr(cmdStderr)\n }\n if (isNonEmptyString(cmdStdout)) {\n stderr(cmdStdout)\n }\n stderr('')\n }\n\n if (signal !== null) stderr(`Signal: ${format(signal)}`)\n if (status !== null) stderr(`Status: ${format(status)}`)\n }\n return { file: true }\n }\n\n case 'EUSAGE': {\n const { found, validOptions } = err.cause\n stderr(usage().usage())\n stderr(`Usage Error: ${err.message}`)\n if (found) {\n stderr(indent(`Found: ${format(found)}`))\n }\n if (validOptions) {\n stderr(\n indent(\n `Valid options: ${formatArray(validOptions, format)}`,\n ),\n )\n }\n return {}\n }\n\n case 'ERESOLVE': {\n const { url, from, response, spec } = err.cause\n stderr(`Resolve Error: ${err.message}`)\n if (url) {\n stderr(indent(`While fetching: ${formatURL(url, format)}`))\n }\n if (spec) {\n stderr(indent(`To satisfy: ${format(spec)}`))\n }\n if (from) {\n stderr(indent(`From: ${format(from)}`))\n }\n if (response) {\n stderr(indent(`Response: ${format(response)}`))\n }\n return { file: true }\n }\n\n case 'EREQUEST': {\n const { url, method } = err.cause\n const { code, syscall } = err.cause.cause ?? {}\n stderr(`Request Error: ${err.message}`)\n if (code) {\n stderr(indent(`Code: ${format(code)}`))\n }\n if (syscall) {\n stderr(indent(`Syscall: ${format(syscall)}`))\n }\n if (url) {\n stderr(indent(`URL: ${formatURL(url, format)}`))\n }\n if (method) {\n stderr(indent(`Method: ${format(method)}`))\n }\n return { file: true }\n }\n\n case 'ECONFIG': {\n const { found, wanted, validOptions } = err.cause\n stderr(`Config Error: ${err.message}`)\n if (found) {\n stderr(indent(`Found: ${format(found)}`))\n }\n if (wanted) {\n stderr(indent(`Wanted: ${format(wanted)}`))\n }\n if (validOptions) {\n stderr(indent(`Valid Options: ${format(validOptions)}`))\n }\n return {}\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-host-contexts.d.ts","sourceRoot":"","sources":["../src/query-host-contexts.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG1D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,EAAE,QAAQ,EAAE,CAAA;IACxB,YAAY,EAAE,QAAQ,EAAE,CAAA;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;CACjC,CAAA;AA8CD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAC1B,YAAY,KACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAiH3D,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-host-contexts.js","sourceRoot":"","sources":["../src/query-host-contexts.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from 'node:os'\nimport { parse, posix } from 'node:path'\nimport {\n getProjectData,\n readProjectFolders,\n reloadConfig,\n} from '@vltpkg/server'\nimport { actual, createVirtualRoot } from '@vltpkg/graph'\nimport { SecurityArchive } from '@vltpkg/security-archive'\nimport { error } from '@vltpkg/error-cause'\nimport type { PathBase, PathScurry } from 'path-scurry'\nimport type { EdgeLike, NodeLike } from '@vltpkg/types'\nimport type { LoadedConfig } from './config/index.ts'\n\nexport type HostContextsMapResult = {\n initialEdges: EdgeLike[]\n initialNodes: NodeLike[]\n edges: EdgeLike[]\n nodes: NodeLike[]\n securityArchive: SecurityArchive\n}\n\n// In restricted environments (like locked-down Codespaces),\n// homedir() might fail. Fall back to parent directory.\nlet foundHome\ntry {\n foundHome = posix.format(parse(homedir()))\n /* c8 ignore next 3 */\n} catch {}\nconst home =\n foundHome ?? posix.dirname(posix.format(parse(process.cwd())))\n\n/**\n * Generates possible project keys for a given folder.\n */\nconst getPossibleProjectKeys = (\n folder: PathBase,\n scurry: PathScurry,\n): Set<string> => {\n const relativePath = posix.relative(\n scurry.cwd.fullpathPosix(),\n folder.fullpathPosix(),\n )\n const absolutePath = folder.fullpathPosix()\n const homeRelativePath = posix.relative(\n scurry.resolvePosix(home),\n folder.fullpathPosix(),\n )\n const dotRelativeKey =\n relativePath === '' ? 'file:.' : `file:./${relativePath}`\n const relativeKey = `file:${relativePath}`\n const absoluteKey = `file:${absolutePath}`\n const homeRelativeKey = `file:~/${homeRelativePath}`\n const keys = [\n relativeKey,\n dotRelativeKey,\n absoluteKey,\n homeRelativeKey,\n `${relativeKey}/`,\n `${dotRelativeKey}/`,\n `${absoluteKey}/`,\n `${homeRelativeKey}/`,\n ]\n return new Set(keys)\n}\n\n/**\n * Creates a Map of host context functions that can be used by the :host\n * pseudo selector to dynamically load graphs from different sources.\n */\nexport const createHostContextsMap = async (\n conf: LoadedConfig,\n): Promise<Map<string, () => Promise<HostContextsMapResult>>> => {\n const hostContexts = new Map<\n string,\n () => Promise<HostContextsMapResult>\n >()\n // Read all project folders from the configured paths\n const { scurry } = conf.options\n const projectFolders = await readProjectFolders({\n scurry,\n userDefinedProjectPaths: conf.options['dashboard-root'] ?? [],\n })\n\n for (const folder of projectFolders) {\n const retrieveProjectGraph = async () => {\n const initialEdges: EdgeLike[] = []\n const initialNodes: NodeLike[] = []\n const config = await reloadConfig(folder.fullpath())\n\n // load each individual graph\n const graph = actual.load({\n ...config.options,\n projectRoot: folder.fullpath(),\n skipLoadingNodesOnModifiersChange: false,\n })\n initialEdges.push(...graph.edges)\n initialNodes.push(...graph.nodes.values())\n\n // Initialize security archive with all loaded nodes\n const securityArchive = await SecurityArchive.start({\n nodes: initialNodes,\n })\n\n return {\n initialEdges,\n initialNodes,\n edges: [],\n nodes: [graph.mainImporter],\n securityArchive,\n }\n }\n\n // add multiple keys for each project folder\n for (const path of getPossibleProjectKeys(folder, scurry)) {\n if (!hostContexts.has(path)) {\n hostContexts.set(path, retrieveProjectGraph)\n }\n }\n }\n\n // Define local context - loads graphs from all projects in user's project paths\n hostContexts.set('local', async () => {\n // Load graphs from each project folder\n const initialEdges: EdgeLike[] = []\n const initialNodes: NodeLike[] = []\n const mainImporters: NodeLike[] = []\n for (const folder of projectFolders) {\n try {\n const config = await reloadConfig(folder.fullpath())\n const projectInfo = getProjectData(\n {\n packageJson: config.options.packageJson,\n scurry: config.options.scurry,\n },\n folder,\n )\n\n // only include projects that are vlt-installed\n if (!projectInfo.vltInstalled) {\n continue\n }\n\n // load each individual graph\n const graph = actual.load({\n ...config.options,\n projectRoot: folder.fullpath(),\n skipLoadingNodesOnModifiersChange: false,\n })\n initialEdges.push(...graph.edges)\n initialNodes.push(...graph.nodes.values())\n mainImporters.push(graph.mainImporter)\n } catch (_error) {\n // Skip projects that fail to load\n // This might happen for projects without proper package.json\n // or other loading issues\n continue\n }\n }\n\n // Initialize security archive with all loaded nodes\n const securityArchive = await SecurityArchive.start({\n nodes: initialNodes,\n })\n\n const virtualRoot = createVirtualRoot(\n 'local',\n conf.options,\n mainImporters,\n )\n\n if (!virtualRoot) {\n throw error('Failed to create virtual root for local context')\n }\n\n return {\n initialEdges,\n initialNodes,\n edges: [],\n nodes: [virtualRoot],\n securityArchive,\n }\n })\n\n return hostContexts\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-password.d.ts","sourceRoot":"","sources":["../src/read-password.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAA;IAClE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,YAAY,WACf,MAAM,sBACK,OAAO,KACzB,OAAO,CAAC,MAAM,CA4BhB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-password.js","sourceRoot":"","sources":["../src/read-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAO3C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,EAAE,KAAK,EAAE,MAAM,KAAc,OAAO,EACnB,EAAE;IACnB,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACpB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC7B,YAAY;YACZ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAC5C,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAC/B,OAAM;YACR,CAAC;YAED,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;gBAC/C,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBACvB,KAAK,CAAC,KAAK,EAAE,CAAA;gBACb,aAAa;gBACb,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC9C,CAAC;;oBAAM,GAAG,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA","sourcesContent":["import { error } from '@vltpkg/error-cause'\n\nexport type Streams = {\n stdin: NodeJS.ReadableStream & { setRawMode(mode: boolean): void }\n stdout: NodeJS.WritableStream\n}\n\nexport const readPassword = async (\n prompt: string,\n { stdin, stdout }: Streams = process,\n): Promise<string> => {\n let input = ''\n stdout.write(prompt)\n stdin.setRawMode(true)\n await new Promise<void>((res, rej) => {\n stdin.on('data', (c: Buffer) => {\n // backspace\n if (c.length === 1 && c[0] === 0x7f) {\n input = input.substring(0, input.length - 1)\n stdout.write('\\x1b[1D \\x1b[1D')\n return\n }\n\n input += String(c)\n if (/\\r|\\n|\\x04|\\x03/.test(input)) {\n input = input.replace(/(\\r|\\n|\\x04|\\x03)/g, '')\n stdin.setRawMode(false)\n stdin.pause()\n // x03 === ^C\n if (c[c.length - 1] === 3) {\n rej(error('canceled', { signal: 'SIGINT' }))\n } else res()\n } else {\n stdout.write('*'.repeat(c.length))\n }\n })\n })\n return input\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-gui.d.ts","sourceRoot":"","sources":["../src/start-gui.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,eAAO,MAAM,uBAAuB,YAAmB;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;CACnB,oBAcA,CAAA;AAaD,eAAO,MAAM,QAAQ,SACb,YAAY,kBACF,MAAM,gDA0CvB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-gui.js","sourceRoot":"","sources":["../src/start-gui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAKpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,OAK7C,EAAE,EAAE;IACH,MAAM,EACJ,WAAW,GAAG,OAAO,EACrB,aAAa,EACb,WAAW,EACX,MAAM,GACP,GAAG,OAAO,CAAA;IACX,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,eAAe,CAAC,CAAA;IAC9D,MAAM,GAAG,GACP,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACxC,YAAY,QAAQ,CAAC,6BAA6B,CAAC,WAAW,CAAC,WAAW;QAC5E,CAAC,CAAC,YAAY,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,qBAAqB;IACrB,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC;QAC9C,OAAO,OAAO,CACZ,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAC1C,CAAA;IACH,CAAC;IACD,oBAAoB;AACtB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,IAAkB,EAClB,aAAsB,EACtB,EAAE;IACF,qBAAqB;IACrB,MAAM,YAAY,GAChB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,CAAC,SAAS,CAAA;IACb,oBAAoB;IACpB,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,GAAG,IAAI,CAAC,OAAO;QACf,SAAS,EAAE,YAAY,EAAE;QACzB,YAAY,EAAE,IAAI;QAClB,YAAY;KACb,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;QACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,eAAe,GAAG,MAA4B,CAAA;QACpD,eAAe,CAAC,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;QAChE,MAAM,IAAI;aACP,cAAc,EAAE;aAChB,IAAI,CAAC,GAAG,EAAE;YACT,eAAe,CAAC,aAAa,CAAC;gBAC5B,GAAG,IAAI,CAAC,OAAO;gBACf,YAAY;aACb,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpB,CAAC,CAAC,CAAA;IACF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACpB,MAAM,CAAC,wBAAwB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAClD,KAAK,OAAO,CACV,MAAM,CAAC,OAAO,CACZ,MAAM,uBAAuB,CAAC;QAC5B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;QAC/B,aAAa;QACb,WAAW;QACX,MAAM;KACP,CAAC,CACH,CACF,CAAA;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA","sourcesContent":["import { resolve } from 'node:path'\nimport LZString from 'lz-string'\nimport { createServer } from '@vltpkg/server'\nimport { urlOpen } from '@vltpkg/url-open'\nimport { stdout } from './output.ts'\nimport type { PathScurry } from 'path-scurry'\nimport type { LoadedConfig } from './config/index.ts'\nimport type { VltServerListening } from '@vltpkg/server'\n\nexport const getDefaultStartingRoute = async (options: {\n queryString?: string\n startingRoute?: string\n projectRoot: string\n scurry: PathScurry\n}) => {\n const {\n queryString = ':root',\n startingRoute,\n projectRoot,\n scurry,\n } = options\n if (startingRoute) return startingRoute\n const stat = await scurry.lstat(`${projectRoot}/package.json`)\n const res =\n stat?.isFile() && !stat.isSymbolicLink() ?\n `/explore/${LZString.compressToEncodedURIComponent(queryString)}/overview`\n : '/dashboard'\n return res\n}\n\nconst getAssetsDir = () => {\n /* c8 ignore start */\n if (process.env.__VLT_INTERNAL_GUI_ASSETS_DIR) {\n return resolve(\n import.meta.dirname,\n process.env.__VLT_INTERNAL_GUI_ASSETS_DIR,\n )\n }\n /* c8 ignore stop */\n}\n\nexport const startGUI = async (\n conf: LoadedConfig,\n startingRoute?: string,\n) => {\n /* c8 ignore start */\n const allowScripts =\n conf.get('allow-scripts') ?\n String(conf.get('allow-scripts'))\n : ':not(*)'\n /* c8 ignore stop */\n const server = createServer({\n ...conf.options,\n assetsDir: getAssetsDir(),\n loadedConfig: conf,\n allowScripts,\n })\n server.on('needConfigUpdate', async dir => {\n conf.resetOptions(dir)\n const listeningServer = server as VltServerListening\n listeningServer.updateOptions({ ...conf.options, allowScripts })\n await conf\n .reloadFromDisk()\n .then(() => {\n listeningServer.updateOptions({\n ...conf.options,\n allowScripts,\n })\n })\n .catch(() => {})\n })\n const { projectRoot, scurry } = conf.options\n await server.start()\n stdout(`⚡️ vlt UI running at ${server.address()}`)\n void urlOpen(\n server.address(\n await getDefaultStartingRoute({\n queryString: conf.values.target,\n startingRoute,\n projectRoot,\n scurry,\n }),\n ),\n )\n return server\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO;IAChC,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;gBAER,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY;IAQtD,KAAK;IACC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAGjE,KAAK,CAAC,IAAI,EAAE,OAAO;CACpB;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,CAChC,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,YAAY,KACf,OAAO,CAAA;AAEZ,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,CAAC,kBACrB,IAAI,CAAC,CAAC,CAAC,KACZ,IAAI,IAAI,OAAO,SAAS,CAAC,CAAC,CAGQ,CAAA;AAErC,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,SAAS;IACpB,OAAO,CAAa;IACpB,MAAM,CAAc;IAEpB,YAAY,OAAoB,EAAE,MAAoB;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,KAAK,KAAI,CAAC;IACV,KAAK,CAAC,IAAI,CAAC,OAAU,EAAE,KAAuB;QAC5C,OAAM;IACR,CAAC;IACD,KAAK,CAAC,IAAa,IAAG,CAAC;CACxB;AAUD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAa,EACgB,EAAE,CAC/B,OAAO,IAAI,KAAK,UAAU;IAC1B,WAAW,IAAI,IAAI;IACnB,IAAI,CAAC,SAAS,YAAY,SAAS,CAAA","sourcesContent":["import type { LoadedConfig } from './config/index.ts'\n\nexport type ViewOptions = { colors?: boolean }\n\n/**\n * The base class for all View classes\n *\n * Do not override the constructor, just provide start/done/error methods.\n *\n * These classes should be used as one or more of the exported views for\n * commands that need to know when the processing starts, handle errors in\n * various ways, etc. Fancy stuff.\n *\n * For simple use cases, usually better to create a {@link ViewFn} instead.\n */\nexport class ViewClass<T = unknown> {\n options: ViewOptions\n config: LoadedConfig\n\n constructor(options: ViewOptions, config: LoadedConfig) {\n this.options = options\n this.config = config\n }\n\n // TODO: maybe have start() return a flag to say \"i got this, do not\n // run the command\", for example to have the gui just open a web browser\n // to the page relevant to a given thing, rather than computing it twice\n start() {}\n async done(_result: T, _opts: { time: number }): Promise<unknown> {\n return\n }\n error(_err: unknown) {}\n}\n\nexport type ViewFn<T = unknown> = (\n result: T,\n options: ViewOptions,\n conf: LoadedConfig,\n) => unknown\n\nexport type View<T = unknown> = ViewFn<T> | typeof ViewClass<T>\n\nexport const isViewClass = <T = unknown>(\n view: View<T>,\n): view is typeof ViewClass<T> =>\n typeof view === 'function' &&\n 'prototype' in view &&\n view.prototype instanceof ViewClass\n\nexport type Views<T = unknown> = View<T> | Record<string, View<T>>\n"]}
package/package.json CHANGED
@@ -1,31 +1,16 @@
1
1
  {
2
2
  "name": "@vltpkg/cli-sdk",
3
3
  "description": "The source for the vlt CLI",
4
- "version": "1.0.0-rc.10",
4
+ "version": "1.0.0-rc.12",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
8
8
  "directory": "src/cli-sdk"
9
9
  },
10
10
  "author": "vlt technology inc. <support@vlt.sh> (http://vlt.sh)",
11
- "tshy": {
12
- "selfLink": false,
13
- "liveDev": true,
14
- "dialects": [
15
- "esm"
16
- ],
17
- "exports": {
18
- "./package.json": "./package.json",
19
- ".": "./src/index.ts",
20
- "./config": "./src/config/index.ts",
21
- "./definition": "./src/config/definition.ts",
22
- "./view": "./src/view.ts"
23
- }
24
- },
25
11
  "dependencies": {
26
12
  "ansi-to-pre": "^1.0.6",
27
13
  "chalk": "^5.6.2",
28
- "graph-run": "^1.1.0",
29
14
  "hosted-git-info": "^9.0.2",
30
15
  "ink": "^6.5.1",
31
16
  "ink-spinner": "^5.0.0",
@@ -43,30 +28,31 @@
43
28
  "ssri": "^13.0.0",
44
29
  "supports-color": "^10.2.2",
45
30
  "tar": "^7.5.2",
46
- "@vltpkg/config": "1.0.0-rc.10",
47
- "@vltpkg/dep-id": "1.0.0-rc.10",
48
- "@vltpkg/error-cause": "1.0.0-rc.10",
49
- "@vltpkg/dot-prop": "1.0.0-rc.10",
50
- "@vltpkg/git": "1.0.0-rc.10",
51
- "@vltpkg/graph": "1.0.0-rc.10",
52
- "@vltpkg/init": "1.0.0-rc.10",
53
- "@vltpkg/output": "1.0.0-rc.10",
54
- "@vltpkg/package-info": "1.0.0-rc.10",
55
- "@vltpkg/package-json": "1.0.0-rc.10",
56
- "@vltpkg/promise-spawn": "1.0.0-rc.10",
57
- "@vltpkg/query": "1.0.0-rc.10",
58
- "@vltpkg/registry-client": "1.0.0-rc.10",
59
- "@vltpkg/rollback-remove": "1.0.0-rc.10",
60
- "@vltpkg/run": "1.0.0-rc.10",
61
- "@vltpkg/security-archive": "1.0.0-rc.10",
62
- "@vltpkg/spec": "1.0.0-rc.10",
63
- "@vltpkg/types": "1.0.0-rc.10",
64
- "@vltpkg/server": "1.0.0-rc.10",
65
- "@vltpkg/url-open": "1.0.0-rc.10",
66
- "@vltpkg/vlt-json": "1.0.0-rc.10",
67
- "@vltpkg/workspaces": "1.0.0-rc.10",
68
- "@vltpkg/vlx": "1.0.0-rc.10",
69
- "@vltpkg/xdg": "1.0.0-rc.10"
31
+ "@vltpkg/config": "1.0.0-rc.12",
32
+ "@vltpkg/dep-id": "1.0.0-rc.12",
33
+ "@vltpkg/dot-prop": "1.0.0-rc.12",
34
+ "@vltpkg/git": "1.0.0-rc.12",
35
+ "@vltpkg/graph-run": "1.0.0-rc.12",
36
+ "@vltpkg/error-cause": "1.0.0-rc.12",
37
+ "@vltpkg/graph": "1.0.0-rc.12",
38
+ "@vltpkg/package-info": "1.0.0-rc.12",
39
+ "@vltpkg/package-json": "1.0.0-rc.12",
40
+ "@vltpkg/promise-spawn": "1.0.0-rc.12",
41
+ "@vltpkg/init": "1.0.0-rc.12",
42
+ "@vltpkg/output": "1.0.0-rc.12",
43
+ "@vltpkg/query": "1.0.0-rc.12",
44
+ "@vltpkg/registry-client": "1.0.0-rc.12",
45
+ "@vltpkg/run": "1.0.0-rc.12",
46
+ "@vltpkg/rollback-remove": "1.0.0-rc.12",
47
+ "@vltpkg/security-archive": "1.0.0-rc.12",
48
+ "@vltpkg/server": "1.0.0-rc.12",
49
+ "@vltpkg/spec": "1.0.0-rc.12",
50
+ "@vltpkg/types": "1.0.0-rc.12",
51
+ "@vltpkg/vlt-json": "1.0.0-rc.12",
52
+ "@vltpkg/url-open": "1.0.0-rc.12",
53
+ "@vltpkg/vlx": "1.0.0-rc.12",
54
+ "@vltpkg/workspaces": "1.0.0-rc.12",
55
+ "@vltpkg/xdg": "1.0.0-rc.12"
70
56
  },
71
57
  "devDependencies": {
72
58
  "@eslint/js": "^9.39.1",
@@ -76,7 +62,6 @@
76
62
  "eslint": "^9.39.1",
77
63
  "prettier": "^3.7.4",
78
64
  "tap": "^21.5.0",
79
- "tshy": "^3.1.0",
80
65
  "typedoc": "~0.27.9",
81
66
  "typescript": "5.7.3",
82
67
  "typescript-eslint": "^8.49.0"
@@ -89,32 +74,28 @@
89
74
  "extends": "../../tap-config.yaml"
90
75
  },
91
76
  "prettier": "../../.prettierrc.js",
92
- "module": "./dist/esm/index.js",
77
+ "module": "./dist/index.js",
93
78
  "type": "module",
94
79
  "exports": {
95
80
  "./package.json": "./package.json",
96
81
  ".": {
97
82
  "import": {
98
- "types": "./dist/esm/index.d.ts",
99
- "default": "./dist/esm/index.js"
83
+ "default": "./dist/index.js"
100
84
  }
101
85
  },
102
86
  "./config": {
103
87
  "import": {
104
- "types": "./dist/esm/config/index.d.ts",
105
- "default": "./dist/esm/config/index.js"
88
+ "default": "./dist/config/index.js"
106
89
  }
107
90
  },
108
91
  "./definition": {
109
92
  "import": {
110
- "types": "./dist/esm/config/definition.d.ts",
111
- "default": "./dist/esm/config/definition.js"
93
+ "default": "./dist/config/definition.js"
112
94
  }
113
95
  },
114
96
  "./view": {
115
97
  "import": {
116
- "types": "./dist/esm/view.d.ts",
117
- "default": "./dist/esm/view.js"
98
+ "default": "./dist/view.js"
118
99
  }
119
100
  }
120
101
  },
@@ -132,7 +113,6 @@
132
113
  "snap": "tap",
133
114
  "test": "tap",
134
115
  "posttest": "tsc --noEmit",
135
- "tshy": "tshy",
136
116
  "typecheck": "tsc --noEmit"
137
117
  }
138
118
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bugs.d.ts","sourceRoot":"","sources":["../../../src/commands/bugs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ1D,eAAO,MAAM,KAAK,EAAE,YA2BhB,CAAA;AAEJ,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,EAAE,CAAA;AAEH,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,qBAAqB,CAAA;AAEzB,eAAO,MAAM,KAAK;;;CAUuB,CAAA;AAkDzC,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,aAAa,CA4F5C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bugs.js","sourceRoot":"","sources":["../../../src/commands/bugs.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\nimport { PackageInfoClient } from '@vltpkg/package-info'\nimport { Spec } from '@vltpkg/spec'\nimport { urlOpen } from '@vltpkg/url-open'\nimport { actual } from '@vltpkg/graph'\nimport { Query } from '@vltpkg/query'\nimport { SecurityArchive } from '@vltpkg/security-archive'\nimport { createHostContextsMap } from '../query-host-contexts.ts'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport type { Views } from '../view.ts'\nimport type { Manifest, NormalizedManifest } from '@vltpkg/types'\nimport hostedGitInfo from 'hosted-git-info'\nconst { fromUrl: hostedGitInfoFromUrl } = hostedGitInfo as {\n fromUrl: (url: string) => { bugs?: () => string } | null\n}\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'bugs',\n usage: ['[<spec>]', '[--target=<query>]'],\n description: `Open bug tracker for a package in a web browser.\n Reads bug tracker information from package.json or fetches\n manifest data for the specified package.`,\n options: {\n target: {\n value: '<query>',\n description:\n 'Query selector to filter packages using DSS syntax.',\n },\n },\n examples: {\n '': {\n description:\n 'Open bugs for the current package (reads local package.json)',\n },\n 'abbrev@2.0.0': {\n description: 'Open bugs for a specific package version',\n },\n '--target=\":root > *\"': {\n description:\n 'List bug tracker URLs for all direct dependencies',\n },\n },\n })\n\ntype CommandResultSingle = {\n url: string\n name: string\n}\n\ntype CommandResultMultiple = {\n url: string\n name: string\n}[]\n\nexport type CommandResult =\n | CommandResultSingle\n | CommandResultMultiple\n\nexport const views = {\n human: r => {\n if (Array.isArray(r)) {\n let msg = 'Multiple package bug trackers found:\\n'\n msg += r.map(item => `• ${item.name}: ${item.url}`).join('\\n')\n return msg\n }\n return ''\n },\n json: r => r,\n} as const satisfies Views<CommandResult>\n\nconst getUrlFromManifest = (\n manifest: Manifest | NormalizedManifest,\n): string => {\n const { name, bugs, repository } = manifest\n\n if (!name) {\n throw error('No package name found')\n }\n\n let url: string | undefined\n\n // Check bugs field first\n if (bugs) {\n if (typeof bugs === 'string') {\n url = bugs\n } else if (typeof bugs === 'object') {\n if ('url' in bugs && bugs.url) {\n url = bugs.url\n } else if ('email' in bugs && bugs.email) {\n url = `mailto:${bugs.email}`\n }\n }\n }\n\n // Try repository if no bugs field\n if (!url && repository) {\n const repoUrl =\n typeof repository === 'string' ? repository\n : typeof repository === 'object' && 'url' in repository ?\n repository.url\n : /* c8 ignore next */ undefined\n\n if (repoUrl) {\n const info = hostedGitInfoFromUrl(repoUrl.replace(/^git\\+/, ''))\n if (info?.bugs && typeof info.bugs === 'function') {\n url = info.bugs()\n }\n }\n }\n\n // Fallback to vlt.io package page\n if (!url) {\n url = `https://vlt.io/explore/npm/${name}/overview`\n }\n\n return url\n}\n\nexport const command: CommandFn<CommandResult> = async conf => {\n const { projectRoot, packageJson } = conf.options\n const targetOption = conf.get('target')\n\n // Handle --target query\n if (targetOption) {\n const mainManifest = packageJson.maybeRead(projectRoot)\n if (!mainManifest) {\n throw error('No package.json found in project root', {\n path: projectRoot,\n })\n }\n\n const graph = actual.load({\n ...conf.options,\n mainManifest,\n monorepo: conf.options.monorepo,\n loadManifests: true,\n })\n\n const securityArchive =\n Query.hasSecuritySelectors(targetOption) ?\n await SecurityArchive.start({\n nodes: [...graph.nodes.values()],\n })\n : undefined\n\n const hostContexts = await createHostContextsMap(conf)\n const query = new Query({\n nodes: new Set(graph.nodes.values()),\n edges: graph.edges,\n importers: graph.importers,\n securityArchive,\n hostContexts,\n })\n\n const { nodes } = await query.search(targetOption, {\n signal: new AbortController().signal,\n })\n\n const results: CommandResultMultiple = []\n for (const node of nodes) {\n if (!node.manifest) continue\n const url = getUrlFromManifest(node.manifest)\n results.push({\n url,\n name: node.name /* c8 ignore next */ ?? '(unknown)',\n })\n }\n\n if (results.length === 0) {\n throw error('No packages found matching target query', {\n found: targetOption,\n })\n }\n\n // If single result, open it\n if (results.length === 1) {\n const result = results[0]\n /* c8 ignore next 3 */\n if (!result) {\n throw error('Unexpected empty result')\n }\n await urlOpen(result.url)\n return result\n }\n\n // Multiple results, return the list\n return results\n }\n\n // read the package spec from a positional argument or local package.json\n const specArg = conf.positionals[0]\n const manifest =\n conf.positionals.length === 0 ? packageJson.read(projectRoot)\n : specArg ?\n await new PackageInfoClient(conf.options).manifest(\n Spec.parseArgs(specArg, conf.options),\n )\n : /* c8 ignore next */ packageJson.read(projectRoot)\n\n const url = getUrlFromManifest(manifest)\n const { name } = manifest\n /* c8 ignore start - getUrlFromManifest already validates name */\n if (!name) {\n throw error('No package name found')\n }\n /* c8 ignore stop */\n // Open the URL\n await urlOpen(url)\n\n return { url, name }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAQ,MAAM,eAAe,CAAA;AAGtD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,KAAK;6BACA,WAAW,KAAG,MAAM;4BAqBrB,WAAW;;;;;;;;;;;;;CAqBW,CAAA;AAEvC,eAAO,MAAM,KAAK,EAAE,YAsBhB,CAAA;AAWJ;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,WAAW,CAqC1C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"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","sourcesContent":["import { build } from '@vltpkg/graph'\nimport type { BuildResult, Node } from '@vltpkg/graph'\nimport { error } from '@vltpkg/error-cause'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport type { Views } from '../view.ts'\nimport { isErrorWithCause } from '@vltpkg/types'\n\nexport const views = {\n human: (result: BuildResult): string => {\n const successCount = result.success.length\n const failureCount = result.failure.length\n const messages: string[] = []\n\n if (successCount > 0) {\n messages.push(\n `🔨 Built ${successCount} package${successCount === 1 ? '' : 's'} successfully.`,\n )\n } else {\n messages.push('📦 All packages are already built.')\n }\n\n if (failureCount > 0) {\n messages.push(\n `🔎 ${failureCount} optional package${/* c8 ignore next */ failureCount === 1 ? '' : 's'} failed to build.`,\n )\n }\n\n return messages.join('\\n')\n },\n json: (result: BuildResult) => {\n const successList = result.success.map(node => ({\n id: node.id,\n name: node.name,\n version: node.version,\n }))\n const failureList = result.failure.map(node => ({\n id: node.id,\n name: node.name,\n version: node.version,\n }))\n\n return {\n success: successList,\n failure: failureList,\n message:\n successList.length > 0 ?\n `Built ${successList.length} package${successList.length === 1 ? '' : 's'}.`\n : 'No packages needed building.',\n }\n },\n} as const satisfies Views<BuildResult>\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'build',\n usage: ['[query]', '[--target=<query>]'],\n description: `Build the project based on the current dependency graph.\n\n This command processes the installed packages in node_modules and runs\n any necessary build steps, such as lifecycle scripts and binary linking.\n \n The build process is idempotent and will only perform work that is\n actually needed based on the current state of the dependency graph.\n \n Use --target option or provide a query as a positional argument to filter\n packages using DSS query language syntax, otherwise it will target\n all packages with scripts (:scripts) by default.`,\n options: {\n target: {\n value: '<query>',\n description:\n 'Query selector to filter packages using DSS syntax.',\n },\n },\n })\n\nconst isGraphRunError = (\n error: unknown,\n): error is Error & { code: string; node: Node } =>\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'GRAPHRUN_TRAVERSAL' &&\n 'node' in error\n\n/**\n * Build command implementation. Runs any required \"postinstall\"\n * lifecycle scripts and binary linking.\n */\nexport const command: CommandFn<BuildResult> = async conf => {\n const { options, projectRoot } = conf\n\n try {\n // Get target from option or first positional, default to all scripts\n const targetOption = conf.get('target')\n const targetPositional = conf.positionals[0]\n const target =\n targetOption ||\n targetPositional ||\n ':scripts:not(:built):not(:malware)'\n\n // Run the build process using the graph build function\n const result = await build({\n ...options,\n projectRoot,\n packageJson: options.packageJson,\n monorepo: options.monorepo,\n scurry: options.scurry,\n target,\n })\n\n return result\n } catch (cause) {\n const graphRunError =\n isErrorWithCause(cause) && isGraphRunError(cause.cause) ?\n cause.cause\n : undefined\n if (graphRunError?.code === 'GRAPHRUN_TRAVERSAL') {\n throw error(\n 'Build failed:\\n Failed to build package: ' +\n `${graphRunError.node.name}@${graphRunError.node.version}`,\n { cause },\n )\n }\n throw error('Build failed', { cause })\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/commands/cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAC3B,MAAM,EACN,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CACjC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAA;AAGrE,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY;IAIpD,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;CAG1B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAExC,CAAA;AAED,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoE6B,CAAA;AAE3C,eAAO,MAAM,KAAK,EAAE,YAA2C,CAAA;AAE/D,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,IAAI,GAAG,QAAQ,CAgC9C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/commands/cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\nimport { CacheEntry } from '@vltpkg/registry-client'\nimport { Spec } from '@vltpkg/spec'\nimport { mkdir, rm } from 'node:fs/promises'\nimport prettyBytes from 'pretty-bytes'\nimport type { LoadedConfig } from '../config/index.ts'\nimport type { CommandUsageDefinition } from '../config/usage.ts'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport { stderr, stdout } from '../output.ts'\nimport type { ViewOptions, Views } from '../view.ts'\nimport { ViewClass } from '../view.ts'\n\nexport type CacheMap = Record<\n string,\n ReturnType<CacheEntry['toJSON']>\n>\n\nexport type CacheSubcommands = keyof (typeof usageDef)['subcommands']\n\nlet view: CacheView\nexport class CacheView extends ViewClass {\n constructor(options: ViewOptions, conf: LoadedConfig) {\n super(options, conf)\n view = this\n }\n stdout(...args: unknown[]) {\n stdout(...args)\n }\n}\n\nexport const views: Views<void | CacheMap> = {\n human: CacheView,\n}\n\nconst usageDef = {\n command: 'cache',\n usage: '<command> [flags]',\n description: 'Work with vlt cache folders',\n\n subcommands: {\n add: {\n usage: '<package-spec> [<package-spec>...]',\n description: `Resolve the referenced package identifiers and ensure they\n are cached.`,\n },\n\n ls: {\n usage: '[<key>...]',\n description: `Show cache entries. If no keys are provided, then a list of\n available keys will be printed. If one or more keys are\n provided, then details will be shown for the specified\n items.`,\n },\n\n info: {\n usage: '<key>',\n description: `Print metadata details for the specified cache key to\n stderr, and the response body to stdout.`,\n },\n\n clean: {\n usage: '[<key>...]',\n description: `Purge expired cache entries. If one or more keys are\n provided, then only those cache entries will be\n considered.`,\n },\n\n delete: {\n usage: '<key> [<key>...]',\n description: `Purge items explicitly, whether expired or not. If one or\n more keys are provided, then only those cache entries will\n be considered.`,\n },\n\n 'delete-before': {\n usage: '<date>',\n description: `Purge all cache items from before a given date. Date can be\n provided in any format that JavaScript can parse.`,\n },\n\n 'delete-all': {\n usage: '',\n description: `Delete the entire cache folder to make vlt slower.`,\n },\n },\n examples: {\n 'vlt cache ls https://registry.npmjs.org/typescript': {\n description: `Show cache metadata for a given registry URL`,\n },\n 'vlt cache add eslint@latest': {\n description: `Add a given package specifier to the cache by fetching\n its resolved value.`,\n },\n 'vlt cache info https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz > eslint.tgz':\n {\n description: `Print the cache metadata to stderr, and write the tarball\n on stdout, redirecting to a file.`,\n },\n 'vlt cache delete-before 2025-01-01': {\n description: 'Delete all entries created before Jan 1, 2025',\n },\n },\n} as const satisfies CommandUsageDefinition\n\nexport const usage: CommandUsage = () => commandUsage(usageDef)\n\nexport const command: CommandFn<void | CacheMap> = async conf => {\n const [sub, ...args] = conf.positionals\n switch (sub) {\n case 'ls':\n return ls(conf, args, view)\n\n case 'info':\n return info(conf, args, view)\n\n case 'add':\n return add(conf, args, view)\n\n case 'clean':\n return clean(conf, args, view)\n\n case 'delete':\n return deleteKeys(conf, args, view)\n\n case 'delete-before':\n return deleteBefore(conf, args, view)\n\n case 'delete-all':\n return deleteAll(conf, args, view)\n\n default: {\n throw error('Unrecognized cache command', {\n code: 'EUSAGE',\n found: sub,\n validOptions: Object.keys(usageDef.subcommands),\n })\n }\n }\n}\n\nconst ls = async (\n conf: LoadedConfig,\n keys: string[],\n view?: CacheView,\n): Promise<CacheMap> =>\n keys.length ?\n await fetchKeys(\n conf,\n keys,\n (entry: CacheEntry, key: string) => {\n view?.stdout(\n key.includes(' ') ? JSON.stringify(key) : key,\n entry,\n )\n return true\n },\n view,\n )\n : await fetchAll(conf, (_, key) => {\n view?.stdout(key.includes(' ') ? JSON.stringify(key) : key)\n return true\n })\n\nconst info = async (\n conf: LoadedConfig,\n keys: string[],\n view?: CacheView,\n): Promise<void> => {\n const [key] = keys\n if (keys.length !== 1 || !key) {\n throw error('Must provide exactly one cache key', {\n code: 'EUSAGE',\n })\n }\n await fetchKeys(\n conf,\n [key],\n (entry: CacheEntry, key: string) => {\n stderr(\n /* c8 ignore next */\n key.includes(' ') ? JSON.stringify(key) : key,\n entry,\n )\n if (entry.isJSON) {\n stdout(JSON.stringify(entry.body, null, 2))\n /* c8 ignore start - annoying to test, corrupts TAP output */\n } else {\n process.stdout.write(entry.body as Buffer)\n }\n /* c8 ignore stop */\n return true\n },\n view,\n )\n}\n\nconst fetchAll = async (\n conf: LoadedConfig,\n test: (entry: CacheEntry, key: string, val: Buffer) => boolean,\n) => {\n const rc = conf.options.packageInfo.registryClient\n const { cache } = rc\n const map: CacheMap = {}\n for await (const [key, val] of cache) {\n const entry = CacheEntry.decode(val)\n if (!test(entry, key, val)) continue\n map[key] = entry.toJSON()\n }\n return map\n}\n\nconst fetchKeys = async (\n conf: LoadedConfig,\n keys: string[],\n test: (entry: CacheEntry, key: string, buf: Buffer) => boolean,\n view?: CacheView,\n) => {\n const rc = conf.options.packageInfo.registryClient\n const { cache } = rc\n const map: CacheMap = {}\n const results: [string, Buffer | undefined][] = await Promise.all(\n keys.map(async key => {\n return [key, await cache.fetch(key)]\n }),\n )\n for (const [key, val] of results) {\n if (!val) {\n view?.stdout('Not found:', key)\n } else {\n const entry = CacheEntry.decode(val)\n if (!test(entry, key, val)) continue\n map[key] = entry.toJSON()\n }\n }\n\n return map\n}\n\nconst deleteEntries = async (\n conf: LoadedConfig,\n keys: string[],\n test: (entry: CacheEntry) => boolean,\n view?: CacheView,\n) => {\n const rc = conf.options.packageInfo.registryClient\n const { cache } = rc\n\n let count = 0\n let size = 0\n const testAction = (\n entry: CacheEntry,\n key: string,\n val: Buffer,\n ) => {\n if (!test(entry)) {\n return false\n }\n count++\n const s = val.byteLength + key.length\n cache.delete(key, true, entry.integrity)\n const k = key.includes(' ') ? JSON.stringify(key) : key\n view?.stdout('-', k, s)\n size += s\n return true\n }\n\n const map = await (keys.length ?\n fetchKeys(conf, keys, testAction, view)\n : fetchAll(conf, testAction))\n\n const pb = prettyBytes(size, { binary: true })\n\n const s = count === 1 ? '' : 's'\n await cache.promise()\n view?.stdout(`Removed ${count} item${s} totalling ${pb}`)\n return map\n}\n\nconst clean = async (\n conf: LoadedConfig,\n keys: string[],\n view?: CacheView,\n) => deleteEntries(conf, keys, entry => !entry.valid, view)\n\nconst deleteBefore = async (\n conf: LoadedConfig,\n args: string[],\n view?: CacheView,\n) => {\n if (!args.length) {\n throw error('Must provide a date to delete before', {\n code: 'EUSAGE',\n })\n }\n const now = new Date()\n const before = new Date(args.join(' '))\n if (before >= now) {\n throw error('Cannot delete cache entries from the future', {\n code: 'EUSAGE',\n found: before,\n })\n }\n return deleteEntries(\n conf,\n [],\n entry => !!entry.date && entry.date < before,\n view,\n )\n}\n\nconst deleteKeys = async (\n conf: LoadedConfig,\n keys: string[],\n view?: CacheView,\n) => {\n if (!keys.length) {\n throw error('Must provide cache keys to delete', {\n code: 'EUSAGE',\n })\n }\n return deleteEntries(conf, keys, () => true, view)\n}\n\nconst deleteAll = async (\n conf: LoadedConfig,\n _: string[],\n view?: CacheView,\n) => {\n const { cache } = conf.options.packageInfo.registryClient\n await rm(cache.path(), { recursive: true, force: true })\n await mkdir(cache.path(), { recursive: true })\n view?.stdout('Deleted all cache entries.')\n}\n\nconst add = async (\n conf: LoadedConfig,\n specs: string[],\n view?: CacheView,\n) => {\n if (!specs.length) {\n throw error('Must provide specs to add to the cache', {\n code: 'EUSAGE',\n })\n }\n const { packageInfo } = conf.options\n const promises: Promise<void>[] = []\n\n for (const spec of specs) {\n const p = packageInfo\n .resolve(Spec.parseArgs(spec, conf.options), {\n staleWhileRevalidate: false,\n })\n .then(async r => {\n const { resolved, integrity } = r\n await packageInfo.registryClient.request(resolved, {\n ...conf.options,\n integrity,\n staleWhileRevalidate: false,\n query: undefined,\n })\n view?.stdout('+', spec, r.resolved)\n })\n\n promises.push(p)\n }\n\n await Promise.all(promises)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../../src/commands/ci.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AAExD,eAAO,MAAM,KAAK,EAAE,YAWhB,CAAA;AAEJ,eAAO,MAAM,KAAK;;;CAGkB,CAAA;AAEpC,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,QAAQ,CAavC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../src/commands/ci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,MAAM,CAAC,MAAM,KAAK,GAAiB,GAAG,EAAE,CACtC,YAAY,CAAC;IACX,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,EAAE;IACT,WAAW,EAAE;;;kEAGiD;IAC9D,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE;KACnD;CACF,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,eAAe;CACY,CAAA;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAwB,KAAK,EAAC,IAAI,EAAC,EAAE;IACvD,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,CAAC,OAAO;QACf,sEAAsE;QACtE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG;QAC9C,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;KAC5C,CAAA;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,KAAK,EAAE,CAAA;AAClB,CAAC,CAAA","sourcesContent":["import { install } from '@vltpkg/graph'\nimport { commandUsage } from '../config/usage.ts'\nimport { InstallReporter } from './install/reporter.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport type { Views } from '../view.ts'\nimport type { InstallResult } from './install.ts'\n\nexport type CIResult = Omit<InstallResult, 'buildQueue'>\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'ci',\n usage: '',\n description: `Clean install from lockfile. Deletes node_modules and installs \n dependencies exactly as specified in vlt-lock.json. This is \n similar to running 'vlt install --expect-lockfile' but performs \n a clean install by removing node_modules first.`,\n examples: {\n '': { description: 'Clean install from lockfile' },\n },\n })\n\nexport const views = {\n json: i => i.graph.toJSON(),\n human: InstallReporter,\n} as const satisfies Views<CIResult>\n\nexport const command: CommandFn<CIResult> = async conf => {\n const ciOptions = {\n ...conf.options,\n // allow all scripts by default on ci (unless user specifies a filter)\n allowScripts: conf.get('allow-scripts') ?? '*',\n expectLockfile: true,\n frozenLockfile: true,\n cleanInstall: true,\n lockfileOnly: conf.options['lockfile-only'],\n }\n\n const { graph } = await install(ciOptions)\n return { graph }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAKvC,eAAO,MAAM,KAAK,EAAE,KAUM,CAAA;AAE1B,eAAO,MAAM,KAAK,EAAE,YAwDhB,CAAA;AAEJ,eAAO,MAAM,OAAO,EAAE,SA8DrB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAQ7C,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,KAAK,EAAE,OAAO,CAAC,EAAE;QACf,0CAA0C;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,uFAAuF;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;CACuB,CAAA;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAiB,GAAG,EAAE,CACtC,YAAY,CAAC;IACX,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,4CAA4C;IAEzD,WAAW,EAAE;QACX,GAAG,EAAE;YACH,KAAK,EAAE,2CAA2C;YAClD,WAAW,EACT,+EAA+E;SAClF;QAED,IAAI,EAAE;YACJ,KAAK,EACH,uDAAuD;YACzD,WAAW,EACT,qGAAqG;SACxG;QAED,IAAI,EAAE;YACJ,KAAK,EAAE,mCAAmC;YAC1C,WAAW,EACT,6JAA6J;SAChK;QAED,GAAG,EAAE;YACH,KAAK,EACH,qEAAqE;YACvE,WAAW,EAAE;;;4DAGuC;SACrD;QAED,MAAM,EAAE;YACN,KAAK,EAAE,qDAAqD;YAC5D,WAAW,EAAE;;;;uEAIkD;SAChE;QAED,IAAI,EAAE;YACJ,KAAK,EAAE,mCAAmC;YAC1C,WAAW,EACT,gGAAgG;SACnG;QAED,QAAQ,EAAE;YACR,KAAK,EAAE,6BAA6B;YACpC,WAAW,EACT,2EAA2E;SAC9E;KACF;CACF,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAc,KAAK,EAAC,IAAI,EAAC,EAAE;IAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;IAE9B,MAAM,CACJ,GAAG,EACH,KAAK,CAAC,sCAAsC,EAAE;QAC5C,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE;YACZ,KAAK;YACL,MAAM;YACN,KAAK;YACL,QAAQ;YACR,MAAM;YACN,MAAM;YACN,UAAU;SACX;KACF,CAAC,CACH,CAAA;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;QAExB,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;QAExB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QAEzB,KAAK,IAAI,CAAC;QACV,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QAEzB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QAEzB,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;QAE7B,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;QAE3B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,KAAK,CAAC,6BAA6B,EAAE;gBACzC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE;oBACZ,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,QAAQ;oBACR,MAAM;oBACN,MAAM;oBACN,UAAU;iBACX;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,kFAAkF;AAClF,MAAM,SAAS,GAAG,KAAK,EAAE,IAAkB,EAAoB,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAEvD,mEAAmE;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,sFAAsF;gBACtF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC9B,OAAO,MAAM,CAAA;YACf,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC9B,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,UAAU,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAEvD,gGAAgG;IAChG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,KAAK;gBACR,+DAA+D;gBAC/D,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAEpC,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,mCAAmC;gBACnC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAA;gBACxC,OAAO,UAAU,CAAC,oBAAoB,IAAI,EAAE,CAAA;YAC9C,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,sCAAsC;gBACtC,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAA;gBAC9C,OAAO,aAAa,CAAC,oBAAoB,IAAI,EAAE,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,MAAM,MAAM,GAA4B,EAAE,CAAA;IAE1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,oBAAoB;YAAC,SAAQ;QAEvC,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,KAAK;gBACR,4CAA4C;gBAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CACrB,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAW,CAAC,EACpD,IAAI,EACJ;oBACE,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;iBAC1B,CACc,CAClB,CAAA;gBACD,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;gBACrC,MAAK;YAEP,KAAK,SAAS;gBACZ,MAAM,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;gBACxC,MAAK;QACT,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,uDAAuD;AACvD,MAAM,UAAU,GAAG,CAAC,IAAkB,EAAE,EAAE;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAEvD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,wCAAwC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;QAEnB,KAAK,MAAM;YACT,wBAAwB;YACxB,OAAO,iBAAiB,EAAE,CAAA;QAE5B,KAAK,SAAS;YACZ,2BAA2B;YAC3B,OAAO,oBAAoB,EAAE,CAAA;QAE/B;YACE,4BAA4B;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;AACH,CAAC,CAAA;AAED,0DAA0D;AAC1D,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAY,EAAE;IAC5D,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,wCAAwC;YACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,uBAAuB;YACvB,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,IAAI,WAAmB,CAAA;YACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAA;YACrB,CAAC;iBAAM,IACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;gBACD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,UAAU,CAAA;YAC1B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;AACtB,CAAC,CAAA;AAED,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,GAAa,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CACrB,QAAQ,EACR,CAAC,CAAU,EAAE,IAAY,EAA4B,EAAE;YACrD,IACE,CAAC,KAAK,IAAI;gBACV,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,EACD,MAAM,CACP,CAAA;QAED,IAAI,CAAC,UAAU;YAAE,OAAO,oBAAoB,CAAC,EAAE,CAAA;QAE/C,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,wCAAwC;AACxC,MAAM,oBAAoB,GAAG,GAAa,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CACxB,QAAQ,EACR,CAAC,CAAU,EAAE,IAAY,EAA4B,EAAE;YACrD,IACE,CAAC,KAAK,IAAI;gBACV,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,EACD,SAAS,CACV,CAAA;QAED,IAAI,CAAC,aAAa;YAAE,OAAO,oBAAoB,CAAC,EAAE,CAAA;QAElD,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,oCAAoC;AACpC,MAAM,mBAAmB,GAAG,GAEd,EAAE;IACd,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CACrB,QAAQ,EACR,CAAC,CAAU,EAAE,IAAY,EAA4B,EAAE;YACrD,IACE,CAAC,KAAK,IAAI;gBACV,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,EACD,MAAM,CACP,CAAA;QAED,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;YAC/C,oBAAoB;YACpB,OAAM;QAER,OAAO,UAAqC,CAAA;IAC9C,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAM;IACR,CAAC;AACH,CAAC,CAAA;AAED,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAW,EAAE;IAClD,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAA;IACxC,IAAI,CAAC,UAAU;QAAE,OAAM;IAEvB,wCAAwC;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,UAA0C,EAAE,GAAG,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,uCAAuC;AACvC,MAAM,sBAAsB,GAAG,GAEjB,EAAE;IACd,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CACxB,QAAQ,EACR,CAAC,CAAU,EAAE,IAAY,EAA4B,EAAE;YACrD,IACE,CAAC,KAAK,IAAI;gBACV,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,EACD,SAAS,CACV,CAAA;QAED,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ;YACrD,oBAAoB;YACpB,OAAM;QAER,OAAO,aAAwC,CAAA;IACjD,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAM;IACR,CAAC;AACH,CAAC,CAAA;AAED,2CAA2C;AAC3C,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAW,EAAE;IACrD,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAA;IAC9C,IAAI,CAAC,aAAa;QAAE,OAAM;IAE1B,wCAAwC;IACxC,OAAO,OAAO,CAAC,GAAG,CAChB,aAA6C,EAC7C,GAAG,CACJ,CAAA;AACH,CAAC,CAAA;AAED,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,CAC3B,IAAkB,EACE,EAAE;IACtB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAEvD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3B,oDAAoD;QACpD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,qEAAqE;AACrE,MAAM,SAAS,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;IAC7C,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAElD,4DAA4D;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAA;IAC5B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;QAC1B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,eAAe,CAAA;QACxB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAU,CAAC,CAAA;IAC3C,CAAC,CAAuB,CAAA;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;YAAS,CAAC;QACT,kCAAkC;QAClC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAA;IACxB,CAAC;AACH,CAAC,CAAA;AAED,wEAAwE;AACxE,MAAM,YAAY,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;IAChD,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAElD,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAA;IAC5B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;QAC1B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,eAAe,CAAA;QACxB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAU,CAAC,CAAA;IAC3C,CAAC,CAAuB,CAAA;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;YAAS,CAAC;QACT,kCAAkC;QAClC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAA;IACxB,CAAC;AACH,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,UAAU,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;IAC9C,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAElD,6DAA6D;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAA;IAC5B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;QAC1B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,eAAe,CAAA;QACxB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAU,CAAC,CAAA;IAC3C,CAAC,CAAuB,CAAA;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;YAAS,CAAC;QACT,kCAAkC;QAClC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAA;IACxB,CAAC;AACH,CAAC,CAAA;AAED,mFAAmF;AACnF,MAAM,qBAAqB,GAAG,CAC5B,IAAkB,EACO,EAAE;IAC3B,gFAAgF;IAChF,OAAO,IAAI,CAAC,IAAI,CAA4B,CAAA;AAC9C,CAAC,CAAA;AAED,gDAAgD;AAChD,MAAM,cAAc,GAAG,CAAC,IAAkB,EAAU,EAAE;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAEvD,qEAAqE;IACrE,6CAA6C;IAC7C,MAAM,eAAe,GACnB,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAA;IAEnD,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA;IAExC,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA","sourcesContent":["import assert from 'node:assert'\nimport * as dotProp from '@vltpkg/dot-prop'\nimport { error } from '@vltpkg/error-cause'\nimport { commandUsage } from '../config/usage.ts'\nimport { get, set, edit, list, del } from '@vltpkg/config'\nimport { load, find } from '@vltpkg/vlt-json'\nimport type { LoadedConfig, RecordPairs } from '../config/index.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport type { Views } from '../view.ts'\n\n// Type for the CLI config option (includes 'all' for merged config)\ntype ConfigOption = 'all' | 'user' | 'project'\n\nexport const views: Views = {\n human: results => {\n // Handle string arrays (like list output)\n if (Array.isArray(results) && typeof results[0] === 'string') {\n return results.join('\\n')\n }\n\n // For all other values (primitives, objects, arrays), use JSON formatting like vlt pkg\n return JSON.stringify(results, null, 2)\n },\n} as const satisfies Views\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'config',\n usage: '[<command>] [<args>]',\n description: 'Get or manipulate vlt configuration values',\n\n subcommands: {\n get: {\n usage: '[<key>] [--config=<all | user | project>]',\n description:\n 'Get a single config value. Use --config to specify which config to read from.',\n },\n\n pick: {\n usage:\n '[<key> [<key> ...]] [--config=<all | user | project>]',\n description:\n 'Get multiple config values or all configuration. Use --config to specify which config to read from.',\n },\n\n list: {\n usage: '[--config=<all | user | project>]',\n description:\n 'Print configuration settings. --config=all shows merged config (default), --config=user shows only user config, --config=project shows only project config.',\n },\n\n set: {\n usage:\n '<key>=<value> [<key>=<value> ...] [--config=<all | user | project>]',\n description: `Set config values. By default (or with --config=all), these are\n written to the project config file, \\`vlt.json\\`\n in the root of the project. To set things for all\n projects, run with \\`--config=user\\`.`,\n },\n\n delete: {\n usage: '<key> [<key> ...] [--config=<all | user | project>]',\n description: `Delete the named config fields. If no values remain in\n the config file, delete the file as well. By default\n (or with --config=all), operates on the \\`vlt.json\\` file in\n the root of the current project. To delete a config field from\n the user config file, specify \\`--config=user\\`.`,\n },\n\n edit: {\n usage: '[--config=<all | user | project>]',\n description:\n 'Edit the configuration file. By default (or with --config=all), edits the project config file.',\n },\n\n location: {\n usage: '[--config=<user | project>]',\n description:\n 'Show the file path of the configuration file. Defaults to project config.',\n },\n },\n })\n\nexport const command: CommandFn = async conf => {\n const [sub] = conf.positionals\n\n assert(\n sub,\n error('config command requires a subcommand', {\n code: 'EUSAGE',\n validOptions: [\n 'get',\n 'pick',\n 'set',\n 'delete',\n 'list',\n 'edit',\n 'location',\n ],\n }),\n )\n\n switch (sub) {\n case 'set':\n return configSet(conf)\n\n case 'get':\n return configGet(conf)\n\n case 'pick':\n return configPick(conf)\n\n case 'ls':\n case 'list':\n return configList(conf)\n\n case 'edit':\n return configEdit(conf)\n\n case 'location':\n return configLocation(conf)\n\n case 'del':\n case 'delete':\n case 'rm':\n case 'remove':\n case 'unset':\n return configDelete(conf)\n\n default: {\n throw error('Unrecognized config command', {\n code: 'EUSAGE',\n found: sub,\n validOptions: [\n 'get',\n 'pick',\n 'set',\n 'delete',\n 'list',\n 'edit',\n 'location',\n ],\n })\n }\n }\n}\n\n// Enhanced get function that supports multiple keys (falls back to pick behavior)\nconst configGet = async (conf: LoadedConfig): Promise<unknown> => {\n const keys = conf.positionals.slice(1)\n const configOption = conf.get('config') as ConfigOption\n\n // If no keys provided, show all config (like pkg get with no args)\n if (keys.length === 0) {\n return configPick(conf)\n }\n\n // If exactly one key, get the value based on --config option\n if (keys.length === 1) {\n const key = keys[0]\n if (!key) {\n throw error('Key is required', { code: 'EUSAGE' })\n }\n\n switch (configOption) {\n case 'all': {\n // Default behavior - get from merged/consolidated config (like original get function)\n const result = await get(conf)\n return result\n }\n case 'user': {\n return getUserConfigValue(key)\n }\n case 'project': {\n return getProjectConfigValue(key)\n }\n default: {\n // Fallback to merged config\n const result = await get(conf)\n return result\n }\n }\n }\n\n // Multiple keys: use pick behavior\n return configPick(conf)\n}\n\n// New pick function for getting multiple config values (like vlt pkg pick)\nconst configPick = async (conf: LoadedConfig) => {\n const keys = conf.positionals.slice(1)\n const configOption = conf.get('config') as ConfigOption\n\n // If no keys provided, return entire config object based on --config option (like vlt pkg pick)\n if (keys.length === 0) {\n switch (configOption) {\n case 'all':\n // For 'all', return the merged config as a serializable object\n return getSerializableConfig(conf)\n\n case 'user': {\n // Return entire user config object\n const userConfig = getUserConfigObject()\n return userConfig /* c8 ignore next */ ?? {}\n }\n\n case 'project': {\n // Return entire project config object\n const projectConfig = getProjectConfigObject()\n return projectConfig /* c8 ignore next */ ?? {}\n }\n }\n }\n\n // Multiple keys: build an object with the requested keys (like vlt pkg pick)\n const result: Record<string, unknown> = {}\n\n for (const key of keys) {\n if (!key) /* c8 ignore next */ continue\n\n switch (configOption) {\n case 'all':\n // Get from merged config (default behavior)\n result[key] = await get(\n Object.assign(\n Object.create(Object.getPrototypeOf(conf) as object),\n conf,\n {\n positionals: ['get', key],\n },\n ) as LoadedConfig,\n )\n break\n\n case 'user':\n result[key] = getUserConfigValue(key)\n break\n\n case 'project':\n result[key] = getProjectConfigValue(key)\n break\n }\n }\n\n return result\n}\n\n// Enhanced list function that respects --config option\nconst configList = (conf: LoadedConfig) => {\n const configOption = conf.get('config') as ConfigOption\n\n switch (configOption) {\n case 'all':\n // Default behavior - show merged config\n return list(conf)\n\n case 'user':\n // Show only user config\n return getUserConfigList()\n\n case 'project':\n // Show only project config\n return getProjectConfigList()\n\n default:\n // Fallback to merged config\n return list(conf)\n }\n}\n\n// Convert RecordPairs to string array in key=value format\nconst configToStringArray = (config: RecordPairs): string[] => {\n const result: string[] = []\n\n for (const [key, value] of Object.entries(config)) {\n if (value === undefined || value === null) {\n continue\n }\n\n if (Array.isArray(value)) {\n // Handle array values (like registries)\n for (const item of value) {\n if (typeof item === 'string') {\n result.push(`${key}=${item}`)\n }\n }\n } else if (typeof value === 'object') {\n // Handle object values\n for (const [subKey, subValue] of Object.entries(value)) {\n if (subValue !== undefined && subValue !== null) {\n result.push(`${key}.${subKey}=${String(subValue)}`)\n }\n }\n } else {\n // Handle primitive values\n let stringValue: string\n if (typeof value === 'string') {\n stringValue = value\n } else if (\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n stringValue = String(value)\n } else {\n stringValue = '[object]'\n }\n result.push(`${key}=${stringValue}`)\n }\n }\n\n return result.sort()\n}\n\n// Get user config as key=value pairs\nconst getUserConfigList = (): string[] => {\n try {\n const userConfig = load(\n 'config',\n (x: unknown, file: string): asserts x is RecordPairs => {\n if (\n x !== null &&\n typeof x === 'object' &&\n !Array.isArray(x)\n ) {\n return\n }\n throw new Error(`Invalid config in ${file}`)\n },\n 'user',\n )\n\n if (!userConfig) return /* c8 ignore next */ []\n\n return configToStringArray(userConfig)\n } catch (_err) {\n return []\n }\n}\n\n// Get project config as key=value pairs\nconst getProjectConfigList = (): string[] => {\n try {\n const projectConfig = load(\n 'config',\n (x: unknown, file: string): asserts x is RecordPairs => {\n if (\n x !== null &&\n typeof x === 'object' &&\n !Array.isArray(x)\n ) {\n return\n }\n throw new Error(`Invalid config in ${file}`)\n },\n 'project',\n )\n\n if (!projectConfig) return /* c8 ignore next */ []\n\n return configToStringArray(projectConfig)\n } catch (_err) {\n return []\n }\n}\n\n// Get the entire user config object\nconst getUserConfigObject = ():\n | Record<string, unknown>\n | undefined => {\n try {\n const userConfig = load(\n 'config',\n (x: unknown, file: string): asserts x is RecordPairs => {\n if (\n x !== null &&\n typeof x === 'object' &&\n !Array.isArray(x)\n ) {\n return\n }\n throw new Error(`Invalid config in ${file}`)\n },\n 'user',\n )\n\n if (!userConfig || typeof userConfig !== 'object')\n /* c8 ignore next */\n return\n\n return userConfig as Record<string, unknown>\n } catch (_err) {\n return\n }\n}\n\n// Get a specific value from user config\nconst getUserConfigValue = (key: string): unknown => {\n const userConfig = getUserConfigObject()\n if (!userConfig) return\n\n // Use dotProp.get like vlt pkg get does\n return dotProp.get(userConfig as Record<PropertyKey, unknown>, key)\n}\n\n// Get the entire project config object\nconst getProjectConfigObject = ():\n | Record<string, unknown>\n | undefined => {\n try {\n const projectConfig = load(\n 'config',\n (x: unknown, file: string): asserts x is RecordPairs => {\n if (\n x !== null &&\n typeof x === 'object' &&\n !Array.isArray(x)\n ) {\n return\n }\n throw new Error(`Invalid config in ${file}`)\n },\n 'project',\n )\n\n if (!projectConfig || typeof projectConfig !== 'object')\n /* c8 ignore next */\n return\n\n return projectConfig as Record<string, unknown>\n } catch (_err) {\n return\n }\n}\n\n// Get a specific value from project config\nconst getProjectConfigValue = (key: string): unknown => {\n const projectConfig = getProjectConfigObject()\n if (!projectConfig) return\n\n // Use dotProp.get like vlt pkg get does\n return dotProp.get(\n projectConfig as Record<PropertyKey, unknown>,\n key,\n )\n}\n\n// Helper function to get the effective config option for write operations\nconst getWriteConfigOption = (\n conf: LoadedConfig,\n): 'user' | 'project' => {\n const configOption = conf.get('config') as ConfigOption\n\n if (configOption === 'all') {\n // For write operations, 'all' defaults to 'project'\n return 'project'\n }\n\n return configOption\n}\n\n// Wrapper for set command that handles --config option appropriately\nconst configSet = async (conf: LoadedConfig) => {\n const effectiveConfig = getWriteConfigOption(conf)\n\n // Temporarily modify the config value for the set operation\n const originalGet = conf.get\n conf.get = ((key: string) => {\n if (key === 'config') {\n return effectiveConfig\n }\n return originalGet.call(conf, key as any)\n }) as typeof originalGet\n\n try {\n return await set(conf)\n } finally {\n // Restore the original get method\n conf.get = originalGet\n }\n}\n\n// Wrapper for delete command that handles --config option appropriately\nconst configDelete = async (conf: LoadedConfig) => {\n const effectiveConfig = getWriteConfigOption(conf)\n\n // Temporarily modify the config value for the delete operation\n const originalGet = conf.get\n conf.get = ((key: string) => {\n if (key === 'config') {\n return effectiveConfig\n }\n return originalGet.call(conf, key as any)\n }) as typeof originalGet\n\n try {\n return await del(conf)\n } finally {\n // Restore the original get method\n conf.get = originalGet\n }\n}\n\n// Wrapper for edit command that handles --config option appropriately\nconst configEdit = async (conf: LoadedConfig) => {\n const effectiveConfig = getWriteConfigOption(conf)\n\n // Temporarily modify the config value for the edit operation\n const originalGet = conf.get\n conf.get = ((key: string) => {\n if (key === 'config') {\n return effectiveConfig\n }\n return originalGet.call(conf, key as any)\n }) as typeof originalGet\n\n try {\n return await edit(conf)\n } finally {\n // Restore the original get method\n conf.get = originalGet\n }\n}\n\n// Get a serializable config object from LoadedConfig (without circular references)\nconst getSerializableConfig = (\n conf: LoadedConfig,\n): Record<string, unknown> => {\n // Use the list function which calls recordsToPairs to get a clean config object\n return list(conf) as Record<string, unknown>\n}\n\n// Location command that shows config file paths\nconst configLocation = (conf: LoadedConfig): string => {\n const configOption = conf.get('config') as ConfigOption\n\n // For location command, default to 'project' when 'all' is specified\n // since there's no single \"all\" file to show\n const effectiveConfig =\n configOption === 'all' ? 'project' : configOption\n\n // Get the config file path\n const configPath = find(effectiveConfig)\n\n return configPath\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/commands/docs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ1D,eAAO,MAAM,KAAK,EAAE,YA2BhB,CAAA;AAEJ,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,EAAE,CAAA;AAEH,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,qBAAqB,CAAA;AAEzB,eAAO,MAAM,KAAK;;;CAUuB,CAAA;AA0CzC,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,aAAa,CA4F5C,CAAA"}