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,188 @@
1
+ import { nullObject } from "../../utils.mjs";
2
+ import { subValueAt } from "../../error.mjs";
3
+ import { EMPTY_EXTERNALS, reconstruct } from "../../compile/aot.mjs";
4
+ import { buildFrozenCheck } from "./frozen-check.mjs";
5
+ import { Build, Compile } from "typebox/schema";
6
+
7
+ //#region src/type/validator/custom-error.ts
8
+ function encodePointer(segments) {
9
+ let out = "";
10
+ for (const s of segments) out += "/" + s.replace(/~/g, "~0").replace(/\//g, "~1");
11
+ return out;
12
+ }
13
+ function collectCustomErrorNodes(schema, segments, out, seen, union) {
14
+ if (!schema || typeof schema !== "object") return out;
15
+ if (seen.has(schema)) return out;
16
+ seen.add(schema);
17
+ if (schema.error !== void 0) out.push({
18
+ path: encodePointer(segments),
19
+ node: schema,
20
+ segments,
21
+ union
22
+ });
23
+ if (schema.properties) for (const k in schema.properties) collectCustomErrorNodes(schema.properties[k], [...segments, k], out, seen, union);
24
+ const items = schema.items;
25
+ if (Array.isArray(items)) for (let i = 0; i < items.length; i++) collectCustomErrorNodes(items[i], [...segments, String(i)], out, seen, union);
26
+ else if (items && typeof items === "object") {
27
+ const inner = [];
28
+ collectCustomErrorNodes(items, [], inner, seen, union);
29
+ for (const child of inner) out.push({
30
+ path: encodePointer(segments) + "/[]" + child.path,
31
+ node: child.node,
32
+ segments,
33
+ each: { itemSegments: child.segments },
34
+ union: child.union
35
+ });
36
+ }
37
+ const branches = schema.anyOf ?? schema.oneOf;
38
+ if (Array.isArray(branches)) for (let i = 0; i < branches.length; i++) collectCustomErrorNodes(branches[i], segments, out, seen, {
39
+ node: schema,
40
+ segments,
41
+ branchIndex: i
42
+ });
43
+ seen.delete(schema);
44
+ return out;
45
+ }
46
+ const literalOf = (propSchema) => {
47
+ if (!propSchema || typeof propSchema !== "object") return;
48
+ if ("const" in propSchema) return { value: propSchema.const };
49
+ if (Array.isArray(propSchema.enum) && propSchema.enum.length === 1) return { value: propSchema.enum[0] };
50
+ };
51
+ function computeDiscriminators(branches) {
52
+ let candidates;
53
+ for (const branch of branches) {
54
+ if (!branch || !branch.properties) return;
55
+ const keys = /* @__PURE__ */ new Set();
56
+ for (const k in branch.properties) if (literalOf(branch.properties[k])) keys.add(k);
57
+ if (!keys.size) return;
58
+ if (!candidates) candidates = keys;
59
+ else for (const c of [...candidates]) if (!keys.has(c)) candidates.delete(c);
60
+ if (!candidates.size) return;
61
+ }
62
+ if (!candidates || !candidates.size) return;
63
+ const perBranch = branches.map(nullObject);
64
+ let hasDisambiguating = false;
65
+ for (const key of candidates) {
66
+ const seenValues = [];
67
+ for (let i = 0; i < branches.length; i++) {
68
+ const lit = literalOf(branches[i].properties[key]);
69
+ perBranch[i][key] = lit.value;
70
+ seenValues.push(lit.value);
71
+ }
72
+ if (new Set(seenValues).size === branches.length) hasDisambiguating = true;
73
+ }
74
+ return hasDisambiguating ? perBranch : void 0;
75
+ }
76
+ function buildFindCustomError(schema, frozen) {
77
+ const nodes = collectCustomErrorNodes(schema, [], [], /* @__PURE__ */ new WeakSet());
78
+ if (!nodes.length) return;
79
+ const frozenByPath = frozen?.ce ? new Map(frozen.ce.map((e) => [e.p, e])) : void 0;
80
+ const unionCheckCache = /* @__PURE__ */ new WeakMap();
81
+ const discriminatorCache = /* @__PURE__ */ new WeakMap();
82
+ const compileUnion = (node) => {
83
+ const cached = unionCheckCache.get(node);
84
+ if (cached) return cached;
85
+ try {
86
+ const uc = Compile(node);
87
+ const fn = (v) => uc.Check(v);
88
+ unionCheckCache.set(node, fn);
89
+ return fn;
90
+ } catch {
91
+ return;
92
+ }
93
+ };
94
+ const discriminatorsOf = (node, branches) => {
95
+ if (discriminatorCache.has(node)) return discriminatorCache.get(node) ?? void 0;
96
+ const d = computeDiscriminators(branches) ?? null;
97
+ discriminatorCache.set(node, d);
98
+ return d ?? void 0;
99
+ };
100
+ const checks = [];
101
+ for (const { path, node, each, segments, union } of nodes) {
102
+ let check;
103
+ const fe = union ? void 0 : frozenByPath?.get(path);
104
+ if (fe) try {
105
+ check = fe.c(fe.e ? reconstruct().collectExternals(node) : EMPTY_EXTERNALS);
106
+ } catch {}
107
+ else try {
108
+ const c = Compile(node);
109
+ check = (v) => c.Check(v);
110
+ } catch {}
111
+ if (!check) continue;
112
+ if (each) {
113
+ const leafCheck = check;
114
+ const itemSegments = each.itemSegments;
115
+ check = (v) => !Array.isArray(v) || v.every((x) => leafCheck(subValueAt(x, itemSegments)));
116
+ }
117
+ let gate;
118
+ if (union) {
119
+ const branches = union.node.anyOf ?? union.node.oneOf ?? [];
120
+ const discriminators = discriminatorsOf(union.node, branches);
121
+ if (!discriminators) gate = () => true;
122
+ else {
123
+ const unionCheck = compileUnion(union.node);
124
+ if (!unionCheck) continue;
125
+ const unionSegments = union.segments;
126
+ const branchIndex = union.branchIndex;
127
+ gate = (root) => {
128
+ const unionValue = subValueAt(root, unionSegments);
129
+ if (unionCheck(unionValue)) return true;
130
+ if (unionValue === null || typeof unionValue !== "object") return true;
131
+ let matches = 0;
132
+ let selected = -1;
133
+ for (let i = 0; i < discriminators.length; i++) {
134
+ const req = discriminators[i];
135
+ let ok = true;
136
+ for (const k in req) if (unionValue[k] !== req[k]) {
137
+ ok = false;
138
+ break;
139
+ }
140
+ if (ok) {
141
+ matches++;
142
+ selected = i;
143
+ }
144
+ }
145
+ return !(matches === 1 && selected === branchIndex);
146
+ };
147
+ }
148
+ }
149
+ checks.push({
150
+ segments,
151
+ each,
152
+ check,
153
+ gate,
154
+ path,
155
+ error: node.error
156
+ });
157
+ }
158
+ if (!checks.length) return;
159
+ checks.sort((a, b) => b.segments.length - a.segments.length || b.path.length - a.path.length);
160
+ return (value) => {
161
+ for (const c of checks) {
162
+ if (c.gate && c.gate(value)) continue;
163
+ if (!c.check(subValueAt(value, c.segments))) return {
164
+ instancePath: c.path,
165
+ error: c.error
166
+ };
167
+ }
168
+ };
169
+ }
170
+ function captureCustomErrors(schema) {
171
+ const ceNodes = collectCustomErrorNodes(schema, [], [], /* @__PURE__ */ new WeakSet());
172
+ if (!ceNodes.length) return;
173
+ const entries = [];
174
+ for (const { path, node, union, each } of ceNodes) {
175
+ if (union || each) continue;
176
+ try {
177
+ const cf = buildFrozenCheck(Build(node), node);
178
+ if (cf) entries.push({
179
+ path,
180
+ ...cf
181
+ });
182
+ } catch {}
183
+ }
184
+ return entries.length ? entries : void 0;
185
+ }
186
+
187
+ //#endregion
188
+ export { buildFindCustomError, captureCustomErrors };
@@ -0,0 +1,26 @@
1
+ import { TSchema } from "typebox/type";
2
+
3
+ //#region src/type/validator/default-precompute.d.ts
4
+ type DefaultCloner = () => unknown;
5
+ type ObjectDefaultMerger = (value: Record<string, unknown>) => Record<string, unknown>;
6
+ declare function applyPrecomputed(defaults: Record<string, unknown>, value: Record<string, unknown>): Record<string, unknown>;
7
+ declare function isEmittable(v: unknown, seen: Set<unknown>, top?: boolean): boolean;
8
+ declare function buildDefaultClonerSource(value: unknown): string | undefined;
9
+ declare function buildObjectDefaultMergeSource(defaults: Record<string, unknown>): string | undefined;
10
+ declare function createDefaultCloner(value: unknown): DefaultCloner | undefined;
11
+ declare function createObjectDefaultMerger(defaults: Record<string, unknown>): ObjectDefaultMerger | undefined;
12
+ declare function createMergerFromSource(source: string): ((value: any) => any) | undefined;
13
+ interface DefaultProbeImpl {
14
+ validateMergeSource(schema: TSchema, source: string): boolean;
15
+ validateObjectDefault(schema: TSchema, pod: Record<string, unknown>): boolean;
16
+ }
17
+ declare function setDefaultProbeImpl(impl: DefaultProbeImpl): void;
18
+ declare function canonical(v: unknown): string;
19
+ declare function verifyPreallocatableDefault(schema: TSchema, validate?: boolean): {
20
+ pd: unknown;
21
+ pn: boolean;
22
+ pod: Record<string, unknown> | undefined;
23
+ ms: string | undefined;
24
+ } | undefined;
25
+ //#endregion
26
+ export { DefaultProbeImpl, applyPrecomputed, buildDefaultClonerSource, buildObjectDefaultMergeSource, canonical, createDefaultCloner, createMergerFromSource, createObjectDefaultMerger, isEmittable, setDefaultProbeImpl, verifyPreallocatableDefault };
@@ -0,0 +1,432 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
+ const require_constants = require('../../constants.js');
4
+ const require_utils = require('../../utils.js');
5
+ let typebox_value = require("typebox/value");
6
+
7
+ //#region src/type/validator/default-precompute.ts
8
+ function isPrecomputeSafe(schema, depth = 0) {
9
+ if (!schema || typeof schema !== "object") return true;
10
+ const kind = schema["~kind"];
11
+ if (kind === "Union" || kind === "Intersect" || kind === "Ref" || kind === "This" || kind === "Cyclic") return false;
12
+ if (schema["~codec"] || schema["~refine"]) return false;
13
+ if (depth > 0 && (kind === "Object" || schema.type === "object")) {
14
+ if (schema.default === void 0 || nestedOwnDefaultDiverges(schema)) return false;
15
+ }
16
+ if (schema.properties) {
17
+ for (const key in schema.properties) if (Object.hasOwn(schema.properties, key) && !isPrecomputeSafe(schema.properties[key], depth + 1)) return false;
18
+ }
19
+ if (schema.items) {
20
+ if (Array.isArray(schema.items)) {
21
+ for (const v of schema.items) if (!isPrecomputeSafe(v, depth + 1)) return false;
22
+ } else if (!isPrecomputeSafe(schema.items, depth + 1)) return false;
23
+ }
24
+ if (typeof schema.additionalProperties === "object" && !isPrecomputeSafe(schema.additionalProperties, depth + 1)) return false;
25
+ if (schema.patternProperties) {
26
+ for (const key in schema.patternProperties) if (Object.hasOwn(schema.patternProperties, key) && !isPrecomputeSafe(schema.patternProperties[key], depth + 1)) return false;
27
+ }
28
+ return true;
29
+ }
30
+ function nestedOwnDefaultDiverges(objectSchema) {
31
+ const own = objectSchema.default;
32
+ if (own === null || typeof own !== "object" || Array.isArray(own)) return false;
33
+ const props = objectSchema.properties;
34
+ if (!props) return false;
35
+ for (const key in props) {
36
+ const child = props[key];
37
+ if (!child || typeof child !== "object") continue;
38
+ if ("default" in child) {
39
+ if (!(key in own) || canonical(own[key]) !== canonical(child.default)) return true;
40
+ } else if (child["~kind"] === "Object" || child.type === "object") {
41
+ if (key in own) {
42
+ if (nestedOwnDefaultDiverges({
43
+ ...child,
44
+ default: own[key]
45
+ })) return true;
46
+ } else if (hasDefaultBelow(child)) return true;
47
+ }
48
+ }
49
+ return false;
50
+ }
51
+ function applyPrecomputed(defaults, value) {
52
+ const out = require_utils.nullObject();
53
+ for (const k in defaults) {
54
+ const d = defaults[k];
55
+ const v = value[k];
56
+ if (v === void 0) out[k] = d !== null && typeof d === "object" ? structuredClone(d) : d;
57
+ else if (!Object.hasOwn(value, k)) out[k] = v;
58
+ else out[k] = d;
59
+ }
60
+ for (const k in value) {
61
+ const v = value[k];
62
+ if (v === void 0) continue;
63
+ const d = out[k];
64
+ if (v && typeof v === "object" && !Array.isArray(v) && d && typeof d === "object" && !Array.isArray(d)) out[k] = applyPrecomputed(d, v);
65
+ else out[k] = v;
66
+ }
67
+ return out;
68
+ }
69
+ const subtreeHasDefault = (n) => !!n && typeof n === "object" && ("default" in n || childSchemaSome(n, subtreeHasDefault));
70
+ function childSchemaSome(n, f) {
71
+ if (!n || typeof n !== "object") return false;
72
+ if (n.properties) {
73
+ for (const k in n.properties) if (f(n.properties[k])) return true;
74
+ }
75
+ const items = n.items;
76
+ if (Array.isArray(items)) {
77
+ for (const it of items) if (f(it)) return true;
78
+ } else if (items && f(items)) return true;
79
+ for (const key of [
80
+ "anyOf",
81
+ "allOf",
82
+ "oneOf"
83
+ ]) {
84
+ const arr = n[key];
85
+ if (Array.isArray(arr)) {
86
+ for (const s of arr) if (f(s)) return true;
87
+ }
88
+ }
89
+ if (typeof n.additionalProperties === "object" && f(n.additionalProperties)) return true;
90
+ if (n.patternProperties) {
91
+ for (const k in n.patternProperties) if (f(n.patternProperties[k])) return true;
92
+ }
93
+ for (const key of [
94
+ "not",
95
+ "if",
96
+ "then",
97
+ "else"
98
+ ]) if (n[key] && f(n[key])) return true;
99
+ return false;
100
+ }
101
+ const hasDefaultBelow = (node) => childSchemaSome(node, subtreeHasDefault);
102
+ function hasUnemittableDefaultValue(node) {
103
+ if (!node || typeof node !== "object") return false;
104
+ if ("default" in node && !isEmittable(node.default, /* @__PURE__ */ new Set(), true)) return true;
105
+ return childSchemaSome(node, hasUnemittableDefaultValue);
106
+ }
107
+ function containsRefLike(node, seen = /* @__PURE__ */ new WeakSet()) {
108
+ if (!node || typeof node !== "object" || seen.has(node)) return false;
109
+ seen.add(node);
110
+ if (node.$ref !== void 0 || node["~kind"] === "Ref" || node["~kind"] === "This" || node["~kind"] === "Cyclic") return true;
111
+ return childSchemaSome(node, (child) => containsRefLike(child, seen));
112
+ }
113
+ function hasDivergentDefaultBelow(node) {
114
+ const ownKey = "default" in node ? canonical(node.default) : void 0;
115
+ let bad = false;
116
+ const visit = (n) => {
117
+ if (!n || typeof n !== "object") return false;
118
+ if ("default" in n && (ownKey === void 0 || canonical(n.default) !== ownKey)) return bad = true;
119
+ return childSchemaSome(n, visit);
120
+ };
121
+ childSchemaSome(node, visit);
122
+ return bad;
123
+ }
124
+ function structuralPreallocatable(schema, depth = 0) {
125
+ if (!schema || typeof schema !== "object") return true;
126
+ if (!((schema["~kind"] === "Object" || schema.type === "object") && !schema["~codec"] && !schema["~refine"] && !Array.isArray(schema.anyOf) && !Array.isArray(schema.allOf) && !Array.isArray(schema.oneOf) && schema.$ref === void 0 && schema.if === void 0 && schema.not === void 0)) return !hasDivergentDefaultBelow(schema);
127
+ if (depth > 0 && schema.default === void 0 && hasDefaultBelow(schema)) return false;
128
+ if (typeof schema.additionalProperties === "object" && subtreeHasDefault(schema.additionalProperties)) return false;
129
+ if (schema.patternProperties) {
130
+ for (const k in schema.patternProperties) if (subtreeHasDefault(schema.patternProperties[k])) return false;
131
+ }
132
+ if (schema.properties) {
133
+ for (const k in schema.properties) if (!structuralPreallocatable(schema.properties[k], depth + 1)) return false;
134
+ }
135
+ return true;
136
+ }
137
+ function emittableObjectKeys(v) {
138
+ if (Object.getOwnPropertySymbols(v).length) return;
139
+ const keys = Object.keys(v);
140
+ if (Object.getOwnPropertyNames(v).length !== keys.length) return;
141
+ for (const k of keys) {
142
+ const descriptor = Object.getOwnPropertyDescriptor(v, k);
143
+ if (!descriptor || descriptor.get || descriptor.set || !descriptor.enumerable) return;
144
+ }
145
+ return keys;
146
+ }
147
+ function isEmittable(v, seen, top = false) {
148
+ if (v === void 0) return top;
149
+ if (v === null) return true;
150
+ const t = typeof v;
151
+ if (t === "number") return Number.isFinite(v) && !Object.is(v, -0);
152
+ if (t === "string" || t === "boolean") return true;
153
+ if (t !== "object") return false;
154
+ if (seen.has(v)) return false;
155
+ seen.add(v);
156
+ let ok = true;
157
+ if (Array.isArray(v)) {
158
+ if (Object.getOwnPropertySymbols(v).length) ok = false;
159
+ for (const x of v) if (!isEmittable(x, seen)) {
160
+ ok = false;
161
+ break;
162
+ }
163
+ } else {
164
+ const proto = Object.getPrototypeOf(v);
165
+ if (proto !== Object.prototype && proto !== null) ok = false;
166
+ else {
167
+ const keys = emittableObjectKeys(v);
168
+ if (!keys) ok = false;
169
+ else for (const k of keys) {
170
+ if (require_constants.dangerousKeys.has(k)) {
171
+ ok = false;
172
+ break;
173
+ }
174
+ if (!isEmittable(v[k], seen)) {
175
+ ok = false;
176
+ break;
177
+ }
178
+ }
179
+ }
180
+ }
181
+ seen.delete(v);
182
+ return ok;
183
+ }
184
+ function cloneExpression(v) {
185
+ if (v === void 0) return "undefined";
186
+ if (v === null) return "null";
187
+ const t = typeof v;
188
+ if (t === "number" || t === "string" || t === "boolean") return JSON.stringify(v);
189
+ if (t !== "object") return;
190
+ if (Array.isArray(v)) {
191
+ if (Object.getOwnPropertySymbols(v).length) return;
192
+ const values = [];
193
+ for (const x of v) {
194
+ const value = cloneExpression(x);
195
+ if (value === void 0) return;
196
+ values.push(value);
197
+ }
198
+ return "[" + values.join(",") + "]";
199
+ }
200
+ const proto = Object.getPrototypeOf(v);
201
+ if (proto !== Object.prototype && proto !== null) return;
202
+ const keys = emittableObjectKeys(v);
203
+ if (!keys) return;
204
+ const entries = [];
205
+ for (const k of keys) {
206
+ if (require_constants.dangerousKeys.has(k)) return;
207
+ const value = cloneExpression(v[k]);
208
+ if (value === void 0) return;
209
+ entries.push(JSON.stringify(k) + ":" + value);
210
+ }
211
+ return "{" + entries.join(",") + "}";
212
+ }
213
+ function buildDefaultClonerSource(value) {
214
+ if (!isEmittable(value, /* @__PURE__ */ new Set(), true)) return;
215
+ const expression = cloneExpression(value);
216
+ if (expression === void 0) return;
217
+ return `function(){return ${expression}}`;
218
+ }
219
+ function buildObjectMergeFunction(defaults, helpers) {
220
+ const name = `_m${helpers.length}`;
221
+ helpers.push("");
222
+ const keys = Object.keys(defaults);
223
+ const guard = [];
224
+ let body = "if(v===null||typeof v!=='object'||Array.isArray(v))return v;const out=Object.create(null);let x;";
225
+ for (const key of keys) {
226
+ const access = `v[${JSON.stringify(key)}]`;
227
+ const write = `out[${JSON.stringify(key)}]`;
228
+ const d = defaults[key];
229
+ const value = cloneExpression(d);
230
+ if (value === void 0) return;
231
+ body += `x=${access};`;
232
+ if (d !== null && typeof d === "object") {
233
+ if (Array.isArray(d)) {
234
+ body += `if(x===undefined)${write}=${value};else ${write}=x;`;
235
+ guard.push(`${access}===undefined`);
236
+ continue;
237
+ }
238
+ const nested = buildObjectMergeFunction(d, helpers);
239
+ if (!nested) return;
240
+ body += `if(x===undefined)${write}=${value};else if(x&&typeof x==='object'&&!Array.isArray(x))${write}=${nested}(x);else ${write}=x;`;
241
+ guard.push(`(${access}===undefined||(typeof ${access}==='object'&&${access}!==null&&!Array.isArray(${access})&&${nested}(${access})!==${access}))`);
242
+ } else {
243
+ body += `${write}=x===undefined?${value}:x;`;
244
+ guard.push(`${access}===undefined`);
245
+ }
246
+ }
247
+ body += "for(const k in v){x=v[k];if(x!==undefined";
248
+ for (const key of keys) body += `&&k!==${JSON.stringify(key)}`;
249
+ body += ")out[k]=x}return out";
250
+ const fastPath = guard.length ? `if(v!==null&&typeof v==='object'&&!Array.isArray(v)&&!(${guard.join("||")}))return v;` : "";
251
+ helpers[+name.slice(2)] = `function ${name}(v){${fastPath}${body}}`;
252
+ return name;
253
+ }
254
+ function buildObjectDefaultMergeSource(defaults) {
255
+ if (!isEmittable(defaults, /* @__PURE__ */ new Set(), true)) return;
256
+ const helpers = [];
257
+ const root = buildObjectMergeFunction(defaults, helpers);
258
+ if (!root) return;
259
+ return `(function(){${helpers.join(";")};return ${root}})()`;
260
+ }
261
+ function fromSource(source) {
262
+ try {
263
+ return Function(`return ${source}`)();
264
+ } catch {
265
+ return;
266
+ }
267
+ }
268
+ function createDefaultCloner(value) {
269
+ const source = buildDefaultClonerSource(value);
270
+ return source ? fromSource(source) : void 0;
271
+ }
272
+ function createObjectDefaultMerger(defaults) {
273
+ const source = buildObjectDefaultMergeSource(defaults);
274
+ return source ? fromSource(source) : void 0;
275
+ }
276
+ function createMergerFromSource(source) {
277
+ return fromSource(source);
278
+ }
279
+ function mergeCategory(node) {
280
+ if (!node || typeof node !== "object") return "identity";
281
+ if (!subtreeHasDefault(node)) return "identity";
282
+ if (node["~codec"] || node["~refine"]) return "bail";
283
+ const kind = node["~kind"];
284
+ if (kind === "Union" || kind === "Intersect" || kind === "Ref" || kind === "This" || kind === "Cyclic") return "bail";
285
+ if (kind === "Object" || node.type === "object") return "object";
286
+ if ((kind === "Array" || node.type === "array") && node.items) return !Array.isArray(node.items) && subtreeHasDefault(node.items) ? "array" : "identity";
287
+ return "identity";
288
+ }
289
+ function presentExpr(child, isObject, varName) {
290
+ if (child === "") return varName;
291
+ return isObject ? `(${varName}!==null&&typeof ${varName}==='object'&&!Array.isArray(${varName})?${child}(${varName}):${varName})` : `(Array.isArray(${varName})?${child}(${varName}):${varName})`;
292
+ }
293
+ function mergeExpression(schema, varName, helpers, memo) {
294
+ const full = (0, typebox_value.Default)(schema, void 0);
295
+ const child = emitMerger(schema, helpers, memo);
296
+ if (child === void 0) return;
297
+ const absent = full === void 0 ? void 0 : cloneExpression(full);
298
+ if (full !== void 0 && absent === void 0) return;
299
+ const isObject = mergeCategory(schema) === "object";
300
+ return {
301
+ absent,
302
+ present: presentExpr(child, isObject, varName),
303
+ child,
304
+ isObject
305
+ };
306
+ }
307
+ function emitMerger(node, helpers, memo = /* @__PURE__ */ new WeakMap()) {
308
+ if (memo.has(node)) return memo.get(node);
309
+ const category = mergeCategory(node);
310
+ if (category === "identity") return "";
311
+ if (category === "bail") return;
312
+ const name = `_d${helpers.length}`;
313
+ helpers.push("");
314
+ memo.set(node, name);
315
+ if (category === "object") {
316
+ const props = node.properties ?? require_utils.nullObject();
317
+ const handled = [];
318
+ const typeGuard = "if(v===null||typeof v!=='object'||Array.isArray(v))return v;";
319
+ let tempDecls = "let x;";
320
+ const guard = [];
321
+ let mergeBody = "const out=Object.create(null);";
322
+ let tempCount = 0;
323
+ for (const key in props) {
324
+ if (!Object.hasOwn(props, key)) continue;
325
+ const ps = props[key];
326
+ if (!subtreeHasDefault(ps)) continue;
327
+ if (require_constants.dangerousKeys.has(key)) return;
328
+ const expr = mergeExpression(ps, "x", helpers, memo);
329
+ if (!expr) return;
330
+ handled.push(key);
331
+ const access = JSON.stringify(key);
332
+ const vk = `v[${access}]`;
333
+ const absentTest = expr.absent === void 0 ? void 0 : `${vk}===undefined`;
334
+ if (expr.child !== "") {
335
+ const tmp = `_t${tempCount++}`;
336
+ const typeCheck = expr.isObject ? `${vk}!==null&&typeof ${vk}==='object'&&!Array.isArray(${vk})` : `Array.isArray(${vk})`;
337
+ tempDecls += `let ${tmp}=${typeCheck}?${expr.child}(${vk}):${vk};`;
338
+ const test = [absentTest, `(${vk}!==undefined&&${tmp}!==${vk})`].filter(Boolean).join("||");
339
+ if (test) guard.push(test);
340
+ mergeBody += expr.absent === void 0 ? `if(${vk}!==undefined)out[${access}]=${tmp};` : `out[${access}]=${vk}===undefined?${expr.absent}:${tmp};`;
341
+ } else {
342
+ mergeBody += `x=${vk};`;
343
+ mergeBody += expr.absent === void 0 ? `if(x!==undefined)out[${access}]=${expr.present};` : `out[${access}]=x===undefined?${expr.absent}:${expr.present};`;
344
+ if (absentTest) guard.push(absentTest);
345
+ }
346
+ }
347
+ if (!handled.length) {
348
+ helpers.pop();
349
+ return "";
350
+ }
351
+ mergeBody += "for(const k in v){x=v[k];if(x!==undefined";
352
+ for (const key of handled) mergeBody += `&&k!==${JSON.stringify(key)}`;
353
+ mergeBody += ")out[k]=x}return out";
354
+ const fastPath = guard.length ? `if(!(${guard.join("||")}))return v;` : "";
355
+ helpers[+name.slice(2)] = `function ${name}(v){${typeGuard}${tempDecls}${fastPath}${mergeBody}}`;
356
+ return name;
357
+ }
358
+ const expr = mergeExpression(node.items, "e", helpers, memo);
359
+ if (!expr) return;
360
+ if (expr.absent === void 0 && expr.present === "e") {
361
+ helpers.pop();
362
+ return "";
363
+ }
364
+ const assign = expr.absent === void 0 ? `e===undefined?undefined:${expr.present}` : `e===undefined?${expr.absent}:${expr.present}`;
365
+ helpers[+name.slice(2)] = `function ${name}(v){if(!Array.isArray(v))return v;const o=new Array(v.length);let e;for(let i=0;i<v.length;i++){e=v[i];o[i]=${assign}}return o}`;
366
+ return name;
367
+ }
368
+ function buildMergeSource(schema) {
369
+ const category = mergeCategory(schema);
370
+ if (category !== "object" && category !== "array") return;
371
+ const helpers = [];
372
+ const root = emitMerger(schema, helpers, /* @__PURE__ */ new WeakMap());
373
+ if (!root) return;
374
+ return `(function(){${helpers.join(";")};return ${root}})()`;
375
+ }
376
+ let probeImpl;
377
+ function setDefaultProbeImpl(impl) {
378
+ probeImpl = impl;
379
+ }
380
+ function probe() {
381
+ if (!probeImpl) throw new Error("[Elysia] validating a preallocatable default requires the build-only AOT capture module (src/compile/aot-capture)");
382
+ return probeImpl;
383
+ }
384
+ function canonical(v) {
385
+ if (v === void 0) return "\0u";
386
+ if (Object.is(v, -0)) return "-0";
387
+ if (v === null || typeof v !== "object") return JSON.stringify(v) ?? "\0u";
388
+ if (Array.isArray(v)) return "[" + v.map(canonical).join(",") + "]";
389
+ return "{" + Object.keys(v).sort().map((k) => JSON.stringify(k) + ":" + canonical(v[k])).join(",") + "}";
390
+ }
391
+ function verifyPreallocatableDefault(schema, validate = true) {
392
+ if (hasUnemittableDefaultValue(schema)) return;
393
+ let pd;
394
+ let podRaw;
395
+ try {
396
+ pd = (0, typebox_value.Default)(schema, void 0);
397
+ podRaw = (0, typebox_value.Default)(schema, require_utils.nullObject());
398
+ } catch {
399
+ return;
400
+ }
401
+ const s = schema;
402
+ const rootIsObject = s.type === "object" || s["~kind"] === "Object";
403
+ const pod = rootIsObject && podRaw && typeof podRaw === "object" && !Array.isArray(podRaw) && Object.keys(podRaw).length !== 0 ? podRaw : void 0;
404
+ if (containsRefLike(schema)) return;
405
+ if (!isEmittable(pd, /* @__PURE__ */ new Set(), true) || pod !== void 0 && !isEmittable(pod, /* @__PURE__ */ new Set(), true)) return;
406
+ const nullDefault = isPrecomputeSafe(schema);
407
+ let ms = buildMergeSource(schema);
408
+ if (ms !== void 0 && validate && !probe().validateMergeSource(schema, ms)) ms = void 0;
409
+ if (!nullDefault && ms === void 0) {
410
+ if (!rootIsObject) return;
411
+ if (!structuralPreallocatable(schema)) return;
412
+ if (validate && pod !== void 0 && !probe().validateObjectDefault(schema, pod)) return;
413
+ }
414
+ return {
415
+ pd,
416
+ pn: nullDefault,
417
+ pod,
418
+ ms
419
+ };
420
+ }
421
+
422
+ //#endregion
423
+ exports.applyPrecomputed = applyPrecomputed;
424
+ exports.buildDefaultClonerSource = buildDefaultClonerSource;
425
+ exports.buildObjectDefaultMergeSource = buildObjectDefaultMergeSource;
426
+ exports.canonical = canonical;
427
+ exports.createDefaultCloner = createDefaultCloner;
428
+ exports.createMergerFromSource = createMergerFromSource;
429
+ exports.createObjectDefaultMerger = createObjectDefaultMerger;
430
+ exports.isEmittable = isEmittable;
431
+ exports.setDefaultProbeImpl = setDefaultProbeImpl;
432
+ exports.verifyPreallocatableDefault = verifyPreallocatableDefault;