nitro-nightly 3.0.0-beta-28969273.f7aa9de6 → 4.0.0-20251010-091516-7cafddba

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 (417) hide show
  1. package/README.md +8 -39
  2. package/dist/_chunks/app.mjs +19797 -0
  3. package/dist/_chunks/build.mjs +84 -0
  4. package/dist/_chunks/build2.mjs +318 -0
  5. package/dist/_chunks/build3.mjs +6452 -0
  6. package/dist/_chunks/detect-acorn.mjs +503 -0
  7. package/dist/_chunks/index.mjs +22242 -0
  8. package/dist/_chunks/index2.mjs +297 -0
  9. package/dist/_chunks/index3.mjs +1058 -0
  10. package/dist/_chunks/index4.mjs +1206 -0
  11. package/dist/_chunks/info.mjs +11157 -0
  12. package/dist/_chunks/json5.mjs +68 -0
  13. package/dist/_chunks/jsonc.mjs +51 -0
  14. package/dist/_chunks/pathe.M-eThtNZ.mjs +204 -0
  15. package/dist/_chunks/plugin.mjs +960 -0
  16. package/dist/_chunks/server.mjs +254 -0
  17. package/dist/_chunks/snapshot.mjs +284 -0
  18. package/dist/_chunks/toml.mjs +259 -0
  19. package/dist/_chunks/yaml.mjs +86 -0
  20. package/dist/cli/build.mjs +10 -3
  21. package/dist/cli/dev.mjs +41 -9
  22. package/dist/cli/index.mjs +460 -1
  23. package/dist/cli/index2.mjs +4 -1
  24. package/dist/cli/list.mjs +10 -4
  25. package/dist/cli/prepare.mjs +6 -3
  26. package/dist/cli/run.mjs +7 -4
  27. package/dist/index.d.mts +52 -0
  28. package/dist/index.mjs +55 -0
  29. package/dist/node_modules/@poppinss/colors/build/index.js +169 -0
  30. package/dist/node_modules/@poppinss/colors/package.json +116 -0
  31. package/dist/node_modules/@poppinss/dumper/build/chunk-26HALFTP.js +602 -0
  32. package/dist/node_modules/@poppinss/dumper/build/formatters/console/main.js +441 -0
  33. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +717 -0
  34. package/dist/node_modules/@poppinss/dumper/package.json +122 -0
  35. package/dist/node_modules/@poppinss/exception/build/index.js +63 -0
  36. package/dist/node_modules/@poppinss/exception/package.json +106 -0
  37. package/dist/node_modules/@sindresorhus/is/distribution/index.js +1313 -0
  38. package/dist/node_modules/@sindresorhus/is/distribution/utilities.js +3 -0
  39. package/dist/node_modules/@sindresorhus/is/package.json +81 -0
  40. package/dist/node_modules/@speed-highlight/core/dist/index.js +4 -0
  41. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -0
  42. package/dist/node_modules/@speed-highlight/core/package.json +90 -0
  43. package/dist/node_modules/cookie/dist/index.js +239 -0
  44. package/dist/node_modules/cookie/package.json +42 -0
  45. package/dist/node_modules/croner/dist/croner.js +1 -0
  46. package/dist/node_modules/croner/package.json +63 -0
  47. package/dist/node_modules/defu/dist/defu.mjs +69 -0
  48. package/dist/node_modules/defu/package.json +43 -0
  49. package/dist/node_modules/destr/dist/index.mjs +72 -0
  50. package/dist/node_modules/destr/package.json +47 -0
  51. package/dist/node_modules/error-stack-parser-es/dist/index.mjs +38 -0
  52. package/dist/node_modules/error-stack-parser-es/dist/lite.mjs +167 -0
  53. package/dist/node_modules/error-stack-parser-es/package.json +83 -0
  54. package/dist/node_modules/get-port-please/dist/index.mjs +430 -0
  55. package/dist/node_modules/get-port-please/package.json +39 -0
  56. package/dist/node_modules/hookable/dist/index.mjs +290 -0
  57. package/dist/node_modules/hookable/package.json +49 -0
  58. package/dist/node_modules/kleur/index.js +110 -0
  59. package/dist/node_modules/kleur/index.mjs +110 -0
  60. package/dist/node_modules/kleur/package.json +51 -0
  61. package/dist/node_modules/klona/dist/index.mjs +81 -0
  62. package/dist/node_modules/klona/full/index.mjs +53 -0
  63. package/dist/node_modules/klona/package.json +74 -0
  64. package/dist/node_modules/scule/dist/index.mjs +80 -0
  65. package/dist/node_modules/scule/package.json +43 -0
  66. package/dist/node_modules/source-map/lib/array-set.js +100 -0
  67. package/dist/node_modules/source-map/lib/base64-vlq.js +94 -0
  68. package/dist/node_modules/source-map/lib/base64.js +19 -0
  69. package/dist/node_modules/source-map/lib/binary-search.js +113 -0
  70. package/dist/node_modules/source-map/lib/mapping-list.js +83 -0
  71. package/dist/node_modules/source-map/lib/mappings.wasm +0 -0
  72. package/dist/node_modules/source-map/lib/read-wasm.js +27 -0
  73. package/dist/node_modules/source-map/lib/source-map-consumer.js +1081 -0
  74. package/dist/node_modules/source-map/lib/source-map-generator.js +439 -0
  75. package/dist/node_modules/source-map/lib/source-node.js +430 -0
  76. package/dist/node_modules/source-map/lib/url.js +13 -0
  77. package/dist/node_modules/source-map/lib/util.js +444 -0
  78. package/dist/node_modules/source-map/lib/wasm.js +138 -0
  79. package/dist/node_modules/source-map/package.json +79 -0
  80. package/dist/node_modules/source-map/source-map.js +10 -0
  81. package/dist/node_modules/std-env/dist/index.mjs +1 -0
  82. package/dist/node_modules/std-env/package.json +46 -0
  83. package/dist/node_modules/supports-color/index.js +202 -0
  84. package/dist/node_modules/supports-color/package.json +64 -0
  85. package/dist/node_modules/ufo/dist/index.mjs +638 -0
  86. package/dist/node_modules/ufo/package.json +47 -0
  87. package/dist/node_modules/unctx/dist/index.mjs +131 -0
  88. package/dist/node_modules/unctx/package.json +67 -0
  89. package/dist/node_modules/youch/build/chunk-4L7RY2JA.js +42 -0
  90. package/dist/node_modules/youch/build/chunk-4XB2BYKC.js +85 -0
  91. package/dist/node_modules/youch/build/chunk-4YEN7HVQ.js +61 -0
  92. package/dist/node_modules/youch/build/chunk-EUJBVOYB.js +83 -0
  93. package/dist/node_modules/youch/build/chunk-HFSXRSKS.js +85 -0
  94. package/dist/node_modules/youch/build/chunk-JAN2TFI2.js +222 -0
  95. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +6 -0
  96. package/dist/node_modules/youch/build/chunk-PINJDICN.js +72 -0
  97. package/dist/node_modules/youch/build/chunk-PUHGL6HA.js +41 -0
  98. package/dist/node_modules/youch/build/chunk-VE4LENUR.js +45 -0
  99. package/dist/node_modules/youch/build/index.js +352 -0
  100. package/dist/node_modules/youch/build/public/error_cause/style.css +5 -0
  101. package/dist/node_modules/youch/build/public/error_info/script.js +13 -0
  102. package/dist/node_modules/youch/build/public/error_info/style.css +144 -0
  103. package/dist/node_modules/youch/build/public/error_stack/script.js +74 -0
  104. package/dist/node_modules/youch/build/public/error_stack/style.css +220 -0
  105. package/dist/node_modules/youch/build/public/error_stack_source/style.css +123 -0
  106. package/dist/node_modules/youch/build/public/header/script.js +16 -0
  107. package/dist/node_modules/youch/build/public/header/style.css +56 -0
  108. package/dist/node_modules/youch/build/public/layout/script.js +20 -0
  109. package/dist/node_modules/youch/build/public/layout/style.css +431 -0
  110. package/dist/node_modules/youch/package.json +133 -0
  111. package/dist/node_modules/youch-core/build/index.js +316 -0
  112. package/dist/node_modules/youch-core/package.json +124 -0
  113. package/dist/presets/_nitro/runtime/nitro-dev.mjs +48 -73
  114. package/dist/presets/_nitro/runtime/{nitro-prerenderer.d.ts → nitro-prerenderer.d.mts} +1 -1
  115. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +12 -1
  116. package/dist/presets/_nitro/runtime/service-worker.mjs +5 -15
  117. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +2 -2
  118. package/dist/presets/aws-lambda/runtime/_utils.d.mts +18 -0
  119. package/dist/presets/aws-lambda/runtime/_utils.mjs +102 -0
  120. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +3 -0
  121. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +12 -32
  122. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +3 -0
  123. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +6 -38
  124. package/dist/{runtime/internal/utils.azure.d.ts → presets/azure/runtime/_utils.d.mts} +1 -1
  125. package/dist/{runtime/internal/utils.azure.mjs → presets/azure/runtime/_utils.mjs} +3 -4
  126. package/dist/presets/azure/runtime/azure-swa.mjs +11 -13
  127. package/dist/presets/bun/runtime/bun.mjs +13 -18
  128. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +13 -0
  129. package/dist/presets/cloudflare/runtime/_module-handler.mjs +93 -0
  130. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +19 -0
  131. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +74 -0
  132. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +9 -0
  133. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +13 -97
  134. package/dist/presets/cloudflare/runtime/{cloudflare-pages.d.ts → cloudflare-pages.d.mts} +1 -1
  135. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +19 -27
  136. package/dist/{runtime/internal/timing.d.ts → presets/cloudflare/runtime/plugin.dev.d.mts} +1 -0
  137. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -0
  138. package/dist/presets/deno/runtime/deno-deploy.mjs +11 -25
  139. package/dist/presets/deno/runtime/deno-server.d.mts +6 -0
  140. package/dist/presets/deno/runtime/deno-server.mjs +15 -21
  141. package/dist/presets/netlify/runtime/netlify-edge.d.mts +3 -0
  142. package/dist/presets/netlify/runtime/netlify-edge.mjs +8 -16
  143. package/dist/presets/netlify/runtime/netlify.mjs +16 -45
  144. package/dist/presets/node/runtime/{cluster.mjs → node-cluster.mjs} +1 -3
  145. package/dist/presets/node/runtime/node-middleware.d.mts +4 -0
  146. package/dist/presets/node/runtime/{node-listener.mjs → node-middleware.mjs} +3 -4
  147. package/dist/presets/node/runtime/node-server.mjs +3 -4
  148. package/dist/presets/standard/runtime/server.d.mts +5 -0
  149. package/dist/presets/standard/runtime/server.mjs +6 -0
  150. package/dist/presets/stormkit/runtime/stormkit.mjs +8 -12
  151. package/dist/presets/vercel/runtime/vercel.d.mts +8 -0
  152. package/dist/presets/vercel/runtime/vercel.mjs +11 -11
  153. package/dist/presets/winterjs/runtime/winterjs.mjs +22 -4
  154. package/dist/presets/{node/runtime/node-server.d.ts → zeabur/runtime/zeabur.d.mts} +1 -1
  155. package/dist/presets/zeabur/runtime/zeabur.mjs +2 -6
  156. package/dist/presets.mjs +2460 -0
  157. package/dist/runtime/index.d.mts +11 -0
  158. package/dist/runtime/index.mjs +8 -8
  159. package/dist/runtime/internal/app.d.mts +2 -0
  160. package/dist/runtime/internal/app.mjs +129 -128
  161. package/dist/runtime/internal/cache.d.mts +7 -0
  162. package/dist/runtime/internal/cache.mjs +82 -175
  163. package/dist/runtime/internal/{context.d.ts → context.d.mts} +3 -3
  164. package/dist/runtime/internal/context.mjs +6 -6
  165. package/dist/runtime/internal/error/dev.d.mts +9 -0
  166. package/dist/runtime/internal/error/dev.mjs +122 -0
  167. package/dist/runtime/internal/error/prod.d.mts +8 -0
  168. package/dist/runtime/internal/error/prod.mjs +62 -0
  169. package/dist/runtime/internal/error/utils.d.mts +8 -0
  170. package/dist/runtime/internal/error/utils.mjs +3 -0
  171. package/dist/runtime/internal/index.d.mts +3 -0
  172. package/dist/runtime/internal/index.mjs +1 -14
  173. package/dist/runtime/internal/renderer.d.mts +3 -0
  174. package/dist/runtime/internal/renderer.mjs +29 -33
  175. package/dist/runtime/internal/route-rules.d.mts +8 -0
  176. package/dist/runtime/internal/route-rules.mjs +58 -63
  177. package/dist/runtime/internal/routes/dev-tasks.d.mts +3 -0
  178. package/dist/runtime/internal/routes/dev-tasks.mjs +23 -0
  179. package/dist/runtime/internal/routes/openapi.d.mts +3 -0
  180. package/dist/runtime/internal/routes/openapi.mjs +24 -9
  181. package/dist/runtime/internal/routes/renderer-template.d.mts +2 -0
  182. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +3 -0
  183. package/dist/runtime/internal/routes/renderer-template.dev.mjs +21 -0
  184. package/dist/runtime/internal/routes/renderer-template.mjs +4 -0
  185. package/dist/runtime/internal/routes/scalar.d.mts +3 -0
  186. package/dist/runtime/internal/routes/scalar.mjs +7 -4
  187. package/dist/runtime/internal/routes/swagger.d.mts +3 -0
  188. package/dist/runtime/internal/routes/swagger.mjs +5 -4
  189. package/dist/runtime/internal/{utils.env.d.ts → runtime-config.d.mts} +4 -2
  190. package/dist/runtime/internal/{utils.env.mjs → runtime-config.mjs} +16 -6
  191. package/dist/runtime/internal/static.d.mts +3 -0
  192. package/dist/runtime/internal/static.mjs +24 -36
  193. package/dist/runtime/internal/storage.mjs +2 -1
  194. package/dist/runtime/internal/task.mjs +6 -6
  195. package/dist/runtime/internal/utils.d.mts +1 -0
  196. package/dist/runtime/internal/utils.mjs +1 -116
  197. package/dist/runtime/internal/vite/dev-entry.d.mts +1 -0
  198. package/dist/runtime/internal/vite/dev-entry.mjs +6 -0
  199. package/dist/runtime/internal/vite/dev-worker.mjs +362 -0
  200. package/dist/runtime/internal/vite/prod-setup.d.mts +4 -0
  201. package/dist/runtime/internal/vite/prod-setup.mjs +55 -0
  202. package/dist/runtime/internal/vite/ssr-renderer.d.mts +4 -0
  203. package/dist/runtime/internal/vite/ssr-renderer.mjs +4 -0
  204. package/dist/types/index.d.mts +2688 -138
  205. package/dist/vite.d.mts +59 -0
  206. package/dist/vite.mjs +68 -0
  207. package/lib/config.d.mts +9 -0
  208. package/lib/deps/h3.d.mts +1 -0
  209. package/lib/deps/h3.mjs +1 -0
  210. package/lib/deps/ofetch.mjs +1 -0
  211. package/lib/deps/ofetch.mts +1 -0
  212. package/lib/meta.d.mts +5 -0
  213. package/lib/meta.mjs +21 -0
  214. package/{runtime-meta.d.ts → lib/runtime-meta.d.mts} +1 -0
  215. package/{runtime-meta.mjs → lib/runtime-meta.mjs} +12 -4
  216. package/package.json +142 -160
  217. package/cli.d.ts +0 -1
  218. package/config.d.ts +0 -1
  219. package/core.d.ts +0 -1
  220. package/dist/cli/index.d.ts +0 -1
  221. package/dist/config/index.d.mts +0 -6
  222. package/dist/config/index.d.ts +0 -6
  223. package/dist/core/index.d.mts +0 -30
  224. package/dist/core/index.d.ts +0 -30
  225. package/dist/core/index.mjs +0 -2456
  226. package/dist/kit/index.d.mts +0 -44
  227. package/dist/kit/index.d.ts +0 -44
  228. package/dist/kit/index.mjs +0 -71
  229. package/dist/meta/index.d.mts +0 -3
  230. package/dist/meta/index.d.ts +0 -3
  231. package/dist/meta/index.mjs +0 -3
  232. package/dist/presets/_all.gen.d.ts +0 -2
  233. package/dist/presets/_all.gen.mjs +0 -52
  234. package/dist/presets/_nitro/base-worker.d.ts +0 -2
  235. package/dist/presets/_nitro/base-worker.mjs +0 -25
  236. package/dist/presets/_nitro/nitro-dev.d.ts +0 -2
  237. package/dist/presets/_nitro/nitro-dev.mjs +0 -19
  238. package/dist/presets/_nitro/nitro-prerender.d.ts +0 -2
  239. package/dist/presets/_nitro/nitro-prerender.mjs +0 -17
  240. package/dist/presets/_nitro/preset.d.ts +0 -2
  241. package/dist/presets/_nitro/preset.mjs +0 -5
  242. package/dist/presets/_nitro/service-worker.d.ts +0 -2
  243. package/dist/presets/_nitro/service-worker.mjs +0 -110
  244. package/dist/presets/_resolve.d.ts +0 -8
  245. package/dist/presets/_resolve.mjs +0 -44
  246. package/dist/presets/_static/preset.d.ts +0 -2
  247. package/dist/presets/_static/preset.mjs +0 -69
  248. package/dist/presets/_types.gen.d.ts +0 -16
  249. package/dist/presets/alwaysdata/preset.d.ts +0 -2
  250. package/dist/presets/alwaysdata/preset.mjs +0 -14
  251. package/dist/presets/aws-amplify/preset.d.ts +0 -3
  252. package/dist/presets/aws-amplify/preset.mjs +0 -27
  253. package/dist/presets/aws-amplify/types.d.ts +0 -141
  254. package/dist/presets/aws-amplify/utils.d.ts +0 -2
  255. package/dist/presets/aws-amplify/utils.mjs +0 -82
  256. package/dist/presets/aws-lambda/preset.d.ts +0 -2
  257. package/dist/presets/aws-lambda/preset.mjs +0 -21
  258. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.ts +0 -14
  259. package/dist/presets/aws-lambda/runtime/aws-lambda.d.ts +0 -4
  260. package/dist/presets/azure/preset.d.ts +0 -3
  261. package/dist/presets/azure/preset.mjs +0 -44
  262. package/dist/presets/azure/runtime/azure-functions.mjs +0 -24
  263. package/dist/presets/azure/runtime/azure-swa.d.ts +0 -5
  264. package/dist/presets/azure/types.d.ts +0 -13
  265. package/dist/presets/azure/types.mjs +0 -0
  266. package/dist/presets/azure/utils.d.ts +0 -3
  267. package/dist/presets/azure/utils.mjs +0 -183
  268. package/dist/presets/bun/preset.d.ts +0 -2
  269. package/dist/presets/bun/preset.mjs +0 -17
  270. package/dist/presets/cleavr/preset.d.ts +0 -2
  271. package/dist/presets/cleavr/preset.mjs +0 -12
  272. package/dist/presets/cloudflare/preset.d.ts +0 -3
  273. package/dist/presets/cloudflare/preset.mjs +0 -145
  274. package/dist/presets/cloudflare/runtime/cloudflare-module.d.ts +0 -13
  275. package/dist/presets/cloudflare/runtime/cloudflare-worker.mjs +0 -64
  276. package/dist/presets/cloudflare/types.d.ts +0 -89
  277. package/dist/presets/cloudflare/types.mjs +0 -0
  278. package/dist/presets/cloudflare/types.wrangler.d.ts +0 -974
  279. package/dist/presets/cloudflare/types.wrangler.mjs +0 -0
  280. package/dist/presets/cloudflare/utils.d.ts +0 -3
  281. package/dist/presets/cloudflare/utils.mjs +0 -163
  282. package/dist/presets/deno/preset.d.ts +0 -2
  283. package/dist/presets/deno/preset.mjs +0 -148
  284. package/dist/presets/deno/runtime/_deno-env-polyfill.d.ts +0 -0
  285. package/dist/presets/deno/runtime/_deno-env-polyfill.mjs +0 -1
  286. package/dist/presets/digitalocean/preset.d.ts +0 -2
  287. package/dist/presets/digitalocean/preset.mjs +0 -11
  288. package/dist/presets/edgio/preset.d.ts +0 -2
  289. package/dist/presets/edgio/preset.mjs +0 -95
  290. package/dist/presets/firebase/preset.d.ts +0 -3
  291. package/dist/presets/firebase/preset.mjs +0 -50
  292. package/dist/presets/firebase/runtime/firebase-gen-1.d.ts +0 -2
  293. package/dist/presets/firebase/runtime/firebase-gen-1.mjs +0 -7
  294. package/dist/presets/firebase/runtime/firebase-gen-2.d.ts +0 -2
  295. package/dist/presets/firebase/runtime/firebase-gen-2.mjs +0 -14
  296. package/dist/presets/firebase/runtime/firebase-gen-default.d.ts +0 -1
  297. package/dist/presets/firebase/runtime/firebase-gen-default.mjs +0 -1
  298. package/dist/presets/firebase/types.d.ts +0 -38
  299. package/dist/presets/firebase/types.mjs +0 -0
  300. package/dist/presets/firebase/utils.d.ts +0 -3
  301. package/dist/presets/firebase/utils.mjs +0 -50
  302. package/dist/presets/flightcontrol/preset.d.ts +0 -2
  303. package/dist/presets/flightcontrol/preset.mjs +0 -11
  304. package/dist/presets/heroku/preset.d.ts +0 -2
  305. package/dist/presets/heroku/preset.mjs +0 -11
  306. package/dist/presets/iis/preset.d.ts +0 -2
  307. package/dist/presets/iis/preset.mjs +0 -32
  308. package/dist/presets/iis/utils.d.ts +0 -3
  309. package/dist/presets/iis/utils.mjs +0 -161
  310. package/dist/presets/index.d.mts +0 -1
  311. package/dist/presets/index.d.ts +0 -2
  312. package/dist/presets/index.mjs +0 -1
  313. package/dist/presets/koyeb/preset.d.ts +0 -2
  314. package/dist/presets/koyeb/preset.mjs +0 -11
  315. package/dist/presets/netlify/legacy/preset.d.ts +0 -2
  316. package/dist/presets/netlify/legacy/preset.mjs +0 -143
  317. package/dist/presets/netlify/legacy/runtime/_deno-env-polyfill.d.ts +0 -0
  318. package/dist/presets/netlify/legacy/runtime/_deno-env-polyfill.mjs +0 -1
  319. package/dist/presets/netlify/legacy/runtime/netlify-builder.d.ts +0 -3
  320. package/dist/presets/netlify/legacy/runtime/netlify-builder.mjs +0 -5
  321. package/dist/presets/netlify/legacy/runtime/netlify-edge.d.ts +0 -2
  322. package/dist/presets/netlify/legacy/runtime/netlify-edge.mjs +0 -25
  323. package/dist/presets/netlify/legacy/runtime/netlify-lambda.d.ts +0 -3
  324. package/dist/presets/netlify/legacy/runtime/netlify-lambda.mjs +0 -38
  325. package/dist/presets/netlify/legacy/runtime/netlify.d.ts +0 -4
  326. package/dist/presets/netlify/legacy/runtime/netlify.mjs +0 -22
  327. package/dist/presets/netlify/legacy/utils.d.ts +0 -4
  328. package/dist/presets/netlify/legacy/utils.mjs +0 -113
  329. package/dist/presets/netlify/preset.d.ts +0 -3
  330. package/dist/presets/netlify/preset.mjs +0 -128
  331. package/dist/presets/netlify/runtime/_deno-env-polyfill.d.ts +0 -0
  332. package/dist/presets/netlify/runtime/_deno-env-polyfill.mjs +0 -1
  333. package/dist/presets/netlify/runtime/netlify-edge.d.ts +0 -2
  334. package/dist/presets/netlify/types.d.ts +0 -12
  335. package/dist/presets/netlify/types.mjs +0 -0
  336. package/dist/presets/netlify/utils.d.ts +0 -5
  337. package/dist/presets/netlify/utils.mjs +0 -94
  338. package/dist/presets/node/preset.d.ts +0 -2
  339. package/dist/presets/node/preset.mjs +0 -49
  340. package/dist/presets/node/runtime/cli.d.ts +0 -1
  341. package/dist/presets/node/runtime/cli.mjs +0 -22
  342. package/dist/presets/node/runtime/node-listener.d.ts +0 -6
  343. package/dist/presets/platform.sh/preset.d.ts +0 -2
  344. package/dist/presets/platform.sh/preset.mjs +0 -11
  345. package/dist/presets/render.com/preset.d.ts +0 -2
  346. package/dist/presets/render.com/preset.mjs +0 -11
  347. package/dist/presets/stormkit/preset.d.ts +0 -2
  348. package/dist/presets/stormkit/preset.mjs +0 -15
  349. package/dist/presets/vercel/preset.d.ts +0 -3
  350. package/dist/presets/vercel/preset.mjs +0 -104
  351. package/dist/presets/vercel/runtime/vercel-edge.d.ts +0 -2
  352. package/dist/presets/vercel/runtime/vercel-edge.mjs +0 -22
  353. package/dist/presets/vercel/runtime/vercel.d.ts +0 -4
  354. package/dist/presets/vercel/types.d.ts +0 -78
  355. package/dist/presets/vercel/types.mjs +0 -0
  356. package/dist/presets/vercel/utils.d.ts +0 -5
  357. package/dist/presets/vercel/utils.mjs +0 -186
  358. package/dist/presets/winterjs/preset.d.ts +0 -2
  359. package/dist/presets/winterjs/preset.mjs +0 -20
  360. package/dist/presets/winterjs/runtime/winterjs.d.ts +0 -1
  361. package/dist/presets/zeabur/preset.d.ts +0 -2
  362. package/dist/presets/zeabur/preset.mjs +0 -70
  363. package/dist/presets/zeabur/runtime/zeabur.d.ts +0 -4
  364. package/dist/rollup/index.d.mts +0 -5
  365. package/dist/rollup/index.d.ts +0 -5
  366. package/dist/rollup/index.mjs +0 -1673
  367. package/dist/runtime/index.d.ts +0 -12
  368. package/dist/runtime/internal/app.d.ts +0 -3
  369. package/dist/runtime/internal/cache.d.ts +0 -8
  370. package/dist/runtime/internal/client.mjs +0 -4
  371. package/dist/runtime/internal/config.d.ts +0 -5
  372. package/dist/runtime/internal/config.mjs +0 -45
  373. package/dist/runtime/internal/error.d.ts +0 -4
  374. package/dist/runtime/internal/error.mjs +0 -73
  375. package/dist/runtime/internal/index.d.ts +0 -6
  376. package/dist/runtime/internal/renderer.d.ts +0 -2
  377. package/dist/runtime/internal/route-rules.d.ts +0 -14
  378. package/dist/runtime/internal/routes/openapi.d.ts +0 -3
  379. package/dist/runtime/internal/routes/scalar.d.ts +0 -2
  380. package/dist/runtime/internal/routes/swagger.d.ts +0 -2
  381. package/dist/runtime/internal/static.d.ts +0 -2
  382. package/dist/runtime/internal/timing.mjs +0 -29
  383. package/dist/runtime/internal/utils.d.ts +0 -21
  384. package/dist/runtime/internal/utils.lambda.d.ts +0 -10
  385. package/dist/runtime/internal/utils.lambda.mjs +0 -30
  386. package/dist/shared/nitro.bra5i6ER.d.mts +0 -620
  387. package/dist/shared/nitro.bra5i6ER.d.ts +0 -620
  388. package/dist/types/index.d.ts +0 -260
  389. package/kit.d.ts +0 -1
  390. package/meta.d.ts +0 -1
  391. package/presets.d.ts +0 -1
  392. package/rollup.d.ts +0 -1
  393. package/runtime.d.ts +0 -1
  394. package/types.d.ts +0 -1
  395. /package/dist/presets/_nitro/runtime/{nitro-dev.d.ts → nitro-dev.d.mts} +0 -0
  396. /package/dist/presets/_nitro/runtime/{service-worker.d.ts → service-worker.d.mts} +0 -0
  397. /package/dist/presets/aws-amplify/runtime/{aws-amplify.d.ts → aws-amplify.d.mts} +0 -0
  398. /package/dist/presets/azure/runtime/{azure-functions.d.ts → azure-swa.d.mts} +0 -0
  399. /package/dist/presets/bun/runtime/{bun.d.ts → bun.d.mts} +0 -0
  400. /package/dist/presets/{cloudflare/runtime/cloudflare-worker.d.ts → deno/runtime/deno-deploy.d.mts} +0 -0
  401. /package/dist/presets/netlify/runtime/{netlify.d.ts → netlify.d.mts} +0 -0
  402. /package/dist/presets/node/runtime/{cluster.d.ts → node-cluster.d.mts} +0 -0
  403. /package/dist/presets/{deno/runtime/deno-server.d.ts → node/runtime/node-server.d.mts} +0 -0
  404. /package/dist/presets/stormkit/runtime/{stormkit.d.ts → stormkit.d.mts} +0 -0
  405. /package/dist/presets/{deno/runtime/deno-deploy.d.ts → winterjs/runtime/winterjs.d.mts} +0 -0
  406. /package/dist/runtime/internal/{database.d.ts → database.d.mts} +0 -0
  407. /package/dist/runtime/internal/{debug.d.ts → debug.d.mts} +0 -0
  408. /package/dist/{presets/_types.gen.mjs → runtime/internal/empty.d.mts} +0 -0
  409. /package/dist/{presets/aws-amplify/types.mjs → runtime/internal/empty.mjs} +0 -0
  410. /package/dist/runtime/internal/lib/{http-graceful-shutdown.d.ts → http-graceful-shutdown.d.mts} +0 -0
  411. /package/dist/runtime/internal/{meta.d.ts → meta.d.mts} +0 -0
  412. /package/dist/runtime/internal/{plugin.d.ts → plugin.d.mts} +0 -0
  413. /package/dist/runtime/internal/{shutdown.d.ts → shutdown.d.mts} +0 -0
  414. /package/dist/runtime/internal/{storage.d.ts → storage.d.mts} +0 -0
  415. /package/dist/runtime/internal/{task.d.ts → task.d.mts} +0 -0
  416. /package/dist/runtime/internal/{client.d.ts → vite/dev-worker.d.mts} +0 -0
  417. /package/{dist/config/index.mjs → lib/config.mjs} +0 -0
@@ -0,0 +1,960 @@
1
+ import { s as sanitizeFilePath, f as formatCompatibilityDate, d as copyPublicAssets, a as scanHandlers, r as resolveModulePath, e as prettyPath, i as createNitro, j as prepare } from './index.mjs';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { colors } from 'consola/utils';
4
+ import { defu } from 'defu';
5
+ import 'ufo';
6
+ import { existsSync, watch as watch$1 } from 'node:fs';
7
+ import { readFile, rm, mkdir, writeFile, readlink } from 'node:fs/promises';
8
+ import 'node:zlib';
9
+ import 'node:worker_threads';
10
+ import consola from 'consola';
11
+ import 'std-env';
12
+ import 'h3';
13
+ import 'undici';
14
+ import 'nitro/meta';
15
+ import { NodeRequest, sendNodeResponse } from 'srvx/node';
16
+ import { d as debounce, w as watch, a as NodeDevWorker, c as createProxyServer, N as NitroDevApp } from './app.mjs';
17
+ import 'klona/full';
18
+ import { runtimeDir, runtimeDependencies } from 'nitro/runtime/meta';
19
+ import 'ofetch';
20
+ import { a as alias, i as inject } from './index2.mjs';
21
+ import { b as baseBuildConfig, d as baseBuildPlugins, r as replace, e as writeBuildInfo } from './info.mjs';
22
+ import { r as resolve, d as dirname, n as normalize, b as basename, a as relative, j as join, i as isAbsolute } from './pathe.M-eThtNZ.mjs';
23
+ import 'hookable';
24
+ import 'jiti';
25
+ import 'klona';
26
+ import 'unstorage';
27
+ import 'ohash';
28
+ import { resolve as resolve$1, join as join$1 } from 'node:path';
29
+ import 'youch-core';
30
+ import 'youch';
31
+ import 'source-map';
32
+ import 'srvx';
33
+ import { DevEnvironment } from 'vite';
34
+ import { getRandomPort } from 'get-port-please';
35
+ import { spawn } from 'node:child_process';
36
+
37
+ const getViteRollupConfig = (ctx) => {
38
+ const nitro = ctx.nitro;
39
+ const base = baseBuildConfig(nitro);
40
+ const chunkNamePrefixes = [
41
+ [nitro.options.buildDir, "build"],
42
+ [base.buildServerDir, "app"],
43
+ [runtimeDir, "nitro"],
44
+ [base.presetsDir, "nitro"],
45
+ ["\0raw:", "raw"],
46
+ ["\0nitro-wasm:", "wasm"],
47
+ ["\0", "virtual"]
48
+ ];
49
+ function getChunkGroup(id) {
50
+ if (id.startsWith(runtimeDir) || id.startsWith(base.presetsDir)) {
51
+ return "nitro";
52
+ }
53
+ }
54
+ let config = {
55
+ input: nitro.options.entry,
56
+ external: [...base.env.external],
57
+ plugins: [
58
+ ctx.pluginConfig.experimental?.virtualBundle && virtualBundlePlugin(ctx._serviceBundles),
59
+ ...baseBuildPlugins(nitro, base),
60
+ alias({ entries: base.aliases }),
61
+ replace({ preventAssignment: true, values: base.replacements }),
62
+ inject(base.env.inject)
63
+ ].filter(Boolean),
64
+ treeshake: {
65
+ moduleSideEffects(id) {
66
+ const normalizedId = normalize(id);
67
+ const idWithoutNodeModules = normalizedId.split("node_modules/").pop();
68
+ if (!idWithoutNodeModules) {
69
+ return false;
70
+ }
71
+ if (normalizedId.startsWith(runtimeDir) || idWithoutNodeModules.startsWith(runtimeDir)) {
72
+ return true;
73
+ }
74
+ return nitro.options.moduleSideEffects.some(
75
+ (m) => normalizedId.startsWith(m) || idWithoutNodeModules.startsWith(m)
76
+ );
77
+ }
78
+ },
79
+ output: {
80
+ dir: nitro.options.output.serverDir,
81
+ entryFileNames: "index.mjs",
82
+ chunkFileNames(chunk) {
83
+ const id = normalize(chunk.moduleIds.at(-1) || "");
84
+ for (const [dir, name] of chunkNamePrefixes) {
85
+ if (id.startsWith(dir)) {
86
+ return `chunks/${name}/[name].mjs`;
87
+ }
88
+ }
89
+ const routeHandler = nitro.options.handlers.find(
90
+ (h) => id.startsWith(h.handler)
91
+ ) || nitro.scannedHandlers.find((h) => id.startsWith(h.handler));
92
+ if (routeHandler?.route) {
93
+ const path = routeHandler.route.replace(/:([^/]+)/g, "_$1").replace(/\/[^/]+$/g, "") || "/";
94
+ return `chunks/routes/${path}/[name].mjs`.replace(/\/+/g, "/");
95
+ }
96
+ const taskHandler = Object.entries(nitro.options.tasks).find(
97
+ ([_, task]) => task.handler === id
98
+ );
99
+ if (taskHandler) {
100
+ return `chunks/tasks/[name].mjs`;
101
+ }
102
+ return `chunks/_/[name].mjs`;
103
+ },
104
+ manualChunks(id) {
105
+ return getChunkGroup(id);
106
+ },
107
+ inlineDynamicImports: nitro.options.inlineDynamicImports,
108
+ format: "esm",
109
+ exports: "auto",
110
+ intro: "",
111
+ outro: "",
112
+ generatedCode: {
113
+ constBindings: true
114
+ },
115
+ sanitizeFileName: sanitizeFilePath,
116
+ sourcemapExcludeSources: true,
117
+ sourcemapIgnoreList(relativePath) {
118
+ return relativePath.includes("node_modules");
119
+ }
120
+ }
121
+ };
122
+ config = defu(nitro.options.rollupConfig, config);
123
+ if (config.output.inlineDynamicImports) {
124
+ delete config.output.manualChunks;
125
+ }
126
+ return { config, base };
127
+ };
128
+ function virtualBundlePlugin(bundles) {
129
+ let _modules = null;
130
+ const getModules = () => {
131
+ if (_modules) {
132
+ return _modules;
133
+ }
134
+ _modules = /* @__PURE__ */ new Map();
135
+ for (const bundle of Object.values(bundles)) {
136
+ for (const [fileName, content] of Object.entries(bundle)) {
137
+ if (content.type === "chunk") {
138
+ const virtualModule = {
139
+ code: content.code,
140
+ map: null
141
+ };
142
+ const maybeMap = bundle[`${fileName}.map`];
143
+ if (maybeMap && maybeMap.type === "asset") {
144
+ virtualModule.map = maybeMap.source;
145
+ }
146
+ _modules.set(fileName, virtualModule);
147
+ _modules.set(resolve(fileName), virtualModule);
148
+ }
149
+ }
150
+ }
151
+ return _modules;
152
+ };
153
+ return {
154
+ name: "virtual-bundle",
155
+ resolveId(id, importer) {
156
+ const modules = getModules();
157
+ if (modules.has(id)) {
158
+ return resolve(id);
159
+ }
160
+ if (importer) {
161
+ const resolved = resolve(dirname(importer), id);
162
+ if (modules.has(resolved)) {
163
+ return resolved;
164
+ }
165
+ }
166
+ return null;
167
+ },
168
+ load(id) {
169
+ const modules = getModules();
170
+ const m = modules.get(id);
171
+ if (!m) {
172
+ return null;
173
+ }
174
+ return m;
175
+ }
176
+ };
177
+ }
178
+
179
+ const BuilderNames = {
180
+ nitro: colors.magenta("Nitro"),
181
+ client: colors.green("Client"),
182
+ ssr: colors.blue("SSR")
183
+ };
184
+ async function buildEnvironments(ctx, builder) {
185
+ const nitro = ctx.nitro;
186
+ for (const [envName, env] of Object.entries(builder.environments)) {
187
+ const fmtName = BuilderNames[envName] || (envName.length <= 3 ? envName.toUpperCase() : envName[0].toUpperCase() + envName.slice(1));
188
+ if (envName === "nitro" || !env.config.build.rollupOptions.input || env.isBuilt) {
189
+ if (!["nitro", "ssr", "client"].includes(envName)) {
190
+ nitro.logger.info(
191
+ env.isBuilt ? `Skipping ${fmtName} (already built)` : `Skipping ${fmtName} (no input defined)`
192
+ );
193
+ }
194
+ continue;
195
+ }
196
+ console.log();
197
+ nitro.logger.start(`Building [${fmtName}]`);
198
+ await builder.build(env);
199
+ }
200
+ const nitroOptions = ctx.nitro.options;
201
+ const clientInput = builder.environments.client?.config?.build?.rollupOptions?.input;
202
+ if (nitroOptions.renderer?.template && nitroOptions.renderer?.template === clientInput) {
203
+ const outputPath = resolve(
204
+ nitroOptions.output.publicDir,
205
+ basename(clientInput)
206
+ );
207
+ if (existsSync(outputPath)) {
208
+ const html = await readFile(outputPath, "utf8").then(
209
+ (r) => r.replace(
210
+ "<!--ssr-outlet-->",
211
+ `{{{ fetch($REQUEST, { viteEnv: "ssr" }) }}}`
212
+ )
213
+ );
214
+ await rm(outputPath);
215
+ const tmp = resolve(nitroOptions.buildDir, "vite/index.html");
216
+ await mkdir(dirname(tmp), { recursive: true });
217
+ await writeFile(tmp, html, "utf8");
218
+ nitroOptions.renderer.template = tmp;
219
+ }
220
+ }
221
+ console.log();
222
+ const buildInfo = [
223
+ ["preset", nitro.options.preset],
224
+ ["compatibility", formatCompatibilityDate(nitro.options.compatibilityDate)]
225
+ ].filter((e) => e[1]);
226
+ nitro.logger.start(
227
+ `Building [${BuilderNames.nitro}] ${colors.dim(`(${buildInfo.map(([k, v]) => `${k}: \`${v}\``).join(", ")})`)}`
228
+ );
229
+ await copyPublicAssets(nitro);
230
+ await nitro.hooks.callHook(
231
+ "rollup:before",
232
+ nitro,
233
+ builder.environments.nitro.config.build.rollupOptions
234
+ );
235
+ await builder.build(builder.environments.nitro);
236
+ await nitro.close();
237
+ await nitro.hooks.callHook("compiled", nitro);
238
+ await writeBuildInfo(nitro);
239
+ const rOutput = relative(process.cwd(), nitro.options.output.dir);
240
+ const rewriteRelativePaths = (input) => {
241
+ return input.replace(/([\s:])\.\/(\S*)/g, `$1${rOutput}/$2`);
242
+ };
243
+ console.log();
244
+ if (nitro.options.commands.preview) {
245
+ nitro.logger.success(
246
+ `You can preview this build using \`${rewriteRelativePaths(
247
+ nitro.options.commands.preview
248
+ )}\``
249
+ );
250
+ }
251
+ if (nitro.options.commands.deploy) {
252
+ nitro.logger.success(
253
+ `You can deploy this build using \`${rewriteRelativePaths(
254
+ nitro.options.commands.deploy
255
+ )}\``
256
+ );
257
+ }
258
+ }
259
+ function prodSetup(ctx) {
260
+ const services = ctx.pluginConfig.services || {};
261
+ const serviceNames = Object.keys(services);
262
+ const serviceEntries = serviceNames.map((name) => {
263
+ let entry;
264
+ if (ctx.pluginConfig.experimental?.virtualBundle) {
265
+ entry = ctx._entryPoints[name];
266
+ } else {
267
+ entry = resolve(
268
+ ctx.nitro.options.buildDir,
269
+ "vite/services",
270
+ name,
271
+ ctx._entryPoints[name]
272
+ );
273
+ }
274
+ return [name, entry];
275
+ });
276
+ return (
277
+ /* js */
278
+ `
279
+ import { setupVite } from "${resolve(runtimeDir, "internal/vite/prod-setup.mjs")}";
280
+
281
+ const manifest = ${JSON.stringify(ctx._manifest || {})};
282
+
283
+ function lazyService(loader) {
284
+ let promise, mod
285
+ return {
286
+ fetch(req) {
287
+ if (mod) { return mod.fetch(req) }
288
+ if (!promise) {
289
+ promise = loader().then(_mod => (mod = _mod.default || _mod))
290
+ }
291
+ return promise.then(mod => mod.fetch(req))
292
+ }
293
+ }
294
+ }
295
+
296
+ const services = {
297
+ ${serviceEntries.map(
298
+ ([name, entry]) => (
299
+ /* js */
300
+ `[${JSON.stringify(name)}]: lazyService(() => import(${JSON.stringify(entry)}))`
301
+ )
302
+ ).join(",\n")}
303
+ };
304
+
305
+ setupVite({ manifest, services });
306
+ `
307
+ );
308
+ }
309
+
310
+ function createFetchableDevEnvironment(name, config, devServer, entry) {
311
+ const transport = createTransport(name, devServer);
312
+ const context = { hot: true, transport };
313
+ return new FetchableDevEnvironment(name, config, context, devServer, entry);
314
+ }
315
+ class FetchableDevEnvironment extends DevEnvironment {
316
+ devServer;
317
+ constructor(name, config, context, devServer, entry) {
318
+ super(name, config, context);
319
+ this.devServer = devServer;
320
+ this.devServer.sendMessage({
321
+ type: "custom",
322
+ event: "nitro:vite-env",
323
+ data: { name, entry }
324
+ });
325
+ }
326
+ async dispatchFetch(request) {
327
+ return this.devServer.fetch(request);
328
+ }
329
+ async init(...args) {
330
+ await this.devServer.init?.();
331
+ return super.init(...args);
332
+ }
333
+ }
334
+ function createTransport(name, hooks) {
335
+ const listeners = /* @__PURE__ */ new WeakMap();
336
+ return {
337
+ send: (data) => hooks.sendMessage({ ...data, viteEnv: name }),
338
+ on: (event, handler) => {
339
+ if (event === "connection") return;
340
+ const listener = (value) => {
341
+ if (value?.type === "custom" && value.event === event && value.viteEnv === name) {
342
+ handler(value.data, {
343
+ send: (payload) => hooks.sendMessage({ ...payload, viteEnv: name })
344
+ });
345
+ }
346
+ };
347
+ listeners.set(handler, listener);
348
+ hooks.onMessage(listener);
349
+ },
350
+ off: (event, handler) => {
351
+ if (event === "connection") return;
352
+ const listener = listeners.get(handler);
353
+ if (listener) {
354
+ hooks.offMessage(listener);
355
+ listeners.delete(handler);
356
+ }
357
+ }
358
+ };
359
+ }
360
+ async function configureViteDevServer(ctx, server) {
361
+ const nitro = ctx.nitro;
362
+ const nitroEnv = server.environments.nitro;
363
+ const nitroConfigFile = nitro.options._c12.configFile;
364
+ if (nitroConfigFile) {
365
+ server.config.configFileDependencies.push(nitroConfigFile);
366
+ }
367
+ const reload = debounce(async () => {
368
+ await scanHandlers(nitro);
369
+ nitro.routing.sync();
370
+ nitroEnv.moduleGraph.invalidateAll();
371
+ nitroEnv.hot.send({ type: "full-reload" });
372
+ });
373
+ const scanDirs = nitro.options.scanDirs.flatMap((dir) => [
374
+ join(dir, nitro.options.apiDir || "api"),
375
+ join(dir, nitro.options.routesDir || "routes"),
376
+ join(dir, "middleware"),
377
+ join(dir, "plugins"),
378
+ join(dir, "modules")
379
+ ]);
380
+ const watchReloadEvents = /* @__PURE__ */ new Set(["add", "addDir", "unlink", "unlinkDir"]);
381
+ const scanDirsWatcher = watch(scanDirs, {
382
+ ignoreInitial: true
383
+ }).on("all", (event, path, stat) => {
384
+ if (watchReloadEvents.has(event)) {
385
+ reload();
386
+ }
387
+ });
388
+ const srcDirWatcher = watch$1(
389
+ nitro.options.srcDir,
390
+ { persistent: false },
391
+ (_event, filename) => {
392
+ if (filename && /^server\.[mc]?[jt]sx?$/.test(filename)) {
393
+ reload();
394
+ }
395
+ }
396
+ );
397
+ nitro.hooks.hook("close", () => {
398
+ scanDirsWatcher.close();
399
+ srcDirWatcher.close();
400
+ });
401
+ const hostIPC = {
402
+ async transformHTML(html) {
403
+ return server.transformIndexHtml("/", html).then(
404
+ (r) => r.replace(
405
+ "<!--ssr-outlet-->",
406
+ `{{{ fetch($REQUEST, { viteEnv: "ssr" }) }}}`
407
+ )
408
+ );
409
+ }
410
+ };
411
+ nitroEnv.devServer.onMessage(async (payload) => {
412
+ if (payload.type === "custom" && payload.event === "nitro:vite-invoke") {
413
+ const methodName = payload.data.name;
414
+ const res = await hostIPC[methodName](payload.data.data).then((data) => ({ data })).catch((error) => ({ error }));
415
+ nitroEnv.devServer.sendMessage({
416
+ type: "custom",
417
+ event: "nitro:vite-invoke-response",
418
+ data: { id: payload.data.id, data: res }
419
+ });
420
+ }
421
+ });
422
+ const nitroDevMiddleware = async (nodeReq, nodeRes, next) => {
423
+ if (/^\/@(?:vite|fs|id)\//.test(nodeReq.url) || nodeReq._nitroHandled) {
424
+ return next();
425
+ }
426
+ nodeReq._nitroHandled = true;
427
+ const req = new NodeRequest({ req: nodeReq, res: nodeRes });
428
+ const devAppRes = await ctx.devApp.fetch(req);
429
+ if (nodeRes.writableEnded || nodeRes.headersSent) {
430
+ return;
431
+ }
432
+ if (devAppRes.status !== 404) {
433
+ return await sendNodeResponse(nodeRes, devAppRes);
434
+ }
435
+ const envRes = await nitroEnv.dispatchFetch(req);
436
+ if (nodeRes.writableEnded || nodeRes.headersSent) {
437
+ return;
438
+ }
439
+ if (envRes.status !== 404) {
440
+ return await sendNodeResponse(nodeRes, envRes);
441
+ }
442
+ return next();
443
+ };
444
+ server.middlewares.use(function nitroDevMiddlewarePre(req, res, next) {
445
+ const fetchDest = req.headers["sec-fetch-dest"];
446
+ if (fetchDest) {
447
+ res.setHeader("vary", "sec-fetch-dest");
448
+ }
449
+ if (!fetchDest || /^(document|iframe|frame|empty)$/.test(fetchDest)) {
450
+ nitroDevMiddleware(req, res, next);
451
+ } else {
452
+ next();
453
+ }
454
+ });
455
+ return () => {
456
+ server.middlewares.use(nitroDevMiddleware);
457
+ };
458
+ }
459
+
460
+ function createDevWorker(ctx) {
461
+ return new NodeDevWorker({
462
+ name: "nitro-vite",
463
+ entry: resolve$1(runtimeDir, "internal/vite/dev-worker.mjs"),
464
+ hooks: {},
465
+ data: {
466
+ server: true,
467
+ globals: {
468
+ __NITRO_RUNTIME_CONFIG__: ctx.nitro.options.runtimeConfig
469
+ }
470
+ }
471
+ });
472
+ }
473
+ function createNitroEnvironment(ctx) {
474
+ return {
475
+ consumer: "server",
476
+ build: {
477
+ rollupOptions: ctx.rollupConfig.config,
478
+ minify: ctx.nitro.options.minify,
479
+ emptyOutDir: false,
480
+ commonjsOptions: {
481
+ strictRequires: "auto",
482
+ // TODO: set to true (default) in v3
483
+ esmExternals: (id) => !id.startsWith("unenv/"),
484
+ requireReturnsDefault: "auto",
485
+ ...ctx.nitro.options.commonJS
486
+ }
487
+ },
488
+ resolve: {
489
+ noExternal: ctx.nitro.options.dev ? (
490
+ // Workaround for dev: external dependencies are not resolvable with respect to nodeModulePaths
491
+ new RegExp(runtimeDependencies.join("|"))
492
+ ) : (
493
+ // Workaround for build: externals tracing is unstable
494
+ ctx.nitro.options.noExternals === false ? void 0 : true
495
+ ),
496
+ // prettier-ignore
497
+ conditions: ctx.nitro.options.exportConditions,
498
+ externalConditions: ctx.nitro.options.exportConditions
499
+ },
500
+ dev: {
501
+ createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(
502
+ envName,
503
+ envConfig,
504
+ ctx.devWorker,
505
+ resolve$1(runtimeDir, "internal/vite/dev-entry.mjs")
506
+ )
507
+ }
508
+ };
509
+ }
510
+ function createServiceEnvironment(ctx, name, serviceConfig) {
511
+ return {
512
+ consumer: "server",
513
+ build: {
514
+ rollupOptions: { input: serviceConfig.entry },
515
+ minify: ctx.nitro.options.minify,
516
+ outDir: join$1(ctx.nitro.options.buildDir, "vite", "services", name),
517
+ emptyOutDir: true
518
+ },
519
+ resolve: {
520
+ noExternal: ctx.nitro.options.dev ? void 0 : true,
521
+ conditions: ctx.nitro.options.exportConditions,
522
+ externalConditions: ctx.nitro.options.exportConditions
523
+ },
524
+ dev: {
525
+ createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(
526
+ envName,
527
+ envConfig,
528
+ ctx.devWorker,
529
+ tryResolve(serviceConfig.entry)
530
+ )
531
+ }
532
+ };
533
+ }
534
+ function createServiceEnvironments(ctx) {
535
+ return Object.fromEntries(
536
+ Object.entries(ctx.pluginConfig.services || {}).map(([name, config]) => [
537
+ name,
538
+ createServiceEnvironment(ctx, name, config)
539
+ ])
540
+ );
541
+ }
542
+ function tryResolve(id) {
543
+ if (/^[~#/\0]/.test(id) || isAbsolute(id)) {
544
+ return id;
545
+ }
546
+ const resolved = resolveModulePath(id, {
547
+ suffixes: ["", "/index"],
548
+ extensions: ["", ".ts", ".mjs", ".cjs", ".js", ".mts", ".cts"],
549
+ try: true
550
+ });
551
+ return resolved || id;
552
+ }
553
+
554
+ function nitroPreviewPlugin(ctx) {
555
+ return {
556
+ name: "nitro:preview",
557
+ apply: (_config, configEnv) => !!configEnv.isPreview,
558
+ config(config) {
559
+ return {
560
+ preview: {
561
+ port: config.preview?.port || 3e3
562
+ }
563
+ };
564
+ },
565
+ async configurePreviewServer(server) {
566
+ const buildInfoPath = resolve(
567
+ server.config.root,
568
+ "node_modules/.nitro/last-build",
569
+ "nitro.json"
570
+ );
571
+ if (!existsSync(buildInfoPath)) {
572
+ console.warn(
573
+ `[nitro] No build found. Please build your project before previewing.`
574
+ );
575
+ return;
576
+ }
577
+ const realBuildDir = await readlink("node_modules/.nitro/last-build");
578
+ const buildInfo = JSON.parse(
579
+ await readFile(buildInfoPath, "utf8")
580
+ );
581
+ const info = [
582
+ ["Build Directory:", prettyPath(realBuildDir)],
583
+ ["Date:", buildInfo.date && new Date(buildInfo.date).toLocaleString()],
584
+ ["Nitro Version:", buildInfo.versions.nitro],
585
+ ["Nitro Preset:", buildInfo.preset],
586
+ buildInfo.framework?.name !== "nitro" && [
587
+ "Framework:",
588
+ buildInfo.framework?.name + (buildInfo.framework?.version ? ` (v${buildInfo.framework.version})` : "")
589
+ ]
590
+ ].filter((i) => i && i[1]);
591
+ consola.box({
592
+ title: " [Build Info] ",
593
+ message: info.map((i) => `- ${i[0]} ${i[1]}`).join("\n")
594
+ });
595
+ if (!buildInfo.commands?.preview) {
596
+ consola.warn("[nitro] No preview command found for this preset..");
597
+ return;
598
+ }
599
+ const randomPort = await getRandomPort();
600
+ consola.info(`Spawning preview server...`);
601
+ const [command, ...args] = buildInfo.commands.preview.split(" ");
602
+ let child;
603
+ consola.info(buildInfo.commands?.preview);
604
+ child = spawn(command, args, {
605
+ stdio: "inherit",
606
+ cwd: realBuildDir,
607
+ env: {
608
+ ...process.env,
609
+ PORT: String(randomPort)
610
+ }
611
+ });
612
+ process.on("exit", () => {
613
+ child?.kill();
614
+ child = void 0;
615
+ });
616
+ child.on("exit", (code) => {
617
+ if (code && code !== 0) {
618
+ consola.error(`[nitro] Preview server exited with code ${code}`);
619
+ }
620
+ });
621
+ const proxy = createProxyServer({
622
+ target: `http://localhost:${randomPort}`
623
+ });
624
+ server.middlewares.use((req, res, next) => {
625
+ if (child && !child.killed) {
626
+ proxy.web(req, res).catch(next);
627
+ } else {
628
+ res.end(`Nitro preview server is not running.`);
629
+ }
630
+ });
631
+ }
632
+ };
633
+ }
634
+
635
+ const DEFAULT_EXTENSIONS = [".ts", ".js", ".mts", ".mjs", ".tsx", ".jsx"];
636
+ function nitro(pluginConfig = {}) {
637
+ const ctx = {
638
+ pluginConfig,
639
+ _entryPoints: {},
640
+ _manifest: {},
641
+ _serviceBundles: {}
642
+ };
643
+ return [
644
+ nitroPlugin(ctx),
645
+ nitroServicePlugin(ctx),
646
+ nitroPreviewPlugin(),
647
+ nitroRollupPlugins(ctx)
648
+ ];
649
+ }
650
+ function nitroPlugin(ctx) {
651
+ return [
652
+ {
653
+ name: "nitro:main",
654
+ // Opt-in this plugin into the shared plugins pipeline
655
+ sharedDuringBuild: true,
656
+ // Only apply this plugin during build or dev
657
+ apply: (config, configEnv) => !configEnv.isPreview,
658
+ // Extend vite config before it's resolved
659
+ async config(userConfig, configEnv) {
660
+ ctx.nitro = ctx.pluginConfig._nitro || await createNitro({
661
+ dev: configEnv.mode === "development",
662
+ rootDir: userConfig.root,
663
+ ...defu(ctx.pluginConfig.config, userConfig.nitro)
664
+ });
665
+ if (!ctx.pluginConfig.services?.ssr) {
666
+ ctx.pluginConfig.services ??= {};
667
+ if (userConfig.environments?.ssr === void 0) {
668
+ const ssrEntry = resolveModulePath("./entry-server", {
669
+ from: ["", "app", "src"].flatMap(
670
+ (d) => ctx.nitro.options.scanDirs.map((s) => join(s, d) + "/")
671
+ ),
672
+ extensions: DEFAULT_EXTENSIONS,
673
+ try: true
674
+ });
675
+ if (ssrEntry) {
676
+ ctx.pluginConfig.services.ssr = { entry: ssrEntry };
677
+ ctx.nitro.logger.info(
678
+ `Using \`${prettyPath(ssrEntry)}\` as vite ssr entry.`
679
+ );
680
+ }
681
+ } else {
682
+ let ssrEntry = getEntry(
683
+ userConfig.environments.ssr.build?.rollupOptions?.input
684
+ );
685
+ if (typeof ssrEntry === "string") {
686
+ ssrEntry = resolveModulePath(ssrEntry, {
687
+ from: ctx.nitro.options.scanDirs,
688
+ extensions: DEFAULT_EXTENSIONS,
689
+ suffixes: ["", "/index"],
690
+ try: true
691
+ }) || ssrEntry;
692
+ ctx.pluginConfig.services.ssr = { entry: ssrEntry };
693
+ } else {
694
+ this.error(`Invalid input type for SSR entry point.`);
695
+ }
696
+ }
697
+ }
698
+ if (!ctx.nitro.options.renderer?.entry && !ctx.nitro.options.renderer?.template && ctx.pluginConfig.services.ssr?.entry) {
699
+ ctx.nitro.options.renderer ??= {};
700
+ ctx.nitro.options.renderer.entry = resolve(
701
+ runtimeDir,
702
+ "internal/vite/ssr-renderer"
703
+ );
704
+ }
705
+ const publicDistDir = ctx._publicDistDir = userConfig.build?.outDir || resolve(ctx.nitro.options.buildDir, "vite/public");
706
+ ctx.nitro.options.publicAssets.push({
707
+ dir: publicDistDir,
708
+ maxAge: 0,
709
+ baseURL: "/",
710
+ fallthrough: true
711
+ });
712
+ if (!ctx.nitro.options.dev) {
713
+ ctx.nitro.options.unenv.push({
714
+ meta: { name: "nitro-vite" },
715
+ polyfill: ["#nitro-vite-setup"]
716
+ });
717
+ }
718
+ await ctx.nitro.hooks.callHook("build:before", ctx.nitro);
719
+ ctx.rollupConfig = await getViteRollupConfig(ctx);
720
+ if (ctx.nitro.options.dev && !ctx.devWorker) {
721
+ ctx.devWorker = createDevWorker(ctx);
722
+ }
723
+ if (ctx.nitro.options.dev && !ctx.devApp) {
724
+ ctx.devApp = new NitroDevApp(ctx.nitro);
725
+ }
726
+ return {
727
+ // Don't include HTML middlewares
728
+ appType: userConfig.appType || "custom",
729
+ // Add Nitro as a Vite environment
730
+ environments: {
731
+ client: {
732
+ consumer: userConfig.environments?.client?.consumer ?? "client",
733
+ build: {
734
+ rollupOptions: {
735
+ input: userConfig.environments?.client?.build?.rollupOptions?.input ?? ctx.nitro.options.renderer?.template
736
+ }
737
+ }
738
+ },
739
+ ...createServiceEnvironments(ctx),
740
+ nitro: createNitroEnvironment(ctx)
741
+ },
742
+ resolve: {
743
+ // TODO: environment specific aliases not working
744
+ // https://github.com/vitejs/vite/pull/17583 (seems not effective)
745
+ alias: ctx.rollupConfig.base.aliases
746
+ },
747
+ build: {
748
+ // TODO: Support server environment emitted assets
749
+ assetsInlineLimit: 4096 * 4
750
+ },
751
+ builder: {
752
+ /// Share the config instance among environments to align with the behavior of dev server
753
+ sharedConfigBuild: true
754
+ },
755
+ server: {
756
+ port: Number.parseInt(process.env.PORT || "") || userConfig.server?.port || ctx.nitro.options.devServer?.port || 3e3
757
+ }
758
+ };
759
+ },
760
+ configResolved(config) {
761
+ if (config.command === "build") {
762
+ for (const env of Object.values(config.environments)) {
763
+ if (env.consumer === "client") {
764
+ const { assetsDir } = env.build;
765
+ const rule = ctx.nitro.options.routeRules[`/${assetsDir}/**`] ??= {};
766
+ if (!rule.headers?.["cache-control"]) {
767
+ rule.headers = {
768
+ ...rule.headers,
769
+ "cache-control": `public, max-age=31536000, immutable`
770
+ };
771
+ }
772
+ }
773
+ }
774
+ }
775
+ ctx.nitro.routing.sync();
776
+ },
777
+ buildApp: {
778
+ order: "post",
779
+ handler(builder) {
780
+ return buildEnvironments(ctx, builder);
781
+ }
782
+ },
783
+ generateBundle: {
784
+ handler(_options, bundle) {
785
+ const { root } = this.environment.config;
786
+ const services = ctx.pluginConfig.services || {};
787
+ const serviceNames = Object.keys(services);
788
+ const isRegisteredService = serviceNames.includes(
789
+ this.environment.name
790
+ );
791
+ let entryFile;
792
+ for (const [_name, file] of Object.entries(bundle)) {
793
+ if (file.type === "chunk") {
794
+ if (isRegisteredService && file.isEntry) {
795
+ if (entryFile !== void 0) {
796
+ this.error(
797
+ `Multiple entry points found for service "${this.environment.name}". Only one entry point is allowed.`
798
+ );
799
+ }
800
+ entryFile = file.fileName;
801
+ }
802
+ const filteredModuleIds = file.moduleIds.filter(
803
+ (id) => id.startsWith(root)
804
+ );
805
+ for (const id of filteredModuleIds) {
806
+ const originalFile = relative(root, id);
807
+ ctx._manifest[originalFile] = { file: file.fileName };
808
+ }
809
+ }
810
+ }
811
+ if (isRegisteredService) {
812
+ if (entryFile === void 0) {
813
+ this.error(
814
+ `No entry point found for service "${this.environment.name}".`
815
+ );
816
+ }
817
+ ctx._entryPoints[this.environment.name] = entryFile;
818
+ ctx._serviceBundles[this.environment.name] = bundle;
819
+ }
820
+ }
821
+ },
822
+ // Modify environment configs before it's resolved.
823
+ configEnvironment(name, config) {
824
+ if (config.consumer === "client") {
825
+ config.build.emptyOutDir = false;
826
+ config.build.outDir = ctx.nitro.options.output.publicDir;
827
+ }
828
+ const services = ctx.pluginConfig.services || {};
829
+ const serviceNames = Object.keys(services);
830
+ if (serviceNames.includes(name) && ctx.pluginConfig.experimental?.virtualBundle) {
831
+ config.build ??= {};
832
+ config.build.write = config.build.write ?? false;
833
+ }
834
+ },
835
+ // Extend Vite dev server with Nitro middleware
836
+ configureServer: (server) => configureViteDevServer(ctx, server)
837
+ },
838
+ {
839
+ name: "nitro:prepare",
840
+ buildApp: {
841
+ // clean the output directory before any environment is built
842
+ order: "pre",
843
+ async handler() {
844
+ const nitro2 = ctx.nitro;
845
+ await prepare(nitro2);
846
+ }
847
+ }
848
+ }
849
+ ];
850
+ }
851
+ function nitroServicePlugin(ctx) {
852
+ return {
853
+ name: "nitro:service",
854
+ enforce: "pre",
855
+ // Only apply this plugin to the nitro environment
856
+ applyToEnvironment: (env) => env.name === "nitro",
857
+ resolveId: {
858
+ async handler(id, importer, options) {
859
+ if (id === "#nitro-vite-setup") {
860
+ return { id, moduleSideEffects: true };
861
+ }
862
+ if (id === "#nitro-vite-services") {
863
+ return id;
864
+ }
865
+ if (runtimeDependencies.some(
866
+ (dep) => id === dep || id.startsWith(`${dep}/`)
867
+ )) {
868
+ const resolved = await this.resolve(id, importer, {
869
+ ...options,
870
+ skipSelf: true
871
+ });
872
+ return resolved || resolveModulePath(id, {
873
+ from: ctx.nitro.options.nodeModulesDirs,
874
+ conditions: ctx.nitro.options.exportConditions,
875
+ try: true
876
+ });
877
+ }
878
+ if (importer?.startsWith("\0virtual:#nitro-internal-virtual")) {
879
+ const internalRes = await this.resolve(id, import.meta.url, {
880
+ ...options,
881
+ custom: { ...options.custom, skipNoExternals: true }
882
+ });
883
+ if (internalRes) {
884
+ return internalRes;
885
+ }
886
+ const resolvedFromRoot = await this.resolve(
887
+ id,
888
+ ctx.nitro.options.rootDir,
889
+ { ...options, custom: { ...options.custom, skipNoExternals: true } }
890
+ );
891
+ if (resolvedFromRoot) {
892
+ return resolvedFromRoot;
893
+ }
894
+ const ids = [id];
895
+ if (!/^[./@#]/.test(id)) {
896
+ ids.push(`./${id}`);
897
+ }
898
+ for (const _id of ids) {
899
+ const resolved = resolveModulePath(_id, {
900
+ from: process.cwd(),
901
+ extensions: DEFAULT_EXTENSIONS,
902
+ suffixes: ["", "/index"],
903
+ try: true
904
+ });
905
+ if (resolved) {
906
+ return resolved;
907
+ }
908
+ }
909
+ }
910
+ }
911
+ },
912
+ load: {
913
+ async handler(id) {
914
+ if (id === "#nitro-vite-setup") {
915
+ return prodSetup(ctx);
916
+ }
917
+ }
918
+ }
919
+ };
920
+ }
921
+ function nitroRollupPlugins(ctx) {
922
+ const createHookCaller = (hook, order) => {
923
+ const handler = async function(...args) {
924
+ for (const plugin of ctx.rollupConfig.config.plugins) {
925
+ if (typeof plugin[hook] !== "function") continue;
926
+ const res = await plugin[hook].call(this, ...args);
927
+ if (res) {
928
+ if (hook === "resolveId" && res.id?.startsWith?.("file://")) {
929
+ res.id = fileURLToPath(res.id);
930
+ }
931
+ return res;
932
+ }
933
+ }
934
+ };
935
+ Object.defineProperty(handler, "name", { value: hook });
936
+ return order ? { order, handler } : handler;
937
+ };
938
+ return {
939
+ name: "nitro:rollup-hooks",
940
+ applyToEnvironment: (env) => env.name === "nitro",
941
+ buildStart: createHookCaller("buildStart", "pre"),
942
+ resolveId: createHookCaller("resolveId", "pre"),
943
+ load: createHookCaller("load", "pre"),
944
+ transform: createHookCaller("transform", "post"),
945
+ renderChunk: createHookCaller("renderChunk", "post"),
946
+ generateBundle: createHookCaller("generateBundle", "post"),
947
+ buildEnd: createHookCaller("buildEnd", "post")
948
+ };
949
+ }
950
+ function getEntry(input) {
951
+ if (typeof input === "string") {
952
+ return input;
953
+ } else if (Array.isArray(input) && input.length > 0) {
954
+ return input[0];
955
+ } else if (input && "index" in input) {
956
+ return input.index;
957
+ }
958
+ }
959
+
960
+ export { nitro as n };