nitro 3.0.0 → 3.0.1-alpha.1

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 (293) hide show
  1. package/dist/_build/common.mjs +68 -0
  2. package/dist/_build/common2.mjs +772 -0
  3. package/dist/_build/rolldown.mjs +206 -0
  4. package/dist/_build/rollup.mjs +289 -0
  5. package/dist/_build/vite.build.mjs +56 -0
  6. package/dist/_build/vite.plugin.mjs +768 -0
  7. package/dist/_chunks/ANM1K1bE.mjs +304 -0
  8. package/dist/_chunks/B-D1JOIz.mjs +1355 -0
  9. package/dist/_chunks/BX9-zVkM.mjs +59 -0
  10. package/dist/_chunks/Bqks5huO.mjs +31 -0
  11. package/dist/_chunks/C7CbzoI1.mjs +39 -0
  12. package/dist/_dev.d.mts +12 -0
  13. package/dist/_dev.mjs +705 -0
  14. package/dist/_libs/acorn.mjs +5034 -0
  15. package/dist/_libs/c12.mjs +2858 -0
  16. package/dist/_libs/chokidar.mjs +1561 -0
  17. package/dist/_libs/citty.mjs +333 -0
  18. package/dist/_libs/commondir.mjs +22 -0
  19. package/dist/_libs/compatx.mjs +46 -0
  20. package/dist/_libs/confbox.mjs +2920 -0
  21. package/dist/_libs/deepmerge.mjs +86 -0
  22. package/dist/_libs/dot-prop.mjs +138 -0
  23. package/dist/_libs/duplexer.mjs +71 -0
  24. package/dist/_libs/escape-string-regexp.mjs +8 -0
  25. package/dist/_libs/estree-walker.mjs +330 -0
  26. package/dist/_libs/etag.mjs +80 -0
  27. package/dist/_libs/fdir.mjs +514 -0
  28. package/dist/_libs/function-bind.mjs +63 -0
  29. package/dist/_libs/gen-mapping.mjs +612 -0
  30. package/dist/_libs/giget.mjs +19289 -0
  31. package/dist/_libs/gzip-size.mjs +21 -0
  32. package/dist/_libs/hasown.mjs +14 -0
  33. package/dist/_libs/httpxy.mjs +410 -0
  34. package/dist/_libs/is-core-module.mjs +220 -0
  35. package/dist/_libs/is-module.mjs +13 -0
  36. package/dist/_libs/is-reference.mjs +32 -0
  37. package/dist/_libs/js-tokens.mjs +382 -0
  38. package/dist/_libs/klona.mjs +38 -0
  39. package/dist/_libs/knitwork.mjs +124 -0
  40. package/dist/_libs/local-pkg.mjs +1686 -0
  41. package/dist/_libs/magic-string.mjs +939 -0
  42. package/dist/_libs/mime.mjs +1391 -0
  43. package/dist/_libs/node-fetch-native.mjs +173 -0
  44. package/dist/_libs/path-parse.mjs +47 -0
  45. package/dist/_libs/pathe.mjs +41 -0
  46. package/dist/_libs/picomatch.mjs +1673 -0
  47. package/dist/_libs/plugin-alias.mjs +64 -0
  48. package/dist/_libs/plugin-commonjs.mjs +1491 -0
  49. package/dist/_libs/plugin-inject.mjs +135 -0
  50. package/dist/_libs/plugin-json.mjs +36 -0
  51. package/dist/_libs/plugin-node-resolve.mjs +1553 -0
  52. package/dist/_libs/plugin-replace.mjs +104 -0
  53. package/dist/_libs/pretty-bytes.mjs +116 -0
  54. package/dist/_libs/remapping.mjs +117 -0
  55. package/dist/_libs/rou3.mjs +319 -0
  56. package/dist/_libs/std-env.mjs +158 -0
  57. package/dist/_libs/strip-literal.mjs +51 -0
  58. package/dist/_libs/tinyglobby.mjs +292 -0
  59. package/dist/_libs/tsconfck.mjs +832 -0
  60. package/dist/_libs/ultrahtml.mjs +138 -0
  61. package/dist/_libs/unimport.mjs +3520 -0
  62. package/dist/_libs/untyped.mjs +271 -0
  63. package/dist/_libs/unwasm.mjs +5836 -0
  64. package/dist/_libs/vite-plugin-fullstack.mjs +561 -0
  65. package/dist/_presets.mjs +1752 -0
  66. package/dist/builder.d.mts +63 -0
  67. package/dist/builder.mjs +33 -0
  68. package/dist/cli/_chunks/build.mjs +48 -0
  69. package/dist/cli/_chunks/common.mjs +15 -0
  70. package/dist/cli/_chunks/detect-acorn.mjs +12 -0
  71. package/dist/cli/_chunks/dev.mjs +68 -0
  72. package/dist/cli/_chunks/dist.mjs +3 -0
  73. package/dist/cli/_chunks/dist2.mjs +3 -0
  74. package/dist/cli/_chunks/dist3.mjs +3 -0
  75. package/dist/cli/_chunks/dist4.mjs +4 -0
  76. package/dist/cli/_chunks/dist5.mjs +4 -0
  77. package/dist/cli/_chunks/esm.mjs +3 -0
  78. package/dist/cli/_chunks/json5.mjs +4 -0
  79. package/dist/cli/_chunks/jsonc.mjs +4 -0
  80. package/dist/cli/_chunks/list.mjs +27 -0
  81. package/dist/cli/_chunks/multipart-parser.mjs +6 -0
  82. package/dist/cli/_chunks/prepare.mjs +19 -0
  83. package/dist/cli/_chunks/run.mjs +55 -0
  84. package/dist/cli/_chunks/task.mjs +16 -0
  85. package/dist/cli/_chunks/toml.mjs +4 -0
  86. package/dist/cli/_chunks/yaml.mjs +4 -0
  87. package/dist/cli/index.d.mts +1 -1
  88. package/dist/cli/index.mjs +20 -476
  89. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +1 -1
  90. package/dist/node_modules/@poppinss/dumper/package.json +1 -1
  91. package/dist/node_modules/@sindresorhus/is/distribution/index.js +1 -1
  92. package/dist/node_modules/@sindresorhus/is/package.json +1 -1
  93. package/dist/node_modules/@speed-highlight/core/dist/index.js +2 -2
  94. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -2
  95. package/dist/node_modules/@speed-highlight/core/package.json +7 -3
  96. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  97. package/dist/node_modules/cookie-es/package.json +37 -0
  98. package/dist/node_modules/hookable/dist/index.mjs +243 -266
  99. package/dist/node_modules/hookable/package.json +29 -26
  100. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  101. package/dist/node_modules/rendu/package.json +47 -0
  102. package/dist/node_modules/youch/build/{chunk-VE4LENUR.js → chunk-F4I6KX4R.js} +2 -1
  103. package/dist/node_modules/youch/build/{chunk-JAN2TFI2.js → chunk-YYEJ3AGB.js} +4 -1
  104. package/dist/node_modules/youch/build/index.js +16 -8
  105. package/dist/node_modules/youch/build/public/error_stack/script.js +20 -22
  106. package/dist/node_modules/youch/build/public/header/script.js +0 -2
  107. package/dist/node_modules/youch/build/public/layout/script.js +0 -8
  108. package/dist/node_modules/youch/build/public/layout/style.css +4 -0
  109. package/dist/node_modules/youch/package.json +16 -17
  110. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -0
  111. package/dist/presets/_nitro/runtime/nitro-dev.mjs +48 -42
  112. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +2 -2
  113. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +10 -14
  114. package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -0
  115. package/dist/presets/_nitro/runtime/service-worker.mjs +15 -12
  116. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -0
  117. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +7 -6
  118. package/dist/presets/aws-lambda/runtime/_utils.d.mts +8 -13
  119. package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
  120. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -2
  121. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +26 -28
  122. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +8 -8
  123. package/dist/presets/azure/runtime/_utils.mjs +43 -43
  124. package/dist/presets/azure/runtime/azure-swa.d.mts +2 -2
  125. package/dist/presets/azure/runtime/azure-swa.mjs +24 -22
  126. package/dist/presets/bun/runtime/bun.d.mts +2 -0
  127. package/dist/presets/bun/runtime/bun.mjs +34 -21
  128. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +10 -7
  129. package/dist/presets/cloudflare/runtime/_module-handler.mjs +80 -88
  130. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +6 -14
  131. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +60 -63
  132. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -7
  133. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +14 -16
  134. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +12 -12
  135. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +40 -42
  136. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
  137. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -82
  138. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  139. package/dist/presets/deno/runtime/deno-deploy.d.mts +4 -0
  140. package/dist/presets/deno/runtime/deno-deploy.mjs +15 -12
  141. package/dist/presets/deno/runtime/deno-server.d.mts +0 -3
  142. package/dist/presets/deno/runtime/deno-server.mjs +32 -52
  143. package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -1
  144. package/dist/presets/netlify/runtime/netlify-edge.mjs +15 -12
  145. package/dist/presets/netlify/runtime/netlify.mjs +12 -18
  146. package/dist/presets/node/runtime/node-cluster.d.mts +3 -1
  147. package/dist/presets/node/runtime/node-cluster.mjs +50 -54
  148. package/dist/presets/node/runtime/node-middleware.d.mts +2 -3
  149. package/dist/presets/node/runtime/node-middleware.mjs +9 -8
  150. package/dist/presets/node/runtime/node-server.mjs +37 -34
  151. package/dist/presets/standard/runtime/server.d.mts +1 -3
  152. package/dist/presets/standard/runtime/server.mjs +2 -4
  153. package/dist/presets/stormkit/runtime/stormkit.d.mts +13 -13
  154. package/dist/presets/stormkit/runtime/stormkit.mjs +21 -21
  155. package/dist/presets/vercel/runtime/vercel.node.d.mts +3 -0
  156. package/dist/presets/vercel/runtime/vercel.node.mjs +15 -0
  157. package/dist/presets/vercel/runtime/{vercel.d.mts → vercel.web.d.mts} +3 -3
  158. package/dist/presets/vercel/runtime/vercel.web.mjs +20 -0
  159. package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -0
  160. package/dist/presets/winterjs/runtime/winterjs.mjs +73 -69
  161. package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
  162. package/dist/presets/zeabur/runtime/zeabur.mjs +1 -1
  163. package/dist/runtime/app.d.mts +1 -0
  164. package/dist/runtime/app.mjs +1 -0
  165. package/dist/runtime/cache.d.mts +1 -0
  166. package/dist/runtime/cache.mjs +1 -0
  167. package/dist/runtime/config.d.mts +3 -0
  168. package/dist/runtime/config.mjs +4 -0
  169. package/dist/runtime/context.d.mts +1 -0
  170. package/dist/runtime/context.mjs +1 -0
  171. package/dist/runtime/database.d.mts +1 -0
  172. package/dist/runtime/database.mjs +1 -0
  173. package/dist/runtime/internal/app.d.mts +11 -1
  174. package/dist/runtime/internal/app.mjs +188 -140
  175. package/dist/runtime/internal/cache.d.mts +9 -5
  176. package/dist/runtime/internal/cache.mjs +248 -219
  177. package/dist/runtime/internal/context.d.mts +9 -9
  178. package/dist/runtime/internal/context.mjs +17 -10
  179. package/dist/runtime/internal/database.mjs +8 -10
  180. package/dist/runtime/internal/error/dev.d.mts +5 -4
  181. package/dist/runtime/internal/error/dev.mjs +106 -105
  182. package/dist/runtime/internal/error/hooks.d.mts +1 -0
  183. package/dist/runtime/internal/error/hooks.mjs +9 -0
  184. package/dist/runtime/internal/error/prod.d.mts +5 -4
  185. package/dist/runtime/internal/error/prod.mjs +51 -59
  186. package/dist/runtime/internal/error/utils.d.mts +4 -4
  187. package/dist/runtime/internal/error/utils.mjs +1 -1
  188. package/dist/runtime/internal/meta.d.mts +1 -1
  189. package/dist/runtime/internal/meta.mjs +1 -1
  190. package/dist/runtime/internal/plugin.d.mts +2 -2
  191. package/dist/runtime/internal/plugin.mjs +1 -1
  192. package/dist/runtime/internal/route-rules.d.mts +8 -8
  193. package/dist/runtime/internal/route-rules.mjs +54 -52
  194. package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -2
  195. package/dist/runtime/internal/routes/dev-tasks.mjs +16 -18
  196. package/dist/runtime/internal/routes/openapi.d.mts +1 -0
  197. package/dist/runtime/internal/routes/openapi.mjs +81 -87
  198. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  199. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
  200. package/dist/runtime/internal/routes/renderer-template.dev.mjs +15 -17
  201. package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
  202. package/dist/runtime/internal/routes/scalar.d.mts +1 -0
  203. package/dist/runtime/internal/routes/scalar.mjs +22 -23
  204. package/dist/runtime/internal/routes/swagger.d.mts +1 -0
  205. package/dist/runtime/internal/routes/swagger.mjs +9 -11
  206. package/dist/runtime/internal/runtime-config.d.mts +4 -4
  207. package/dist/runtime/internal/runtime-config.mjs +40 -35
  208. package/dist/runtime/internal/static.mjs +63 -74
  209. package/dist/runtime/internal/storage.mjs +2 -2
  210. package/dist/runtime/internal/task.d.mts +6 -6
  211. package/dist/runtime/internal/task.mjs +56 -60
  212. package/dist/runtime/internal/vite/dev-entry.mjs +11 -1
  213. package/dist/runtime/internal/vite/dev-worker.mjs +9 -57
  214. package/dist/runtime/internal/vite/ssr-renderer.mjs +3 -1
  215. package/{lib/runtime-meta.d.mts → dist/runtime/meta.d.mts} +1 -1
  216. package/dist/runtime/meta.mjs +26 -0
  217. package/dist/runtime/nitro.d.mts +12 -0
  218. package/dist/runtime/nitro.mjs +32 -0
  219. package/dist/runtime/runtime-config.d.mts +1 -0
  220. package/dist/runtime/runtime-config.mjs +1 -0
  221. package/dist/runtime/storage.d.mts +1 -0
  222. package/dist/runtime/storage.mjs +1 -0
  223. package/dist/runtime/task.d.mts +1 -0
  224. package/dist/runtime/task.mjs +1 -0
  225. package/dist/runtime/vite-runtime.d.mts +8 -0
  226. package/dist/runtime/vite-runtime.mjs +9 -0
  227. package/dist/types/index.d.mts +2625 -2297
  228. package/dist/types/index.mjs +1 -1
  229. package/dist/vite.d.mts +49 -51
  230. package/dist/vite.mjs +44 -68
  231. package/lib/tsconfig.json +27 -0
  232. package/package.json +86 -76
  233. package/dist/_chunks/app.mjs +0 -19797
  234. package/dist/_chunks/build.mjs +0 -84
  235. package/dist/_chunks/build2.mjs +0 -318
  236. package/dist/_chunks/build3.mjs +0 -6452
  237. package/dist/_chunks/detect-acorn.mjs +0 -503
  238. package/dist/_chunks/index.mjs +0 -22242
  239. package/dist/_chunks/index2.mjs +0 -297
  240. package/dist/_chunks/index3.mjs +0 -1058
  241. package/dist/_chunks/index4.mjs +0 -1206
  242. package/dist/_chunks/info.mjs +0 -11157
  243. package/dist/_chunks/json5.mjs +0 -68
  244. package/dist/_chunks/jsonc.mjs +0 -51
  245. package/dist/_chunks/pathe.M-eThtNZ.mjs +0 -204
  246. package/dist/_chunks/plugin.mjs +0 -960
  247. package/dist/_chunks/server.mjs +0 -254
  248. package/dist/_chunks/snapshot.mjs +0 -284
  249. package/dist/_chunks/toml.mjs +0 -259
  250. package/dist/_chunks/yaml.mjs +0 -86
  251. package/dist/cli/build.mjs +0 -54
  252. package/dist/cli/common.mjs +0 -13
  253. package/dist/cli/dev.mjs +0 -95
  254. package/dist/cli/index2.mjs +0 -17
  255. package/dist/cli/list.mjs +0 -34
  256. package/dist/cli/prepare.mjs +0 -24
  257. package/dist/cli/run.mjs +0 -60
  258. package/dist/index.d.mts +0 -52
  259. package/dist/index.mjs +0 -55
  260. package/dist/node_modules/cookie/dist/index.js +0 -239
  261. package/dist/node_modules/cookie/package.json +0 -42
  262. package/dist/node_modules/klona/dist/index.mjs +0 -81
  263. package/dist/node_modules/klona/full/index.mjs +0 -53
  264. package/dist/node_modules/klona/package.json +0 -74
  265. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  266. package/dist/node_modules/std-env/package.json +0 -46
  267. package/dist/presets/vercel/runtime/vercel.mjs +0 -17
  268. package/dist/presets.mjs +0 -2460
  269. package/dist/runtime/index.d.mts +0 -11
  270. package/dist/runtime/index.mjs +0 -17
  271. package/dist/runtime/internal/debug.d.mts +0 -2
  272. package/dist/runtime/internal/debug.mjs +0 -5
  273. package/dist/runtime/internal/empty.d.mts +0 -0
  274. package/dist/runtime/internal/index.d.mts +0 -3
  275. package/dist/runtime/internal/index.mjs +0 -3
  276. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +0 -16
  277. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +0 -213
  278. package/dist/runtime/internal/renderer.d.mts +0 -3
  279. package/dist/runtime/internal/renderer.mjs +0 -36
  280. package/dist/runtime/internal/shutdown.d.mts +0 -9
  281. package/dist/runtime/internal/shutdown.mjs +0 -34
  282. package/dist/runtime/internal/utils.d.mts +0 -1
  283. package/dist/runtime/internal/utils.mjs +0 -15
  284. package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
  285. package/dist/runtime/internal/vite/dev-worker.d.mts +0 -1
  286. package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
  287. package/dist/runtime/internal/vite/prod-setup.mjs +0 -55
  288. package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
  289. package/lib/config.d.mts +0 -9
  290. package/lib/config.mjs +0 -5
  291. package/lib/meta.d.mts +0 -5
  292. package/lib/meta.mjs +0 -21
  293. package/lib/runtime-meta.mjs +0 -38
@@ -1,73 +1,69 @@
1
1
  import { Cron } from "croner";
2
2
  import { HTTPError } from "h3";
3
- import { isTest } from "std-env";
4
3
  import { scheduledTasks, tasks } from "#nitro-internal-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,16 @@
1
1
  import "#nitro-internal-pollyfills";
2
- import { useNitroApp } from "nitro/runtime";
2
+ import wsAdapter from "crossws/adapters/node";
3
+
4
+ import { useNitroApp } from "nitro/app";
5
+ import { resolveWebsocketHooks } from "nitro/~internal/runtime/app";
6
+ import { hasWebSocket } from "#nitro-internal-virtual/feature-flags";
3
7
 
4
8
  const nitroApp = useNitroApp();
5
9
 
6
10
  export const fetch = nitroApp.fetch;
11
+
12
+ const ws = hasWebSocket
13
+ ? wsAdapter({ resolve: resolveWebsocketHooks })
14
+ : undefined;
15
+
16
+ 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 }) {
@@ -150,60 +151,6 @@ 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
- }
162
-
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
- }
173
-
174
- // Clone headers and set viteEnv header
175
- const headers = new Headers(init?.headers || {});
176
- headers.set("x-vite-env", viteEnvName);
177
-
178
- // Normalize to Request
179
- if (
180
- !(input instanceof Request) ||
181
- (init && Object.keys(init).join("") !== "viteEnv")
182
- ) {
183
- input = new Request(input, init);
184
- }
185
-
186
- // Fetch via vite env
187
- return viteEnv.fetch(input);
188
- };
189
-
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
154
  // ----- Server -----
208
155
 
209
156
  async function reload() {
@@ -240,6 +187,11 @@ if (workerData.server) {
240
187
  })
241
188
  );
242
189
 
190
+ server.on("upgrade", (req, socket, head) => {
191
+ const handleUpgrade = envs["nitro"]?.entry?.handleUpgrade;
192
+ handleUpgrade?.(req, socket, head);
193
+ });
194
+
243
195
  parentPort.on("message", async (message) => {
244
196
  if (message?.type === "full-reload") {
245
197
  await reload();
@@ -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 version: string;
1
2
  export declare const pkgDir: string;
2
3
  export declare const runtimeDir: string;
3
4
  export declare const presetsDir: string;
4
- export declare const subpaths: 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 pkgDir = /* @__PURE__ */ resolve("../../");
6
+ export const runtimeDir = /* @__PURE__ */ resolve("./");
7
+ export const presetsDir = /* @__PURE__ */ resolve("../presets/");
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,12 @@
1
+ // Config
2
+ import type { NitroConfig } from "nitro/types";
3
+ import type { ServerRequestContext } from "srvx";
4
+ import { type H3EventContext } from "h3";
5
+ export declare function defineConfig(config: Omit<NitroConfig, "rootDir">): Omit<NitroConfig, "rootDir">;
6
+ // Type (only) helpers
7
+ export { defineNitroPlugin as definePlugin } from "./internal/plugin.mjs";
8
+ export { defineRouteMeta } from "./internal/meta.mjs";
9
+ export { defineNitroErrorHandler as defineErrorHandler } from "./internal/error/utils.mjs";
10
+ // Runtime
11
+ export declare function serverFetch(resource: string | URL | Request, init?: RequestInit, context?: ServerRequestContext | H3EventContext): Promise<Response>;
12
+ 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__ || 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,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
+ }