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,73 +1,69 @@
1
1
  import { Cron } from "croner";
2
2
  import { HTTPError } from "h3";
3
- import { isTest } from "std-env";
4
- import { scheduledTasks, tasks } from "#nitro-internal-virtual/tasks";
3
+ import { scheduledTasks, tasks } from "#nitro/virtual/tasks";
4
+ /** @experimental */
5
5
  export function defineTask(def) {
6
- if (typeof def.run !== "function") {
7
- def.run = () => {
8
- throw new TypeError("Task must implement a `run` method!");
9
- };
10
- }
11
- return def;
6
+ if (typeof def.run !== "function") {
7
+ def.run = () => {
8
+ throw new TypeError("Task must implement a `run` method!");
9
+ };
10
+ }
11
+ return def;
12
12
  }
13
13
  const __runningTasks__ = {};
14
- export async function runTask(name, {
15
- payload = {},
16
- context = {}
17
- } = {}) {
18
- if (__runningTasks__[name]) {
19
- return __runningTasks__[name];
20
- }
21
- if (!(name in tasks)) {
22
- throw new HTTPError({
23
- message: `Task \`${name}\` is not available!`,
24
- status: 404
25
- });
26
- }
27
- if (!tasks[name].resolve) {
28
- throw new HTTPError({
29
- message: `Task \`${name}\` is not implemented!`,
30
- status: 501
31
- });
32
- }
33
- const handler = await tasks[name].resolve();
34
- const taskEvent = { name, payload, context };
35
- __runningTasks__[name] = handler.run(taskEvent);
36
- try {
37
- const res = await __runningTasks__[name];
38
- return res;
39
- } finally {
40
- delete __runningTasks__[name];
41
- }
14
+ /** @experimental */
15
+ export async function runTask(name, { payload = {}, context = {} } = {}) {
16
+ if (__runningTasks__[name]) {
17
+ return __runningTasks__[name];
18
+ }
19
+ if (!(name in tasks)) {
20
+ throw new HTTPError({
21
+ message: `Task \`${name}\` is not available!`,
22
+ status: 404
23
+ });
24
+ }
25
+ if (!tasks[name].resolve) {
26
+ throw new HTTPError({
27
+ message: `Task \`${name}\` is not implemented!`,
28
+ status: 501
29
+ });
30
+ }
31
+ const handler = await tasks[name].resolve();
32
+ const taskEvent = {
33
+ name,
34
+ payload,
35
+ context
36
+ };
37
+ __runningTasks__[name] = handler.run(taskEvent);
38
+ try {
39
+ const res = await __runningTasks__[name];
40
+ return res;
41
+ } finally {
42
+ delete __runningTasks__[name];
43
+ }
42
44
  }
45
+ /** @experimental */
43
46
  export function startScheduleRunner() {
44
- if (!scheduledTasks || scheduledTasks.length === 0 || isTest) {
45
- return;
46
- }
47
- const payload = {
48
- scheduledTime: Date.now()
49
- };
50
- for (const schedule of scheduledTasks) {
51
- const cron = new Cron(schedule.cron, async () => {
52
- await Promise.all(
53
- schedule.tasks.map(
54
- (name) => runTask(name, {
55
- payload,
56
- context: {}
57
- }).catch((error) => {
58
- console.error(
59
- `Error while running scheduled task "${name}"`,
60
- error
61
- );
62
- })
63
- )
64
- );
65
- });
66
- }
47
+ if (!scheduledTasks || scheduledTasks.length === 0 || process.env.TEST) {
48
+ return;
49
+ }
50
+ const payload = { scheduledTime: Date.now() };
51
+ for (const schedule of scheduledTasks) {
52
+ new Cron(schedule.cron, async () => {
53
+ await Promise.all(schedule.tasks.map((name) => runTask(name, {
54
+ payload,
55
+ context: {}
56
+ }).catch((error) => {
57
+ console.error(`Error while running scheduled task "${name}"`, error);
58
+ })));
59
+ });
60
+ }
67
61
  }
62
+ /** @experimental */
68
63
  export function getCronTasks(cron) {
69
- return (scheduledTasks || []).find((task) => task.cron === cron)?.tasks || [];
64
+ return (scheduledTasks || []).find((task) => task.cron === cron)?.tasks || [];
70
65
  }
66
+ /** @experimental */
71
67
  export function runCronTasks(cron, ctx) {
72
- return Promise.all(getCronTasks(cron).map((name) => runTask(name, ctx)));
68
+ return Promise.all(getCronTasks(cron).map((name) => runTask(name, ctx)));
73
69
  }
@@ -1,6 +1,15 @@
1
- import "#nitro-internal-pollyfills";
2
- import { useNitroApp } from "nitro/runtime";
1
+ import "#nitro/virtual/polyfills";
2
+ import wsAdapter from "crossws/adapters/node";
3
+
4
+ import { useNitroApp } from "nitro/app";
5
+ import { resolveWebsocketHooks } from "#nitro/runtime/app";
3
6
 
4
7
  const nitroApp = useNitroApp();
5
8
 
6
9
  export const fetch = nitroApp.fetch;
10
+
11
+ const ws = import.meta._websocket
12
+ ? wsAdapter({ resolve: resolveWebsocketHooks })
13
+ : undefined;
14
+
15
+ export const handleUpgrade = ws?.handleUpgrade;
@@ -5,9 +5,10 @@ import { getSocketAddress, isSocketSupported } from "get-port-please";
5
5
 
6
6
  // ----- Environment runners -----
7
7
 
8
- const envs = { nitro: undefined, ssr: undefined };
9
-
10
- globalThis.__nitro_vite_envs__ = envs;
8
+ const envs = (globalThis.__nitro_vite_envs__ ??= {
9
+ nitro: undefined,
10
+ ssr: undefined,
11
+ });
11
12
 
12
13
  class EnvRunner {
13
14
  constructor({ name, entry }) {
@@ -37,7 +38,7 @@ class EnvRunner {
37
38
  },
38
39
  },
39
40
  new ESModulesEvaluator(),
40
- process.env.DEBUG ? console.debug : undefined
41
+ process.env.NITRO_DEBUG ? console.debug : undefined
41
42
  );
42
43
 
43
44
  this.reload();
@@ -150,69 +151,30 @@ parentPort.on("message", (payload) => {
150
151
  }
151
152
  });
152
153
 
153
- // ----- Fetch Handler -----
154
-
155
- const originalFetch = globalThis.fetch;
156
- globalThis.fetch = function nitroViteFetch(input, init) {
157
- // Only override if viteEnvName is specified
158
- const viteEnvName = getViteEnv(init) || getViteEnv(input);
159
- if (!viteEnvName) {
160
- return originalFetch(input, init);
161
- }
154
+ // Trap unhandled errors to avoid worker crash
155
+ process.on("unhandledRejection", (error) => console.error(error));
156
+ process.on("uncaughtException", (error) => console.error(error));
162
157
 
163
- // Validate viteEnv
164
- const viteEnv = envs[viteEnvName];
165
- if (!viteEnv) {
166
- throw httpError(404, `Unknown vite environment "${viteEnvName}"`);
167
- }
168
-
169
- // Normalize input (relative urls)
170
- if (typeof input === "string" && input[0] === "/") {
171
- input = new URL(input, "http://localhost");
172
- }
158
+ // ----- RSC Support -----
173
159
 
174
- // Clone headers and set viteEnv header
175
- const headers = new Headers(init?.headers || {});
176
- headers.set("x-vite-env", viteEnvName);
160
+ // define __VITE_ENVIRONMENT_RUNNER_IMPORT__ for RSC support
161
+ // https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-rsc/README.md#__vite_environment_runner_import__
177
162
 
178
- // Normalize to Request
179
- if (
180
- !(input instanceof Request) ||
181
- (init && Object.keys(init).join("") !== "viteEnv")
182
- ) {
183
- input = new Request(input, init);
163
+ globalThis.__VITE_ENVIRONMENT_RUNNER_IMPORT__ = async function (
164
+ environmentName,
165
+ id
166
+ ) {
167
+ const env = envs[environmentName];
168
+ if (!env) {
169
+ throw new Error(`Vite environment "${environmentName}" is not registered`);
184
170
  }
185
-
186
- // Fetch via vite env
187
- return viteEnv.fetch(input);
171
+ return env.runner.import(id);
188
172
  };
189
173
 
190
- function getViteEnv(input) {
191
- if (!input || typeof input !== "object") {
192
- return;
193
- }
194
- if ("viteEnv" in input) {
195
- return input.viteEnv;
196
- }
197
- if (input.headers) {
198
- return (
199
- input.headers["x-vite-env"] ||
200
- input.headers.get?.("x-vite-env") ||
201
- (Array.isArray(input.headers) &&
202
- input.headers.find((h) => h[0].toLowerCase() === "x-vite-env")?.[1])
203
- );
204
- }
205
- }
206
-
207
174
  // ----- Server -----
208
175
 
209
176
  async function reload() {
210
177
  try {
211
- // Apply globals
212
- for (const [key, value] of Object.entries(workerData.globals || {})) {
213
- globalThis[key] = value;
214
- }
215
- // Reload all envs
216
178
  await Promise.all(Object.values(envs).map((env) => env?.reload()));
217
179
  } catch (error) {
218
180
  console.error(error);
@@ -240,9 +202,18 @@ if (workerData.server) {
240
202
  })
241
203
  );
242
204
 
205
+ server.on("upgrade", (req, socket, head) => {
206
+ const handleUpgrade = envs["nitro"]?.entry?.handleUpgrade;
207
+ handleUpgrade?.(req, socket, head);
208
+ });
209
+
243
210
  parentPort.on("message", async (message) => {
244
211
  if (message?.type === "full-reload") {
245
212
  await reload();
213
+ } else if (message?.event === "shutdown") {
214
+ server.close(() => {
215
+ parentPort.postMessage({ event: "exit" });
216
+ });
246
217
  }
247
218
  });
248
219
  await listen(server);
@@ -276,6 +247,32 @@ function httpError(status, message) {
276
247
  }
277
248
 
278
249
  async function renderError(req, error) {
250
+ if (req.headers.get("accept")?.includes("application/json")) {
251
+ return new Response(
252
+ JSON.stringify(
253
+ {
254
+ status: error.status || 500,
255
+ name: error.name || "Error",
256
+ message: error.message,
257
+ stack: (error.stack || "")
258
+ .split("\n")
259
+ .splice(1)
260
+ .map((l) => l.trim()),
261
+ },
262
+ null,
263
+ 2
264
+ ),
265
+ {
266
+ status: error.status || 500,
267
+ headers: {
268
+ "Content-Type": "application/json",
269
+ "Cache-Control": "no-store, max-age=0, must-revalidate",
270
+ Pragma: "no-cache",
271
+ Expires: "0",
272
+ },
273
+ }
274
+ );
275
+ }
279
276
  const { Youch } = await import("youch");
280
277
  const youch = new Youch();
281
278
  return new Response(await youch.toHTML(error), {
@@ -1,4 +1,6 @@
1
+ import { fetchViteEnv } from "nitro/vite/runtime";
2
+
1
3
  /** @param {{ req: Request }} HTTPEvent */
2
4
  export default function ssrRenderer({ req }) {
3
- return fetch(req, { viteEnv: "ssr" });
5
+ return fetchViteEnv("ssr", req);
4
6
  }
@@ -1,5 +1,5 @@
1
- export declare const pkgDir: string;
1
+ export declare const version: string;
2
2
  export declare const runtimeDir: string;
3
3
  export declare const presetsDir: string;
4
- export declare const subpaths: string[];
4
+ export declare const pkgDir: string;
5
5
  export declare const runtimeDependencies: string[];
@@ -0,0 +1,26 @@
1
+ import { fileURLToPath } from "node:url";
2
+ import packageJson from "../../package.json" with { type: "json" };
3
+ export const version = packageJson.version;
4
+ const resolve = (path) => fileURLToPath(new URL(path, import.meta.url));
5
+ export const runtimeDir = /* @__PURE__ */ resolve("./");
6
+ export const presetsDir = /* @__PURE__ */ resolve("../presets/");
7
+ export const pkgDir = /* @__PURE__ */ resolve("../../");
8
+ export const runtimeDependencies = [
9
+ "crossws",
10
+ "croner",
11
+ "db0",
12
+ "defu",
13
+ "destr",
14
+ "h3",
15
+ "rou3",
16
+ "hookable",
17
+ "ofetch",
18
+ "ohash",
19
+ "rendu",
20
+ "scule",
21
+ "srvx",
22
+ "ufo",
23
+ "unctx",
24
+ "unenv",
25
+ "unstorage"
26
+ ];
@@ -0,0 +1,9 @@
1
+ import type { NitroConfig } from "nitro/types";
2
+ import type { ServerRequestContext } from "srvx";
3
+ import { type H3EventContext } from "h3";
4
+ export declare function defineConfig(config: Omit<NitroConfig, "rootDir">): Omit<NitroConfig, "rootDir">;
5
+ export { defineNitroPlugin as definePlugin } from "./internal/plugin.mjs";
6
+ export { defineRouteMeta } from "./internal/meta.mjs";
7
+ export { defineNitroErrorHandler as defineErrorHandler } from "./internal/error/utils.mjs";
8
+ export declare function serverFetch(resource: string | URL | Request, init?: RequestInit, context?: ServerRequestContext | H3EventContext): Promise<Response>;
9
+ export declare function fetch(resource: string | URL | Request, init?: RequestInit, context?: ServerRequestContext | H3EventContext): Promise<Response>;
@@ -0,0 +1,32 @@
1
+ import { toRequest } from "h3";
2
+ export function defineConfig(config) {
3
+ return config;
4
+ }
5
+ // Type (only) helpers
6
+ export { defineNitroPlugin as definePlugin } from "./internal/plugin.mjs";
7
+ export { defineRouteMeta } from "./internal/meta.mjs";
8
+ export { defineNitroErrorHandler as defineErrorHandler } from "./internal/error/utils.mjs";
9
+ // Runtime
10
+ export function serverFetch(resource, init, context) {
11
+ const nitro = globalThis.__nitro__?.default || globalThis.__nitro__?.prerender || globalThis.__nitro_builder__;
12
+ if (!nitro) {
13
+ return Promise.reject(new Error("Nitro instance is not available."));
14
+ }
15
+ const req = toRequest(resource, init);
16
+ req.context = {
17
+ ...req.context,
18
+ ...context
19
+ };
20
+ try {
21
+ return Promise.resolve(nitro.fetch(req));
22
+ } catch (error) {
23
+ return Promise.reject(error);
24
+ }
25
+ }
26
+ export function fetch(resource, init, context) {
27
+ if (typeof resource === "string" && resource.charCodeAt(0) === 47) {
28
+ return serverFetch(resource, init, context);
29
+ }
30
+ resource = resource._request || resource;
31
+ return globalThis.fetch(resource, init);
32
+ }
@@ -0,0 +1 @@
1
+ export { useRuntimeConfig } from "./internal/runtime-config.mjs";
@@ -0,0 +1 @@
1
+ export { useRuntimeConfig } from "./internal/runtime-config.mjs";
@@ -0,0 +1 @@
1
+ export { useStorage } from "./internal/storage.mjs";
@@ -0,0 +1 @@
1
+ export { useStorage } from "./internal/storage.mjs";
@@ -0,0 +1 @@
1
+ export { defineTask, runTask } from "./internal/task.mjs";
@@ -0,0 +1 @@
1
+ export { defineTask, runTask } from "./internal/task.mjs";
@@ -0,0 +1,5 @@
1
+ import consola from "consola";
2
+ import { isTest } from "std-env";
3
+ if (!isTest) {
4
+ consola.warn("Nitro runtime imports detected without a builder or Nitro plugin. A stub implementation will be used.");
5
+ }
@@ -0,0 +1,8 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { Connector } from "db0";
3
+ export declare const connectionConfigs: {
4
+ [name: string]: {
5
+ connector: (options: any) => Connector;
6
+ options: any;
7
+ };
8
+ };
@@ -0,0 +1,2 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const connectionConfigs = {};
@@ -0,0 +1,6 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { NitroErrorHandler } from "nitro/types";
3
+ type EParams = Parameters<NitroErrorHandler>;
4
+ type EReturn = ReturnType<NitroErrorHandler>;
5
+ declare const errorHandler: (error: EParams[0], event: EParams[1]) => EReturn;
6
+ export default errorHandler;
@@ -0,0 +1,9 @@
1
+ import "./_runtime_warn.mjs";
2
+ import { toResponse } from "h3";
3
+ const errorHandler = (error, event) => {
4
+ if (error.status !== 404) {
5
+ console.error(error);
6
+ }
7
+ return toResponse(error, event);
8
+ };
9
+ export default errorHandler;
@@ -0,0 +1,7 @@
1
+ import "./_runtime_warn.mjs";
2
+ export declare const hasRoutes: boolean;
3
+ export declare const hasRouteRules: boolean;
4
+ export declare const hasGlobalMiddleware: boolean;
5
+ export declare const hasRoutedMiddleware: boolean;
6
+ export declare const hasPlugins: boolean;
7
+ export declare const hasHooks: boolean;
@@ -0,0 +1,7 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const hasRoutes = true;
3
+ export const hasRouteRules = true;
4
+ export const hasGlobalMiddleware = true;
5
+ export const hasRoutedMiddleware = true;
6
+ export const hasPlugins = true;
7
+ export const hasHooks = true;
@@ -0,0 +1,3 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { NitroAppPlugin } from "nitro/types";
3
+ export declare const plugins: NitroAppPlugin[];
@@ -0,0 +1,2 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const plugins = [];
@@ -0,0 +1,3 @@
1
+ import "./_runtime_warn.mjs";
2
+ declare const _default: {};
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import "./_runtime_warn.mjs";
2
+ export default {};
@@ -0,0 +1,9 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { PublicAsset } from "nitro/types";
3
+ export declare const publicAssetBases: string[];
4
+ export declare const isPublicAssetURL: (id: string) => boolean;
5
+ export declare const getPublicAssetMeta: (id: string) => {
6
+ maxAge?: number;
7
+ } | null;
8
+ export declare const readAsset: (id: string) => Promise<Buffer>;
9
+ export declare const getAsset: (id: string) => PublicAsset | null;
@@ -0,0 +1,8 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const publicAssetBases = [];
3
+ export const isPublicAssetURL = () => false;
4
+ export const getPublicAssetMeta = () => null;
5
+ export const readAsset = async () => {
6
+ throw new Error("Asset not found");
7
+ };
8
+ export const getAsset = () => null;
@@ -0,0 +1,4 @@
1
+ import "./_runtime_warn.mjs";
2
+ export declare function rendererTemplate(_req: Request): string | Promise<string>;
3
+ export declare const rendererTemplateFile: string | undefined;
4
+ export declare const isStaticTemplate: boolean | undefined;
@@ -0,0 +1,7 @@
1
+ import "./_runtime_warn.mjs";
2
+ export function rendererTemplate(_req) {
3
+ return `<!-- Renderer template not available -->`;
4
+ }
5
+ // dev only
6
+ export const rendererTemplateFile = undefined;
7
+ export const isStaticTemplate = undefined;
@@ -0,0 +1,7 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { NitroRouteMeta } from "nitro/types";
3
+ export declare const handlersMeta: {
4
+ route?: string;
5
+ method?: string;
6
+ meta?: NitroRouteMeta;
7
+ }[];
@@ -0,0 +1,2 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const handlersMeta = [];
@@ -0,0 +1,8 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { Middleware, H3Route } from "h3";
3
+ import type { MatchedRoute } from "rou3";
4
+ import type { MatchedRouteRule } from "nitro/types";
5
+ export declare function findRoute(_method: string, _path: string): MatchedRoute<H3Route> | undefined;
6
+ export declare function findRouteRules(_method: string, _path: string): MatchedRoute<MatchedRouteRule[]>[];
7
+ export declare const globalMiddleware: Middleware[];
8
+ export declare function findRoutedMiddleware(_method: string, _path: string): MatchedRoute<Middleware>[];
@@ -0,0 +1,11 @@
1
+ import "./_runtime_warn.mjs";
2
+ export function findRoute(_method, _path) {
3
+ return undefined;
4
+ }
5
+ export function findRouteRules(_method, _path) {
6
+ return [];
7
+ }
8
+ export const globalMiddleware = [];
9
+ export function findRoutedMiddleware(_method, _path) {
10
+ return [];
11
+ }
@@ -0,0 +1,3 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { NitroRuntimeConfig } from "nitro/types";
3
+ export declare const runtimeConfig: NitroRuntimeConfig;
@@ -0,0 +1,5 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const runtimeConfig = {
3
+ app: {},
4
+ nitro: {}
5
+ };
@@ -0,0 +1,6 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { AssetMeta } from "nitro/types";
3
+ export declare const assets: unknown;
4
+ export declare function readAsset<T = any>(_id: string): Promise<T>;
5
+ export declare function statAsset(_id: string): Promise<AssetMeta>;
6
+ export declare function getKeys(): Promise<string[]>;
@@ -0,0 +1,12 @@
1
+ import "./_runtime_warn.mjs";
2
+ import { createStorage } from "unstorage";
3
+ export const assets = createStorage();
4
+ export function readAsset(_id) {
5
+ return Promise.resolve({});
6
+ }
7
+ export function statAsset(_id) {
8
+ return Promise.resolve({});
9
+ }
10
+ export function getKeys() {
11
+ return Promise.resolve([]);
12
+ }
@@ -0,0 +1,3 @@
1
+ import "./_runtime_warn.mjs";
2
+ import { type Storage } from "unstorage";
3
+ export declare function initStorage(): Storage;
@@ -0,0 +1,5 @@
1
+ import "./_runtime_warn.mjs";
2
+ import { createStorage } from "unstorage";
3
+ export function initStorage() {
4
+ return createStorage();
5
+ }
@@ -0,0 +1,10 @@
1
+ import "./_runtime_warn.mjs";
2
+ import type { Task, TaskMeta } from "nitro/types";
3
+ export declare const tasks: Record<string, {
4
+ resolve?: () => Promise<Task>;
5
+ meta: TaskMeta;
6
+ }>;
7
+ export declare const scheduledTasks: false | {
8
+ cron: string;
9
+ tasks: string[];
10
+ }[];
@@ -0,0 +1,3 @@
1
+ import "./_runtime_warn.mjs";
2
+ export const tasks = {};
3
+ export const scheduledTasks = [];
@@ -0,0 +1,8 @@
1
+ type FetchableEnv = {
2
+ fetch: (request: Request) => Response | Promise<Response>;
3
+ };
4
+ declare global {
5
+ var __nitro_vite_envs__: Record<string, FetchableEnv>;
6
+ }
7
+ export declare function fetchViteEnv(viteEnvName: string, input: RequestInfo | URL, init?: RequestInit);
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import { HTTPError, toRequest } from "h3";
2
+ export function fetchViteEnv(viteEnvName, input, init) {
3
+ const envs = globalThis.__nitro_vite_envs__ || {};
4
+ const viteEnv = envs[viteEnvName];
5
+ if (!viteEnv) {
6
+ throw HTTPError.status(404);
7
+ }
8
+ return Promise.resolve(viteEnv.fetch(toRequest(input, init)));
9
+ }