elysia 1.4.28 → 2.0.0-beta.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 (454) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +29 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +38 -0
  3. package/dist/adapter/bun/index.d.ts +7 -6
  4. package/dist/adapter/bun/index.js +219 -380
  5. package/dist/adapter/bun/index.mjs +217 -382
  6. package/dist/adapter/constants.d.ts +6 -0
  7. package/dist/adapter/constants.js +10 -0
  8. package/dist/adapter/constants.mjs +9 -0
  9. package/dist/adapter/default-headers.d.ts +4 -0
  10. package/dist/adapter/default-headers.js +7 -0
  11. package/dist/adapter/default-headers.mjs +5 -0
  12. package/dist/adapter/index.d.ts +8 -1
  13. package/dist/adapter/index.js +7 -14
  14. package/dist/adapter/index.mjs +5 -0
  15. package/dist/adapter/origin.d.ts +63 -0
  16. package/dist/adapter/origin.js +64 -0
  17. package/dist/adapter/origin.mjs +62 -0
  18. package/dist/adapter/response-ownership.d.ts +5 -0
  19. package/dist/adapter/response-ownership.js +13 -0
  20. package/dist/adapter/response-ownership.mjs +10 -0
  21. package/dist/adapter/skip-clone.d.ts +4 -0
  22. package/dist/adapter/skip-clone.js +7 -0
  23. package/dist/adapter/skip-clone.mjs +5 -0
  24. package/dist/adapter/types.d.ts +50 -125
  25. package/dist/adapter/types.js +1 -14
  26. package/dist/adapter/types.mjs +1 -0
  27. package/dist/adapter/utils.d.ts +47 -19
  28. package/dist/adapter/utils.js +561 -311
  29. package/dist/adapter/utils.mjs +551 -283
  30. package/dist/adapter/web-standard/handler.d.ts +11 -9
  31. package/dist/adapter/web-standard/handler.js +146 -415
  32. package/dist/adapter/web-standard/handler.mjs +144 -400
  33. package/dist/adapter/web-standard/index.d.ts +5 -2
  34. package/dist/adapter/web-standard/index.js +68 -161
  35. package/dist/adapter/web-standard/index.mjs +68 -146
  36. package/dist/adapter/web-standard/utils.d.ts +4 -0
  37. package/dist/adapter/web-standard/utils.js +153 -0
  38. package/dist/adapter/web-standard/utils.mjs +152 -0
  39. package/dist/base.d.ts +898 -0
  40. package/dist/base.js +1564 -0
  41. package/dist/base.mjs +1561 -0
  42. package/dist/compile/analysis-cache.d.ts +6 -0
  43. package/dist/compile/analysis-cache.js +12 -0
  44. package/dist/compile/analysis-cache.mjs +11 -0
  45. package/dist/compile/aot-capture.d.ts +24 -0
  46. package/dist/compile/aot-capture.js +376 -0
  47. package/dist/compile/aot-capture.mjs +365 -0
  48. package/dist/compile/aot-emit.d.ts +29 -0
  49. package/dist/compile/aot-emit.js +107 -0
  50. package/dist/compile/aot-emit.mjs +101 -0
  51. package/dist/compile/aot-reconstruct.d.ts +30 -0
  52. package/dist/compile/aot-reconstruct.js +156 -0
  53. package/dist/compile/aot-reconstruct.mjs +147 -0
  54. package/dist/compile/aot.d.ts +287 -0
  55. package/dist/compile/aot.js +220 -0
  56. package/dist/compile/aot.mjs +200 -0
  57. package/dist/compile/handler/descriptor.d.ts +77 -0
  58. package/dist/compile/handler/descriptor.js +199 -0
  59. package/dist/compile/handler/descriptor.mjs +194 -0
  60. package/dist/compile/handler/frozen-validator.d.ts +39 -0
  61. package/dist/compile/handler/frozen-validator.js +319 -0
  62. package/dist/compile/handler/frozen-validator.mjs +313 -0
  63. package/dist/compile/handler/index.d.ts +19 -0
  64. package/dist/compile/handler/index.js +379 -0
  65. package/dist/compile/handler/index.mjs +371 -0
  66. package/dist/compile/handler/jit.d.ts +43 -0
  67. package/dist/compile/handler/jit.js +536 -0
  68. package/dist/compile/handler/jit.mjs +532 -0
  69. package/dist/compile/handler/params.d.ts +28 -0
  70. package/dist/compile/handler/params.js +78 -0
  71. package/dist/compile/handler/params.mjs +76 -0
  72. package/dist/compile/handler/reconstruct.d.ts +12 -0
  73. package/dist/compile/handler/reconstruct.js +50 -0
  74. package/dist/compile/handler/reconstruct.mjs +49 -0
  75. package/dist/compile/handler/utils.d.ts +45 -0
  76. package/dist/compile/handler/utils.js +514 -0
  77. package/dist/compile/handler/utils.mjs +498 -0
  78. package/dist/compile/jit-probe.d.ts +15 -0
  79. package/dist/compile/jit-probe.js +28 -0
  80. package/dist/compile/jit-probe.mjs +26 -0
  81. package/dist/compile/lexer.d.ts +7 -0
  82. package/dist/compile/lexer.js +53 -0
  83. package/dist/compile/lexer.mjs +48 -0
  84. package/dist/compile/utils.d.ts +8 -0
  85. package/dist/compile/utils.js +23 -0
  86. package/dist/compile/utils.mjs +19 -0
  87. package/dist/compiled.d.ts +17 -0
  88. package/dist/compiled.js +20 -0
  89. package/dist/compiled.mjs +16 -0
  90. package/dist/constants.d.ts +137 -0
  91. package/dist/constants.js +96 -0
  92. package/dist/constants.mjs +88 -0
  93. package/dist/context.d.ts +86 -129
  94. package/dist/context.js +110 -13
  95. package/dist/context.mjs +108 -0
  96. package/dist/cookie/config.d.ts +31 -0
  97. package/dist/cookie/config.js +98 -0
  98. package/dist/cookie/config.mjs +95 -0
  99. package/dist/cookie/cookie.d.ts +26 -0
  100. package/dist/cookie/cookie.js +105 -0
  101. package/dist/cookie/cookie.mjs +104 -0
  102. package/dist/cookie/crypto.d.ts +20 -0
  103. package/dist/cookie/crypto.js +168 -0
  104. package/dist/cookie/crypto.mjs +151 -0
  105. package/dist/cookie/error.d.ts +17 -0
  106. package/dist/cookie/error.js +25 -0
  107. package/dist/cookie/error.mjs +24 -0
  108. package/dist/cookie/index.d.ts +7 -0
  109. package/dist/cookie/index.js +13 -0
  110. package/dist/cookie/index.mjs +7 -0
  111. package/dist/cookie/lib.d.ts +7 -0
  112. package/dist/cookie/lib.js +76 -0
  113. package/dist/cookie/lib.mjs +74 -0
  114. package/dist/cookie/serialize.d.ts +6 -0
  115. package/dist/cookie/serialize.js +32 -0
  116. package/dist/cookie/serialize.mjs +31 -0
  117. package/dist/cookie/types.d.ts +113 -0
  118. package/dist/cookie/types.js +1 -0
  119. package/dist/cookie/types.mjs +1 -0
  120. package/dist/cookie/utils.d.ts +25 -0
  121. package/dist/cookie/utils.js +182 -0
  122. package/dist/cookie/utils.mjs +171 -0
  123. package/dist/error.d.ts +226 -188
  124. package/dist/error.js +519 -357
  125. package/dist/error.mjs +503 -327
  126. package/dist/generation.d.ts +30 -0
  127. package/dist/generation.js +23 -0
  128. package/dist/generation.mjs +17 -0
  129. package/dist/handler/error.d.ts +7 -0
  130. package/dist/handler/error.js +105 -0
  131. package/dist/handler/error.mjs +104 -0
  132. package/dist/handler/fetch.d.ts +8 -0
  133. package/dist/handler/fetch.js +371 -0
  134. package/dist/handler/fetch.mjs +367 -0
  135. package/dist/handler/index.d.ts +2 -0
  136. package/dist/handler/index.js +5 -0
  137. package/dist/handler/index.mjs +3 -0
  138. package/dist/handler/utils.d.ts +15 -0
  139. package/dist/handler/utils.js +48 -0
  140. package/dist/handler/utils.mjs +42 -0
  141. package/dist/index.d.ts +23 -2198
  142. package/dist/index.js +62 -1948
  143. package/dist/index.mjs +20 -1986
  144. package/dist/memory.d.ts +4 -0
  145. package/dist/memory.js +17 -0
  146. package/dist/memory.mjs +16 -0
  147. package/dist/package.js +11 -0
  148. package/dist/package.mjs +5 -0
  149. package/dist/parse-query.d.ts +7 -9
  150. package/dist/parse-query.js +154 -164
  151. package/dist/parse-query.mjs +150 -133
  152. package/dist/plugin/aot/bun.d.ts +26 -0
  153. package/dist/plugin/aot/bun.js +35 -0
  154. package/dist/plugin/aot/bun.mjs +34 -0
  155. package/dist/plugin/aot/core.d.ts +291 -0
  156. package/dist/plugin/aot/core.js +505 -0
  157. package/dist/plugin/aot/core.mjs +481 -0
  158. package/dist/plugin/aot/esbuild.d.ts +28 -0
  159. package/dist/plugin/aot/esbuild.js +48 -0
  160. package/dist/plugin/aot/esbuild.mjs +46 -0
  161. package/dist/plugin/aot/hooks.d.ts +28 -0
  162. package/dist/plugin/aot/hooks.js +114 -0
  163. package/dist/plugin/aot/hooks.mjs +112 -0
  164. package/dist/plugin/aot/rspack-loader.d.ts +23 -0
  165. package/dist/plugin/aot/rspack-loader.js +44 -0
  166. package/dist/plugin/aot/rspack-loader.mjs +40 -0
  167. package/dist/plugin/aot/rspack.d.ts +23 -0
  168. package/dist/plugin/aot/rspack.js +85 -0
  169. package/dist/plugin/aot/rspack.mjs +82 -0
  170. package/dist/plugin/aot/source.d.ts +60 -0
  171. package/dist/plugin/aot/source.js +422 -0
  172. package/dist/plugin/aot/source.mjs +418 -0
  173. package/dist/plugin/aot/treeshake.d.ts +4 -0
  174. package/dist/plugin/aot/treeshake.js +95 -0
  175. package/dist/plugin/aot/treeshake.mjs +94 -0
  176. package/dist/plugin/aot/unplugin.d.ts +50 -0
  177. package/dist/plugin/aot/unplugin.js +64 -0
  178. package/dist/plugin/aot/unplugin.mjs +62 -0
  179. package/dist/plugin/aot/vite.d.ts +30 -0
  180. package/dist/plugin/aot/vite.js +34 -0
  181. package/dist/plugin/aot/vite.mjs +33 -0
  182. package/dist/plugin/aot/worker.d.ts +1 -0
  183. package/dist/plugin/aot/worker.js +28 -0
  184. package/dist/plugin/aot/worker.mjs +27 -0
  185. package/dist/plugin/auto-head.d.ts +6 -0
  186. package/dist/plugin/auto-head.js +38 -0
  187. package/dist/plugin/auto-head.mjs +36 -0
  188. package/dist/plugin/trace.d.ts +10 -0
  189. package/dist/plugin/trace.js +39 -0
  190. package/dist/plugin/trace.mjs +36 -0
  191. package/dist/plugin/websocket.d.ts +6 -0
  192. package/dist/plugin/websocket.js +61 -0
  193. package/dist/plugin/websocket.mjs +60 -0
  194. package/dist/route-table.d.ts +28 -0
  195. package/dist/route-table.js +64 -0
  196. package/dist/route-table.mjs +61 -0
  197. package/dist/schema-snapshot.d.ts +9 -0
  198. package/dist/schema-snapshot.js +271 -0
  199. package/dist/schema-snapshot.mjs +269 -0
  200. package/dist/sucrose.d.ts +28 -63
  201. package/dist/sucrose.js +814 -306
  202. package/dist/sucrose.mjs +805 -274
  203. package/dist/trace.d.ts +145 -130
  204. package/dist/trace.js +387 -135
  205. package/dist/trace.mjs +385 -113
  206. package/dist/type/bridge-live.d.ts +15 -0
  207. package/dist/type/bridge-live.js +39 -0
  208. package/dist/type/bridge-live.mjs +17 -0
  209. package/dist/type/bridge.d.ts +56 -0
  210. package/dist/type/bridge.js +180 -0
  211. package/dist/type/bridge.mjs +63 -0
  212. package/dist/type/coerce-plan.d.ts +38 -0
  213. package/dist/type/coerce-plan.js +107 -0
  214. package/dist/type/coerce-plan.mjs +98 -0
  215. package/dist/type/coerce.d.ts +43 -0
  216. package/dist/type/coerce.js +351 -0
  217. package/dist/type/coerce.mjs +339 -0
  218. package/dist/type/compat.d.ts +8 -0
  219. package/dist/type/compat.js +46 -0
  220. package/dist/type/compat.mjs +44 -0
  221. package/dist/type/constants.d.ts +25 -0
  222. package/dist/type/constants.js +36 -0
  223. package/dist/type/constants.mjs +32 -0
  224. package/dist/type/elysia/accelerate.d.ts +6 -0
  225. package/dist/type/elysia/accelerate.js +12 -0
  226. package/dist/type/elysia/accelerate.mjs +10 -0
  227. package/dist/type/elysia/array-buffer.d.ts +6 -0
  228. package/dist/type/elysia/array-buffer.js +27 -0
  229. package/dist/type/elysia/array-buffer.mjs +25 -0
  230. package/dist/type/elysia/array-string.d.ts +7 -0
  231. package/dist/type/elysia/array-string.js +28 -0
  232. package/dist/type/elysia/array-string.mjs +26 -0
  233. package/dist/type/elysia/array.d.ts +6 -0
  234. package/dist/type/elysia/array.js +32 -0
  235. package/dist/type/elysia/array.mjs +31 -0
  236. package/dist/type/elysia/boolean-string.d.ts +6 -0
  237. package/dist/type/elysia/boolean-string.js +24 -0
  238. package/dist/type/elysia/boolean-string.mjs +22 -0
  239. package/dist/type/elysia/boolean.d.ts +6 -0
  240. package/dist/type/elysia/boolean.js +20 -0
  241. package/dist/type/elysia/boolean.mjs +18 -0
  242. package/dist/type/elysia/cookie.d.ts +15 -0
  243. package/dist/type/elysia/cookie.js +51 -0
  244. package/dist/type/elysia/cookie.mjs +50 -0
  245. package/dist/type/elysia/date.d.ts +7 -0
  246. package/dist/type/elysia/date.js +98 -0
  247. package/dist/type/elysia/date.mjs +96 -0
  248. package/dist/type/elysia/file-type.d.ts +25 -0
  249. package/dist/type/elysia/file-type.js +81 -0
  250. package/dist/type/elysia/file-type.mjs +71 -0
  251. package/dist/type/elysia/file.d.ts +9 -0
  252. package/dist/type/elysia/file.js +64 -0
  253. package/dist/type/elysia/file.mjs +48 -0
  254. package/dist/type/elysia/files.d.ts +8 -0
  255. package/dist/type/elysia/files.js +45 -0
  256. package/dist/type/elysia/files.mjs +43 -0
  257. package/dist/type/elysia/form.d.ts +8 -0
  258. package/dist/type/elysia/form.js +17 -0
  259. package/dist/type/elysia/form.mjs +15 -0
  260. package/dist/type/elysia/integer-string.d.ts +7 -0
  261. package/dist/type/elysia/integer-string.js +40 -0
  262. package/dist/type/elysia/integer-string.mjs +38 -0
  263. package/dist/type/elysia/integer.d.ts +6 -0
  264. package/dist/type/elysia/integer.js +20 -0
  265. package/dist/type/elysia/integer.mjs +18 -0
  266. package/dist/type/elysia/intersect.d.ts +6 -0
  267. package/dist/type/elysia/intersect.js +20 -0
  268. package/dist/type/elysia/intersect.mjs +19 -0
  269. package/dist/type/elysia/maybe-empty.d.ts +7 -0
  270. package/dist/type/elysia/maybe-empty.js +21 -0
  271. package/dist/type/elysia/maybe-empty.mjs +19 -0
  272. package/dist/type/elysia/no-validate.d.ts +6 -0
  273. package/dist/type/elysia/no-validate.js +9 -0
  274. package/dist/type/elysia/no-validate.mjs +8 -0
  275. package/dist/type/elysia/nullable.d.ts +7 -0
  276. package/dist/type/elysia/nullable.js +15 -0
  277. package/dist/type/elysia/nullable.mjs +13 -0
  278. package/dist/type/elysia/number.d.ts +6 -0
  279. package/dist/type/elysia/number.js +20 -0
  280. package/dist/type/elysia/number.mjs +18 -0
  281. package/dist/type/elysia/numeric-enum.d.ts +11 -0
  282. package/dist/type/elysia/numeric-enum.js +26 -0
  283. package/dist/type/elysia/numeric-enum.mjs +24 -0
  284. package/dist/type/elysia/numeric.d.ts +7 -0
  285. package/dist/type/elysia/numeric.js +62 -0
  286. package/dist/type/elysia/numeric.mjs +60 -0
  287. package/dist/type/elysia/object-string.d.ts +7 -0
  288. package/dist/type/elysia/object-string.js +28 -0
  289. package/dist/type/elysia/object-string.mjs +26 -0
  290. package/dist/type/elysia/object.d.ts +6 -0
  291. package/dist/type/elysia/object.js +47 -0
  292. package/dist/type/elysia/object.mjs +46 -0
  293. package/dist/type/elysia/optional.d.ts +6 -0
  294. package/dist/type/elysia/optional.js +22 -0
  295. package/dist/type/elysia/optional.mjs +21 -0
  296. package/dist/type/elysia/string.d.ts +6 -0
  297. package/dist/type/elysia/string.js +43 -0
  298. package/dist/type/elysia/string.mjs +41 -0
  299. package/dist/type/elysia/uint8-array.d.ts +6 -0
  300. package/dist/type/elysia/uint8-array.js +27 -0
  301. package/dist/type/elysia/uint8-array.mjs +25 -0
  302. package/dist/type/elysia/union-enum.d.ts +8 -0
  303. package/dist/type/elysia/union-enum.js +31 -0
  304. package/dist/type/elysia/union-enum.mjs +29 -0
  305. package/dist/type/elysia/union.d.ts +6 -0
  306. package/dist/type/elysia/union.js +20 -0
  307. package/dist/type/elysia/union.mjs +19 -0
  308. package/dist/type/elysia/utils.d.ts +53 -0
  309. package/dist/type/elysia/utils.js +98 -0
  310. package/dist/type/elysia/utils.mjs +88 -0
  311. package/dist/type/exports.d.ts +36 -0
  312. package/dist/type/exports.js +68 -0
  313. package/dist/type/exports.mjs +36 -0
  314. package/dist/type/index.d.ts +13 -0
  315. package/dist/type/index.js +81 -0
  316. package/dist/type/index.mjs +68 -0
  317. package/dist/type/shared.d.ts +27 -0
  318. package/dist/type/shared.js +171 -0
  319. package/dist/type/shared.mjs +161 -0
  320. package/dist/type/types.d.ts +206 -0
  321. package/dist/type/types.js +1 -0
  322. package/dist/type/types.mjs +1 -0
  323. package/dist/type/utils.d.ts +7 -0
  324. package/dist/type/utils.js +43 -0
  325. package/dist/type/utils.mjs +41 -0
  326. package/dist/type/validator/clean-safe.d.ts +8 -0
  327. package/dist/type/validator/clean-safe.js +82 -0
  328. package/dist/type/validator/clean-safe.mjs +77 -0
  329. package/dist/type/validator/custom-error.d.ts +10 -0
  330. package/dist/type/validator/custom-error.js +191 -0
  331. package/dist/type/validator/custom-error.mjs +188 -0
  332. package/dist/type/validator/default-precompute.d.ts +26 -0
  333. package/dist/type/validator/default-precompute.js +432 -0
  334. package/dist/type/validator/default-precompute.mjs +421 -0
  335. package/dist/type/validator/exact-mirror.d.ts +7 -0
  336. package/dist/type/validator/exact-mirror.js +19 -0
  337. package/dist/type/validator/exact-mirror.mjs +15 -0
  338. package/dist/type/validator/frozen-check.d.ts +11 -0
  339. package/dist/type/validator/frozen-check.js +20 -0
  340. package/dist/type/validator/frozen-check.mjs +19 -0
  341. package/dist/type/validator/index.d.ts +32 -0
  342. package/dist/type/validator/index.js +657 -0
  343. package/dist/type/validator/index.mjs +651 -0
  344. package/dist/type/validator/string-codec-aot.d.ts +8 -0
  345. package/dist/type/validator/string-codec-aot.js +68 -0
  346. package/dist/type/validator/string-codec-aot.mjs +66 -0
  347. package/dist/type/validator/validator-cache.d.ts +26 -0
  348. package/dist/type/validator/validator-cache.js +247 -0
  349. package/dist/type/validator/validator-cache.mjs +242 -0
  350. package/dist/types.d.ts +938 -1235
  351. package/dist/types.js +1 -14
  352. package/dist/types.mjs +1 -0
  353. package/dist/universal/constants.d.ts +6 -0
  354. package/dist/universal/constants.js +19 -0
  355. package/dist/universal/constants.mjs +15 -0
  356. package/dist/universal/env.d.ts +5 -1
  357. package/dist/universal/env.js +12 -26
  358. package/dist/universal/env.mjs +10 -5
  359. package/dist/universal/file.d.ts +55 -86
  360. package/dist/universal/file.js +116 -157
  361. package/dist/universal/file.mjs +111 -132
  362. package/dist/universal/index.d.ts +5 -3
  363. package/dist/universal/index.js +8 -27
  364. package/dist/universal/index.mjs +4 -5
  365. package/dist/universal/is-production.d.ts +5 -0
  366. package/dist/universal/is-production.js +10 -0
  367. package/dist/universal/is-production.mjs +8 -0
  368. package/dist/universal/server.d.ts +318 -313
  369. package/dist/universal/server.js +1 -14
  370. package/dist/universal/server.mjs +1 -0
  371. package/dist/utils.d.ts +162 -191
  372. package/dist/utils.js +732 -693
  373. package/dist/utils.mjs +683 -631
  374. package/dist/validator/index.d.ts +63 -0
  375. package/dist/validator/index.js +299 -0
  376. package/dist/validator/index.mjs +296 -0
  377. package/dist/validator/route.d.ts +32 -0
  378. package/dist/validator/route.js +51 -0
  379. package/dist/validator/route.mjs +50 -0
  380. package/dist/ws/context.d.ts +49 -0
  381. package/dist/ws/context.js +152 -0
  382. package/dist/ws/context.mjs +150 -0
  383. package/dist/ws/index.d.ts +5 -77
  384. package/dist/ws/index.js +11 -180
  385. package/dist/ws/index.mjs +5 -157
  386. package/dist/ws/parser.d.ts +5 -0
  387. package/dist/ws/parser.js +69 -0
  388. package/dist/ws/parser.mjs +66 -0
  389. package/dist/ws/route.d.ts +16 -0
  390. package/dist/ws/route.js +560 -0
  391. package/dist/ws/route.mjs +554 -0
  392. package/dist/ws/types.d.ts +154 -57
  393. package/dist/ws/types.js +1 -14
  394. package/dist/ws/types.mjs +1 -0
  395. package/package.json +179 -120
  396. package/bunfig.toml +0 -2
  397. package/dist/adapter/bun/compose.d.ts +0 -3
  398. package/dist/adapter/bun/compose.js +0 -90
  399. package/dist/adapter/bun/compose.mjs +0 -74
  400. package/dist/adapter/bun/handler-native.d.ts +0 -3
  401. package/dist/adapter/bun/handler-native.js +0 -42
  402. package/dist/adapter/bun/handler-native.mjs +0 -22
  403. package/dist/adapter/bun/handler.d.ts +0 -7
  404. package/dist/adapter/bun/handler.js +0 -363
  405. package/dist/adapter/bun/handler.mjs +0 -346
  406. package/dist/adapter/cloudflare-worker/index.d.ts +0 -20
  407. package/dist/adapter/cloudflare-worker/index.js +0 -59
  408. package/dist/adapter/cloudflare-worker/index.mjs +0 -39
  409. package/dist/compose.d.ts +0 -30
  410. package/dist/compose.js +0 -1324
  411. package/dist/compose.mjs +0 -1336
  412. package/dist/cookies.d.ts +0 -158
  413. package/dist/cookies.js +0 -250
  414. package/dist/cookies.mjs +0 -221
  415. package/dist/dynamic-handle.d.ts +0 -15
  416. package/dist/dynamic-handle.js +0 -521
  417. package/dist/dynamic-handle.mjs +0 -509
  418. package/dist/formats.d.ts +0 -79
  419. package/dist/formats.js +0 -153
  420. package/dist/formats.mjs +0 -132
  421. package/dist/manifest.d.ts +0 -0
  422. package/dist/manifest.js +0 -1
  423. package/dist/manifest.mjs +0 -0
  424. package/dist/replace-schema.d.ts +0 -60
  425. package/dist/replace-schema.js +0 -140
  426. package/dist/replace-schema.mjs +0 -115
  427. package/dist/schema.d.ts +0 -107
  428. package/dist/schema.js +0 -833
  429. package/dist/schema.mjs +0 -814
  430. package/dist/type-system/format.d.ts +0 -55
  431. package/dist/type-system/format.js +0 -197
  432. package/dist/type-system/format.mjs +0 -175
  433. package/dist/type-system/index.d.ts +0 -45
  434. package/dist/type-system/index.js +0 -406
  435. package/dist/type-system/index.mjs +0 -394
  436. package/dist/type-system/types.d.ts +0 -155
  437. package/dist/type-system/types.js +0 -14
  438. package/dist/type-system/types.mjs +0 -0
  439. package/dist/type-system/utils.d.ts +0 -62
  440. package/dist/type-system/utils.js +0 -141
  441. package/dist/type-system/utils.mjs +0 -111
  442. package/dist/universal/request.d.ts +0 -29
  443. package/dist/universal/request.js +0 -126
  444. package/dist/universal/request.mjs +0 -105
  445. package/dist/universal/types.d.ts +0 -124
  446. package/dist/universal/types.js +0 -41
  447. package/dist/universal/types.mjs +0 -19
  448. package/dist/universal/utils.d.ts +0 -3
  449. package/dist/universal/utils.js +0 -41
  450. package/dist/universal/utils.mjs +0 -18
  451. package/dist/ws/bun.d.ts +0 -419
  452. package/dist/ws/bun.js +0 -14
  453. package/dist/ws/bun.mjs +0 -0
  454. package/knip.json +0 -22
@@ -0,0 +1,367 @@
1
+ import { flattenChain, isNotEmpty, nullObject, requestId } from "../utils.mjs";
2
+ import { isProduction } from "../universal/is-production.mjs";
3
+ import { NotFound, PROBLEM_JSON, internalServerErrorResponse } from "../error.mjs";
4
+ import { handleSet, materializeSetHeaders } from "../adapter/utils.mjs";
5
+ import { NOT_FOUND_BODY, emptyResponse, getAsyncIndexes, getNotFound } from "./utils.mjs";
6
+ import { origin } from "../adapter/origin.mjs";
7
+ import { defaultAdapter } from "../adapter/constants.mjs";
8
+ import { createContext } from "../context.mjs";
9
+ import { createErrorHandler } from "./error.mjs";
10
+ import decodeComponent from "deuri";
11
+
12
+ //#region src/handler/fetch.ts
13
+ function extractPath(url, context, pathStart) {
14
+ const s = url.indexOf("/", pathStart);
15
+ const q = context.qi = url.indexOf("?", s);
16
+ return context.path = q === -1 ? url.slice(s) : url.substring(s, q);
17
+ }
18
+ function notFound(context) {
19
+ const set = context.set;
20
+ if (set.cookie || isNotEmpty(set.headers)) {
21
+ handleSet(set);
22
+ if (!set.headers["content-type"]) materializeSetHeaders(set)["content-type"] = PROBLEM_JSON;
23
+ return new Response(NOT_FOUND_BODY, {
24
+ status: 404,
25
+ headers: set.headers
26
+ });
27
+ }
28
+ return getNotFound();
29
+ }
30
+ function decodeParams(params) {
31
+ for (const key in params) {
32
+ const value = params[key];
33
+ if (value.indexOf("%") !== -1) params[key] = decodeComponent(value) ?? value;
34
+ }
35
+ return params;
36
+ }
37
+ const notFoundBody = Object.freeze({ code: "NOT_FOUND" });
38
+ function finalizeError(context, handleError, afterResponse, error) {
39
+ if (error === notFoundBody) error = new NotFound();
40
+ let resp;
41
+ try {
42
+ resp = handleError(context, error);
43
+ } catch (errorPipelineThrow) {
44
+ if (!isProduction()) console.error(errorPipelineThrow);
45
+ resp = internalServerErrorResponse(error);
46
+ }
47
+ if (resp instanceof Promise) return resp.then((r) => {
48
+ afterResponse?.(context);
49
+ return r;
50
+ }, (errorPipelineThrow) => {
51
+ if (!isProduction()) console.error(errorPipelineThrow);
52
+ const r = internalServerErrorResponse(error);
53
+ afterResponse?.(context);
54
+ return r;
55
+ });
56
+ afterResponse?.(context);
57
+ return resp;
58
+ }
59
+ const catchError = (context, handleError, afterResponse) => (error) => finalizeError(context, handleError, afterResponse, error);
60
+ function dispatchResult(result, context, handleError, afterResponse) {
61
+ if (result instanceof Promise) return result.catch(catchError(context, handleError, afterResponse));
62
+ if (typeof result?.then === "function") return Promise.resolve(result).catch(catchError(context, handleError, afterResponse));
63
+ return result;
64
+ }
65
+ function findRoute(context, request, map, router, hasError, handleError, afterResponse, strictPath, hasWS, hasDynamicWS) {
66
+ const path = context.path;
67
+ if (hasWS && request.method === "GET") {
68
+ const handler = map["WS"]?.[path];
69
+ const found = handler === void 0 && hasDynamicWS ? router?.find("WS", path) : void 0;
70
+ if (handler !== void 0 || found) {
71
+ const upgrade = request.headers.get("upgrade");
72
+ if (upgrade && upgrade.toLowerCase() === "websocket") {
73
+ if (handler) {
74
+ const r = handler(context);
75
+ return r instanceof Promise ? r.catch(catchError(context, handleError, afterResponse)) : r;
76
+ }
77
+ context.params = path.indexOf("%") === -1 ? found.params : decodeParams(found.params);
78
+ const r = found.store(context);
79
+ return r instanceof Promise ? r.catch(catchError(context, handleError, afterResponse)) : r;
80
+ }
81
+ }
82
+ }
83
+ const method = request.method;
84
+ const methodMap = map[method];
85
+ let handler = methodMap?.[path];
86
+ if (!handler) if (!strictPath && path.length > 1 && path.charCodeAt(path.length - 1) === 47) {
87
+ const loose = path.slice(0, -1);
88
+ handler = methodMap?.[loose];
89
+ if (!handler) {
90
+ const anyMap = map["*"];
91
+ handler = anyMap?.[path] ?? anyMap?.[loose];
92
+ }
93
+ } else handler = map["*"]?.[path];
94
+ if (handler) return dispatchResult(handler(context), context, handleError, afterResponse);
95
+ const found = router?.find(method, path) ?? router?.find("*", path);
96
+ if (found) {
97
+ context.params = path.indexOf("%") === -1 ? found.params : decodeParams(found.params);
98
+ return dispatchResult(found.store(context), context, handleError, afterResponse);
99
+ }
100
+ if (hasError) return finalizeError(context, handleError, afterResponse, notFoundBody);
101
+ afterResponse?.(context, 404);
102
+ return notFound(context);
103
+ }
104
+ function createFetchHandler(app) {
105
+ const Context = createContext(app);
106
+ const map = app["~map"] ?? nullObject();
107
+ const router = app["~router"];
108
+ const hasWS = !!app["~hasWS"];
109
+ const hasDynamicWS = hasWS && !!app["~hasDynamicWS"];
110
+ const strictPath = !!app["~config"]?.strictPath;
111
+ const pathStart = app["~config"]?.handler?.standardHostname === false ? 7 : 11;
112
+ const hook = flattenChain(app["~hookChain"]);
113
+ const hasError = !!hook?.error;
114
+ const abortSignal = app["~config"]?.abortSignal !== false;
115
+ /**
116
+ * Arm `context['~sig']` unless this request is provably the untouched
117
+ * `Request` the Bun adapter received, in which case materializing
118
+ * `request.signal` is deferred to the first suspension
119
+ * @see `../adapter/origin`
120
+ *
121
+ * Anything without provenance, `app.handle`, every non-Bun adapter, or a
122
+ * `.wrap()` HOC that substituted or delayed the request, falls back to
123
+ * today's eager behaviour
124
+ */
125
+ const armEager = (request, context) => {
126
+ if (!abortSignal || request === origin.request) return false;
127
+ return (context["~sig"] = request.signal).aborted;
128
+ };
129
+ /**
130
+ * Post-suspension check: arm if nobody has yet, then read. Only emitted on
131
+ * lanes that actually awaited, so a deferred request that never suspends
132
+ * never reaches it.
133
+ */
134
+ const armedAbort = (request, context) => abortSignal && (context["~sig"] ??= request.signal).aborted === true;
135
+ const baseMapResponse = (app["~config"]?.adapter ?? defaultAdapter).response.map;
136
+ const mapResponseHooks = hook?.mapResponse;
137
+ const mapResponse = mapResponseHooks?.length ? (response, set, context) => {
138
+ if (!context) return baseMapResponse(response, set, void 0, true);
139
+ context.responseValue = response;
140
+ const request = context.request;
141
+ const run = (i) => {
142
+ for (; i < mapResponseHooks.length; i++) {
143
+ const result = mapResponseHooks[i](context);
144
+ if (result instanceof Promise) return result.then((resolved) => {
145
+ if (resolved !== void 0) return baseMapResponse(resolved, set, request, true);
146
+ return run(i + 1);
147
+ });
148
+ if (result !== void 0) return baseMapResponse(result, set, request, true);
149
+ }
150
+ return baseMapResponse(response, set, request, true);
151
+ };
152
+ return run(0);
153
+ } : (response, set, context) => baseMapResponse(response, set, context?.request, true);
154
+ const handleError = createErrorHandler(hook?.error, mapResponse, void 0, app["~config"]?.allowUnsafeValidationDetails);
155
+ const traceHandlers = hook?.trace;
156
+ const hasTrace = !!traceHandlers?.length;
157
+ const traceProvider = hasTrace ? app["~resolvedCapability"]("trace") : void 0;
158
+ const tracePhases = hasTrace ? traceProvider.unionTracePhases(traceHandlers) : null;
159
+ const traceRequestPhase = hasTrace && (tracePhases === null || tracePhases.has("request"));
160
+ const traceAfterResponsePhase = hasTrace && (tracePhases === null || tracePhases.has("afterResponse"));
161
+ const tracerFactories = hasTrace ? traceHandlers.map((fn) => traceProvider.createTracer(fn)) : void 0;
162
+ const afterResponses = hook?.afterResponse;
163
+ const afterResponse = (context, status) => {
164
+ if (context._arf) return;
165
+ const queue = context["~afterResponse"];
166
+ if (!afterResponses?.length && !traceAfterResponsePhase && !queue?.length) return;
167
+ context._arf = true;
168
+ if (status !== void 0) context.set.status = status;
169
+ queueMicrotask(async () => {
170
+ if (afterResponses?.length || queue?.length) materializeSetHeaders(context.set);
171
+ if (afterResponses) for (let i = 0; i < afterResponses.length; i++) try {
172
+ await afterResponses[i](context);
173
+ } catch (e) {
174
+ console.error(e);
175
+ }
176
+ if (queue) for (let i = 0; i < queue.length; i++) try {
177
+ await queue[i](context);
178
+ } catch (e) {
179
+ console.error(e);
180
+ }
181
+ if (traceAfterResponsePhase) {
182
+ let cache = context.trace;
183
+ if (!cache && tracerFactories) {
184
+ context.rid ??= requestId();
185
+ cache = tracerFactories.map((f) => f(context));
186
+ context.trace = cache;
187
+ }
188
+ if (cache) for (let i = 0; i < cache.length; i++) {
189
+ const fast = cache[i].b(7, afterResponses?.length ?? 0);
190
+ if (fast) {
191
+ cache[i].r(fast);
192
+ continue;
193
+ }
194
+ cache[i].begin(7, {
195
+ id: context.rid ?? "",
196
+ event: "afterResponse",
197
+ name: "afterResponse",
198
+ begin: performance.now(),
199
+ total: afterResponses?.length ?? 0
200
+ }).resolve();
201
+ }
202
+ }
203
+ });
204
+ };
205
+ app["~finalizeError"] = (context, error) => finalizeError(context, handleError, afterResponse, error);
206
+ if (traceRequestPhase) {
207
+ const onRequests = hook?.request ?? [];
208
+ const asyncIndexes = onRequests.length ? getAsyncIndexes(onRequests) : void 0;
209
+ return async (request, server) => {
210
+ const context = new Context(request);
211
+ materializeSetHeaders(context.set);
212
+ if (armEager(request, context)) return emptyResponse.clone();
213
+ extractPath(request.url, context, pathStart);
214
+ context.server = server ?? null;
215
+ context.rid = requestId();
216
+ const traceLength = tracerFactories.length;
217
+ const trace = new Array(traceLength);
218
+ for (let i = 0; i < traceLength; i++) trace[i] = tracerFactories[i](context);
219
+ context.trace = trace;
220
+ const requestReports = new Array(traceLength);
221
+ for (let i = 0; i < traceLength; i++) requestReports[i] = trace[i].b(0, onRequests.length) || trace[i].begin(0, {
222
+ id: context.rid,
223
+ event: "request",
224
+ name: "request",
225
+ begin: performance.now(),
226
+ total: onRequests.length
227
+ });
228
+ try {
229
+ const endReports = new Array(traceLength);
230
+ for (let i = 0; i < onRequests.length; i++) {
231
+ for (let j = 0; j < traceLength; j++) endReports[j] = requestReports[j].resolveChild?.shift?.()?.({
232
+ id: context.rid,
233
+ event: "request",
234
+ name: onRequests[i].name || "anonymous",
235
+ begin: performance.now()
236
+ });
237
+ const result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
238
+ for (let i = 0; i < traceLength; i++) endReports[i]?.();
239
+ if (armedAbort(request, context)) {
240
+ for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
241
+ return emptyResponse.clone();
242
+ }
243
+ if (result !== void 0) {
244
+ for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
245
+ const response = await mapResponse(result, context.set, context);
246
+ afterResponse?.(context);
247
+ return response;
248
+ }
249
+ }
250
+ for (let i = 0; i < traceLength; i++) trace[i].r(requestReports[i]);
251
+ return await findRoute(context, request, map, router, hasError, handleError, afterResponse, strictPath, hasWS, hasDynamicWS);
252
+ } catch (error) {
253
+ for (let i = 0; i < traceLength; i++) trace[i].r(requestReports[i], error);
254
+ return finalizeError(context, handleError, afterResponse, error);
255
+ }
256
+ };
257
+ }
258
+ if (hook?.request) {
259
+ const onRequests = hook.request;
260
+ const asyncIndexes = getAsyncIndexes(onRequests);
261
+ if (asyncIndexes) return async (request, server) => {
262
+ const context = new Context(request);
263
+ materializeSetHeaders(context.set);
264
+ if (armEager(request, context)) return emptyResponse.clone();
265
+ extractPath(request.url, context, pathStart);
266
+ context.server = server ?? null;
267
+ try {
268
+ for (let i = 0; i < onRequests.length; i++) {
269
+ let result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
270
+ if (result instanceof Promise) result = await result;
271
+ if (armedAbort(request, context)) return emptyResponse.clone();
272
+ if (result !== void 0) {
273
+ const response = await mapResponse(result, context.set, context);
274
+ afterResponse?.(context);
275
+ return response;
276
+ }
277
+ }
278
+ return findRoute(context, request, map, router, hasError, handleError, afterResponse, strictPath, hasWS, hasDynamicWS);
279
+ } catch (error) {
280
+ return finalizeError(context, handleError, afterResponse, error);
281
+ }
282
+ };
283
+ return (request, server) => {
284
+ const context = new Context(request);
285
+ materializeSetHeaders(context.set);
286
+ if (armEager(request, context)) return emptyResponse.clone();
287
+ extractPath(request.url, context, pathStart);
288
+ context.server = server ?? null;
289
+ try {
290
+ for (let i = 0; i < onRequests.length; i++) {
291
+ const result = onRequests[i](context);
292
+ if (abortSignal && context["~sig"]?.aborted) return emptyResponse.clone();
293
+ if (result !== void 0) {
294
+ const response = mapResponse(result, context.set, context);
295
+ if (response instanceof Promise) return response.then((response) => {
296
+ afterResponse?.(context);
297
+ return response;
298
+ }, catchError(context, handleError, afterResponse));
299
+ afterResponse?.(context);
300
+ return response;
301
+ }
302
+ }
303
+ return findRoute(context, request, map, router, hasError, handleError, afterResponse, strictPath, hasWS, hasDynamicWS);
304
+ } catch (error) {
305
+ return finalizeError(context, handleError, afterResponse, error);
306
+ }
307
+ };
308
+ }
309
+ return (request, server) => {
310
+ const context = new Context(request);
311
+ const path = extractPath(request.url, context, pathStart);
312
+ context.server = server ?? null;
313
+ const method = request.method;
314
+ if (hasWS && method === "GET") {
315
+ const handler = map["WS"]?.[path];
316
+ const found = handler === void 0 && hasDynamicWS ? router?.find("WS", path) : void 0;
317
+ if (handler !== void 0 || found) {
318
+ const upgrade = request.headers.get("upgrade");
319
+ if (upgrade && upgrade.toLowerCase() === "websocket") try {
320
+ if (handler) {
321
+ const r = handler(context);
322
+ return r instanceof Promise ? r.catch(catchError(context, handleError, afterResponse)) : r;
323
+ }
324
+ context.params = path.indexOf("%") === -1 ? found.params : decodeParams(found.params);
325
+ const r = found.store(context);
326
+ return r instanceof Promise ? r.catch(catchError(context, handleError, afterResponse)) : r;
327
+ } catch (error) {
328
+ return finalizeError(context, handleError, afterResponse, error);
329
+ }
330
+ }
331
+ }
332
+ try {
333
+ const methodMap = map[method];
334
+ let handler = methodMap?.[path];
335
+ if (handler) return dispatchResult(handler(context), context, handleError, afterResponse);
336
+ if (!strictPath && path.length > 1 && path.charCodeAt(path.length - 1) === 47) {
337
+ const loose = path.slice(0, -1);
338
+ handler = methodMap?.[loose];
339
+ if (!handler) {
340
+ const anyMap = map["*"];
341
+ handler = anyMap?.[path] ?? anyMap?.[loose];
342
+ }
343
+ } else handler = map["*"]?.[path];
344
+ if (handler) return dispatchResult(handler(context), context, handleError, afterResponse);
345
+ const result = router?.find(method, path) ?? router?.find("*", path);
346
+ if (result) {
347
+ context.params = path.indexOf("%") === -1 ? result.params : decodeParams(result.params);
348
+ return dispatchResult(result.store(context), context, handleError, afterResponse);
349
+ }
350
+ } catch (error) {
351
+ return finalizeError(context, handleError, afterResponse, error);
352
+ }
353
+ if (hasError) return finalizeError(context, handleError, afterResponse, notFoundBody);
354
+ afterResponse?.(context, 404);
355
+ return notFound(context);
356
+ };
357
+ }
358
+ function applyHoc(app, fetch) {
359
+ const hoc = app["~ext"]?.hoc;
360
+ if (!hoc?.length) return fetch;
361
+ let handler = fetch;
362
+ for (let i = hoc.length - 1; i >= 0; i--) handler = hoc[i](handler);
363
+ return handler;
364
+ }
365
+
366
+ //#endregion
367
+ export { applyHoc, createFetchHandler };
@@ -0,0 +1,2 @@
1
+ import { applyHoc, createFetchHandler } from "./fetch.js";
2
+ export { applyHoc, createFetchHandler };
@@ -0,0 +1,5 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_handler_fetch = require('./fetch.js');
3
+
4
+ exports.applyHoc = require_handler_fetch.applyHoc;
5
+ exports.createFetchHandler = require_handler_fetch.createFetchHandler;
@@ -0,0 +1,3 @@
1
+ import { applyHoc, createFetchHandler } from "./fetch.mjs";
2
+
3
+ export { applyHoc, createFetchHandler };
@@ -0,0 +1,15 @@
1
+ import { MaybePromise } from "../types.js";
2
+ import { Context } from "../context.js";
3
+ import { AnyElysia } from "../base.js";
4
+
5
+ //#region src/handler/utils.d.ts
6
+ declare const emptyResponse: Response | {
7
+ clone: () => Response;
8
+ };
9
+ declare const NOT_FOUND_BODY: string;
10
+ declare const getNotFound: () => Response;
11
+ declare function forwardError<T>(value: T): T;
12
+ declare function finalizeRouteError(app: AnyElysia, context: Partial<Context>, error: unknown): MaybePromise<Response>;
13
+ declare function getAsyncIndexes(onRequests: Function[]): (true | undefined)[] | undefined;
14
+ //#endregion
15
+ export { NOT_FOUND_BODY, emptyResponse, finalizeRouteError, forwardError, getAsyncIndexes, getNotFound };
@@ -0,0 +1,48 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_universal_constants = require('../universal/constants.js');
3
+ const require_error = require('../error.js');
4
+ const require_compile_utils = require('../compile/utils.js');
5
+
6
+ //#region src/handler/utils.ts
7
+ const emptyResponse = require_universal_constants.isCloudflareWorker ? { clone: () => new Response(null) } : new Response(null);
8
+ function cachedResponse(body, status, headers) {
9
+ let cached;
10
+ return () => require_universal_constants.isCloudflareWorker ? new Response(body, {
11
+ status,
12
+ headers
13
+ }) : (cached ??= new Response(body, {
14
+ status,
15
+ headers
16
+ })).clone();
17
+ }
18
+ const NOT_FOUND_BODY = JSON.stringify({
19
+ type: "not-found",
20
+ title: "Not Found",
21
+ status: 404
22
+ });
23
+ const getNotFound = cachedResponse(NOT_FOUND_BODY, 404, { "content-type": require_error.PROBLEM_JSON });
24
+ function forwardError(value) {
25
+ if (value instanceof Error) throw value;
26
+ return value;
27
+ }
28
+ function finalizeRouteError(app, context, error) {
29
+ const finalize = app["~finalizeError"];
30
+ if (!finalize) throw error;
31
+ return finalize(context, error);
32
+ }
33
+ function getAsyncIndexes(onRequests) {
34
+ let asyncIndexes;
35
+ for (let i = 0; i < onRequests.length; i++) if (require_compile_utils.isAsyncFunction(onRequests[i]) || require_compile_utils.mayReturnPromise(onRequests[i])) {
36
+ asyncIndexes ??= new Array(onRequests.length);
37
+ asyncIndexes[i] = true;
38
+ }
39
+ return asyncIndexes;
40
+ }
41
+
42
+ //#endregion
43
+ exports.NOT_FOUND_BODY = NOT_FOUND_BODY;
44
+ exports.emptyResponse = emptyResponse;
45
+ exports.finalizeRouteError = finalizeRouteError;
46
+ exports.forwardError = forwardError;
47
+ exports.getAsyncIndexes = getAsyncIndexes;
48
+ exports.getNotFound = getNotFound;
@@ -0,0 +1,42 @@
1
+ import { isCloudflareWorker } from "../universal/constants.mjs";
2
+ import { PROBLEM_JSON } from "../error.mjs";
3
+ import { isAsyncFunction, mayReturnPromise } from "../compile/utils.mjs";
4
+
5
+ //#region src/handler/utils.ts
6
+ const emptyResponse = isCloudflareWorker ? { clone: () => new Response(null) } : new Response(null);
7
+ function cachedResponse(body, status, headers) {
8
+ let cached;
9
+ return () => isCloudflareWorker ? new Response(body, {
10
+ status,
11
+ headers
12
+ }) : (cached ??= new Response(body, {
13
+ status,
14
+ headers
15
+ })).clone();
16
+ }
17
+ const NOT_FOUND_BODY = JSON.stringify({
18
+ type: "not-found",
19
+ title: "Not Found",
20
+ status: 404
21
+ });
22
+ const getNotFound = cachedResponse(NOT_FOUND_BODY, 404, { "content-type": PROBLEM_JSON });
23
+ function forwardError(value) {
24
+ if (value instanceof Error) throw value;
25
+ return value;
26
+ }
27
+ function finalizeRouteError(app, context, error) {
28
+ const finalize = app["~finalizeError"];
29
+ if (!finalize) throw error;
30
+ return finalize(context, error);
31
+ }
32
+ function getAsyncIndexes(onRequests) {
33
+ let asyncIndexes;
34
+ for (let i = 0; i < onRequests.length; i++) if (isAsyncFunction(onRequests[i]) || mayReturnPromise(onRequests[i])) {
35
+ asyncIndexes ??= new Array(onRequests.length);
36
+ asyncIndexes[i] = true;
37
+ }
38
+ return asyncIndexes;
39
+ }
40
+
41
+ //#endregion
42
+ export { NOT_FOUND_BODY, emptyResponse, finalizeRouteError, forwardError, getAsyncIndexes, getNotFound };