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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +2 -0
  2. package/dist/_build/common.mjs +24940 -0
  3. package/dist/_build/rolldown.mjs +172 -0
  4. package/dist/_build/rollup.mjs +201 -0
  5. package/dist/_build/vite.build.mjs +16 -0
  6. package/dist/_chunks/dev.mjs +707 -0
  7. package/dist/_chunks/nitro.mjs +1191 -0
  8. package/dist/_chunks/nitro2.mjs +101 -0
  9. package/dist/_chunks/utils.mjs +254 -0
  10. package/dist/_common.mjs +45 -0
  11. package/dist/_dev.d.mts +12 -0
  12. package/dist/_libs/c12+giget+readdirp+chokidar.d.mts +214 -0
  13. package/dist/_libs/citty.mjs +363 -0
  14. package/dist/_libs/commondir+is-reference.mjs +1300 -0
  15. package/dist/_libs/compatx.d.mts +47 -0
  16. package/dist/_libs/compatx.mjs +46 -0
  17. package/dist/_libs/confbox.mjs +2509 -0
  18. package/dist/_libs/esbuild.d.mts +20 -0
  19. package/dist/_libs/escape-string-regexp.mjs +8 -0
  20. package/dist/_libs/estree-walker.mjs +187 -0
  21. package/dist/_libs/hasown+resolve+deepmerge.mjs +1972 -0
  22. package/dist/_libs/httpxy.d.mts +79 -0
  23. package/dist/_libs/httpxy.mjs +415 -0
  24. package/dist/_libs/klona.mjs +38 -0
  25. package/dist/_libs/magic-string.d.mts +220 -0
  26. package/dist/_libs/mlly.d.mts +57 -0
  27. package/dist/_libs/nypm+giget+tinyexec.mjs +3603 -0
  28. package/dist/_libs/pkg-types.d.mts +23 -0
  29. package/dist/_libs/plugin-alias.mjs +66 -0
  30. package/dist/_libs/plugin-inject.mjs +135 -0
  31. package/dist/_libs/plugin-json.mjs +36 -0
  32. package/dist/_libs/pluginutils+plugin-commonjs.d.mts +241 -0
  33. package/dist/_libs/pluginutils.mjs +652 -0
  34. package/dist/_libs/rc9+c12+dotenv.mjs +972 -0
  35. package/dist/_libs/readdirp+chokidar.mjs +1611 -0
  36. package/dist/_libs/remapping.mjs +117 -0
  37. package/dist/_libs/resolve-uri+gen-mapping.mjs +448 -0
  38. package/dist/_libs/rou3.d.mts +43 -0
  39. package/dist/_libs/rou3.mjs +322 -0
  40. package/dist/_libs/std-env.d.mts +4 -0
  41. package/dist/_libs/tsconfck.mjs +832 -0
  42. package/dist/_libs/ultrahtml.mjs +138 -0
  43. package/dist/_libs/unimport+unplugin.mjs +1785 -0
  44. package/dist/_libs/unplugin+unimport.d.mts +426 -0
  45. package/dist/_libs/unwasm.d.mts +29 -0
  46. package/dist/_presets.mjs +1802 -0
  47. package/dist/builder.d.mts +63 -0
  48. package/dist/builder.mjs +9 -0
  49. package/dist/cli/_chunks/build.mjs +48 -0
  50. package/dist/cli/_chunks/common.mjs +15 -0
  51. package/dist/cli/_chunks/dev.mjs +62 -0
  52. package/dist/cli/_chunks/list.mjs +27 -0
  53. package/dist/cli/_chunks/prepare.mjs +19 -0
  54. package/dist/cli/_chunks/run.mjs +55 -0
  55. package/dist/cli/_chunks/task.mjs +16 -0
  56. package/dist/cli/index.d.mts +1 -1
  57. package/dist/cli/index.mjs +20 -476
  58. package/dist/node_modules/@poppinss/colors/build/index.js +130 -160
  59. package/dist/node_modules/@poppinss/colors/package.json +20 -18
  60. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +1 -1
  61. package/dist/node_modules/@poppinss/dumper/package.json +1 -1
  62. package/dist/node_modules/@poppinss/exception/build/index.js +36 -55
  63. package/dist/node_modules/@poppinss/exception/package.json +19 -16
  64. package/dist/node_modules/@sindresorhus/is/distribution/index.js +47 -6
  65. package/dist/node_modules/@sindresorhus/is/package.json +1 -1
  66. package/dist/node_modules/@speed-highlight/core/dist/index.js +2 -2
  67. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -2
  68. package/dist/node_modules/@speed-highlight/core/package.json +8 -4
  69. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  70. package/dist/node_modules/cookie-es/package.json +37 -0
  71. package/dist/node_modules/hookable/dist/index.mjs +244 -268
  72. package/dist/node_modules/hookable/package.json +29 -26
  73. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  74. package/dist/node_modules/rendu/package.json +47 -0
  75. package/dist/node_modules/ufo/dist/index.mjs +16 -9
  76. package/dist/node_modules/ufo/package.json +15 -14
  77. package/dist/node_modules/unctx/package.json +16 -16
  78. package/dist/node_modules/youch/build/{chunk-4XB2BYKC.js → chunk-7QV3D5YX.js} +2 -4
  79. package/dist/node_modules/youch/build/{chunk-PUHGL6HA.js → chunk-AUGPHE32.js} +2 -4
  80. package/dist/node_modules/youch/build/{chunk-VE4LENUR.js → chunk-CM7DWJNZ.js} +4 -5
  81. package/dist/node_modules/youch/build/{chunk-JAN2TFI2.js → chunk-EJH674NB.js} +6 -5
  82. package/dist/node_modules/youch/build/{chunk-EUJBVOYB.js → chunk-OIJ3WD7L.js} +2 -4
  83. package/dist/node_modules/youch/build/{chunk-HFSXRSKS.js → chunk-P36L72PL.js} +5 -3
  84. package/dist/node_modules/youch/build/{chunk-4YEN7HVQ.js → chunk-PE3GG3TN.js} +5 -1
  85. package/dist/node_modules/youch/build/{chunk-PINJDICN.js → chunk-X53OIOJH.js} +2 -4
  86. package/dist/node_modules/youch/build/index.js +22 -15
  87. package/dist/node_modules/youch/build/public/error_info/style.css +1 -0
  88. package/dist/node_modules/youch/build/public/error_metadata/style.css +3 -0
  89. package/dist/node_modules/youch/build/public/error_stack/script.js +20 -22
  90. package/dist/node_modules/youch/build/public/error_stack/style.css +2 -3
  91. package/dist/node_modules/youch/build/public/header/script.js +0 -2
  92. package/dist/node_modules/youch/build/public/layout/script.js +0 -8
  93. package/dist/node_modules/youch/build/public/layout/style.css +4 -0
  94. package/dist/node_modules/youch/package.json +16 -17
  95. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +2 -1
  96. package/dist/presets/_nitro/runtime/nitro-dev.mjs +47 -42
  97. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +3 -3
  98. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +11 -15
  99. package/dist/presets/_nitro/runtime/service-worker.d.mts +2 -1
  100. package/dist/presets/_nitro/runtime/service-worker.mjs +17 -14
  101. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +2 -1
  102. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +8 -7
  103. package/dist/presets/aws-lambda/runtime/_utils.d.mts +3 -13
  104. package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
  105. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +2 -3
  106. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +25 -29
  107. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +1 -1
  108. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +9 -9
  109. package/dist/presets/azure/runtime/_utils.mjs +43 -43
  110. package/dist/presets/azure/runtime/azure-swa.d.mts +3 -3
  111. package/dist/presets/azure/runtime/azure-swa.mjs +25 -23
  112. package/dist/presets/bun/runtime/bun.d.mts +3 -1
  113. package/dist/presets/bun/runtime/bun.mjs +34 -22
  114. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +12 -9
  115. package/dist/presets/cloudflare/runtime/_module-handler.mjs +84 -90
  116. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +7 -15
  117. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +62 -64
  118. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +2 -8
  119. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +15 -18
  120. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +13 -13
  121. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +35 -43
  122. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
  123. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -82
  124. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  125. package/dist/presets/deno/runtime/deno-deploy.d.mts +5 -1
  126. package/dist/presets/deno/runtime/deno-deploy.mjs +15 -13
  127. package/dist/presets/deno/runtime/deno-server.d.mts +1 -4
  128. package/dist/presets/deno/runtime/deno-server.mjs +32 -53
  129. package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -2
  130. package/dist/presets/netlify/runtime/netlify-edge.mjs +18 -14
  131. package/dist/presets/netlify/runtime/netlify.d.mts +3 -2
  132. package/dist/presets/netlify/runtime/netlify.mjs +15 -19
  133. package/dist/presets/node/runtime/node-cluster.d.mts +3 -1
  134. package/dist/presets/node/runtime/node-cluster.mjs +49 -54
  135. package/dist/presets/node/runtime/node-middleware.d.mts +3 -4
  136. package/dist/presets/node/runtime/node-middleware.mjs +9 -9
  137. package/dist/presets/node/runtime/node-server.d.mts +1 -1
  138. package/dist/presets/node/runtime/node-server.mjs +36 -34
  139. package/dist/presets/standard/runtime/server.d.mts +2 -4
  140. package/dist/presets/standard/runtime/server.mjs +3 -5
  141. package/dist/presets/stormkit/runtime/stormkit.d.mts +14 -14
  142. package/dist/presets/stormkit/runtime/stormkit.mjs +22 -22
  143. package/dist/presets/vercel/runtime/isr.d.mts +2 -0
  144. package/dist/presets/vercel/runtime/isr.mjs +19 -0
  145. package/dist/presets/vercel/runtime/vercel.node.d.mts +3 -0
  146. package/dist/presets/vercel/runtime/vercel.node.mjs +24 -0
  147. package/dist/presets/vercel/runtime/vercel.web.d.mts +8 -0
  148. package/dist/presets/vercel/runtime/vercel.web.mjs +25 -0
  149. package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -1
  150. package/dist/presets/winterjs/runtime/winterjs.mjs +74 -70
  151. package/dist/presets/zeabur/runtime/zeabur.d.mts +2 -2
  152. package/dist/presets/zeabur/runtime/zeabur.mjs +2 -2
  153. package/dist/runtime/app.d.mts +1 -0
  154. package/dist/runtime/app.mjs +1 -0
  155. package/dist/runtime/cache.d.mts +1 -0
  156. package/dist/runtime/cache.mjs +1 -0
  157. package/dist/runtime/config.d.mts +3 -0
  158. package/dist/runtime/config.mjs +4 -0
  159. package/dist/runtime/context.d.mts +1 -0
  160. package/dist/runtime/context.mjs +1 -0
  161. package/dist/runtime/database.d.mts +1 -0
  162. package/dist/runtime/database.mjs +1 -0
  163. package/dist/runtime/internal/app.d.mts +15 -1
  164. package/dist/runtime/internal/app.mjs +199 -144
  165. package/dist/runtime/internal/cache.d.mts +9 -5
  166. package/dist/runtime/internal/cache.mjs +248 -219
  167. package/dist/runtime/internal/context.d.mts +9 -9
  168. package/dist/runtime/internal/context.mjs +17 -10
  169. package/dist/runtime/internal/database.mjs +9 -11
  170. package/dist/runtime/internal/error/dev.d.mts +4 -4
  171. package/dist/runtime/internal/error/dev.mjs +106 -105
  172. package/dist/runtime/internal/error/hooks.d.mts +1 -0
  173. package/dist/runtime/internal/error/hooks.mjs +9 -0
  174. package/dist/runtime/internal/error/prod.d.mts +5 -4
  175. package/dist/runtime/internal/error/prod.mjs +51 -59
  176. package/dist/runtime/internal/error/utils.d.mts +4 -4
  177. package/dist/runtime/internal/error/utils.mjs +1 -1
  178. package/dist/runtime/internal/meta.d.mts +1 -1
  179. package/dist/runtime/internal/meta.mjs +1 -1
  180. package/dist/runtime/internal/plugin.d.mts +2 -2
  181. package/dist/runtime/internal/plugin.mjs +1 -1
  182. package/dist/runtime/internal/route-rules.d.mts +4 -8
  183. package/dist/runtime/internal/route-rules.mjs +54 -52
  184. package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -2
  185. package/dist/runtime/internal/routes/dev-tasks.mjs +17 -19
  186. package/dist/runtime/internal/routes/openapi.mjs +82 -88
  187. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  188. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
  189. package/dist/runtime/internal/routes/renderer-template.dev.mjs +15 -17
  190. package/dist/runtime/internal/routes/renderer-template.mjs +2 -2
  191. package/dist/runtime/internal/routes/scalar.mjs +22 -23
  192. package/dist/runtime/internal/routes/swagger.mjs +9 -11
  193. package/dist/runtime/internal/runtime-config.d.mts +4 -4
  194. package/dist/runtime/internal/runtime-config.mjs +44 -39
  195. package/dist/runtime/internal/static.mjs +63 -74
  196. package/dist/runtime/internal/storage.mjs +3 -3
  197. package/dist/runtime/internal/task.d.mts +6 -6
  198. package/dist/runtime/internal/task.mjs +57 -61
  199. package/dist/runtime/internal/vite/dev-entry.mjs +11 -2
  200. package/dist/runtime/internal/vite/{dev-worker.mjs → node-runner.mjs} +54 -57
  201. package/dist/runtime/internal/vite/ssr-renderer.mjs +3 -1
  202. package/{lib/runtime-meta.d.mts → dist/runtime/meta.d.mts} +2 -2
  203. package/dist/runtime/meta.mjs +26 -0
  204. package/dist/runtime/nitro.d.mts +9 -0
  205. package/dist/runtime/nitro.mjs +32 -0
  206. package/dist/runtime/runtime-config.d.mts +1 -0
  207. package/dist/runtime/runtime-config.mjs +1 -0
  208. package/dist/runtime/storage.d.mts +1 -0
  209. package/dist/runtime/storage.mjs +1 -0
  210. package/dist/runtime/task.d.mts +1 -0
  211. package/dist/runtime/task.mjs +1 -0
  212. package/dist/runtime/virtual/_runtime_warn.mjs +5 -0
  213. package/dist/runtime/virtual/database.d.mts +8 -0
  214. package/dist/runtime/virtual/database.mjs +2 -0
  215. package/dist/runtime/virtual/error-handler.d.mts +6 -0
  216. package/dist/runtime/virtual/error-handler.mjs +9 -0
  217. package/dist/runtime/virtual/feature-flags.d.mts +7 -0
  218. package/dist/runtime/virtual/feature-flags.mjs +7 -0
  219. package/dist/runtime/virtual/plugins.d.mts +3 -0
  220. package/dist/runtime/virtual/plugins.mjs +2 -0
  221. package/dist/runtime/virtual/polyfills.d.mts +3 -0
  222. package/dist/runtime/virtual/polyfills.mjs +2 -0
  223. package/dist/runtime/virtual/public-assets.d.mts +9 -0
  224. package/dist/runtime/virtual/public-assets.mjs +8 -0
  225. package/dist/runtime/virtual/renderer-template.d.mts +4 -0
  226. package/dist/runtime/virtual/renderer-template.mjs +7 -0
  227. package/dist/runtime/virtual/routing-meta.d.mts +7 -0
  228. package/dist/runtime/virtual/routing-meta.mjs +2 -0
  229. package/dist/runtime/virtual/routing.d.mts +8 -0
  230. package/dist/runtime/virtual/routing.mjs +11 -0
  231. package/dist/runtime/virtual/runtime-config.d.mts +3 -0
  232. package/dist/runtime/virtual/runtime-config.mjs +5 -0
  233. package/dist/runtime/virtual/server-assets.d.mts +6 -0
  234. package/dist/runtime/virtual/server-assets.mjs +12 -0
  235. package/dist/runtime/virtual/storage.d.mts +3 -0
  236. package/dist/runtime/virtual/storage.mjs +5 -0
  237. package/dist/runtime/virtual/tasks.d.mts +10 -0
  238. package/dist/runtime/virtual/tasks.mjs +3 -0
  239. package/dist/runtime/vite.d.mts +8 -0
  240. package/dist/runtime/vite.mjs +9 -0
  241. package/dist/types/index.d.mts +2561 -2312
  242. package/dist/types/index.mjs +10 -0
  243. package/dist/vite.d.mts +44 -51
  244. package/dist/vite.mjs +737 -68
  245. package/lib/tsconfig.json +27 -0
  246. package/lib/vite.types.d.mts +26 -0
  247. package/lib/vite.types.mjs +2 -0
  248. package/package.json +118 -101
  249. package/dist/_chunks/app.mjs +0 -19797
  250. package/dist/_chunks/build.mjs +0 -84
  251. package/dist/_chunks/build2.mjs +0 -318
  252. package/dist/_chunks/build3.mjs +0 -6452
  253. package/dist/_chunks/detect-acorn.mjs +0 -503
  254. package/dist/_chunks/index.mjs +0 -22242
  255. package/dist/_chunks/index2.mjs +0 -297
  256. package/dist/_chunks/index3.mjs +0 -1058
  257. package/dist/_chunks/index4.mjs +0 -1206
  258. package/dist/_chunks/info.mjs +0 -11157
  259. package/dist/_chunks/json5.mjs +0 -68
  260. package/dist/_chunks/jsonc.mjs +0 -51
  261. package/dist/_chunks/pathe.M-eThtNZ.mjs +0 -204
  262. package/dist/_chunks/plugin.mjs +0 -960
  263. package/dist/_chunks/server.mjs +0 -254
  264. package/dist/_chunks/snapshot.mjs +0 -284
  265. package/dist/_chunks/toml.mjs +0 -259
  266. package/dist/_chunks/yaml.mjs +0 -86
  267. package/dist/cli/build.mjs +0 -54
  268. package/dist/cli/common.mjs +0 -13
  269. package/dist/cli/dev.mjs +0 -95
  270. package/dist/cli/index2.mjs +0 -17
  271. package/dist/cli/list.mjs +0 -34
  272. package/dist/cli/prepare.mjs +0 -24
  273. package/dist/cli/run.mjs +0 -60
  274. package/dist/index.d.mts +0 -52
  275. package/dist/index.mjs +0 -55
  276. package/dist/node_modules/cookie/dist/index.js +0 -239
  277. package/dist/node_modules/cookie/package.json +0 -42
  278. package/dist/node_modules/kleur/index.js +0 -110
  279. package/dist/node_modules/klona/dist/index.mjs +0 -81
  280. package/dist/node_modules/klona/full/index.mjs +0 -53
  281. package/dist/node_modules/klona/package.json +0 -74
  282. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  283. package/dist/node_modules/std-env/package.json +0 -46
  284. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +0 -6
  285. package/dist/presets/vercel/runtime/vercel.d.mts +0 -8
  286. package/dist/presets/vercel/runtime/vercel.mjs +0 -17
  287. package/dist/presets.mjs +0 -2460
  288. package/dist/runtime/index.d.mts +0 -11
  289. package/dist/runtime/index.mjs +0 -17
  290. package/dist/runtime/internal/debug.d.mts +0 -2
  291. package/dist/runtime/internal/debug.mjs +0 -5
  292. package/dist/runtime/internal/empty.d.mts +0 -0
  293. package/dist/runtime/internal/index.d.mts +0 -3
  294. package/dist/runtime/internal/index.mjs +0 -3
  295. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +0 -16
  296. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +0 -213
  297. package/dist/runtime/internal/renderer.d.mts +0 -3
  298. package/dist/runtime/internal/renderer.mjs +0 -36
  299. package/dist/runtime/internal/shutdown.d.mts +0 -9
  300. package/dist/runtime/internal/shutdown.mjs +0 -34
  301. package/dist/runtime/internal/utils.d.mts +0 -1
  302. package/dist/runtime/internal/utils.mjs +0 -15
  303. package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
  304. package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
  305. package/dist/runtime/internal/vite/prod-setup.mjs +0 -55
  306. package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
  307. package/lib/config.d.mts +0 -9
  308. package/lib/config.mjs +0 -5
  309. package/lib/deps/ofetch.mjs +0 -1
  310. package/lib/deps/ofetch.mts +0 -1
  311. package/lib/meta.d.mts +0 -5
  312. package/lib/meta.mjs +0 -21
  313. package/lib/runtime-meta.mjs +0 -38
  314. /package/dist/runtime/{internal/vite/dev-worker.d.mts → virtual/_runtime_warn.d.mts} +0 -0
  315. /package/lib/{deps/h3.d.mts → h3.d.mts} +0 -0
  316. /package/lib/{deps/h3.mjs → h3.mjs} +0 -0
@@ -1,93 +1,87 @@
1
- import "#nitro-internal-pollyfills";
2
- import { useNitroApp } from "nitro/runtime";
3
- import { runCronTasks } from "nitro/runtime/internal";
1
+ import "#nitro/virtual/polyfills";
2
+ import { runCronTasks } from "#nitro/runtime/task";
3
+ import { useNitroApp, useNitroHooks } from "nitro/app";
4
4
  export function createHandler(hooks) {
5
- const nitroApp = useNitroApp();
6
- return {
7
- async fetch(request, env, context) {
8
- const ctxExt = {};
9
- const url = new URL(request.url);
10
- if (hooks.fetch) {
11
- const res = await hooks.fetch(request, env, context, url, ctxExt);
12
- if (res) {
13
- return res;
14
- }
15
- }
16
- return fetchHandler(request, env, context, url, nitroApp, ctxExt);
17
- },
18
- scheduled(controller, env, context) {
19
- globalThis.__env__ = env;
20
- context.waitUntil(
21
- nitroApp.hooks.callHook("cloudflare:scheduled", {
22
- controller,
23
- env,
24
- context
25
- })
26
- );
27
- if (import.meta._tasks) {
28
- context.waitUntil(
29
- runCronTasks(controller.cron, {
30
- context: {
31
- cloudflare: {
32
- env,
33
- context
34
- }
35
- },
36
- payload: {}
37
- })
38
- );
39
- }
40
- },
41
- email(message, env, context) {
42
- globalThis.__env__ = env;
43
- context.waitUntil(
44
- nitroApp.hooks.callHook("cloudflare:email", {
45
- message,
46
- event: message,
47
- // backward compat
48
- env,
49
- context
50
- })
51
- );
52
- },
53
- queue(batch, env, context) {
54
- globalThis.__env__ = env;
55
- context.waitUntil(
56
- nitroApp.hooks.callHook("cloudflare:queue", {
57
- batch,
58
- event: batch,
59
- env,
60
- context
61
- })
62
- );
63
- },
64
- tail(traces, env, context) {
65
- globalThis.__env__ = env;
66
- context.waitUntil(
67
- nitroApp.hooks.callHook("cloudflare:tail", {
68
- traces,
69
- env,
70
- context
71
- })
72
- );
73
- },
74
- trace(traces, env, context) {
75
- globalThis.__env__ = env;
76
- context.waitUntil(
77
- nitroApp.hooks.callHook("cloudflare:trace", {
78
- traces,
79
- env,
80
- context
81
- })
82
- );
83
- }
84
- };
5
+ const nitroApp = useNitroApp();
6
+ const nitroHooks = useNitroHooks();
7
+ return {
8
+ async fetch(request, env, context) {
9
+ globalThis.__env__ = env;
10
+ augmentReq(request, {
11
+ env,
12
+ context
13
+ });
14
+ const ctxExt = {};
15
+ const url = new URL(request.url);
16
+ // Preset-specific logic
17
+ if (hooks.fetch) {
18
+ const res = await hooks.fetch(request, env, context, url, ctxExt);
19
+ if (res) {
20
+ return res;
21
+ }
22
+ }
23
+ return await nitroApp.fetch(request);
24
+ },
25
+ scheduled(controller, env, context) {
26
+ globalThis.__env__ = env;
27
+ context.waitUntil(nitroHooks.callHook("cloudflare:scheduled", {
28
+ controller,
29
+ env,
30
+ context
31
+ }) || Promise.resolve());
32
+ if (import.meta._tasks) {
33
+ context.waitUntil(runCronTasks(controller.cron, {
34
+ context: { cloudflare: {
35
+ env,
36
+ context
37
+ } },
38
+ payload: {}
39
+ }));
40
+ }
41
+ },
42
+ email(message, env, context) {
43
+ globalThis.__env__ = env;
44
+ context.waitUntil(nitroHooks.callHook("cloudflare:email", {
45
+ message,
46
+ event: message,
47
+ env,
48
+ context
49
+ }) || Promise.resolve());
50
+ },
51
+ queue(batch, env, context) {
52
+ globalThis.__env__ = env;
53
+ context.waitUntil(nitroHooks.callHook("cloudflare:queue", {
54
+ batch,
55
+ event: batch,
56
+ env,
57
+ context
58
+ }) || Promise.resolve());
59
+ },
60
+ tail(traces, env, context) {
61
+ globalThis.__env__ = env;
62
+ context.waitUntil(nitroHooks.callHook("cloudflare:tail", {
63
+ traces,
64
+ env,
65
+ context
66
+ }) || Promise.resolve());
67
+ },
68
+ trace(traces, env, context) {
69
+ globalThis.__env__ = env;
70
+ context.waitUntil(nitroHooks.callHook("cloudflare:trace", {
71
+ traces,
72
+ env,
73
+ context
74
+ }) || Promise.resolve());
75
+ }
76
+ };
85
77
  }
86
- export async function fetchHandler(cfReq, env, context, url = new URL(cfReq.url), nitroApp = useNitroApp(), ctxExt) {
87
- globalThis.__env__ = env;
88
- const req = cfReq;
89
- req.runtime ??= { name: "cloudflare" };
90
- req.runtime.cloudflare ??= { context, env };
91
- req.waitUntil = context.waitUntil.bind(context);
92
- return nitroApp.fetch(req);
78
+ export function augmentReq(cfReq, ctx) {
79
+ const req = cfReq;
80
+ req.ip = cfReq.headers.get("cf-connecting-ip") || undefined;
81
+ req.runtime ??= { name: "cloudflare" };
82
+ req.runtime.cloudflare = {
83
+ ...req.runtime.cloudflare,
84
+ ...ctx
85
+ };
86
+ req.waitUntil = ctx.context?.waitUntil.bind(ctx.context);
93
87
  }
@@ -1,19 +1,11 @@
1
- import "#nitro-internal-pollyfills";
2
- import type * as CF from "@cloudflare/workers-types";
1
+ import "#nitro/virtual/polyfills";
3
2
  import { DurableObject } from "cloudflare:workers";
4
- declare const DURABLE_BINDING = "$DurableObject";
5
- interface Env {
6
- ASSETS?: {
7
- fetch: typeof CF.fetch;
8
- };
9
- [DURABLE_BINDING]?: CF.DurableObjectNamespace;
10
- }
11
- declare const _default: CF.ExportedHandler<Env, unknown, unknown>;
3
+ declare const _default;
12
4
  export default _default;
13
5
  export declare class $DurableObject extends DurableObject {
14
- constructor(state: DurableObjectState, env: Record<string, any>);
15
- fetch(request: Request): Promise<Response>;
16
- alarm(): void | Promise<void>;
17
- webSocketMessage(client: WebSocket, message: ArrayBuffer | string): Promise<void>;
18
- webSocketClose(client: WebSocket, code: number, reason: string, wasClean: boolean): Promise<void>;
6
+ constructor(state: DurableObjectState, env: Record<string, any>);
7
+ fetch(request: Request);
8
+ alarm(): void | Promise<void>;
9
+ webSocketMessage(client: WebSocket, message: ArrayBuffer | string);
10
+ webSocketClose(client: WebSocket, code: number, reason: string, wasClean: boolean);
19
11
  }
@@ -1,74 +1,72 @@
1
- import "#nitro-internal-pollyfills";
1
+ import "#nitro/virtual/polyfills";
2
2
  import { DurableObject } from "cloudflare:workers";
3
3
  import wsAdapter from "crossws/adapters/cloudflare";
4
- import { useNitroApp } from "nitro/runtime";
5
- import { isPublicAssetURL } from "#nitro-internal-virtual/public-assets";
6
- import { createHandler, fetchHandler } from "./_module-handler.mjs";
4
+ import { createHandler, augmentReq } from "./_module-handler.mjs";
5
+ import { useNitroApp, useNitroHooks } from "nitro/app";
6
+ import { isPublicAssetURL } from "#nitro/virtual/public-assets";
7
+ import { resolveWebsocketHooks } from "#nitro/runtime/app";
7
8
  const DURABLE_BINDING = "$DurableObject";
8
9
  const DURABLE_INSTANCE = "server";
9
10
  const nitroApp = useNitroApp();
11
+ const nitroHooks = useNitroHooks();
10
12
  const getDurableStub = (env) => {
11
- const binding = env[DURABLE_BINDING];
12
- if (!binding) {
13
- throw new Error(
14
- `Durable Object binding "${DURABLE_BINDING}" not available.`
15
- );
16
- }
17
- const id = binding.idFromName(DURABLE_INSTANCE);
18
- return binding.get(id);
13
+ const binding = env[DURABLE_BINDING];
14
+ if (!binding) {
15
+ throw new Error(`Durable Object binding "${DURABLE_BINDING}" not available.`);
16
+ }
17
+ const id = binding.idFromName(DURABLE_INSTANCE);
18
+ return binding.get(id);
19
19
  };
20
20
  const ws = import.meta._websocket ? wsAdapter({
21
- // TODO!
22
- // ...nitroApp.h3App.websocket,
23
- instanceName: DURABLE_INSTANCE,
24
- bindingName: DURABLE_BINDING
25
- }) : void 0;
26
- export default createHandler({
27
- fetch(request, env, context, url, ctxExt) {
28
- if (env.ASSETS && isPublicAssetURL(url.pathname)) {
29
- return env.ASSETS.fetch(request);
30
- }
31
- ctxExt.durableFetch = (req = request) => getDurableStub(env).fetch(req);
32
- if (import.meta._websocket && request.headers.get("upgrade") === "websocket") {
33
- return ws.handleUpgrade(request, env, context);
34
- }
35
- }
36
- });
21
+ resolve: resolveWebsocketHooks,
22
+ instanceName: DURABLE_INSTANCE,
23
+ bindingName: DURABLE_BINDING
24
+ }) : undefined;
25
+ export default createHandler({ fetch(request, env, context, url, ctxExt) {
26
+ // Static assets fallback (optional binding)
27
+ if (env.ASSETS && isPublicAssetURL(url.pathname)) {
28
+ return env.ASSETS.fetch(request);
29
+ }
30
+ // Expose stub fetch to the context
31
+ ctxExt.durableFetch = (req = request) => getDurableStub(env).fetch(req);
32
+ // Websocket upgrade
33
+ // https://crossws.unjs.io/adapters/cloudflare#durable-objects
34
+ if (import.meta._websocket && request.headers.get("upgrade") === "websocket") {
35
+ return ws.handleUpgrade(request, env, context);
36
+ }
37
+ } });
37
38
  export class $DurableObject extends DurableObject {
38
- constructor(state, env) {
39
- super(state, env);
40
- state.waitUntil(
41
- nitroApp.hooks.callHook("cloudflare:durable:init", this, {
42
- state,
43
- env
44
- })
45
- );
46
- if (import.meta._websocket) {
47
- ws.handleDurableInit(this, state, env);
48
- }
49
- }
50
- fetch(request) {
51
- if (import.meta._websocket && request.headers.get("upgrade") === "websocket") {
52
- return ws.handleDurableUpgrade(this, request);
53
- }
54
- const url = new URL(request.url);
55
- return fetchHandler(request, this.env, this.ctx, url, nitroApp, {
56
- durable: this
57
- });
58
- }
59
- alarm() {
60
- this.ctx.waitUntil(
61
- nitroApp.hooks.callHook("cloudflare:durable:alarm", this)
62
- );
63
- }
64
- async webSocketMessage(client, message) {
65
- if (import.meta._websocket) {
66
- return ws.handleDurableMessage(this, client, message);
67
- }
68
- }
69
- async webSocketClose(client, code, reason, wasClean) {
70
- if (import.meta._websocket) {
71
- return ws.handleDurableClose(this, client, code, reason, wasClean);
72
- }
73
- }
39
+ constructor(state, env) {
40
+ super(state, env);
41
+ state.waitUntil(nitroHooks.callHook("cloudflare:durable:init", this, {
42
+ state,
43
+ env
44
+ }) || Promise.resolve());
45
+ if (import.meta._websocket) {
46
+ ws.handleDurableInit(this, state, env);
47
+ }
48
+ }
49
+ fetch(request) {
50
+ augmentReq(request, {
51
+ env: this.env,
52
+ context: this.ctx
53
+ });
54
+ if (import.meta._websocket && request.headers.get("upgrade") === "websocket") {
55
+ return ws.handleDurableUpgrade(this, request);
56
+ }
57
+ return nitroApp.fetch(request);
58
+ }
59
+ alarm() {
60
+ this.ctx.waitUntil(nitroHooks.callHook("cloudflare:durable:alarm", this) || Promise.resolve());
61
+ }
62
+ async webSocketMessage(client, message) {
63
+ if (import.meta._websocket) {
64
+ return ws.handleDurableMessage(this, client, message);
65
+ }
66
+ }
67
+ async webSocketClose(client, code, reason, wasClean) {
68
+ if (import.meta._websocket) {
69
+ return ws.handleDurableClose(this, client, code, reason, wasClean);
70
+ }
71
+ }
74
72
  }
@@ -1,9 +1,3 @@
1
- import "#nitro-internal-pollyfills";
2
- import type { fetch } from "@cloudflare/workers-types";
3
- interface Env {
4
- ASSETS?: {
5
- fetch: typeof fetch;
6
- };
7
- }
8
- declare const _default: import("@cloudflare/workers-types").ExportedHandler<Env, unknown, unknown>;
1
+ import "#nitro/virtual/polyfills";
2
+ declare const _default;
9
3
  export default _default;
@@ -1,20 +1,17 @@
1
- import "#nitro-internal-pollyfills";
1
+ import "#nitro/virtual/polyfills";
2
2
  import wsAdapter from "crossws/adapters/cloudflare";
3
- import { useNitroApp } from "nitro/runtime";
4
- import { isPublicAssetURL } from "#nitro-internal-virtual/public-assets";
3
+ import { isPublicAssetURL } from "#nitro/virtual/public-assets";
5
4
  import { createHandler } from "./_module-handler.mjs";
6
- const nitroApp = useNitroApp();
7
- const ws = import.meta._websocket ? (
8
- // @ts-expect-error
9
- wsAdapter(nitroApp.h3App.websocket)
10
- ) : void 0;
11
- export default createHandler({
12
- fetch(request, env, context, url) {
13
- if (env.ASSETS && isPublicAssetURL(url.pathname)) {
14
- return env.ASSETS.fetch(request);
15
- }
16
- if (import.meta._websocket && request.headers.get("upgrade") === "websocket") {
17
- return ws.handleUpgrade(request, env, context);
18
- }
19
- }
20
- });
5
+ import { resolveWebsocketHooks } from "#nitro/runtime/app";
6
+ const ws = import.meta._websocket ? wsAdapter({ resolve: resolveWebsocketHooks }) : undefined;
7
+ export default createHandler({ fetch(cfRequest, env, context, url) {
8
+ // Static assets fallback (optional binding)
9
+ if (env.ASSETS && isPublicAssetURL(url.pathname)) {
10
+ return env.ASSETS.fetch(cfRequest);
11
+ }
12
+ // Websocket upgrade
13
+ // https://crossws.unjs.io/adapters/cloudflare
14
+ if (import.meta._websocket && cfRequest.headers.get("upgrade") === "websocket") {
15
+ return ws.handleUpgrade(cfRequest, env, context);
16
+ }
17
+ } });
@@ -1,20 +1,20 @@
1
- import "#nitro-internal-pollyfills";
1
+ import "#nitro/virtual/polyfills";
2
2
  import type { Request as CFRequest, EventContext, ExecutionContext } from "@cloudflare/workers-types";
3
3
  /**
4
- * Reference: https://developers.cloudflare.com/workers/runtime-apis/fetch-event/#parameters
5
- */
4
+ * Reference: https://developers.cloudflare.com/workers/runtime-apis/fetch-event/#parameters
5
+ */
6
6
  interface CFPagesEnv {
7
- ASSETS: {
8
- fetch: (request: CFRequest) => Promise<Response>;
9
- };
10
- CF_PAGES: "1";
11
- CF_PAGES_BRANCH: string;
12
- CF_PAGES_COMMIT_SHA: string;
13
- CF_PAGES_URL: string;
14
- [key: string]: any;
7
+ ASSETS: {
8
+ fetch: (request: CFRequest) => Promise<Response>;
9
+ };
10
+ CF_PAGES: "1";
11
+ CF_PAGES_BRANCH: string;
12
+ CF_PAGES_COMMIT_SHA: string;
13
+ CF_PAGES_URL: string;
14
+ [key: string]: any;
15
15
  }
16
16
  declare const _default: {
17
- fetch(cfReq: CFRequest, env: CFPagesEnv, context: EventContext<CFPagesEnv, string, any>): Promise<any>;
18
- scheduled(event: any, env: CFPagesEnv, context: ExecutionContext): void;
17
+ fetch(cfReq: CFRequest, env: CFPagesEnv, context: EventContext<CFPagesEnv, string, any>);
18
+ scheduled(event: any, env: CFPagesEnv, context: ExecutionContext);
19
19
  };
20
20
  export default _default;
@@ -1,47 +1,39 @@
1
- import "#nitro-internal-pollyfills";
2
- import { useNitroApp } from "nitro/runtime";
3
- import { runCronTasks } from "nitro/runtime/internal";
4
- import { isPublicAssetURL } from "#nitro-internal-virtual/public-assets";
1
+ import "#nitro/virtual/polyfills";
5
2
  import wsAdapter from "crossws/adapters/cloudflare";
3
+ import { useNitroApp } from "nitro/app";
4
+ import { isPublicAssetURL } from "#nitro/virtual/public-assets";
5
+ import { runCronTasks } from "#nitro/runtime/task";
6
+ import { resolveWebsocketHooks } from "#nitro/runtime/app";
7
+ import { augmentReq } from "./_module-handler.mjs";
6
8
  const nitroApp = useNitroApp();
7
- const ws = import.meta._websocket ? (
8
- // @ts-expect-error
9
- wsAdapter(nitroApp.h3App.websocket)
10
- ) : void 0;
9
+ const ws = import.meta._websocket ? wsAdapter({ resolve: resolveWebsocketHooks }) : undefined;
11
10
  export default {
12
- async fetch(cfReq, env, context) {
13
- const req = cfReq;
14
- req.runtime ??= { name: "cloudflare" };
15
- req.runtime.cloudflare ??= { context, env };
16
- req.waitUntil = context.waitUntil.bind(context);
17
- if (import.meta._websocket && cfReq.headers.get("upgrade") === "websocket") {
18
- return ws.handleUpgrade(
19
- cfReq,
20
- env,
21
- context
22
- );
23
- }
24
- const url = new URL(cfReq.url);
25
- if (env.ASSETS && isPublicAssetURL(url.pathname)) {
26
- return env.ASSETS.fetch(cfReq);
27
- }
28
- globalThis.__env__ = env;
29
- return nitroApp.fetch(req);
30
- },
31
- scheduled(event, env, context) {
32
- if (import.meta._tasks) {
33
- globalThis.__env__ = env;
34
- context.waitUntil(
35
- runCronTasks(event.cron, {
36
- context: {
37
- cloudflare: {
38
- env,
39
- context
40
- }
41
- },
42
- payload: {}
43
- })
44
- );
45
- }
46
- }
11
+ async fetch(cfReq, env, context) {
12
+ augmentReq(cfReq, {
13
+ env,
14
+ context
15
+ });
16
+ // Websocket upgrade
17
+ // https://crossws.unjs.io/adapters/cloudflare
18
+ if (import.meta._websocket && cfReq.headers.get("upgrade") === "websocket") {
19
+ return ws.handleUpgrade(cfReq, env, context);
20
+ }
21
+ const url = new URL(cfReq.url);
22
+ if (env.ASSETS && isPublicAssetURL(url.pathname)) {
23
+ return env.ASSETS.fetch(cfReq);
24
+ }
25
+ return nitroApp.fetch(cfReq);
26
+ },
27
+ scheduled(event, env, context) {
28
+ if (import.meta._tasks) {
29
+ globalThis.__env__ = env;
30
+ context.waitUntil(runCronTasks(event.cron, {
31
+ context: { cloudflare: {
32
+ env,
33
+ context
34
+ } },
35
+ payload: {}
36
+ }));
37
+ }
38
+ }
47
39
  };
@@ -1,3 +1,3 @@
1
1
  import type { NitroAppPlugin } from "nitro/types";
2
- declare const _default: NitroAppPlugin;
3
- export default _default;
2
+ declare const cloudflareDevPlugin: NitroAppPlugin;
3
+ export default cloudflareDevPlugin;