nitro-nightly 4.0.0-20251030-091344-d4418b98 → 4.0.0-20251030-122334-09c1a7a8

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 (334) hide show
  1. package/dist/_build/common.mjs +763 -0
  2. package/dist/_build/rolldown.mjs +216 -0
  3. package/dist/_build/rollup.mjs +359 -0
  4. package/dist/_build/vite.build.mjs +67 -0
  5. package/dist/_build/vite.plugin.mjs +762 -0
  6. package/dist/_chunks/B-7HiF0V.mjs +1303 -0
  7. package/dist/_chunks/B3asVbT4.mjs +151 -0
  8. package/dist/_chunks/B5ooyfLk.mjs +372 -0
  9. package/dist/_chunks/DXMHy5ca.mjs +43 -0
  10. package/dist/_dev.d.mts +12 -0
  11. package/dist/_dev.mjs +675 -0
  12. package/dist/_libs/acorn.mjs +5034 -0
  13. package/dist/_libs/c12.mjs +2798 -0
  14. package/dist/_libs/chokidar.mjs +1560 -0
  15. package/dist/_libs/citty.mjs +333 -0
  16. package/dist/_libs/commondir.mjs +22 -0
  17. package/dist/_libs/compatx.mjs +46 -0
  18. package/dist/_libs/confbox.mjs +2920 -0
  19. package/dist/_libs/debug.mjs +848 -0
  20. package/dist/_libs/deepmerge.mjs +86 -0
  21. package/dist/_libs/depd.mjs +314 -0
  22. package/dist/_libs/dot-prop.mjs +138 -0
  23. package/dist/_libs/duplexer.mjs +71 -0
  24. package/dist/_libs/ee-first.mjs +68 -0
  25. package/dist/_libs/encodeurl.mjs +49 -0
  26. package/dist/_libs/escape-html.mjs +58 -0
  27. package/dist/_libs/escape-string-regexp.mjs +8 -0
  28. package/dist/_libs/estree-walker.mjs +330 -0
  29. package/dist/_libs/etag.mjs +75 -0
  30. package/dist/{_chunks/_deps → _libs}/fdir.mjs +49 -104
  31. package/dist/_libs/fresh.mjs +85 -0
  32. package/dist/_libs/function-bind.mjs +63 -0
  33. package/dist/_libs/gen-mapping.mjs +612 -0
  34. package/dist/_libs/giget.mjs +19076 -0
  35. package/dist/_libs/gzip-size.mjs +21 -0
  36. package/dist/_libs/hasown.mjs +14 -0
  37. package/dist/_libs/http-errors.mjs +436 -0
  38. package/dist/_libs/httpxy.mjs +410 -0
  39. package/dist/_libs/is-core-module.mjs +220 -0
  40. package/dist/_libs/is-module.mjs +13 -0
  41. package/dist/_libs/is-reference.mjs +32 -0
  42. package/dist/{_chunks/_deps → _libs}/js-tokens.mjs +83 -112
  43. package/dist/_libs/klona.mjs +90 -0
  44. package/dist/_libs/knitwork.mjs +124 -0
  45. package/dist/_libs/local-pkg.mjs +1686 -0
  46. package/dist/{_chunks/_deps → _libs}/magic-string.mjs +272 -629
  47. package/dist/_libs/mime-db.mjs +7642 -0
  48. package/dist/_libs/mime-types.mjs +162 -0
  49. package/dist/_libs/mime.mjs +1391 -0
  50. package/dist/_libs/node-fetch-native.mjs +173 -0
  51. package/dist/_libs/on-finished.mjs +170 -0
  52. package/dist/_libs/parseurl.mjs +103 -0
  53. package/dist/_libs/path-parse.mjs +47 -0
  54. package/dist/_libs/pathe.mjs +41 -0
  55. package/dist/_libs/picomatch.mjs +1673 -0
  56. package/dist/_libs/plugin-alias.mjs +64 -0
  57. package/dist/_libs/plugin-commonjs.mjs +1489 -0
  58. package/dist/_libs/plugin-inject.mjs +135 -0
  59. package/dist/_libs/plugin-json.mjs +36 -0
  60. package/dist/_libs/plugin-node-resolve.mjs +1553 -0
  61. package/dist/_libs/plugin-replace.mjs +104 -0
  62. package/dist/_libs/pretty-bytes.mjs +116 -0
  63. package/dist/_libs/range-parser.mjs +102 -0
  64. package/dist/_libs/remapping.mjs +117 -0
  65. package/dist/{_chunks/_deps → _libs}/rou3.mjs +7 -22
  66. package/dist/_libs/send.mjs +857 -0
  67. package/dist/_libs/serve-static.mjs +124 -0
  68. package/dist/_libs/std-env.mjs +158 -0
  69. package/dist/_libs/strip-literal.mjs +51 -0
  70. package/dist/{_chunks/_deps → _libs}/tinyglobby.mjs +32 -33
  71. package/dist/_libs/ultrahtml.mjs +138 -0
  72. package/dist/_libs/unimport.mjs +3520 -0
  73. package/dist/_libs/untyped.mjs +271 -0
  74. package/dist/_libs/unwasm.mjs +5825 -0
  75. package/dist/{_chunks/_deps/@pi0 → _libs}/vite-plugin-fullstack.mjs +28 -42
  76. package/dist/_presets.mjs +1723 -0
  77. package/dist/builder.d.mts +37 -35
  78. package/dist/builder.mjs +45 -117
  79. package/dist/cli/_chunks/build.mjs +43 -0
  80. package/dist/cli/_chunks/common.mjs +15 -0
  81. package/dist/cli/_chunks/detect-acorn.mjs +12 -0
  82. package/dist/cli/_chunks/dev.mjs +79 -0
  83. package/dist/cli/_chunks/dist.mjs +3 -0
  84. package/dist/cli/_chunks/dist2.mjs +4 -0
  85. package/dist/cli/_chunks/esm.mjs +3 -0
  86. package/dist/cli/_chunks/json5.mjs +4 -0
  87. package/dist/cli/_chunks/jsonc.mjs +4 -0
  88. package/dist/cli/_chunks/list.mjs +27 -0
  89. package/dist/cli/_chunks/multipart-parser.mjs +6 -0
  90. package/dist/cli/_chunks/prepare.mjs +19 -0
  91. package/dist/cli/_chunks/run.mjs +55 -0
  92. package/dist/cli/_chunks/task.mjs +16 -0
  93. package/dist/cli/_chunks/toml.mjs +4 -0
  94. package/dist/cli/_chunks/yaml.mjs +4 -0
  95. package/dist/cli/index.d.mts +1 -1
  96. package/dist/cli/index.mjs +19 -18
  97. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -0
  98. package/dist/presets/_nitro/runtime/nitro-dev.mjs +42 -33
  99. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +2 -2
  100. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +4 -8
  101. package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -0
  102. package/dist/presets/_nitro/runtime/service-worker.mjs +14 -11
  103. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -0
  104. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +6 -5
  105. package/dist/presets/aws-lambda/runtime/_utils.d.mts +8 -13
  106. package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
  107. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -2
  108. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +25 -27
  109. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +7 -7
  110. package/dist/presets/azure/runtime/_utils.mjs +43 -43
  111. package/dist/presets/azure/runtime/azure-swa.d.mts +2 -2
  112. package/dist/presets/azure/runtime/azure-swa.mjs +22 -21
  113. package/dist/presets/bun/runtime/bun.d.mts +1 -0
  114. package/dist/presets/bun/runtime/bun.mjs +18 -17
  115. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +10 -7
  116. package/dist/presets/cloudflare/runtime/_module-handler.mjs +78 -87
  117. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +6 -14
  118. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +53 -58
  119. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -7
  120. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +12 -14
  121. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +12 -12
  122. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +35 -39
  123. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
  124. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +86 -76
  125. package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -0
  126. package/dist/presets/deno/runtime/deno-deploy.mjs +12 -11
  127. package/dist/presets/deno/runtime/deno-server.d.mts +2 -1
  128. package/dist/presets/deno/runtime/deno-server.mjs +31 -39
  129. package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -1
  130. package/dist/presets/netlify/runtime/netlify-edge.mjs +14 -11
  131. package/dist/presets/netlify/runtime/netlify.mjs +11 -17
  132. package/dist/presets/node/runtime/node-cluster.mjs +49 -48
  133. package/dist/presets/node/runtime/node-middleware.d.mts +3 -2
  134. package/dist/presets/node/runtime/node-middleware.mjs +7 -6
  135. package/dist/presets/node/runtime/node-server.mjs +33 -23
  136. package/dist/presets/standard/runtime/server.d.mts +1 -3
  137. package/dist/presets/standard/runtime/server.mjs +1 -3
  138. package/dist/presets/stormkit/runtime/stormkit.d.mts +13 -13
  139. package/dist/presets/stormkit/runtime/stormkit.mjs +20 -20
  140. package/dist/presets/vercel/runtime/vercel.d.mts +3 -3
  141. package/dist/presets/vercel/runtime/vercel.mjs +15 -14
  142. package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -0
  143. package/dist/presets/winterjs/runtime/winterjs.mjs +72 -68
  144. package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
  145. package/dist/runtime/index.d.mts +12 -1
  146. package/dist/runtime/index.mjs +12 -7
  147. package/dist/runtime/internal/app.mjs +175 -162
  148. package/dist/runtime/internal/cache.d.mts +10 -4
  149. package/dist/runtime/internal/cache.mjs +247 -216
  150. package/dist/runtime/internal/context.d.mts +9 -9
  151. package/dist/runtime/internal/context.mjs +17 -10
  152. package/dist/runtime/internal/database.mjs +8 -10
  153. package/dist/runtime/internal/error/dev.d.mts +5 -4
  154. package/dist/runtime/internal/error/dev.mjs +106 -105
  155. package/dist/runtime/internal/error/prod.d.mts +2 -2
  156. package/dist/runtime/internal/error/prod.mjs +48 -52
  157. package/dist/runtime/internal/error/utils.d.mts +4 -4
  158. package/dist/runtime/internal/error/utils.mjs +1 -1
  159. package/dist/runtime/internal/index.d.mts +2 -0
  160. package/dist/runtime/internal/index.mjs +2 -0
  161. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +14 -14
  162. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +248 -209
  163. package/dist/runtime/internal/meta.d.mts +1 -1
  164. package/dist/runtime/internal/meta.mjs +1 -1
  165. package/dist/runtime/internal/plugin.d.mts +2 -2
  166. package/dist/runtime/internal/plugin.mjs +1 -1
  167. package/dist/runtime/internal/renderer.mjs +39 -31
  168. package/dist/runtime/internal/route-rules.d.mts +8 -8
  169. package/dist/runtime/internal/route-rules.mjs +53 -51
  170. package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -30
  171. package/dist/runtime/internal/routes/dev-tasks.mjs +15 -17
  172. package/dist/runtime/internal/routes/openapi.d.mts +1 -0
  173. package/dist/runtime/internal/routes/openapi.mjs +81 -87
  174. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  175. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
  176. package/dist/runtime/internal/routes/renderer-template.dev.mjs +10 -17
  177. package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
  178. package/dist/runtime/internal/routes/scalar.d.mts +1 -0
  179. package/dist/runtime/internal/routes/scalar.mjs +22 -23
  180. package/dist/runtime/internal/routes/swagger.d.mts +1 -0
  181. package/dist/runtime/internal/routes/swagger.mjs +9 -11
  182. package/dist/runtime/internal/runtime-config.d.mts +4 -4
  183. package/dist/runtime/internal/runtime-config.mjs +40 -35
  184. package/dist/runtime/internal/shutdown.d.mts +2 -7
  185. package/dist/runtime/internal/shutdown.mjs +30 -29
  186. package/dist/runtime/internal/static.mjs +63 -74
  187. package/dist/runtime/internal/storage.mjs +2 -2
  188. package/dist/runtime/internal/task.d.mts +6 -6
  189. package/dist/runtime/internal/task.mjs +56 -59
  190. package/dist/runtime/internal/utils.d.mts +1 -1
  191. package/dist/runtime/internal/utils.mjs +4 -10
  192. package/dist/types/index.d.mts +2566 -3851
  193. package/dist/types/index.mjs +1 -1
  194. package/dist/vite.d.mts +61 -51
  195. package/dist/vite.mjs +55 -132
  196. package/package.json +10 -10
  197. package/dist/_build/build.mjs +0 -368
  198. package/dist/_build/build2.mjs +0 -556
  199. package/dist/_build/info.mjs +0 -1002
  200. package/dist/_build/prepare.mjs +0 -1511
  201. package/dist/_build/snapshot.mjs +0 -185
  202. package/dist/_build/vite.mjs +0 -959
  203. package/dist/_build/vite2.mjs +0 -149
  204. package/dist/_chunks/_deps/@jridgewell/gen-mapping.mjs +0 -189
  205. package/dist/_chunks/_deps/@jridgewell/remapping.mjs +0 -137
  206. package/dist/_chunks/_deps/@jridgewell/resolve-uri.mjs +0 -231
  207. package/dist/_chunks/_deps/@jridgewell/sourcemap-codec.mjs +0 -173
  208. package/dist/_chunks/_deps/@jridgewell/trace-mapping.mjs +0 -170
  209. package/dist/_chunks/_deps/@rollup/plugin-alias.mjs +0 -89
  210. package/dist/_chunks/_deps/@rollup/plugin-commonjs.mjs +0 -2376
  211. package/dist/_chunks/_deps/@rollup/plugin-inject.mjs +0 -212
  212. package/dist/_chunks/_deps/@rollup/plugin-json.mjs +0 -37
  213. package/dist/_chunks/_deps/@rollup/plugin-node-resolve.mjs +0 -1386
  214. package/dist/_chunks/_deps/@rollup/plugin-replace.mjs +0 -133
  215. package/dist/_chunks/_deps/@rollup/pluginutils.mjs +0 -346
  216. package/dist/_chunks/_deps/acorn.mjs +0 -6225
  217. package/dist/_chunks/_deps/c12.mjs +0 -510
  218. package/dist/_chunks/_deps/chokidar.mjs +0 -1428
  219. package/dist/_chunks/_deps/citty.mjs +0 -460
  220. package/dist/_chunks/_deps/commondir.mjs +0 -77
  221. package/dist/_chunks/_deps/compatx.mjs +0 -76
  222. package/dist/_chunks/_deps/confbox.mjs +0 -300
  223. package/dist/_chunks/_deps/debug.mjs +0 -885
  224. package/dist/_chunks/_deps/deepmerge.mjs +0 -147
  225. package/dist/_chunks/_deps/depd.mjs +0 -550
  226. package/dist/_chunks/_deps/dot-prop.mjs +0 -282
  227. package/dist/_chunks/_deps/dotenv.mjs +0 -555
  228. package/dist/_chunks/_deps/duplexer.mjs +0 -1
  229. package/dist/_chunks/_deps/ee-first.mjs +0 -104
  230. package/dist/_chunks/_deps/encodeurl.mjs +0 -69
  231. package/dist/_chunks/_deps/escape-html.mjs +0 -87
  232. package/dist/_chunks/_deps/escape-string-regexp.mjs +0 -13
  233. package/dist/_chunks/_deps/estree-walker.mjs +0 -433
  234. package/dist/_chunks/_deps/etag.mjs +0 -147
  235. package/dist/_chunks/_deps/exsolve.mjs +0 -1416
  236. package/dist/_chunks/_deps/fresh.mjs +0 -145
  237. package/dist/_chunks/_deps/function-bind.mjs +0 -106
  238. package/dist/_chunks/_deps/giget.mjs +0 -451
  239. package/dist/_chunks/_deps/gzip-size.mjs +0 -19
  240. package/dist/_chunks/_deps/hasown.mjs +0 -19
  241. package/dist/_chunks/_deps/http-errors.mjs +0 -307
  242. package/dist/_chunks/_deps/httpxy.mjs +0 -580
  243. package/dist/_chunks/_deps/inherits.mjs +0 -57
  244. package/dist/_chunks/_deps/is-core-module.mjs +0 -596
  245. package/dist/_chunks/_deps/is-module.mjs +0 -25
  246. package/dist/_chunks/_deps/is-reference.mjs +0 -31
  247. package/dist/_chunks/_deps/klona.mjs +0 -137
  248. package/dist/_chunks/_deps/knitwork.mjs +0 -172
  249. package/dist/_chunks/_deps/local-pkg.mjs +0 -163
  250. package/dist/_chunks/_deps/mime-db.mjs +0 -11685
  251. package/dist/_chunks/_deps/mime-types.mjs +0 -287
  252. package/dist/_chunks/_deps/mime.mjs +0 -1172
  253. package/dist/_chunks/_deps/mlly.mjs +0 -2413
  254. package/dist/_chunks/_deps/ms.mjs +0 -172
  255. package/dist/_chunks/_deps/node-fetch-native.mjs +0 -3
  256. package/dist/_chunks/_deps/nypm.mjs +0 -219
  257. package/dist/_chunks/_deps/on-finished.mjs +0 -246
  258. package/dist/_chunks/_deps/parseurl.mjs +0 -168
  259. package/dist/_chunks/_deps/path-parse.mjs +0 -85
  260. package/dist/_chunks/_deps/pathe.mjs +0 -251
  261. package/dist/_chunks/_deps/perfect-debounce.mjs +0 -88
  262. package/dist/_chunks/_deps/picomatch.mjs +0 -2144
  263. package/dist/_chunks/_deps/pkg-types.mjs +0 -247
  264. package/dist/_chunks/_deps/pretty-bytes.mjs +0 -180
  265. package/dist/_chunks/_deps/quansync.mjs +0 -99
  266. package/dist/_chunks/_deps/range-parser.mjs +0 -171
  267. package/dist/_chunks/_deps/rc9.mjs +0 -219
  268. package/dist/_chunks/_deps/readdirp.mjs +0 -245
  269. package/dist/_chunks/_deps/resolve.mjs +0 -1260
  270. package/dist/_chunks/_deps/send.mjs +0 -1022
  271. package/dist/_chunks/_deps/serve-static.mjs +0 -228
  272. package/dist/_chunks/_deps/setprototypeof.mjs +0 -26
  273. package/dist/_chunks/_deps/statuses.mjs +0 -457
  274. package/dist/_chunks/_deps/std-env.mjs +0 -3
  275. package/dist/_chunks/_deps/strip-literal.mjs +0 -67
  276. package/dist/_chunks/_deps/supports-color.mjs +0 -44
  277. package/dist/_chunks/_deps/tinyexec.mjs +0 -552
  278. package/dist/_chunks/_deps/toidentifier.mjs +0 -41
  279. package/dist/_chunks/_deps/ultrahtml.mjs +0 -3
  280. package/dist/_chunks/_deps/unimport.mjs +0 -2267
  281. package/dist/_chunks/_deps/unplugin-utils.mjs +0 -65
  282. package/dist/_chunks/_deps/unplugin.mjs +0 -1294
  283. package/dist/_chunks/_deps/untyped.mjs +0 -375
  284. package/dist/_chunks/_deps/unwasm.mjs +0 -6959
  285. package/dist/_chunks/_deps/webpack-virtual-modules.mjs +0 -360
  286. package/dist/_chunks/_presets/_all.mjs +0 -59
  287. package/dist/_chunks/_presets/_nitro.mjs +0 -74
  288. package/dist/_chunks/_presets/_resolve.mjs +0 -64
  289. package/dist/_chunks/_presets/_static.mjs +0 -69
  290. package/dist/_chunks/_presets/_types.mjs +0 -3
  291. package/dist/_chunks/_presets/_utils.mjs +0 -31
  292. package/dist/_chunks/_presets/alwaysdata.mjs +0 -17
  293. package/dist/_chunks/_presets/aws-amplify.mjs +0 -111
  294. package/dist/_chunks/_presets/aws-lambda.mjs +0 -23
  295. package/dist/_chunks/_presets/azure.mjs +0 -162
  296. package/dist/_chunks/_presets/bun.mjs +0 -19
  297. package/dist/_chunks/_presets/cleavr.mjs +0 -15
  298. package/dist/_chunks/_presets/cloudflare.mjs +0 -608
  299. package/dist/_chunks/_presets/deno.mjs +0 -196
  300. package/dist/_chunks/_presets/digitalocean.mjs +0 -14
  301. package/dist/_chunks/_presets/firebase.mjs +0 -47
  302. package/dist/_chunks/_presets/flightcontrol.mjs +0 -14
  303. package/dist/_chunks/_presets/genezio.mjs +0 -13
  304. package/dist/_chunks/_presets/heroku.mjs +0 -14
  305. package/dist/_chunks/_presets/iis.mjs +0 -194
  306. package/dist/_chunks/_presets/index.mjs +0 -62
  307. package/dist/_chunks/_presets/koyeb.mjs +0 -14
  308. package/dist/_chunks/_presets/netlify.mjs +0 -241
  309. package/dist/_chunks/_presets/node.mjs +0 -54
  310. package/dist/_chunks/_presets/platform.mjs +0 -14
  311. package/dist/_chunks/_presets/render.mjs +0 -14
  312. package/dist/_chunks/_presets/standard.mjs +0 -23
  313. package/dist/_chunks/_presets/stormkit.mjs +0 -18
  314. package/dist/_chunks/_presets/vercel.mjs +0 -375
  315. package/dist/_chunks/_presets/winterjs.mjs +0 -22
  316. package/dist/_chunks/_presets/zeabur.mjs +0 -69
  317. package/dist/_chunks/_presets/zerops.mjs +0 -27
  318. package/dist/_chunks/app.mjs +0 -600
  319. package/dist/_chunks/builder.mjs +0 -648
  320. package/dist/_chunks/server.mjs +0 -256
  321. package/dist/_cli/build.mjs +0 -49
  322. package/dist/_cli/common.mjs +0 -13
  323. package/dist/_cli/dev.mjs +0 -121
  324. package/dist/_cli/index.mjs +0 -16
  325. package/dist/_cli/list.mjs +0 -33
  326. package/dist/_cli/prepare.mjs +0 -23
  327. package/dist/_cli/run.mjs +0 -59
  328. package/dist/presets/cloudflare/runtime/shims/workers.dev.d.mts +0 -21
  329. package/dist/runtime/internal/empty.d.mts +0 -0
  330. package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
  331. package/dist/runtime/internal/vite/dev-worker.d.mts +0 -1
  332. package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
  333. package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
  334. /package/lib/{indexd.mts → index.d.mts} +0 -0
@@ -1,510 +0,0 @@
1
- import { existsSync, statSync, promises } from 'node:fs';
2
- import { rm, readFile } from 'node:fs/promises';
3
- import { pathToFileURL } from 'node:url';
4
- import { homedir } from 'node:os';
5
- import { r as resolveModulePath } from './exsolve.mjs';
6
- import { createJiti } from 'jiti';
7
- import { r as read, a as readUser } from './rc9.mjs';
8
- import { defu } from 'defu';
9
- import { f as findWorkspaceDir, r as readPackageJSON } from './pkg-types.mjs';
10
- import { m as mainExports } from './dotenv.mjs';
11
- import { r as resolve, j as join, d as dirname, b as basename, e as extname, n as normalize } from './pathe.mjs';
12
- import { d as debounce } from './perfect-debounce.mjs';
13
-
14
- async function setupDotenv(options) {
15
- const targetEnvironment = options.env ?? process.env;
16
- const environment = await loadDotenv({
17
- cwd: options.cwd,
18
- fileName: options.fileName ?? ".env",
19
- env: targetEnvironment,
20
- interpolate: options.interpolate ?? true
21
- });
22
- const dotenvVars = getDotEnvVars(targetEnvironment);
23
- for (const key in environment) {
24
- if (key.startsWith("_")) {
25
- continue;
26
- }
27
- if (targetEnvironment[key] === void 0 || dotenvVars.has(key)) {
28
- targetEnvironment[key] = environment[key];
29
- }
30
- }
31
- return environment;
32
- }
33
- async function loadDotenv(options) {
34
- const environment = /* @__PURE__ */ Object.create(null);
35
- const cwd = resolve(options.cwd || ".");
36
- const _fileName = options.fileName || ".env";
37
- const dotenvFiles = typeof _fileName === "string" ? [_fileName] : _fileName;
38
- const dotenvVars = getDotEnvVars(options.env || {});
39
- Object.assign(environment, options.env);
40
- for (const file of dotenvFiles) {
41
- const dotenvFile = resolve(cwd, file);
42
- if (!statSync(dotenvFile, { throwIfNoEntry: false })?.isFile()) {
43
- continue;
44
- }
45
- const parsed = mainExports.parse(await promises.readFile(dotenvFile, "utf8"));
46
- for (const key in parsed) {
47
- if (key in environment && !dotenvVars.has(key)) {
48
- continue;
49
- }
50
- environment[key] = parsed[key];
51
- dotenvVars.add(key);
52
- }
53
- }
54
- if (options.interpolate) {
55
- interpolate(environment);
56
- }
57
- return environment;
58
- }
59
- function interpolate(target, source = {}, parse = (v) => v) {
60
- function getValue(key) {
61
- return source[key] === void 0 ? target[key] : source[key];
62
- }
63
- function interpolate2(value, parents = []) {
64
- if (typeof value !== "string") {
65
- return value;
66
- }
67
- const matches = value.match(/(.?\${?(?:[\w:]+)?}?)/g) || [];
68
- return parse(
69
- // eslint-disable-next-line unicorn/no-array-reduce
70
- matches.reduce((newValue, match) => {
71
- const parts = /(.?)\${?([\w:]+)?}?/g.exec(match) || [];
72
- const prefix = parts[1];
73
- let value2, replacePart;
74
- if (prefix === "\\") {
75
- replacePart = parts[0] || "";
76
- value2 = replacePart.replace(String.raw`\$`, "$");
77
- } else {
78
- const key = parts[2];
79
- replacePart = (parts[0] || "").slice(prefix.length);
80
- if (parents.includes(key)) {
81
- console.warn(
82
- `Please avoid recursive environment variables ( loop: ${parents.join(
83
- " > "
84
- )} > ${key} )`
85
- );
86
- return "";
87
- }
88
- value2 = getValue(key);
89
- value2 = interpolate2(value2, [...parents, key]);
90
- }
91
- return value2 === void 0 ? newValue : newValue.replace(replacePart, value2);
92
- }, value)
93
- );
94
- }
95
- for (const key in target) {
96
- target[key] = interpolate2(getValue(key));
97
- }
98
- }
99
- function getDotEnvVars(targetEnvironment) {
100
- const globalRegistry = globalThis.__c12_dotenv_vars__ ||= /* @__PURE__ */ new Map();
101
- if (!globalRegistry.has(targetEnvironment)) {
102
- globalRegistry.set(targetEnvironment, /* @__PURE__ */ new Set());
103
- }
104
- return globalRegistry.get(targetEnvironment);
105
- }
106
-
107
- const _normalize = (p) => p?.replace(/\\/g, "/");
108
- const ASYNC_LOADERS = {
109
- ".yaml": () => import('./confbox.mjs').then(function (n) { return n.y; }).then((r) => r.parseYAML),
110
- ".yml": () => import('./confbox.mjs').then(function (n) { return n.y; }).then((r) => r.parseYAML),
111
- ".jsonc": () => import('./confbox.mjs').then(function (n) { return n.c; }).then((r) => r.parseJSONC),
112
- ".json5": () => import('./confbox.mjs').then(function (n) { return n.j; }).then((r) => r.parseJSON5),
113
- ".toml": () => import('./confbox.mjs').then(function (n) { return n.t; }).then((r) => r.parseTOML)
114
- };
115
- const SUPPORTED_EXTENSIONS = Object.freeze([
116
- // with jiti
117
- ".js",
118
- ".ts",
119
- ".mjs",
120
- ".cjs",
121
- ".mts",
122
- ".cts",
123
- ".json",
124
- // with confbox
125
- ".jsonc",
126
- ".json5",
127
- ".yaml",
128
- ".yml",
129
- ".toml"
130
- ]);
131
- async function loadConfig(options) {
132
- options.cwd = resolve(process.cwd(), options.cwd || ".");
133
- options.name = options.name || "config";
134
- options.envName = options.envName ?? process.env.NODE_ENV;
135
- options.configFile = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
136
- options.rcFile = options.rcFile ?? `.${options.name}rc`;
137
- if (options.extend !== false) {
138
- options.extend = {
139
- extendKey: "extends",
140
- ...options.extend
141
- };
142
- }
143
- const _merger = options.merger || defu;
144
- options.jiti = options.jiti || createJiti(join(options.cwd, options.configFile), {
145
- interopDefault: true,
146
- moduleCache: false,
147
- extensions: [...SUPPORTED_EXTENSIONS],
148
- ...options.jitiOptions
149
- });
150
- const r = {
151
- config: {},
152
- cwd: options.cwd,
153
- configFile: resolve(options.cwd, options.configFile),
154
- layers: [],
155
- _configFile: void 0
156
- };
157
- const rawConfigs = {
158
- overrides: options.overrides,
159
- main: void 0,
160
- rc: void 0,
161
- packageJson: void 0,
162
- defaultConfig: options.defaultConfig
163
- };
164
- if (options.dotenv) {
165
- await setupDotenv({
166
- cwd: options.cwd,
167
- ...options.dotenv === true ? {} : options.dotenv
168
- });
169
- }
170
- const _mainConfig = await resolveConfig(".", options);
171
- if (_mainConfig.configFile) {
172
- rawConfigs.main = _mainConfig.config;
173
- r.configFile = _mainConfig.configFile;
174
- r._configFile = _mainConfig._configFile;
175
- }
176
- if (_mainConfig.meta) {
177
- r.meta = _mainConfig.meta;
178
- }
179
- if (options.rcFile) {
180
- const rcSources = [];
181
- rcSources.push(read({ name: options.rcFile, dir: options.cwd }));
182
- if (options.globalRc) {
183
- const workspaceDir = await findWorkspaceDir(options.cwd).catch(() => {
184
- });
185
- if (workspaceDir) {
186
- rcSources.push(read({ name: options.rcFile, dir: workspaceDir }));
187
- }
188
- rcSources.push(readUser({ name: options.rcFile, dir: options.cwd }));
189
- }
190
- rawConfigs.rc = _merger({}, ...rcSources);
191
- }
192
- if (options.packageJson) {
193
- const keys = (Array.isArray(options.packageJson) ? options.packageJson : [
194
- typeof options.packageJson === "string" ? options.packageJson : options.name
195
- ]).filter((t) => t && typeof t === "string");
196
- const pkgJsonFile = await readPackageJSON(options.cwd).catch(() => {
197
- });
198
- const values = keys.map((key) => pkgJsonFile?.[key]);
199
- rawConfigs.packageJson = _merger({}, ...values);
200
- }
201
- const configs = {};
202
- for (const key in rawConfigs) {
203
- const value = rawConfigs[key];
204
- configs[key] = await (typeof value === "function" ? value({ configs, rawConfigs }) : value);
205
- }
206
- if (Array.isArray(configs.main)) {
207
- r.config = configs.main;
208
- } else {
209
- r.config = _merger(
210
- configs.overrides,
211
- configs.main,
212
- configs.rc,
213
- configs.packageJson,
214
- configs.defaultConfig
215
- );
216
- if (options.extend) {
217
- await extendConfig(r.config, options);
218
- r.layers = r.config._layers;
219
- delete r.config._layers;
220
- r.config = _merger(r.config, ...r.layers.map((e) => e.config));
221
- }
222
- }
223
- const baseLayers = [
224
- configs.overrides && {
225
- config: configs.overrides,
226
- configFile: void 0,
227
- cwd: void 0
228
- },
229
- { config: configs.main, configFile: options.configFile, cwd: options.cwd },
230
- configs.rc && { config: configs.rc, configFile: options.rcFile },
231
- configs.packageJson && {
232
- config: configs.packageJson,
233
- configFile: "package.json"
234
- }
235
- ].filter((l) => l && l.config);
236
- r.layers = [...baseLayers, ...r.layers];
237
- if (options.defaults) {
238
- r.config = _merger(r.config, options.defaults);
239
- }
240
- if (options.omit$Keys) {
241
- for (const key in r.config) {
242
- if (key.startsWith("$")) {
243
- delete r.config[key];
244
- }
245
- }
246
- }
247
- if (options.configFileRequired && !r._configFile) {
248
- throw new Error(`Required config (${r.configFile}) cannot be resolved.`);
249
- }
250
- return r;
251
- }
252
- async function extendConfig(config, options) {
253
- config._layers = config._layers || [];
254
- if (!options.extend) {
255
- return;
256
- }
257
- let keys = options.extend.extendKey;
258
- if (typeof keys === "string") {
259
- keys = [keys];
260
- }
261
- const extendSources = [];
262
- for (const key of keys) {
263
- extendSources.push(
264
- ...(Array.isArray(config[key]) ? config[key] : [config[key]]).filter(
265
- Boolean
266
- )
267
- );
268
- delete config[key];
269
- }
270
- for (let extendSource of extendSources) {
271
- const originalExtendSource = extendSource;
272
- let sourceOptions = {};
273
- if (extendSource.source) {
274
- sourceOptions = extendSource.options || {};
275
- extendSource = extendSource.source;
276
- }
277
- if (Array.isArray(extendSource)) {
278
- sourceOptions = extendSource[1] || {};
279
- extendSource = extendSource[0];
280
- }
281
- if (typeof extendSource !== "string") {
282
- console.warn(
283
- `Cannot extend config from \`${JSON.stringify(
284
- originalExtendSource
285
- )}\` in ${options.cwd}`
286
- );
287
- continue;
288
- }
289
- const _config = await resolveConfig(extendSource, options, sourceOptions);
290
- if (!_config.config) {
291
- console.warn(
292
- `Cannot extend config from \`${extendSource}\` in ${options.cwd}`
293
- );
294
- continue;
295
- }
296
- await extendConfig(_config.config, { ...options, cwd: _config.cwd });
297
- config._layers.push(_config);
298
- if (_config.config._layers) {
299
- config._layers.push(..._config.config._layers);
300
- delete _config.config._layers;
301
- }
302
- }
303
- }
304
- const GIGET_PREFIXES = [
305
- "gh:",
306
- "github:",
307
- "gitlab:",
308
- "bitbucket:",
309
- "https://",
310
- "http://"
311
- ];
312
- const NPM_PACKAGE_RE = /^(@[\da-z~-][\d._a-z~-]*\/)?[\da-z~-][\d._a-z~-]*($|\/.*)/;
313
- async function resolveConfig(source, options, sourceOptions = {}) {
314
- if (options.resolve) {
315
- const res2 = await options.resolve(source, options);
316
- if (res2) {
317
- return res2;
318
- }
319
- }
320
- const _merger = options.merger || defu;
321
- const customProviderKeys = Object.keys(
322
- sourceOptions.giget?.providers || {}
323
- ).map((key) => `${key}:`);
324
- const gigetPrefixes = customProviderKeys.length > 0 ? [.../* @__PURE__ */ new Set([...customProviderKeys, ...GIGET_PREFIXES])] : GIGET_PREFIXES;
325
- if (options.giget !== false && gigetPrefixes.some((prefix) => source.startsWith(prefix))) {
326
- const { downloadTemplate } = await import('./giget.mjs');
327
- const { digest } = await import('ohash');
328
- const cloneName = source.replace(/\W+/g, "_").split("_").splice(0, 3).join("_") + "_" + digest(source).slice(0, 10).replace(/[-_]/g, "");
329
- let cloneDir;
330
- const localNodeModules = resolve(options.cwd, "node_modules");
331
- const parentDir = dirname(options.cwd);
332
- if (basename(parentDir) === ".c12") {
333
- cloneDir = join(parentDir, cloneName);
334
- } else if (existsSync(localNodeModules)) {
335
- cloneDir = join(localNodeModules, ".c12", cloneName);
336
- } else {
337
- cloneDir = process.env.XDG_CACHE_HOME ? resolve(process.env.XDG_CACHE_HOME, "c12", cloneName) : resolve(homedir(), ".cache/c12", cloneName);
338
- }
339
- if (existsSync(cloneDir) && !sourceOptions.install) {
340
- await rm(cloneDir, { recursive: true });
341
- }
342
- const cloned = await downloadTemplate(source, {
343
- dir: cloneDir,
344
- install: sourceOptions.install,
345
- force: sourceOptions.install,
346
- auth: sourceOptions.auth,
347
- ...options.giget,
348
- ...sourceOptions.giget
349
- });
350
- source = cloned.dir;
351
- }
352
- if (NPM_PACKAGE_RE.test(source)) {
353
- source = tryResolve(source, options) || source;
354
- }
355
- const ext = extname(source);
356
- const isDir = !ext || ext === basename(source);
357
- const cwd = resolve(options.cwd, isDir ? source : dirname(source));
358
- if (isDir) {
359
- source = options.configFile;
360
- }
361
- const res = {
362
- config: void 0,
363
- configFile: void 0,
364
- cwd,
365
- source,
366
- sourceOptions
367
- };
368
- res.configFile = tryResolve(resolve(cwd, source), options) || tryResolve(
369
- resolve(cwd, ".config", source.replace(/\.config$/, "")),
370
- options
371
- ) || tryResolve(resolve(cwd, ".config", source), options) || source;
372
- if (!existsSync(res.configFile)) {
373
- return res;
374
- }
375
- res._configFile = res.configFile;
376
- const configFileExt = extname(res.configFile) || "";
377
- if (configFileExt in ASYNC_LOADERS) {
378
- const asyncLoader = await ASYNC_LOADERS[configFileExt]();
379
- const contents = await readFile(res.configFile, "utf8");
380
- res.config = asyncLoader(contents);
381
- } else {
382
- res.config = await options.jiti.import(res.configFile, {
383
- default: true
384
- });
385
- }
386
- if (typeof res.config === "function") {
387
- res.config = await res.config(options.context);
388
- }
389
- if (options.envName) {
390
- const envConfig = {
391
- ...res.config["$" + options.envName],
392
- ...res.config.$env?.[options.envName]
393
- };
394
- if (Object.keys(envConfig).length > 0) {
395
- res.config = _merger(envConfig, res.config);
396
- }
397
- }
398
- res.meta = defu(res.sourceOptions.meta, res.config.$meta);
399
- delete res.config.$meta;
400
- if (res.sourceOptions.overrides) {
401
- res.config = _merger(res.sourceOptions.overrides, res.config);
402
- }
403
- res.configFile = _normalize(res.configFile);
404
- res.source = _normalize(res.source);
405
- return res;
406
- }
407
- function tryResolve(id, options) {
408
- const res = resolveModulePath(id, {
409
- try: true,
410
- from: pathToFileURL(join(options.cwd || ".", options.configFile || "/")),
411
- suffixes: ["", "/index"],
412
- extensions: SUPPORTED_EXTENSIONS,
413
- cache: false
414
- });
415
- return res ? normalize(res) : void 0;
416
- }
417
-
418
- const eventMap = {
419
- add: "created",
420
- change: "updated",
421
- unlink: "removed"
422
- };
423
- async function watchConfig(options) {
424
- let config = await loadConfig(options);
425
- const configName = options.name || "config";
426
- const configFileName = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
427
- const watchingFiles = [
428
- ...new Set(
429
- (config.layers || []).filter((l) => l.cwd).flatMap((l) => [
430
- ...SUPPORTED_EXTENSIONS.flatMap((ext) => [
431
- resolve(l.cwd, configFileName + ext),
432
- resolve(l.cwd, ".config", configFileName + ext),
433
- resolve(
434
- l.cwd,
435
- ".config",
436
- configFileName.replace(/\.config$/, "") + ext
437
- )
438
- ]),
439
- l.source && resolve(l.cwd, l.source),
440
- // TODO: Support watching rc from home and workspace
441
- options.rcFile && resolve(
442
- l.cwd,
443
- typeof options.rcFile === "string" ? options.rcFile : `.${configName}rc`
444
- ),
445
- options.packageJson && resolve(l.cwd, "package.json")
446
- ]).filter(Boolean)
447
- )
448
- ];
449
- const watch = await import('./chokidar.mjs').then((r) => r.watch || r.default || r);
450
- const { diff } = await import('ohash/utils');
451
- const _fswatcher = watch(watchingFiles, {
452
- ignoreInitial: true,
453
- ...options.chokidarOptions
454
- });
455
- const onChange = async (event, path) => {
456
- const type = eventMap[event];
457
- if (!type) {
458
- return;
459
- }
460
- if (options.onWatch) {
461
- await options.onWatch({
462
- type,
463
- path
464
- });
465
- }
466
- const oldConfig = config;
467
- try {
468
- config = await loadConfig(options);
469
- } catch (error) {
470
- console.warn(`Failed to load config ${path}
471
- ${error}`);
472
- return;
473
- }
474
- const changeCtx = {
475
- newConfig: config,
476
- oldConfig,
477
- getDiff: () => diff(oldConfig.config, config.config)
478
- };
479
- if (options.acceptHMR) {
480
- const changeHandled = await options.acceptHMR(changeCtx);
481
- if (changeHandled) {
482
- return;
483
- }
484
- }
485
- if (options.onUpdate) {
486
- await options.onUpdate(changeCtx);
487
- }
488
- };
489
- if (options.debounce === false) {
490
- _fswatcher.on("all", onChange);
491
- } else {
492
- _fswatcher.on("all", debounce(onChange, options.debounce ?? 100));
493
- }
494
- const utils = {
495
- watchingFiles,
496
- unwatch: async () => {
497
- await _fswatcher.close();
498
- }
499
- };
500
- return new Proxy(utils, {
501
- get(_, prop) {
502
- if (prop in utils) {
503
- return utils[prop];
504
- }
505
- return config[prop];
506
- }
507
- });
508
- }
509
-
510
- export { loadConfig as l, watchConfig as w };