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,1002 +0,0 @@
1
- import { r as replace$1 } from '../_chunks/_deps/@rollup/plugin-replace.mjs';
2
- import { defineEnv } from 'unenv';
3
- import { runtimeDir, runtimeDependencies } from 'nitro/runtime/meta';
4
- import { j as join, r as resolve, d as dirname, e as extname, a as relative } from '../_chunks/_deps/pathe.mjs';
5
- import { hash } from 'ohash';
6
- import { defu } from 'defu';
7
- import { u as unplugin } from '../_chunks/_deps/unimport.mjs';
8
- import { r as rollup } from '../_chunks/_deps/unwasm.mjs';
9
- import { connectors } from 'db0';
10
- import { camelCase } from 'scule';
11
- import { readFile, mkdir, unlink, symlink } from 'node:fs/promises';
12
- import { transform } from 'esbuild';
13
- import { promises } from 'node:fs';
14
- import { c as createEtag } from '../_chunks/_deps/etag.mjs';
15
- import { g as glob } from '../_chunks/_deps/tinyglobby.mjs';
16
- import { m as mime } from '../_chunks/_deps/mime.mjs';
17
- import { withTrailingSlash } from 'ufo';
18
- import { normalizeKey, builtinDrivers } from 'unstorage';
19
- import { b as genImport, a as genSafeVariableName } from '../_chunks/_deps/knitwork.mjs';
20
- import { rollupNodeFileTrace } from 'nf3';
21
- import { hasTemplateSyntax, compileTemplateToString, RENDER_CONTEXT_KEYS } from 'rendu';
22
- import { version } from 'nitro/meta';
23
- import { p as presetsWithConfig } from '../_chunks/_presets/_types.mjs';
24
- import { w as writeFile } from './prepare.mjs';
25
- import { dirname as dirname$1 } from 'node:path';
26
-
27
- const NO_REPLACE_RE = /ROLLUP_NO_REPLACE|\\0raw:/;
28
- function replace(options) {
29
- const _plugin = replace$1(options);
30
- return {
31
- ..._plugin,
32
- // https://github.com/rollup/plugins/blob/master/packages/replace/src/index.js#L94
33
- renderChunk(code, chunk, options2) {
34
- if (!NO_REPLACE_RE.test(code)) {
35
- return _plugin.renderChunk.call(this, code, chunk, options2);
36
- }
37
- }
38
- };
39
- }
40
-
41
- function baseBuildConfig(nitro) {
42
- const buildServerDir = join(nitro.options.buildDir, "dist/server");
43
- const presetsDir = resolve(runtimeDir, "../presets");
44
- const extensions = [".ts", ".mjs", ".js", ".json", ".node", ".tsx", ".jsx"];
45
- const isNodeless = nitro.options.node === false;
46
- let NODE_ENV = nitro.options.dev ? "development" : "production";
47
- if (nitro.options.preset === "nitro-prerender") {
48
- NODE_ENV = "prerender";
49
- }
50
- const buildEnvVars = {
51
- NODE_ENV,
52
- prerender: nitro.options.preset === "nitro-prerender",
53
- server: true,
54
- client: false,
55
- dev: String(nitro.options.dev),
56
- DEBUG: nitro.options.dev
57
- };
58
- const staticFlags = {
59
- dev: nitro.options.dev,
60
- preset: nitro.options.preset,
61
- prerender: nitro.options.preset === "nitro-prerender",
62
- server: true,
63
- client: false,
64
- nitro: true,
65
- baseURL: nitro.options.baseURL,
66
- // @ts-expect-error
67
- "versions.nitro": "",
68
- "versions?.nitro": "",
69
- // Internal
70
- _asyncContext: nitro.options.experimental.asyncContext,
71
- _websocket: nitro.options.experimental.websocket,
72
- _tasks: nitro.options.experimental.tasks
73
- };
74
- const replaceDelimiters = [
75
- String.raw`\b`,
76
- String.raw`(?![\w.$])`
77
- ];
78
- const replacements = {
79
- "typeof window": '"undefined"',
80
- _import_meta_url_: "import.meta.url",
81
- "globalThis.process.": "process.",
82
- "process.env.RUNTIME_CONFIG": () => JSON.stringify(nitro.options.runtimeConfig, null, 2),
83
- ...Object.fromEntries(
84
- Object.entries(buildEnvVars).map(([key, val]) => [
85
- `process.env.${key}`,
86
- JSON.stringify(val)
87
- ])
88
- ),
89
- ...Object.fromEntries(
90
- Object.entries(buildEnvVars).map(([key, val]) => [
91
- `import.meta.env.${key}`,
92
- JSON.stringify(val)
93
- ])
94
- ),
95
- ...Object.fromEntries(
96
- Object.entries(staticFlags).map(([key, val]) => [
97
- `process.${key}`,
98
- JSON.stringify(val)
99
- ])
100
- ),
101
- ...Object.fromEntries(
102
- Object.entries(staticFlags).map(([key, val]) => [
103
- `import.meta.${key}`,
104
- JSON.stringify(val)
105
- ])
106
- ),
107
- ...nitro.options.replace
108
- };
109
- const { env } = defineEnv({
110
- nodeCompat: isNodeless,
111
- npmShims: true,
112
- resolve: true,
113
- presets: nitro.options.unenv,
114
- overrides: {
115
- alias: nitro.options.alias
116
- }
117
- });
118
- const aliases = resolveAliases({
119
- "#internal/nitro": runtimeDir,
120
- "nitro/runtime": runtimeDir,
121
- "nitropack/runtime": runtimeDir,
122
- // Backwards compatibility
123
- ...env.alias
124
- });
125
- return {
126
- buildServerDir,
127
- presetsDir,
128
- extensions,
129
- isNodeless,
130
- buildEnvVars,
131
- staticFlags,
132
- replaceDelimiters,
133
- replacements,
134
- env,
135
- aliases
136
- };
137
- }
138
- function resolveAliases(_aliases) {
139
- const aliases = Object.fromEntries(
140
- Object.entries(_aliases).sort(
141
- ([a], [b]) => b.split("/").length - a.split("/").length || b.length - a.length
142
- )
143
- );
144
- for (const key in aliases) {
145
- for (const alias in aliases) {
146
- if (!["~", "@", "#"].includes(alias[0])) {
147
- continue;
148
- }
149
- if (alias === "@" && !aliases[key].startsWith("@/")) {
150
- continue;
151
- }
152
- if (aliases[key].startsWith(alias)) {
153
- aliases[key] = aliases[alias] + aliases[key].slice(alias.length);
154
- }
155
- }
156
- }
157
- return aliases;
158
- }
159
-
160
- const PREFIX = "\0virtual:";
161
- function virtual(modules, cache = {}) {
162
- const _modules = /* @__PURE__ */ new Map();
163
- for (const [id, mod] of Object.entries(modules)) {
164
- cache[id] = mod;
165
- _modules.set(id, mod);
166
- _modules.set(resolve(id), mod);
167
- }
168
- return {
169
- name: "virtual",
170
- resolveId(id, importer) {
171
- if (id in modules) {
172
- return PREFIX + id;
173
- }
174
- if (importer) {
175
- const importerNoPrefix = importer.startsWith(PREFIX) ? importer.slice(PREFIX.length) : importer;
176
- const resolved = resolve(dirname(importerNoPrefix), id);
177
- if (_modules.has(resolved)) {
178
- return PREFIX + resolved;
179
- }
180
- }
181
- return null;
182
- },
183
- async load(id) {
184
- if (!id.startsWith(PREFIX)) {
185
- return null;
186
- }
187
- const idNoPrefix = id.slice(PREFIX.length);
188
- if (!_modules.has(idNoPrefix)) {
189
- return null;
190
- }
191
- let m = _modules.get(idNoPrefix);
192
- if (typeof m === "function") {
193
- m = await m();
194
- }
195
- if (!m) {
196
- return null;
197
- }
198
- cache[id.replace(PREFIX, "")] = m;
199
- return {
200
- code: m,
201
- map: null
202
- };
203
- }
204
- };
205
- }
206
-
207
- function database(nitro) {
208
- if (!nitro.options.experimental.database) {
209
- return virtual(
210
- {
211
- "#nitro-internal-virtual/database": () => {
212
- return (
213
- /* js */
214
- `export const connectionConfigs = {};`
215
- );
216
- }
217
- },
218
- nitro.vfs
219
- );
220
- }
221
- const dbConfigs = nitro.options.dev && nitro.options.devDatabase || nitro.options.database;
222
- const connectorsNames = [
223
- ...new Set(
224
- Object.values(dbConfigs || {}).map((config) => config?.connector)
225
- )
226
- ].filter(Boolean);
227
- for (const name of connectorsNames) {
228
- if (!connectors[name]) {
229
- throw new Error(`Database connector "${name}" is invalid.`);
230
- }
231
- }
232
- return virtual(
233
- {
234
- "#nitro-internal-virtual/database": () => {
235
- return `
236
- ${connectorsNames.map(
237
- (name) => `import ${camelCase(name)}Connector from "${connectors[name]}";`
238
- ).join("\n")}
239
-
240
- export const connectionConfigs = {
241
- ${Object.entries(dbConfigs || {}).map(
242
- ([name, { connector, options }]) => `${name}: {
243
- connector: ${camelCase(connector)}Connector,
244
- options: ${JSON.stringify(options)}
245
- }`
246
- ).join(",\n")}
247
- };
248
- `;
249
- }
250
- },
251
- nitro.vfs
252
- );
253
- }
254
-
255
- const RuntimeRouteRules = [
256
- "headers",
257
- "redirect",
258
- "proxy",
259
- "cache"
260
- ];
261
- function routing(nitro) {
262
- return virtual(
263
- {
264
- // --- routing (routes, routeRules and middleware) ---
265
- "#nitro-internal-virtual/routing": () => {
266
- const allHandlers = uniqueBy(
267
- [
268
- ...Object.values(nitro.routing.routes.routes).map((h) => h.data),
269
- ...Object.values(nitro.routing.routedMiddleware.routes).map(
270
- (h) => h.data
271
- ),
272
- ...nitro.routing.globalMiddleware
273
- ],
274
- "_importHash"
275
- );
276
- const h3Imports = [
277
- allHandlers.some((h) => !h.lazy) && "toEventHandler",
278
- nitro.options.serverEntry && "toMiddleware",
279
- allHandlers.some((h) => h.lazy) && "defineLazyEventHandler"
280
- ].filter(Boolean);
281
- return (
282
- /* js */
283
- `
284
- import * as __routeRules__ from "nitro/runtime/internal/route-rules";
285
- ${nitro.options.serverEntry ? `import __serverEntry__ from ${JSON.stringify(nitro.options.serverEntry)};` : ""}
286
- import {${h3Imports.join(", ")}} from "h3";
287
-
288
- export const findRouteRules = ${nitro.routing.routeRules.compileToString({ serialize: serializeRouteRule, matchAll: true })}
289
-
290
- ${allHandlers.filter((h) => !h.lazy).map((h) => (
291
- /* js */
292
- `import ${h._importHash} from "${h.handler}";`
293
- )).join("\n")}
294
-
295
- ${allHandlers.filter((h) => h.lazy).map(
296
- (h) => (
297
- /* js */
298
- `const ${h._importHash} = defineLazyEventHandler(() => import("${h.handler}"));`
299
- )
300
- ).join("\n")}
301
-
302
- export const findRoute = ${nitro.routing.routes.compileToString({ serialize: serializeHandler })}
303
-
304
- export const findRoutedMiddleware = ${nitro.routing.routedMiddleware.compileToString({ serialize: serializeHandler, matchAll: true })};
305
-
306
- export const globalMiddleware = [
307
- ${nitro.routing.globalMiddleware.map((h) => h.lazy ? h._importHash : `toEventHandler(${h._importHash})`).join(",")}
308
- ${nitro.options.serverEntry ? `,toMiddleware(__serverEntry__)` : ""}
309
- ].filter(Boolean);
310
- `
311
- );
312
- },
313
- // --- routing-meta ---
314
- "#nitro-internal-virtual/routing-meta": () => {
315
- const routeHandlers = uniqueBy(
316
- Object.values(nitro.routing.routes.routes).map((h) => h.data),
317
- "_importHash"
318
- );
319
- return (
320
- /* js */
321
- `
322
- ${routeHandlers.map(
323
- (h) => (
324
- /* js */
325
- `import ${h._importHash}Meta from "${h.handler}?meta";`
326
- )
327
- ).join("\n")}
328
- export const handlersMeta = [
329
- ${routeHandlers.map(
330
- (h) => (
331
- /* js */
332
- `{ route: ${JSON.stringify(h.route)}, method: ${JSON.stringify(
333
- h.method?.toLowerCase()
334
- )}, meta: ${h._importHash}Meta }`
335
- )
336
- ).join(",\n")}
337
- ];
338
- `.trim()
339
- );
340
- }
341
- },
342
- nitro.vfs
343
- );
344
- }
345
- function uniqueBy(arr, key) {
346
- return [...new Map(arr.map((item) => [item[key], item])).values()];
347
- }
348
- function serializeHandler(h) {
349
- return `{${[
350
- `route:${JSON.stringify(h.route)}`,
351
- h.method && `method:${JSON.stringify(h.method)}`,
352
- h.meta && `meta:${JSON.stringify(h.meta)}`,
353
- `handler:${h.lazy ? h._importHash : `toEventHandler(${h._importHash})`}`
354
- ].filter(Boolean).join(",")}}`;
355
- }
356
- function serializeRouteRule(h) {
357
- return `[${Object.entries(h).filter(([name, options]) => options !== void 0 && name[0] !== "_").map(([name, options]) => {
358
- return `{${[
359
- `name:${JSON.stringify(name)}`,
360
- `route:${JSON.stringify(h._route)}`,
361
- h._method && `method:${JSON.stringify(h._method)}`,
362
- RuntimeRouteRules.includes(name) && `handler:__routeRules__.${name}`,
363
- `options:${JSON.stringify(options)}`
364
- ].filter(Boolean).join(",")}}`;
365
- }).join(",")}]`;
366
- }
367
-
368
- const virtualPrefix = "\0nitro-handler-meta:";
369
- const esbuildLoaders = {
370
- ".ts": "ts",
371
- ".js": "js",
372
- ".tsx": "tsx",
373
- ".jsx": "jsx"
374
- };
375
- function routeMeta(nitro) {
376
- return {
377
- name: "nitro:route-meta",
378
- async resolveId(id, importer, resolveOpts) {
379
- if (id.startsWith("\0")) {
380
- return;
381
- }
382
- if (id.endsWith(`?meta`)) {
383
- const resolved = await this.resolve(
384
- id.replace(`?meta`, ``),
385
- importer,
386
- resolveOpts
387
- );
388
- if (!resolved) {
389
- return;
390
- }
391
- return virtualPrefix + resolved.id;
392
- }
393
- },
394
- load(id) {
395
- if (id.startsWith(virtualPrefix)) {
396
- const fullPath = id.slice(virtualPrefix.length);
397
- return readFile(fullPath, { encoding: "utf8" });
398
- }
399
- },
400
- async transform(code, id) {
401
- if (!id.startsWith(virtualPrefix)) {
402
- return;
403
- }
404
- let meta = null;
405
- try {
406
- const ext = extname(id);
407
- const jsCode = await transform(code, {
408
- loader: esbuildLoaders[ext]
409
- }).then((r) => r.code);
410
- const ast = this.parse(jsCode);
411
- for (const node of ast.body) {
412
- if (node.type === "ExpressionStatement" && node.expression.type === "CallExpression" && node.expression.callee.type === "Identifier" && node.expression.callee.name === "defineRouteMeta" && node.expression.arguments.length === 1) {
413
- meta = astToObject(node.expression.arguments[0]);
414
- break;
415
- }
416
- }
417
- } catch (error) {
418
- nitro.logger.warn(
419
- `[handlers-meta] Cannot extra route meta for: ${id}: ${error}`
420
- );
421
- }
422
- return {
423
- code: `export default ${JSON.stringify(meta)};`,
424
- map: null
425
- };
426
- }
427
- };
428
- }
429
- function astToObject(node) {
430
- switch (node.type) {
431
- case "ObjectExpression": {
432
- const obj = {};
433
- for (const prop of node.properties) {
434
- if (prop.type === "Property") {
435
- const key = prop.key.name ?? prop.key.value;
436
- obj[key] = astToObject(prop.value);
437
- }
438
- }
439
- return obj;
440
- }
441
- case "ArrayExpression": {
442
- return node.elements.map((el) => astToObject(el)).filter(Boolean);
443
- }
444
- case "Literal": {
445
- return node.value;
446
- }
447
- }
448
- }
449
-
450
- function serverMain(nitro) {
451
- return {
452
- name: "nitro:server-main",
453
- renderChunk(code, chunk) {
454
- if (chunk.isEntry) {
455
- return {
456
- code: `globalThis.__nitro_main__ = import.meta.url; ${code}`,
457
- map: null
458
- };
459
- }
460
- }
461
- };
462
- }
463
-
464
- const readAssetHandler = {
465
- true: "node",
466
- node: "node",
467
- false: "null",
468
- deno: "deno",
469
- inline: "inline"
470
- };
471
- function publicAssets(nitro) {
472
- return virtual(
473
- {
474
- // #nitro-internal-virtual/public-assets-data
475
- "#nitro-internal-virtual/public-assets-data": async () => {
476
- const assets = {};
477
- const files = await glob("**", {
478
- cwd: nitro.options.output.publicDir,
479
- absolute: false,
480
- dot: true
481
- });
482
- for (const id of files) {
483
- let mimeType = mime.getType(id.replace(/\.(gz|br)$/, "")) || "text/plain";
484
- if (mimeType.startsWith("text")) {
485
- mimeType += "; charset=utf-8";
486
- }
487
- const fullPath = resolve(nitro.options.output.publicDir, id);
488
- const assetData = await promises.readFile(fullPath);
489
- const etag = createEtag(assetData);
490
- const stat = await promises.stat(fullPath);
491
- const assetId = "/" + decodeURIComponent(id);
492
- let encoding;
493
- if (id.endsWith(".gz")) {
494
- encoding = "gzip";
495
- } else if (id.endsWith(".br")) {
496
- encoding = "br";
497
- }
498
- assets[assetId] = {
499
- type: nitro._prerenderMeta?.[assetId]?.contentType || mimeType,
500
- encoding,
501
- etag,
502
- mtime: stat.mtime.toJSON(),
503
- size: stat.size,
504
- path: relative(nitro.options.output.serverDir, fullPath),
505
- data: nitro.options.serveStatic === "inline" ? assetData.toString("base64") : void 0
506
- };
507
- }
508
- return `export default ${JSON.stringify(assets, null, 2)};`;
509
- },
510
- // #nitro-internal-virtual/public-assets-node
511
- "#nitro-internal-virtual/public-assets-node": () => {
512
- return `
513
- import { promises as fsp } from 'node:fs'
514
- import { fileURLToPath } from 'node:url'
515
- import { resolve, dirname } from 'node:path'
516
- import assets from '#nitro-internal-virtual/public-assets-data'
517
- export function readAsset (id) {
518
- const serverDir = dirname(fileURLToPath(globalThis.__nitro_main__))
519
- return fsp.readFile(resolve(serverDir, assets[id].path))
520
- }`;
521
- },
522
- // #nitro-internal-virtual/public-assets-deno
523
- "#nitro-internal-virtual/public-assets-deno": () => {
524
- return `
525
- import assets from '#nitro-internal-virtual/public-assets-data'
526
- export function readAsset (id) {
527
- // https://deno.com/deploy/docs/serve-static-assets
528
- const path = '.' + decodeURIComponent(new URL(\`../public\${id}\`, 'file://').pathname)
529
- return Deno.readFile(path);
530
- }`;
531
- },
532
- // #nitro-internal-virtual/public-assets-null
533
- "#nitro-internal-virtual/public-assets-null": () => {
534
- return `
535
- export function readAsset (id) {
536
- return Promise.resolve(null);
537
- }`;
538
- },
539
- // #nitro-internal-virtual/public-assets-inline
540
- "#nitro-internal-virtual/public-assets-inline": () => {
541
- return `
542
- import assets from '#nitro-internal-virtual/public-assets-data'
543
- export function readAsset (id) {
544
- if (!assets[id]) { return undefined }
545
- if (assets[id]._data) { return assets[id]._data }
546
- if (!assets[id].data) { return assets[id].data }
547
- assets[id]._data = Uint8Array.from(atob(assets[id].data), (c) => c.charCodeAt(0))
548
- return assets[id]._data
549
- }`;
550
- },
551
- // #nitro-internal-virtual/public-assets
552
- "#nitro-internal-virtual/public-assets": () => {
553
- const publicAssetBases = Object.fromEntries(
554
- nitro.options.publicAssets.filter((dir) => !dir.fallthrough && dir.baseURL !== "/").map((dir) => [
555
- withTrailingSlash(dir.baseURL),
556
- { maxAge: dir.maxAge }
557
- ])
558
- );
559
- const handlerName = readAssetHandler[nitro.options.serveStatic] || "null";
560
- const readAssetImport = `#nitro-internal-virtual/public-assets-${handlerName}`;
561
- return `
562
- import assets from '#nitro-internal-virtual/public-assets-data'
563
- export { readAsset } from "${readAssetImport}"
564
- export const publicAssetBases = ${JSON.stringify(publicAssetBases)}
565
-
566
- export function isPublicAssetURL(id = '') {
567
- if (assets[id]) {
568
- return true
569
- }
570
- for (const base in publicAssetBases) {
571
- if (id.startsWith(base)) { return true }
572
- }
573
- return false
574
- }
575
-
576
- export function getPublicAssetMeta(id = '') {
577
- for (const base in publicAssetBases) {
578
- if (id.startsWith(base)) { return publicAssetBases[base] }
579
- }
580
- return {}
581
- }
582
-
583
- export function getAsset (id) {
584
- return assets[id]
585
- }
586
- `;
587
- }
588
- },
589
- nitro.vfs
590
- );
591
- }
592
-
593
- function serverAssets(nitro) {
594
- if (nitro.options.dev || nitro.options.preset === "nitro-prerender") {
595
- return virtual(
596
- { "#nitro-internal-virtual/server-assets": getAssetsDev(nitro) },
597
- nitro.vfs
598
- );
599
- }
600
- return virtual(
601
- {
602
- "#nitro-internal-virtual/server-assets": async () => {
603
- const assets = {};
604
- for (const asset of nitro.options.serverAssets) {
605
- const files = await glob(asset.pattern || "**/*", {
606
- cwd: asset.dir,
607
- absolute: false,
608
- ignore: asset.ignore
609
- });
610
- for (const _id of files) {
611
- const fsPath = resolve(asset.dir, _id);
612
- const id = asset.baseName + "/" + _id;
613
- assets[id] = { fsPath, meta: {} };
614
- let type = mime.getType(id) || "text/plain";
615
- if (type.startsWith("text")) {
616
- type += "; charset=utf-8";
617
- }
618
- const etag = createEtag(await promises.readFile(fsPath));
619
- const mtime = await promises.stat(fsPath).then((s) => s.mtime.toJSON());
620
- assets[id].meta = { type, etag, mtime };
621
- }
622
- }
623
- return getAssetProd(assets);
624
- }
625
- },
626
- nitro.vfs
627
- );
628
- }
629
- function getAssetsDev(nitro) {
630
- return `
631
- import { createStorage } from 'unstorage'
632
- import fsDriver from 'unstorage/drivers/fs'
633
-
634
- const serverAssets = ${JSON.stringify(nitro.options.serverAssets)}
635
-
636
- export const assets = createStorage()
637
-
638
- for (const asset of serverAssets) {
639
- assets.mount(asset.baseName, fsDriver({ base: asset.dir, ignore: (asset?.ignore || []) }))
640
- }`;
641
- }
642
- function getAssetProd(assets) {
643
- return `
644
- const _assets = {
645
- ${Object.entries(assets).map(
646
- ([id, asset]) => ` [${JSON.stringify(
647
- normalizeKey(id)
648
- )}]: {
649
- import: () => import(${JSON.stringify(
650
- "raw:" + asset.fsPath
651
- )}).then(r => r.default || r),
652
- meta: ${JSON.stringify(
653
- asset.meta
654
- )}
655
- }`
656
- ).join(",\n")}
657
- }
658
-
659
- const normalizeKey = ${normalizeKey.toString()}
660
-
661
- export const assets = {
662
- getKeys() {
663
- return Promise.resolve(Object.keys(_assets))
664
- },
665
- hasItem (id) {
666
- id = normalizeKey(id)
667
- return Promise.resolve(id in _assets)
668
- },
669
- getItem (id) {
670
- id = normalizeKey(id)
671
- return Promise.resolve(_assets[id] ? _assets[id].import() : null)
672
- },
673
- getMeta (id) {
674
- id = normalizeKey(id)
675
- return Promise.resolve(_assets[id] ? _assets[id].meta : {})
676
- }
677
- }
678
- `;
679
- }
680
-
681
- function storage(nitro) {
682
- const mounts = [];
683
- const isDevOrPrerender = nitro.options.dev || nitro.options.preset === "nitro-prerender";
684
- const storageMounts = isDevOrPrerender ? { ...nitro.options.storage, ...nitro.options.devStorage } : nitro.options.storage;
685
- for (const path in storageMounts) {
686
- const mount = storageMounts[path];
687
- mounts.push({
688
- path,
689
- driver: builtinDrivers[mount.driver] || mount.driver,
690
- opts: mount
691
- });
692
- }
693
- const driverImports = [...new Set(mounts.map((m) => m.driver))];
694
- const bundledStorageCode = `
695
- import { prefixStorage } from 'unstorage'
696
- import overlay from 'unstorage/drivers/overlay'
697
- import memory from 'unstorage/drivers/memory'
698
-
699
- const bundledStorage = ${JSON.stringify(nitro.options.bundledStorage)}
700
- for (const base of bundledStorage) {
701
- storage.mount(base, overlay({
702
- layers: [
703
- memory(),
704
- // TODO
705
- // prefixStorage(storage, base),
706
- prefixStorage(storage, 'assets:nitro:bundled:' + base)
707
- ]
708
- }))
709
- }`;
710
- return virtual(
711
- {
712
- "#nitro-internal-virtual/storage": (
713
- /* js */
714
- `
715
- import { createStorage } from 'unstorage'
716
- import { assets } from '#nitro-internal-virtual/server-assets'
717
-
718
- ${driverImports.map((i) => genImport(i, genSafeVariableName(i))).join("\n")}
719
-
720
- export function initStorage() {
721
- const storage = createStorage({})
722
- storage.mount('/assets', assets)
723
- ${mounts.map(
724
- (m) => `storage.mount('${m.path}', ${genSafeVariableName(
725
- m.driver
726
- )}(${JSON.stringify(m.opts)}))`
727
- ).join("\n")}
728
-
729
- ${!isDevOrPrerender && nitro.options.bundledStorage.length > 0 ? bundledStorageCode : ""}
730
- return storage
731
- }
732
- `
733
- )
734
- },
735
- nitro.vfs
736
- );
737
- }
738
-
739
- function errorHandler(nitro) {
740
- return virtual(
741
- {
742
- "#nitro-internal-virtual/error-handler": () => {
743
- const errorHandlers = Array.isArray(nitro.options.errorHandler) ? nitro.options.errorHandler : [nitro.options.errorHandler];
744
- const builtinHandler = join(
745
- runtimeDir,
746
- `internal/error/${nitro.options.dev ? "dev" : "prod"}`
747
- );
748
- return (
749
- /* js */
750
- `
751
- ${errorHandlers.map((h, i) => `import errorHandler$${i} from "${h}";`).join("\n")}
752
-
753
- const errorHandlers = [${errorHandlers.map((_, i) => `errorHandler$${i}`).join(", ")}];
754
-
755
- import { defaultHandler } from "${builtinHandler}";
756
-
757
- export default async function(error, event) {
758
- for (const handler of errorHandlers) {
759
- try {
760
- const response = await handler(error, event, { defaultHandler });
761
- if (response) {
762
- return response;
763
- }
764
- } catch(error) {
765
- // Handler itself thrown, log and continue
766
- console.error(error);
767
- }
768
- }
769
- // H3 will handle fallback
770
- }
771
- `
772
- );
773
- }
774
- },
775
- nitro.vfs
776
- );
777
- }
778
-
779
- function rendererTemplate(nitro) {
780
- return virtual(
781
- {
782
- "#nitro-internal-virtual/renderer-template": async () => {
783
- if (typeof nitro.options.renderer?.template !== "string") {
784
- return `export const rendererTemplate = () => '<!-- renderer.template is not set -->'; export const rendererTemplateFile = undefined;`;
785
- }
786
- if (nitro.options.dev) {
787
- return `import { readFile } from 'node:fs/promises';export const rendererTemplate = () => readFile(${JSON.stringify(nitro.options.renderer?.template)}, "utf8"); export const rendererTemplateFile = ${JSON.stringify(
788
- nitro.options.renderer?.template
789
- )};`;
790
- } else {
791
- const html = await readFile(nitro.options.renderer?.template, "utf8");
792
- if (hasTemplateSyntax(html)) {
793
- const template = compileTemplateToString(html, {
794
- contextKeys: [...RENDER_CONTEXT_KEYS]
795
- });
796
- return (
797
- /* js */
798
- `
799
- import { renderToResponse } from 'rendu'
800
- const template = ${template};
801
- export const rendererTemplate = (request) => renderToResponse(template, { request })
802
- `
803
- );
804
- } else {
805
- return (
806
- /* js */
807
- `
808
- import { HTTPResponse } from "h3";
809
- export const rendererTemplate = () => new HTTPResponse(${JSON.stringify(html)}, { headers: { "content-type": "text/html; charset=utf-8" } });
810
- `
811
- );
812
- }
813
- }
814
- }
815
- },
816
- nitro.vfs
817
- );
818
- }
819
-
820
- function featureFlags(nitro) {
821
- return virtual(
822
- {
823
- "#nitro-internal-virtual/feature-flags": () => {
824
- const featureFlags2 = {
825
- // Routing
826
- hasRoutes: nitro.routing.routes.hasRoutes(),
827
- hasRouteRules: nitro.routing.routeRules.hasRoutes(),
828
- hasRoutedMiddleware: nitro.routing.routedMiddleware.hasRoutes(),
829
- hasGlobalMiddleware: nitro.routing.globalMiddleware.length > 0 || !!nitro.options.serverEntry,
830
- // Plugins
831
- hasPlugins: nitro.options.plugins.length > 0,
832
- hasHooks: nitro.options.features?.runtimeHooks ?? nitro.options.plugins.length > 0
833
- };
834
- return (
835
- /* js */
836
- Object.entries(featureFlags2).map(
837
- ([key, value]) => (
838
- /* js */
839
- `export const ${key} = ${Boolean(value)};`
840
- )
841
- ).join("\n")
842
- );
843
- }
844
- },
845
- nitro.vfs
846
- );
847
- }
848
-
849
- const subpathMap = {
850
- "nitro/h3": "h3",
851
- "nitro/deps/h3": "h3",
852
- "nitro/deps/ofetch": "ofetch"
853
- };
854
- function nitroResolveIds() {
855
- return {
856
- name: "nitro:resolve-ids",
857
- resolveId: {
858
- order: "pre",
859
- handler(id, importer, rOpts) {
860
- if (importer && importer.startsWith("\0virtual:#nitro-internal-virtual")) {
861
- return this.resolve(id, runtimeDir, { skipSelf: true });
862
- }
863
- const mappedId = subpathMap[id];
864
- if (mappedId) {
865
- return this.resolve(mappedId, runtimeDir, { skipSelf: true });
866
- }
867
- }
868
- }
869
- };
870
- }
871
-
872
- function baseBuildPlugins(nitro, base) {
873
- const plugins = [];
874
- if (nitro.options.imports) {
875
- plugins.push(unplugin.rollup(nitro.options.imports));
876
- }
877
- if (nitro.options.experimental.wasm) {
878
- plugins.push(rollup(nitro.options.wasm || {}));
879
- }
880
- plugins.push(serverMain());
881
- const nitroPlugins = [...new Set(nitro.options.plugins)];
882
- plugins.push(
883
- virtual(
884
- {
885
- "#nitro-internal-virtual/plugins": (
886
- /* js */
887
- `
888
- ${nitroPlugins.map(
889
- (plugin) => `import _${hash(plugin).replace(/-/g, "")} from '${plugin}';`
890
- ).join("\n")}
891
-
892
- export const plugins = [
893
- ${nitroPlugins.map((plugin) => `_${hash(plugin).replace(/-/g, "")}`).join(",\n")}
894
- ]
895
- `
896
- )
897
- },
898
- nitro.vfs
899
- )
900
- );
901
- plugins.push(featureFlags(nitro));
902
- plugins.push(nitroResolveIds());
903
- plugins.push(serverAssets(nitro));
904
- plugins.push(publicAssets(nitro));
905
- plugins.push(storage(nitro));
906
- plugins.push(database(nitro));
907
- plugins.push(routing(nitro));
908
- if (nitro.options.experimental.openAPI) {
909
- plugins.push(routeMeta(nitro));
910
- }
911
- plugins.push(errorHandler(nitro));
912
- plugins.push(
913
- virtual(
914
- {
915
- "#nitro-internal-pollyfills": base.env.polyfill.map((p) => (
916
- /* js */
917
- `import '${p}';`
918
- )).join("\n") || /* js */
919
- `/* No polyfills */`
920
- },
921
- nitro.vfs
922
- )
923
- );
924
- plugins.push(virtual(nitro.options.virtual, nitro.vfs));
925
- if (nitro.options.renderer?.template) {
926
- plugins.push(rendererTemplate(nitro));
927
- }
928
- if (!nitro.options.noExternals) {
929
- plugins.push(
930
- rollupNodeFileTrace(
931
- defu(nitro.options.externals, {
932
- outDir: nitro.options.output.serverDir,
933
- moduleDirectories: nitro.options.nodeModulesDirs,
934
- external: [
935
- ...nitro.options.dev ? [nitro.options.buildDir] : [],
936
- ...nitro.options.nodeModulesDirs
937
- ],
938
- inline: [
939
- "#",
940
- "~",
941
- "@/",
942
- "~~",
943
- "@@/",
944
- "virtual:",
945
- "nitro/runtime",
946
- dirname(nitro.options.entry),
947
- ...nitro.options.experimental.wasm ? [(id) => id?.endsWith(".wasm")] : [],
948
- runtimeDir,
949
- nitro.options.srcDir,
950
- ...nitro.options.handlers.map((m) => m.handler).filter((i) => typeof i === "string"),
951
- ...nitro.options.dev || nitro.options.preset === "nitro-prerender" || nitro.options.experimental.bundleRuntimeDependencies === false ? [] : runtimeDependencies
952
- ],
953
- traceOptions: {
954
- base: "/",
955
- processCwd: nitro.options.rootDir,
956
- exportsOnly: true
957
- },
958
- traceAlias: {
959
- "h3-nightly": "h3",
960
- ...nitro.options.externals?.traceAlias
961
- },
962
- exportConditions: nitro.options.exportConditions,
963
- writePackageJson: true
964
- })
965
- )
966
- );
967
- }
968
- return plugins;
969
- }
970
-
971
- async function writeBuildInfo(nitro) {
972
- const buildInfoPath = resolve(nitro.options.output.dir, "nitro.json");
973
- const buildInfo = {
974
- date: (/* @__PURE__ */ new Date()).toJSON(),
975
- preset: nitro.options.preset,
976
- framework: nitro.options.framework,
977
- versions: {
978
- nitro: version
979
- },
980
- commands: {
981
- preview: nitro.options.commands.preview,
982
- deploy: nitro.options.commands.deploy
983
- },
984
- config: {
985
- ...Object.fromEntries(
986
- presetsWithConfig.map((key) => [key, nitro.options[key]])
987
- )
988
- }
989
- };
990
- await writeFile(buildInfoPath, JSON.stringify(buildInfo, null, 2), true);
991
- const lastBuild = resolve(
992
- nitro.options.rootDir,
993
- "node_modules/.nitro/last-build"
994
- );
995
- await mkdir(dirname$1(lastBuild), { recursive: true });
996
- await unlink(lastBuild).catch(() => {
997
- });
998
- await symlink(nitro.options.output.dir, lastBuild).catch(console.warn);
999
- return buildInfo;
1000
- }
1001
-
1002
- export { baseBuildPlugins as a, baseBuildConfig as b, replace as r, writeBuildInfo as w };