pnpm 8.6.2 → 8.6.4

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 (418) hide show
  1. package/dist/node_modules/.modules.yaml +81 -24
  2. package/dist/node_modules/.pnpm/lock.yaml +235 -91
  3. package/dist/node_modules/@isaacs/cliui/LICENSE.txt +14 -0
  4. package/dist/node_modules/@isaacs/cliui/build/index.cjs +317 -0
  5. package/dist/node_modules/@isaacs/cliui/build/index.d.cts +43 -0
  6. package/dist/node_modules/@isaacs/cliui/build/lib/index.js +302 -0
  7. package/dist/node_modules/@isaacs/cliui/index.mjs +14 -0
  8. package/dist/node_modules/@isaacs/cliui/node_modules/string-width/index.js +54 -0
  9. package/dist/node_modules/@isaacs/cliui/node_modules/string-width/license +9 -0
  10. package/dist/node_modules/@isaacs/cliui/node_modules/string-width/package.json +59 -0
  11. package/dist/node_modules/@isaacs/cliui/package.json +86 -0
  12. package/dist/node_modules/@npmcli/fs/lib/cp/index.js +1 -1
  13. package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +2 -2
  14. package/dist/node_modules/@npmcli/fs/lib/index.js +11 -10
  15. package/dist/node_modules/@npmcli/fs/lib/move-file.js +78 -0
  16. package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +20 -0
  17. package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +4 -6
  18. package/dist/node_modules/@npmcli/fs/package.json +11 -9
  19. package/dist/node_modules/@pkgjs/parseargs/LICENSE +201 -0
  20. package/dist/node_modules/@pkgjs/parseargs/index.js +396 -0
  21. package/dist/node_modules/@pkgjs/parseargs/internal/errors.js +47 -0
  22. package/dist/node_modules/@pkgjs/parseargs/internal/primordials.js +393 -0
  23. package/dist/node_modules/@pkgjs/parseargs/internal/util.js +14 -0
  24. package/dist/node_modules/@pkgjs/parseargs/internal/validators.js +89 -0
  25. package/dist/node_modules/@pkgjs/parseargs/package.json +36 -0
  26. package/dist/node_modules/@pkgjs/parseargs/utils.js +198 -0
  27. package/dist/node_modules/ansi-regex/index.js +3 -5
  28. package/dist/node_modules/ansi-regex/license +1 -1
  29. package/dist/node_modules/ansi-regex/package.json +9 -6
  30. package/dist/node_modules/ansi-styles/index.js +223 -0
  31. package/dist/node_modules/ansi-styles/license +9 -0
  32. package/dist/node_modules/ansi-styles/package.json +54 -0
  33. package/dist/node_modules/cacache/lib/content/read.js +1 -76
  34. package/dist/node_modules/cacache/lib/content/rm.js +2 -4
  35. package/dist/node_modules/cacache/lib/content/write.js +40 -24
  36. package/dist/node_modules/cacache/lib/entry-index.js +25 -99
  37. package/dist/node_modules/cacache/lib/get.js +1 -56
  38. package/dist/node_modules/cacache/lib/index.js +0 -3
  39. package/dist/node_modules/cacache/lib/rm.js +5 -5
  40. package/dist/node_modules/cacache/lib/util/glob.js +7 -0
  41. package/dist/node_modules/cacache/lib/util/tmp.js +3 -10
  42. package/dist/node_modules/cacache/lib/verify.js +28 -28
  43. package/dist/node_modules/cacache/node_modules/glob/LICENSE +1 -1
  44. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/package.json +4 -0
  45. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts.map +1 -0
  46. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js +270 -0
  47. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js.map +1 -0
  48. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts.map +1 -0
  49. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js +234 -0
  50. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js.map +1 -0
  51. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +1 -0
  52. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js +27 -0
  53. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js.map +1 -0
  54. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts.map +1 -0
  55. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js +103 -0
  56. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js.map +1 -0
  57. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts.map +1 -0
  58. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js +68 -0
  59. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js.map +1 -0
  60. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts.map +1 -0
  61. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js +219 -0
  62. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js.map +1 -0
  63. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts.map +1 -0
  64. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js +309 -0
  65. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js.map +1 -0
  66. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts.map +1 -0
  67. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js +358 -0
  68. package/dist/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js.map +1 -0
  69. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts.map +1 -0
  70. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/glob.js +230 -0
  71. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/glob.js.map +1 -0
  72. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts.map +1 -0
  73. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js +23 -0
  74. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js.map +1 -0
  75. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts.map +1 -0
  76. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js +99 -0
  77. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js.map +1 -0
  78. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts.map +1 -0
  79. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/index.js +56 -0
  80. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/index.js.map +1 -0
  81. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/package.json +4 -0
  82. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts.map +1 -0
  83. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js +215 -0
  84. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js.map +1 -0
  85. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts.map +1 -0
  86. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/processor.js +302 -0
  87. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/processor.js.map +1 -0
  88. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts.map +1 -0
  89. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/walker.js +352 -0
  90. package/dist/node_modules/cacache/node_modules/glob/dist/mjs/walker.js.map +1 -0
  91. package/dist/node_modules/cacache/node_modules/glob/package.json +78 -35
  92. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map +1 -0
  93. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js +14 -0
  94. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map +1 -0
  95. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.d.ts.map +1 -0
  96. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js +589 -0
  97. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js.map +1 -0
  98. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map +1 -0
  99. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js +152 -0
  100. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js.map +1 -0
  101. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.d.ts.map +1 -0
  102. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js +22 -0
  103. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js.map +1 -0
  104. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/index.d.ts.map +1 -0
  105. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js +1011 -0
  106. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js.map +1 -0
  107. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/package.json +3 -0
  108. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.d.ts.map +1 -0
  109. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js +24 -0
  110. package/dist/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js.map +1 -0
  111. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map +1 -0
  112. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +10 -0
  113. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map +1 -0
  114. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.d.ts.map +1 -0
  115. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js +585 -0
  116. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js.map +1 -0
  117. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map +1 -0
  118. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js +148 -0
  119. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js.map +1 -0
  120. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.d.ts.map +1 -0
  121. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js +18 -0
  122. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js.map +1 -0
  123. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/index.d.ts.map +1 -0
  124. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js +995 -0
  125. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js.map +1 -0
  126. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/package.json +3 -0
  127. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.d.ts.map +1 -0
  128. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js +20 -0
  129. package/dist/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js.map +1 -0
  130. package/dist/node_modules/cacache/node_modules/minimatch/package.json +66 -15
  131. package/dist/node_modules/cacache/package.json +19 -21
  132. package/dist/node_modules/color-convert/LICENSE +21 -0
  133. package/dist/node_modules/color-convert/conversions.js +839 -0
  134. package/dist/node_modules/color-convert/index.js +81 -0
  135. package/dist/node_modules/color-convert/package.json +48 -0
  136. package/dist/node_modules/color-convert/route.js +97 -0
  137. package/dist/node_modules/color-name/LICENSE +8 -0
  138. package/dist/node_modules/color-name/index.js +152 -0
  139. package/dist/node_modules/color-name/package.json +28 -0
  140. package/dist/node_modules/cross-spawn/LICENSE +21 -0
  141. package/dist/node_modules/cross-spawn/index.js +39 -0
  142. package/dist/node_modules/cross-spawn/lib/enoent.js +59 -0
  143. package/dist/node_modules/cross-spawn/lib/parse.js +91 -0
  144. package/dist/node_modules/cross-spawn/lib/util/escape.js +45 -0
  145. package/dist/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  146. package/dist/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  147. package/dist/node_modules/cross-spawn/package.json +73 -0
  148. package/dist/node_modules/eastasianwidth/eastasianwidth.js +311 -0
  149. package/dist/node_modules/eastasianwidth/package.json +18 -0
  150. package/dist/node_modules/emoji-regex/RGI_Emoji.js +6 -0
  151. package/dist/node_modules/emoji-regex/es2015/RGI_Emoji.js +6 -0
  152. package/dist/node_modules/emoji-regex/es2015/index.js +1 -1
  153. package/dist/node_modules/emoji-regex/es2015/text.js +1 -1
  154. package/dist/node_modules/emoji-regex/index.js +1 -1
  155. package/dist/node_modules/emoji-regex/package.json +13 -11
  156. package/dist/node_modules/emoji-regex/text.js +1 -1
  157. package/dist/node_modules/exponential-backoff/LICENSE +202 -0
  158. package/dist/node_modules/exponential-backoff/dist/backoff.js +118 -0
  159. package/dist/node_modules/exponential-backoff/dist/backoff.js.map +1 -0
  160. package/dist/node_modules/exponential-backoff/dist/delay/always/always.delay.js +25 -0
  161. package/dist/node_modules/exponential-backoff/dist/delay/always/always.delay.js.map +1 -0
  162. package/dist/node_modules/exponential-backoff/dist/delay/delay.base.js +45 -0
  163. package/dist/node_modules/exponential-backoff/dist/delay/delay.base.js.map +1 -0
  164. package/dist/node_modules/exponential-backoff/dist/delay/delay.factory.js +17 -0
  165. package/dist/node_modules/exponential-backoff/dist/delay/delay.factory.js.map +1 -0
  166. package/dist/node_modules/exponential-backoff/dist/delay/delay.interface.js +3 -0
  167. package/dist/node_modules/exponential-backoff/dist/delay/delay.interface.js.map +1 -0
  168. package/dist/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js +82 -0
  169. package/dist/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js.map +1 -0
  170. package/dist/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js +8 -0
  171. package/dist/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js.map +1 -0
  172. package/dist/node_modules/exponential-backoff/dist/jitter/jitter.factory.js +15 -0
  173. package/dist/node_modules/exponential-backoff/dist/jitter/jitter.factory.js.map +1 -0
  174. package/dist/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js +7 -0
  175. package/dist/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js.map +1 -0
  176. package/dist/node_modules/exponential-backoff/dist/options.js +31 -0
  177. package/dist/node_modules/exponential-backoff/dist/options.js.map +1 -0
  178. package/dist/node_modules/exponential-backoff/package.json +61 -0
  179. package/dist/node_modules/{promise-inflight → foreground-child}/LICENSE +5 -4
  180. package/dist/node_modules/foreground-child/dist/cjs/all-signals.d.ts.map +1 -0
  181. package/dist/node_modules/foreground-child/dist/cjs/all-signals.js +58 -0
  182. package/dist/node_modules/foreground-child/dist/cjs/all-signals.js.map +1 -0
  183. package/dist/node_modules/foreground-child/dist/cjs/index.d.ts.map +1 -0
  184. package/dist/node_modules/foreground-child/dist/cjs/index.js +154 -0
  185. package/dist/node_modules/foreground-child/dist/cjs/index.js.map +1 -0
  186. package/dist/node_modules/foreground-child/dist/cjs/package.json +3 -0
  187. package/dist/node_modules/foreground-child/dist/cjs/watchdog.d.ts.map +1 -0
  188. package/dist/node_modules/foreground-child/dist/cjs/watchdog.js +43 -0
  189. package/dist/node_modules/foreground-child/dist/cjs/watchdog.js.map +1 -0
  190. package/dist/node_modules/foreground-child/dist/mjs/all-signals.d.ts.map +1 -0
  191. package/dist/node_modules/foreground-child/dist/mjs/all-signals.js +52 -0
  192. package/dist/node_modules/foreground-child/dist/mjs/all-signals.js.map +1 -0
  193. package/dist/node_modules/foreground-child/dist/mjs/index.d.ts.map +1 -0
  194. package/dist/node_modules/foreground-child/dist/mjs/index.js +146 -0
  195. package/dist/node_modules/foreground-child/dist/mjs/index.js.map +1 -0
  196. package/dist/node_modules/foreground-child/dist/mjs/package.json +3 -0
  197. package/dist/node_modules/foreground-child/dist/mjs/watchdog.d.ts.map +1 -0
  198. package/dist/node_modules/foreground-child/dist/mjs/watchdog.js +39 -0
  199. package/dist/node_modules/foreground-child/dist/mjs/watchdog.js.map +1 -0
  200. package/dist/node_modules/foreground-child/package.json +83 -0
  201. package/dist/node_modules/fs-minipass/lib/index.js +443 -0
  202. package/dist/node_modules/fs-minipass/package.json +28 -13
  203. package/dist/node_modules/gauge/node_modules/ansi-regex/index.js +10 -0
  204. package/dist/node_modules/gauge/node_modules/ansi-regex/license +9 -0
  205. package/dist/node_modules/gauge/node_modules/ansi-regex/package.json +55 -0
  206. package/dist/node_modules/gauge/node_modules/signal-exit/LICENSE.txt +16 -0
  207. package/dist/node_modules/gauge/node_modules/signal-exit/package.json +38 -0
  208. package/dist/node_modules/gauge/node_modules/strip-ansi/index.js +4 -0
  209. package/dist/node_modules/gauge/node_modules/strip-ansi/license +9 -0
  210. package/dist/node_modules/gauge/node_modules/strip-ansi/package.json +54 -0
  211. package/dist/node_modules/jackspeak/dist/cjs/index.d.ts.map +1 -0
  212. package/dist/node_modules/jackspeak/dist/cjs/index.js +723 -0
  213. package/dist/node_modules/jackspeak/dist/cjs/index.js.map +1 -0
  214. package/dist/node_modules/jackspeak/dist/cjs/package.json +3 -0
  215. package/dist/node_modules/jackspeak/dist/cjs/parse-args-cjs.d.ts.map +1 -0
  216. package/dist/node_modules/jackspeak/dist/cjs/parse-args-cjs.js.map +1 -0
  217. package/dist/node_modules/jackspeak/dist/cjs/parse-args.js +42 -0
  218. package/dist/node_modules/jackspeak/dist/mjs/index.d.ts.map +1 -0
  219. package/dist/node_modules/jackspeak/dist/mjs/index.js +713 -0
  220. package/dist/node_modules/jackspeak/dist/mjs/index.js.map +1 -0
  221. package/dist/node_modules/jackspeak/dist/mjs/package.json +3 -0
  222. package/dist/node_modules/jackspeak/dist/mjs/parse-args-esm.d.ts.map +1 -0
  223. package/dist/node_modules/jackspeak/dist/mjs/parse-args-esm.js.map +1 -0
  224. package/dist/node_modules/jackspeak/dist/mjs/parse-args.js +19 -0
  225. package/dist/node_modules/jackspeak/package.json +98 -0
  226. package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +26 -1
  227. package/dist/node_modules/make-fetch-happen/lib/options.js +2 -0
  228. package/dist/node_modules/make-fetch-happen/lib/remote.js +1 -1
  229. package/dist/node_modules/make-fetch-happen/package.json +16 -17
  230. package/dist/node_modules/minipass/LICENSE +1 -1
  231. package/dist/node_modules/minipass/index.js +299 -246
  232. package/dist/node_modules/minipass/package.json +27 -7
  233. package/dist/node_modules/{tar → minipass-collect}/node_modules/minipass/LICENSE +1 -1
  234. package/dist/node_modules/minipass-collect/node_modules/minipass/index.js +649 -0
  235. package/dist/node_modules/{tar → minipass-collect}/node_modules/minipass/package.json +7 -27
  236. package/dist/node_modules/minipass-fetch/lib/blob.js +1 -1
  237. package/dist/node_modules/minipass-fetch/lib/body.js +1 -1
  238. package/dist/node_modules/minipass-fetch/lib/index.js +15 -3
  239. package/dist/node_modules/minipass-fetch/lib/request.js +2 -1
  240. package/dist/node_modules/minipass-fetch/package.json +13 -11
  241. package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +15 -0
  242. package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +649 -0
  243. package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +56 -0
  244. package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +15 -0
  245. package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +649 -0
  246. package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +56 -0
  247. package/dist/node_modules/minipass-sized/node_modules/minipass/LICENSE +15 -0
  248. package/dist/node_modules/minipass-sized/node_modules/minipass/index.js +649 -0
  249. package/dist/node_modules/minipass-sized/node_modules/minipass/package.json +56 -0
  250. package/dist/node_modules/minizlib/node_modules/minipass/LICENSE +15 -0
  251. package/dist/node_modules/minizlib/node_modules/minipass/index.js +649 -0
  252. package/dist/node_modules/minizlib/node_modules/minipass/package.json +56 -0
  253. package/dist/node_modules/node-gyp/.github/workflows/tests.yml +9 -6
  254. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +1 -1
  255. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +1 -1
  256. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +13 -2
  257. package/dist/node_modules/node-gyp/lib/install.js +174 -92
  258. package/dist/node_modules/node-gyp/package.json +7 -6
  259. package/dist/node_modules/node-gyp/update-gyp.py +1 -1
  260. package/dist/node_modules/path-key/index.js +16 -0
  261. package/dist/node_modules/path-key/license +9 -0
  262. package/dist/node_modules/path-key/package.json +39 -0
  263. package/dist/node_modules/path-scurry/dist/cjs/index.d.ts.map +1 -0
  264. package/dist/node_modules/path-scurry/dist/cjs/index.js +1995 -0
  265. package/dist/node_modules/path-scurry/dist/cjs/index.js.map +1 -0
  266. package/dist/node_modules/path-scurry/dist/cjs/package.json +3 -0
  267. package/dist/node_modules/path-scurry/dist/mjs/index.d.ts.map +1 -0
  268. package/dist/node_modules/path-scurry/dist/mjs/index.js +1960 -0
  269. package/dist/node_modules/path-scurry/dist/mjs/index.js.map +1 -0
  270. package/dist/node_modules/path-scurry/dist/mjs/package.json +3 -0
  271. package/dist/node_modules/path-scurry/node_modules/lru-cache/LICENSE +15 -0
  272. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/index.d.ts.map +1 -0
  273. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/index.js +1395 -0
  274. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/index.js.map +1 -0
  275. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/index.min.js +2 -0
  276. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/index.min.js.map +7 -0
  277. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/cjs/package.json +3 -0
  278. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/index.d.ts.map +1 -0
  279. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/index.js +1391 -0
  280. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/index.js.map +1 -0
  281. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/index.min.js +2 -0
  282. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/index.min.js.map +7 -0
  283. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/mjs/package.json +3 -0
  284. package/dist/node_modules/path-scurry/node_modules/lru-cache/package.json +108 -0
  285. package/dist/node_modules/path-scurry/package.json +87 -0
  286. package/dist/node_modules/semver/classes/comparator.js +2 -1
  287. package/dist/node_modules/semver/classes/range.js +40 -27
  288. package/dist/node_modules/semver/classes/semver.js +5 -3
  289. package/dist/node_modules/semver/functions/coerce.js +1 -1
  290. package/dist/node_modules/semver/functions/diff.js +31 -20
  291. package/dist/node_modules/semver/internal/constants.js +5 -0
  292. package/dist/node_modules/semver/internal/re.js +30 -4
  293. package/dist/node_modules/semver/package.json +4 -4
  294. package/dist/node_modules/shebang-command/index.js +19 -0
  295. package/dist/node_modules/shebang-command/license +9 -0
  296. package/dist/node_modules/shebang-command/package.json +34 -0
  297. package/dist/node_modules/shebang-regex/index.js +2 -0
  298. package/dist/node_modules/shebang-regex/license +9 -0
  299. package/dist/node_modules/shebang-regex/package.json +35 -0
  300. package/dist/node_modules/signal-exit/LICENSE.txt +1 -1
  301. package/dist/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  302. package/dist/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  303. package/dist/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  304. package/dist/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  305. package/dist/node_modules/signal-exit/dist/cjs/index.js +272 -0
  306. package/dist/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  307. package/dist/node_modules/signal-exit/dist/cjs/package.json +3 -0
  308. package/dist/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  309. package/dist/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  310. package/dist/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  311. package/dist/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  312. package/dist/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  313. package/dist/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  314. package/dist/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  315. package/dist/node_modules/signal-exit/dist/mjs/index.js +268 -0
  316. package/dist/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  317. package/dist/node_modules/signal-exit/dist/mjs/package.json +3 -0
  318. package/dist/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  319. package/dist/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  320. package/dist/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  321. package/dist/node_modules/signal-exit/package.json +87 -19
  322. package/dist/node_modules/ssri/lib/index.js +157 -101
  323. package/dist/node_modules/ssri/package.json +12 -10
  324. package/dist/node_modules/string-width/node_modules/ansi-regex/index.js +10 -0
  325. package/dist/node_modules/string-width/node_modules/ansi-regex/license +9 -0
  326. package/dist/node_modules/string-width/node_modules/ansi-regex/package.json +55 -0
  327. package/dist/node_modules/string-width/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  328. package/dist/node_modules/string-width/node_modules/emoji-regex/es2015/index.js +6 -0
  329. package/dist/node_modules/string-width/node_modules/emoji-regex/es2015/text.js +6 -0
  330. package/dist/node_modules/string-width/node_modules/emoji-regex/index.js +6 -0
  331. package/dist/node_modules/string-width/node_modules/emoji-regex/package.json +50 -0
  332. package/dist/node_modules/string-width/node_modules/emoji-regex/text.js +6 -0
  333. package/dist/node_modules/string-width/node_modules/strip-ansi/index.js +4 -0
  334. package/dist/node_modules/string-width/node_modules/strip-ansi/license +9 -0
  335. package/dist/node_modules/string-width/node_modules/strip-ansi/package.json +54 -0
  336. package/dist/node_modules/string-width-cjs/index.js +47 -0
  337. package/dist/node_modules/string-width-cjs/license +9 -0
  338. package/dist/node_modules/string-width-cjs/node_modules/ansi-regex/index.js +10 -0
  339. package/dist/node_modules/string-width-cjs/node_modules/ansi-regex/license +9 -0
  340. package/dist/node_modules/string-width-cjs/node_modules/ansi-regex/package.json +55 -0
  341. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  342. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/es2015/index.js +6 -0
  343. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/es2015/text.js +6 -0
  344. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/index.js +6 -0
  345. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/package.json +50 -0
  346. package/dist/node_modules/string-width-cjs/node_modules/emoji-regex/text.js +6 -0
  347. package/dist/node_modules/string-width-cjs/node_modules/strip-ansi/index.js +4 -0
  348. package/dist/node_modules/string-width-cjs/node_modules/strip-ansi/license +9 -0
  349. package/dist/node_modules/string-width-cjs/node_modules/strip-ansi/package.json +54 -0
  350. package/dist/node_modules/string-width-cjs/package.json +56 -0
  351. package/dist/node_modules/strip-ansi/index.js +13 -3
  352. package/dist/node_modules/strip-ansi/license +1 -1
  353. package/dist/node_modules/strip-ansi/package.json +10 -7
  354. package/dist/node_modules/strip-ansi-cjs/index.js +4 -0
  355. package/dist/node_modules/strip-ansi-cjs/license +9 -0
  356. package/dist/node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.js +10 -0
  357. package/dist/node_modules/strip-ansi-cjs/node_modules/ansi-regex/license +9 -0
  358. package/dist/node_modules/strip-ansi-cjs/node_modules/ansi-regex/package.json +55 -0
  359. package/dist/node_modules/strip-ansi-cjs/package.json +54 -0
  360. package/dist/node_modules/{infer-owner → tar/node_modules/fs-minipass}/LICENSE +1 -1
  361. package/dist/node_modules/tar/node_modules/fs-minipass/node_modules/minipass/LICENSE +15 -0
  362. package/dist/node_modules/tar/node_modules/fs-minipass/node_modules/minipass/index.js +649 -0
  363. package/dist/node_modules/tar/node_modules/fs-minipass/node_modules/minipass/package.json +56 -0
  364. package/dist/node_modules/tar/node_modules/fs-minipass/package.json +39 -0
  365. package/dist/node_modules/unique-filename/package.json +12 -9
  366. package/dist/node_modules/unique-slug/package.json +10 -7
  367. package/dist/node_modules/wrap-ansi/index.js +214 -0
  368. package/dist/node_modules/wrap-ansi/license +9 -0
  369. package/dist/node_modules/wrap-ansi/node_modules/string-width/index.js +54 -0
  370. package/dist/node_modules/wrap-ansi/node_modules/string-width/license +9 -0
  371. package/dist/node_modules/wrap-ansi/node_modules/string-width/package.json +59 -0
  372. package/dist/node_modules/wrap-ansi/package.json +69 -0
  373. package/dist/node_modules/wrap-ansi-cjs/index.js +216 -0
  374. package/dist/node_modules/wrap-ansi-cjs/license +9 -0
  375. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/index.js +10 -0
  376. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/license +9 -0
  377. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/package.json +55 -0
  378. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.js +163 -0
  379. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/license +9 -0
  380. package/dist/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/package.json +56 -0
  381. package/dist/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.js +4 -0
  382. package/dist/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/license +9 -0
  383. package/dist/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/package.json +54 -0
  384. package/dist/node_modules/wrap-ansi-cjs/package.json +62 -0
  385. package/dist/pnpm.cjs +30877 -17543
  386. package/package.json +3 -3
  387. package/dist/node_modules/@gar/promisify/index.js +0 -36
  388. package/dist/node_modules/@gar/promisify/package.json +0 -32
  389. package/dist/node_modules/@npmcli/fs/lib/common/owner-sync.js +0 -96
  390. package/dist/node_modules/@npmcli/fs/lib/common/owner.js +0 -96
  391. package/dist/node_modules/@npmcli/fs/lib/copy-file.js +0 -16
  392. package/dist/node_modules/@npmcli/fs/lib/fs.js +0 -14
  393. package/dist/node_modules/@npmcli/fs/lib/mkdir.js +0 -19
  394. package/dist/node_modules/@npmcli/fs/lib/mkdtemp.js +0 -23
  395. package/dist/node_modules/@npmcli/fs/lib/rm/index.js +0 -22
  396. package/dist/node_modules/@npmcli/fs/lib/rm/polyfill.js +0 -239
  397. package/dist/node_modules/@npmcli/fs/lib/with-owner-sync.js +0 -21
  398. package/dist/node_modules/@npmcli/fs/lib/with-owner.js +0 -21
  399. package/dist/node_modules/@npmcli/fs/lib/write-file.js +0 -14
  400. package/dist/node_modules/@npmcli/move-file/lib/index.js +0 -185
  401. package/dist/node_modules/@npmcli/move-file/package.json +0 -47
  402. package/dist/node_modules/cacache/lib/util/fix-owner.js +0 -145
  403. package/dist/node_modules/cacache/lib/util/move-file.js +0 -56
  404. package/dist/node_modules/cacache/node_modules/glob/common.js +0 -244
  405. package/dist/node_modules/cacache/node_modules/glob/glob.js +0 -790
  406. package/dist/node_modules/cacache/node_modules/glob/sync.js +0 -486
  407. package/dist/node_modules/cacache/node_modules/minimatch/lib/path.js +0 -4
  408. package/dist/node_modules/cacache/node_modules/minimatch/minimatch.js +0 -944
  409. package/dist/node_modules/infer-owner/index.js +0 -71
  410. package/dist/node_modules/infer-owner/package.json +0 -26
  411. package/dist/node_modules/promise-inflight/inflight.js +0 -36
  412. package/dist/node_modules/promise-inflight/package.json +0 -24
  413. package/dist/node_modules/tar/node_modules/minipass/index.js +0 -702
  414. /package/dist/node_modules/@npmcli/fs/lib/{errors.js → cp/errors.js} +0 -0
  415. /package/dist/node_modules/{signal-exit → gauge/node_modules/signal-exit}/index.js +0 -0
  416. /package/dist/node_modules/{signal-exit → gauge/node_modules/signal-exit}/signals.js +0 -0
  417. /package/dist/node_modules/{tar/node_modules/minipass → minipass}/index.mjs +0 -0
  418. /package/dist/node_modules/{fs-minipass → tar/node_modules/fs-minipass}/index.js +0 -0
@@ -0,0 +1,723 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.jack = exports.Jack = exports.isConfigOption = exports.isConfigType = void 0;
7
+ const node_util_1 = require("node:util");
8
+ const parse_args_js_1 = require("./parse-args.js");
9
+ // it's a tiny API, just cast it inline, it's fine
10
+ //@ts-ignore
11
+ const cliui_1 = __importDefault(require("@isaacs/cliui"));
12
+ const node_path_1 = require("node:path");
13
+ const width = Math.min((process && process.stdout && process.stdout.columns) || 80, 80);
14
+ // indentation spaces from heading level
15
+ const indent = (n) => (n - 1) * 2;
16
+ const toEnvKey = (pref, key) => {
17
+ return [pref, key.replace(/[^a-zA-Z0-9]+/g, ' ')]
18
+ .join(' ')
19
+ .trim()
20
+ .toUpperCase()
21
+ .replace(/ /g, '_');
22
+ };
23
+ const toEnvVal = (value, delim = '\n') => {
24
+ const str = typeof value === 'string'
25
+ ? value
26
+ : typeof value === 'boolean'
27
+ ? value
28
+ ? '1'
29
+ : '0'
30
+ : typeof value === 'number'
31
+ ? String(value)
32
+ : Array.isArray(value)
33
+ ? value
34
+ .map((v) => toEnvVal(v))
35
+ .join(delim)
36
+ : /* c8 ignore start */
37
+ undefined;
38
+ if (typeof str !== 'string') {
39
+ throw new Error(`could not serialize value to environment: ${JSON.stringify(value)}`);
40
+ }
41
+ /* c8 ignore stop */
42
+ return str;
43
+ };
44
+ const fromEnvVal = (env, type, multiple, delim = '\n') => (multiple
45
+ ? env.split(delim).map(v => fromEnvVal(v, type, false))
46
+ : type === 'string'
47
+ ? env
48
+ : type === 'boolean'
49
+ ? env === '1'
50
+ : +env.trim());
51
+ const isConfigType = (t) => typeof t === 'string' &&
52
+ (t === 'string' || t === 'number' || t === 'boolean');
53
+ exports.isConfigType = isConfigType;
54
+ const undefOrType = (v, t) => v === undefined || typeof v === t;
55
+ // print the value type, for error message reporting
56
+ const valueType = (v) => typeof v === 'string'
57
+ ? 'string'
58
+ : typeof v === 'boolean'
59
+ ? 'boolean'
60
+ : typeof v === 'number'
61
+ ? 'number'
62
+ : Array.isArray(v)
63
+ ? joinTypes([...new Set(v.map(v => valueType(v)))]) + '[]'
64
+ : `${v.type}${v.multiple ? '[]' : ''}`;
65
+ const joinTypes = (types) => types.length === 1 ? types[0] : `(${types.join('|')})`;
66
+ const isValidValue = (v, type, multi) => {
67
+ if (multi) {
68
+ if (!Array.isArray(v))
69
+ return false;
70
+ return !v.some((v) => !isValidValue(v, type, false));
71
+ }
72
+ if (Array.isArray(v))
73
+ return false;
74
+ return typeof v === type;
75
+ };
76
+ const isConfigOption = (o, type, multi) => !!o &&
77
+ typeof o === 'object' &&
78
+ (0, exports.isConfigType)(o.type) &&
79
+ o.type === type &&
80
+ undefOrType(o.short, 'string') &&
81
+ undefOrType(o.description, 'string') &&
82
+ undefOrType(o.hint, 'string') &&
83
+ undefOrType(o.validate, 'function') &&
84
+ (o.default === undefined || isValidValue(o.default, type, multi)) &&
85
+ !!o.multiple === multi;
86
+ exports.isConfigOption = isConfigOption;
87
+ function num(o = {}) {
88
+ const { default: def, validate: val, ...rest } = o;
89
+ if (def !== undefined && !isValidValue(def, 'number', false)) {
90
+ throw new TypeError('invalid default value');
91
+ }
92
+ const validate = val
93
+ ? val
94
+ : undefined;
95
+ return {
96
+ ...rest,
97
+ default: def,
98
+ validate,
99
+ type: 'number',
100
+ multiple: false,
101
+ };
102
+ }
103
+ function numList(o = {}) {
104
+ const { default: def, validate: val, ...rest } = o;
105
+ if (def !== undefined && !isValidValue(def, 'number', true)) {
106
+ throw new TypeError('invalid default value');
107
+ }
108
+ const validate = val
109
+ ? val
110
+ : undefined;
111
+ return {
112
+ ...rest,
113
+ default: def,
114
+ validate,
115
+ type: 'number',
116
+ multiple: true,
117
+ };
118
+ }
119
+ function opt(o = {}) {
120
+ const { default: def, validate: val, ...rest } = o;
121
+ if (def !== undefined && !isValidValue(def, 'string', false)) {
122
+ throw new TypeError('invalid default value');
123
+ }
124
+ const validate = val
125
+ ? val
126
+ : undefined;
127
+ return {
128
+ ...rest,
129
+ default: def,
130
+ validate,
131
+ type: 'string',
132
+ multiple: false,
133
+ };
134
+ }
135
+ function optList(o = {}) {
136
+ const { default: def, validate: val, ...rest } = o;
137
+ if (def !== undefined && !isValidValue(def, 'string', true)) {
138
+ throw new TypeError('invalid default value');
139
+ }
140
+ const validate = val
141
+ ? val
142
+ : undefined;
143
+ return {
144
+ ...rest,
145
+ default: def,
146
+ validate,
147
+ type: 'string',
148
+ multiple: true,
149
+ };
150
+ }
151
+ function flag(o = {}) {
152
+ const { hint, default: def, validate: val, ...rest } = o;
153
+ if (def !== undefined && !isValidValue(def, 'boolean', false)) {
154
+ throw new TypeError('invalid default value');
155
+ }
156
+ const validate = val
157
+ ? val
158
+ : undefined;
159
+ if (hint !== undefined) {
160
+ throw new TypeError('cannot provide hint for flag');
161
+ }
162
+ return {
163
+ ...rest,
164
+ default: def,
165
+ validate,
166
+ type: 'boolean',
167
+ multiple: false,
168
+ };
169
+ }
170
+ function flagList(o = {}) {
171
+ const { hint, default: def, validate: val, ...rest } = o;
172
+ if (def !== undefined && !isValidValue(def, 'boolean', true)) {
173
+ throw new TypeError('invalid default value');
174
+ }
175
+ const validate = val
176
+ ? val
177
+ : undefined;
178
+ if (hint !== undefined) {
179
+ throw new TypeError('cannot provide hint for flag list');
180
+ }
181
+ return {
182
+ ...rest,
183
+ default: def,
184
+ validate,
185
+ type: 'boolean',
186
+ multiple: true,
187
+ };
188
+ }
189
+ const toParseArgsOptionsConfig = (options) => {
190
+ const c = {};
191
+ for (const longOption in options) {
192
+ const config = options[longOption];
193
+ if ((0, exports.isConfigOption)(config, 'number', true)) {
194
+ c[longOption] = {
195
+ type: 'string',
196
+ multiple: true,
197
+ default: config.default?.map(c => String(c)),
198
+ };
199
+ }
200
+ else if ((0, exports.isConfigOption)(config, 'number', false)) {
201
+ c[longOption] = {
202
+ type: 'string',
203
+ multiple: false,
204
+ default: config.default === undefined
205
+ ? undefined
206
+ : String(config.default),
207
+ };
208
+ }
209
+ else {
210
+ const conf = config;
211
+ c[longOption] = {
212
+ type: conf.type,
213
+ multiple: conf.multiple,
214
+ default: conf.default,
215
+ };
216
+ }
217
+ if (typeof config.short === 'string') {
218
+ c[longOption].short = config.short;
219
+ }
220
+ if (config.type === 'boolean' &&
221
+ !longOption.startsWith('no-') &&
222
+ !options[`no-${longOption}`]) {
223
+ c[`no-${longOption}`] = {
224
+ type: 'boolean',
225
+ multiple: config.multiple,
226
+ };
227
+ }
228
+ }
229
+ return c;
230
+ };
231
+ const isHeading = (r) => r.type === 'heading';
232
+ const isDescription = (r) => r.type === 'description';
233
+ /**
234
+ * Class returned by the {@link jack} function and all configuration
235
+ * definition methods. This is what gets chained together.
236
+ */
237
+ class Jack {
238
+ #configSet;
239
+ #shorts;
240
+ #options;
241
+ #fields = [];
242
+ #env;
243
+ #envPrefix;
244
+ #allowPositionals;
245
+ #usage;
246
+ constructor(options = {}) {
247
+ this.#options = options;
248
+ this.#allowPositionals = options.allowPositionals !== false;
249
+ this.#env =
250
+ this.#options.env === undefined ? process.env : this.#options.env;
251
+ this.#envPrefix = options.envPrefix;
252
+ // We need to fib a little, because it's always the same object, but it
253
+ // starts out as having an empty config set. Then each method that adds
254
+ // fields returns `this as Jack<C & { ...newConfigs }>`
255
+ this.#configSet = Object.create(null);
256
+ this.#shorts = Object.create(null);
257
+ }
258
+ /**
259
+ * Set the default value (which will still be overridden by env or cli)
260
+ * as if from a parsed config file. The optional `source` param, if
261
+ * provided, will be included in error messages if a value is invalid or
262
+ * unknown.
263
+ */
264
+ setConfigValues(values, source = '') {
265
+ try {
266
+ this.validate(values);
267
+ }
268
+ catch (er) {
269
+ throw Object.assign(er, source ? { source } : {});
270
+ }
271
+ for (const [field, value] of Object.entries(values)) {
272
+ const my = this.#configSet[field];
273
+ my.default = value;
274
+ }
275
+ return this;
276
+ }
277
+ /**
278
+ * Parse a string of arguments, and return the resulting
279
+ * `{ values, positionals }` object.
280
+ *
281
+ * If an {@link JackOptions#envPrefix} is set, then it will read default
282
+ * values from the environment, and write the resulting values back
283
+ * to the environment as well.
284
+ *
285
+ * Environment values always take precedence over any other value, except
286
+ * an explicit CLI setting.
287
+ */
288
+ parse(args = process.argv) {
289
+ if (args === process.argv) {
290
+ args = args.slice(process._eval !== undefined ? 1 : 2);
291
+ }
292
+ if (this.#envPrefix) {
293
+ for (const [field, my] of Object.entries(this.#configSet)) {
294
+ const ek = toEnvKey(this.#envPrefix, field);
295
+ const env = this.#env[ek];
296
+ if (env !== undefined) {
297
+ my.default = fromEnvVal(env, my.type, !!my.multiple, my.delim);
298
+ }
299
+ }
300
+ }
301
+ const options = toParseArgsOptionsConfig(this.#configSet);
302
+ const result = (0, parse_args_js_1.parseArgs)({
303
+ args,
304
+ options,
305
+ // always strict, but using our own logic
306
+ strict: false,
307
+ allowPositionals: this.#allowPositionals,
308
+ tokens: true,
309
+ });
310
+ const p = {
311
+ values: {},
312
+ positionals: [],
313
+ };
314
+ for (const token of result.tokens) {
315
+ if (token.kind === 'positional') {
316
+ p.positionals.push(token.value);
317
+ if (this.#options.stopAtPositional) {
318
+ p.positionals.push(...args.slice(token.index + 1));
319
+ return p;
320
+ }
321
+ }
322
+ else if (token.kind === 'option') {
323
+ let value = undefined;
324
+ if (token.name.startsWith('no-')) {
325
+ const my = this.#configSet[token.name];
326
+ const pname = token.name.substring('no-'.length);
327
+ const pos = this.#configSet[pname];
328
+ if (pos &&
329
+ pos.type === 'boolean' &&
330
+ (!my ||
331
+ (my.type === 'boolean' && !!my.multiple === !!pos.multiple))) {
332
+ value = false;
333
+ token.name = pname;
334
+ }
335
+ }
336
+ const my = this.#configSet[token.name];
337
+ if (!my) {
338
+ throw new Error(`Unknown option '${token.rawName}'. ` +
339
+ `To specify a positional argument starting with a '-', ` +
340
+ `place it at the end of the command after '--', as in ` +
341
+ `'-- ${token.rawName}'`);
342
+ }
343
+ if (value === undefined) {
344
+ if (token.value === undefined) {
345
+ if (my.type !== 'boolean') {
346
+ throw new Error(`No value provided for ${token.rawName}, expected ${my.type}`);
347
+ }
348
+ value = true;
349
+ }
350
+ else {
351
+ if (my.type === 'boolean') {
352
+ throw new Error(`Flag ${token.rawName} does not take a value, received '${token.value}'`);
353
+ }
354
+ if (my.type === 'string') {
355
+ value = token.value;
356
+ }
357
+ else {
358
+ value = +token.value;
359
+ if (value !== value) {
360
+ throw new Error(`Invalid value '${token.value}' provided for ` +
361
+ `'${token.rawName}' option, expected number`);
362
+ }
363
+ }
364
+ }
365
+ }
366
+ if (my.multiple) {
367
+ const pv = p.values;
368
+ pv[token.name] = pv[token.name] ?? [];
369
+ pv[token.name].push(value);
370
+ }
371
+ else {
372
+ const pv = p.values;
373
+ pv[token.name] = value;
374
+ }
375
+ }
376
+ }
377
+ for (const [field, c] of Object.entries(this.#configSet)) {
378
+ if (c.default !== undefined && !(field in p.values)) {
379
+ //@ts-ignore
380
+ p.values[field] = c.default;
381
+ }
382
+ }
383
+ for (const [field, value] of Object.entries(p.values)) {
384
+ const valid = this.#configSet[field].validate;
385
+ if (valid && !valid(value)) {
386
+ throw new Error(`Invalid value provided for --${field}: ${JSON.stringify(value)}`);
387
+ }
388
+ }
389
+ this.#writeEnv(p);
390
+ return p;
391
+ }
392
+ /**
393
+ * Validate that any arbitrary object is a valid configuration `values`
394
+ * object. Useful when loading config files or other sources.
395
+ */
396
+ validate(o) {
397
+ if (!o || typeof o !== 'object') {
398
+ throw new Error('Invalid config: not an object');
399
+ }
400
+ for (const field in o) {
401
+ const config = this.#configSet[field];
402
+ if (!config) {
403
+ throw new Error(`Unknown config option: ${field}`);
404
+ }
405
+ if (!isValidValue(o[field], config.type, !!config.multiple)) {
406
+ throw Object.assign(new Error(`Invalid value ${valueType(o[field])} for ${field}, expected ${valueType(config)}`), {
407
+ field,
408
+ value: o[field],
409
+ });
410
+ }
411
+ if (config.validate && !config.validate(o[field])) {
412
+ throw new Error(`Invalid config value for ${field}: ${o[field]}`);
413
+ }
414
+ }
415
+ }
416
+ #writeEnv(p) {
417
+ if (!this.#env || !this.#envPrefix)
418
+ return;
419
+ for (const [field, value] of Object.entries(p.values)) {
420
+ const my = this.#configSet[field];
421
+ this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(value, my.delim);
422
+ }
423
+ }
424
+ /**
425
+ * Add a heading to the usage output banner
426
+ */
427
+ heading(text, level) {
428
+ if (level === undefined) {
429
+ level = this.#fields.some(r => isHeading(r)) ? 2 : 1;
430
+ }
431
+ this.#fields.push({ type: 'heading', text, level });
432
+ return this;
433
+ }
434
+ /**
435
+ * Add a long-form description to the usage output at this position.
436
+ */
437
+ description(text, { pre } = {}) {
438
+ this.#fields.push({ type: 'description', text, pre });
439
+ return this;
440
+ }
441
+ /**
442
+ * Add one or more number fields.
443
+ */
444
+ num(fields) {
445
+ return this.#addFields(fields, num);
446
+ }
447
+ /**
448
+ * Add one or more multiple number fields.
449
+ */
450
+ numList(fields) {
451
+ return this.#addFields(fields, numList);
452
+ }
453
+ /**
454
+ * Add one or more string option fields.
455
+ */
456
+ opt(fields) {
457
+ return this.#addFields(fields, opt);
458
+ }
459
+ /**
460
+ * Add one or more multiple string option fields.
461
+ */
462
+ optList(fields) {
463
+ return this.#addFields(fields, optList);
464
+ }
465
+ /**
466
+ * Add one or more flag fields.
467
+ */
468
+ flag(fields) {
469
+ return this.#addFields(fields, flag);
470
+ }
471
+ /**
472
+ * Add one or more multiple flag fields.
473
+ */
474
+ flagList(fields) {
475
+ return this.#addFields(fields, flagList);
476
+ }
477
+ /**
478
+ * Generic field definition method. Similar to flag/flagList/number/etc,
479
+ * but you must specify the `type` (and optionally `multiple` and `delim`)
480
+ * fields on each one, or Jack won't know how to define them.
481
+ */
482
+ addFields(fields) {
483
+ const next = this;
484
+ for (const [name, field] of Object.entries(fields)) {
485
+ this.#validateName(name, field);
486
+ next.#fields.push({
487
+ type: 'config',
488
+ name,
489
+ value: field,
490
+ });
491
+ }
492
+ Object.assign(next.#configSet, fields);
493
+ return next;
494
+ }
495
+ #addFields(fields, fn) {
496
+ const next = this;
497
+ Object.assign(next.#configSet, Object.fromEntries(Object.entries(fields).map(([name, field]) => {
498
+ this.#validateName(name, field);
499
+ const option = fn(field);
500
+ next.#fields.push({
501
+ type: 'config',
502
+ name,
503
+ value: option,
504
+ });
505
+ return [name, option];
506
+ })));
507
+ return next;
508
+ }
509
+ #validateName(name, field) {
510
+ if (!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(name)) {
511
+ throw new TypeError(`Invalid option name: ${name}, ` +
512
+ `must be '-' delimited ASCII alphanumeric`);
513
+ }
514
+ if (this.#configSet[name]) {
515
+ throw new TypeError(`Cannot redefine option ${field}`);
516
+ }
517
+ if (this.#shorts[name]) {
518
+ throw new TypeError(`Cannot redefine option ${name}, already ` +
519
+ `in use for ${this.#shorts[name]}`);
520
+ }
521
+ if (field.short) {
522
+ if (!/^[a-zA-Z0-9]$/.test(field.short)) {
523
+ throw new TypeError(`Invalid ${name} short option: ${field.short}, ` +
524
+ 'must be 1 ASCII alphanumeric character');
525
+ }
526
+ if (this.#shorts[field.short]) {
527
+ throw new TypeError(`Invalid ${name} short option: ${field.short}, ` +
528
+ `already in use for ${this.#shorts[field.short]}`);
529
+ }
530
+ this.#shorts[field.short] = name;
531
+ this.#shorts[name] = name;
532
+ }
533
+ }
534
+ /**
535
+ * Return the usage banner for the given configuration
536
+ */
537
+ usage() {
538
+ if (this.#usage)
539
+ return this.#usage;
540
+ let headingLevel = 1;
541
+ const ui = (0, cliui_1.default)({ width });
542
+ const first = this.#fields[0];
543
+ let start = first?.type === 'heading' ? 1 : 0;
544
+ if (first?.type === 'heading') {
545
+ ui.div({
546
+ padding: [0, 0, 0, 0],
547
+ text: normalize(first.text),
548
+ });
549
+ }
550
+ ui.div({ padding: [0, 0, 0, 0], text: 'Usage:' });
551
+ if (this.#options.usage) {
552
+ ui.div({
553
+ text: this.#options.usage,
554
+ padding: [0, 0, 0, 2],
555
+ });
556
+ }
557
+ else {
558
+ const cmd = (0, node_path_1.basename)(process.argv[1]);
559
+ const shortFlags = [];
560
+ const shorts = [];
561
+ const flags = [];
562
+ const opts = [];
563
+ for (const [field, config] of Object.entries(this.#configSet)) {
564
+ if (config.short) {
565
+ if (config.type === 'boolean')
566
+ shortFlags.push(config.short);
567
+ else
568
+ shorts.push([config.short, config.hint || field]);
569
+ }
570
+ else {
571
+ if (config.type === 'boolean')
572
+ flags.push(field);
573
+ else
574
+ opts.push([field, config.hint || field]);
575
+ }
576
+ }
577
+ const sf = shortFlags.length ? ' -' + shortFlags.join('') : '';
578
+ const so = shorts.map(([k, v]) => ` --${k}=<${v}>`).join('');
579
+ const lf = flags.map(k => ` --${k}`).join('');
580
+ const lo = opts.map(([k, v]) => ` --${k}=<${v}>`).join('');
581
+ const usage = `${cmd}${sf}${so}${lf}${lo}`.trim();
582
+ ui.div({
583
+ text: usage,
584
+ padding: [0, 0, 0, 2],
585
+ });
586
+ }
587
+ ui.div({ padding: [0, 0, 0, 0], text: '' });
588
+ const maybeDesc = this.#fields[start];
589
+ if (isDescription(maybeDesc)) {
590
+ const print = normalize(maybeDesc.text, maybeDesc.pre);
591
+ start++;
592
+ ui.div({ padding: [0, 0, 0, 0], text: print });
593
+ ui.div({ padding: [0, 0, 0, 0], text: '' });
594
+ }
595
+ // turn each config type into a row, and figure out the width of the
596
+ // left hand indentation for the option descriptions.
597
+ let maxMax = Math.max(12, Math.min(26, Math.floor(width / 3)));
598
+ let maxWidth = 8;
599
+ let prev = undefined;
600
+ const rows = [];
601
+ for (const field of this.#fields.slice(start)) {
602
+ if (field.type !== 'config') {
603
+ if (prev?.type === 'config')
604
+ prev.skipLine = true;
605
+ prev = undefined;
606
+ field.text = normalize(field.text, !!field.pre);
607
+ rows.push(field);
608
+ continue;
609
+ }
610
+ const { value } = field;
611
+ const desc = value.description || '';
612
+ const mult = value.multiple ? 'Can be set multiple times' : '';
613
+ const dmDelim = mult && (desc.includes('\n') ? '\n\n' : '\n');
614
+ const text = normalize(desc + dmDelim + mult);
615
+ const hint = value.hint ||
616
+ (value.type === 'number'
617
+ ? 'n'
618
+ : value.type === 'string'
619
+ ? field.name
620
+ : undefined);
621
+ const short = !value.short
622
+ ? ''
623
+ : value.type === 'boolean'
624
+ ? `-${value.short} `
625
+ : `-${value.short}<${hint}> `;
626
+ const left = value.type === 'boolean'
627
+ ? `${short}--${field.name}`
628
+ : `${short}--${field.name}=<${hint}>`;
629
+ const row = { text, left, type: 'config' };
630
+ if (text.length > width - maxMax) {
631
+ row.skipLine = true;
632
+ }
633
+ if (prev && left.length > maxMax)
634
+ prev.skipLine = true;
635
+ prev = row;
636
+ const len = left.length + 4;
637
+ if (len > maxWidth && len < maxMax) {
638
+ maxWidth = len;
639
+ }
640
+ rows.push(row);
641
+ }
642
+ // every heading/description after the first gets indented by 2
643
+ // extra spaces.
644
+ for (const row of rows) {
645
+ if (row.left) {
646
+ // If the row is too long, don't wrap it
647
+ // Bump the right-hand side down a line to make room
648
+ const configIndent = indent(Math.max(headingLevel, 2));
649
+ if (row.left.length > maxWidth - 2) {
650
+ ui.div({ text: row.left, padding: [0, 0, 0, configIndent] });
651
+ ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] });
652
+ }
653
+ else {
654
+ ui.div({
655
+ text: row.left,
656
+ padding: [0, 1, 0, configIndent],
657
+ width: maxWidth,
658
+ }, { padding: [0, 0, 0, 0], text: row.text });
659
+ }
660
+ if (row.skipLine) {
661
+ ui.div({ padding: [0, 0, 0, 0], text: '' });
662
+ }
663
+ }
664
+ else {
665
+ if (isHeading(row)) {
666
+ const { level } = row;
667
+ headingLevel = level;
668
+ // only h1 and h2 have bottom padding
669
+ // h3-h6 do not
670
+ const b = level <= 2 ? 1 : 0;
671
+ ui.div({ ...row, padding: [0, 0, b, indent(level)] });
672
+ }
673
+ else {
674
+ ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] });
675
+ }
676
+ }
677
+ }
678
+ return (this.#usage = ui.toString());
679
+ }
680
+ /**
681
+ * Return the configuration options as a plain object
682
+ */
683
+ toJSON() {
684
+ return Object.fromEntries(Object.entries(this.#configSet).map(([field, def]) => [
685
+ field,
686
+ {
687
+ type: def.type,
688
+ ...(def.multiple ? { multiple: true } : {}),
689
+ ...(def.delim ? { delim: def.delim } : {}),
690
+ ...(def.short ? { short: def.short } : {}),
691
+ ...(def.description ? { description: def.description } : {}),
692
+ ...(def.validate ? { validate: def.validate } : {}),
693
+ ...(def.default !== undefined ? { default: def.default } : {}),
694
+ },
695
+ ]));
696
+ }
697
+ /**
698
+ * Custom printer for `util.inspect`
699
+ */
700
+ [node_util_1.inspect.custom](_, options) {
701
+ return `Jack ${(0, node_util_1.inspect)(this.toJSON(), options)}`;
702
+ }
703
+ }
704
+ exports.Jack = Jack;
705
+ // Unwrap and un-indent, so we can wrap description
706
+ // strings however makes them look nice in the code.
707
+ const normalize = (s, pre = false) => pre
708
+ // prepend a ZWSP to each line so cliui doesn't strip it.
709
+ ? s.split('\n').map(l => `\u200b${l}`).join('\n')
710
+ : s
711
+ // remove single line breaks, except for lists
712
+ .replace(/([^\n])\n[ \t]*([^\n])/g, (_, $1, $2) => !/^[-*]/.test($2) ? `${$1} ${$2}` : `${$1}\n${$2}`)
713
+ // normalize mid-line whitespace
714
+ .replace(/([^\n])[ \t]+([^\n])/g, '$1 $2')
715
+ // two line breaks are enough
716
+ .replace(/\n{3,}/g, '\n\n')
717
+ .trim();
718
+ /**
719
+ * Main entry point. Create and return a {@link Jack} object.
720
+ */
721
+ const jack = (options = {}) => new Jack(options);
722
+ exports.jack = jack;
723
+ //# sourceMappingURL=index.js.map