nitro 2.2.27 → 3.0.0

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 (306) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +11 -259
  3. package/dist/_chunks/app.mjs +19797 -0
  4. package/dist/_chunks/build.mjs +84 -0
  5. package/dist/_chunks/build2.mjs +318 -0
  6. package/dist/_chunks/build3.mjs +6452 -0
  7. package/dist/_chunks/detect-acorn.mjs +503 -0
  8. package/dist/_chunks/index.mjs +22242 -0
  9. package/dist/_chunks/index2.mjs +297 -0
  10. package/dist/_chunks/index3.mjs +1058 -0
  11. package/dist/_chunks/index4.mjs +1206 -0
  12. package/dist/_chunks/info.mjs +11157 -0
  13. package/dist/_chunks/json5.mjs +68 -0
  14. package/dist/_chunks/jsonc.mjs +51 -0
  15. package/dist/_chunks/pathe.M-eThtNZ.mjs +204 -0
  16. package/dist/_chunks/plugin.mjs +960 -0
  17. package/dist/_chunks/server.mjs +254 -0
  18. package/dist/_chunks/snapshot.mjs +284 -0
  19. package/dist/_chunks/toml.mjs +259 -0
  20. package/dist/_chunks/yaml.mjs +86 -0
  21. package/dist/cli/build.mjs +54 -0
  22. package/dist/cli/common.mjs +13 -0
  23. package/dist/cli/dev.mjs +95 -0
  24. package/dist/cli/index.d.mts +1 -0
  25. package/dist/cli/index.mjs +477 -0
  26. package/dist/cli/index2.mjs +17 -0
  27. package/dist/cli/list.mjs +34 -0
  28. package/dist/cli/prepare.mjs +24 -0
  29. package/dist/cli/run.mjs +60 -0
  30. package/dist/index.d.mts +52 -0
  31. package/dist/index.mjs +55 -0
  32. package/dist/node_modules/@poppinss/colors/build/index.js +169 -0
  33. package/dist/node_modules/@poppinss/colors/package.json +116 -0
  34. package/dist/node_modules/@poppinss/dumper/build/chunk-26HALFTP.js +602 -0
  35. package/dist/node_modules/@poppinss/dumper/build/formatters/console/main.js +441 -0
  36. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +717 -0
  37. package/dist/node_modules/@poppinss/dumper/package.json +122 -0
  38. package/dist/node_modules/@poppinss/exception/build/index.js +63 -0
  39. package/dist/node_modules/@poppinss/exception/package.json +106 -0
  40. package/dist/node_modules/@sindresorhus/is/distribution/index.js +1313 -0
  41. package/dist/node_modules/@sindresorhus/is/distribution/utilities.js +3 -0
  42. package/dist/node_modules/@sindresorhus/is/package.json +81 -0
  43. package/dist/node_modules/@speed-highlight/core/dist/index.js +4 -0
  44. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -0
  45. package/dist/node_modules/@speed-highlight/core/package.json +90 -0
  46. package/dist/node_modules/cookie/dist/index.js +239 -0
  47. package/dist/node_modules/cookie/package.json +42 -0
  48. package/dist/node_modules/croner/dist/croner.js +1 -0
  49. package/dist/node_modules/croner/package.json +63 -0
  50. package/dist/node_modules/defu/dist/defu.mjs +69 -0
  51. package/dist/node_modules/defu/package.json +43 -0
  52. package/dist/node_modules/destr/dist/index.mjs +72 -0
  53. package/dist/node_modules/destr/package.json +47 -0
  54. package/dist/node_modules/error-stack-parser-es/dist/index.mjs +38 -0
  55. package/dist/node_modules/error-stack-parser-es/dist/lite.mjs +167 -0
  56. package/dist/node_modules/error-stack-parser-es/package.json +83 -0
  57. package/dist/node_modules/get-port-please/dist/index.mjs +430 -0
  58. package/dist/node_modules/get-port-please/package.json +39 -0
  59. package/dist/node_modules/hookable/dist/index.mjs +290 -0
  60. package/dist/node_modules/hookable/package.json +49 -0
  61. package/dist/node_modules/kleur/index.js +110 -0
  62. package/dist/node_modules/kleur/index.mjs +110 -0
  63. package/dist/node_modules/kleur/package.json +51 -0
  64. package/dist/node_modules/klona/dist/index.mjs +81 -0
  65. package/dist/node_modules/klona/full/index.mjs +53 -0
  66. package/dist/node_modules/klona/package.json +74 -0
  67. package/dist/node_modules/scule/dist/index.mjs +80 -0
  68. package/dist/node_modules/scule/package.json +43 -0
  69. package/dist/node_modules/source-map/lib/array-set.js +100 -0
  70. package/dist/node_modules/source-map/lib/base64-vlq.js +94 -0
  71. package/dist/node_modules/source-map/lib/base64.js +19 -0
  72. package/dist/node_modules/source-map/lib/binary-search.js +113 -0
  73. package/dist/node_modules/source-map/lib/mapping-list.js +83 -0
  74. package/dist/node_modules/source-map/lib/mappings.wasm +0 -0
  75. package/dist/node_modules/source-map/lib/read-wasm.js +27 -0
  76. package/dist/node_modules/source-map/lib/source-map-consumer.js +1081 -0
  77. package/dist/node_modules/source-map/lib/source-map-generator.js +439 -0
  78. package/dist/node_modules/source-map/lib/source-node.js +430 -0
  79. package/dist/node_modules/source-map/lib/url.js +13 -0
  80. package/dist/node_modules/source-map/lib/util.js +444 -0
  81. package/dist/node_modules/source-map/lib/wasm.js +138 -0
  82. package/dist/node_modules/source-map/package.json +79 -0
  83. package/dist/node_modules/source-map/source-map.js +10 -0
  84. package/dist/node_modules/std-env/dist/index.mjs +1 -0
  85. package/dist/node_modules/std-env/package.json +46 -0
  86. package/dist/node_modules/supports-color/index.js +202 -0
  87. package/dist/node_modules/supports-color/package.json +64 -0
  88. package/dist/node_modules/ufo/dist/index.mjs +638 -0
  89. package/dist/node_modules/ufo/package.json +47 -0
  90. package/dist/node_modules/unctx/dist/index.mjs +131 -0
  91. package/dist/node_modules/unctx/package.json +67 -0
  92. package/dist/node_modules/youch/build/chunk-4L7RY2JA.js +42 -0
  93. package/dist/node_modules/youch/build/chunk-4XB2BYKC.js +85 -0
  94. package/dist/node_modules/youch/build/chunk-4YEN7HVQ.js +61 -0
  95. package/dist/node_modules/youch/build/chunk-EUJBVOYB.js +83 -0
  96. package/dist/node_modules/youch/build/chunk-HFSXRSKS.js +85 -0
  97. package/dist/node_modules/youch/build/chunk-JAN2TFI2.js +222 -0
  98. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +6 -0
  99. package/dist/node_modules/youch/build/chunk-PINJDICN.js +72 -0
  100. package/dist/node_modules/youch/build/chunk-PUHGL6HA.js +41 -0
  101. package/dist/node_modules/youch/build/chunk-VE4LENUR.js +45 -0
  102. package/dist/node_modules/youch/build/index.js +352 -0
  103. package/dist/node_modules/youch/build/public/error_cause/style.css +5 -0
  104. package/dist/node_modules/youch/build/public/error_info/script.js +13 -0
  105. package/dist/node_modules/youch/build/public/error_info/style.css +144 -0
  106. package/dist/node_modules/youch/build/public/error_stack/script.js +74 -0
  107. package/dist/node_modules/youch/build/public/error_stack/style.css +220 -0
  108. package/dist/node_modules/youch/build/public/error_stack_source/style.css +123 -0
  109. package/dist/node_modules/youch/build/public/header/script.js +16 -0
  110. package/dist/node_modules/youch/build/public/header/style.css +56 -0
  111. package/dist/node_modules/youch/build/public/layout/script.js +20 -0
  112. package/dist/node_modules/youch/build/public/layout/style.css +431 -0
  113. package/dist/node_modules/youch/package.json +133 -0
  114. package/dist/node_modules/youch-core/build/index.js +316 -0
  115. package/dist/node_modules/youch-core/package.json +124 -0
  116. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -0
  117. package/dist/presets/_nitro/runtime/nitro-dev.mjs +62 -0
  118. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +3 -0
  119. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +18 -0
  120. package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -0
  121. package/dist/presets/_nitro/runtime/service-worker.mjs +21 -0
  122. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -0
  123. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +13 -0
  124. package/dist/presets/aws-lambda/runtime/_utils.d.mts +18 -0
  125. package/dist/presets/aws-lambda/runtime/_utils.mjs +102 -0
  126. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +3 -0
  127. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +33 -0
  128. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +3 -0
  129. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +13 -0
  130. package/dist/presets/azure/runtime/_utils.d.mts +2 -0
  131. package/dist/presets/azure/runtime/_utils.mjs +50 -0
  132. package/dist/presets/azure/runtime/azure-swa.d.mts +5 -0
  133. package/dist/presets/azure/runtime/azure-swa.mjs +28 -0
  134. package/dist/presets/bun/runtime/bun.d.mts +1 -0
  135. package/dist/presets/bun/runtime/bun.mjs +27 -0
  136. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +13 -0
  137. package/dist/presets/cloudflare/runtime/_module-handler.mjs +93 -0
  138. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +19 -0
  139. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +74 -0
  140. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +9 -0
  141. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +20 -0
  142. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +20 -0
  143. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +47 -0
  144. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +3 -0
  145. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -0
  146. package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -0
  147. package/dist/presets/deno/runtime/deno-deploy.mjs +17 -0
  148. package/dist/presets/deno/runtime/deno-server.d.mts +6 -0
  149. package/dist/presets/deno/runtime/deno-server.mjs +59 -0
  150. package/dist/presets/netlify/runtime/netlify-edge.d.mts +3 -0
  151. package/dist/presets/netlify/runtime/netlify-edge.mjs +17 -0
  152. package/dist/presets/netlify/runtime/netlify.d.mts +3 -0
  153. package/dist/presets/netlify/runtime/netlify.mjs +24 -0
  154. package/dist/presets/node/runtime/node-cluster.d.mts +1 -0
  155. package/dist/presets/node/runtime/node-cluster.mjs +58 -0
  156. package/dist/presets/node/runtime/node-middleware.d.mts +4 -0
  157. package/dist/presets/node/runtime/node-middleware.mjs +14 -0
  158. package/dist/presets/node/runtime/node-server.d.mts +3 -0
  159. package/dist/presets/node/runtime/node-server.mjs +44 -0
  160. package/dist/presets/standard/runtime/server.d.mts +5 -0
  161. package/dist/presets/standard/runtime/server.mjs +6 -0
  162. package/dist/presets/stormkit/runtime/stormkit.d.mts +21 -0
  163. package/dist/presets/stormkit/runtime/stormkit.mjs +28 -0
  164. package/dist/presets/vercel/runtime/vercel.d.mts +8 -0
  165. package/dist/presets/vercel/runtime/vercel.mjs +17 -0
  166. package/dist/presets/winterjs/runtime/winterjs.d.mts +1 -0
  167. package/dist/presets/winterjs/runtime/winterjs.mjs +87 -0
  168. package/dist/presets/zeabur/runtime/zeabur.d.mts +3 -0
  169. package/dist/presets/zeabur/runtime/zeabur.mjs +4 -0
  170. package/dist/presets.mjs +2460 -0
  171. package/dist/runtime/index.d.mts +11 -0
  172. package/dist/runtime/index.mjs +17 -0
  173. package/dist/runtime/internal/app.d.mts +2 -0
  174. package/dist/runtime/internal/app.mjs +153 -0
  175. package/dist/runtime/internal/cache.d.mts +7 -0
  176. package/dist/runtime/internal/cache.mjs +236 -0
  177. package/dist/runtime/internal/context.d.mts +12 -0
  178. package/dist/runtime/internal/context.mjs +17 -0
  179. package/dist/runtime/internal/database.d.mts +2 -0
  180. package/dist/runtime/internal/database.mjs +14 -0
  181. package/dist/runtime/internal/debug.d.mts +2 -0
  182. package/dist/runtime/internal/debug.mjs +5 -0
  183. package/dist/runtime/internal/empty.d.mts +0 -0
  184. package/dist/runtime/internal/empty.mjs +0 -0
  185. package/dist/runtime/internal/error/dev.d.mts +9 -0
  186. package/dist/runtime/internal/error/dev.mjs +122 -0
  187. package/dist/runtime/internal/error/prod.d.mts +8 -0
  188. package/dist/runtime/internal/error/prod.mjs +62 -0
  189. package/dist/runtime/internal/error/utils.d.mts +8 -0
  190. package/dist/runtime/internal/error/utils.mjs +3 -0
  191. package/dist/runtime/internal/index.d.mts +3 -0
  192. package/dist/runtime/internal/index.mjs +3 -0
  193. package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +16 -0
  194. package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +213 -0
  195. package/dist/runtime/internal/meta.d.mts +2 -0
  196. package/dist/runtime/internal/meta.mjs +3 -0
  197. package/dist/runtime/internal/plugin.d.mts +3 -0
  198. package/dist/runtime/internal/plugin.mjs +4 -0
  199. package/dist/runtime/internal/renderer.d.mts +3 -0
  200. package/dist/runtime/internal/renderer.mjs +36 -0
  201. package/dist/runtime/internal/route-rules.d.mts +8 -0
  202. package/dist/runtime/internal/route-rules.mjs +62 -0
  203. package/dist/runtime/internal/routes/dev-tasks.d.mts +3 -0
  204. package/dist/runtime/internal/routes/dev-tasks.mjs +23 -0
  205. package/dist/runtime/internal/routes/openapi.d.mts +3 -0
  206. package/dist/runtime/internal/routes/openapi.mjs +100 -0
  207. package/dist/runtime/internal/routes/renderer-template.d.mts +2 -0
  208. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +3 -0
  209. package/dist/runtime/internal/routes/renderer-template.dev.mjs +21 -0
  210. package/dist/runtime/internal/routes/renderer-template.mjs +4 -0
  211. package/dist/runtime/internal/routes/scalar.d.mts +3 -0
  212. package/dist/runtime/internal/routes/scalar.mjs +194 -0
  213. package/dist/runtime/internal/routes/swagger.d.mts +3 -0
  214. package/dist/runtime/internal/routes/swagger.mjs +44 -0
  215. package/dist/runtime/internal/runtime-config.d.mts +9 -0
  216. package/dist/runtime/internal/runtime-config.mjs +49 -0
  217. package/dist/runtime/internal/shutdown.d.mts +9 -0
  218. package/dist/runtime/internal/shutdown.mjs +34 -0
  219. package/dist/runtime/internal/static.d.mts +3 -0
  220. package/dist/runtime/internal/static.mjs +77 -0
  221. package/dist/runtime/internal/storage.d.mts +2 -0
  222. package/dist/runtime/internal/storage.mjs +6 -0
  223. package/dist/runtime/internal/task.d.mts +17 -0
  224. package/dist/runtime/internal/task.mjs +73 -0
  225. package/dist/runtime/internal/utils.d.mts +1 -0
  226. package/dist/runtime/internal/utils.mjs +15 -0
  227. package/dist/runtime/internal/vite/dev-entry.d.mts +1 -0
  228. package/dist/runtime/internal/vite/dev-entry.mjs +6 -0
  229. package/dist/runtime/internal/vite/dev-worker.d.mts +1 -0
  230. package/dist/runtime/internal/vite/dev-worker.mjs +362 -0
  231. package/dist/runtime/internal/vite/prod-setup.d.mts +4 -0
  232. package/dist/runtime/internal/vite/prod-setup.mjs +55 -0
  233. package/dist/runtime/internal/vite/ssr-renderer.d.mts +4 -0
  234. package/dist/runtime/internal/vite/ssr-renderer.mjs +4 -0
  235. package/dist/types/index.d.mts +2810 -0
  236. package/dist/types/index.mjs +1 -0
  237. package/dist/vite.d.mts +59 -0
  238. package/dist/vite.mjs +68 -0
  239. package/lib/config.d.mts +9 -0
  240. package/lib/config.mjs +5 -0
  241. package/lib/deps/h3.d.mts +1 -0
  242. package/lib/deps/h3.mjs +1 -0
  243. package/lib/deps/ofetch.mjs +1 -0
  244. package/lib/deps/ofetch.mts +1 -0
  245. package/lib/meta.d.mts +5 -0
  246. package/lib/meta.mjs +21 -0
  247. package/lib/runtime-meta.d.mts +5 -0
  248. package/lib/runtime-meta.mjs +38 -0
  249. package/package.json +170 -38
  250. package/.editorconfig +0 -12
  251. package/.eslintrc.js +0 -34
  252. package/.travis.yml +0 -7
  253. package/Dockerfile +0 -12
  254. package/Makefile +0 -37
  255. package/bin/nitro +0 -55
  256. package/lib/auto-require.js +0 -44
  257. package/lib/class-file.js +0 -105
  258. package/lib/class-files.js +0 -212
  259. package/lib/color.js +0 -89
  260. package/lib/cwd.js +0 -27
  261. package/lib/dir-expand.js +0 -80
  262. package/lib/dir.js +0 -130
  263. package/lib/file.js +0 -80
  264. package/lib/join-paths.js +0 -60
  265. package/lib/livereload/livereload.js +0 -55
  266. package/lib/livereload.js +0 -86
  267. package/lib/nitro.js +0 -161
  268. package/lib/package.js +0 -211
  269. package/lib/presets/autoprefixer.js +0 -11
  270. package/lib/presets/babel.js +0 -33
  271. package/lib/presets/browserify.js +0 -106
  272. package/lib/presets/coffee-script.js +0 -29
  273. package/lib/presets/cssnano.js +0 -11
  274. package/lib/presets/eslint.js +0 -67
  275. package/lib/presets/jshint.js +0 -51
  276. package/lib/presets/less.js +0 -45
  277. package/lib/presets/log.js +0 -11
  278. package/lib/presets/ng-annotate.js +0 -34
  279. package/lib/presets/noop.js +0 -7
  280. package/lib/presets/postcss/auto-postcss.js +0 -46
  281. package/lib/presets/postcss/autoprefixer-options.js +0 -9
  282. package/lib/presets/postcss.js +0 -40
  283. package/lib/presets/rollup.js +0 -56
  284. package/lib/presets/sass.js +0 -64
  285. package/lib/presets/sitemap.js +0 -101
  286. package/lib/presets/sitemap.xml +0 -12
  287. package/lib/presets/svg-symbols.js +0 -22
  288. package/lib/presets/svgo.js +0 -21
  289. package/lib/presets/uglify.js +0 -72
  290. package/lib/presets/webpack.js +0 -66
  291. package/lib/processors.js +0 -84
  292. package/lib/promisify.js +0 -16
  293. package/lib/server.js +0 -224
  294. package/lib/tasks.js +0 -114
  295. package/lib/watch.js +0 -81
  296. package/test.js +0 -59
  297. package/tests/cwd-tests.js +0 -25
  298. package/tests/dir-tests.js +0 -80
  299. package/tests/dummy/dummy.coffee +0 -7
  300. package/tests/dummy/dummy.js +0 -8
  301. package/tests/dummy/dummy.less +0 -6
  302. package/tests/dummy/dummy.sass +0 -5
  303. package/tests/file-tests.js +0 -17
  304. package/tests/join-paths-tests.js +0 -86
  305. package/tests/tasks-tests.js +0 -65
  306. package/wercker.yml +0 -25
@@ -0,0 +1,17 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
3
+ import { isPublicAssetURL } from "#nitro-internal-virtual/public-assets";
4
+ const nitroApp = useNitroApp();
5
+ export default async function netlifyEdge(netlifyReq, context) {
6
+ const req = netlifyReq;
7
+ req.runtime ??= { name: "netlify-edge" };
8
+ req.runtime.netlify ??= { context };
9
+ const url = new URL(req.url);
10
+ if (isPublicAssetURL(url.pathname)) {
11
+ return;
12
+ }
13
+ if (!req.headers.has("x-forwarded-proto") && url.protocol === "https:") {
14
+ req.headers.set("x-forwarded-proto", "https");
15
+ }
16
+ return nitroApp.fetch(req);
17
+ }
@@ -0,0 +1,3 @@
1
+ import "#nitro-internal-pollyfills";
2
+ declare const handler: (req: Request) => Promise<Response>;
3
+ export default handler;
@@ -0,0 +1,24 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
3
+ const nitroApp = useNitroApp();
4
+ const ONE_YEAR_IN_SECONDS = 365 * 24 * 60 * 60;
5
+ const handler = async (req) => {
6
+ const response = await nitroApp.fetch(req);
7
+ const isr = (req.context?.routeRules || {})?.isr?.options;
8
+ if (isr) {
9
+ const maxAge = typeof isr === "number" ? isr : ONE_YEAR_IN_SECONDS;
10
+ const revalidateDirective = typeof isr === "number" ? `stale-while-revalidate=${ONE_YEAR_IN_SECONDS}` : "must-revalidate";
11
+ if (!response.headers.has("Cache-Control")) {
12
+ response.headers.set(
13
+ "Cache-Control",
14
+ "public, max-age=0, must-revalidate"
15
+ );
16
+ }
17
+ response.headers.set(
18
+ "Netlify-CDN-Cache-Control",
19
+ `public, max-age=${maxAge}, ${revalidateDirective}, durable`
20
+ );
21
+ }
22
+ return response;
23
+ };
24
+ export default handler;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ import cluster from "node:cluster";
2
+ import os from "node:os";
3
+ import {
4
+ getGracefulShutdownConfig,
5
+ trapUnhandledNodeErrors
6
+ } from "nitro/runtime/internal";
7
+ function runMaster() {
8
+ const numberOfWorkers = Number.parseInt(process.env.NITRO_CLUSTER_WORKERS || "") || (os.cpus().length > 0 ? os.cpus().length : 1);
9
+ for (let i = 0; i < numberOfWorkers; i++) {
10
+ cluster.fork();
11
+ }
12
+ let isShuttingDown = false;
13
+ cluster.on("exit", () => {
14
+ if (!isShuttingDown) {
15
+ cluster.fork();
16
+ }
17
+ });
18
+ const shutdownConfig = getGracefulShutdownConfig();
19
+ if (!shutdownConfig.disabled) {
20
+ async function onShutdown() {
21
+ if (isShuttingDown) {
22
+ return;
23
+ }
24
+ isShuttingDown = true;
25
+ await new Promise((resolve) => {
26
+ const timeout = setTimeout(() => {
27
+ console.warn("Timeout reached for graceful shutdown. Forcing exit.");
28
+ resolve();
29
+ }, shutdownConfig.timeout);
30
+ cluster.on("exit", () => {
31
+ if (Object.values(cluster.workers || {}).every((w) => !w || w.isDead())) {
32
+ clearTimeout(timeout);
33
+ resolve();
34
+ } else {
35
+ }
36
+ });
37
+ });
38
+ if (shutdownConfig.forceExit) {
39
+ process.exit(0);
40
+ }
41
+ }
42
+ for (const signal of shutdownConfig.signals) {
43
+ process.once(signal, onShutdown);
44
+ }
45
+ }
46
+ }
47
+ function runWorker() {
48
+ import("./node-server.mjs").catch((error) => {
49
+ console.error(error);
50
+ process.exit(1);
51
+ });
52
+ }
53
+ trapUnhandledNodeErrors();
54
+ if (cluster.isPrimary) {
55
+ runMaster();
56
+ } else {
57
+ runWorker();
58
+ }
@@ -0,0 +1,4 @@
1
+ import "#nitro-internal-pollyfills";
2
+ export declare const middleware: any;
3
+ /** @experimental */
4
+ export declare const websocket: undefined;
@@ -0,0 +1,14 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { toNodeHandler } from "srvx/node";
3
+ import { useNitroApp } from "nitro/runtime";
4
+ import {
5
+ startScheduleRunner,
6
+ trapUnhandledNodeErrors
7
+ } from "nitro/runtime/internal";
8
+ const nitroApp = useNitroApp();
9
+ export const middleware = toNodeHandler(nitroApp.fetch);
10
+ export const websocket = import.meta._websocket ? void 0 : void 0;
11
+ trapUnhandledNodeErrors();
12
+ if (import.meta._tasks) {
13
+ startScheduleRunner();
14
+ }
@@ -0,0 +1,3 @@
1
+ import "#nitro-internal-pollyfills";
2
+ declare const _default: {};
3
+ export default _default;
@@ -0,0 +1,44 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { Server as HttpServer } from "node:http";
3
+ import { Server as HttpsServer } from "node:https";
4
+ import wsAdapter from "crossws/adapters/node";
5
+ import destr from "destr";
6
+ import { toNodeHandler } from "srvx/node";
7
+ import { useNitroApp, useRuntimeConfig } from "nitro/runtime";
8
+ import {
9
+ setupGracefulShutdown,
10
+ startScheduleRunner,
11
+ trapUnhandledNodeErrors
12
+ } from "nitro/runtime/internal";
13
+ const cert = process.env.NITRO_SSL_CERT;
14
+ const key = process.env.NITRO_SSL_KEY;
15
+ const nitroApp = useNitroApp();
16
+ const server = cert && key ? new HttpsServer({ key, cert }, toNodeHandler(nitroApp.fetch)) : new HttpServer(toNodeHandler(nitroApp.fetch));
17
+ const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3e3;
18
+ const host = process.env.NITRO_HOST || process.env.HOST;
19
+ const path = process.env.NITRO_UNIX_SOCKET;
20
+ const listener = server.listen(path ? { path } : { port, host }, (err) => {
21
+ if (err) {
22
+ console.error(err);
23
+ process.exit(1);
24
+ }
25
+ const protocol = cert && key ? "https" : "http";
26
+ const addressInfo = listener.address();
27
+ if (typeof addressInfo === "string") {
28
+ console.log(`Listening on unix socket ${addressInfo}`);
29
+ return;
30
+ }
31
+ const baseURL = (useRuntimeConfig().app.baseURL || "").replace(/\/$/, "");
32
+ const url = `${protocol}://${addressInfo.family === "IPv6" ? `[${addressInfo.address}]` : addressInfo.address}:${addressInfo.port}${baseURL}`;
33
+ console.log(`Listening on ${url}`);
34
+ });
35
+ trapUnhandledNodeErrors();
36
+ setupGracefulShutdown(listener, nitroApp);
37
+ if (import.meta._websocket) {
38
+ const { handleUpgrade } = wsAdapter(nitroApp.h3App.websocket);
39
+ server.on("upgrade", handleUpgrade);
40
+ }
41
+ if (import.meta._tasks) {
42
+ startScheduleRunner();
43
+ }
44
+ export default {};
@@ -0,0 +1,5 @@
1
+ import "#nitro-internal-pollyfills";
2
+ declare const _default: {
3
+ fetch: any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
3
+ const nitroApp = useNitroApp();
4
+ export default {
5
+ fetch: nitroApp.fetch
6
+ };
@@ -0,0 +1,21 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import type { Handler } from "aws-lambda";
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>;
11
+ };
12
+ type StormkitResponse = {
13
+ headers?: Record<string, string>;
14
+ body?: string;
15
+ buffer?: string;
16
+ statusCode: number;
17
+ errorMessage?: string;
18
+ errorStack?: string;
19
+ };
20
+ export declare const handler: Handler<StormkitEvent, StormkitResponse>;
21
+ export {};
@@ -0,0 +1,28 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
3
+ import { awsResponseBody } from "../../aws-lambda/runtime/_utils.mjs";
4
+ const nitroApp = useNitroApp();
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
+ };
20
+ };
21
+ 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
+ );
28
+ }
@@ -0,0 +1,8 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import type { ServerRequest } from "srvx";
3
+ declare const _default: {
4
+ fetch(req: ServerRequest, context: {
5
+ waitUntil: (promise: Promise<any>) => void;
6
+ }): any;
7
+ };
8
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
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
+ };
@@ -0,0 +1 @@
1
+ import "#nitro-internal-pollyfills";
@@ -0,0 +1,87 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { useNitroApp } from "nitro/runtime";
3
+ import { hasProtocol, joinURL } from "ufo";
4
+ const nitroApp = useNitroApp();
5
+ const _handler = toPlainHandler(nitroApp.h3App);
6
+ 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
+ }
33
+ }
34
+ addEventListener("fetch", async (event) => {
35
+ event.respondWith(await _handleEvent(event));
36
+ });
37
+ 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
+ });
54
+ }
55
+ if (!Headers.prototype.entries) {
56
+ Headers.prototype.entries = function() {
57
+ return [...this];
58
+ };
59
+ }
60
+ if (!URL.prototype.pathname) {
61
+ Object.defineProperty(URL.prototype, "pathname", {
62
+ get() {
63
+ return this.path || "/";
64
+ }
65
+ });
66
+ }
67
+ 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
+ }
76
+ };
77
+ 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
+ }
87
+ };
@@ -0,0 +1,3 @@
1
+ import "#nitro-internal-pollyfills";
2
+ declare const _default: any;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import "#nitro-internal-pollyfills";
2
+ import { toNodeHandler } from "srvx/node";
3
+ import { useNitroApp } from "nitro/runtime";
4
+ export default toNodeHandler(useNitroApp().fetch);