nitro-nightly 3.0.0-beta-28969273.f7aa9de6 → 4.0.0-20251010-091516-7cafddba

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 (417) hide show
  1. package/README.md +8 -39
  2. package/dist/_chunks/app.mjs +19797 -0
  3. package/dist/_chunks/build.mjs +84 -0
  4. package/dist/_chunks/build2.mjs +318 -0
  5. package/dist/_chunks/build3.mjs +6452 -0
  6. package/dist/_chunks/detect-acorn.mjs +503 -0
  7. package/dist/_chunks/index.mjs +22242 -0
  8. package/dist/_chunks/index2.mjs +297 -0
  9. package/dist/_chunks/index3.mjs +1058 -0
  10. package/dist/_chunks/index4.mjs +1206 -0
  11. package/dist/_chunks/info.mjs +11157 -0
  12. package/dist/_chunks/json5.mjs +68 -0
  13. package/dist/_chunks/jsonc.mjs +51 -0
  14. package/dist/_chunks/pathe.M-eThtNZ.mjs +204 -0
  15. package/dist/_chunks/plugin.mjs +960 -0
  16. package/dist/_chunks/server.mjs +254 -0
  17. package/dist/_chunks/snapshot.mjs +284 -0
  18. package/dist/_chunks/toml.mjs +259 -0
  19. package/dist/_chunks/yaml.mjs +86 -0
  20. package/dist/cli/build.mjs +10 -3
  21. package/dist/cli/dev.mjs +41 -9
  22. package/dist/cli/index.mjs +460 -1
  23. package/dist/cli/index2.mjs +4 -1
  24. package/dist/cli/list.mjs +10 -4
  25. package/dist/cli/prepare.mjs +6 -3
  26. package/dist/cli/run.mjs +7 -4
  27. package/dist/index.d.mts +52 -0
  28. package/dist/index.mjs +55 -0
  29. package/dist/node_modules/@poppinss/colors/build/index.js +169 -0
  30. package/dist/node_modules/@poppinss/colors/package.json +116 -0
  31. package/dist/node_modules/@poppinss/dumper/build/chunk-26HALFTP.js +602 -0
  32. package/dist/node_modules/@poppinss/dumper/build/formatters/console/main.js +441 -0
  33. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +717 -0
  34. package/dist/node_modules/@poppinss/dumper/package.json +122 -0
  35. package/dist/node_modules/@poppinss/exception/build/index.js +63 -0
  36. package/dist/node_modules/@poppinss/exception/package.json +106 -0
  37. package/dist/node_modules/@sindresorhus/is/distribution/index.js +1313 -0
  38. package/dist/node_modules/@sindresorhus/is/distribution/utilities.js +3 -0
  39. package/dist/node_modules/@sindresorhus/is/package.json +81 -0
  40. package/dist/node_modules/@speed-highlight/core/dist/index.js +4 -0
  41. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -0
  42. package/dist/node_modules/@speed-highlight/core/package.json +90 -0
  43. package/dist/node_modules/cookie/dist/index.js +239 -0
  44. package/dist/node_modules/cookie/package.json +42 -0
  45. package/dist/node_modules/croner/dist/croner.js +1 -0
  46. package/dist/node_modules/croner/package.json +63 -0
  47. package/dist/node_modules/defu/dist/defu.mjs +69 -0
  48. package/dist/node_modules/defu/package.json +43 -0
  49. package/dist/node_modules/destr/dist/index.mjs +72 -0
  50. package/dist/node_modules/destr/package.json +47 -0
  51. package/dist/node_modules/error-stack-parser-es/dist/index.mjs +38 -0
  52. package/dist/node_modules/error-stack-parser-es/dist/lite.mjs +167 -0
  53. package/dist/node_modules/error-stack-parser-es/package.json +83 -0
  54. package/dist/node_modules/get-port-please/dist/index.mjs +430 -0
  55. package/dist/node_modules/get-port-please/package.json +39 -0
  56. package/dist/node_modules/hookable/dist/index.mjs +290 -0
  57. package/dist/node_modules/hookable/package.json +49 -0
  58. package/dist/node_modules/kleur/index.js +110 -0
  59. package/dist/node_modules/kleur/index.mjs +110 -0
  60. package/dist/node_modules/kleur/package.json +51 -0
  61. package/dist/node_modules/klona/dist/index.mjs +81 -0
  62. package/dist/node_modules/klona/full/index.mjs +53 -0
  63. package/dist/node_modules/klona/package.json +74 -0
  64. package/dist/node_modules/scule/dist/index.mjs +80 -0
  65. package/dist/node_modules/scule/package.json +43 -0
  66. package/dist/node_modules/source-map/lib/array-set.js +100 -0
  67. package/dist/node_modules/source-map/lib/base64-vlq.js +94 -0
  68. package/dist/node_modules/source-map/lib/base64.js +19 -0
  69. package/dist/node_modules/source-map/lib/binary-search.js +113 -0
  70. package/dist/node_modules/source-map/lib/mapping-list.js +83 -0
  71. package/dist/node_modules/source-map/lib/mappings.wasm +0 -0
  72. package/dist/node_modules/source-map/lib/read-wasm.js +27 -0
  73. package/dist/node_modules/source-map/lib/source-map-consumer.js +1081 -0
  74. package/dist/node_modules/source-map/lib/source-map-generator.js +439 -0
  75. package/dist/node_modules/source-map/lib/source-node.js +430 -0
  76. package/dist/node_modules/source-map/lib/url.js +13 -0
  77. package/dist/node_modules/source-map/lib/util.js +444 -0
  78. package/dist/node_modules/source-map/lib/wasm.js +138 -0
  79. package/dist/node_modules/source-map/package.json +79 -0
  80. package/dist/node_modules/source-map/source-map.js +10 -0
  81. package/dist/node_modules/std-env/dist/index.mjs +1 -0
  82. package/dist/node_modules/std-env/package.json +46 -0
  83. package/dist/node_modules/supports-color/index.js +202 -0
  84. package/dist/node_modules/supports-color/package.json +64 -0
  85. package/dist/node_modules/ufo/dist/index.mjs +638 -0
  86. package/dist/node_modules/ufo/package.json +47 -0
  87. package/dist/node_modules/unctx/dist/index.mjs +131 -0
  88. package/dist/node_modules/unctx/package.json +67 -0
  89. package/dist/node_modules/youch/build/chunk-4L7RY2JA.js +42 -0
  90. package/dist/node_modules/youch/build/chunk-4XB2BYKC.js +85 -0
  91. package/dist/node_modules/youch/build/chunk-4YEN7HVQ.js +61 -0
  92. package/dist/node_modules/youch/build/chunk-EUJBVOYB.js +83 -0
  93. package/dist/node_modules/youch/build/chunk-HFSXRSKS.js +85 -0
  94. package/dist/node_modules/youch/build/chunk-JAN2TFI2.js +222 -0
  95. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +6 -0
  96. package/dist/node_modules/youch/build/chunk-PINJDICN.js +72 -0
  97. package/dist/node_modules/youch/build/chunk-PUHGL6HA.js +41 -0
  98. package/dist/node_modules/youch/build/chunk-VE4LENUR.js +45 -0
  99. package/dist/node_modules/youch/build/index.js +352 -0
  100. package/dist/node_modules/youch/build/public/error_cause/style.css +5 -0
  101. package/dist/node_modules/youch/build/public/error_info/script.js +13 -0
  102. package/dist/node_modules/youch/build/public/error_info/style.css +144 -0
  103. package/dist/node_modules/youch/build/public/error_stack/script.js +74 -0
  104. package/dist/node_modules/youch/build/public/error_stack/style.css +220 -0
  105. package/dist/node_modules/youch/build/public/error_stack_source/style.css +123 -0
  106. package/dist/node_modules/youch/build/public/header/script.js +16 -0
  107. package/dist/node_modules/youch/build/public/header/style.css +56 -0
  108. package/dist/node_modules/youch/build/public/layout/script.js +20 -0
  109. package/dist/node_modules/youch/build/public/layout/style.css +431 -0
  110. package/dist/node_modules/youch/package.json +133 -0
  111. package/dist/node_modules/youch-core/build/index.js +316 -0
  112. package/dist/node_modules/youch-core/package.json +124 -0
  113. package/dist/presets/_nitro/runtime/nitro-dev.mjs +48 -73
  114. package/dist/presets/_nitro/runtime/{nitro-prerenderer.d.ts → nitro-prerenderer.d.mts} +1 -1
  115. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +12 -1
  116. package/dist/presets/_nitro/runtime/service-worker.mjs +5 -15
  117. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +2 -2
  118. package/dist/presets/aws-lambda/runtime/_utils.d.mts +18 -0
  119. package/dist/presets/aws-lambda/runtime/_utils.mjs +102 -0
  120. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +3 -0
  121. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +12 -32
  122. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +3 -0
  123. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +6 -38
  124. package/dist/{runtime/internal/utils.azure.d.ts → presets/azure/runtime/_utils.d.mts} +1 -1
  125. package/dist/{runtime/internal/utils.azure.mjs → presets/azure/runtime/_utils.mjs} +3 -4
  126. package/dist/presets/azure/runtime/azure-swa.mjs +11 -13
  127. package/dist/presets/bun/runtime/bun.mjs +13 -18
  128. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +13 -0
  129. package/dist/presets/cloudflare/runtime/_module-handler.mjs +93 -0
  130. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +19 -0
  131. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +74 -0
  132. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +9 -0
  133. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +13 -97
  134. package/dist/presets/cloudflare/runtime/{cloudflare-pages.d.ts → cloudflare-pages.d.mts} +1 -1
  135. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +19 -27
  136. package/dist/{runtime/internal/timing.d.ts → presets/cloudflare/runtime/plugin.dev.d.mts} +1 -0
  137. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +89 -0
  138. package/dist/presets/deno/runtime/deno-deploy.mjs +11 -25
  139. package/dist/presets/deno/runtime/deno-server.d.mts +6 -0
  140. package/dist/presets/deno/runtime/deno-server.mjs +15 -21
  141. package/dist/presets/netlify/runtime/netlify-edge.d.mts +3 -0
  142. package/dist/presets/netlify/runtime/netlify-edge.mjs +8 -16
  143. package/dist/presets/netlify/runtime/netlify.mjs +16 -45
  144. package/dist/presets/node/runtime/{cluster.mjs → node-cluster.mjs} +1 -3
  145. package/dist/presets/node/runtime/node-middleware.d.mts +4 -0
  146. package/dist/presets/node/runtime/{node-listener.mjs → node-middleware.mjs} +3 -4
  147. package/dist/presets/node/runtime/node-server.mjs +3 -4
  148. package/dist/presets/standard/runtime/server.d.mts +5 -0
  149. package/dist/presets/standard/runtime/server.mjs +6 -0
  150. package/dist/presets/stormkit/runtime/stormkit.mjs +8 -12
  151. package/dist/presets/vercel/runtime/vercel.d.mts +8 -0
  152. package/dist/presets/vercel/runtime/vercel.mjs +11 -11
  153. package/dist/presets/winterjs/runtime/winterjs.mjs +22 -4
  154. package/dist/presets/{node/runtime/node-server.d.ts → zeabur/runtime/zeabur.d.mts} +1 -1
  155. package/dist/presets/zeabur/runtime/zeabur.mjs +2 -6
  156. package/dist/presets.mjs +2460 -0
  157. package/dist/runtime/index.d.mts +11 -0
  158. package/dist/runtime/index.mjs +8 -8
  159. package/dist/runtime/internal/app.d.mts +2 -0
  160. package/dist/runtime/internal/app.mjs +129 -128
  161. package/dist/runtime/internal/cache.d.mts +7 -0
  162. package/dist/runtime/internal/cache.mjs +82 -175
  163. package/dist/runtime/internal/{context.d.ts → context.d.mts} +3 -3
  164. package/dist/runtime/internal/context.mjs +6 -6
  165. package/dist/runtime/internal/error/dev.d.mts +9 -0
  166. package/dist/runtime/internal/error/dev.mjs +122 -0
  167. package/dist/runtime/internal/error/prod.d.mts +8 -0
  168. package/dist/runtime/internal/error/prod.mjs +62 -0
  169. package/dist/runtime/internal/error/utils.d.mts +8 -0
  170. package/dist/runtime/internal/error/utils.mjs +3 -0
  171. package/dist/runtime/internal/index.d.mts +3 -0
  172. package/dist/runtime/internal/index.mjs +1 -14
  173. package/dist/runtime/internal/renderer.d.mts +3 -0
  174. package/dist/runtime/internal/renderer.mjs +29 -33
  175. package/dist/runtime/internal/route-rules.d.mts +8 -0
  176. package/dist/runtime/internal/route-rules.mjs +58 -63
  177. package/dist/runtime/internal/routes/dev-tasks.d.mts +3 -0
  178. package/dist/runtime/internal/routes/dev-tasks.mjs +23 -0
  179. package/dist/runtime/internal/routes/openapi.d.mts +3 -0
  180. package/dist/runtime/internal/routes/openapi.mjs +24 -9
  181. package/dist/runtime/internal/routes/renderer-template.d.mts +2 -0
  182. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +3 -0
  183. package/dist/runtime/internal/routes/renderer-template.dev.mjs +21 -0
  184. package/dist/runtime/internal/routes/renderer-template.mjs +4 -0
  185. package/dist/runtime/internal/routes/scalar.d.mts +3 -0
  186. package/dist/runtime/internal/routes/scalar.mjs +7 -4
  187. package/dist/runtime/internal/routes/swagger.d.mts +3 -0
  188. package/dist/runtime/internal/routes/swagger.mjs +5 -4
  189. package/dist/runtime/internal/{utils.env.d.ts → runtime-config.d.mts} +4 -2
  190. package/dist/runtime/internal/{utils.env.mjs → runtime-config.mjs} +16 -6
  191. package/dist/runtime/internal/static.d.mts +3 -0
  192. package/dist/runtime/internal/static.mjs +24 -36
  193. package/dist/runtime/internal/storage.mjs +2 -1
  194. package/dist/runtime/internal/task.mjs +6 -6
  195. package/dist/runtime/internal/utils.d.mts +1 -0
  196. package/dist/runtime/internal/utils.mjs +1 -116
  197. package/dist/runtime/internal/vite/dev-entry.d.mts +1 -0
  198. package/dist/runtime/internal/vite/dev-entry.mjs +6 -0
  199. package/dist/runtime/internal/vite/dev-worker.mjs +362 -0
  200. package/dist/runtime/internal/vite/prod-setup.d.mts +4 -0
  201. package/dist/runtime/internal/vite/prod-setup.mjs +55 -0
  202. package/dist/runtime/internal/vite/ssr-renderer.d.mts +4 -0
  203. package/dist/runtime/internal/vite/ssr-renderer.mjs +4 -0
  204. package/dist/types/index.d.mts +2688 -138
  205. package/dist/vite.d.mts +59 -0
  206. package/dist/vite.mjs +68 -0
  207. package/lib/config.d.mts +9 -0
  208. package/lib/deps/h3.d.mts +1 -0
  209. package/lib/deps/h3.mjs +1 -0
  210. package/lib/deps/ofetch.mjs +1 -0
  211. package/lib/deps/ofetch.mts +1 -0
  212. package/lib/meta.d.mts +5 -0
  213. package/lib/meta.mjs +21 -0
  214. package/{runtime-meta.d.ts → lib/runtime-meta.d.mts} +1 -0
  215. package/{runtime-meta.mjs → lib/runtime-meta.mjs} +12 -4
  216. package/package.json +142 -160
  217. package/cli.d.ts +0 -1
  218. package/config.d.ts +0 -1
  219. package/core.d.ts +0 -1
  220. package/dist/cli/index.d.ts +0 -1
  221. package/dist/config/index.d.mts +0 -6
  222. package/dist/config/index.d.ts +0 -6
  223. package/dist/core/index.d.mts +0 -30
  224. package/dist/core/index.d.ts +0 -30
  225. package/dist/core/index.mjs +0 -2456
  226. package/dist/kit/index.d.mts +0 -44
  227. package/dist/kit/index.d.ts +0 -44
  228. package/dist/kit/index.mjs +0 -71
  229. package/dist/meta/index.d.mts +0 -3
  230. package/dist/meta/index.d.ts +0 -3
  231. package/dist/meta/index.mjs +0 -3
  232. package/dist/presets/_all.gen.d.ts +0 -2
  233. package/dist/presets/_all.gen.mjs +0 -52
  234. package/dist/presets/_nitro/base-worker.d.ts +0 -2
  235. package/dist/presets/_nitro/base-worker.mjs +0 -25
  236. package/dist/presets/_nitro/nitro-dev.d.ts +0 -2
  237. package/dist/presets/_nitro/nitro-dev.mjs +0 -19
  238. package/dist/presets/_nitro/nitro-prerender.d.ts +0 -2
  239. package/dist/presets/_nitro/nitro-prerender.mjs +0 -17
  240. package/dist/presets/_nitro/preset.d.ts +0 -2
  241. package/dist/presets/_nitro/preset.mjs +0 -5
  242. package/dist/presets/_nitro/service-worker.d.ts +0 -2
  243. package/dist/presets/_nitro/service-worker.mjs +0 -110
  244. package/dist/presets/_resolve.d.ts +0 -8
  245. package/dist/presets/_resolve.mjs +0 -44
  246. package/dist/presets/_static/preset.d.ts +0 -2
  247. package/dist/presets/_static/preset.mjs +0 -69
  248. package/dist/presets/_types.gen.d.ts +0 -16
  249. package/dist/presets/alwaysdata/preset.d.ts +0 -2
  250. package/dist/presets/alwaysdata/preset.mjs +0 -14
  251. package/dist/presets/aws-amplify/preset.d.ts +0 -3
  252. package/dist/presets/aws-amplify/preset.mjs +0 -27
  253. package/dist/presets/aws-amplify/types.d.ts +0 -141
  254. package/dist/presets/aws-amplify/utils.d.ts +0 -2
  255. package/dist/presets/aws-amplify/utils.mjs +0 -82
  256. package/dist/presets/aws-lambda/preset.d.ts +0 -2
  257. package/dist/presets/aws-lambda/preset.mjs +0 -21
  258. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.ts +0 -14
  259. package/dist/presets/aws-lambda/runtime/aws-lambda.d.ts +0 -4
  260. package/dist/presets/azure/preset.d.ts +0 -3
  261. package/dist/presets/azure/preset.mjs +0 -44
  262. package/dist/presets/azure/runtime/azure-functions.mjs +0 -24
  263. package/dist/presets/azure/runtime/azure-swa.d.ts +0 -5
  264. package/dist/presets/azure/types.d.ts +0 -13
  265. package/dist/presets/azure/types.mjs +0 -0
  266. package/dist/presets/azure/utils.d.ts +0 -3
  267. package/dist/presets/azure/utils.mjs +0 -183
  268. package/dist/presets/bun/preset.d.ts +0 -2
  269. package/dist/presets/bun/preset.mjs +0 -17
  270. package/dist/presets/cleavr/preset.d.ts +0 -2
  271. package/dist/presets/cleavr/preset.mjs +0 -12
  272. package/dist/presets/cloudflare/preset.d.ts +0 -3
  273. package/dist/presets/cloudflare/preset.mjs +0 -145
  274. package/dist/presets/cloudflare/runtime/cloudflare-module.d.ts +0 -13
  275. package/dist/presets/cloudflare/runtime/cloudflare-worker.mjs +0 -64
  276. package/dist/presets/cloudflare/types.d.ts +0 -89
  277. package/dist/presets/cloudflare/types.mjs +0 -0
  278. package/dist/presets/cloudflare/types.wrangler.d.ts +0 -974
  279. package/dist/presets/cloudflare/types.wrangler.mjs +0 -0
  280. package/dist/presets/cloudflare/utils.d.ts +0 -3
  281. package/dist/presets/cloudflare/utils.mjs +0 -163
  282. package/dist/presets/deno/preset.d.ts +0 -2
  283. package/dist/presets/deno/preset.mjs +0 -148
  284. package/dist/presets/deno/runtime/_deno-env-polyfill.d.ts +0 -0
  285. package/dist/presets/deno/runtime/_deno-env-polyfill.mjs +0 -1
  286. package/dist/presets/digitalocean/preset.d.ts +0 -2
  287. package/dist/presets/digitalocean/preset.mjs +0 -11
  288. package/dist/presets/edgio/preset.d.ts +0 -2
  289. package/dist/presets/edgio/preset.mjs +0 -95
  290. package/dist/presets/firebase/preset.d.ts +0 -3
  291. package/dist/presets/firebase/preset.mjs +0 -50
  292. package/dist/presets/firebase/runtime/firebase-gen-1.d.ts +0 -2
  293. package/dist/presets/firebase/runtime/firebase-gen-1.mjs +0 -7
  294. package/dist/presets/firebase/runtime/firebase-gen-2.d.ts +0 -2
  295. package/dist/presets/firebase/runtime/firebase-gen-2.mjs +0 -14
  296. package/dist/presets/firebase/runtime/firebase-gen-default.d.ts +0 -1
  297. package/dist/presets/firebase/runtime/firebase-gen-default.mjs +0 -1
  298. package/dist/presets/firebase/types.d.ts +0 -38
  299. package/dist/presets/firebase/types.mjs +0 -0
  300. package/dist/presets/firebase/utils.d.ts +0 -3
  301. package/dist/presets/firebase/utils.mjs +0 -50
  302. package/dist/presets/flightcontrol/preset.d.ts +0 -2
  303. package/dist/presets/flightcontrol/preset.mjs +0 -11
  304. package/dist/presets/heroku/preset.d.ts +0 -2
  305. package/dist/presets/heroku/preset.mjs +0 -11
  306. package/dist/presets/iis/preset.d.ts +0 -2
  307. package/dist/presets/iis/preset.mjs +0 -32
  308. package/dist/presets/iis/utils.d.ts +0 -3
  309. package/dist/presets/iis/utils.mjs +0 -161
  310. package/dist/presets/index.d.mts +0 -1
  311. package/dist/presets/index.d.ts +0 -2
  312. package/dist/presets/index.mjs +0 -1
  313. package/dist/presets/koyeb/preset.d.ts +0 -2
  314. package/dist/presets/koyeb/preset.mjs +0 -11
  315. package/dist/presets/netlify/legacy/preset.d.ts +0 -2
  316. package/dist/presets/netlify/legacy/preset.mjs +0 -143
  317. package/dist/presets/netlify/legacy/runtime/_deno-env-polyfill.d.ts +0 -0
  318. package/dist/presets/netlify/legacy/runtime/_deno-env-polyfill.mjs +0 -1
  319. package/dist/presets/netlify/legacy/runtime/netlify-builder.d.ts +0 -3
  320. package/dist/presets/netlify/legacy/runtime/netlify-builder.mjs +0 -5
  321. package/dist/presets/netlify/legacy/runtime/netlify-edge.d.ts +0 -2
  322. package/dist/presets/netlify/legacy/runtime/netlify-edge.mjs +0 -25
  323. package/dist/presets/netlify/legacy/runtime/netlify-lambda.d.ts +0 -3
  324. package/dist/presets/netlify/legacy/runtime/netlify-lambda.mjs +0 -38
  325. package/dist/presets/netlify/legacy/runtime/netlify.d.ts +0 -4
  326. package/dist/presets/netlify/legacy/runtime/netlify.mjs +0 -22
  327. package/dist/presets/netlify/legacy/utils.d.ts +0 -4
  328. package/dist/presets/netlify/legacy/utils.mjs +0 -113
  329. package/dist/presets/netlify/preset.d.ts +0 -3
  330. package/dist/presets/netlify/preset.mjs +0 -128
  331. package/dist/presets/netlify/runtime/_deno-env-polyfill.d.ts +0 -0
  332. package/dist/presets/netlify/runtime/_deno-env-polyfill.mjs +0 -1
  333. package/dist/presets/netlify/runtime/netlify-edge.d.ts +0 -2
  334. package/dist/presets/netlify/types.d.ts +0 -12
  335. package/dist/presets/netlify/types.mjs +0 -0
  336. package/dist/presets/netlify/utils.d.ts +0 -5
  337. package/dist/presets/netlify/utils.mjs +0 -94
  338. package/dist/presets/node/preset.d.ts +0 -2
  339. package/dist/presets/node/preset.mjs +0 -49
  340. package/dist/presets/node/runtime/cli.d.ts +0 -1
  341. package/dist/presets/node/runtime/cli.mjs +0 -22
  342. package/dist/presets/node/runtime/node-listener.d.ts +0 -6
  343. package/dist/presets/platform.sh/preset.d.ts +0 -2
  344. package/dist/presets/platform.sh/preset.mjs +0 -11
  345. package/dist/presets/render.com/preset.d.ts +0 -2
  346. package/dist/presets/render.com/preset.mjs +0 -11
  347. package/dist/presets/stormkit/preset.d.ts +0 -2
  348. package/dist/presets/stormkit/preset.mjs +0 -15
  349. package/dist/presets/vercel/preset.d.ts +0 -3
  350. package/dist/presets/vercel/preset.mjs +0 -104
  351. package/dist/presets/vercel/runtime/vercel-edge.d.ts +0 -2
  352. package/dist/presets/vercel/runtime/vercel-edge.mjs +0 -22
  353. package/dist/presets/vercel/runtime/vercel.d.ts +0 -4
  354. package/dist/presets/vercel/types.d.ts +0 -78
  355. package/dist/presets/vercel/types.mjs +0 -0
  356. package/dist/presets/vercel/utils.d.ts +0 -5
  357. package/dist/presets/vercel/utils.mjs +0 -186
  358. package/dist/presets/winterjs/preset.d.ts +0 -2
  359. package/dist/presets/winterjs/preset.mjs +0 -20
  360. package/dist/presets/winterjs/runtime/winterjs.d.ts +0 -1
  361. package/dist/presets/zeabur/preset.d.ts +0 -2
  362. package/dist/presets/zeabur/preset.mjs +0 -70
  363. package/dist/presets/zeabur/runtime/zeabur.d.ts +0 -4
  364. package/dist/rollup/index.d.mts +0 -5
  365. package/dist/rollup/index.d.ts +0 -5
  366. package/dist/rollup/index.mjs +0 -1673
  367. package/dist/runtime/index.d.ts +0 -12
  368. package/dist/runtime/internal/app.d.ts +0 -3
  369. package/dist/runtime/internal/cache.d.ts +0 -8
  370. package/dist/runtime/internal/client.mjs +0 -4
  371. package/dist/runtime/internal/config.d.ts +0 -5
  372. package/dist/runtime/internal/config.mjs +0 -45
  373. package/dist/runtime/internal/error.d.ts +0 -4
  374. package/dist/runtime/internal/error.mjs +0 -73
  375. package/dist/runtime/internal/index.d.ts +0 -6
  376. package/dist/runtime/internal/renderer.d.ts +0 -2
  377. package/dist/runtime/internal/route-rules.d.ts +0 -14
  378. package/dist/runtime/internal/routes/openapi.d.ts +0 -3
  379. package/dist/runtime/internal/routes/scalar.d.ts +0 -2
  380. package/dist/runtime/internal/routes/swagger.d.ts +0 -2
  381. package/dist/runtime/internal/static.d.ts +0 -2
  382. package/dist/runtime/internal/timing.mjs +0 -29
  383. package/dist/runtime/internal/utils.d.ts +0 -21
  384. package/dist/runtime/internal/utils.lambda.d.ts +0 -10
  385. package/dist/runtime/internal/utils.lambda.mjs +0 -30
  386. package/dist/shared/nitro.bra5i6ER.d.mts +0 -620
  387. package/dist/shared/nitro.bra5i6ER.d.ts +0 -620
  388. package/dist/types/index.d.ts +0 -260
  389. package/kit.d.ts +0 -1
  390. package/meta.d.ts +0 -1
  391. package/presets.d.ts +0 -1
  392. package/rollup.d.ts +0 -1
  393. package/runtime.d.ts +0 -1
  394. package/types.d.ts +0 -1
  395. /package/dist/presets/_nitro/runtime/{nitro-dev.d.ts → nitro-dev.d.mts} +0 -0
  396. /package/dist/presets/_nitro/runtime/{service-worker.d.ts → service-worker.d.mts} +0 -0
  397. /package/dist/presets/aws-amplify/runtime/{aws-amplify.d.ts → aws-amplify.d.mts} +0 -0
  398. /package/dist/presets/azure/runtime/{azure-functions.d.ts → azure-swa.d.mts} +0 -0
  399. /package/dist/presets/bun/runtime/{bun.d.ts → bun.d.mts} +0 -0
  400. /package/dist/presets/{cloudflare/runtime/cloudflare-worker.d.ts → deno/runtime/deno-deploy.d.mts} +0 -0
  401. /package/dist/presets/netlify/runtime/{netlify.d.ts → netlify.d.mts} +0 -0
  402. /package/dist/presets/node/runtime/{cluster.d.ts → node-cluster.d.mts} +0 -0
  403. /package/dist/presets/{deno/runtime/deno-server.d.ts → node/runtime/node-server.d.mts} +0 -0
  404. /package/dist/presets/stormkit/runtime/{stormkit.d.ts → stormkit.d.mts} +0 -0
  405. /package/dist/presets/{deno/runtime/deno-deploy.d.ts → winterjs/runtime/winterjs.d.mts} +0 -0
  406. /package/dist/runtime/internal/{database.d.ts → database.d.mts} +0 -0
  407. /package/dist/runtime/internal/{debug.d.ts → debug.d.mts} +0 -0
  408. /package/dist/{presets/_types.gen.mjs → runtime/internal/empty.d.mts} +0 -0
  409. /package/dist/{presets/aws-amplify/types.mjs → runtime/internal/empty.mjs} +0 -0
  410. /package/dist/runtime/internal/lib/{http-graceful-shutdown.d.ts → http-graceful-shutdown.d.mts} +0 -0
  411. /package/dist/runtime/internal/{meta.d.ts → meta.d.mts} +0 -0
  412. /package/dist/runtime/internal/{plugin.d.ts → plugin.d.mts} +0 -0
  413. /package/dist/runtime/internal/{shutdown.d.ts → shutdown.d.mts} +0 -0
  414. /package/dist/runtime/internal/{storage.d.ts → storage.d.mts} +0 -0
  415. /package/dist/runtime/internal/{task.d.ts → task.d.mts} +0 -0
  416. /package/dist/runtime/internal/{client.d.ts → vite/dev-worker.d.mts} +0 -0
  417. /package/{dist/config/index.mjs → lib/config.mjs} +0 -0
@@ -0,0 +1,316 @@
1
+ // src/parser.ts
2
+ import { fileURLToPath } from "url";
3
+ import { readFile } from "fs/promises";
4
+ import { Exception } from "@poppinss/exception";
5
+ import { parse } from "error-stack-parser-es";
6
+
7
+ // src/debug.ts
8
+ import { debuglog } from "util";
9
+ var debug_default = debuglog("youch:core");
10
+
11
+ // src/source_file.ts
12
+ var SourceFile = class {
13
+ #contents;
14
+ constructor(options) {
15
+ if ("contents" in options) {
16
+ this.#contents = options.contents;
17
+ }
18
+ }
19
+ /**
20
+ * Slice the file contents for the buffer size around a given
21
+ * line number.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const chunks = sourceFile.slice(11, 7)
26
+ * // Here chunks will be an array of 7 items from line number
27
+ * // 8 to 14
28
+ * ```
29
+ */
30
+ slice(lineNumber, bufferSize) {
31
+ if (!this.#contents) {
32
+ return void 0;
33
+ }
34
+ const lines = this.#contents.split(/\n|\r\n/);
35
+ const contentSize = lines.length;
36
+ const chunkSize = Math.ceil((bufferSize - 1) / 2);
37
+ let startIndex = chunkSize >= lineNumber ? 0 : lineNumber - chunkSize - 1;
38
+ if (contentSize - lineNumber < chunkSize) {
39
+ startIndex = Math.max(startIndex - (chunkSize - (contentSize - lineNumber)), 0);
40
+ }
41
+ const sourceIndex = lineNumber - 1;
42
+ const startRemainder = startIndex - sourceIndex + chunkSize;
43
+ const endIndex = startRemainder + chunkSize + lineNumber;
44
+ debug_default("slicing file contents", {
45
+ startIndex,
46
+ endIndex,
47
+ sourceIndex,
48
+ contentSize,
49
+ bufferSize,
50
+ chunkSize
51
+ });
52
+ return lines.slice(startIndex, endIndex).map((chunk, index) => {
53
+ return {
54
+ chunk,
55
+ lineNumber: startIndex + index + 1
56
+ };
57
+ });
58
+ }
59
+ };
60
+
61
+ // src/parser.ts
62
+ var ErrorParser = class _ErrorParser {
63
+ /**
64
+ * FS source loader reads the file contents from the filesystem
65
+ * for all non-native frames
66
+ */
67
+ static fsSourceLoader = async (frame) => {
68
+ if (!frame.fileName || frame.fileType !== "fs" || frame.type === "native") {
69
+ return void 0;
70
+ }
71
+ debug_default("reading contents for source file %s", frame.fileName);
72
+ try {
73
+ return {
74
+ contents: await readFile(frame.fileName, "utf-8")
75
+ };
76
+ } catch (error) {
77
+ debug_default(`Unable to read source file %s, error %s`, frame.fileName, error.message);
78
+ }
79
+ };
80
+ /**
81
+ * Native frames filename identifiers for Node.js and
82
+ * Deno
83
+ */
84
+ #nativeFramesIdentifiers = ["node:", "ext:"];
85
+ /**
86
+ * Native frames filename identifier for Bun. In case of
87
+ * bun, the filename exactly matches the keyword "native"
88
+ */
89
+ #bunNativeIdentifier = "native";
90
+ /**
91
+ * Cache of preloaded source files along with their absolute
92
+ * path
93
+ */
94
+ #sourceFiles = /* @__PURE__ */ new Map();
95
+ /**
96
+ * The offset can be used to skip initial frames from the
97
+ * error stack
98
+ */
99
+ #offset;
100
+ /**
101
+ * Custom source loader to consult for reading the sourcefile
102
+ * contents
103
+ */
104
+ #sourceLoader = _ErrorParser.fsSourceLoader;
105
+ /**
106
+ * Parsers are used to prepare the source value for parsing
107
+ */
108
+ #parsers = [];
109
+ /**
110
+ * Transformers are used to post process the parsed error and
111
+ * attach additional information to it.
112
+ */
113
+ #transformers = [];
114
+ constructor(options) {
115
+ options = options ?? {};
116
+ this.#offset = options.offset;
117
+ }
118
+ /**
119
+ * Normalizes the unknown error to be an Error
120
+ */
121
+ #normalizeError(source) {
122
+ if (source instanceof Error) {
123
+ return source;
124
+ }
125
+ if (typeof source === "object" && source && "message" in source && "stack" in source) {
126
+ return source;
127
+ }
128
+ const error = new Exception(JSON.stringify(source));
129
+ error.help = 'To get as much information as possible from your errors, make sure to throw Error objects. See <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error</a> for more information.';
130
+ return error;
131
+ }
132
+ /**
133
+ * Returns the source chunks for a given file and the
134
+ * line number.
135
+ */
136
+ async #getSource(frame) {
137
+ let sourceFile = this.#sourceFiles.get(frame.fileName);
138
+ if (sourceFile) {
139
+ debug_default("reading sourcefile from cache %s", frame.fileName);
140
+ return sourceFile.slice(frame.lineNumber ?? 1, 11);
141
+ }
142
+ const contents = await this.#sourceLoader(frame);
143
+ if (contents) {
144
+ sourceFile = new SourceFile(contents);
145
+ debug_default("caching sourcefile instance for %s", frame.fileName);
146
+ this.#sourceFiles.set(frame.fileName, sourceFile);
147
+ return sourceFile.slice(frame.lineNumber ?? 1, 11);
148
+ }
149
+ }
150
+ /**
151
+ * Syntax errors in JavaScript does not contain the source file
152
+ * location within the stack trace, since the error has
153
+ * happened in the language parser.
154
+ *
155
+ * However, Node.js includes the absolute path to the file within
156
+ * the stack trace contents as the first line. So we parse
157
+ * that out in this function.
158
+ */
159
+ #parseSyntaxError(error) {
160
+ const [sourceIdentifier] = error.stack?.split("\n") || [];
161
+ const tokens = sourceIdentifier.split(":");
162
+ const lineNumber = Number(tokens.pop());
163
+ const fileName = tokens.join(":");
164
+ if (fileName && !Number.isNaN(lineNumber)) {
165
+ return [
166
+ {
167
+ fileName,
168
+ lineNumber,
169
+ source: sourceIdentifier
170
+ }
171
+ ];
172
+ }
173
+ return [];
174
+ }
175
+ /**
176
+ * Applies the offset on the frames to skip certain frames
177
+ * from the start
178
+ */
179
+ #applyOffset(frames) {
180
+ if (this.#offset) {
181
+ return frames.slice(this.#offset);
182
+ }
183
+ return frames;
184
+ }
185
+ /**
186
+ * Replaces windows slash to unix slash
187
+ */
188
+ #toUnixSlash(fileName) {
189
+ const isExtendedLengthPath = fileName.startsWith("\\\\?\\");
190
+ return isExtendedLengthPath ? fileName : fileName.replace(/\\/g, "/");
191
+ }
192
+ /**
193
+ * Normalizes the filename to be a path with unix slash. The
194
+ * URL style paths are also converted to normalized file
195
+ * paths
196
+ */
197
+ #normalizeFileName(fileName) {
198
+ if (fileName.startsWith("file:")) {
199
+ return this.#toUnixSlash(fileURLToPath(fileName));
200
+ }
201
+ return this.#toUnixSlash(fileName);
202
+ }
203
+ /**
204
+ * Returns the type of the frame.
205
+ */
206
+ #getFrameType(fileName) {
207
+ return this.#nativeFramesIdentifiers.some((identifier) => fileName.includes(identifier)) || fileName === this.#bunNativeIdentifier ? "native" : fileName.includes("node_modules/") ? "module" : "app";
208
+ }
209
+ /**
210
+ * Returns the source type of the frame.
211
+ */
212
+ #getFrameSourceType(fileName) {
213
+ return fileName.startsWith("http://") ? "http" : fileName.startsWith("https://") ? "https" : "fs";
214
+ }
215
+ /**
216
+ * Enhances a frame to contain additional information
217
+ */
218
+ async #enhanceFrames(frames) {
219
+ let stackFrames = [];
220
+ for (const { source: raw, ...frame } of frames) {
221
+ const stackFrame = {
222
+ ...frame,
223
+ raw
224
+ };
225
+ if (!stackFrame.fileName) {
226
+ stackFrames.push(stackFrame);
227
+ continue;
228
+ }
229
+ stackFrame.fileName = this.#normalizeFileName(stackFrame.fileName);
230
+ stackFrame.type = this.#getFrameType(stackFrame.fileName);
231
+ stackFrame.fileType = this.#getFrameSourceType(stackFrame.fileName);
232
+ stackFrame.source = await this.#getSource(stackFrame);
233
+ debug_default("stack frame %O", stackFrame);
234
+ stackFrames.push(stackFrame);
235
+ }
236
+ return stackFrames;
237
+ }
238
+ /**
239
+ * Register a parser. Parsers are synchronous functions
240
+ * that can be used to pre-process the source value
241
+ * before it get parsed.
242
+ *
243
+ * @example
244
+ * ```ts
245
+ * sourceFile.useParser((source) => {
246
+ * if (valueCanBeParsed) {
247
+ * return newValue
248
+ * }
249
+ * return source
250
+ * })
251
+ * ```
252
+ */
253
+ useParser(parser) {
254
+ this.#parsers.push(parser);
255
+ return this;
256
+ }
257
+ /**
258
+ * Register a transformer. Transformers can be async functions
259
+ * to post-process the parsed error value.
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * sourceFile.useTransformer((error, source) => {
264
+ * // mutate "error" properties
265
+ * })
266
+ * ```
267
+ */
268
+ useTransformer(transformer) {
269
+ this.#transformers.push(transformer);
270
+ return this;
271
+ }
272
+ /**
273
+ * Define a custom source loader to load the contents of the
274
+ * source file within the error stack.
275
+ *
276
+ * For example: You might want to register a custom source loader
277
+ * that makes an fetch call to the server to read the source of
278
+ * the file within the error stack.
279
+ */
280
+ defineSourceLoader(loader) {
281
+ this.#sourceLoader = loader;
282
+ return this;
283
+ }
284
+ /**
285
+ * Parse an unknown value into a parsed error object.
286
+ */
287
+ async parse(source) {
288
+ debug_default("parsing source %O", source);
289
+ source = this.#parsers.reduce((result, parser) => {
290
+ result = parser(result);
291
+ return result;
292
+ }, source);
293
+ let error = this.#normalizeError(source);
294
+ debug_default("error normalized to %O", error);
295
+ let esFrames = error instanceof SyntaxError ? this.#parseSyntaxError(error) : [];
296
+ esFrames = esFrames.concat(parse(error, { allowEmpty: true }));
297
+ esFrames = this.#applyOffset(esFrames);
298
+ const parsedError = {
299
+ message: error.message,
300
+ name: error.name,
301
+ frames: await this.#enhanceFrames(esFrames),
302
+ hint: "hint" in error && error.hint ? String(error.hint) : "help" in error && error.help ? String(error.help) : void 0,
303
+ code: "code" in error ? String(error.code) : void 0,
304
+ cause: error.cause,
305
+ stack: error.stack,
306
+ raw: error
307
+ };
308
+ for (const transformer of this.#transformers) {
309
+ await transformer(parsedError, error);
310
+ }
311
+ return parsedError;
312
+ }
313
+ };
314
+ export {
315
+ ErrorParser
316
+ };
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "youch-core",
3
+ "description": "Error parser to parse an error instance into a collection of frames",
4
+ "version": "0.3.3",
5
+ "type": "module",
6
+ "files": [
7
+ "build",
8
+ "!build/bin",
9
+ "!build/examples",
10
+ "!build/tests"
11
+ ],
12
+ "main": "build/index.js",
13
+ "exports": {
14
+ ".": "./build/index.js",
15
+ "./types": "./build/src/types.js"
16
+ },
17
+ "scripts": {
18
+ "pretest": "npm run lint",
19
+ "test": "c8 npm run quick:test",
20
+ "lint": "eslint .",
21
+ "format": "prettier --write .",
22
+ "typecheck": "tsc --noEmit",
23
+ "precompile": "npm run lint",
24
+ "compile": "tsup-node && tsc --emitDeclarationOnly --declaration",
25
+ "build": "npm run compile",
26
+ "version": "npm run build",
27
+ "prepublishOnly": "npm run build",
28
+ "release": "release-it",
29
+ "quick:test": "node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"
30
+ },
31
+ "devDependencies": {
32
+ "@adonisjs/eslint-config": "^3.0.0-next.0",
33
+ "@adonisjs/prettier-config": "^1.4.5",
34
+ "@adonisjs/tsconfig": "^2.0.0-next.0",
35
+ "@japa/assert": "^4.0.1",
36
+ "@japa/expect": "^3.0.4",
37
+ "@japa/expect-type": "^2.0.3",
38
+ "@japa/file-system": "^2.3.2",
39
+ "@japa/runner": "^4.2.0",
40
+ "@poppinss/ts-exec": "^1.4.0",
41
+ "@release-it/conventional-changelog": "^10.0.1",
42
+ "@types/node": "^24.0.10",
43
+ "ansis": "^4.1.0",
44
+ "axios": "^1.10.0",
45
+ "c8": "^10.1.3",
46
+ "eslint": "^9.30.1",
47
+ "got": "^14.4.7",
48
+ "prettier": "^3.6.2",
49
+ "release-it": "^19.0.3",
50
+ "strip-ansi": "^7.1.0",
51
+ "tinyhighlight": "^0.3.2",
52
+ "tsup": "^8.5.0",
53
+ "typescript": "^5.8.3",
54
+ "undici": "^7.11.0"
55
+ },
56
+ "dependencies": {
57
+ "@poppinss/exception": "^1.2.2",
58
+ "error-stack-parser-es": "^1.0.5"
59
+ },
60
+ "homepage": "https://github.com/poppinss/youch-core#readme",
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "git+https://github.com/poppinss/youch-core.git"
64
+ },
65
+ "bugs": {
66
+ "url": "https://github.com/poppinss/youch-core/issues"
67
+ },
68
+ "keywords": [
69
+ "pretty-print",
70
+ "pretty-error"
71
+ ],
72
+ "author": "Harminder Virk <virk@adonisjs.com>",
73
+ "license": "MIT",
74
+ "publishConfig": {
75
+ "access": "public",
76
+ "provenance": true
77
+ },
78
+ "tsup": {
79
+ "entry": [
80
+ "index.ts",
81
+ "src/types.ts"
82
+ ],
83
+ "outDir": "./build",
84
+ "clean": true,
85
+ "format": "esm",
86
+ "dts": false,
87
+ "sourcemap": false,
88
+ "target": "esnext"
89
+ },
90
+ "release-it": {
91
+ "git": {
92
+ "requireCleanWorkingDir": true,
93
+ "requireUpstream": true,
94
+ "commitMessage": "chore(release): ${version}",
95
+ "tagAnnotation": "v${version}",
96
+ "push": true,
97
+ "tagName": "v${version}"
98
+ },
99
+ "github": {
100
+ "release": true
101
+ },
102
+ "npm": {
103
+ "publish": true,
104
+ "skipChecks": true
105
+ },
106
+ "plugins": {
107
+ "@release-it/conventional-changelog": {
108
+ "preset": {
109
+ "name": "angular"
110
+ }
111
+ }
112
+ }
113
+ },
114
+ "c8": {
115
+ "reporter": [
116
+ "text",
117
+ "html"
118
+ ],
119
+ "exclude": [
120
+ "tests/**"
121
+ ]
122
+ },
123
+ "prettier": "@adonisjs/prettier-config"
124
+ }
@@ -1,87 +1,62 @@
1
1
  import "#nitro-internal-pollyfills";
2
2
  import { useNitroApp } from "nitro/runtime";
3
- import { runTask } from "nitro/runtime";
4
- import {
5
- startScheduleRunner,
6
- trapUnhandledNodeErrors
7
- } from "nitro/runtime/internal";
8
- import { scheduledTasks, tasks } from "#nitro-internal-virtual/tasks";
9
- import { mkdirSync } from "node:fs";
3
+ import { trapUnhandledNodeErrors } from "nitro/runtime/internal";
4
+ import { startScheduleRunner } from "nitro/runtime/internal";
10
5
  import { Server } from "node:http";
11
- import { tmpdir } from "node:os";
12
- import { join } from "node:path";
6
+ import nodeCrypto from "node:crypto";
13
7
  import { parentPort, threadId } from "node:worker_threads";
14
8
  import wsAdapter from "crossws/adapters/node";
15
- import {
16
- defineEventHandler,
17
- getQuery,
18
- getRouterParam,
19
- readBody,
20
- toNodeListener
21
- } from "h3";
22
- import { isWindows, provider } from "std-env";
9
+ import { toNodeHandler } from "srvx/node";
10
+ import { getSocketAddress, isSocketSupported } from "get-port-please";
11
+ if (!globalThis.crypto) {
12
+ globalThis.crypto = nodeCrypto;
13
+ }
14
+ trapUnhandledNodeErrors();
15
+ parentPort?.on("message", (msg) => {
16
+ if (msg && msg.event === "shutdown") {
17
+ shutdown();
18
+ }
19
+ });
23
20
  const nitroApp = useNitroApp();
24
- const server = new Server(toNodeListener(nitroApp.h3App));
21
+ const server = new Server(toNodeHandler(nitroApp.fetch));
22
+ let listener;
23
+ listen().catch((error) => {
24
+ console.error("Dev worker failed to listen:", error);
25
+ return shutdown();
26
+ });
25
27
  if (import.meta._websocket) {
26
28
  const { handleUpgrade } = wsAdapter(nitroApp.h3App.websocket);
27
29
  server.on("upgrade", handleUpgrade);
28
30
  }
29
- function getAddress() {
30
- if (provider === "stackblitz" || process.env.NITRO_NO_UNIX_SOCKET || process.versions.bun) {
31
- return 0;
32
- }
33
- const socketName = `worker-${process.pid}-${threadId}.sock`;
34
- if (isWindows) {
35
- return join(String.raw`\\.\pipe\nitro`, socketName);
36
- }
37
- const socketDir = join(tmpdir(), "nitro");
38
- mkdirSync(socketDir, { recursive: true });
39
- return join(socketDir, socketName);
31
+ if (import.meta._tasks) {
32
+ startScheduleRunner();
40
33
  }
41
- const listenAddress = getAddress();
42
- const listener = server.listen(listenAddress, () => {
43
- const _address = server.address();
44
- parentPort?.postMessage({
45
- event: "listen",
46
- address: typeof _address === "string" ? { socketPath: _address } : { host: "localhost", port: _address?.port }
34
+ async function listen() {
35
+ const listenAddr = await isSocketSupported() ? getSocketAddress({
36
+ name: `nitro-dev-${threadId}`,
37
+ pid: true,
38
+ random: true
39
+ }) : { port: 0, host: "localhost" };
40
+ return new Promise((resolve, reject) => {
41
+ try {
42
+ listener = server.listen(listenAddr, () => {
43
+ const address = server.address();
44
+ parentPort?.postMessage({
45
+ event: "listen",
46
+ address: typeof address === "string" ? { socketPath: address } : { host: "localhost", port: address?.port }
47
+ });
48
+ resolve();
49
+ });
50
+ } catch (error) {
51
+ reject(error);
52
+ }
47
53
  });
48
- });
49
- nitroApp.router.get(
50
- "/_nitro/tasks",
51
- defineEventHandler(async (event) => {
52
- const _tasks = await Promise.all(
53
- Object.entries(tasks).map(async ([name, task]) => {
54
- const _task = await task.resolve?.();
55
- return [name, { description: _task?.meta?.description }];
56
- })
57
- );
58
- return {
59
- tasks: Object.fromEntries(_tasks),
60
- scheduledTasks
61
- };
62
- })
63
- );
64
- nitroApp.router.use(
65
- "/_nitro/tasks/:name",
66
- defineEventHandler(async (event) => {
67
- const name = getRouterParam(event, "name");
68
- const payload = {
69
- ...getQuery(event),
70
- ...await readBody(event).then((r) => r?.payload).catch(() => ({}))
71
- };
72
- return await runTask(name, { payload });
73
- })
74
- );
75
- trapUnhandledNodeErrors();
76
- async function onShutdown(signal) {
77
- await nitroApp.hooks.callHook("close");
78
54
  }
79
- parentPort?.on("message", async (msg) => {
80
- if (msg && msg.event === "shutdown") {
81
- await onShutdown();
82
- parentPort?.postMessage({ event: "exit" });
83
- }
84
- });
85
- if (import.meta._tasks) {
86
- startScheduleRunner();
55
+ async function shutdown() {
56
+ server.closeAllConnections?.();
57
+ await Promise.all([
58
+ new Promise((resolve) => listener?.close(resolve)),
59
+ nitroApp.hooks.callHook("close").catch(console.error)
60
+ ]);
61
+ parentPort?.postMessage({ event: "exit" });
87
62
  }
@@ -1,3 +1,3 @@
1
1
  import "#nitro-internal-pollyfills";
2
- export declare const localFetch: any;
2
+ export declare const appFetch: any;
3
3
  export declare const closePrerenderer: () => any;
@@ -1,7 +1,18 @@
1
1
  import "#nitro-internal-pollyfills";
2
+ import consola from "consola";
2
3
  import { useNitroApp } from "nitro/runtime";
3
4
  import { trapUnhandledNodeErrors } from "nitro/runtime/internal";
4
5
  const nitroApp = useNitroApp();
5
- export const localFetch = nitroApp.localFetch;
6
+ export const appFetch = nitroApp.fetch;
6
7
  export const closePrerenderer = () => nitroApp.hooks.callHook("close");
8
+ nitroApp.hooks.hook("error", (error, context) => {
9
+ if (!error.unhandled && error.status >= 500 && context.event?.req?.headers instanceof Headers && context.event.req.headers.get("x-nitro-prerender")) {
10
+ consola.error(
11
+ `[prerender error]`,
12
+ `[${context.event.req.method}]`,
13
+ `[${context.event.req.url}]`,
14
+ error
15
+ );
16
+ }
17
+ });
7
18
  trapUnhandledNodeErrors();
@@ -7,22 +7,12 @@ addEventListener("fetch", (event) => {
7
7
  if (isPublicAssetURL(url.pathname) || url.pathname.includes("/_server/")) {
8
8
  return;
9
9
  }
10
- event.respondWith(handleEvent(url, event));
10
+ const req = event.request;
11
+ req.runtime ??= { name: "service-worker" };
12
+ req.runtime.serviceWorker ??= { event };
13
+ req.waitUntil = event.waitUntil.bind(event);
14
+ event.respondWith(nitroApp.fetch(req));
11
15
  });
12
- async function handleEvent(url, event) {
13
- let body;
14
- if (event.request.body) {
15
- body = await event.request.arrayBuffer();
16
- }
17
- return nitroApp.localFetch(url.pathname + url.search, {
18
- host: url.hostname,
19
- protocol: url.protocol,
20
- headers: event.request.headers,
21
- method: event.request.method,
22
- redirect: event.request.redirect,
23
- body
24
- });
25
- }
26
16
  self.addEventListener("install", () => {
27
17
  self.skipWaiting();
28
18
  });
@@ -1,9 +1,9 @@
1
1
  import "#nitro-internal-pollyfills";
2
2
  import { useNitroApp } from "nitro/runtime";
3
3
  import { Server } from "node:http";
4
- import { toNodeListener } from "h3";
4
+ import { toNodeHandler } from "srvx/node";
5
5
  const nitroApp = useNitroApp();
6
- const server = new Server(toNodeListener(nitroApp.h3App));
6
+ const server = new Server(toNodeHandler(nitroApp.fetch));
7
7
  server.listen(3e3, (err) => {
8
8
  if (err) {
9
9
  console.error(err);
@@ -0,0 +1,18 @@
1
+ import type { APIGatewayProxyEvent, APIGatewayProxyEventV2 } from "aws-lambda";
2
+ import type { ServerRequest } from "srvx";
3
+ export declare function awsRequest(event: APIGatewayProxyEvent | APIGatewayProxyEventV2, context: unknown): ServerRequest;
4
+ export declare function awsResponseHeaders(response: Response): {
5
+ headers: any;
6
+ cookies: string[];
7
+ multiValueHeaders: {
8
+ "set-cookie": string[];
9
+ };
10
+ } | {
11
+ headers: any;
12
+ cookies?: undefined;
13
+ multiValueHeaders?: undefined;
14
+ };
15
+ export declare function awsResponseBody(response: Response): Promise<{
16
+ body: string;
17
+ isBase64Encoded?: boolean;
18
+ }>;