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
@@ -1,382 +1,221 @@
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 __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_adapter_index = require('../index.js');
3
+ const require_constants = require('../../constants.js');
4
+ const require_utils = require('../../utils.js');
5
+ const require_adapter_web_standard_index = require('../web-standard/index.js');
6
+ const require_generation = require('../../generation.js');
7
+ const require_adapter_origin = require('../origin.js');
8
+ const require_compile_handler_index = require('../../compile/handler/index.js');
9
+ const require_route_table = require('../../route-table.js');
10
+
11
+ //#region src/adapter/bun/index.ts
12
+ /**
13
+ * ! This may looks like it would cause race condition, but it is not
14
+ * Bun is single-threaded and synchronous, so the `finally` block will
15
+ * always run before the next request comes in
16
+ * @see ../origin.ts
17
+ *
18
+ * `finally` runs on the synchronous return of `fetch` (the returned promise is
19
+ * not awaited), so the slot is live only for the handler's synchronous prologue
20
+ */
21
+ const withOrigin = (fetch) => (request, server) => {
22
+ require_adapter_origin.origin.request = request;
23
+ try {
24
+ return fetch(request, server);
25
+ } finally {
26
+ require_adapter_origin.origin.request = void 0;
27
+ }
14
28
  };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
- var bun_exports = {};
17
- __export(bun_exports, {
18
- BunAdapter: () => BunAdapter,
19
- isHTMLBundle: () => isHTMLBundle,
20
- removeTrailingPath: () => removeTrailingPath
21
- });
22
- module.exports = __toCommonJS(bun_exports);
23
- var import_web_standard = require('../web-standard/index.js'), import_utils = require('../utils.js'), import_compose = require('./compose.js'), import_handler_native = require('./handler-native.js'), import_cookies = require('../../cookies.js'), import_error = require('../../error.js'), import_schema = require('../../schema.js'), import_utils2 = require('../../utils.js'), import_handler = require('./handler.js'), import_ws = require('../../ws/index.js');
24
- const optionalParam = /:.+?\?(?=\/|$)/, getPossibleParams = (path) => {
25
- const match = optionalParam.exec(path);
26
- if (!match) return [path];
27
- const routes = [], head = path.slice(0, match.index), param = match[0].slice(0, -1), tail = path.slice(match.index + match[0].length);
28
- routes.push(head.slice(0, -1)), routes.push(head + param);
29
- for (const fragment of getPossibleParams(tail))
30
- fragment && (fragment.startsWith("/:") || routes.push(head.slice(0, -1) + fragment), routes.push(head + param + fragment));
31
- return routes;
32
- }, isHTMLBundle = (handle) => typeof handle == "object" && handle !== null && (handle.toString() === "[object HTMLBundle]" || typeof handle.index == "string"), supportedMethods = {
33
- GET: !0,
34
- HEAD: !0,
35
- OPTIONS: !0,
36
- DELETE: !0,
37
- PATCH: !0,
38
- POST: !0,
39
- PUT: !0
40
- }, mapRoutes = (app) => {
41
- if (!app.config.aot || app.config.systemRouter === !1) return;
42
- const routes = {}, add = (route, handler) => {
43
- const path = encodeURI(route.path);
44
- routes[path] ? routes[path][route.method] || (routes[path][route.method] = handler) : routes[path] = {
45
- [route.method]: handler
46
- };
47
- }, tree = app.routeTree;
48
- for (const route of app.router.history) {
49
- if (typeof route.handler != "function") continue;
50
- const method = route.method;
51
- if (method === "GET" && `WS_${route.path}` in tree || method === "WS" || route.path.charCodeAt(route.path.length - 1) === 42 || !(method in supportedMethods))
52
- continue;
53
- if (method === "ALL") {
54
- `WS_${route.path}` in tree || (routes[route.path] = route.hooks?.config?.mount ? route.hooks.trace || app.event.trace || // @ts-expect-error private property
55
- app.extender.higherOrderFunctions ? (0, import_compose.createBunRouteHandler)(app, route) : route.hooks.mount || route.handler : route.handler);
56
- continue;
57
- }
58
- let compiled;
59
- const handler = app.config.precompile ? (0, import_compose.createBunRouteHandler)(app, route) : (request) => compiled ? compiled(request) : (compiled = (0, import_compose.createBunRouteHandler)(app, route))(
60
- request
61
- );
62
- for (const path of getPossibleParams(route.path))
63
- add(
64
- {
65
- method,
66
- path
67
- },
68
- handler
69
- );
70
- }
71
- return routes;
72
- }, mergeRoutes = (r1, r2) => {
73
- if (!r2) return r1;
74
- for (const key of Object.keys(r2))
75
- if (r1[key] !== r2[key]) {
76
- if (!r1[key]) {
77
- r1[key] = r2[key];
78
- continue;
79
- }
80
- if (r1[key] && r2[key]) {
81
- if (typeof r1[key] == "function" || r1[key] instanceof Response) {
82
- r1[key] = r2[key];
83
- continue;
84
- }
85
- r1[key] = {
86
- ...r1[key],
87
- ...r2[key]
88
- };
89
- }
90
- }
91
- return r1;
92
- }, removeTrailingPath = (routes) => {
93
- for (const key of Object.keys(routes))
94
- key.length > 1 && key.charCodeAt(key.length - 1) === 47 && (routes[key.slice(0, -1)] = routes[key], delete routes[key]);
95
- return routes;
96
- }, BunAdapter = {
97
- ...import_web_standard.WebStandardAdapter,
98
- name: "bun",
99
- handler: {
100
- mapResponse: import_handler.mapResponse,
101
- mapEarlyResponse: import_handler.mapEarlyResponse,
102
- mapCompactResponse: import_handler.mapCompactResponse,
103
- createStaticHandler: import_handler.createStaticHandler,
104
- createNativeStaticHandler: import_handler_native.createNativeStaticHandler
105
- },
106
- composeHandler: {
107
- ...import_web_standard.WebStandardAdapter.composeHandler,
108
- headers: import_utils2.hasHeaderShorthand ? `c.headers=c.request.headers.toJSON()
109
- ` : `c.headers={}
110
- for(const [k,v] of c.request.headers.entries())c.headers[k]=v
111
- `
112
- },
113
- listen(app) {
114
- return (options, callback) => {
115
- if (typeof Bun > "u")
116
- throw new Error(
117
- ".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch"
118
- );
119
- if (app.compile(), typeof options == "string") {
120
- if (!(0, import_utils2.isNumericString)(options))
121
- throw new Error("Port must be a numeric value");
122
- options = parseInt(options);
123
- }
124
- const createStaticRoute = (iterator, { withAsync = !1 } = {}) => {
125
- const staticRoutes = {}, ops = [];
126
- for (let [path, route] of Object.entries(iterator))
127
- if (path = encodeURI(path), import_utils2.supportPerMethodInlineHandler) {
128
- if (!route) continue;
129
- for (const [method, value] of Object.entries(route))
130
- if (!(!value || !(method in supportedMethods))) {
131
- if (value instanceof Promise) {
132
- withAsync && (staticRoutes[path] || (staticRoutes[path] = {}), ops.push(
133
- value.then((awaited) => {
134
- awaited instanceof Response && (staticRoutes[path][method] = awaited), isHTMLBundle(awaited) && (staticRoutes[path][method] = awaited);
135
- })
136
- ));
137
- continue;
138
- }
139
- !(value instanceof Response) && !isHTMLBundle(value) || (staticRoutes[path] || (staticRoutes[path] = {}), staticRoutes[path][method] = value);
140
- }
141
- } else {
142
- if (!route) continue;
143
- if (route instanceof Promise) {
144
- withAsync && (staticRoutes[path] || (staticRoutes[path] = {}), ops.push(
145
- route.then((awaited) => {
146
- awaited instanceof Response && (staticRoutes[path] = awaited);
147
- })
148
- ));
149
- continue;
150
- }
151
- if (!(route instanceof Response)) continue;
152
- staticRoutes[path] = route;
153
- }
154
- return withAsync ? Promise.all(ops).then(() => staticRoutes) : staticRoutes;
155
- }, routes = removeTrailingPath(
156
- mergeRoutes(
157
- mergeRoutes(
158
- createStaticRoute(app.router.response),
159
- mapRoutes(app)
160
- ),
161
- // @ts-ignore
162
- app.config.serve?.routes
163
- )
164
- ), serve = typeof options == "object" ? {
165
- development: !import_error.isProduction,
166
- reusePort: !0,
167
- idleTimeout: 30,
168
- ...app.config.serve || {},
169
- ...options || {},
170
- routes,
171
- websocket: {
172
- ...app.config.websocket || {},
173
- ...import_ws.websocket || {},
174
- ...options.websocket || {}
175
- },
176
- fetch: app.fetch
177
- } : {
178
- development: !import_error.isProduction,
179
- reusePort: !0,
180
- idleTimeout: 30,
181
- ...app.config.serve || {},
182
- routes,
183
- websocket: {
184
- ...app.config.websocket || {},
185
- ...import_ws.websocket || {}
186
- },
187
- port: options,
188
- fetch: app.fetch
189
- };
190
- if (app.server = Bun.serve(serve), app.event.start)
191
- for (let i = 0; i < app.event.start.length; i++)
192
- app.event.start[i].fn(app);
193
- callback && callback(app.server), process.on("beforeExit", async () => {
194
- if (app.server && (await app.server.stop?.(), app.server = null, app.event.stop))
195
- for (let i = 0; i < app.event.stop.length; i++)
196
- app.event.stop[i].fn(app);
197
- }), app.promisedModules.then(async () => {
198
- app.config.aot, app.compile();
199
- const routes2 = removeTrailingPath(
200
- mergeRoutes(
201
- mergeRoutes(
202
- await createStaticRoute(app.router.response, {
203
- withAsync: !0
204
- }),
205
- mapRoutes(app)
206
- ),
207
- // @ts-ignore
208
- app.config.serve?.routes
209
- )
210
- );
211
- app.server?.reload({
212
- ...serve,
213
- fetch: app.fetch,
214
- // @ts-ignore
215
- routes: routes2
216
- }), Bun?.gc(!1);
217
- });
218
- };
219
- },
220
- async stop(app, closeActiveConnections) {
221
- if (app.server) {
222
- if (await app.server.stop(closeActiveConnections), app.server = null, app.event.stop?.length)
223
- for (let i = 0; i < app.event.stop.length; i++)
224
- app.event.stop[i].fn(app);
225
- } else
226
- console.log(
227
- "Elysia isn't running. Call `app.listen` to start the server.",
228
- new Error().stack
229
- );
230
- },
231
- ws(app, path, options) {
232
- const { parse, body, response, ...rest } = options, messageValidator = (0, import_schema.getSchemaValidator)(body, {
233
- // @ts-expect-error private property
234
- modules: app.definitions.typebox,
235
- // @ts-expect-error private property
236
- models: app.definitions.type,
237
- normalize: app.config.normalize
238
- }), validateMessage = messageValidator ? messageValidator.provider === "standard" ? (data) => messageValidator.schema["~standard"].validate(data).issues : (data) => messageValidator.Check(data) === !1 : void 0, responseValidator = (0, import_schema.getSchemaValidator)(response, {
239
- // @ts-expect-error private property
240
- modules: app.definitions.typebox,
241
- // @ts-expect-error private property
242
- models: app.definitions.type,
243
- normalize: app.config.normalize
244
- });
245
- app.route(
246
- "WS",
247
- path,
248
- async (context) => {
249
- const server = context.server ?? app.server, { set, path: path2, qi, headers, query, params } = context;
250
- if (context.validator = responseValidator, options.upgrade)
251
- if (typeof options.upgrade == "function") {
252
- const temp = options.upgrade(context);
253
- temp instanceof Promise && await temp;
254
- } else options.upgrade && Object.assign(
255
- set.headers,
256
- options.upgrade
257
- );
258
- if (set.cookie && (0, import_utils2.isNotEmpty)(set.cookie)) {
259
- const cookie = (0, import_cookies.serializeCookie)(set.cookie);
260
- cookie && (set.headers["set-cookie"] = cookie);
261
- }
262
- set.headers["set-cookie"] && Array.isArray(set.headers["set-cookie"]) && (set.headers = (0, import_utils.parseSetCookies)(
263
- new Headers(set.headers),
264
- set.headers["set-cookie"]
265
- ));
266
- const handleResponse = (0, import_ws.createHandleWSResponse)(responseValidator), parseMessage = (0, import_ws.createWSMessageParser)(parse);
267
- let _id;
268
- if (typeof options.beforeHandle == "function") {
269
- const result = options.beforeHandle(context);
270
- result instanceof Promise && await result;
271
- }
272
- const errorHandlers = [
273
- ...options.error ? Array.isArray(options.error) ? options.error : [options.error] : [],
274
- ...(app.event.error ?? []).map(
275
- (x) => typeof x == "function" ? x : x.fn
276
- )
277
- ].filter((x) => x), hasCustomErrorHandlers = errorHandlers.length > 0, handleErrors = hasCustomErrorHandlers ? async (ws, error) => {
278
- for (const handleError of errorHandlers) {
279
- let response2 = handleError(
280
- Object.assign(context, { error })
281
- );
282
- if (response2 instanceof Promise && (response2 = await response2), await handleResponse(ws, response2), response2) break;
283
- }
284
- } : () => {
285
- };
286
- if (!server?.upgrade(context.request, {
287
- headers: (0, import_utils2.isNotEmpty)(set.headers) ? set.headers : void 0,
288
- data: {
289
- ...context,
290
- get id() {
291
- return _id || (_id = (0, import_utils2.randomId)());
292
- },
293
- validator: responseValidator,
294
- ping(ws, data) {
295
- options.ping?.(ws, data);
296
- },
297
- pong(ws, data) {
298
- options.pong?.(ws, data);
299
- },
300
- open: async (ws) => {
301
- try {
302
- await handleResponse(
303
- ws,
304
- options.open?.(
305
- new import_ws.ElysiaWS(ws, context)
306
- )
307
- );
308
- } catch (error) {
309
- handleErrors(ws, error);
310
- }
311
- },
312
- message: async (ws, _message) => {
313
- const message = await parseMessage(ws, _message);
314
- if (validateMessage && validateMessage(message)) {
315
- const validationError = new import_error.ValidationError(
316
- "message",
317
- messageValidator,
318
- message
319
- );
320
- return hasCustomErrorHandlers ? handleErrors(ws, validationError) : void ws.send(
321
- validationError.message
322
- );
323
- }
324
- try {
325
- await handleResponse(
326
- ws,
327
- options.message?.(
328
- new import_ws.ElysiaWS(
329
- ws,
330
- context,
331
- message
332
- ),
333
- message
334
- )
335
- );
336
- } catch (error) {
337
- handleErrors(ws, error);
338
- }
339
- },
340
- drain: async (ws) => {
341
- try {
342
- await handleResponse(
343
- ws,
344
- options.drain?.(
345
- new import_ws.ElysiaWS(ws, context)
346
- )
347
- );
348
- } catch (error) {
349
- handleErrors(ws, error);
350
- }
351
- },
352
- close: async (ws, code, reason) => {
353
- try {
354
- await handleResponse(
355
- ws,
356
- options.close?.(
357
- new import_ws.ElysiaWS(ws, context),
358
- code,
359
- reason
360
- )
361
- );
362
- } catch (error) {
363
- handleErrors(ws, error);
364
- }
365
- }
366
- }
367
- }))
368
- return (0, import_error.status)(400, "Expected a websocket connection");
369
- },
370
- {
371
- ...rest,
372
- websocket: options
373
- }
374
- );
375
- }
376
- };
377
- // Annotate the CommonJS export names for ESM import in node:
378
- 0 && (module.exports = {
379
- BunAdapter,
380
- isHTMLBundle,
381
- removeTrailingPath
29
+ const nativeStaticMethods = new Set([
30
+ "GET",
31
+ "POST",
32
+ "PUT",
33
+ "DELETE",
34
+ "PATCH",
35
+ "HEAD",
36
+ "OPTIONS"
37
+ ]);
38
+ function collectStaticRoutes(app) {
39
+ if (app["~config"]?.nativeStaticResponse === false) return;
40
+ app.fetch;
41
+ const frozenRoot = require_generation.frozenRootOf(app);
42
+ const fetchLevelHook = require_utils.flattenChain(frozenRoot["~hookChain"]);
43
+ if (fetchLevelHook?.request?.length || fetchLevelHook?.trace?.length || frozenRoot["~ext"]?.hoc?.length) return;
44
+ const table = app["~generation"]?.routeTable ?? app["~routeTable"];
45
+ const length = table?.length ?? 0;
46
+ if (!table || !length) return;
47
+ const methods = table.method;
48
+ const paths = table.path;
49
+ const handlers = table.handler;
50
+ let hasCandidate = false;
51
+ for (let i = 0; i < length; i++) {
52
+ const h = handlers[i];
53
+ if (typeof h === "function" || h instanceof Error || h instanceof Promise) continue;
54
+ if (!nativeStaticMethods.has(methods[i])) continue;
55
+ hasCandidate = true;
56
+ break;
57
+ }
58
+ if (!hasCandidate) return;
59
+ const ready = require_utils.nullObject();
60
+ const strictPath = frozenRoot["~config"]?.strictPath === true;
61
+ const seen = /* @__PURE__ */ new Map();
62
+ for (let i = 0; i < length; i++) seen.set(methods[i] + " " + paths[i], i);
63
+ let explicitPaths;
64
+ if (!strictPath) {
65
+ explicitPaths = /* @__PURE__ */ new Map();
66
+ for (let i = 0; i < length; i++) {
67
+ const method = methods[i];
68
+ const path = paths[i];
69
+ let set = explicitPaths.get(method);
70
+ if (!set) explicitPaths.set(method, set = /* @__PURE__ */ new Set());
71
+ set.add(path);
72
+ if (require_constants.needEncodeRegex.test(path)) {
73
+ const encoded = encodeURI(path);
74
+ if (encoded !== path) set.add(encoded);
75
+ }
76
+ }
77
+ }
78
+ const add = (method, path, value) => {
79
+ if (require_constants.needEncodeRegex.test(path)) path = encodeURI(path);
80
+ (ready[path] ??= require_utils.nullObject())[method] = value;
81
+ };
82
+ for (let i = 0; i < length; i++) {
83
+ const method = methods[i];
84
+ if (method === "WS") continue;
85
+ const path = paths[i];
86
+ if (seen.get(method + " " + path) !== i) continue;
87
+ if (!nativeStaticMethods.has(method)) continue;
88
+ const h = handlers[i];
89
+ if (typeof h === "function" || h instanceof Error || h instanceof Promise) continue;
90
+ const value = require_compile_handler_index.buildNativeStaticResponse(require_route_table.routeRow(table, i), app);
91
+ if (!value) continue;
92
+ add(method, path, value);
93
+ if (!strictPath && !require_constants.isDynamicRegex.test(path)) {
94
+ const loose = require_utils.getLoosePath(path);
95
+ if (loose !== path && !explicitPaths?.get(method)?.has(loose)) add(method, loose, value);
96
+ }
97
+ }
98
+ if (!Object.keys(ready).length) return;
99
+ return [ready, []];
100
+ }
101
+ const BunAdapter = require_adapter_index.createAdapter({
102
+ name: "bun",
103
+ runtime: "bun",
104
+ isWebStandard: true,
105
+ parse: require_adapter_web_standard_index.WebStandardAdapter.parse,
106
+ response: require_adapter_web_standard_index.WebStandardAdapter.response,
107
+ listen(app, options, callback) {
108
+ const _config = app["~config"]?.serve;
109
+ const optionsIsObject = typeof options === "object";
110
+ let live;
111
+ const gatedFetch = (request, server) => live ? live(request, server) : Promise.resolve(ready).then(() => {
112
+ if (!live) throw new Error("[Elysia] Server was stopped before it was ready");
113
+ return live(request, server);
114
+ });
115
+ const _options = optionsIsObject ? { ...options } : {
116
+ port: +options,
117
+ fetch: gatedFetch
118
+ };
119
+ if (optionsIsObject) _options.fetch = gatedFetch;
120
+ const serve = _config ? {
121
+ ..._config,
122
+ ..._options
123
+ } : _options;
124
+ let ready;
125
+ const build = () => {
126
+ const fetch = app.fetch;
127
+ let routes;
128
+ try {
129
+ routes = collectStaticRoutes(app);
130
+ } catch (error) {
131
+ console.warn("[Elysia] Native static promotion was skipped:", error);
132
+ }
133
+ let websocket;
134
+ if (app["~hasWS"]) {
135
+ const resolved = require_generation.resolvedWsOf(app);
136
+ if (!resolved) throw new Error("[Elysia] internal: WebSocket routes are present but no capability provider was resolved");
137
+ websocket = resolved.config ? Object.assign(resolved.provider.buildGlobalWSHandler(), resolved.config) : resolved.provider.buildGlobalWSHandler();
138
+ }
139
+ return {
140
+ fetch,
141
+ routes,
142
+ websocket
143
+ };
144
+ };
145
+ let built;
146
+ const server = app.server = Bun.serve(serve);
147
+ const reload = () => {
148
+ try {
149
+ server.reload(serve);
150
+ } catch (error) {
151
+ if (!serve.routes) throw error;
152
+ delete serve.routes;
153
+ console.warn("[Elysia] Native static promotion was skipped:", error);
154
+ try {
155
+ server.reload(serve);
156
+ } catch (fallbackError) {
157
+ console.error("[Elysia] Failed to reload Bun server:", fallbackError);
158
+ throw fallbackError;
159
+ }
160
+ }
161
+ };
162
+ const setup = () => {
163
+ const onSetup = app["~ext"]?.setup;
164
+ if (!onSetup) return;
165
+ let pendingSetups;
166
+ for (let i = 0; i < onSetup.length; i++) {
167
+ const result = onSetup[i](app);
168
+ if (result && typeof result.then === "function") (pendingSetups ??= []).push(result);
169
+ }
170
+ if (pendingSetups) return Promise.all(pendingSetups);
171
+ };
172
+ const rollback = (error) => {
173
+ if (app.server !== server) return;
174
+ try {
175
+ server.stop(true);
176
+ } catch (stopError) {
177
+ console.error(stopError);
178
+ } finally {
179
+ app.server = void 0;
180
+ }
181
+ const cleanup = app["~ext"]?.cleanup;
182
+ if (cleanup) for (let i = cleanup.length - 1; i >= 0; i--) try {
183
+ const result = cleanup[i](app);
184
+ if (result && typeof result.then === "function") Promise.resolve(result).catch(console.error);
185
+ } catch (cleanupError) {
186
+ console.error(cleanupError);
187
+ }
188
+ return error;
189
+ };
190
+ const publish = () => {
191
+ if (app.server !== server) return;
192
+ built ??= build();
193
+ live = serve.fetch = withOrigin(built.fetch);
194
+ if (built.websocket) serve.websocket = built.websocket;
195
+ if (built.routes) serve.routes = built.routes[0];
196
+ reload();
197
+ if (callback) callback(server);
198
+ };
199
+ const start = () => {
200
+ if (app.server !== server) return;
201
+ const setupReady = setup();
202
+ if (setupReady && typeof setupReady.then === "function") return Promise.resolve(setupReady).then(publish);
203
+ publish();
204
+ };
205
+ try {
206
+ if (app.pending) ready = app.modules.then(start);
207
+ else ready = Promise.resolve().then(start);
208
+ ready.catch((error) => {
209
+ console.error("[Elysia] listen() failed:", error);
210
+ return rollback(error);
211
+ });
212
+ } catch (error) {
213
+ rollback(error);
214
+ throw error;
215
+ }
216
+ }
382
217
  });
218
+
219
+ //#endregion
220
+ exports.BunAdapter = BunAdapter;
221
+ exports.collectStaticRoutes = collectStaticRoutes;