nitro-nightly 4.0.0-20251010-091516-7cafddba → 4.0.0-20251030-121649-98b56dfe

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 (252) hide show
  1. package/dist/_build/common.mjs +763 -0
  2. package/dist/_build/rolldown.mjs +216 -0
  3. package/dist/_build/rollup.mjs +359 -0
  4. package/dist/_build/vite.build.mjs +67 -0
  5. package/dist/_build/vite.plugin.mjs +747 -0
  6. package/dist/_chunks/B-7HiF0V.mjs +1303 -0
  7. package/dist/_chunks/B3asVbT4.mjs +151 -0
  8. package/dist/_chunks/B5ooyfLk.mjs +372 -0
  9. package/dist/_chunks/DXMHy5ca.mjs +43 -0
  10. package/dist/_dev.d.mts +12 -0
  11. package/dist/_dev.mjs +675 -0
  12. package/dist/_libs/acorn.mjs +5034 -0
  13. package/dist/_libs/c12.mjs +2798 -0
  14. package/dist/_libs/chokidar.mjs +1560 -0
  15. package/dist/_libs/citty.mjs +333 -0
  16. package/dist/_libs/commondir.mjs +22 -0
  17. package/dist/_libs/compatx.mjs +46 -0
  18. package/dist/_libs/confbox.mjs +2920 -0
  19. package/dist/_libs/debug.mjs +848 -0
  20. package/dist/_libs/deepmerge.mjs +86 -0
  21. package/dist/_libs/depd.mjs +314 -0
  22. package/dist/_libs/dot-prop.mjs +138 -0
  23. package/dist/_libs/duplexer.mjs +71 -0
  24. package/dist/_libs/ee-first.mjs +68 -0
  25. package/dist/_libs/encodeurl.mjs +49 -0
  26. package/dist/_libs/escape-html.mjs +58 -0
  27. package/dist/_libs/escape-string-regexp.mjs +8 -0
  28. package/dist/_libs/estree-walker.mjs +330 -0
  29. package/dist/_libs/etag.mjs +75 -0
  30. package/dist/_libs/fdir.mjs +514 -0
  31. package/dist/_libs/fresh.mjs +85 -0
  32. package/dist/_libs/function-bind.mjs +63 -0
  33. package/dist/_libs/gen-mapping.mjs +612 -0
  34. package/dist/_libs/giget.mjs +19076 -0
  35. package/dist/_libs/gzip-size.mjs +21 -0
  36. package/dist/_libs/hasown.mjs +14 -0
  37. package/dist/_libs/http-errors.mjs +436 -0
  38. package/dist/_libs/httpxy.mjs +410 -0
  39. package/dist/_libs/is-core-module.mjs +220 -0
  40. package/dist/_libs/is-module.mjs +13 -0
  41. package/dist/_libs/is-reference.mjs +32 -0
  42. package/dist/_libs/js-tokens.mjs +382 -0
  43. package/dist/_libs/klona.mjs +90 -0
  44. package/dist/_libs/knitwork.mjs +124 -0
  45. package/dist/_libs/local-pkg.mjs +1686 -0
  46. package/dist/_libs/magic-string.mjs +939 -0
  47. package/dist/_libs/mime-db.mjs +7642 -0
  48. package/dist/_libs/mime-types.mjs +162 -0
  49. package/dist/_libs/mime.mjs +1391 -0
  50. package/dist/_libs/node-fetch-native.mjs +173 -0
  51. package/dist/_libs/on-finished.mjs +170 -0
  52. package/dist/_libs/parseurl.mjs +103 -0
  53. package/dist/_libs/path-parse.mjs +47 -0
  54. package/dist/_libs/pathe.mjs +41 -0
  55. package/dist/_libs/picomatch.mjs +1673 -0
  56. package/dist/_libs/plugin-alias.mjs +64 -0
  57. package/dist/_libs/plugin-commonjs.mjs +1489 -0
  58. package/dist/_libs/plugin-inject.mjs +135 -0
  59. package/dist/_libs/plugin-json.mjs +36 -0
  60. package/dist/_libs/plugin-node-resolve.mjs +1553 -0
  61. package/dist/_libs/plugin-replace.mjs +104 -0
  62. package/dist/_libs/pretty-bytes.mjs +116 -0
  63. package/dist/_libs/range-parser.mjs +102 -0
  64. package/dist/_libs/remapping.mjs +117 -0
  65. package/dist/_libs/rou3.mjs +311 -0
  66. package/dist/_libs/send.mjs +857 -0
  67. package/dist/_libs/serve-static.mjs +124 -0
  68. package/dist/_libs/std-env.mjs +158 -0
  69. package/dist/_libs/strip-literal.mjs +51 -0
  70. package/dist/_libs/tinyglobby.mjs +292 -0
  71. package/dist/_libs/ultrahtml.mjs +138 -0
  72. package/dist/_libs/unimport.mjs +3520 -0
  73. package/dist/_libs/untyped.mjs +271 -0
  74. package/dist/_libs/unwasm.mjs +5825 -0
  75. package/dist/_libs/vite-plugin-fullstack.mjs +561 -0
  76. package/dist/_presets.mjs +1723 -0
  77. package/dist/builder.d.mts +54 -0
  78. package/dist/builder.mjs +45 -0
  79. package/dist/cli/_chunks/build.mjs +43 -0
  80. package/dist/cli/_chunks/common.mjs +15 -0
  81. package/dist/cli/_chunks/detect-acorn.mjs +12 -0
  82. package/dist/cli/_chunks/dev.mjs +79 -0
  83. package/dist/cli/_chunks/dist.mjs +3 -0
  84. package/dist/cli/_chunks/dist2.mjs +4 -0
  85. package/dist/cli/_chunks/esm.mjs +3 -0
  86. package/dist/cli/_chunks/json5.mjs +4 -0
  87. package/dist/cli/_chunks/jsonc.mjs +4 -0
  88. package/dist/cli/_chunks/list.mjs +27 -0
  89. package/dist/cli/_chunks/multipart-parser.mjs +6 -0
  90. package/dist/cli/_chunks/prepare.mjs +19 -0
  91. package/dist/cli/_chunks/run.mjs +55 -0
  92. package/dist/cli/_chunks/task.mjs +16 -0
  93. package/dist/cli/_chunks/toml.mjs +4 -0
  94. package/dist/cli/_chunks/yaml.mjs +4 -0
  95. package/dist/cli/index.d.mts +1 -1
  96. package/dist/cli/index.mjs +20 -476
  97. package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
  98. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
  99. package/dist/node_modules/@speed-highlight/core/package.json +7 -3
  100. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  101. package/dist/node_modules/cookie-es/package.json +37 -0
  102. package/dist/node_modules/hookable/dist/index.mjs +243 -266
  103. package/dist/node_modules/hookable/package.json +29 -26
  104. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  105. package/dist/node_modules/rendu/package.json +47 -0
  106. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -0
  107. package/dist/presets/_nitro/runtime/nitro-dev.mjs +44 -38
  108. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +2 -2
  109. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +9 -12
  110. package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -0
  111. package/dist/presets/_nitro/runtime/service-worker.mjs +14 -11
  112. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -0
  113. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +6 -5
  114. package/dist/presets/aws-lambda/runtime/_utils.d.mts +8 -13
  115. package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
  116. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -2
  117. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +25 -27
  118. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +7 -7
  119. package/dist/presets/azure/runtime/_utils.mjs +43 -43
  120. package/dist/presets/azure/runtime/azure-swa.d.mts +2 -2
  121. package/dist/presets/azure/runtime/azure-swa.mjs +22 -21
  122. package/dist/presets/bun/runtime/bun.d.mts +1 -0
  123. package/dist/presets/bun/runtime/bun.mjs +18 -17
  124. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +10 -7
  125. package/dist/presets/cloudflare/runtime/_module-handler.mjs +79 -87
  126. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +6 -14
  127. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +55 -61
  128. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -7
  129. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +12 -14
  130. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +12 -12
  131. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +35 -39
  132. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
  133. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -82
  134. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  135. package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -0
  136. package/dist/presets/deno/runtime/deno-deploy.mjs +12 -11
  137. package/dist/presets/deno/runtime/deno-server.d.mts +2 -1
  138. package/dist/presets/deno/runtime/deno-server.mjs +31 -39
  139. package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -1
  140. package/dist/presets/netlify/runtime/netlify-edge.mjs +14 -11
  141. package/dist/presets/netlify/runtime/netlify.mjs +11 -17
  142. package/dist/presets/node/runtime/node-cluster.mjs +49 -48
  143. package/dist/presets/node/runtime/node-middleware.d.mts +3 -2
  144. package/dist/presets/node/runtime/node-middleware.mjs +7 -6
  145. package/dist/presets/node/runtime/node-server.mjs +34 -24
  146. package/dist/presets/standard/runtime/server.d.mts +1 -3
  147. package/dist/presets/standard/runtime/server.mjs +1 -3
  148. package/dist/presets/stormkit/runtime/stormkit.d.mts +13 -13
  149. package/dist/presets/stormkit/runtime/stormkit.mjs +20 -20
  150. package/dist/presets/vercel/runtime/vercel.d.mts +3 -3
  151. package/dist/presets/vercel/runtime/vercel.mjs +15 -14
  152. package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -0
  153. package/dist/presets/winterjs/runtime/winterjs.mjs +72 -68
  154. package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
  155. package/dist/runtime/index.d.mts +13 -2
  156. package/dist/runtime/index.mjs +13 -8
  157. package/dist/runtime/internal/app.d.mts +3 -1
  158. package/dist/runtime/internal/app.mjs +179 -140
  159. package/dist/runtime/internal/cache.d.mts +10 -4
  160. package/dist/runtime/internal/cache.mjs +247 -216
  161. package/dist/runtime/internal/context.d.mts +9 -9
  162. package/dist/runtime/internal/context.mjs +17 -10
  163. package/dist/runtime/internal/database.mjs +8 -10
  164. package/dist/runtime/internal/error/dev.d.mts +5 -4
  165. package/dist/runtime/internal/error/dev.mjs +106 -105
  166. package/dist/runtime/internal/error/prod.d.mts +5 -4
  167. package/dist/runtime/internal/error/prod.mjs +51 -59
  168. package/dist/runtime/internal/error/utils.d.mts +4 -4
  169. package/dist/runtime/internal/error/utils.mjs +1 -1
  170. package/dist/runtime/internal/index.d.mts +2 -0
  171. package/dist/runtime/internal/index.mjs +2 -0
  172. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +14 -14
  173. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +248 -209
  174. package/dist/runtime/internal/meta.d.mts +1 -1
  175. package/dist/runtime/internal/meta.mjs +1 -1
  176. package/dist/runtime/internal/plugin.d.mts +2 -2
  177. package/dist/runtime/internal/plugin.mjs +1 -1
  178. package/dist/runtime/internal/renderer.mjs +40 -32
  179. package/dist/runtime/internal/route-rules.d.mts +8 -8
  180. package/dist/runtime/internal/route-rules.mjs +53 -51
  181. package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -2
  182. package/dist/runtime/internal/routes/dev-tasks.mjs +15 -17
  183. package/dist/runtime/internal/routes/openapi.d.mts +1 -0
  184. package/dist/runtime/internal/routes/openapi.mjs +81 -87
  185. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  186. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
  187. package/dist/runtime/internal/routes/renderer-template.dev.mjs +10 -17
  188. package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
  189. package/dist/runtime/internal/routes/scalar.d.mts +1 -0
  190. package/dist/runtime/internal/routes/scalar.mjs +22 -23
  191. package/dist/runtime/internal/routes/swagger.d.mts +1 -0
  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 +40 -35
  195. package/dist/runtime/internal/shutdown.d.mts +2 -8
  196. package/dist/runtime/internal/shutdown.mjs +32 -30
  197. package/dist/runtime/internal/static.mjs +63 -74
  198. package/dist/runtime/internal/storage.mjs +2 -2
  199. package/dist/runtime/internal/task.d.mts +6 -6
  200. package/dist/runtime/internal/task.mjs +56 -60
  201. package/dist/runtime/internal/utils.d.mts +1 -1
  202. package/dist/runtime/internal/utils.mjs +4 -10
  203. package/dist/types/index.d.mts +2594 -2286
  204. package/dist/types/index.mjs +1 -1
  205. package/dist/vite.d.mts +56 -47
  206. package/dist/vite.mjs +55 -68
  207. package/lib/index.d.mts +1 -0
  208. package/lib/index.mjs +1 -0
  209. package/lib/runtime/meta.mjs +35 -0
  210. package/package.json +49 -50
  211. package/dist/_chunks/app.mjs +0 -19797
  212. package/dist/_chunks/build.mjs +0 -84
  213. package/dist/_chunks/build2.mjs +0 -318
  214. package/dist/_chunks/build3.mjs +0 -6452
  215. package/dist/_chunks/detect-acorn.mjs +0 -503
  216. package/dist/_chunks/index.mjs +0 -22242
  217. package/dist/_chunks/index2.mjs +0 -297
  218. package/dist/_chunks/index3.mjs +0 -1058
  219. package/dist/_chunks/index4.mjs +0 -1206
  220. package/dist/_chunks/info.mjs +0 -11157
  221. package/dist/_chunks/json5.mjs +0 -68
  222. package/dist/_chunks/jsonc.mjs +0 -51
  223. package/dist/_chunks/pathe.M-eThtNZ.mjs +0 -204
  224. package/dist/_chunks/plugin.mjs +0 -960
  225. package/dist/_chunks/server.mjs +0 -254
  226. package/dist/_chunks/snapshot.mjs +0 -284
  227. package/dist/_chunks/toml.mjs +0 -259
  228. package/dist/_chunks/yaml.mjs +0 -86
  229. package/dist/cli/build.mjs +0 -54
  230. package/dist/cli/common.mjs +0 -13
  231. package/dist/cli/dev.mjs +0 -95
  232. package/dist/cli/index2.mjs +0 -17
  233. package/dist/cli/list.mjs +0 -34
  234. package/dist/cli/prepare.mjs +0 -24
  235. package/dist/cli/run.mjs +0 -60
  236. package/dist/index.d.mts +0 -52
  237. package/dist/index.mjs +0 -55
  238. package/dist/node_modules/klona/dist/index.mjs +0 -81
  239. package/dist/node_modules/klona/full/index.mjs +0 -53
  240. package/dist/node_modules/klona/package.json +0 -74
  241. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  242. package/dist/node_modules/std-env/package.json +0 -46
  243. package/dist/presets.mjs +0 -2460
  244. package/dist/runtime/internal/debug.d.mts +0 -2
  245. package/dist/runtime/internal/debug.mjs +0 -5
  246. package/dist/runtime/internal/empty.d.mts +0 -0
  247. package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
  248. package/dist/runtime/internal/vite/dev-worker.d.mts +0 -1
  249. package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
  250. package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
  251. package/lib/runtime-meta.mjs +0 -38
  252. /package/lib/{runtime-meta.d.mts → runtime/meta.d.mts} +0 -0
@@ -1,21 +1,21 @@
1
1
  import "#nitro-internal-pollyfills";
2
2
  import type { Handler } from "aws-lambda";
3
3
  type StormkitEvent = {
4
- url: string;
5
- path: string;
6
- method: string;
7
- body?: string;
8
- query?: Record<string, Array<string>>;
9
- headers?: Record<string, string>;
10
- rawHeaders?: Array<string>;
4
+ url: string;
5
+ path: string;
6
+ method: string;
7
+ body?: string;
8
+ query?: Record<string, Array<string>>;
9
+ headers?: Record<string, string>;
10
+ rawHeaders?: Array<string>;
11
11
  };
12
12
  type StormkitResponse = {
13
- headers?: Record<string, string>;
14
- body?: string;
15
- buffer?: string;
16
- statusCode: number;
17
- errorMessage?: string;
18
- errorStack?: string;
13
+ headers?: Record<string, string>;
14
+ body?: string;
15
+ buffer?: string;
16
+ statusCode: number;
17
+ errorMessage?: string;
18
+ errorStack?: string;
19
19
  };
20
20
  export declare const handler: Handler<StormkitEvent, StormkitResponse>;
21
21
  export {};
@@ -3,26 +3,26 @@ import { useNitroApp } from "nitro/runtime";
3
3
  import { awsResponseBody } from "../../aws-lambda/runtime/_utils.mjs";
4
4
  const nitroApp = useNitroApp();
5
5
  export const handler = async function(event, context) {
6
- const req = new Request(event.url, {
7
- method: event.method || "GET",
8
- headers: event.headers,
9
- body: event.body
10
- });
11
- req.runtime ??= { name: "stormkit" };
12
- req.runtime.stormkit ??= { event, context };
13
- const response = await nitroApp.fetch(req);
14
- const { body, isBase64Encoded } = await awsResponseBody(response);
15
- return {
16
- statusCode: response.status,
17
- headers: normalizeOutgoingHeaders(response.headers),
18
- [isBase64Encoded ? "buffer" : "body"]: body
19
- };
6
+ const req = new Request(event.url, {
7
+ method: event.method || "GET",
8
+ headers: event.headers,
9
+ body: event.body
10
+ });
11
+ // srvx compatibility
12
+ req.runtime ??= { name: "stormkit" };
13
+ // @ts-expect-error (add to srvx types)
14
+ req.runtime.stormkit ??= {
15
+ event,
16
+ context
17
+ };
18
+ const response = await nitroApp.fetch(req);
19
+ const { body, isBase64Encoded } = await awsResponseBody(response);
20
+ return {
21
+ statusCode: response.status,
22
+ headers: normalizeOutgoingHeaders(response.headers),
23
+ [isBase64Encoded ? "buffer" : "body"]: body
24
+ };
20
25
  };
21
26
  function normalizeOutgoingHeaders(headers) {
22
- return Object.fromEntries(
23
- Object.entries(headers).map(([k, v]) => [
24
- k,
25
- Array.isArray(v) ? v.join(",") : String(v)
26
- ])
27
- );
27
+ return Object.fromEntries(Object.entries(headers).map(([k, v]) => [k, Array.isArray(v) ? v.join(",") : String(v)]));
28
28
  }
@@ -1,8 +1,8 @@
1
1
  import "#nitro-internal-pollyfills";
2
2
  import type { ServerRequest } from "srvx";
3
3
  declare const _default: {
4
- fetch(req: ServerRequest, context: {
5
- waitUntil: (promise: Promise<any>) => void;
6
- }): any;
4
+ fetch(req: ServerRequest, context: {
5
+ waitUntil: (promise: Promise<any>) => void;
6
+ });
7
7
  };
8
8
  export default _default;
@@ -1,17 +1,18 @@
1
1
  import "#nitro-internal-pollyfills";
2
2
  import { useNitroApp } from "nitro/runtime";
3
3
  const nitroApp = useNitroApp();
4
- export default {
5
- fetch(req, context) {
6
- const isrRoute = req.headers.get("x-now-route-matches");
7
- if (isrRoute) {
8
- const url = new URL(req.url);
9
- url.pathname = decodeURIComponent(isrRoute);
10
- req = new Request(url.toString(), req);
11
- }
12
- req.runtime ??= { name: "vercel" };
13
- req.runtime.vercel = { context };
14
- req.waitUntil = context?.waitUntil;
15
- return nitroApp.fetch(req);
16
- }
17
- };
4
+ export default { fetch(req, context) {
5
+ // Check for ISR request
6
+ const isrRoute = req.headers.get("x-now-route-matches");
7
+ if (isrRoute) {
8
+ const url = new URL(req.url);
9
+ url.pathname = decodeURIComponent(isrRoute);
10
+ req = new Request(url.toString(), req);
11
+ }
12
+ // srvx compatibility
13
+ req.runtime ??= { name: "vercel" };
14
+ // @ts-expect-error (add to srvx types)
15
+ req.runtime.vercel = { context };
16
+ req.waitUntil = context?.waitUntil;
17
+ return nitroApp.fetch(req);
18
+ } };
@@ -1 +1,3 @@
1
+ // @ts-nocheck TODO: Remove after removing polyfills
1
2
  import "#nitro-internal-pollyfills";
3
+ export {};
@@ -1,87 +1,91 @@
1
+ // @ts-nocheck TODO: Remove after removing polyfills
1
2
  import "#nitro-internal-pollyfills";
2
3
  import { useNitroApp } from "nitro/runtime";
3
4
  import { hasProtocol, joinURL } from "ufo";
4
5
  const nitroApp = useNitroApp();
6
+ // Use plain handler as winterjs Web API is incomplete
7
+ // TODO: Migrate to toWebHandler
5
8
  const _handler = toPlainHandler(nitroApp.h3App);
6
9
  async function _handleEvent(event) {
7
- try {
8
- const res = await _handler({
9
- path: event.request.url.pathname + (event.request.url.search ? `?${event.request.url.search}` : ""),
10
- method: event.request.getMethod() || "GET",
11
- body: event.request.body,
12
- headers: event.request.headers,
13
- context: {
14
- waitUntil: (promise) => event.waitUntil(promise),
15
- _platform: {
16
- winterjs: {
17
- event
18
- }
19
- }
20
- }
21
- });
22
- const body = typeof res.body === "string" ? res.body : await toBuffer(res.body);
23
- return new Response(body, {
24
- status: res.status,
25
- statusText: res.statusText,
26
- headers: res.headers
27
- });
28
- } catch (error) {
29
- const errString = error?.message + "\n" + error?.stack;
30
- console.error(errString);
31
- return new Response(errString, { status: 500 });
32
- }
10
+ try {
11
+ const res = await _handler({
12
+ path: event.request.url.pathname + (event.request.url.search ? `?${event.request.url.search}` : ""),
13
+ method: event.request.getMethod() || "GET",
14
+ body: event.request.body,
15
+ headers: event.request.headers,
16
+ context: {
17
+ waitUntil: (promise) => event.waitUntil(promise),
18
+ _platform: { winterjs: { event } }
19
+ }
20
+ });
21
+ const body = typeof res.body === "string" ? res.body : await toBuffer(res.body);
22
+ return new Response(body, {
23
+ status: res.status,
24
+ statusText: res.statusText,
25
+ headers: res.headers
26
+ });
27
+ } catch (error) {
28
+ const errString = error?.message + "\n" + error?.stack;
29
+ console.error(errString);
30
+ return new Response(errString, { status: 500 });
31
+ }
33
32
  }
34
33
  addEventListener("fetch", async (event) => {
35
- event.respondWith(await _handleEvent(event));
34
+ event.respondWith(await _handleEvent(event));
36
35
  });
36
+ // ------------------------------
37
+ // Polyfills for missing APIs
38
+ // ------------------------------
37
39
  function toBuffer(data) {
38
- return new Promise((resolve, reject) => {
39
- const chunks = [];
40
- data.pipeTo(
41
- new WritableStream({
42
- write(chunk) {
43
- chunks.push(chunk);
44
- },
45
- close() {
46
- resolve(Buffer.concat(chunks));
47
- },
48
- abort(reason) {
49
- reject(reason);
50
- }
51
- })
52
- ).catch(reject);
53
- });
40
+ return new Promise((resolve, reject) => {
41
+ const chunks = [];
42
+ data.pipeTo(new WritableStream({
43
+ write(chunk) {
44
+ chunks.push(chunk);
45
+ },
46
+ close() {
47
+ resolve(Buffer.concat(chunks));
48
+ },
49
+ abort(reason) {
50
+ reject(reason);
51
+ }
52
+ })).catch(reject);
53
+ });
54
54
  }
55
+ // Headers.entries
55
56
  if (!Headers.prototype.entries) {
56
- Headers.prototype.entries = function() {
57
- return [...this];
58
- };
57
+ // @ts-ignore
58
+ Headers.prototype.entries = function() {
59
+ return [...this];
60
+ };
59
61
  }
62
+ // URL.pathname
60
63
  if (!URL.prototype.pathname) {
61
- Object.defineProperty(URL.prototype, "pathname", {
62
- get() {
63
- return this.path || "/";
64
- }
65
- });
64
+ Object.defineProperty(URL.prototype, "pathname", { get() {
65
+ return this.path || "/";
66
+ } });
66
67
  }
68
+ // URL constructor (relative support)
67
69
  const _URL = globalThis.URL;
68
- globalThis.URL = class URL2 extends _URL {
69
- constructor(url, base) {
70
- if (!base || hasProtocol(url)) {
71
- super(url);
72
- return;
73
- }
74
- super(joinURL(base, url));
75
- }
70
+ globalThis.URL = class URL extends _URL {
71
+ constructor(url, base) {
72
+ if (!base || hasProtocol(url)) {
73
+ super(url);
74
+ return;
75
+ }
76
+ super(joinURL(base, url));
77
+ }
76
78
  };
79
+ // Response (avoid Promise body)
77
80
  const _Response = globalThis.Response;
78
- globalThis.Response = class Response2 extends _Response {
79
- _body;
80
- constructor(body, init) {
81
- super(body, init);
82
- this._body = body;
83
- }
84
- get body() {
85
- return this._body;
86
- }
81
+ globalThis.Response = class Response extends _Response {
82
+ _body;
83
+ constructor(body, init) {
84
+ super(body, init);
85
+ this._body = body;
86
+ }
87
+ get body() {
88
+ // TODO: Return ReadableStream (should be iterable)
89
+ return this._body;
90
+ }
87
91
  };
@@ -1,3 +1,3 @@
1
1
  import "#nitro-internal-pollyfills";
2
- declare const _default: any;
2
+ declare const _default;
3
3
  export default _default;
@@ -1,11 +1,22 @@
1
+ // Public API (also exposed as auto-imports defined in core/imports.ts)
2
+ // Type (only) helpers
1
3
  export { defineNitroPlugin } from "./internal/plugin.mjs";
2
4
  export { defineRouteMeta } from "./internal/meta.mjs";
3
5
  export { defineNitroErrorHandler } from "./internal/error/utils.mjs";
6
+ // Config
4
7
  export { useRuntimeConfig } from "./internal/runtime-config.mjs";
8
+ // Context
5
9
  export { useRequest } from "./internal/context.mjs";
10
+ // Renderer
6
11
  export { defineRenderHandler } from "./internal/renderer.mjs";
7
- export { defineCachedFunction, defineCachedEventHandler, defineCachedHandler, cachedFunction, cachedEventHandler, } from "./internal/cache.mjs";
8
- export { useNitroApp } from "./internal/app.mjs";
12
+ // Cache
13
+ export { defineCachedFunction, defineCachedEventHandler, defineCachedHandler, cachedFunction, cachedEventHandler } from "./internal/cache.mjs";
14
+ // ---- Internals that depends on virtual imports should come last ---- //
15
+ // App
16
+ export { useNitroApp, useNitroHooks } from "./internal/app.mjs";
17
+ // Storage
9
18
  export { useStorage } from "./internal/storage.mjs";
19
+ // Database
10
20
  export { useDatabase } from "./internal/database.mjs";
21
+ // Tasks
11
22
  export { defineTask, runTask } from "./internal/task.mjs";
@@ -1,17 +1,22 @@
1
+ // Public API (also exposed as auto-imports defined in core/imports.ts)
2
+ // Type (only) helpers
1
3
  export { defineNitroPlugin } from "./internal/plugin.mjs";
2
4
  export { defineRouteMeta } from "./internal/meta.mjs";
3
5
  export { defineNitroErrorHandler } from "./internal/error/utils.mjs";
6
+ // Config
4
7
  export { useRuntimeConfig } from "./internal/runtime-config.mjs";
8
+ // Context
5
9
  export { useRequest } from "./internal/context.mjs";
10
+ // Renderer
6
11
  export { defineRenderHandler } from "./internal/renderer.mjs";
7
- export {
8
- defineCachedFunction,
9
- defineCachedEventHandler,
10
- defineCachedHandler,
11
- cachedFunction,
12
- cachedEventHandler
13
- } from "./internal/cache.mjs";
14
- export { useNitroApp } from "./internal/app.mjs";
12
+ // Cache
13
+ export { defineCachedFunction, defineCachedEventHandler, defineCachedHandler, cachedFunction, cachedEventHandler } from "./internal/cache.mjs";
14
+ // ---- Internals that depends on virtual imports should come last ---- //
15
+ // App
16
+ export { useNitroApp, useNitroHooks } from "./internal/app.mjs";
17
+ // Storage
15
18
  export { useStorage } from "./internal/storage.mjs";
19
+ // Database
16
20
  export { useDatabase } from "./internal/database.mjs";
21
+ // Tasks
17
22
  export { defineTask, runTask } from "./internal/task.mjs";
@@ -1,2 +1,4 @@
1
- import type { NitroApp } from "nitro/types";
1
+ import type { NitroApp, NitroRuntimeHooks } from "nitro/types";
2
+ import { HookableCore } from "hookable";
2
3
  export declare function useNitroApp(): NitroApp;
4
+ export declare function useNitroHooks(): HookableCore<NitroRuntimeHooks>;