elysia 2.0.0-beta.2 → 2.0.0-beta.21

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 (339) hide show
  1. package/dist/adapter/bun/index.d.ts +18 -2
  2. package/dist/adapter/bun/index.js +467 -110
  3. package/dist/adapter/bun/index.mjs +467 -112
  4. package/dist/adapter/types.d.ts +2 -21
  5. package/dist/adapter/utils.d.ts +14 -3
  6. package/dist/adapter/utils.js +146 -87
  7. package/dist/adapter/utils.mjs +148 -90
  8. package/dist/adapter/web-standard/handler.d.ts +1 -1
  9. package/dist/adapter/web-standard/handler.js +47 -36
  10. package/dist/adapter/web-standard/handler.mjs +48 -37
  11. package/dist/adapter/web-standard/index.js +2 -30
  12. package/dist/adapter/web-standard/index.mjs +2 -30
  13. package/dist/adapter/web-standard/utils.js +5 -18
  14. package/dist/adapter/web-standard/utils.mjs +5 -18
  15. package/dist/base.d.ts +99 -67
  16. package/dist/base.js +678 -510
  17. package/dist/base.mjs +682 -514
  18. package/dist/compile/aot-capture.d.ts +2 -13
  19. package/dist/compile/aot-capture.js +26 -69
  20. package/dist/compile/aot-capture.mjs +28 -67
  21. package/dist/compile/aot-emit.d.ts +9 -7
  22. package/dist/compile/aot-emit.js +42 -19
  23. package/dist/compile/aot-emit.mjs +42 -20
  24. package/dist/compile/aot.d.ts +17 -19
  25. package/dist/compile/aot.js +41 -51
  26. package/dist/compile/aot.mjs +39 -49
  27. package/dist/compile/handler/descriptor.d.ts +9 -12
  28. package/dist/compile/handler/descriptor.js +19 -44
  29. package/dist/compile/handler/descriptor.mjs +20 -42
  30. package/dist/compile/handler/frozen-validator.d.ts +5 -10
  31. package/dist/compile/handler/frozen-validator.js +55 -105
  32. package/dist/compile/handler/frozen-validator.mjs +53 -105
  33. package/dist/compile/handler/index.d.ts +7 -5
  34. package/dist/compile/handler/index.js +270 -111
  35. package/dist/compile/handler/index.mjs +270 -113
  36. package/dist/compile/handler/jit.d.ts +19 -17
  37. package/dist/compile/handler/jit.js +222 -149
  38. package/dist/compile/handler/jit.mjs +224 -152
  39. package/dist/compile/handler/params.d.ts +1 -4
  40. package/dist/compile/handler/params.js +10 -5
  41. package/dist/compile/handler/params.mjs +14 -8
  42. package/dist/compile/handler/reconstruct.d.ts +2 -2
  43. package/dist/compile/handler/reconstruct.js +6 -4
  44. package/dist/compile/handler/reconstruct.mjs +6 -4
  45. package/dist/compile/handler/static-clone-resolver.d.ts +6 -0
  46. package/dist/compile/handler/static-clone-resolver.js +8 -0
  47. package/dist/compile/handler/static-clone-resolver.mjs +7 -0
  48. package/dist/compile/handler/utils.d.ts +22 -11
  49. package/dist/compile/handler/utils.js +159 -253
  50. package/dist/compile/handler/utils.mjs +155 -252
  51. package/dist/compile/jit-probe.d.ts +2 -2
  52. package/dist/compile/jit-probe.js +2 -3
  53. package/dist/compile/jit-probe.mjs +2 -3
  54. package/dist/compile/lexer.d.ts +7 -4
  55. package/dist/compile/lexer.js +268 -6
  56. package/dist/compile/lexer.mjs +268 -4
  57. package/dist/compile/utils.js +7 -4
  58. package/dist/compile/utils.mjs +7 -4
  59. package/dist/compiled.d.ts +0 -1
  60. package/dist/compiled.js +0 -1
  61. package/dist/compiled.mjs +0 -1
  62. package/dist/context.d.ts +14 -4
  63. package/dist/context.js +17 -32
  64. package/dist/context.mjs +19 -34
  65. package/dist/cookie/config.d.ts +7 -2
  66. package/dist/cookie/config.js +76 -16
  67. package/dist/cookie/config.mjs +77 -18
  68. package/dist/cookie/cookie.d.ts +1 -1
  69. package/dist/cookie/cookie.js +8 -10
  70. package/dist/cookie/cookie.mjs +8 -10
  71. package/dist/cookie/crypto.d.ts +8 -7
  72. package/dist/cookie/crypto.js +51 -40
  73. package/dist/cookie/crypto.mjs +51 -41
  74. package/dist/cookie/error.d.ts +1 -2
  75. package/dist/cookie/error.js +6 -4
  76. package/dist/cookie/error.mjs +6 -4
  77. package/dist/cookie/lib.js +7 -2
  78. package/dist/cookie/lib.mjs +7 -2
  79. package/dist/cookie/serialize.js +1 -1
  80. package/dist/cookie/serialize.mjs +1 -1
  81. package/dist/cookie/types.d.ts +10 -0
  82. package/dist/cookie/utils.d.ts +4 -8
  83. package/dist/cookie/utils.js +86 -52
  84. package/dist/cookie/utils.mjs +89 -54
  85. package/dist/error.d.ts +113 -103
  86. package/dist/error.js +181 -117
  87. package/dist/error.mjs +179 -118
  88. package/dist/generation.d.ts +2 -2
  89. package/dist/handler/error.d.ts +26 -15
  90. package/dist/handler/error.js +77 -96
  91. package/dist/handler/error.mjs +74 -97
  92. package/dist/handler/fetch.js +87 -108
  93. package/dist/handler/fetch.mjs +89 -110
  94. package/dist/handler/utils.d.ts +12 -6
  95. package/dist/handler/utils.js +84 -28
  96. package/dist/handler/utils.mjs +80 -28
  97. package/dist/index.d.ts +12 -12
  98. package/dist/index.js +2 -9
  99. package/dist/index.mjs +1 -1
  100. package/dist/memory.js +1 -1
  101. package/dist/memory.mjs +1 -1
  102. package/dist/package.js +1 -1
  103. package/dist/package.mjs +1 -1
  104. package/dist/plugin/aot/bun.d.ts +8 -1
  105. package/dist/plugin/aot/bun.js +16 -9
  106. package/dist/plugin/aot/bun.mjs +17 -10
  107. package/dist/plugin/aot/core.d.ts +52 -60
  108. package/dist/plugin/aot/core.js +208 -109
  109. package/dist/plugin/aot/core.mjs +205 -111
  110. package/dist/plugin/aot/esbuild.js +8 -5
  111. package/dist/plugin/aot/esbuild.mjs +9 -6
  112. package/dist/plugin/aot/hooks.d.ts +6 -17
  113. package/dist/plugin/aot/hooks.js +36 -14
  114. package/dist/plugin/aot/hooks.mjs +37 -16
  115. package/dist/plugin/aot/rspack-loader.d.ts +1 -5
  116. package/dist/plugin/aot/rspack-loader.js +1 -10
  117. package/dist/plugin/aot/rspack-loader.mjs +1 -10
  118. package/dist/plugin/aot/rspack.js +2 -5
  119. package/dist/plugin/aot/rspack.mjs +3 -6
  120. package/dist/plugin/aot/source.d.ts +6 -42
  121. package/dist/plugin/aot/source.js +71 -71
  122. package/dist/plugin/aot/source.mjs +72 -72
  123. package/dist/plugin/aot/treeshake.js +2 -6
  124. package/dist/plugin/aot/treeshake.mjs +2 -6
  125. package/dist/plugin/aot/unplugin.d.ts +1 -4
  126. package/dist/plugin/aot/unplugin.js +4 -13
  127. package/dist/plugin/aot/unplugin.mjs +4 -13
  128. package/dist/plugin/aot/vite.d.ts +2 -6
  129. package/dist/plugin/aot/worker.js +2 -2
  130. package/dist/plugin/aot/worker.mjs +2 -2
  131. package/dist/plugin/auto-head.js +1 -10
  132. package/dist/plugin/auto-head.mjs +1 -10
  133. package/dist/plugin/trace.d.ts +2 -1
  134. package/dist/route-table.d.ts +3 -0
  135. package/dist/route-table.js +16 -11
  136. package/dist/route-table.mjs +16 -11
  137. package/dist/schema-snapshot.d.ts +0 -4
  138. package/dist/schema-snapshot.js +32 -49
  139. package/dist/schema-snapshot.mjs +32 -49
  140. package/dist/sucrose.d.ts +6 -55
  141. package/dist/sucrose.js +103 -731
  142. package/dist/sucrose.mjs +102 -724
  143. package/dist/trace.d.ts +5 -8
  144. package/dist/trace.js +23 -134
  145. package/dist/trace.mjs +24 -135
  146. package/dist/type/bridge-live.d.ts +4 -2
  147. package/dist/type/bridge-live.js +6 -3
  148. package/dist/type/bridge-live.mjs +4 -2
  149. package/dist/type/bridge.d.ts +6 -4
  150. package/dist/type/bridge.js +17 -9
  151. package/dist/type/bridge.mjs +5 -3
  152. package/dist/type/coerce-plan.d.ts +5 -5
  153. package/dist/type/coerce-plan.js +41 -39
  154. package/dist/type/coerce-plan.mjs +43 -39
  155. package/dist/type/coerce.d.ts +3 -7
  156. package/dist/type/coerce.js +18 -75
  157. package/dist/type/coerce.mjs +19 -76
  158. package/dist/type/compat.d.ts +3 -0
  159. package/dist/type/compat.js +23 -14
  160. package/dist/type/compat.mjs +20 -10
  161. package/dist/type/elysia/array-buffer.d.ts +4 -1
  162. package/dist/type/elysia/array-buffer.js +17 -17
  163. package/dist/type/elysia/array-buffer.mjs +17 -17
  164. package/dist/type/elysia/array-string.js +2 -40
  165. package/dist/type/elysia/array-string.mjs +2 -39
  166. package/dist/type/elysia/array.js +5 -9
  167. package/dist/type/elysia/array.mjs +5 -9
  168. package/dist/type/elysia/boolean-string.js +2 -3
  169. package/dist/type/elysia/boolean-string.mjs +1 -1
  170. package/dist/type/elysia/boolean.js +3 -12
  171. package/dist/type/elysia/boolean.mjs +3 -11
  172. package/dist/type/elysia/cookie.d.ts +3 -4
  173. package/dist/type/elysia/cookie.js +5 -15
  174. package/dist/type/elysia/cookie.mjs +5 -15
  175. package/dist/type/elysia/date.js +13 -20
  176. package/dist/type/elysia/date.mjs +10 -16
  177. package/dist/type/elysia/file-type.d.ts +11 -4
  178. package/dist/type/elysia/file-type.js +17 -2
  179. package/dist/type/elysia/file-type.mjs +17 -3
  180. package/dist/type/elysia/file.d.ts +1 -3
  181. package/dist/type/elysia/file.js +11 -27
  182. package/dist/type/elysia/file.mjs +11 -12
  183. package/dist/type/elysia/files.js +7 -11
  184. package/dist/type/elysia/files.mjs +7 -10
  185. package/dist/type/elysia/form.js +2 -3
  186. package/dist/type/elysia/form.mjs +3 -3
  187. package/dist/type/elysia/integer-string.d.ts +1 -1
  188. package/dist/type/elysia/integer-string.js +4 -30
  189. package/dist/type/elysia/integer-string.mjs +5 -30
  190. package/dist/type/elysia/integer.js +3 -12
  191. package/dist/type/elysia/integer.mjs +3 -11
  192. package/dist/type/elysia/intersect.js +0 -5
  193. package/dist/type/elysia/intersect.mjs +0 -5
  194. package/dist/type/elysia/json-string.d.ts +7 -0
  195. package/dist/type/elysia/json-string.js +47 -0
  196. package/dist/type/elysia/json-string.mjs +46 -0
  197. package/dist/type/elysia/keep-config.d.ts +14 -0
  198. package/dist/type/elysia/keep-config.js +62 -0
  199. package/dist/type/elysia/keep-config.mjs +53 -0
  200. package/dist/type/elysia/maybe-empty.js +3 -4
  201. package/dist/type/elysia/maybe-empty.mjs +1 -1
  202. package/dist/type/elysia/nullable.js +2 -3
  203. package/dist/type/elysia/nullable.mjs +1 -1
  204. package/dist/type/elysia/number.d.ts +2 -1
  205. package/dist/type/elysia/number.js +19 -11
  206. package/dist/type/elysia/number.mjs +18 -10
  207. package/dist/type/elysia/numeric-enum.d.ts +1 -1
  208. package/dist/type/elysia/numeric-enum.js +4 -5
  209. package/dist/type/elysia/numeric-enum.mjs +3 -3
  210. package/dist/type/elysia/numeric.d.ts +4 -2
  211. package/dist/type/elysia/numeric.js +20 -17
  212. package/dist/type/elysia/numeric.mjs +19 -16
  213. package/dist/type/elysia/object-string.js +2 -37
  214. package/dist/type/elysia/object-string.mjs +2 -36
  215. package/dist/type/elysia/object.js +5 -9
  216. package/dist/type/elysia/object.mjs +5 -9
  217. package/dist/type/elysia/optional.js +8 -8
  218. package/dist/type/elysia/optional.mjs +7 -7
  219. package/dist/type/elysia/problem.d.ts +20 -0
  220. package/dist/type/elysia/problem.js +25 -0
  221. package/dist/type/elysia/problem.mjs +24 -0
  222. package/dist/type/elysia/string.js +4 -3
  223. package/dist/type/elysia/string.mjs +4 -2
  224. package/dist/type/elysia/uint8-array.d.ts +1 -1
  225. package/dist/type/elysia/uint8-array.js +5 -20
  226. package/dist/type/elysia/uint8-array.mjs +5 -19
  227. package/dist/type/elysia/union-enum.js +7 -8
  228. package/dist/type/elysia/union-enum.mjs +6 -6
  229. package/dist/type/elysia/union.js +0 -5
  230. package/dist/type/elysia/union.mjs +0 -5
  231. package/dist/type/elysia/utils.d.ts +2 -4
  232. package/dist/type/elysia/utils.js +10 -21
  233. package/dist/type/elysia/utils.mjs +7 -15
  234. package/dist/type/exports.d.ts +4 -2
  235. package/dist/type/exports.js +23 -2
  236. package/dist/type/exports.mjs +11 -2
  237. package/dist/type/index.d.ts +10 -2
  238. package/dist/type/index.js +62 -15
  239. package/dist/type/index.mjs +65 -11
  240. package/dist/type/shared.d.ts +3 -9
  241. package/dist/type/shared.js +44 -97
  242. package/dist/type/shared.mjs +43 -97
  243. package/dist/type/sync-require.d.ts +11 -0
  244. package/dist/type/sync-require.js +14 -0
  245. package/dist/type/sync-require.mjs +12 -0
  246. package/dist/type/typebox-system-lite.d.ts +2 -0
  247. package/dist/type/typebox-system-lite.js +34 -0
  248. package/dist/type/typebox-system-lite.mjs +3 -0
  249. package/dist/type/typebox-system-require.d.ts +7 -0
  250. package/dist/type/typebox-system-require.js +24 -0
  251. package/dist/type/typebox-system-require.mjs +23 -0
  252. package/dist/type/typebox-type-live.d.ts +11 -0
  253. package/dist/type/typebox-type-live.js +45 -0
  254. package/dist/type/typebox-type-live.mjs +20 -0
  255. package/dist/type/typebox-type.d.ts +34 -0
  256. package/dist/type/typebox-type.js +199 -0
  257. package/dist/type/typebox-type.mjs +86 -0
  258. package/dist/type/typebox-value-live.d.ts +11 -0
  259. package/dist/type/typebox-value-live.js +31 -0
  260. package/dist/type/typebox-value-live.mjs +13 -0
  261. package/dist/type/typebox-value-ops.d.ts +4 -0
  262. package/dist/type/typebox-value-ops.js +90 -0
  263. package/dist/type/typebox-value-ops.mjs +5 -0
  264. package/dist/type/typebox-value-require.d.ts +8 -0
  265. package/dist/type/typebox-value-require.js +28 -0
  266. package/dist/type/typebox-value-require.mjs +25 -0
  267. package/dist/type/typebox-value.d.ts +35 -0
  268. package/dist/type/typebox-value.js +161 -0
  269. package/dist/type/typebox-value.mjs +74 -0
  270. package/dist/type/utils.js +1 -10
  271. package/dist/type/utils.mjs +1 -10
  272. package/dist/type/validator/clean-safe.d.ts +2 -4
  273. package/dist/type/validator/clean-safe.js +15 -11
  274. package/dist/type/validator/clean-safe.mjs +16 -10
  275. package/dist/type/validator/custom-error.js +12 -16
  276. package/dist/type/validator/custom-error.mjs +11 -14
  277. package/dist/type/validator/default-precompute.d.ts +9 -1
  278. package/dist/type/validator/default-precompute.js +40 -77
  279. package/dist/type/validator/default-precompute.mjs +37 -74
  280. package/dist/type/validator/exact-mirror-live.d.ts +8 -0
  281. package/dist/type/validator/exact-mirror-live.js +22 -0
  282. package/dist/type/validator/exact-mirror-live.mjs +17 -0
  283. package/dist/type/validator/exact-mirror-require.d.ts +4 -0
  284. package/dist/type/validator/exact-mirror-require.js +11 -0
  285. package/dist/type/validator/exact-mirror-require.mjs +9 -0
  286. package/dist/type/validator/exact-mirror.js +8 -8
  287. package/dist/type/validator/exact-mirror.mjs +9 -8
  288. package/dist/type/validator/frozen-check.js +5 -6
  289. package/dist/type/validator/frozen-check.mjs +6 -7
  290. package/dist/type/validator/index.d.ts +1 -0
  291. package/dist/type/validator/index.js +169 -166
  292. package/dist/type/validator/index.mjs +162 -158
  293. package/dist/type/validator/string-codec-aot.d.ts +2 -1
  294. package/dist/type/validator/string-codec-aot.js +8 -2
  295. package/dist/type/validator/string-codec-aot.mjs +7 -2
  296. package/dist/type/validator/validator-cache.d.ts +5 -4
  297. package/dist/type/validator/validator-cache.js +41 -24
  298. package/dist/type/validator/validator-cache.mjs +40 -22
  299. package/dist/types.d.ts +263 -95
  300. package/dist/universal/constants.d.ts +2 -1
  301. package/dist/universal/constants.js +3 -1
  302. package/dist/universal/constants.mjs +2 -1
  303. package/dist/universal/env.js +2 -3
  304. package/dist/universal/env.mjs +2 -3
  305. package/dist/universal/file.d.ts +6 -4
  306. package/dist/universal/file.js +11 -16
  307. package/dist/universal/file.mjs +12 -16
  308. package/dist/universal/index.d.ts +2 -2
  309. package/dist/universal/is-production.d.ts +1 -2
  310. package/dist/universal/is-production.js +1 -3
  311. package/dist/universal/is-production.mjs +2 -3
  312. package/dist/universal/server.d.ts +0 -272
  313. package/dist/utils.d.ts +43 -7
  314. package/dist/utils.js +181 -126
  315. package/dist/utils.mjs +168 -126
  316. package/dist/validator/index.d.ts +1 -1
  317. package/dist/validator/index.js +17 -30
  318. package/dist/validator/index.mjs +18 -31
  319. package/dist/validator/route.js +2 -1
  320. package/dist/validator/route.mjs +2 -1
  321. package/dist/ws/context.d.ts +8 -1
  322. package/dist/ws/context.js +68 -44
  323. package/dist/ws/context.mjs +67 -44
  324. package/dist/ws/parser.js +10 -20
  325. package/dist/ws/parser.mjs +10 -20
  326. package/dist/ws/route.d.ts +2 -2
  327. package/dist/ws/route.js +249 -141
  328. package/dist/ws/route.mjs +254 -146
  329. package/dist/ws/types.d.ts +2 -2
  330. package/package.json +23 -49
  331. package/dist/compile/analysis-cache.d.ts +0 -6
  332. package/dist/compile/analysis-cache.js +0 -12
  333. package/dist/compile/analysis-cache.mjs +0 -11
  334. package/dist/cookie/index.d.ts +0 -7
  335. package/dist/cookie/index.js +0 -13
  336. package/dist/cookie/index.mjs +0 -7
  337. package/dist/handler/index.d.ts +0 -2
  338. package/dist/handler/index.js +0 -5
  339. package/dist/handler/index.mjs +0 -3
@@ -1,6 +1,8 @@
1
1
  import { dangerousKeys } from "../../constants.mjs";
2
2
  import { nullObject } from "../../utils.mjs";
3
- import { Default } from "typebox/value";
3
+ import { isProduction } from "../../universal/is-production.mjs";
4
+ import { schemaSome } from "./clean-safe.mjs";
5
+ import { Default } from "../typebox-value.mjs";
4
6
 
5
7
  //#region src/type/validator/default-precompute.ts
6
8
  function isPrecomputeSafe(schema, depth = 0) {
@@ -64,64 +66,16 @@ function applyPrecomputed(defaults, value) {
64
66
  }
65
67
  return out;
66
68
  }
67
- const subtreeHasDefault = (n) => !!n && typeof n === "object" && ("default" in n || childSchemaSome(n, subtreeHasDefault));
68
- function childSchemaSome(n, f) {
69
- if (!n || typeof n !== "object") return false;
70
- if (n.properties) {
71
- for (const k in n.properties) if (f(n.properties[k])) return true;
72
- }
73
- const items = n.items;
74
- if (Array.isArray(items)) {
75
- for (const it of items) if (f(it)) return true;
76
- } else if (items && f(items)) return true;
77
- for (const key of [
78
- "anyOf",
79
- "allOf",
80
- "oneOf"
81
- ]) {
82
- const arr = n[key];
83
- if (Array.isArray(arr)) {
84
- for (const s of arr) if (f(s)) return true;
85
- }
86
- }
87
- if (typeof n.additionalProperties === "object" && f(n.additionalProperties)) return true;
88
- if (n.patternProperties) {
89
- for (const k in n.patternProperties) if (f(n.patternProperties[k])) return true;
90
- }
91
- for (const key of [
92
- "not",
93
- "if",
94
- "then",
95
- "else"
96
- ]) if (n[key] && f(n[key])) return true;
97
- return false;
98
- }
99
- const hasDefaultBelow = (node) => childSchemaSome(node, subtreeHasDefault);
100
- function hasUnemittableDefaultValue(node) {
101
- if (!node || typeof node !== "object") return false;
102
- if ("default" in node && !isEmittable(node.default, /* @__PURE__ */ new Set(), true)) return true;
103
- return childSchemaSome(node, hasUnemittableDefaultValue);
104
- }
105
- function containsRefLike(node, seen = /* @__PURE__ */ new WeakSet()) {
106
- if (!node || typeof node !== "object" || seen.has(node)) return false;
107
- seen.add(node);
108
- if (node.$ref !== void 0 || node["~kind"] === "Ref" || node["~kind"] === "This" || node["~kind"] === "Cyclic") return true;
109
- return childSchemaSome(node, (child) => containsRefLike(child, seen));
110
- }
111
- function hasDivergentDefaultBelow(node) {
112
- const ownKey = "default" in node ? canonical(node.default) : void 0;
113
- let bad = false;
114
- const visit = (n) => {
115
- if (!n || typeof n !== "object") return false;
116
- if ("default" in n && (ownKey === void 0 || canonical(n.default) !== ownKey)) return bad = true;
117
- return childSchemaSome(n, visit);
118
- };
119
- childSchemaSome(node, visit);
120
- return bad;
121
- }
69
+ const subtreeHasDefault = (node) => schemaSome(node, (n) => "default" in n, void 0, void 0, true);
70
+ const hasDefaultBelow = (node) => schemaSome(node, (n) => n !== node && "default" in n, void 0, void 0, true);
71
+ const hasUnemittableDefaultValue = (node) => schemaSome(node, (n) => "default" in n && !isEmittable(n.default, /* @__PURE__ */ new Set(), true), void 0, void 0, true);
72
+ const containsRefLike = (node) => schemaSome(node, (n) => n.$ref !== void 0 || n["~kind"] === "Ref" || n["~kind"] === "This" || n["~kind"] === "Cyclic", void 0, void 0, true);
122
73
  function structuralPreallocatable(schema, depth = 0) {
123
74
  if (!schema || typeof schema !== "object") return true;
124
- 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);
75
+ 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)) {
76
+ const ownKey = "default" in schema ? canonical(schema.default) : void 0;
77
+ return !schemaSome(schema, (n) => n !== schema && "default" in n && (ownKey === void 0 || canonical(n.default) !== ownKey), void 0, void 0, true);
78
+ }
125
79
  if (depth > 0 && schema.default === void 0 && hasDefaultBelow(schema)) return false;
126
80
  if (typeof schema.additionalProperties === "object" && subtreeHasDefault(schema.additionalProperties)) return false;
127
81
  if (schema.patternProperties) {
@@ -256,11 +210,21 @@ function buildObjectDefaultMergeSource(defaults) {
256
210
  if (!root) return;
257
211
  return `(function(){${helpers.join(";")};return ${root}})()`;
258
212
  }
213
+ let compileFailures = 0;
214
+ /**
215
+ * How many emitted default-precompute sources have failed to compile.
216
+ *
217
+ * Build-time only. A non-zero count means codegen emitted source that
218
+ * `Function()` rejected, so those routes silently fell back to the interpreted
219
+ * default path — always a bug in this module, never a user error.
220
+ */
221
+ const precomputeCompileFailures = () => compileFailures;
259
222
  function fromSource(source) {
260
223
  try {
261
224
  return Function(`return ${source}`)();
262
- } catch {
263
- return;
225
+ } catch (error) {
226
+ compileFailures++;
227
+ console.warn("[Elysia] default precompute emitted source that does not compile; falling back to the interpreted default path. This is a bug, please report it:", error, ...isProduction() ? [] : ["\nsource: " + (source.length > 512 ? source.slice(0, 512) + "…" : source)]);
264
228
  }
265
229
  }
266
230
  function createDefaultCloner(value) {
@@ -284,10 +248,6 @@ function mergeCategory(node) {
284
248
  if ((kind === "Array" || node.type === "array") && node.items) return !Array.isArray(node.items) && subtreeHasDefault(node.items) ? "array" : "identity";
285
249
  return "identity";
286
250
  }
287
- function presentExpr(child, isObject, varName) {
288
- if (child === "") return varName;
289
- return isObject ? `(${varName}!==null&&typeof ${varName}==='object'&&!Array.isArray(${varName})?${child}(${varName}):${varName})` : `(Array.isArray(${varName})?${child}(${varName}):${varName})`;
290
- }
291
251
  function mergeExpression(schema, varName, helpers, memo) {
292
252
  const full = Default(schema, void 0);
293
253
  const child = emitMerger(schema, helpers, memo);
@@ -295,9 +255,13 @@ function mergeExpression(schema, varName, helpers, memo) {
295
255
  const absent = full === void 0 ? void 0 : cloneExpression(full);
296
256
  if (full !== void 0 && absent === void 0) return;
297
257
  const isObject = mergeCategory(schema) === "object";
258
+ let present;
259
+ if (child === "") present = varName;
260
+ else if (isObject) present = `(${varName}!==null&&typeof ${varName}==='object'&&!Array.isArray(${varName})?${child}(${varName}):${varName})`;
261
+ else present = `(Array.isArray(${varName})?${child}(${varName}):${varName})`;
298
262
  return {
299
263
  absent,
300
- present: presentExpr(child, isObject, varName),
264
+ present,
301
265
  child,
302
266
  isObject
303
267
  };
@@ -363,14 +327,6 @@ function emitMerger(node, helpers, memo = /* @__PURE__ */ new WeakMap()) {
363
327
  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}`;
364
328
  return name;
365
329
  }
366
- function buildMergeSource(schema) {
367
- const category = mergeCategory(schema);
368
- if (category !== "object" && category !== "array") return;
369
- const helpers = [];
370
- const root = emitMerger(schema, helpers, /* @__PURE__ */ new WeakMap());
371
- if (!root) return;
372
- return `(function(){${helpers.join(";")};return ${root}})()`;
373
- }
374
330
  let probeImpl;
375
331
  function setDefaultProbeImpl(impl) {
376
332
  probeImpl = impl;
@@ -402,7 +358,14 @@ function verifyPreallocatableDefault(schema, validate = true) {
402
358
  if (containsRefLike(schema)) return;
403
359
  if (!isEmittable(pd, /* @__PURE__ */ new Set(), true) || pod !== void 0 && !isEmittable(pod, /* @__PURE__ */ new Set(), true)) return;
404
360
  const nullDefault = isPrecomputeSafe(schema);
405
- let ms = buildMergeSource(schema);
361
+ let ms;
362
+ const category = mergeCategory(schema);
363
+ if (category !== "object" && category !== "array") ms = void 0;
364
+ else {
365
+ const helpers = [];
366
+ const root = emitMerger(schema, helpers, /* @__PURE__ */ new WeakMap());
367
+ ms = root ? `(function(){${helpers.join(";")};return ${root}})()` : void 0;
368
+ }
406
369
  if (ms !== void 0 && validate && !probe().validateMergeSource(schema, ms)) ms = void 0;
407
370
  if (!nullDefault && ms === void 0) {
408
371
  if (!rootIsObject) return;
@@ -418,4 +381,4 @@ function verifyPreallocatableDefault(schema, validate = true) {
418
381
  }
419
382
 
420
383
  //#endregion
421
- export { applyPrecomputed, buildDefaultClonerSource, buildObjectDefaultMergeSource, canonical, createDefaultCloner, createMergerFromSource, createObjectDefaultMerger, isEmittable, setDefaultProbeImpl, verifyPreallocatableDefault };
384
+ export { applyPrecomputed, buildDefaultClonerSource, buildObjectDefaultMergeSource, canonical, createDefaultCloner, createMergerFromSource, createObjectDefaultMerger, isEmittable, precomputeCompileFailures, setDefaultProbeImpl, verifyPreallocatableDefault };
@@ -0,0 +1,8 @@
1
+ import { CreateMirror } from "./exact-mirror.js";
2
+
3
+ //#region src/type/validator/exact-mirror-live.d.ts
4
+ declare const getExactMirror: () => CreateMirror | undefined;
5
+ declare const setExactMirror: (mirror: CreateMirror | undefined) => CreateMirror | undefined;
6
+ declare const exactMirrorRequired: () => Error;
7
+ //#endregion
8
+ export { type CreateMirror, exactMirrorRequired, getExactMirror, setExactMirror };
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
+ let exact_mirror = require("exact-mirror");
4
+ exact_mirror = require_runtime.__toESM(exact_mirror);
5
+
6
+ //#region src/type/validator/exact-mirror-live.ts
7
+ /**
8
+ * Statically wired mirror of `./exact-mirror`
9
+ *
10
+ * The AOT build plugin re-routes `exact-mirror` to this module when the package
11
+ * resolves at build time, so bundlers embed it instead of leaving the runtime
12
+ * `require('exact-mirror')` unresolvable
13
+ */
14
+ let exactMirror = exact_mirror.default;
15
+ const getExactMirror = () => exactMirror;
16
+ const setExactMirror = (mirror) => exactMirror = mirror;
17
+ const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
18
+
19
+ //#endregion
20
+ exports.exactMirrorRequired = exactMirrorRequired;
21
+ exports.getExactMirror = getExactMirror;
22
+ exports.setExactMirror = setExactMirror;
@@ -0,0 +1,17 @@
1
+ import mirror from "exact-mirror";
2
+
3
+ //#region src/type/validator/exact-mirror-live.ts
4
+ /**
5
+ * Statically wired mirror of `./exact-mirror`
6
+ *
7
+ * The AOT build plugin re-routes `exact-mirror` to this module when the package
8
+ * resolves at build time, so bundlers embed it instead of leaving the runtime
9
+ * `require('exact-mirror')` unresolvable
10
+ */
11
+ let exactMirror = mirror;
12
+ const getExactMirror = () => exactMirror;
13
+ const setExactMirror = (mirror) => exactMirror = mirror;
14
+ const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
15
+
16
+ //#endregion
17
+ export { exactMirrorRequired, getExactMirror, setExactMirror };
@@ -0,0 +1,4 @@
1
+ //#region src/type/validator/exact-mirror-require.d.ts
2
+ declare const requireExactMirror: () => unknown;
3
+ //#endregion
4
+ export { requireExactMirror };
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/type/validator/exact-mirror-require.ts
4
+ const requireExactMirror = () => {
5
+ if (typeof require === "function") try {
6
+ return require("exact-mirror");
7
+ } catch {}
8
+ };
9
+
10
+ //#endregion
11
+ exports.requireExactMirror = requireExactMirror;
@@ -0,0 +1,9 @@
1
+ //#region src/type/validator/exact-mirror-require.ts
2
+ const requireExactMirror = () => {
3
+ if (typeof require === "function") try {
4
+ return require("exact-mirror");
5
+ } catch {}
6
+ };
7
+
8
+ //#endregion
9
+ export { requireExactMirror };
@@ -1,14 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_type_sync_require = require('../sync-require.js');
3
+ const require_type_validator_exact_mirror_require = require('./exact-mirror-require.js');
2
4
 
3
5
  //#region src/type/validator/exact-mirror.ts
4
- function loadExactMirror() {
5
- try {
6
- const module = ({}.require ?? globalThis.process?.getBuiltinModule?.("module")?.createRequire(require("url").pathToFileURL(__filename).href))?.("exact-mirror");
7
- const mirror = module?.default ?? module;
8
- return typeof mirror === "function" ? mirror : void 0;
9
- } catch {}
10
- }
11
- let exactMirror = loadExactMirror();
6
+ let exactMirror;
7
+ try {
8
+ const module = require_type_validator_exact_mirror_require.requireExactMirror() ?? require_type_sync_require.syncRequire({}, require("url").pathToFileURL(__filename).href)?.("exact-mirror");
9
+ const mirror = module?.default ?? module;
10
+ exactMirror = typeof mirror === "function" ? mirror : void 0;
11
+ } catch {}
12
12
  const getExactMirror = () => exactMirror;
13
13
  const setExactMirror = (mirror) => exactMirror = mirror;
14
14
  const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
@@ -1,12 +1,13 @@
1
+ import { syncRequire } from "../sync-require.mjs";
2
+ import { requireExactMirror } from "./exact-mirror-require.mjs";
3
+
1
4
  //#region src/type/validator/exact-mirror.ts
2
- function loadExactMirror() {
3
- try {
4
- const module = (import.meta.require ?? globalThis.process?.getBuiltinModule?.("module")?.createRequire(import.meta.url))?.("exact-mirror");
5
- const mirror = module?.default ?? module;
6
- return typeof mirror === "function" ? mirror : void 0;
7
- } catch {}
8
- }
9
- let exactMirror = loadExactMirror();
5
+ let exactMirror;
6
+ try {
7
+ const module = requireExactMirror() ?? syncRequire(import.meta, import.meta.url)?.("exact-mirror");
8
+ const mirror = module?.default ?? module;
9
+ exactMirror = typeof mirror === "function" ? mirror : void 0;
10
+ } catch {}
10
11
  const getExactMirror = () => exactMirror;
11
12
  const setExactMirror = (mirror) => exactMirror = mirror;
12
13
  const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
@@ -1,18 +1,17 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_compile_aot_reconstruct = require('../../compile/aot-reconstruct.js');
3
2
  const require_compile_aot_emit = require('../../compile/aot-emit.js');
4
3
 
5
4
  //#region src/type/validator/frozen-check.ts
6
5
  function buildFrozenCheck(build, node) {
7
6
  if (!build?.functions?.length || !build.entry) return;
8
- const vars = build.external.variables;
9
- if (!require_compile_aot_emit.externalsMatch(require_compile_aot_reconstruct.collectExternals(node), vars)) return;
10
- const cr = require_compile_aot_emit.reconstructCheck(build);
7
+ const b = require_compile_aot_emit.alignBuildExternals(build, node);
8
+ if (!b) return;
9
+ const cr = require_compile_aot_emit.reconstructCheck(b);
11
10
  return {
12
- identifier: build.external.identifier,
11
+ identifier: b.external.identifier,
13
12
  checkDefs: cr.defs,
14
13
  checkValue: cr.value,
15
- external: vars.length > 0
14
+ external: b.external.variables.length > 0
16
15
  };
17
16
  }
18
17
 
@@ -1,17 +1,16 @@
1
- import { collectExternals } from "../../compile/aot-reconstruct.mjs";
2
- import { externalsMatch, reconstructCheck } from "../../compile/aot-emit.mjs";
1
+ import { alignBuildExternals, reconstructCheck } from "../../compile/aot-emit.mjs";
3
2
 
4
3
  //#region src/type/validator/frozen-check.ts
5
4
  function buildFrozenCheck(build, node) {
6
5
  if (!build?.functions?.length || !build.entry) return;
7
- const vars = build.external.variables;
8
- if (!externalsMatch(collectExternals(node), vars)) return;
9
- const cr = reconstructCheck(build);
6
+ const b = alignBuildExternals(build, node);
7
+ if (!b) return;
8
+ const cr = reconstructCheck(b);
10
9
  return {
11
- identifier: build.external.identifier,
10
+ identifier: b.external.identifier,
12
11
  checkDefs: cr.defs,
13
12
  checkValue: cr.value,
14
- external: vars.length > 0
13
+ external: b.external.variables.length > 0
15
14
  };
16
15
  }
17
16
 
@@ -10,6 +10,7 @@ declare function shallowMergeObjects(members: any[]): TSchema | null;
10
10
  declare function schemaMayHaveAsyncRefine(node: any, seen?: WeakSet<object>): boolean;
11
11
  declare class TypeBoxValidator<const in out T extends TSchema = TAny> extends Validator$1 {
12
12
  #private;
13
+ static member(schema: TSchema, compiled: any): boolean;
13
14
  tb?: Validator;
14
15
  reconstructedCheck?: (value: unknown) => boolean;
15
16
  schema: T;