nitro 3.0.1-alpha.0 → 3.0.1-alpha.2

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 (316) hide show
  1. package/README.md +2 -0
  2. package/dist/_build/common.mjs +24940 -0
  3. package/dist/_build/rolldown.mjs +172 -0
  4. package/dist/_build/rollup.mjs +201 -0
  5. package/dist/_build/vite.build.mjs +16 -0
  6. package/dist/_chunks/dev.mjs +707 -0
  7. package/dist/_chunks/nitro.mjs +1191 -0
  8. package/dist/_chunks/nitro2.mjs +101 -0
  9. package/dist/_chunks/utils.mjs +254 -0
  10. package/dist/_common.mjs +45 -0
  11. package/dist/_dev.d.mts +12 -0
  12. package/dist/_libs/c12+giget+readdirp+chokidar.d.mts +214 -0
  13. package/dist/_libs/citty.mjs +363 -0
  14. package/dist/_libs/commondir+is-reference.mjs +1300 -0
  15. package/dist/_libs/compatx.d.mts +47 -0
  16. package/dist/_libs/compatx.mjs +46 -0
  17. package/dist/_libs/confbox.mjs +2509 -0
  18. package/dist/_libs/esbuild.d.mts +20 -0
  19. package/dist/_libs/escape-string-regexp.mjs +8 -0
  20. package/dist/_libs/estree-walker.mjs +187 -0
  21. package/dist/_libs/hasown+resolve+deepmerge.mjs +1972 -0
  22. package/dist/_libs/httpxy.d.mts +79 -0
  23. package/dist/_libs/httpxy.mjs +415 -0
  24. package/dist/_libs/klona.mjs +38 -0
  25. package/dist/_libs/magic-string.d.mts +220 -0
  26. package/dist/_libs/mlly.d.mts +57 -0
  27. package/dist/_libs/nypm+giget+tinyexec.mjs +3603 -0
  28. package/dist/_libs/pkg-types.d.mts +23 -0
  29. package/dist/_libs/plugin-alias.mjs +66 -0
  30. package/dist/_libs/plugin-inject.mjs +135 -0
  31. package/dist/_libs/plugin-json.mjs +36 -0
  32. package/dist/_libs/pluginutils+plugin-commonjs.d.mts +241 -0
  33. package/dist/_libs/pluginutils.mjs +652 -0
  34. package/dist/_libs/rc9+c12+dotenv.mjs +972 -0
  35. package/dist/_libs/readdirp+chokidar.mjs +1611 -0
  36. package/dist/_libs/remapping.mjs +117 -0
  37. package/dist/_libs/resolve-uri+gen-mapping.mjs +448 -0
  38. package/dist/_libs/rou3.d.mts +43 -0
  39. package/dist/_libs/rou3.mjs +322 -0
  40. package/dist/_libs/std-env.d.mts +4 -0
  41. package/dist/_libs/tsconfck.mjs +832 -0
  42. package/dist/_libs/ultrahtml.mjs +138 -0
  43. package/dist/_libs/unimport+unplugin.mjs +1785 -0
  44. package/dist/_libs/unplugin+unimport.d.mts +426 -0
  45. package/dist/_libs/unwasm.d.mts +29 -0
  46. package/dist/_presets.mjs +1802 -0
  47. package/dist/builder.d.mts +63 -0
  48. package/dist/builder.mjs +9 -0
  49. package/dist/cli/_chunks/build.mjs +48 -0
  50. package/dist/cli/_chunks/common.mjs +15 -0
  51. package/dist/cli/_chunks/dev.mjs +62 -0
  52. package/dist/cli/_chunks/list.mjs +27 -0
  53. package/dist/cli/_chunks/prepare.mjs +19 -0
  54. package/dist/cli/_chunks/run.mjs +55 -0
  55. package/dist/cli/_chunks/task.mjs +16 -0
  56. package/dist/cli/index.d.mts +1 -1
  57. package/dist/cli/index.mjs +20 -476
  58. package/dist/node_modules/@poppinss/colors/build/index.js +130 -160
  59. package/dist/node_modules/@poppinss/colors/package.json +20 -18
  60. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +1 -1
  61. package/dist/node_modules/@poppinss/dumper/package.json +1 -1
  62. package/dist/node_modules/@poppinss/exception/build/index.js +36 -55
  63. package/dist/node_modules/@poppinss/exception/package.json +19 -16
  64. package/dist/node_modules/@sindresorhus/is/distribution/index.js +47 -6
  65. package/dist/node_modules/@sindresorhus/is/package.json +1 -1
  66. package/dist/node_modules/@speed-highlight/core/dist/index.js +2 -2
  67. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -2
  68. package/dist/node_modules/@speed-highlight/core/package.json +8 -4
  69. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  70. package/dist/node_modules/cookie-es/package.json +37 -0
  71. package/dist/node_modules/hookable/dist/index.mjs +244 -268
  72. package/dist/node_modules/hookable/package.json +29 -26
  73. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  74. package/dist/node_modules/rendu/package.json +47 -0
  75. package/dist/node_modules/ufo/dist/index.mjs +16 -9
  76. package/dist/node_modules/ufo/package.json +15 -14
  77. package/dist/node_modules/unctx/package.json +16 -16
  78. package/dist/node_modules/youch/build/{chunk-4XB2BYKC.js → chunk-7QV3D5YX.js} +2 -4
  79. package/dist/node_modules/youch/build/{chunk-PUHGL6HA.js → chunk-AUGPHE32.js} +2 -4
  80. package/dist/node_modules/youch/build/{chunk-VE4LENUR.js → chunk-CM7DWJNZ.js} +4 -5
  81. package/dist/node_modules/youch/build/{chunk-JAN2TFI2.js → chunk-EJH674NB.js} +6 -5
  82. package/dist/node_modules/youch/build/{chunk-EUJBVOYB.js → chunk-OIJ3WD7L.js} +2 -4
  83. package/dist/node_modules/youch/build/{chunk-HFSXRSKS.js → chunk-P36L72PL.js} +5 -3
  84. package/dist/node_modules/youch/build/{chunk-4YEN7HVQ.js → chunk-PE3GG3TN.js} +5 -1
  85. package/dist/node_modules/youch/build/{chunk-PINJDICN.js → chunk-X53OIOJH.js} +2 -4
  86. package/dist/node_modules/youch/build/index.js +22 -15
  87. package/dist/node_modules/youch/build/public/error_info/style.css +1 -0
  88. package/dist/node_modules/youch/build/public/error_metadata/style.css +3 -0
  89. package/dist/node_modules/youch/build/public/error_stack/script.js +20 -22
  90. package/dist/node_modules/youch/build/public/error_stack/style.css +2 -3
  91. package/dist/node_modules/youch/build/public/header/script.js +0 -2
  92. package/dist/node_modules/youch/build/public/layout/script.js +0 -8
  93. package/dist/node_modules/youch/build/public/layout/style.css +4 -0
  94. package/dist/node_modules/youch/package.json +16 -17
  95. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +2 -1
  96. package/dist/presets/_nitro/runtime/nitro-dev.mjs +47 -42
  97. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +3 -3
  98. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +11 -15
  99. package/dist/presets/_nitro/runtime/service-worker.d.mts +2 -1
  100. package/dist/presets/_nitro/runtime/service-worker.mjs +17 -14
  101. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +2 -1
  102. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +8 -7
  103. package/dist/presets/aws-lambda/runtime/_utils.d.mts +3 -13
  104. package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
  105. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +2 -3
  106. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +25 -29
  107. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +1 -1
  108. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +9 -9
  109. package/dist/presets/azure/runtime/_utils.mjs +43 -43
  110. package/dist/presets/azure/runtime/azure-swa.d.mts +3 -3
  111. package/dist/presets/azure/runtime/azure-swa.mjs +25 -23
  112. package/dist/presets/bun/runtime/bun.d.mts +3 -1
  113. package/dist/presets/bun/runtime/bun.mjs +34 -22
  114. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +12 -9
  115. package/dist/presets/cloudflare/runtime/_module-handler.mjs +84 -90
  116. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +7 -15
  117. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +62 -64
  118. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +2 -8
  119. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +15 -18
  120. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +13 -13
  121. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +35 -43
  122. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
  123. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -82
  124. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  125. package/dist/presets/deno/runtime/deno-deploy.d.mts +5 -1
  126. package/dist/presets/deno/runtime/deno-deploy.mjs +15 -13
  127. package/dist/presets/deno/runtime/deno-server.d.mts +1 -4
  128. package/dist/presets/deno/runtime/deno-server.mjs +32 -53
  129. package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -2
  130. package/dist/presets/netlify/runtime/netlify-edge.mjs +18 -14
  131. package/dist/presets/netlify/runtime/netlify.d.mts +3 -2
  132. package/dist/presets/netlify/runtime/netlify.mjs +15 -19
  133. package/dist/presets/node/runtime/node-cluster.d.mts +3 -1
  134. package/dist/presets/node/runtime/node-cluster.mjs +49 -54
  135. package/dist/presets/node/runtime/node-middleware.d.mts +3 -4
  136. package/dist/presets/node/runtime/node-middleware.mjs +9 -9
  137. package/dist/presets/node/runtime/node-server.d.mts +1 -1
  138. package/dist/presets/node/runtime/node-server.mjs +36 -34
  139. package/dist/presets/standard/runtime/server.d.mts +2 -4
  140. package/dist/presets/standard/runtime/server.mjs +3 -5
  141. package/dist/presets/stormkit/runtime/stormkit.d.mts +14 -14
  142. package/dist/presets/stormkit/runtime/stormkit.mjs +22 -22
  143. package/dist/presets/vercel/runtime/isr.d.mts +2 -0
  144. package/dist/presets/vercel/runtime/isr.mjs +19 -0
  145. package/dist/presets/vercel/runtime/vercel.node.d.mts +3 -0
  146. package/dist/presets/vercel/runtime/vercel.node.mjs +24 -0
  147. package/dist/presets/vercel/runtime/vercel.web.d.mts +8 -0
  148. package/dist/presets/vercel/runtime/vercel.web.mjs +25 -0
  149. package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -1
  150. package/dist/presets/winterjs/runtime/winterjs.mjs +74 -70
  151. package/dist/presets/zeabur/runtime/zeabur.d.mts +2 -2
  152. package/dist/presets/zeabur/runtime/zeabur.mjs +2 -2
  153. package/dist/runtime/app.d.mts +1 -0
  154. package/dist/runtime/app.mjs +1 -0
  155. package/dist/runtime/cache.d.mts +1 -0
  156. package/dist/runtime/cache.mjs +1 -0
  157. package/dist/runtime/config.d.mts +3 -0
  158. package/dist/runtime/config.mjs +4 -0
  159. package/dist/runtime/context.d.mts +1 -0
  160. package/dist/runtime/context.mjs +1 -0
  161. package/dist/runtime/database.d.mts +1 -0
  162. package/dist/runtime/database.mjs +1 -0
  163. package/dist/runtime/internal/app.d.mts +15 -1
  164. package/dist/runtime/internal/app.mjs +199 -144
  165. package/dist/runtime/internal/cache.d.mts +9 -5
  166. package/dist/runtime/internal/cache.mjs +248 -219
  167. package/dist/runtime/internal/context.d.mts +9 -9
  168. package/dist/runtime/internal/context.mjs +17 -10
  169. package/dist/runtime/internal/database.mjs +9 -11
  170. package/dist/runtime/internal/error/dev.d.mts +4 -4
  171. package/dist/runtime/internal/error/dev.mjs +106 -105
  172. package/dist/runtime/internal/error/hooks.d.mts +1 -0
  173. package/dist/runtime/internal/error/hooks.mjs +9 -0
  174. package/dist/runtime/internal/error/prod.d.mts +5 -4
  175. package/dist/runtime/internal/error/prod.mjs +51 -59
  176. package/dist/runtime/internal/error/utils.d.mts +4 -4
  177. package/dist/runtime/internal/error/utils.mjs +1 -1
  178. package/dist/runtime/internal/meta.d.mts +1 -1
  179. package/dist/runtime/internal/meta.mjs +1 -1
  180. package/dist/runtime/internal/plugin.d.mts +2 -2
  181. package/dist/runtime/internal/plugin.mjs +1 -1
  182. package/dist/runtime/internal/route-rules.d.mts +4 -8
  183. package/dist/runtime/internal/route-rules.mjs +54 -52
  184. package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -2
  185. package/dist/runtime/internal/routes/dev-tasks.mjs +17 -19
  186. package/dist/runtime/internal/routes/openapi.mjs +82 -88
  187. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  188. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
  189. package/dist/runtime/internal/routes/renderer-template.dev.mjs +15 -17
  190. package/dist/runtime/internal/routes/renderer-template.mjs +2 -2
  191. package/dist/runtime/internal/routes/scalar.mjs +22 -23
  192. package/dist/runtime/internal/routes/swagger.mjs +9 -11
  193. package/dist/runtime/internal/runtime-config.d.mts +4 -4
  194. package/dist/runtime/internal/runtime-config.mjs +44 -39
  195. package/dist/runtime/internal/static.mjs +63 -74
  196. package/dist/runtime/internal/storage.mjs +3 -3
  197. package/dist/runtime/internal/task.d.mts +6 -6
  198. package/dist/runtime/internal/task.mjs +57 -61
  199. package/dist/runtime/internal/vite/dev-entry.mjs +11 -2
  200. package/dist/runtime/internal/vite/{dev-worker.mjs → node-runner.mjs} +54 -57
  201. package/dist/runtime/internal/vite/ssr-renderer.mjs +3 -1
  202. package/{lib/runtime-meta.d.mts → dist/runtime/meta.d.mts} +2 -2
  203. package/dist/runtime/meta.mjs +26 -0
  204. package/dist/runtime/nitro.d.mts +9 -0
  205. package/dist/runtime/nitro.mjs +32 -0
  206. package/dist/runtime/runtime-config.d.mts +1 -0
  207. package/dist/runtime/runtime-config.mjs +1 -0
  208. package/dist/runtime/storage.d.mts +1 -0
  209. package/dist/runtime/storage.mjs +1 -0
  210. package/dist/runtime/task.d.mts +1 -0
  211. package/dist/runtime/task.mjs +1 -0
  212. package/dist/runtime/virtual/_runtime_warn.mjs +5 -0
  213. package/dist/runtime/virtual/database.d.mts +8 -0
  214. package/dist/runtime/virtual/database.mjs +2 -0
  215. package/dist/runtime/virtual/error-handler.d.mts +6 -0
  216. package/dist/runtime/virtual/error-handler.mjs +9 -0
  217. package/dist/runtime/virtual/feature-flags.d.mts +7 -0
  218. package/dist/runtime/virtual/feature-flags.mjs +7 -0
  219. package/dist/runtime/virtual/plugins.d.mts +3 -0
  220. package/dist/runtime/virtual/plugins.mjs +2 -0
  221. package/dist/runtime/virtual/polyfills.d.mts +3 -0
  222. package/dist/runtime/virtual/polyfills.mjs +2 -0
  223. package/dist/runtime/virtual/public-assets.d.mts +9 -0
  224. package/dist/runtime/virtual/public-assets.mjs +8 -0
  225. package/dist/runtime/virtual/renderer-template.d.mts +4 -0
  226. package/dist/runtime/virtual/renderer-template.mjs +7 -0
  227. package/dist/runtime/virtual/routing-meta.d.mts +7 -0
  228. package/dist/runtime/virtual/routing-meta.mjs +2 -0
  229. package/dist/runtime/virtual/routing.d.mts +8 -0
  230. package/dist/runtime/virtual/routing.mjs +11 -0
  231. package/dist/runtime/virtual/runtime-config.d.mts +3 -0
  232. package/dist/runtime/virtual/runtime-config.mjs +5 -0
  233. package/dist/runtime/virtual/server-assets.d.mts +6 -0
  234. package/dist/runtime/virtual/server-assets.mjs +12 -0
  235. package/dist/runtime/virtual/storage.d.mts +3 -0
  236. package/dist/runtime/virtual/storage.mjs +5 -0
  237. package/dist/runtime/virtual/tasks.d.mts +10 -0
  238. package/dist/runtime/virtual/tasks.mjs +3 -0
  239. package/dist/runtime/vite.d.mts +8 -0
  240. package/dist/runtime/vite.mjs +9 -0
  241. package/dist/types/index.d.mts +2561 -2312
  242. package/dist/types/index.mjs +10 -0
  243. package/dist/vite.d.mts +44 -51
  244. package/dist/vite.mjs +737 -68
  245. package/lib/tsconfig.json +27 -0
  246. package/lib/vite.types.d.mts +26 -0
  247. package/lib/vite.types.mjs +2 -0
  248. package/package.json +118 -101
  249. package/dist/_chunks/app.mjs +0 -19797
  250. package/dist/_chunks/build.mjs +0 -84
  251. package/dist/_chunks/build2.mjs +0 -318
  252. package/dist/_chunks/build3.mjs +0 -6452
  253. package/dist/_chunks/detect-acorn.mjs +0 -503
  254. package/dist/_chunks/index.mjs +0 -22242
  255. package/dist/_chunks/index2.mjs +0 -297
  256. package/dist/_chunks/index3.mjs +0 -1058
  257. package/dist/_chunks/index4.mjs +0 -1206
  258. package/dist/_chunks/info.mjs +0 -11157
  259. package/dist/_chunks/json5.mjs +0 -68
  260. package/dist/_chunks/jsonc.mjs +0 -51
  261. package/dist/_chunks/pathe.M-eThtNZ.mjs +0 -204
  262. package/dist/_chunks/plugin.mjs +0 -960
  263. package/dist/_chunks/server.mjs +0 -254
  264. package/dist/_chunks/snapshot.mjs +0 -284
  265. package/dist/_chunks/toml.mjs +0 -259
  266. package/dist/_chunks/yaml.mjs +0 -86
  267. package/dist/cli/build.mjs +0 -54
  268. package/dist/cli/common.mjs +0 -13
  269. package/dist/cli/dev.mjs +0 -95
  270. package/dist/cli/index2.mjs +0 -17
  271. package/dist/cli/list.mjs +0 -34
  272. package/dist/cli/prepare.mjs +0 -24
  273. package/dist/cli/run.mjs +0 -60
  274. package/dist/index.d.mts +0 -52
  275. package/dist/index.mjs +0 -55
  276. package/dist/node_modules/cookie/dist/index.js +0 -239
  277. package/dist/node_modules/cookie/package.json +0 -42
  278. package/dist/node_modules/kleur/index.js +0 -110
  279. package/dist/node_modules/klona/dist/index.mjs +0 -81
  280. package/dist/node_modules/klona/full/index.mjs +0 -53
  281. package/dist/node_modules/klona/package.json +0 -74
  282. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  283. package/dist/node_modules/std-env/package.json +0 -46
  284. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +0 -6
  285. package/dist/presets/vercel/runtime/vercel.d.mts +0 -8
  286. package/dist/presets/vercel/runtime/vercel.mjs +0 -17
  287. package/dist/presets.mjs +0 -2460
  288. package/dist/runtime/index.d.mts +0 -11
  289. package/dist/runtime/index.mjs +0 -17
  290. package/dist/runtime/internal/debug.d.mts +0 -2
  291. package/dist/runtime/internal/debug.mjs +0 -5
  292. package/dist/runtime/internal/empty.d.mts +0 -0
  293. package/dist/runtime/internal/index.d.mts +0 -3
  294. package/dist/runtime/internal/index.mjs +0 -3
  295. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +0 -16
  296. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +0 -213
  297. package/dist/runtime/internal/renderer.d.mts +0 -3
  298. package/dist/runtime/internal/renderer.mjs +0 -36
  299. package/dist/runtime/internal/shutdown.d.mts +0 -9
  300. package/dist/runtime/internal/shutdown.mjs +0 -34
  301. package/dist/runtime/internal/utils.d.mts +0 -1
  302. package/dist/runtime/internal/utils.mjs +0 -15
  303. package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
  304. package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
  305. package/dist/runtime/internal/vite/prod-setup.mjs +0 -55
  306. package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
  307. package/lib/config.d.mts +0 -9
  308. package/lib/config.mjs +0 -5
  309. package/lib/deps/ofetch.mjs +0 -1
  310. package/lib/deps/ofetch.mts +0 -1
  311. package/lib/meta.d.mts +0 -5
  312. package/lib/meta.mjs +0 -21
  313. package/lib/runtime-meta.mjs +0 -38
  314. /package/dist/runtime/{internal/vite/dev-worker.d.mts → virtual/_runtime_warn.d.mts} +0 -0
  315. /package/lib/{deps/h3.d.mts → h3.d.mts} +0 -0
  316. /package/lib/{deps/h3.mjs → h3.mjs} +0 -0
@@ -0,0 +1,363 @@
1
+ import { parseArgs } from "node:util";
2
+
3
+ //#region node_modules/.pnpm/citty@0.2.0/node_modules/citty/dist/_chunks/libs/scule.mjs
4
+ const NUMBER_CHAR_RE = /\d/;
5
+ const STR_SPLITTERS = [
6
+ "-",
7
+ "_",
8
+ "/",
9
+ "."
10
+ ];
11
+ function isUppercase(char = "") {
12
+ if (NUMBER_CHAR_RE.test(char)) return;
13
+ return char !== char.toLowerCase();
14
+ }
15
+ function splitByCase(str, separators) {
16
+ const splitters = separators ?? STR_SPLITTERS;
17
+ const parts = [];
18
+ if (!str || typeof str !== "string") return parts;
19
+ let buff = "";
20
+ let previousUpper;
21
+ let previousSplitter;
22
+ for (const char of str) {
23
+ const isSplitter = splitters.includes(char);
24
+ if (isSplitter === true) {
25
+ parts.push(buff);
26
+ buff = "";
27
+ previousUpper = void 0;
28
+ continue;
29
+ }
30
+ const isUpper = isUppercase(char);
31
+ if (previousSplitter === false) {
32
+ if (previousUpper === false && isUpper === true) {
33
+ parts.push(buff);
34
+ buff = char;
35
+ previousUpper = isUpper;
36
+ continue;
37
+ }
38
+ if (previousUpper === true && isUpper === false && buff.length > 1) {
39
+ const lastChar = buff.at(-1);
40
+ parts.push(buff.slice(0, Math.max(0, buff.length - 1)));
41
+ buff = lastChar + char;
42
+ previousUpper = isUpper;
43
+ continue;
44
+ }
45
+ }
46
+ buff += char;
47
+ previousUpper = isUpper;
48
+ previousSplitter = isSplitter;
49
+ }
50
+ parts.push(buff);
51
+ return parts;
52
+ }
53
+ function upperFirst(str) {
54
+ return str ? str[0].toUpperCase() + str.slice(1) : "";
55
+ }
56
+ function lowerFirst(str) {
57
+ return str ? str[0].toLowerCase() + str.slice(1) : "";
58
+ }
59
+ function pascalCase(str, opts) {
60
+ return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(opts?.normalize ? p.toLowerCase() : p)).join("") : "";
61
+ }
62
+ function camelCase(str, opts) {
63
+ return lowerFirst(pascalCase(str || "", opts));
64
+ }
65
+ function kebabCase(str, joiner) {
66
+ return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? "-") : "";
67
+ }
68
+
69
+ //#endregion
70
+ //#region node_modules/.pnpm/citty@0.2.0/node_modules/citty/dist/index.mjs
71
+ function toArray(val) {
72
+ if (Array.isArray(val)) return val;
73
+ return val === void 0 ? [] : [val];
74
+ }
75
+ function formatLineColumns(lines, linePrefix = "") {
76
+ const maxLength = [];
77
+ for (const line of lines) for (const [i, element] of line.entries()) maxLength[i] = Math.max(maxLength[i] || 0, element.length);
78
+ return lines.map((l) => l.map((c, i) => linePrefix + c[i === 0 ? "padStart" : "padEnd"](maxLength[i])).join(" ")).join("\n");
79
+ }
80
+ function resolveValue(input) {
81
+ return typeof input === "function" ? input() : input;
82
+ }
83
+ var CLIError = class extends Error {
84
+ code;
85
+ constructor(message, code) {
86
+ super(message);
87
+ this.name = "CLIError";
88
+ this.code = code;
89
+ }
90
+ };
91
+ function parseRawArgs(args = [], opts = {}) {
92
+ const booleans = new Set(opts.boolean || []);
93
+ const strings = new Set(opts.string || []);
94
+ const aliasMap = opts.alias || {};
95
+ const defaults = opts.default || {};
96
+ const aliasToMain = /* @__PURE__ */ new Map();
97
+ const mainToAliases = /* @__PURE__ */ new Map();
98
+ for (const [key, value] of Object.entries(aliasMap)) {
99
+ const targets = value;
100
+ for (const target of targets) {
101
+ aliasToMain.set(key, target);
102
+ if (!mainToAliases.has(target)) mainToAliases.set(target, []);
103
+ mainToAliases.get(target).push(key);
104
+ aliasToMain.set(target, key);
105
+ if (!mainToAliases.has(key)) mainToAliases.set(key, []);
106
+ mainToAliases.get(key).push(target);
107
+ }
108
+ }
109
+ const options = {};
110
+ function getType(name) {
111
+ if (booleans.has(name)) return "boolean";
112
+ const aliases = mainToAliases.get(name) || [];
113
+ for (const alias of aliases) if (booleans.has(alias)) return "boolean";
114
+ return "string";
115
+ }
116
+ const allOptions = new Set([
117
+ ...booleans,
118
+ ...strings,
119
+ ...Object.keys(aliasMap),
120
+ ...Object.values(aliasMap).flat(),
121
+ ...Object.keys(defaults)
122
+ ]);
123
+ for (const name of allOptions) if (!options[name]) options[name] = {
124
+ type: getType(name),
125
+ default: defaults[name]
126
+ };
127
+ for (const [alias, main] of aliasToMain.entries()) if (alias.length === 1 && options[main] && !options[main].short) options[main].short = alias;
128
+ const processedArgs = [];
129
+ const negatedFlags = {};
130
+ for (let i = 0; i < args.length; i++) {
131
+ const arg = args[i];
132
+ if (arg === "--") {
133
+ processedArgs.push(...args.slice(i));
134
+ break;
135
+ }
136
+ if (arg.startsWith("--no-")) {
137
+ const flagName = arg.slice(5);
138
+ negatedFlags[flagName] = true;
139
+ continue;
140
+ }
141
+ processedArgs.push(arg);
142
+ }
143
+ let parsed;
144
+ try {
145
+ parsed = parseArgs({
146
+ args: processedArgs,
147
+ options: Object.keys(options).length > 0 ? options : void 0,
148
+ allowPositionals: true,
149
+ strict: false
150
+ });
151
+ } catch {
152
+ parsed = {
153
+ values: {},
154
+ positionals: processedArgs
155
+ };
156
+ }
157
+ const out = { _: [] };
158
+ out._ = parsed.positionals;
159
+ for (const [key, value] of Object.entries(parsed.values)) out[key] = value;
160
+ for (const [name] of Object.entries(negatedFlags)) out[name] = false;
161
+ for (const [alias, main] of aliasToMain.entries()) {
162
+ if (out[alias] !== void 0 && out[main] === void 0) out[main] = out[alias];
163
+ if (out[main] !== void 0 && out[alias] === void 0) out[alias] = out[main];
164
+ }
165
+ return out;
166
+ }
167
+ const noColor = /* @__PURE__ */ (() => {
168
+ const env = globalThis.process?.env ?? {};
169
+ return env.NO_COLOR === "1" || env.TERM === "dumb" || env.TEST || env.CI;
170
+ })();
171
+ const _c = (c, r = 39) => (t) => noColor ? t : `\u001B[${c}m${t}\u001B[${r}m`;
172
+ const bold = /* @__PURE__ */ _c(1, 22);
173
+ const cyan = /* @__PURE__ */ _c(36);
174
+ const gray = /* @__PURE__ */ _c(90);
175
+ const underline = /* @__PURE__ */ _c(4, 24);
176
+ function parseArgs$1(rawArgs, argsDef) {
177
+ const parseOptions = {
178
+ boolean: [],
179
+ string: [],
180
+ alias: {},
181
+ default: {}
182
+ };
183
+ const args = resolveArgs(argsDef);
184
+ for (const arg of args) {
185
+ if (arg.type === "positional") continue;
186
+ if (arg.type === "string" || arg.type === "enum") parseOptions.string.push(arg.name);
187
+ else if (arg.type === "boolean") parseOptions.boolean.push(arg.name);
188
+ if (arg.default !== void 0) parseOptions.default[arg.name] = arg.default;
189
+ if (arg.alias) parseOptions.alias[arg.name] = arg.alias;
190
+ const camelName = camelCase(arg.name);
191
+ const kebabName = kebabCase(arg.name);
192
+ if (camelName !== arg.name || kebabName !== arg.name) {
193
+ const existingAliases = toArray(parseOptions.alias[arg.name] || []);
194
+ if (camelName !== arg.name && !existingAliases.includes(camelName)) existingAliases.push(camelName);
195
+ if (kebabName !== arg.name && !existingAliases.includes(kebabName)) existingAliases.push(kebabName);
196
+ if (existingAliases.length > 0) parseOptions.alias[arg.name] = existingAliases;
197
+ }
198
+ }
199
+ const parsed = parseRawArgs(rawArgs, parseOptions);
200
+ const [ ...positionalArguments] = parsed._;
201
+ const parsedArgsProxy = new Proxy(parsed, { get(target, prop) {
202
+ return target[prop] ?? target[camelCase(prop)] ?? target[kebabCase(prop)];
203
+ } });
204
+ for (const [, arg] of args.entries()) if (arg.type === "positional") {
205
+ const nextPositionalArgument = positionalArguments.shift();
206
+ if (nextPositionalArgument !== void 0) parsedArgsProxy[arg.name] = nextPositionalArgument;
207
+ else if (arg.default === void 0 && arg.required !== false) throw new CLIError(`Missing required positional argument: ${arg.name.toUpperCase()}`, "EARG");
208
+ else parsedArgsProxy[arg.name] = arg.default;
209
+ } else if (arg.type === "enum") {
210
+ const argument = parsedArgsProxy[arg.name];
211
+ const options = arg.options || [];
212
+ if (argument !== void 0 && options.length > 0 && !options.includes(argument)) throw new CLIError(`Invalid value for argument: ${cyan(`--${arg.name}`)} (${cyan(argument)}). Expected one of: ${options.map((o) => cyan(o)).join(", ")}.`, "EARG");
213
+ } else if (arg.required && parsedArgsProxy[arg.name] === void 0) throw new CLIError(`Missing required argument: --${arg.name}`, "EARG");
214
+ return parsedArgsProxy;
215
+ }
216
+ function resolveArgs(argsDef) {
217
+ const args = [];
218
+ for (const [name, argDef] of Object.entries(argsDef || {})) args.push({
219
+ ...argDef,
220
+ name,
221
+ alias: toArray(argDef.alias)
222
+ });
223
+ return args;
224
+ }
225
+ function defineCommand(def) {
226
+ return def;
227
+ }
228
+ async function runCommand(cmd, opts) {
229
+ const cmdArgs = await resolveValue(cmd.args || {});
230
+ const parsedArgs = parseArgs$1(opts.rawArgs, cmdArgs);
231
+ const context = {
232
+ rawArgs: opts.rawArgs,
233
+ args: parsedArgs,
234
+ data: opts.data,
235
+ cmd
236
+ };
237
+ if (typeof cmd.setup === "function") await cmd.setup(context);
238
+ let result;
239
+ try {
240
+ const subCommands = await resolveValue(cmd.subCommands);
241
+ if (subCommands && Object.keys(subCommands).length > 0) {
242
+ const subCommandArgIndex = opts.rawArgs.findIndex((arg) => !arg.startsWith("-"));
243
+ const subCommandName = opts.rawArgs[subCommandArgIndex];
244
+ if (subCommandName) {
245
+ if (!subCommands[subCommandName]) throw new CLIError(`Unknown command ${cyan(subCommandName)}`, "E_UNKNOWN_COMMAND");
246
+ const subCommand = await resolveValue(subCommands[subCommandName]);
247
+ if (subCommand) await runCommand(subCommand, { rawArgs: opts.rawArgs.slice(subCommandArgIndex + 1) });
248
+ } else if (!cmd.run) throw new CLIError(`No command specified.`, "E_NO_COMMAND");
249
+ }
250
+ if (typeof cmd.run === "function") result = await cmd.run(context);
251
+ } finally {
252
+ if (typeof cmd.cleanup === "function") await cmd.cleanup(context);
253
+ }
254
+ return { result };
255
+ }
256
+ async function resolveSubCommand(cmd, rawArgs, parent) {
257
+ const subCommands = await resolveValue(cmd.subCommands);
258
+ if (subCommands && Object.keys(subCommands).length > 0) {
259
+ const subCommandArgIndex = rawArgs.findIndex((arg) => !arg.startsWith("-"));
260
+ const subCommandName = rawArgs[subCommandArgIndex];
261
+ const subCommand = await resolveValue(subCommands[subCommandName]);
262
+ if (subCommand) return resolveSubCommand(subCommand, rawArgs.slice(subCommandArgIndex + 1), cmd);
263
+ }
264
+ return [cmd, parent];
265
+ }
266
+ async function showUsage(cmd, parent) {
267
+ try {
268
+ console.log(await renderUsage(cmd, parent) + "\n");
269
+ } catch (error) {
270
+ console.error(error);
271
+ }
272
+ }
273
+ const negativePrefixRe = /^no[-A-Z]/;
274
+ async function renderUsage(cmd, parent) {
275
+ const cmdMeta = await resolveValue(cmd.meta || {});
276
+ const cmdArgs = resolveArgs(await resolveValue(cmd.args || {}));
277
+ const parentMeta = await resolveValue(parent?.meta || {});
278
+ const commandName = `${parentMeta.name ? `${parentMeta.name} ` : ""}` + (cmdMeta.name || process.argv[1]);
279
+ const argLines = [];
280
+ const posLines = [];
281
+ const commandsLines = [];
282
+ const usageLine = [];
283
+ for (const arg of cmdArgs) if (arg.type === "positional") {
284
+ const name = arg.name.toUpperCase();
285
+ const isRequired = arg.required !== false && arg.default === void 0;
286
+ const defaultHint = arg.default ? `="${arg.default}"` : "";
287
+ posLines.push([
288
+ cyan(name + defaultHint),
289
+ arg.description || "",
290
+ arg.valueHint ? `<${arg.valueHint}>` : ""
291
+ ]);
292
+ usageLine.push(isRequired ? `<${name}>` : `[${name}]`);
293
+ } else {
294
+ const isRequired = arg.required === true && arg.default === void 0;
295
+ const argStr = [...(arg.alias || []).map((a) => `-${a}`), `--${arg.name}`].join(", ") + (arg.type === "string" && (arg.valueHint || arg.default) ? `=${arg.valueHint ? `<${arg.valueHint}>` : `"${arg.default || ""}"`}` : "") + (arg.type === "enum" && arg.options ? `=<${arg.options.join("|")}>` : "");
296
+ argLines.push([cyan(argStr + (isRequired ? " (required)" : "")), arg.description || ""]);
297
+ /**
298
+ * print negative boolean arg variant usage when
299
+ * - enabled by default or has `negativeDescription`
300
+ * - not prefixed with `no-` or `no[A-Z]`
301
+ */
302
+ if (arg.type === "boolean" && (arg.default === true || arg.negativeDescription) && !negativePrefixRe.test(arg.name)) {
303
+ const negativeArgStr = [...(arg.alias || []).map((a) => `--no-${a}`), `--no-${arg.name}`].join(", ");
304
+ argLines.push([cyan(negativeArgStr + (isRequired ? " (required)" : "")), arg.negativeDescription || ""]);
305
+ }
306
+ if (isRequired) usageLine.push(argStr);
307
+ }
308
+ if (cmd.subCommands) {
309
+ const commandNames = [];
310
+ const subCommands = await resolveValue(cmd.subCommands);
311
+ for (const [name, sub] of Object.entries(subCommands)) {
312
+ const meta = await resolveValue((await resolveValue(sub))?.meta);
313
+ if (meta?.hidden) continue;
314
+ commandsLines.push([cyan(name), meta?.description || ""]);
315
+ commandNames.push(name);
316
+ }
317
+ usageLine.push(commandNames.join("|"));
318
+ }
319
+ const usageLines = [];
320
+ const version = cmdMeta.version || parentMeta.version;
321
+ usageLines.push(gray(`${cmdMeta.description} (${commandName + (version ? ` v${version}` : "")})`), "");
322
+ const hasOptions = argLines.length > 0 || posLines.length > 0;
323
+ usageLines.push(`${underline(bold("USAGE"))} ${cyan(`${commandName}${hasOptions ? " [OPTIONS]" : ""} ${usageLine.join(" ")}`)}`, "");
324
+ if (posLines.length > 0) {
325
+ usageLines.push(underline(bold("ARGUMENTS")), "");
326
+ usageLines.push(formatLineColumns(posLines, " "));
327
+ usageLines.push("");
328
+ }
329
+ if (argLines.length > 0) {
330
+ usageLines.push(underline(bold("OPTIONS")), "");
331
+ usageLines.push(formatLineColumns(argLines, " "));
332
+ usageLines.push("");
333
+ }
334
+ if (commandsLines.length > 0) {
335
+ usageLines.push(underline(bold("COMMANDS")), "");
336
+ usageLines.push(formatLineColumns(commandsLines, " "));
337
+ usageLines.push("", `Use ${cyan(`${commandName} <command> --help`)} for more information about a command.`);
338
+ }
339
+ return usageLines.filter((l) => typeof l === "string").join("\n");
340
+ }
341
+ async function runMain(cmd, opts = {}) {
342
+ const rawArgs = opts.rawArgs || process.argv.slice(2);
343
+ const showUsage$1 = opts.showUsage || showUsage;
344
+ try {
345
+ if (rawArgs.includes("--help") || rawArgs.includes("-h")) {
346
+ await showUsage$1(...await resolveSubCommand(cmd, rawArgs));
347
+ process.exit(0);
348
+ } else if (rawArgs.length === 1 && rawArgs[0] === "--version") {
349
+ const meta = typeof cmd.meta === "function" ? await cmd.meta() : await cmd.meta;
350
+ if (!meta?.version) throw new CLIError("No version specified", "E_NO_VERSION");
351
+ console.log(meta.version);
352
+ } else await runCommand(cmd, { rawArgs });
353
+ } catch (error) {
354
+ if (error instanceof CLIError) {
355
+ await showUsage$1(...await resolveSubCommand(cmd, rawArgs));
356
+ console.error(error.message);
357
+ } else console.error(error, "\n");
358
+ process.exit(1);
359
+ }
360
+ }
361
+
362
+ //#endregion
363
+ export { runMain as n, defineCommand as t };