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,51 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_type_bridge = require('../type/bridge.js');
3
+ const require_type_constants = require('../type/constants.js');
4
+ const require_validator_index = require('./index.js');
5
+
6
+ //#region src/validator/route.ts
7
+ const isTb = (schema) => "~kind" in schema;
8
+ function pickMerge(schemas, key) {
9
+ if (!schemas) return;
10
+ const result = [];
11
+ for (let i = 0; i < schemas.length; i++) {
12
+ const v = schemas[i][key];
13
+ if (v) result.push(v);
14
+ }
15
+ return result;
16
+ }
17
+ const FILE_TYPES = [require_type_constants.ELYSIA_TYPES.File, require_type_constants.ELYSIA_TYPES.Files];
18
+ const coerceFile = (schema) => require_type_bridge.mayHaveFileType(schema) && require_type_bridge.hasTypes(FILE_TYPES, schema) ? require_type_bridge.coerceFormData() : require_type_bridge.coerceBody();
19
+ const SLOTS = [
20
+ ["body", coerceFile],
21
+ ["headers", require_type_bridge.coerceStringToStructure],
22
+ ["query", require_type_bridge.coerceQuery],
23
+ ["params", require_type_bridge.coerceRoot],
24
+ ["cookie", require_type_bridge.coerceStringToStructure]
25
+ ];
26
+ var RouteValidator = class {
27
+ constructor(route, options) {
28
+ if (!route) return;
29
+ const mergeSchemas = options?.schemas;
30
+ for (const [slot, coerce] of SLOTS) {
31
+ const merge = pickMerge(mergeSchemas, slot);
32
+ if (!route[slot] && !merge?.length) continue;
33
+ const reference = require_validator_index.Validator.reference(route[slot] ?? merge[0], options?.models);
34
+ const coerces = isTb(reference) ? coerce(reference) : merge?.find(isTb) ? coerce(merge.find(isTb)) : void 0;
35
+ this[slot] = require_validator_index.Validator.create(route[slot], {
36
+ ...options,
37
+ slot,
38
+ schemas: merge,
39
+ coerces
40
+ });
41
+ }
42
+ const responseMerge = pickMerge(mergeSchemas, "response");
43
+ this.response = require_validator_index.Validator.response(route.response, {
44
+ ...options,
45
+ schemas: responseMerge
46
+ });
47
+ }
48
+ };
49
+
50
+ //#endregion
51
+ exports.RouteValidator = RouteValidator;
@@ -0,0 +1,50 @@
1
+ import { coerceBody, coerceFormData, coerceQuery, coerceRoot, coerceStringToStructure, hasTypes, mayHaveFileType } from "../type/bridge.mjs";
2
+ import { ELYSIA_TYPES } from "../type/constants.mjs";
3
+ import { Validator } from "./index.mjs";
4
+
5
+ //#region src/validator/route.ts
6
+ const isTb = (schema) => "~kind" in schema;
7
+ function pickMerge(schemas, key) {
8
+ if (!schemas) return;
9
+ const result = [];
10
+ for (let i = 0; i < schemas.length; i++) {
11
+ const v = schemas[i][key];
12
+ if (v) result.push(v);
13
+ }
14
+ return result;
15
+ }
16
+ const FILE_TYPES = [ELYSIA_TYPES.File, ELYSIA_TYPES.Files];
17
+ const coerceFile = (schema) => mayHaveFileType(schema) && hasTypes(FILE_TYPES, schema) ? coerceFormData() : coerceBody();
18
+ const SLOTS = [
19
+ ["body", coerceFile],
20
+ ["headers", coerceStringToStructure],
21
+ ["query", coerceQuery],
22
+ ["params", coerceRoot],
23
+ ["cookie", coerceStringToStructure]
24
+ ];
25
+ var RouteValidator = class {
26
+ constructor(route, options) {
27
+ if (!route) return;
28
+ const mergeSchemas = options?.schemas;
29
+ for (const [slot, coerce] of SLOTS) {
30
+ const merge = pickMerge(mergeSchemas, slot);
31
+ if (!route[slot] && !merge?.length) continue;
32
+ const reference = Validator.reference(route[slot] ?? merge[0], options?.models);
33
+ const coerces = isTb(reference) ? coerce(reference) : merge?.find(isTb) ? coerce(merge.find(isTb)) : void 0;
34
+ this[slot] = Validator.create(route[slot], {
35
+ ...options,
36
+ slot,
37
+ schemas: merge,
38
+ coerces
39
+ });
40
+ }
41
+ const responseMerge = pickMerge(mergeSchemas, "response");
42
+ this.response = Validator.response(route.response, {
43
+ ...options,
44
+ schemas: responseMerge
45
+ });
46
+ }
47
+ };
48
+
49
+ //#endregion
50
+ export { RouteValidator };
@@ -0,0 +1,49 @@
1
+ import { RouteSchema } from "../types.js";
2
+ import { BufferSource, FlattenResponse, ServerWebSocket, ServerWebSocketSendStatus, WSResponseValidator, WSValidatorLike, WebSocketReadyState } from "./types.js";
3
+
4
+ //#region src/ws/context.d.ts
5
+ interface WSConnectionData {
6
+ id: string | undefined;
7
+ open?: (elysia: ElysiaWS<any>) => void | Promise<void>;
8
+ message?: (elysia: ElysiaWS<any>, rawMessage: string | Buffer) => void | Promise<void>;
9
+ drain?: (elysia: ElysiaWS<any>) => void | Promise<void>;
10
+ close?: (elysia: ElysiaWS<any>, code: number, reason: string) => void | Promise<void>;
11
+ ping?: (elysia: ElysiaWS<any>, data: Buffer) => void | Promise<void>;
12
+ pong?: (elysia: ElysiaWS<any>, data: Buffer) => void | Promise<void>;
13
+ closeHandlerInvoked?: boolean;
14
+ elysia?: ElysiaWS<any>;
15
+ context?: Record<string, unknown>;
16
+ resumeWaiters?: Set<() => void>;
17
+ validator?: WSResponseValidator;
18
+ defaultValidator?: WSValidatorLike;
19
+ }
20
+ declare class ElysiaWS<Route extends RouteSchema = {}> {
21
+ #private;
22
+ raw: ServerWebSocket<WSConnectionData>;
23
+ body: Route['body'];
24
+ constructor(raw: ServerWebSocket<WSConnectionData>, context?: Record<string, unknown>);
25
+ get ws(): this;
26
+ readonly sendText: ServerWebSocket['sendText'];
27
+ readonly sendBinary: ServerWebSocket['sendBinary'];
28
+ readonly terminate: ServerWebSocket['terminate'];
29
+ readonly publishText: ServerWebSocket['publishText'];
30
+ readonly publishBinary: ServerWebSocket['publishBinary'];
31
+ readonly subscribe: ServerWebSocket['subscribe'];
32
+ readonly unsubscribe: ServerWebSocket['unsubscribe'];
33
+ readonly isSubscribed: ServerWebSocket['isSubscribed'];
34
+ readonly cork: ServerWebSocket['cork'];
35
+ readonly remoteAddress: string;
36
+ readonly binaryType: 'nodebuffer' | 'arraybuffer' | 'uint8array' | undefined;
37
+ get send(): (data: FlattenResponse<Route['response']> | BufferSource, compress?: boolean) => ServerWebSocketSendStatus;
38
+ get ping(): (data?: FlattenResponse<Route['response']> | BufferSource) => ServerWebSocketSendStatus;
39
+ get pong(): (data?: FlattenResponse<Route['response']> | BufferSource) => ServerWebSocketSendStatus;
40
+ get publish(): (topic: string, data: FlattenResponse<Route['response']> | BufferSource, compress?: boolean) => ServerWebSocketSendStatus;
41
+ get close(): (code?: number, reason?: string) => void;
42
+ get id(): string;
43
+ get readyState(): WebSocketReadyState;
44
+ get subscriptions(): string[];
45
+ get data(): WSConnectionData;
46
+ }
47
+ declare function isGeneratorObject(value: unknown): boolean;
48
+ //#endregion
49
+ export { ElysiaWS, WSConnectionData, isGeneratorObject };
@@ -0,0 +1,152 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_utils = require('../utils.js');
3
+ const require_error = require('../error.js');
4
+
5
+ //#region src/ws/context.ts
6
+ function pickValidator(validators, defaultValidator, data) {
7
+ if (!validators) return;
8
+ if (data instanceof require_error.ElysiaStatus) return validators[data.status];
9
+ return defaultValidator;
10
+ }
11
+ function memoize(view, key, value) {
12
+ const self = view.raw.data.elysia ?? view;
13
+ Object.defineProperty(self, key, {
14
+ value,
15
+ enumerable: true,
16
+ writable: true,
17
+ configurable: true
18
+ });
19
+ return value;
20
+ }
21
+ var ElysiaWS = class {
22
+ constructor(raw, context) {
23
+ this.body = void 0;
24
+ this.raw = raw;
25
+ if (context) for (const key in context) {
26
+ if (key === "ws" || key === "body") continue;
27
+ this[key] = context[key];
28
+ }
29
+ }
30
+ get ws() {
31
+ return this;
32
+ }
33
+ get send() {
34
+ const self = this.raw.data.elysia ?? this;
35
+ return memoize(this, "send", self.#send.bind(self));
36
+ }
37
+ get ping() {
38
+ const self = this.raw.data.elysia ?? this;
39
+ return memoize(this, "ping", self.#ping.bind(self));
40
+ }
41
+ get pong() {
42
+ const self = this.raw.data.elysia ?? this;
43
+ return memoize(this, "pong", self.#pong.bind(self));
44
+ }
45
+ get publish() {
46
+ const self = this.raw.data.elysia ?? this;
47
+ return memoize(this, "publish", self.#publish.bind(self));
48
+ }
49
+ get close() {
50
+ const self = this.raw.data.elysia ?? this;
51
+ return memoize(this, "close", self.#close.bind(self));
52
+ }
53
+ get id() {
54
+ return this.raw.data.id ??= require_utils.requestId();
55
+ }
56
+ get readyState() {
57
+ return this.raw.readyState;
58
+ }
59
+ get subscriptions() {
60
+ return this.raw.subscriptions;
61
+ }
62
+ get data() {
63
+ return this.raw.data;
64
+ }
65
+ #prepare(data) {
66
+ if (data === void 0) return null;
67
+ if (data instanceof require_error.ElysiaStatus) return JSON.stringify({
68
+ status: data.status,
69
+ error: data.response
70
+ });
71
+ if (typeof data === "object") return JSON.stringify(data);
72
+ return data;
73
+ }
74
+ #validatedOrError(data) {
75
+ const connectionData = this.raw.data;
76
+ const v = pickValidator(connectionData?.validator, connectionData?.defaultValidator, data);
77
+ if (!v) return;
78
+ const value = data instanceof require_error.ElysiaStatus ? data.response : data;
79
+ if (v.Check(value)) return;
80
+ return new require_error.ValidationError("message", value, v.Errors(value)).message;
81
+ }
82
+ #send(data, compress) {
83
+ if (data === void 0) return 0;
84
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.send(data, compress);
85
+ const err = this.#validatedOrError(data);
86
+ if (err !== void 0) return this.raw.send(err);
87
+ return this.raw.send(this.#prepare(data), compress);
88
+ }
89
+ #ping(data) {
90
+ if (data === void 0) return this.raw.ping();
91
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.ping(data);
92
+ const err = this.#validatedOrError(data);
93
+ if (err !== void 0) return this.raw.send(err);
94
+ return this.raw.ping(this.#prepare(data));
95
+ }
96
+ #pong(data) {
97
+ if (data === void 0) return this.raw.pong();
98
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.pong(data);
99
+ const err = this.#validatedOrError(data);
100
+ if (err !== void 0) return this.raw.send(err);
101
+ return this.raw.pong(this.#prepare(data));
102
+ }
103
+ #publish(topic, data, compress) {
104
+ if (data === void 0) return 0;
105
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.publish(topic, data, compress);
106
+ const err = this.#validatedOrError(data);
107
+ if (err !== void 0) return this.raw.send(err);
108
+ return this.raw.publish(topic, this.#prepare(data), compress);
109
+ }
110
+ #close(code, reason) {
111
+ const data = this.raw.data;
112
+ if (!data.closeHandlerInvoked && data.close) {
113
+ data.closeHandlerInvoked = true;
114
+ try {
115
+ const result = data.close(this, code ?? 1e3, reason ?? "");
116
+ if (result instanceof Promise) result.then(() => this.raw.close(code, reason)).catch(() => this.raw.close(code, reason));
117
+ return;
118
+ } catch {}
119
+ }
120
+ this.raw.close(code, reason);
121
+ }
122
+ };
123
+ for (const key of [
124
+ "sendText",
125
+ "sendBinary",
126
+ "terminate",
127
+ "publishText",
128
+ "publishBinary",
129
+ "subscribe",
130
+ "unsubscribe",
131
+ "isSubscribed",
132
+ "cork",
133
+ "remoteAddress",
134
+ "binaryType"
135
+ ]) Object.defineProperty(ElysiaWS.prototype, key, {
136
+ configurable: true,
137
+ enumerable: false,
138
+ get() {
139
+ const raw = this.raw;
140
+ const value = raw[key];
141
+ return memoize(this, key, typeof value === "function" ? value.bind(raw) : value);
142
+ }
143
+ });
144
+ function isGeneratorObject(value) {
145
+ if (value == null || typeof value !== "object") return false;
146
+ const v = value;
147
+ return typeof v.next === "function" && (typeof v[Symbol.iterator] === "function" || typeof v[Symbol.asyncIterator] === "function");
148
+ }
149
+
150
+ //#endregion
151
+ exports.ElysiaWS = ElysiaWS;
152
+ exports.isGeneratorObject = isGeneratorObject;
@@ -0,0 +1,150 @@
1
+ import { requestId } from "../utils.mjs";
2
+ import { ElysiaStatus, ValidationError } from "../error.mjs";
3
+
4
+ //#region src/ws/context.ts
5
+ function pickValidator(validators, defaultValidator, data) {
6
+ if (!validators) return;
7
+ if (data instanceof ElysiaStatus) return validators[data.status];
8
+ return defaultValidator;
9
+ }
10
+ function memoize(view, key, value) {
11
+ const self = view.raw.data.elysia ?? view;
12
+ Object.defineProperty(self, key, {
13
+ value,
14
+ enumerable: true,
15
+ writable: true,
16
+ configurable: true
17
+ });
18
+ return value;
19
+ }
20
+ var ElysiaWS = class {
21
+ constructor(raw, context) {
22
+ this.body = void 0;
23
+ this.raw = raw;
24
+ if (context) for (const key in context) {
25
+ if (key === "ws" || key === "body") continue;
26
+ this[key] = context[key];
27
+ }
28
+ }
29
+ get ws() {
30
+ return this;
31
+ }
32
+ get send() {
33
+ const self = this.raw.data.elysia ?? this;
34
+ return memoize(this, "send", self.#send.bind(self));
35
+ }
36
+ get ping() {
37
+ const self = this.raw.data.elysia ?? this;
38
+ return memoize(this, "ping", self.#ping.bind(self));
39
+ }
40
+ get pong() {
41
+ const self = this.raw.data.elysia ?? this;
42
+ return memoize(this, "pong", self.#pong.bind(self));
43
+ }
44
+ get publish() {
45
+ const self = this.raw.data.elysia ?? this;
46
+ return memoize(this, "publish", self.#publish.bind(self));
47
+ }
48
+ get close() {
49
+ const self = this.raw.data.elysia ?? this;
50
+ return memoize(this, "close", self.#close.bind(self));
51
+ }
52
+ get id() {
53
+ return this.raw.data.id ??= requestId();
54
+ }
55
+ get readyState() {
56
+ return this.raw.readyState;
57
+ }
58
+ get subscriptions() {
59
+ return this.raw.subscriptions;
60
+ }
61
+ get data() {
62
+ return this.raw.data;
63
+ }
64
+ #prepare(data) {
65
+ if (data === void 0) return null;
66
+ if (data instanceof ElysiaStatus) return JSON.stringify({
67
+ status: data.status,
68
+ error: data.response
69
+ });
70
+ if (typeof data === "object") return JSON.stringify(data);
71
+ return data;
72
+ }
73
+ #validatedOrError(data) {
74
+ const connectionData = this.raw.data;
75
+ const v = pickValidator(connectionData?.validator, connectionData?.defaultValidator, data);
76
+ if (!v) return;
77
+ const value = data instanceof ElysiaStatus ? data.response : data;
78
+ if (v.Check(value)) return;
79
+ return new ValidationError("message", value, v.Errors(value)).message;
80
+ }
81
+ #send(data, compress) {
82
+ if (data === void 0) return 0;
83
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.send(data, compress);
84
+ const err = this.#validatedOrError(data);
85
+ if (err !== void 0) return this.raw.send(err);
86
+ return this.raw.send(this.#prepare(data), compress);
87
+ }
88
+ #ping(data) {
89
+ if (data === void 0) return this.raw.ping();
90
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.ping(data);
91
+ const err = this.#validatedOrError(data);
92
+ if (err !== void 0) return this.raw.send(err);
93
+ return this.raw.ping(this.#prepare(data));
94
+ }
95
+ #pong(data) {
96
+ if (data === void 0) return this.raw.pong();
97
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.pong(data);
98
+ const err = this.#validatedOrError(data);
99
+ if (err !== void 0) return this.raw.send(err);
100
+ return this.raw.pong(this.#prepare(data));
101
+ }
102
+ #publish(topic, data, compress) {
103
+ if (data === void 0) return 0;
104
+ if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) return this.raw.publish(topic, data, compress);
105
+ const err = this.#validatedOrError(data);
106
+ if (err !== void 0) return this.raw.send(err);
107
+ return this.raw.publish(topic, this.#prepare(data), compress);
108
+ }
109
+ #close(code, reason) {
110
+ const data = this.raw.data;
111
+ if (!data.closeHandlerInvoked && data.close) {
112
+ data.closeHandlerInvoked = true;
113
+ try {
114
+ const result = data.close(this, code ?? 1e3, reason ?? "");
115
+ if (result instanceof Promise) result.then(() => this.raw.close(code, reason)).catch(() => this.raw.close(code, reason));
116
+ return;
117
+ } catch {}
118
+ }
119
+ this.raw.close(code, reason);
120
+ }
121
+ };
122
+ for (const key of [
123
+ "sendText",
124
+ "sendBinary",
125
+ "terminate",
126
+ "publishText",
127
+ "publishBinary",
128
+ "subscribe",
129
+ "unsubscribe",
130
+ "isSubscribed",
131
+ "cork",
132
+ "remoteAddress",
133
+ "binaryType"
134
+ ]) Object.defineProperty(ElysiaWS.prototype, key, {
135
+ configurable: true,
136
+ enumerable: false,
137
+ get() {
138
+ const raw = this.raw;
139
+ const value = raw[key];
140
+ return memoize(this, key, typeof value === "function" ? value.bind(raw) : value);
141
+ }
142
+ });
143
+ function isGeneratorObject(value) {
144
+ if (value == null || typeof value !== "object") return false;
145
+ const v = value;
146
+ return typeof v.next === "function" && (typeof v[Symbol.iterator] === "function" || typeof v[Symbol.asyncIterator] === "function");
147
+ }
148
+
149
+ //#endregion
150
+ export { ElysiaWS, isGeneratorObject };
@@ -1,77 +1,5 @@
1
- import type { ServerWebSocket, ServerWebSocketSendStatus, BufferSource, WebSocketHandler } from './bun';
2
- import type { TSchema } from '@sinclair/typebox';
3
- import type { TypeCheck } from '../type-system';
4
- import type { ElysiaTypeCheck } from '../schema';
5
- import type { FlattenResponse, WSParseHandler } from './types';
6
- import type { MaybeArray, Prettify, RouteSchema } from '../types';
7
- export declare const websocket: WebSocketHandler<any>;
8
- type ElysiaServerWebSocket = Omit<ServerWebSocket<unknown>, 'send' | 'ping' | 'pong' | 'publish'>;
9
- export declare class ElysiaWS<Context = unknown, Route extends RouteSchema = {}> implements ElysiaServerWebSocket {
10
- raw: ServerWebSocket<{
11
- id?: string;
12
- validator?: TypeCheck<TSchema>;
13
- }>;
14
- data: Prettify<Omit<Context, 'body' | 'error' | 'status' | 'redirect'>>;
15
- body: Route['body'];
16
- constructor(raw: ServerWebSocket<{
17
- id?: string;
18
- validator?: TypeCheck<TSchema>;
19
- }>, data: Prettify<Omit<Context, 'body' | 'error' | 'status' | 'redirect'>>, body?: Route['body']);
20
- /**
21
- * Sends a message to the client.
22
- *
23
- * @param data The data to send.
24
- * @param compress Should the data be compressed? If the client does not support compression, this is ignored.
25
- * @example
26
- * ws.send("Hello!");
27
- * ws.send("Compress this.", true);
28
- * ws.send(new Uint8Array([1, 2, 3, 4]));
29
- */
30
- send(data: FlattenResponse<Route['response']> | BufferSource, compress?: boolean): ServerWebSocketSendStatus;
31
- /**
32
- * Sends a ping.
33
- *
34
- * @param data The data to send
35
- */
36
- ping(data?: FlattenResponse<Route['response']> | BufferSource): ServerWebSocketSendStatus;
37
- /**
38
- * Sends a pong.
39
- *
40
- * @param data The data to send
41
- */
42
- pong(data?: FlattenResponse<Route['response']> | BufferSource): ServerWebSocketSendStatus;
43
- /**
44
- * Sends a message to subscribers of the topic.
45
- *
46
- * @param topic The topic name.
47
- * @param data The data to send.
48
- * @param compress Should the data be compressed? If the client does not support compression, this is ignored.
49
- * @example
50
- * ws.publish("chat", "Hello!");
51
- * ws.publish("chat", "Compress this.", true);
52
- * ws.publish("chat", new Uint8Array([1, 2, 3, 4]));
53
- */
54
- publish(topic: string, data: FlattenResponse<Route['response']> | BufferSource, compress?: boolean): ServerWebSocketSendStatus;
55
- sendText: ServerWebSocket['sendText'];
56
- sendBinary: ServerWebSocket['sendBinary'];
57
- close: ServerWebSocket['close'];
58
- terminate: ServerWebSocket['terminate'];
59
- publishText: ServerWebSocket['publishText'];
60
- publishBinary: ServerWebSocket['publishBinary'];
61
- subscribe: ServerWebSocket['subscribe'];
62
- unsubscribe: ServerWebSocket['unsubscribe'];
63
- isSubscribed: ServerWebSocket['isSubscribed'];
64
- cork: ServerWebSocket['cork'];
65
- remoteAddress: ServerWebSocket['remoteAddress'];
66
- binaryType: ServerWebSocket['binaryType'];
67
- subscriptions: ServerWebSocket['subscriptions'];
68
- get readyState(): import("./bun").WebSocketReadyState;
69
- validator?: TypeCheck<TSchema>;
70
- ['~types']?: {
71
- validator: Prettify<Route>;
72
- };
73
- get id(): string;
74
- }
75
- export declare const createWSMessageParser: (parse: MaybeArray<WSParseHandler<any>>) => (ws: ServerWebSocket<any>, message: any) => Promise<any>;
76
- export declare const createHandleWSResponse: (responseValidator: TypeCheck<any> | ElysiaTypeCheck<any> | undefined) => (ws: ServerWebSocket<any>, data: unknown) => unknown;
77
- export type { WSLocalHook } from './types';
1
+ import { AnyWSLocalHook, BufferSource, ElysiaWSLike, FlattenResponse, ServerWebSocket, ServerWebSocketSendStatus, WSHandlerResult, WSLocalHook, WSMessageHandler, WSParseHandler, WSResponseValidator, WSValidatorLike, WebSocketCompressor, WebSocketHandler, WebSocketReadyState } from "./types.js";
2
+ import { ElysiaWS, WSConnectionData, isGeneratorObject } from "./context.js";
3
+ import { buildGlobalWSHandler, buildWSRoute } from "./route.js";
4
+ import { createMessageParser, defaultWSParse } from "./parser.js";
5
+ export { type AnyWSLocalHook, type BufferSource, ElysiaWS, type ElysiaWSLike, type FlattenResponse, type ServerWebSocket, type ServerWebSocketSendStatus, type WSConnectionData, type WSHandlerResult, type WSLocalHook, type WSMessageHandler, type WSParseHandler, type WSResponseValidator, type WSValidatorLike, type WebSocketCompressor, type WebSocketHandler, type WebSocketReadyState, buildGlobalWSHandler, buildWSRoute, createMessageParser, defaultWSParse, isGeneratorObject };