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,63 @@
1
+ //#region src/adapter/origin.d.ts
2
+ /**
3
+ * Provenance channel for deferred abort-signal arming.
4
+ *
5
+ * Bun materializes `Request.signal` lazily (~214ns on the first read), so
6
+ * Elysia only pays for it once the pipeline can actually observe an abort,
7
+ * that is, after it suspends. Deferring that read is only sound for the exact
8
+ * `Request` instance `Bun.serve` handed to `fetch`: any other request
9
+ * (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
10
+ * request) may carry a user-controlled signal that is already aborted at entry
11
+ * and therefore must be observed synchronously.
12
+ *
13
+ * The Bun adapter publishes the untouched original here for the *synchronous*
14
+ * prologue of `app.fetch` and, on the lane where `fetch` has no request hook
15
+ * to run, for the compiled route's own entry probe, which is still inside that
16
+ * same synchronous frame, then clears it in `finally`, so the window closes
17
+ * before the first suspension and cannot leak across concurrent requests.
18
+ * A `.wrap()` HOC that replaces the request or defers calling `next()` past a
19
+ * microtask simply misses the window, fetch handler falls back to eager check
20
+ *
21
+ * ## "A single shared slot that every request writes to, so a race condition?"
22
+ *
23
+ * It looks like one, but it can't be. Explained like you're five:
24
+ *
25
+ * JavaScript only ever does ONE thing at a time. When a request comes in, the
26
+ * adapter writes its name on the whiteboard (`origin.request = request`),
27
+ * walks it down the hall (`fetch(request)` the synchronous part, where the
28
+ * one and only identity check happens, in `fetch`'s prologue, or at the
29
+ * compiled route's entry when `fetch` had no hook to run first), and erases
30
+ * the whiteboard `finally`
31
+ * all in one uninterruptible turn. The next request's turn CANNOT start
32
+ * until this turn is completely finished, because that is how the event loop
33
+ * works: run-to-completion, no preemption. So request B can never see request
34
+ * A's name on the board, by the time B's turn starts, the board was already
35
+ * erased at the end of A's turn.
36
+ *
37
+ * "But the handler is async!" the `await`s inside it run LATER, in separate
38
+ * turns. That is fine, because the check already happened: the verdict was
39
+ * copied onto that request's own context (`'~sig'`) during the synchronous
40
+ * part, and the code that runs after an `await` only ever reads the context,
41
+ * never this slot.
42
+ *
43
+ * And if any assumption here ever breaks, a runtime that re-enters, a wrap
44
+ * that delays, a future edit that sneaks an `await` in before the check the
45
+ * comparison simply MISSES and the request falls back to eager arming, which
46
+ * is the exact pre-optimization behavior. Every failure mode makes a request
47
+ * slightly slower, never incorrect
48
+ *
49
+ * Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
50
+ * concurrent servers, in-process `handle()` calls, request-substituting and
51
+ * `next()`-delaying wraps at this slot and asserts zero misclassification.
52
+ *
53
+ * Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
54
+ * Workers pass `env` there.
55
+ *
56
+ * It's insanely stupid, but it works. As Bun is single-threaded and synchronous
57
+ * so the `finally` block will always run before the next request comes in.
58
+ */
59
+ declare const origin: {
60
+ request: Request | undefined;
61
+ };
62
+ //#endregion
63
+ export { origin };
@@ -0,0 +1,64 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/adapter/origin.ts
4
+ /**
5
+ * Provenance channel for deferred abort-signal arming.
6
+ *
7
+ * Bun materializes `Request.signal` lazily (~214ns on the first read), so
8
+ * Elysia only pays for it once the pipeline can actually observe an abort,
9
+ * that is, after it suspends. Deferring that read is only sound for the exact
10
+ * `Request` instance `Bun.serve` handed to `fetch`: any other request
11
+ * (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
12
+ * request) may carry a user-controlled signal that is already aborted at entry
13
+ * and therefore must be observed synchronously.
14
+ *
15
+ * The Bun adapter publishes the untouched original here for the *synchronous*
16
+ * prologue of `app.fetch` and, on the lane where `fetch` has no request hook
17
+ * to run, for the compiled route's own entry probe, which is still inside that
18
+ * same synchronous frame, then clears it in `finally`, so the window closes
19
+ * before the first suspension and cannot leak across concurrent requests.
20
+ * A `.wrap()` HOC that replaces the request or defers calling `next()` past a
21
+ * microtask simply misses the window, fetch handler falls back to eager check
22
+ *
23
+ * ## "A single shared slot that every request writes to, so a race condition?"
24
+ *
25
+ * It looks like one, but it can't be. Explained like you're five:
26
+ *
27
+ * JavaScript only ever does ONE thing at a time. When a request comes in, the
28
+ * adapter writes its name on the whiteboard (`origin.request = request`),
29
+ * walks it down the hall (`fetch(request)` the synchronous part, where the
30
+ * one and only identity check happens, in `fetch`'s prologue, or at the
31
+ * compiled route's entry when `fetch` had no hook to run first), and erases
32
+ * the whiteboard `finally`
33
+ * all in one uninterruptible turn. The next request's turn CANNOT start
34
+ * until this turn is completely finished, because that is how the event loop
35
+ * works: run-to-completion, no preemption. So request B can never see request
36
+ * A's name on the board, by the time B's turn starts, the board was already
37
+ * erased at the end of A's turn.
38
+ *
39
+ * "But the handler is async!" the `await`s inside it run LATER, in separate
40
+ * turns. That is fine, because the check already happened: the verdict was
41
+ * copied onto that request's own context (`'~sig'`) during the synchronous
42
+ * part, and the code that runs after an `await` only ever reads the context,
43
+ * never this slot.
44
+ *
45
+ * And if any assumption here ever breaks, a runtime that re-enters, a wrap
46
+ * that delays, a future edit that sneaks an `await` in before the check the
47
+ * comparison simply MISSES and the request falls back to eager arming, which
48
+ * is the exact pre-optimization behavior. Every failure mode makes a request
49
+ * slightly slower, never incorrect
50
+ *
51
+ * Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
52
+ * concurrent servers, in-process `handle()` calls, request-substituting and
53
+ * `next()`-delaying wraps at this slot and asserts zero misclassification.
54
+ *
55
+ * Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
56
+ * Workers pass `env` there.
57
+ *
58
+ * It's insanely stupid, but it works. As Bun is single-threaded and synchronous
59
+ * so the `finally` block will always run before the next request comes in.
60
+ */
61
+ const origin = { request: void 0 };
62
+
63
+ //#endregion
64
+ exports.origin = origin;
@@ -0,0 +1,62 @@
1
+ //#region src/adapter/origin.ts
2
+ /**
3
+ * Provenance channel for deferred abort-signal arming.
4
+ *
5
+ * Bun materializes `Request.signal` lazily (~214ns on the first read), so
6
+ * Elysia only pays for it once the pipeline can actually observe an abort,
7
+ * that is, after it suspends. Deferring that read is only sound for the exact
8
+ * `Request` instance `Bun.serve` handed to `fetch`: any other request
9
+ * (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
10
+ * request) may carry a user-controlled signal that is already aborted at entry
11
+ * and therefore must be observed synchronously.
12
+ *
13
+ * The Bun adapter publishes the untouched original here for the *synchronous*
14
+ * prologue of `app.fetch` and, on the lane where `fetch` has no request hook
15
+ * to run, for the compiled route's own entry probe, which is still inside that
16
+ * same synchronous frame, then clears it in `finally`, so the window closes
17
+ * before the first suspension and cannot leak across concurrent requests.
18
+ * A `.wrap()` HOC that replaces the request or defers calling `next()` past a
19
+ * microtask simply misses the window, fetch handler falls back to eager check
20
+ *
21
+ * ## "A single shared slot that every request writes to, so a race condition?"
22
+ *
23
+ * It looks like one, but it can't be. Explained like you're five:
24
+ *
25
+ * JavaScript only ever does ONE thing at a time. When a request comes in, the
26
+ * adapter writes its name on the whiteboard (`origin.request = request`),
27
+ * walks it down the hall (`fetch(request)` the synchronous part, where the
28
+ * one and only identity check happens, in `fetch`'s prologue, or at the
29
+ * compiled route's entry when `fetch` had no hook to run first), and erases
30
+ * the whiteboard `finally`
31
+ * all in one uninterruptible turn. The next request's turn CANNOT start
32
+ * until this turn is completely finished, because that is how the event loop
33
+ * works: run-to-completion, no preemption. So request B can never see request
34
+ * A's name on the board, by the time B's turn starts, the board was already
35
+ * erased at the end of A's turn.
36
+ *
37
+ * "But the handler is async!" the `await`s inside it run LATER, in separate
38
+ * turns. That is fine, because the check already happened: the verdict was
39
+ * copied onto that request's own context (`'~sig'`) during the synchronous
40
+ * part, and the code that runs after an `await` only ever reads the context,
41
+ * never this slot.
42
+ *
43
+ * And if any assumption here ever breaks, a runtime that re-enters, a wrap
44
+ * that delays, a future edit that sneaks an `await` in before the check the
45
+ * comparison simply MISSES and the request falls back to eager arming, which
46
+ * is the exact pre-optimization behavior. Every failure mode makes a request
47
+ * slightly slower, never incorrect
48
+ *
49
+ * Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
50
+ * concurrent servers, in-process `handle()` calls, request-substituting and
51
+ * `next()`-delaying wraps at this slot and asserts zero misclassification.
52
+ *
53
+ * Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
54
+ * Workers pass `env` there.
55
+ *
56
+ * It's insanely stupid, but it works. As Bun is single-threaded and synchronous
57
+ * so the `finally` block will always run before the next request comes in.
58
+ */
59
+ const origin = { request: void 0 };
60
+
61
+ //#endregion
62
+ export { origin };
@@ -0,0 +1,5 @@
1
+ //#region src/adapter/response-ownership.d.ts
2
+ declare function borrow<const T extends Response>(response: T): T;
3
+ declare const isBorrowedResponse: (response: Response) => boolean;
4
+ //#endregion
5
+ export { borrow, isBorrowedResponse };
@@ -0,0 +1,13 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/adapter/response-ownership.ts
4
+ const borrowedResponses = /* @__PURE__ */ new WeakSet();
5
+ function borrow(response) {
6
+ borrowedResponses.add(response);
7
+ return response;
8
+ }
9
+ const isBorrowedResponse = (response) => borrowedResponses.has(response);
10
+
11
+ //#endregion
12
+ exports.borrow = borrow;
13
+ exports.isBorrowedResponse = isBorrowedResponse;
@@ -0,0 +1,10 @@
1
+ //#region src/adapter/response-ownership.ts
2
+ const borrowedResponses = /* @__PURE__ */ new WeakSet();
3
+ function borrow(response) {
4
+ borrowedResponses.add(response);
5
+ return response;
6
+ }
7
+ const isBorrowedResponse = (response) => borrowedResponses.has(response);
8
+
9
+ //#endregion
10
+ export { borrow, isBorrowedResponse };
@@ -0,0 +1,4 @@
1
+ //#region src/adapter/skip-clone.d.ts
2
+ declare const skipClone: WeakSet<object>;
3
+ //#endregion
4
+ export { skipClone };
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/adapter/skip-clone.ts
4
+ const skipClone = /* @__PURE__ */ new WeakSet();
5
+
6
+ //#endregion
7
+ exports.skipClone = skipClone;
@@ -0,0 +1,5 @@
1
+ //#region src/adapter/skip-clone.ts
2
+ const skipClone = /* @__PURE__ */ new WeakSet();
3
+
4
+ //#endregion
5
+ export { skipClone };
@@ -1,130 +1,55 @@
1
- import type { Serve, ListenCallback } from '../universal/server';
2
- import type { AnyElysia } from '..';
3
- import type { Context } from '../context';
4
- import type { Sucrose } from '../sucrose';
5
- import type { Prettify, AnyLocalHook, MaybePromise } from '../types';
6
- import type { AnyWSLocalHook } from '../ws/types';
7
- export interface ElysiaAdapter {
8
- name: string;
9
- listen(app: AnyElysia): (options: string | number | Partial<Serve>, callback?: ListenCallback) => void;
1
+ import { ListenCallback, Serve } from "../universal/server.js";
2
+ import { MaybePromise } from "../types.js";
3
+ import { Context } from "../context.js";
4
+ import { AnyElysia } from "../base.js";
5
+
6
+ //#region src/adapter/types.d.ts
7
+ /**
8
+ * Elysia adapter 2
9
+ *
10
+ * @since 2.0.0
11
+ */
12
+ interface ElysiaAdapterOptions<App extends AnyElysia | void = void> {
13
+ /**
14
+ * Name of the adapter, preferably runtime
15
+ */
16
+ name: string;
17
+ /**
18
+ *
19
+ * @param app
20
+ */
21
+ runtime: 'node' | 'deno' | 'bun' | 'cloudflare-worker' | 'browser' | 'vercel' | 'netlify' | 'lambda' | 'fastly' | 'edge' | 'unknown' | (string & {});
22
+ /**
23
+ * Whether this adapter is web standard
24
+ */
25
+ isWebStandard: boolean;
26
+ /**
27
+ * Whether this adapter supports WebSocket.
28
+ *
29
+ * `.ws()` throws on non-Bun runtimes unless this is set.
30
+ */
31
+ websocket?: boolean;
32
+ listen?(app: AnyElysia, options: string | number | Partial<Serve>, callback?: ListenCallback): void;
33
+ parse: {
34
+ json: (context: Context) => MaybePromise<Record<keyof any, undefined> | unknown[]>;
35
+ text: (context: Context) => MaybePromise<string>;
36
+ urlencoded: (context: Context) => MaybePromise<Record<string, string | string[]>>;
37
+ arrayBuffer: (context: Context) => MaybePromise<ArrayBuffer>;
38
+ formData: (context: Context) => MaybePromise<Record<string, unknown>>;
39
+ default: (context: Context, contentType: string, normalized?: boolean) => MaybePromise<any>;
40
+ };
41
+ response: {
10
42
  /**
11
- * Stop server from serving
12
- *
13
- * ---
14
- * @example
15
- * ```typescript
16
- * app.stop()
17
- * ```
18
- *
19
- * @example
20
- * ```typescript
21
- * app.stop(true) // Abruptly any requests inflight
22
- * ```
43
+ * Map return response on every case
23
44
  */
24
- stop?(app: AnyElysia, closeActiveConnections?: boolean): Promise<void>;
25
- isWebStandard?: boolean;
26
- handler: {
27
- /**
28
- * Map return response on every case
29
- */
30
- mapResponse(response: unknown, set: Context['set'], ...params: unknown[]): unknown;
31
- /**
32
- * Map response on truthy value
33
- */
34
- mapEarlyResponse(response: unknown, set: Context['set'], ...params: unknown[]): unknown;
35
- /**
36
- * Map response without cookie, status or headers
37
- */
38
- mapCompactResponse(response: unknown, ...params: unknown[]): unknown;
39
- /**
40
- * Compile inline to value
41
- *
42
- * @example
43
- * ```ts
44
- * Elysia().get('/', 'static')
45
- * ```
46
- */
47
- createStaticHandler?(handle: unknown, hooks: AnyLocalHook, setHeaders?: Context['set']['headers'], ...params: unknown[]): (() => unknown) | undefined;
48
- /**
49
- * If the runtime support cloning response
50
- *
51
- * eg. Bun.serve({ static })
52
- */
53
- createNativeStaticHandler?(handle: unknown, hooks: AnyLocalHook, set?: Context['set']): (() => MaybePromise<Response>) | undefined;
54
- };
55
- composeHandler: {
56
- mapResponseContext?: string;
57
- /**
58
- * Declare any variable that will be used in the general handler
59
- */
60
- declare?(inference: Sucrose.Inference): string | undefined;
61
- /**
62
- * Inject variable to the general handler
63
- */
64
- inject?: Record<string, unknown>;
65
- /**
66
- * Whether retriving headers should be using webstandard headers
67
- *
68
- * @default false
69
- */
70
- preferWebstandardHeaders?: boolean;
71
- /**
72
- * fnLiteral for parsing request headers
73
- *
74
- * @declaration
75
- * c.headers: Context headers
76
- */
77
- headers: string;
78
- /**
79
- * fnLiteral for parsing the request body
80
- *
81
- * @declaration
82
- * c.body: Context body
83
- */
84
- parser: Prettify<Record<'json' | 'text' | 'urlencoded' | 'arrayBuffer' | 'formData', (isOptional: boolean) => string> & {
85
- declare?: string;
86
- }>;
87
- };
88
- composeGeneralHandler: {
89
- parameters?: string;
90
- error404(hasEventHook: boolean, hasErrorHook: boolean, afterResponseHandler?: string): {
91
- declare: string;
92
- code: string;
93
- };
94
- /**
95
- * fnLiteral of the general handler
96
- *
97
- * @declaration
98
- * c: Context
99
- * p: pathname
100
- */
101
- createContext(app: AnyElysia): string;
102
- /**
103
- * Inject variable to the general handler
104
- */
105
- inject?: Record<string, unknown>;
106
- };
107
- composeError: {
108
- declare?: string;
109
- inject?: Record<string, unknown>;
110
- mapResponseContext: string;
111
- validationError: string;
112
- /**
113
- * Handle thrown error which is instance of Error
114
- *
115
- * Despite its name of `unknownError`, it also handle named error like `NOT_FOUND`, `VALIDATION_ERROR`
116
- * It's named `unknownError` because it also catch unknown error
117
- */
118
- unknownError: string;
119
- };
120
- ws?(app: AnyElysia, path: string, handler: AnyWSLocalHook): unknown;
45
+ map(response: unknown, set: Context['set'], ...params: unknown[]): unknown; /** Support immutable shared default headers. */
46
+ supportsDefaultHeaderSink?: true;
121
47
  /**
122
- * Whether or not the runtime or framework the is built on top on has a router
123
- * eg. Bun.serve.routes, uWebSocket
124
- **/
125
- createSystemRouterHandler?(method: string, path: string, hook: AnyLocalHook, app: AnyElysia): void;
126
- /**
127
- * Call thing before compile
48
+ * Map response without cookie, status or headers
128
49
  */
129
- beforeCompile?(app: AnyElysia): void;
50
+ compact?(response: unknown, ...params: unknown[]): unknown;
51
+ };
52
+ setup?(app: AnyElysia): App;
130
53
  }
54
+ //#endregion
55
+ export { ElysiaAdapterOptions };
@@ -1,14 +1 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from == "object" || typeof from == "function")
8
- for (let key of __getOwnPropNames(from))
9
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- return to;
11
- };
12
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
13
- var types_exports = {};
14
- module.exports = __toCommonJS(types_exports);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -0,0 +1 @@
1
+ export { };
@@ -1,22 +1,50 @@
1
- import { StatusMap } from '../utils';
2
- import type { Context } from '../context';
3
- export declare const handleFile: (response: File | Blob, set?: Context["set"], request?: Request) => Response;
4
- export declare const parseSetCookies: (headers: Headers, setCookie: string[]) => Headers;
5
- export declare const responseToSetHeaders: (response: Response, set?: Context["set"]) => {
6
- headers: import("../types").HTTPHeaders;
7
- status?: number | keyof StatusMap;
8
- redirect?: string;
9
- cookie?: Record<string, import("../cookies").ElysiaCookie>;
1
+ import { BaseCookie } from "../cookie/types.js";
2
+ import { StatusMap } from "../constants.js";
3
+ import { ElysiaFile } from "../universal/file.js";
4
+ import { HTTPHeaders } from "../types.js";
5
+ import { Context } from "../context.js";
6
+ //#region src/adapter/utils.d.ts
7
+ declare function materializeSetHeaders(set: Context['set']): any;
8
+ declare function normalizeContentType(contentType: string): string;
9
+ declare function handleFile(response: File | Blob | ElysiaFile, set?: Context['set'], request?: Request, size?: number): Response;
10
+ declare function parseSetCookies(headers: Headers, setCookie: string[]): Headers;
11
+ declare function responseToSetHeaders(response: Response, set?: Context['set']): {
12
+ headers: HTTPHeaders;
13
+ status?: number | keyof StatusMap;
14
+ cookie?: Record<string, BaseCookie>;
15
+ } | {
16
+ headers: any;
17
+ status: number | "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required";
10
18
  };
11
19
  interface CreateHandlerParameter {
12
- mapResponse(response: unknown, set: Context['set'], request?: Request): Response;
13
- mapCompactResponse(response: unknown, request?: Request): Response;
20
+ mapResponse(response: unknown, set: Context['set'], request?: Request, owned?: boolean): Response;
21
+ mapCompactResponse(response: unknown, request?: Request, owned?: boolean): Response;
14
22
  }
15
- export declare const createStreamHandler: ({ mapResponse, mapCompactResponse }: CreateHandlerParameter) => (generator: Generator | AsyncGenerator | ReadableStream, set?: Context["set"], request?: Request, skipFormat?: boolean) => Promise<Response>;
16
- export declare function streamResponse(response: Response): AsyncGenerator<string, void, unknown>;
17
- export declare const handleSet: (set: Context["set"]) => void;
18
- export declare function mergeHeaders(responseHeaders: Headers, setHeaders: Context['set']['headers']): Headers;
19
- export declare function mergeStatus(responseStatus: number, setStatus: Context['set']['status']): number | undefined;
20
- export declare const createResponseHandler: (handler: CreateHandlerParameter) => (response: Response, set: Context["set"], request?: Request) => any;
21
- export declare function tee<T>(source: AsyncIterable<T>, branches?: number): Promise<AsyncIterableIterator<T>[]>;
22
- export {};
23
+ declare function createStreamHandler({
24
+ mapResponse,
25
+ mapCompactResponse
26
+ }: CreateHandlerParameter): (generator: Generator | AsyncGenerator | ReadableStream, set?: Context["set"], request?: Request, skipFormat?: boolean, owned?: boolean) => Promise<Response>;
27
+ declare function streamResponse(response: Response): AsyncGenerator<any, void, any>;
28
+ declare function handleSet(set: Context['set']): void;
29
+ declare function createResponseHandler(handler: CreateHandlerParameter): (response: Response, set?: Context["set"], request?: Request, owned?: boolean) => any;
30
+ /**
31
+ * Split async source into `branches` independent iterators
32
+ *
33
+ * A producer drains the source ahead of consumers
34
+ *
35
+ * To prevent long/infinite stream, the unconsumed window is capped:
36
+ * Consumed-by-every-branch entries are trimmed off the front
37
+ * Producer backpressures whenever the window hits `cap` ENTRIES or
38
+ * `capBytes` bytes, whichever comes first
39
+ *
40
+ * Streams below both caps buffer eagerly
41
+ * Only streams exceeding one gate on the slowest consumer
42
+ *
43
+ * Branch 0 is the value consumer (response/client)
44
+ * When `return()` (client abort / early exit), source is stopped
45
+ * so the observer branches can still reach completion instead of spinning
46
+ * an infinite source
47
+ */
48
+ declare function tee<T>(source: AsyncIterable<T>, branches?: number, cap?: number, capBytes?: number): AsyncIterableIterator<T>[];
49
+ //#endregion
50
+ export { createResponseHandler, createStreamHandler, handleFile, handleSet, materializeSetHeaders, normalizeContentType, parseSetCookies, responseToSetHeaders, streamResponse, tee };