nitro-nightly 4.0.0-20251010-091516-7cafddba → 4.0.0-20251030-091344-d4418b98

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 (195) hide show
  1. package/dist/{_chunks/build2.mjs → _build/build.mjs} +108 -58
  2. package/dist/_build/build2.mjs +556 -0
  3. package/dist/_build/info.mjs +1002 -0
  4. package/dist/_build/prepare.mjs +1511 -0
  5. package/dist/_build/snapshot.mjs +185 -0
  6. package/dist/{_chunks/plugin.mjs → _build/vite.mjs} +295 -296
  7. package/dist/_build/vite2.mjs +149 -0
  8. package/dist/_chunks/_deps/@jridgewell/gen-mapping.mjs +189 -0
  9. package/dist/_chunks/_deps/@jridgewell/remapping.mjs +137 -0
  10. package/dist/_chunks/_deps/@jridgewell/resolve-uri.mjs +231 -0
  11. package/dist/_chunks/_deps/@jridgewell/sourcemap-codec.mjs +173 -0
  12. package/dist/_chunks/_deps/@jridgewell/trace-mapping.mjs +170 -0
  13. package/dist/_chunks/_deps/@pi0/vite-plugin-fullstack.mjs +575 -0
  14. package/dist/_chunks/_deps/@rollup/plugin-alias.mjs +89 -0
  15. package/dist/_chunks/_deps/@rollup/plugin-commonjs.mjs +2376 -0
  16. package/dist/_chunks/{index2.mjs → _deps/@rollup/plugin-inject.mjs} +5 -90
  17. package/dist/_chunks/_deps/@rollup/plugin-json.mjs +37 -0
  18. package/dist/_chunks/_deps/@rollup/plugin-node-resolve.mjs +1386 -0
  19. package/dist/_chunks/_deps/@rollup/plugin-replace.mjs +133 -0
  20. package/dist/_chunks/_deps/@rollup/pluginutils.mjs +346 -0
  21. package/dist/_chunks/_deps/acorn.mjs +6225 -0
  22. package/dist/_chunks/_deps/c12.mjs +510 -0
  23. package/dist/_chunks/_deps/chokidar.mjs +1428 -0
  24. package/dist/_chunks/_deps/citty.mjs +460 -0
  25. package/dist/_chunks/_deps/commondir.mjs +77 -0
  26. package/dist/_chunks/_deps/compatx.mjs +76 -0
  27. package/dist/_chunks/_deps/confbox.mjs +300 -0
  28. package/dist/_chunks/_deps/debug.mjs +885 -0
  29. package/dist/_chunks/_deps/deepmerge.mjs +147 -0
  30. package/dist/_chunks/_deps/depd.mjs +550 -0
  31. package/dist/_chunks/_deps/dot-prop.mjs +282 -0
  32. package/dist/_chunks/_deps/dotenv.mjs +555 -0
  33. package/dist/_chunks/_deps/duplexer.mjs +1 -0
  34. package/dist/_chunks/_deps/ee-first.mjs +104 -0
  35. package/dist/_chunks/_deps/encodeurl.mjs +69 -0
  36. package/dist/_chunks/_deps/escape-html.mjs +87 -0
  37. package/dist/_chunks/_deps/escape-string-regexp.mjs +13 -0
  38. package/dist/_chunks/_deps/estree-walker.mjs +433 -0
  39. package/dist/_chunks/_deps/etag.mjs +147 -0
  40. package/dist/_chunks/_deps/exsolve.mjs +1416 -0
  41. package/dist/_chunks/_deps/fdir.mjs +569 -0
  42. package/dist/_chunks/_deps/fresh.mjs +145 -0
  43. package/dist/_chunks/_deps/function-bind.mjs +106 -0
  44. package/dist/_chunks/{index4.mjs → _deps/giget.mjs} +21 -776
  45. package/dist/_chunks/_deps/gzip-size.mjs +19 -0
  46. package/dist/_chunks/_deps/hasown.mjs +19 -0
  47. package/dist/_chunks/_deps/http-errors.mjs +307 -0
  48. package/dist/_chunks/_deps/httpxy.mjs +580 -0
  49. package/dist/_chunks/_deps/inherits.mjs +57 -0
  50. package/dist/_chunks/_deps/is-core-module.mjs +596 -0
  51. package/dist/_chunks/_deps/is-module.mjs +25 -0
  52. package/dist/_chunks/_deps/is-reference.mjs +31 -0
  53. package/dist/_chunks/_deps/js-tokens.mjs +411 -0
  54. package/dist/_chunks/_deps/klona.mjs +137 -0
  55. package/dist/_chunks/_deps/knitwork.mjs +172 -0
  56. package/dist/_chunks/_deps/local-pkg.mjs +163 -0
  57. package/dist/_chunks/_deps/magic-string.mjs +1296 -0
  58. package/dist/_chunks/_deps/mime-db.mjs +11685 -0
  59. package/dist/_chunks/_deps/mime-types.mjs +287 -0
  60. package/dist/_chunks/_deps/mime.mjs +1172 -0
  61. package/dist/_chunks/_deps/mlly.mjs +2413 -0
  62. package/dist/_chunks/_deps/ms.mjs +172 -0
  63. package/dist/_chunks/_deps/node-fetch-native.mjs +3 -0
  64. package/dist/_chunks/_deps/nypm.mjs +219 -0
  65. package/dist/_chunks/_deps/on-finished.mjs +246 -0
  66. package/dist/_chunks/_deps/parseurl.mjs +168 -0
  67. package/dist/_chunks/_deps/path-parse.mjs +85 -0
  68. package/dist/_chunks/{pathe.M-eThtNZ.mjs → _deps/pathe.mjs} +48 -1
  69. package/dist/_chunks/_deps/perfect-debounce.mjs +88 -0
  70. package/dist/_chunks/_deps/picomatch.mjs +2144 -0
  71. package/dist/_chunks/_deps/pkg-types.mjs +247 -0
  72. package/dist/_chunks/{snapshot.mjs → _deps/pretty-bytes.mjs} +1 -105
  73. package/dist/_chunks/_deps/quansync.mjs +99 -0
  74. package/dist/_chunks/_deps/range-parser.mjs +171 -0
  75. package/dist/_chunks/_deps/rc9.mjs +219 -0
  76. package/dist/_chunks/_deps/readdirp.mjs +245 -0
  77. package/dist/_chunks/_deps/resolve.mjs +1260 -0
  78. package/dist/_chunks/_deps/rou3.mjs +326 -0
  79. package/dist/_chunks/_deps/send.mjs +1022 -0
  80. package/dist/_chunks/_deps/serve-static.mjs +228 -0
  81. package/dist/_chunks/_deps/setprototypeof.mjs +26 -0
  82. package/dist/_chunks/_deps/statuses.mjs +457 -0
  83. package/dist/_chunks/_deps/std-env.mjs +3 -0
  84. package/dist/_chunks/_deps/strip-literal.mjs +67 -0
  85. package/dist/_chunks/_deps/supports-color.mjs +44 -0
  86. package/dist/_chunks/_deps/tinyexec.mjs +552 -0
  87. package/dist/_chunks/_deps/tinyglobby.mjs +293 -0
  88. package/dist/_chunks/_deps/toidentifier.mjs +41 -0
  89. package/dist/_chunks/_deps/ultrahtml.mjs +3 -0
  90. package/dist/_chunks/_deps/unimport.mjs +2267 -0
  91. package/dist/_chunks/_deps/unplugin-utils.mjs +65 -0
  92. package/dist/_chunks/_deps/unplugin.mjs +1294 -0
  93. package/dist/_chunks/_deps/untyped.mjs +375 -0
  94. package/dist/_chunks/{info.mjs → _deps/unwasm.mjs} +8 -4206
  95. package/dist/_chunks/_deps/webpack-virtual-modules.mjs +360 -0
  96. package/dist/_chunks/_presets/_all.mjs +59 -0
  97. package/dist/_chunks/_presets/_nitro.mjs +74 -0
  98. package/dist/_chunks/_presets/_resolve.mjs +64 -0
  99. package/dist/_chunks/_presets/_static.mjs +69 -0
  100. package/dist/_chunks/_presets/_types.mjs +3 -0
  101. package/dist/_chunks/_presets/_utils.mjs +31 -0
  102. package/dist/_chunks/_presets/alwaysdata.mjs +17 -0
  103. package/dist/_chunks/_presets/aws-amplify.mjs +111 -0
  104. package/dist/_chunks/_presets/aws-lambda.mjs +23 -0
  105. package/dist/_chunks/_presets/azure.mjs +162 -0
  106. package/dist/_chunks/_presets/bun.mjs +19 -0
  107. package/dist/_chunks/_presets/cleavr.mjs +15 -0
  108. package/dist/_chunks/_presets/cloudflare.mjs +608 -0
  109. package/dist/_chunks/_presets/deno.mjs +196 -0
  110. package/dist/_chunks/_presets/digitalocean.mjs +14 -0
  111. package/dist/_chunks/_presets/firebase.mjs +47 -0
  112. package/dist/_chunks/_presets/flightcontrol.mjs +14 -0
  113. package/dist/_chunks/_presets/genezio.mjs +13 -0
  114. package/dist/_chunks/_presets/heroku.mjs +14 -0
  115. package/dist/_chunks/_presets/iis.mjs +194 -0
  116. package/dist/_chunks/_presets/index.mjs +62 -0
  117. package/dist/_chunks/_presets/koyeb.mjs +14 -0
  118. package/dist/_chunks/_presets/netlify.mjs +241 -0
  119. package/dist/_chunks/_presets/node.mjs +54 -0
  120. package/dist/_chunks/_presets/platform.mjs +14 -0
  121. package/dist/_chunks/_presets/render.mjs +14 -0
  122. package/dist/_chunks/_presets/standard.mjs +23 -0
  123. package/dist/_chunks/_presets/stormkit.mjs +18 -0
  124. package/dist/_chunks/_presets/vercel.mjs +375 -0
  125. package/dist/_chunks/_presets/winterjs.mjs +22 -0
  126. package/dist/_chunks/_presets/zeabur.mjs +69 -0
  127. package/dist/_chunks/_presets/zerops.mjs +27 -0
  128. package/dist/_chunks/app.mjs +9 -19206
  129. package/dist/_chunks/{index3.mjs → builder.mjs} +560 -970
  130. package/dist/_chunks/server.mjs +6 -4
  131. package/dist/{cli → _cli}/build.mjs +3 -8
  132. package/dist/{cli → _cli}/dev.mjs +38 -12
  133. package/dist/{cli/index2.mjs → _cli/index.mjs} +1 -2
  134. package/dist/{cli → _cli}/list.mjs +3 -4
  135. package/dist/{cli → _cli}/prepare.mjs +3 -4
  136. package/dist/{cli → _cli}/run.mjs +3 -4
  137. package/dist/{index.d.mts → builder.d.mts} +11 -11
  138. package/dist/builder.mjs +117 -0
  139. package/dist/cli/index.mjs +7 -464
  140. package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
  141. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
  142. package/dist/node_modules/@speed-highlight/core/package.json +7 -3
  143. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  144. package/dist/node_modules/cookie-es/package.json +37 -0
  145. package/dist/node_modules/hookable/dist/index.mjs +243 -266
  146. package/dist/node_modules/hookable/package.json +29 -26
  147. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  148. package/dist/node_modules/rendu/package.json +47 -0
  149. package/dist/presets/_nitro/runtime/nitro-dev.mjs +4 -7
  150. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +5 -4
  151. package/dist/presets/azure/runtime/azure-swa.mjs +1 -1
  152. package/dist/presets/cloudflare/runtime/_module-handler.mjs +7 -6
  153. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +4 -5
  154. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +7 -10
  155. package/dist/presets/cloudflare/runtime/shims/workers.dev.d.mts +21 -0
  156. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  157. package/dist/presets/node/runtime/node-server.mjs +1 -1
  158. package/dist/runtime/index.d.mts +1 -1
  159. package/dist/runtime/index.mjs +1 -1
  160. package/dist/runtime/internal/app.d.mts +3 -1
  161. package/dist/runtime/internal/app.mjs +90 -64
  162. package/dist/runtime/internal/error/prod.d.mts +3 -2
  163. package/dist/runtime/internal/error/prod.mjs +9 -13
  164. package/dist/runtime/internal/renderer.mjs +4 -4
  165. package/dist/runtime/internal/routes/dev-tasks.d.mts +30 -2
  166. package/dist/runtime/internal/shutdown.d.mts +1 -2
  167. package/dist/runtime/internal/shutdown.mjs +3 -2
  168. package/dist/runtime/internal/task.mjs +1 -2
  169. package/dist/types/index.d.mts +1603 -10
  170. package/dist/vite.d.mts +5 -0
  171. package/dist/vite.mjs +94 -30
  172. package/lib/index.mjs +1 -0
  173. package/lib/indexd.mts +1 -0
  174. package/lib/runtime/meta.mjs +35 -0
  175. package/package.json +40 -41
  176. package/dist/_chunks/build.mjs +0 -84
  177. package/dist/_chunks/build3.mjs +0 -6452
  178. package/dist/_chunks/detect-acorn.mjs +0 -503
  179. package/dist/_chunks/index.mjs +0 -22242
  180. package/dist/_chunks/json5.mjs +0 -68
  181. package/dist/_chunks/jsonc.mjs +0 -51
  182. package/dist/_chunks/toml.mjs +0 -259
  183. package/dist/_chunks/yaml.mjs +0 -86
  184. package/dist/index.mjs +0 -55
  185. package/dist/node_modules/klona/dist/index.mjs +0 -81
  186. package/dist/node_modules/klona/full/index.mjs +0 -53
  187. package/dist/node_modules/klona/package.json +0 -74
  188. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  189. package/dist/node_modules/std-env/package.json +0 -46
  190. package/dist/presets.mjs +0 -2460
  191. package/dist/runtime/internal/debug.d.mts +0 -2
  192. package/dist/runtime/internal/debug.mjs +0 -5
  193. package/lib/runtime-meta.mjs +0 -38
  194. /package/dist/{cli → _cli}/common.mjs +0 -0
  195. /package/lib/{runtime-meta.d.mts → runtime/meta.d.mts} +0 -0
@@ -5,7 +5,7 @@ export { useRuntimeConfig } from "./internal/runtime-config.mjs";
5
5
  export { useRequest } from "./internal/context.mjs";
6
6
  export { defineRenderHandler } from "./internal/renderer.mjs";
7
7
  export { defineCachedFunction, defineCachedEventHandler, defineCachedHandler, cachedFunction, cachedEventHandler, } from "./internal/cache.mjs";
8
- export { useNitroApp } from "./internal/app.mjs";
8
+ export { useNitroApp, useNitroHooks } from "./internal/app.mjs";
9
9
  export { useStorage } from "./internal/storage.mjs";
10
10
  export { useDatabase } from "./internal/database.mjs";
11
11
  export { defineTask, runTask } from "./internal/task.mjs";
@@ -11,7 +11,7 @@ export {
11
11
  cachedFunction,
12
12
  cachedEventHandler
13
13
  } from "./internal/cache.mjs";
14
- export { useNitroApp } from "./internal/app.mjs";
14
+ export { useNitroApp, useNitroHooks } from "./internal/app.mjs";
15
15
  export { useStorage } from "./internal/storage.mjs";
16
16
  export { useDatabase } from "./internal/database.mjs";
17
17
  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>;
@@ -1,5 +1,5 @@
1
1
  import { H3Core, toRequest } from "h3";
2
- import { createHooks } from "hookable";
2
+ import { HookableCore } from "hookable";
3
3
  import { nitroAsyncContext } from "./context.mjs";
4
4
  import errorHandler from "#nitro-internal-virtual/error-handler";
5
5
  import { plugins } from "#nitro-internal-virtual/plugins";
@@ -9,25 +9,43 @@ import {
9
9
  globalMiddleware,
10
10
  findRoutedMiddleware
11
11
  } from "#nitro-internal-virtual/routing";
12
+ import {
13
+ hasRouteRules,
14
+ hasRoutedMiddleware,
15
+ hasGlobalMiddleware,
16
+ hasRoutes,
17
+ hasHooks,
18
+ hasPlugins
19
+ } from "#nitro-internal-virtual/feature-flags";
12
20
  export function useNitroApp() {
13
21
  return useNitroApp.__instance__ ??= initNitroApp();
14
22
  }
23
+ export function useNitroHooks() {
24
+ const nitroApp = useNitroApp();
25
+ const hooks = nitroApp.hooks;
26
+ if (hooks) {
27
+ return hooks;
28
+ }
29
+ return nitroApp.hooks = new HookableCore();
30
+ }
15
31
  function initNitroApp() {
16
32
  const nitroApp = createNitroApp();
17
- for (const plugin of plugins) {
18
- try {
19
- plugin(nitroApp);
20
- } catch (error) {
21
- nitroApp.captureError(error, { tags: ["plugin"] });
22
- throw error;
33
+ if (hasPlugins) {
34
+ for (const plugin of plugins) {
35
+ try {
36
+ plugin(nitroApp);
37
+ } catch (error) {
38
+ nitroApp.captureError(error, { tags: ["plugin"] });
39
+ throw error;
40
+ }
23
41
  }
24
42
  }
25
43
  return nitroApp;
26
44
  }
27
45
  function createNitroApp() {
28
- const hooks = createHooks();
46
+ const hooks = hasHooks ? new HookableCore() : void 0;
29
47
  const captureError = (error, errorCtx) => {
30
- const promise = hooks.callHookParallel("error", error, errorCtx).catch((hookError) => {
48
+ const promise = hasHooks && hooks.callHook("error", error, errorCtx)?.catch?.((hookError) => {
31
49
  console.error("Error while capturing another error", hookError);
32
50
  });
33
51
  if (errorCtx?.event) {
@@ -35,82 +53,90 @@ function createNitroApp() {
35
53
  if (errors) {
36
54
  errors.push({ error, context: errorCtx });
37
55
  }
38
- if (typeof errorCtx.event.req.waitUntil === "function") {
56
+ if (hasHooks && typeof errorCtx.event.req.waitUntil === "function") {
39
57
  errorCtx.event.req.waitUntil(promise);
40
58
  }
41
59
  }
42
60
  };
43
- const h3App = createH3App(captureError);
44
- let fetchHandler = async (req) => {
45
- req.context ??= {};
61
+ const h3App = createH3App({
62
+ onError(error, event) {
63
+ hasHooks && captureError(error, { event });
64
+ return errorHandler(error, event);
65
+ }
66
+ });
67
+ if (hasHooks) {
68
+ h3App.config.onRequest = (event) => {
69
+ return hooks.callHook("request", event)?.catch?.((error) => {
70
+ captureError(error, { event, tags: ["request"] });
71
+ });
72
+ };
73
+ h3App.config.onResponse = (res, event) => {
74
+ return hooks.callHook("response", res, event)?.catch?.((error) => {
75
+ captureError(error, { event, tags: ["response"] });
76
+ });
77
+ };
78
+ }
79
+ let appHandler = (req) => {
80
+ req.context ||= {};
46
81
  req.context.nitro = req.context.nitro || { errors: [] };
47
- const event = { req };
48
- const nitroApp = useNitroApp();
49
- await nitroApp.hooks.callHook("request", event).catch((error) => {
50
- captureError(error, { event, tags: ["request"] });
51
- });
52
- const response = await h3App.request(req, void 0, req.context);
53
- await nitroApp.hooks.callHook("response", response, event).catch((error) => {
54
- captureError(error, { event, tags: ["request", "response"] });
55
- });
56
- return response;
82
+ return h3App.fetch(req);
57
83
  };
58
84
  if (import.meta._asyncContext) {
59
- const originalFetchHandler = fetchHandler;
60
- fetchHandler = (req) => {
85
+ const originalHandler = appHandler;
86
+ appHandler = (req) => {
61
87
  const asyncCtx = { request: req };
62
- return nitroAsyncContext.callAsync(
63
- asyncCtx,
64
- () => originalFetchHandler(req)
65
- );
88
+ return nitroAsyncContext.callAsync(asyncCtx, () => originalHandler(req));
66
89
  };
67
90
  }
68
- const requestHandler = (input, init, context) => {
91
+ const request = (input, init, context) => {
69
92
  const req = toRequest(input, init);
70
93
  req.context = { ...req.context, ...context };
71
- return Promise.resolve(fetchHandler(req));
94
+ return Promise.resolve(appHandler(req));
72
95
  };
73
- const originalFetch = globalThis.fetch;
74
- const nitroFetch = (input, init) => {
75
- if (typeof input === "string" && input.startsWith("/")) {
76
- return requestHandler(input, init);
77
- }
78
- if (input instanceof Request && "_request" in input) {
79
- input = input._request;
96
+ const nativeFetch = globalThis.fetch;
97
+ globalThis.fetch = (input, init) => {
98
+ if (typeof input === "string" && input.charCodeAt(0) === 47) {
99
+ return request(input, init);
80
100
  }
81
- return originalFetch(input, init);
101
+ input = input._request || input;
102
+ return nativeFetch(input, init);
82
103
  };
83
- globalThis.fetch = nitroFetch;
84
104
  const app = {
85
- _h3: h3App,
105
+ fetch: appHandler,
106
+ request,
107
+ h3: h3App,
86
108
  hooks,
87
- fetch: requestHandler,
88
109
  captureError
89
110
  };
90
111
  return app;
91
112
  }
92
- function createH3App(captureError) {
93
- const DEBUG_MODE = ["1", "true", "TRUE"].includes(process.env.DEBUG + "");
94
- const h3App = new H3Core({
95
- debug: DEBUG_MODE,
96
- onError: (error, event) => {
97
- captureError(error, { event, tags: ["request"] });
98
- return errorHandler(error, event);
99
- }
100
- });
101
- h3App._findRoute = (event) => findRoute(event.req.method, event.url.pathname);
102
- h3App._getMiddleware = (event, route) => {
103
- const pathname = event.url.pathname;
104
- const method = event.req.method;
105
- const { routeRules, routeRuleMiddleware } = getRouteRules(method, pathname);
106
- event.context.routeRules = routeRules;
107
- return [
108
- ...routeRuleMiddleware,
109
- ...globalMiddleware,
110
- ...findRoutedMiddleware(method, pathname).map((r) => r.data),
111
- ...route?.data?.middleware || []
112
- ].filter(Boolean);
113
- };
113
+ function createH3App(config) {
114
+ const h3App = new H3Core(config);
115
+ hasRoutes && (h3App["~findRoute"] = (event) => findRoute(event.req.method, event.url.pathname));
116
+ hasGlobalMiddleware && h3App["~middleware"].push(...globalMiddleware);
117
+ if (hasRouteRules || hasRoutedMiddleware) {
118
+ h3App["~getMiddleware"] = (event, route) => {
119
+ const needsRouting = hasRouteRules || hasRoutedMiddleware;
120
+ const pathname = needsRouting ? event.url.pathname : void 0;
121
+ const method = needsRouting ? event.req.method : void 0;
122
+ const middleware = [];
123
+ if (hasRouteRules) {
124
+ const routeRules = getRouteRules(method, pathname);
125
+ event.context.routeRules = routeRules?.routeRules;
126
+ if (routeRules?.routeRuleMiddleware.length) {
127
+ middleware.push(...routeRules.routeRuleMiddleware);
128
+ }
129
+ }
130
+ hasGlobalMiddleware && middleware.push(...h3App["~middleware"]);
131
+ hasRoutedMiddleware && middleware.push(
132
+ ...findRoutedMiddleware(method, pathname).map((r) => r.data)
133
+ );
134
+ if (hasRoutes && route?.data?.middleware?.length) {
135
+ middleware.push(...route.data.middleware);
136
+ }
137
+ return middleware;
138
+ };
139
+ }
114
140
  return h3App;
115
141
  }
116
142
  function getRouteRules(method, pathname) {
@@ -1,7 +1,8 @@
1
1
  import type { HTTPError, HTTPEvent } from "h3";
2
2
  import type { InternalHandlerResponse } from "./utils.mjs";
3
- declare const _default: NitroErrorHandler;
4
- export default _default;
3
+ import type { NitroErrorHandler } from "nitro/types";
4
+ declare const errorHandler: NitroErrorHandler;
5
+ export default errorHandler;
5
6
  export declare function defaultHandler(error: HTTPError, event: HTTPEvent, opts?: {
6
7
  silent?: boolean;
7
8
  json?: boolean;
@@ -1,16 +1,16 @@
1
- import { getRequestURL } from "h3";
2
- import { defineNitroErrorHandler } from "./utils.mjs";
3
1
  import { FastResponse } from "srvx";
4
- export default defineNitroErrorHandler(
5
- function defaultNitroErrorHandler(error, event) {
6
- const res = defaultHandler(error, event);
7
- return new FastResponse(JSON.stringify(res.body, null, 2), res);
8
- }
9
- );
2
+ const errorHandler = (error, event) => {
3
+ const res = defaultHandler(error, event);
4
+ return new FastResponse(
5
+ typeof res.body === "string" ? res.body : JSON.stringify(res.body, null, 2),
6
+ res
7
+ );
8
+ };
9
+ export default errorHandler;
10
10
  export function defaultHandler(error, event, opts) {
11
11
  const isSensitive = error.unhandled;
12
12
  const status = error.status || 500;
13
- const url = getRequestURL(event, { xForwardedHost: true, xForwardedProto: true });
13
+ const url = event.url || new URL(event.req.url);
14
14
  if (status === 404) {
15
15
  const baseURL = import.meta.baseURL || "/";
16
16
  if (/^\/[^/]/.test(baseURL) && !url.pathname.startsWith(baseURL)) {
@@ -33,13 +33,9 @@ export function defaultHandler(error, event, opts) {
33
33
  }
34
34
  const headers = {
35
35
  "content-type": "application/json",
36
- // Prevent browser from guessing the MIME types of resources.
37
36
  "x-content-type-options": "nosniff",
38
- // Prevent error page from being embedded in an iframe
39
37
  "x-frame-options": "DENY",
40
- // Prevent browsers from sending the Referer header
41
38
  "referrer-policy": "no-referrer",
42
- // Disable the execution of any js
43
39
  "content-security-policy": "script-src 'none'; frame-ancestors 'none';"
44
40
  };
45
41
  if (status === 404 || !event.res.headers.has("cache-control")) {
@@ -1,12 +1,12 @@
1
1
  import { defineHandler } from "h3";
2
- import { useNitroApp } from "./app.mjs";
2
+ import { useNitroHooks } from "./app.mjs";
3
3
  import { useRuntimeConfig } from "./runtime-config.mjs";
4
4
  export function defineRenderHandler(render) {
5
5
  const runtimeConfig = useRuntimeConfig();
6
6
  return defineHandler(async (event) => {
7
- const nitroApp = useNitroApp();
7
+ const nitroHooks = useNitroHooks();
8
8
  const ctx = { event, render, response: void 0 };
9
- await nitroApp.hooks.callHook("render:before", ctx);
9
+ await nitroHooks.callHook("render:before", ctx);
10
10
  if (!ctx.response) {
11
11
  if (event.url.pathname === `${runtimeConfig.app.baseURL}favicon.ico`) {
12
12
  event.res.headers.set("Content-Type", "image/x-icon");
@@ -21,7 +21,7 @@ export function defineRenderHandler(render) {
21
21
  return "No response returned from render handler: " + event.url.pathname;
22
22
  }
23
23
  }
24
- await nitroApp.hooks.callHook("render:response", ctx.response, ctx);
24
+ await nitroHooks.callHook("render:response", ctx.response, ctx);
25
25
  if (ctx.response.headers) {
26
26
  for (const [key, value] of Object.entries(ctx.response.headers)) {
27
27
  event.res.headers.set(key, value);
@@ -1,3 +1,31 @@
1
- import { H3 } from "h3";
2
- declare const _default: H3;
1
+ declare const _default: {
2
+ "~rou3": import("h3").RouterContext;
3
+ request(request: import("srvx").ServerRequest | URL | string, options?: RequestInit, context?: import("h3").H3EventContext): Response | Promise<Response>;
4
+ use(route: string, handler: import("h3").Middleware, opts?: import("h3").MiddlewareOptions): /*elided*/ any;
5
+ use(handler: import("h3").Middleware, opts?: import("h3").MiddlewareOptions): /*elided*/ any;
6
+ on(method: import("h3").HTTPMethod | Lowercase<import("h3").HTTPMethod> | "", route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
7
+ register(plugin: import("h3").H3Plugin): /*elided*/ any;
8
+ mount(base: string, input: import("srvx").FetchHandler | {
9
+ fetch: import("srvx").FetchHandler;
10
+ } | /*elided*/ any): /*elided*/ any;
11
+ all(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
12
+ get(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
13
+ post(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
14
+ put(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
15
+ delete(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
16
+ patch(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
17
+ head(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
18
+ options(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
19
+ connect(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
20
+ trace(route: string, handler: import("h3").HTTPHandler, opts?: import("h3").RouteOptions): /*elided*/ any;
21
+ readonly config: import("h3").H3Config;
22
+ "~middleware": import("h3").Middleware[];
23
+ "~routes": import("h3").H3Route[];
24
+ fetch(_request: import("srvx").ServerRequest): Response | Promise<Response>;
25
+ handler(event: import("h3").H3Event): unknown | Promise<unknown>;
26
+ "~request"(request: import("srvx").ServerRequest, context?: import("h3").H3EventContext): Response | Promise<Response>;
27
+ "~findRoute"(_event: import("h3").H3Event): import("h3").MatchedRoute<import("h3").H3Route> | void;
28
+ "~getMiddleware"(event: import("h3").H3Event, route: import("h3").MatchedRoute<import("h3").H3Route> | undefined): import("h3").Middleware[];
29
+ "~addRoute"(_route: import("h3").H3Route): void;
30
+ };
3
31
  export default _default;
@@ -1,9 +1,8 @@
1
1
  import type { Server as HttpServer } from "node:http";
2
- import type { NitroApp } from "nitro/types";
3
2
  export declare function getGracefulShutdownConfig(): {
4
3
  disabled: boolean;
5
4
  signals: string[];
6
5
  timeout: number;
7
6
  forceExit: boolean;
8
7
  };
9
- export declare function setupGracefulShutdown(listener: HttpServer, nitroApp: NitroApp): void;
8
+ export declare function setupGracefulShutdown(listener: HttpServer): void;
@@ -1,4 +1,5 @@
1
1
  import gracefulShutdown from "./lib/http-graceful-shutdown.mjs";
2
+ import { useNitroHooks } from "./app.mjs";
2
3
  export function getGracefulShutdownConfig() {
3
4
  return {
4
5
  disabled: !!process.env.NITRO_SHUTDOWN_DISABLED,
@@ -7,7 +8,7 @@ export function getGracefulShutdownConfig() {
7
8
  forceExit: !process.env.NITRO_SHUTDOWN_NO_FORCE_EXIT
8
9
  };
9
10
  }
10
- export function setupGracefulShutdown(listener, nitroApp) {
11
+ export function setupGracefulShutdown(listener) {
11
12
  const shutdownConfig = getGracefulShutdownConfig();
12
13
  if (shutdownConfig.disabled) {
13
14
  return;
@@ -22,7 +23,7 @@ export function setupGracefulShutdown(listener, nitroApp) {
22
23
  console.warn("Graceful shutdown timeout, force exiting...");
23
24
  resolve();
24
25
  }, shutdownConfig.timeout);
25
- nitroApp.hooks.callHook("close").catch((error) => {
26
+ Promise.resolve(useNitroHooks().callHook("close")).catch((error) => {
26
27
  console.error(error);
27
28
  }).finally(() => {
28
29
  clearTimeout(timeout);
@@ -1,6 +1,5 @@
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";
5
4
  export function defineTask(def) {
6
5
  if (typeof def.run !== "function") {
@@ -41,7 +40,7 @@ export async function runTask(name, {
41
40
  }
42
41
  }
43
42
  export function startScheduleRunner() {
44
- if (!scheduledTasks || scheduledTasks.length === 0 || isTest) {
43
+ if (!scheduledTasks || scheduledTasks.length === 0 || process.env.TEST) {
45
44
  return;
46
45
  }
47
46
  const payload = {