zod-aot 0.16.0 → 0.16.2

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 (494) hide show
  1. package/dist/core/codegen/context.d.ts +48 -5
  2. package/dist/core/codegen/context.d.ts.map +1 -1
  3. package/dist/core/codegen/context.js +2 -1
  4. package/dist/core/codegen/context.js.map +1 -1
  5. package/dist/core/codegen/emit.d.ts +1 -1
  6. package/dist/core/codegen/emit.js +1 -1
  7. package/dist/core/codegen/fast-path.d.ts +17 -0
  8. package/dist/core/codegen/fast-path.d.ts.map +1 -0
  9. package/dist/core/codegen/fast-path.js +112 -0
  10. package/dist/core/codegen/fast-path.js.map +1 -0
  11. package/dist/core/codegen/index.d.ts +0 -1
  12. package/dist/core/codegen/index.d.ts.map +1 -1
  13. package/dist/core/codegen/index.js +8 -9
  14. package/dist/core/codegen/index.js.map +1 -1
  15. package/dist/core/codegen/schemas/any.d.ts +5 -0
  16. package/dist/core/codegen/schemas/any.d.ts.map +1 -0
  17. package/dist/core/codegen/schemas/any.js +7 -0
  18. package/dist/core/codegen/schemas/any.js.map +1 -0
  19. package/dist/core/codegen/schemas/array.d.ts +7 -0
  20. package/dist/core/codegen/schemas/array.d.ts.map +1 -0
  21. package/dist/core/codegen/schemas/array.js +79 -0
  22. package/dist/core/codegen/schemas/array.js.map +1 -0
  23. package/dist/core/codegen/schemas/bigint.d.ts +5 -0
  24. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -0
  25. package/dist/core/codegen/schemas/bigint.js +76 -0
  26. package/dist/core/codegen/schemas/bigint.js.map +1 -0
  27. package/dist/core/codegen/schemas/boolean.d.ts +5 -0
  28. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -0
  29. package/dist/core/codegen/schemas/boolean.js +19 -0
  30. package/dist/core/codegen/schemas/boolean.js.map +1 -0
  31. package/dist/core/codegen/schemas/catch.d.ts +6 -0
  32. package/dist/core/codegen/schemas/catch.d.ts.map +1 -0
  33. package/dist/core/codegen/schemas/catch.js +11 -0
  34. package/dist/core/codegen/schemas/catch.js.map +1 -0
  35. package/dist/core/codegen/schemas/date.d.ts +4 -0
  36. package/dist/core/codegen/schemas/date.d.ts.map +1 -0
  37. package/dist/core/codegen/schemas/date.js +52 -0
  38. package/dist/core/codegen/schemas/date.js.map +1 -0
  39. package/dist/core/codegen/schemas/default.d.ts +6 -0
  40. package/dist/core/codegen/schemas/default.d.ts.map +1 -0
  41. package/dist/core/codegen/schemas/default.js +10 -0
  42. package/dist/core/codegen/schemas/default.js.map +1 -0
  43. package/dist/core/codegen/schemas/discriminated-union.d.ts +7 -0
  44. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -0
  45. package/dist/core/codegen/schemas/discriminated-union.js +37 -0
  46. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -0
  47. package/dist/core/codegen/schemas/effect.d.ts +17 -0
  48. package/dist/core/codegen/schemas/effect.d.ts.map +1 -0
  49. package/dist/core/codegen/schemas/effect.js +32 -0
  50. package/dist/core/codegen/schemas/effect.js.map +1 -0
  51. package/dist/core/codegen/schemas/enum.d.ts +5 -0
  52. package/dist/core/codegen/schemas/enum.d.ts.map +1 -0
  53. package/dist/core/codegen/schemas/enum.js +31 -0
  54. package/dist/core/codegen/schemas/enum.js.map +1 -0
  55. package/dist/core/codegen/schemas/fallback.d.ts +4 -0
  56. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -0
  57. package/dist/core/codegen/schemas/fallback.js +23 -0
  58. package/dist/core/codegen/schemas/fallback.js.map +1 -0
  59. package/dist/core/codegen/schemas/intersection.d.ts +7 -0
  60. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -0
  61. package/dist/core/codegen/schemas/intersection.js +13 -0
  62. package/dist/core/codegen/schemas/intersection.js.map +1 -0
  63. package/dist/core/codegen/schemas/literal.d.ts +5 -0
  64. package/dist/core/codegen/schemas/literal.d.ts.map +1 -0
  65. package/dist/core/codegen/schemas/literal.js +45 -0
  66. package/dist/core/codegen/schemas/literal.js.map +1 -0
  67. package/dist/core/codegen/schemas/map.d.ts +6 -0
  68. package/dist/core/codegen/schemas/map.d.ts.map +1 -0
  69. package/dist/core/codegen/schemas/map.js +18 -0
  70. package/dist/core/codegen/schemas/map.js.map +1 -0
  71. package/dist/core/codegen/schemas/nan.d.ts +5 -0
  72. package/dist/core/codegen/schemas/nan.d.ts.map +1 -0
  73. package/dist/core/codegen/schemas/nan.js +12 -0
  74. package/dist/core/codegen/schemas/nan.js.map +1 -0
  75. package/dist/core/codegen/schemas/never.d.ts +5 -0
  76. package/dist/core/codegen/schemas/never.d.ts.map +1 -0
  77. package/dist/core/codegen/schemas/never.js +10 -0
  78. package/dist/core/codegen/schemas/never.js.map +1 -0
  79. package/dist/core/codegen/schemas/null.d.ts +5 -0
  80. package/dist/core/codegen/schemas/null.d.ts.map +1 -0
  81. package/dist/core/codegen/schemas/null.js +12 -0
  82. package/dist/core/codegen/schemas/null.js.map +1 -0
  83. package/dist/core/codegen/schemas/nullable.d.ts +7 -0
  84. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -0
  85. package/dist/core/codegen/schemas/nullable.js +15 -0
  86. package/dist/core/codegen/schemas/nullable.js.map +1 -0
  87. package/dist/core/codegen/schemas/number.d.ts +5 -0
  88. package/dist/core/codegen/schemas/number.d.ts.map +1 -0
  89. package/dist/core/codegen/schemas/number.js +156 -0
  90. package/dist/core/codegen/schemas/number.js.map +1 -0
  91. package/dist/core/codegen/schemas/object.d.ts +7 -0
  92. package/dist/core/codegen/schemas/object.d.ts.map +1 -0
  93. package/dist/core/codegen/schemas/object.js +44 -0
  94. package/dist/core/codegen/schemas/object.js.map +1 -0
  95. package/dist/core/codegen/schemas/optional.d.ts +7 -0
  96. package/dist/core/codegen/schemas/optional.d.ts.map +1 -0
  97. package/dist/core/codegen/schemas/optional.js +15 -0
  98. package/dist/core/codegen/schemas/optional.js.map +1 -0
  99. package/dist/core/codegen/schemas/pipe.d.ts +7 -0
  100. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -0
  101. package/dist/core/codegen/{fast-check → schemas}/pipe.js +7 -3
  102. package/dist/core/codegen/schemas/pipe.js.map +1 -0
  103. package/dist/core/codegen/schemas/readonly.d.ts +7 -0
  104. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -0
  105. package/dist/core/codegen/schemas/readonly.js +7 -0
  106. package/dist/core/codegen/schemas/readonly.js.map +1 -0
  107. package/dist/core/codegen/schemas/record.d.ts +7 -0
  108. package/dist/core/codegen/schemas/record.d.ts.map +1 -0
  109. package/dist/core/codegen/schemas/record.js +50 -0
  110. package/dist/core/codegen/schemas/record.js.map +1 -0
  111. package/dist/core/codegen/schemas/recursive-ref.d.ts +5 -0
  112. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -0
  113. package/dist/core/codegen/schemas/recursive-ref.js +24 -0
  114. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -0
  115. package/dist/core/codegen/schemas/set.d.ts +6 -0
  116. package/dist/core/codegen/schemas/set.d.ts.map +1 -0
  117. package/dist/core/codegen/schemas/set.js +38 -0
  118. package/dist/core/codegen/schemas/set.js.map +1 -0
  119. package/dist/core/codegen/schemas/string.d.ts +5 -0
  120. package/dist/core/codegen/schemas/string.d.ts.map +1 -0
  121. package/dist/core/codegen/schemas/string.js +159 -0
  122. package/dist/core/codegen/schemas/string.js.map +1 -0
  123. package/dist/core/codegen/schemas/symbol.d.ts +5 -0
  124. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -0
  125. package/dist/core/codegen/schemas/symbol.js +12 -0
  126. package/dist/core/codegen/schemas/symbol.js.map +1 -0
  127. package/dist/core/codegen/schemas/template-literal.d.ts +5 -0
  128. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -0
  129. package/dist/core/codegen/schemas/template-literal.js +15 -0
  130. package/dist/core/codegen/schemas/template-literal.js.map +1 -0
  131. package/dist/core/codegen/schemas/tuple.d.ts +7 -0
  132. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -0
  133. package/dist/core/codegen/schemas/tuple.js +69 -0
  134. package/dist/core/codegen/schemas/tuple.js.map +1 -0
  135. package/dist/core/codegen/schemas/undefined.d.ts +5 -0
  136. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -0
  137. package/dist/core/codegen/schemas/undefined.js +12 -0
  138. package/dist/core/codegen/schemas/undefined.js.map +1 -0
  139. package/dist/core/codegen/schemas/union.d.ts +7 -0
  140. package/dist/core/codegen/schemas/union.d.ts.map +1 -0
  141. package/dist/core/codegen/schemas/union.js +70 -0
  142. package/dist/core/codegen/schemas/union.js.map +1 -0
  143. package/dist/core/codegen/schemas/unknown.d.ts +5 -0
  144. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -0
  145. package/dist/core/codegen/schemas/unknown.js +7 -0
  146. package/dist/core/codegen/schemas/unknown.js.map +1 -0
  147. package/dist/core/codegen/schemas/void.d.ts +5 -0
  148. package/dist/core/codegen/schemas/void.d.ts.map +1 -0
  149. package/dist/core/codegen/schemas/void.js +12 -0
  150. package/dist/core/codegen/schemas/void.js.map +1 -0
  151. package/dist/core/codegen/slow-path.d.ts +5 -0
  152. package/dist/core/codegen/slow-path.d.ts.map +1 -0
  153. package/dist/core/codegen/slow-path.js +116 -0
  154. package/dist/core/codegen/slow-path.js.map +1 -0
  155. package/dist/core/extract/extractors/any.d.ts +3 -0
  156. package/dist/core/extract/extractors/any.d.ts.map +1 -0
  157. package/dist/core/extract/extractors/any.js +2 -0
  158. package/dist/core/extract/extractors/any.js.map +1 -0
  159. package/dist/core/extract/extractors/array.d.ts +4 -0
  160. package/dist/core/extract/extractors/array.d.ts.map +1 -0
  161. package/dist/core/extract/extractors/array.js +7 -0
  162. package/dist/core/extract/extractors/array.js.map +1 -0
  163. package/dist/core/extract/extractors/boolean.d.ts +3 -0
  164. package/dist/core/extract/extractors/boolean.d.ts.map +1 -0
  165. package/dist/core/extract/extractors/boolean.js +5 -0
  166. package/dist/core/extract/extractors/boolean.js.map +1 -0
  167. package/dist/core/extract/extractors/catch.d.ts +2 -2
  168. package/dist/core/extract/extractors/catch.d.ts.map +1 -1
  169. package/dist/core/extract/extractors/catch.js +6 -7
  170. package/dist/core/extract/extractors/catch.js.map +1 -1
  171. package/dist/core/extract/extractors/default.d.ts +2 -2
  172. package/dist/core/extract/extractors/default.d.ts.map +1 -1
  173. package/dist/core/extract/extractors/default.js +4 -5
  174. package/dist/core/extract/extractors/default.js.map +1 -1
  175. package/dist/core/extract/extractors/enum.d.ts +3 -0
  176. package/dist/core/extract/extractors/enum.d.ts.map +1 -0
  177. package/dist/core/extract/extractors/enum.js +5 -0
  178. package/dist/core/extract/extractors/enum.js.map +1 -0
  179. package/dist/core/extract/extractors/index.d.ts +20 -0
  180. package/dist/core/extract/extractors/index.d.ts.map +1 -1
  181. package/dist/core/extract/extractors/index.js +20 -0
  182. package/dist/core/extract/extractors/index.js.map +1 -1
  183. package/dist/core/extract/extractors/intersection.d.ts +3 -0
  184. package/dist/core/extract/extractors/intersection.d.ts.map +1 -0
  185. package/dist/core/extract/extractors/intersection.js +6 -0
  186. package/dist/core/extract/extractors/intersection.js.map +1 -0
  187. package/dist/core/extract/extractors/lazy.d.ts +2 -2
  188. package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
  189. package/dist/core/extract/extractors/lazy.js +5 -5
  190. package/dist/core/extract/extractors/lazy.js.map +1 -1
  191. package/dist/core/extract/extractors/literal.d.ts +3 -0
  192. package/dist/core/extract/extractors/literal.d.ts.map +1 -0
  193. package/dist/core/extract/extractors/literal.js +2 -0
  194. package/dist/core/extract/extractors/literal.js.map +1 -0
  195. package/dist/core/extract/extractors/map.d.ts +4 -0
  196. package/dist/core/extract/extractors/map.d.ts.map +1 -0
  197. package/dist/core/extract/extractors/map.js +6 -0
  198. package/dist/core/extract/extractors/map.js.map +1 -0
  199. package/dist/core/extract/extractors/nan.d.ts +3 -0
  200. package/dist/core/extract/extractors/nan.d.ts.map +1 -0
  201. package/dist/core/extract/extractors/nan.js +2 -0
  202. package/dist/core/extract/extractors/nan.js.map +1 -0
  203. package/dist/core/extract/extractors/never.d.ts +3 -0
  204. package/dist/core/extract/extractors/never.d.ts.map +1 -0
  205. package/dist/core/extract/extractors/never.js +2 -0
  206. package/dist/core/extract/extractors/never.js.map +1 -0
  207. package/dist/core/extract/extractors/null.d.ts +3 -0
  208. package/dist/core/extract/extractors/null.d.ts.map +1 -0
  209. package/dist/core/extract/extractors/null.js +2 -0
  210. package/dist/core/extract/extractors/null.js.map +1 -0
  211. package/dist/core/extract/extractors/nullable.d.ts +3 -0
  212. package/dist/core/extract/extractors/nullable.d.ts.map +1 -0
  213. package/dist/core/extract/extractors/nullable.js +5 -0
  214. package/dist/core/extract/extractors/nullable.js.map +1 -0
  215. package/dist/core/extract/extractors/number.d.ts +2 -2
  216. package/dist/core/extract/extractors/number.d.ts.map +1 -1
  217. package/dist/core/extract/extractors/number.js +2 -3
  218. package/dist/core/extract/extractors/number.js.map +1 -1
  219. package/dist/core/extract/extractors/object.d.ts +4 -0
  220. package/dist/core/extract/extractors/object.d.ts.map +1 -0
  221. package/dist/core/extract/extractors/object.js +18 -0
  222. package/dist/core/extract/extractors/object.js.map +1 -0
  223. package/dist/core/extract/extractors/optional.d.ts +3 -0
  224. package/dist/core/extract/extractors/optional.d.ts.map +1 -0
  225. package/dist/core/extract/extractors/optional.js +5 -0
  226. package/dist/core/extract/extractors/optional.js.map +1 -0
  227. package/dist/core/extract/extractors/pipe.d.ts +2 -2
  228. package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
  229. package/dist/core/extract/extractors/pipe.js +5 -6
  230. package/dist/core/extract/extractors/pipe.js.map +1 -1
  231. package/dist/core/extract/extractors/readonly.d.ts +3 -0
  232. package/dist/core/extract/extractors/readonly.d.ts.map +1 -0
  233. package/dist/core/extract/extractors/readonly.js +5 -0
  234. package/dist/core/extract/extractors/readonly.js.map +1 -0
  235. package/dist/core/extract/extractors/record.d.ts +4 -0
  236. package/dist/core/extract/extractors/record.d.ts.map +1 -0
  237. package/dist/core/extract/extractors/record.js +9 -0
  238. package/dist/core/extract/extractors/record.js.map +1 -0
  239. package/dist/core/extract/extractors/set.d.ts +2 -2
  240. package/dist/core/extract/extractors/set.d.ts.map +1 -1
  241. package/dist/core/extract/extractors/set.js +2 -2
  242. package/dist/core/extract/extractors/set.js.map +1 -1
  243. package/dist/core/extract/extractors/string.d.ts +2 -2
  244. package/dist/core/extract/extractors/string.d.ts.map +1 -1
  245. package/dist/core/extract/extractors/string.js +2 -3
  246. package/dist/core/extract/extractors/string.js.map +1 -1
  247. package/dist/core/extract/extractors/symbol.d.ts +3 -0
  248. package/dist/core/extract/extractors/symbol.d.ts.map +1 -0
  249. package/dist/core/extract/extractors/symbol.js +2 -0
  250. package/dist/core/extract/extractors/symbol.js.map +1 -0
  251. package/dist/core/extract/extractors/template-literal.d.ts +2 -2
  252. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
  253. package/dist/core/extract/extractors/template-literal.js +3 -3
  254. package/dist/core/extract/extractors/template-literal.js.map +1 -1
  255. package/dist/core/extract/extractors/tuple.d.ts +4 -0
  256. package/dist/core/extract/extractors/tuple.d.ts.map +1 -0
  257. package/dist/core/extract/extractors/tuple.js +6 -0
  258. package/dist/core/extract/extractors/tuple.js.map +1 -0
  259. package/dist/core/extract/extractors/undefined.d.ts +3 -0
  260. package/dist/core/extract/extractors/undefined.d.ts.map +1 -0
  261. package/dist/core/extract/extractors/undefined.js +2 -0
  262. package/dist/core/extract/extractors/undefined.js.map +1 -0
  263. package/dist/core/extract/extractors/union.d.ts +2 -2
  264. package/dist/core/extract/extractors/union.d.ts.map +1 -1
  265. package/dist/core/extract/extractors/union.js +3 -3
  266. package/dist/core/extract/extractors/union.js.map +1 -1
  267. package/dist/core/extract/extractors/unknown.d.ts +3 -0
  268. package/dist/core/extract/extractors/unknown.d.ts.map +1 -0
  269. package/dist/core/extract/extractors/unknown.js +2 -0
  270. package/dist/core/extract/extractors/unknown.js.map +1 -0
  271. package/dist/core/extract/extractors/void.d.ts +3 -0
  272. package/dist/core/extract/extractors/void.d.ts.map +1 -0
  273. package/dist/core/extract/extractors/void.js +2 -0
  274. package/dist/core/extract/extractors/void.js.map +1 -0
  275. package/dist/core/extract/index.d.ts.map +1 -1
  276. package/dist/core/extract/index.js +2 -125
  277. package/dist/core/extract/index.js.map +1 -1
  278. package/dist/core/extract/registry.d.ts +57 -0
  279. package/dist/core/extract/registry.d.ts.map +1 -0
  280. package/dist/core/extract/registry.js +114 -0
  281. package/dist/core/extract/registry.js.map +1 -0
  282. package/dist/core/extract/types.d.ts +19 -2
  283. package/dist/core/extract/types.d.ts.map +1 -1
  284. package/dist/core/iife.d.ts.map +1 -1
  285. package/dist/core/iife.js +0 -1
  286. package/dist/core/iife.js.map +1 -1
  287. package/package.json +1 -1
  288. package/dist/core/codegen/fast-check/array.d.ts +0 -4
  289. package/dist/core/codegen/fast-check/array.d.ts.map +0 -1
  290. package/dist/core/codegen/fast-check/array.js +0 -31
  291. package/dist/core/codegen/fast-check/array.js.map +0 -1
  292. package/dist/core/codegen/fast-check/bigint.d.ts +0 -3
  293. package/dist/core/codegen/fast-check/bigint.d.ts.map +0 -1
  294. package/dist/core/codegen/fast-check/bigint.js +0 -19
  295. package/dist/core/codegen/fast-check/bigint.js.map +0 -1
  296. package/dist/core/codegen/fast-check/discriminated-union.d.ts +0 -4
  297. package/dist/core/codegen/fast-check/discriminated-union.d.ts.map +0 -1
  298. package/dist/core/codegen/fast-check/discriminated-union.js +0 -13
  299. package/dist/core/codegen/fast-check/discriminated-union.js.map +0 -1
  300. package/dist/core/codegen/fast-check/enum.d.ts +0 -4
  301. package/dist/core/codegen/fast-check/enum.d.ts.map +0 -1
  302. package/dist/core/codegen/fast-check/enum.js +0 -12
  303. package/dist/core/codegen/fast-check/enum.js.map +0 -1
  304. package/dist/core/codegen/fast-check/index.d.ts +0 -16
  305. package/dist/core/codegen/fast-check/index.d.ts.map +0 -1
  306. package/dist/core/codegen/fast-check/index.js +0 -119
  307. package/dist/core/codegen/fast-check/index.js.map +0 -1
  308. package/dist/core/codegen/fast-check/intersection.d.ts +0 -4
  309. package/dist/core/codegen/fast-check/intersection.d.ts.map +0 -1
  310. package/dist/core/codegen/fast-check/intersection.js +0 -10
  311. package/dist/core/codegen/fast-check/intersection.js.map +0 -1
  312. package/dist/core/codegen/fast-check/literal.d.ts +0 -3
  313. package/dist/core/codegen/fast-check/literal.d.ts.map +0 -1
  314. package/dist/core/codegen/fast-check/literal.js +0 -8
  315. package/dist/core/codegen/fast-check/literal.js.map +0 -1
  316. package/dist/core/codegen/fast-check/nullable.d.ts +0 -4
  317. package/dist/core/codegen/fast-check/nullable.d.ts.map +0 -1
  318. package/dist/core/codegen/fast-check/nullable.js +0 -7
  319. package/dist/core/codegen/fast-check/nullable.js.map +0 -1
  320. package/dist/core/codegen/fast-check/number.d.ts +0 -3
  321. package/dist/core/codegen/fast-check/number.d.ts.map +0 -1
  322. package/dist/core/codegen/fast-check/number.js +0 -54
  323. package/dist/core/codegen/fast-check/number.js.map +0 -1
  324. package/dist/core/codegen/fast-check/object.d.ts +0 -4
  325. package/dist/core/codegen/fast-check/object.d.ts.map +0 -1
  326. package/dist/core/codegen/fast-check/object.js +0 -16
  327. package/dist/core/codegen/fast-check/object.js.map +0 -1
  328. package/dist/core/codegen/fast-check/optional.d.ts +0 -4
  329. package/dist/core/codegen/fast-check/optional.d.ts.map +0 -1
  330. package/dist/core/codegen/fast-check/optional.js +0 -7
  331. package/dist/core/codegen/fast-check/optional.js.map +0 -1
  332. package/dist/core/codegen/fast-check/pipe.d.ts +0 -4
  333. package/dist/core/codegen/fast-check/pipe.d.ts.map +0 -1
  334. package/dist/core/codegen/fast-check/pipe.js.map +0 -1
  335. package/dist/core/codegen/fast-check/readonly.d.ts +0 -4
  336. package/dist/core/codegen/fast-check/readonly.d.ts.map +0 -1
  337. package/dist/core/codegen/fast-check/readonly.js +0 -4
  338. package/dist/core/codegen/fast-check/readonly.js.map +0 -1
  339. package/dist/core/codegen/fast-check/record.d.ts +0 -4
  340. package/dist/core/codegen/fast-check/record.d.ts.map +0 -1
  341. package/dist/core/codegen/fast-check/record.js +0 -18
  342. package/dist/core/codegen/fast-check/record.js.map +0 -1
  343. package/dist/core/codegen/fast-check/string.d.ts +0 -4
  344. package/dist/core/codegen/fast-check/string.d.ts.map +0 -1
  345. package/dist/core/codegen/fast-check/string.js +0 -65
  346. package/dist/core/codegen/fast-check/string.js.map +0 -1
  347. package/dist/core/codegen/fast-check/tuple.d.ts +0 -4
  348. package/dist/core/codegen/fast-check/tuple.d.ts.map +0 -1
  349. package/dist/core/codegen/fast-check/tuple.js +0 -32
  350. package/dist/core/codegen/fast-check/tuple.js.map +0 -1
  351. package/dist/core/codegen/fast-check/union.d.ts +0 -4
  352. package/dist/core/codegen/fast-check/union.d.ts.map +0 -1
  353. package/dist/core/codegen/fast-check/union.js +0 -12
  354. package/dist/core/codegen/fast-check/union.js.map +0 -1
  355. package/dist/core/codegen/generators/any.d.ts +0 -2
  356. package/dist/core/codegen/generators/any.d.ts.map +0 -1
  357. package/dist/core/codegen/generators/any.js +0 -4
  358. package/dist/core/codegen/generators/any.js.map +0 -1
  359. package/dist/core/codegen/generators/array.d.ts +0 -6
  360. package/dist/core/codegen/generators/array.d.ts.map +0 -1
  361. package/dist/core/codegen/generators/array.js +0 -49
  362. package/dist/core/codegen/generators/array.js.map +0 -1
  363. package/dist/core/codegen/generators/bigint.d.ts +0 -6
  364. package/dist/core/codegen/generators/bigint.d.ts.map +0 -1
  365. package/dist/core/codegen/generators/bigint.js +0 -56
  366. package/dist/core/codegen/generators/bigint.js.map +0 -1
  367. package/dist/core/codegen/generators/boolean.d.ts +0 -5
  368. package/dist/core/codegen/generators/boolean.d.ts.map +0 -1
  369. package/dist/core/codegen/generators/boolean.js +0 -14
  370. package/dist/core/codegen/generators/boolean.js.map +0 -1
  371. package/dist/core/codegen/generators/catch.d.ts +0 -6
  372. package/dist/core/codegen/generators/catch.d.ts.map +0 -1
  373. package/dist/core/codegen/generators/catch.js +0 -11
  374. package/dist/core/codegen/generators/catch.js.map +0 -1
  375. package/dist/core/codegen/generators/date.d.ts +0 -5
  376. package/dist/core/codegen/generators/date.d.ts.map +0 -1
  377. package/dist/core/codegen/generators/date.js +0 -52
  378. package/dist/core/codegen/generators/date.js.map +0 -1
  379. package/dist/core/codegen/generators/default.d.ts +0 -6
  380. package/dist/core/codegen/generators/default.d.ts.map +0 -1
  381. package/dist/core/codegen/generators/default.js +0 -10
  382. package/dist/core/codegen/generators/default.js.map +0 -1
  383. package/dist/core/codegen/generators/discriminated-union.d.ts +0 -6
  384. package/dist/core/codegen/generators/discriminated-union.d.ts.map +0 -1
  385. package/dist/core/codegen/generators/discriminated-union.js +0 -25
  386. package/dist/core/codegen/generators/discriminated-union.js.map +0 -1
  387. package/dist/core/codegen/generators/effect.d.ts +0 -13
  388. package/dist/core/codegen/generators/effect.d.ts.map +0 -1
  389. package/dist/core/codegen/generators/effect.js +0 -28
  390. package/dist/core/codegen/generators/effect.js.map +0 -1
  391. package/dist/core/codegen/generators/enum.d.ts +0 -6
  392. package/dist/core/codegen/generators/enum.d.ts.map +0 -1
  393. package/dist/core/codegen/generators/enum.js +0 -21
  394. package/dist/core/codegen/generators/enum.js.map +0 -1
  395. package/dist/core/codegen/generators/fallback.d.ts +0 -3
  396. package/dist/core/codegen/generators/fallback.d.ts.map +0 -1
  397. package/dist/core/codegen/generators/fallback.js +0 -23
  398. package/dist/core/codegen/generators/fallback.js.map +0 -1
  399. package/dist/core/codegen/generators/index.d.ts +0 -4
  400. package/dist/core/codegen/generators/index.d.ts.map +0 -1
  401. package/dist/core/codegen/generators/index.js +0 -110
  402. package/dist/core/codegen/generators/index.js.map +0 -1
  403. package/dist/core/codegen/generators/intersection.d.ts +0 -6
  404. package/dist/core/codegen/generators/intersection.d.ts.map +0 -1
  405. package/dist/core/codegen/generators/intersection.js +0 -4
  406. package/dist/core/codegen/generators/intersection.js.map +0 -1
  407. package/dist/core/codegen/generators/literal.d.ts +0 -5
  408. package/dist/core/codegen/generators/literal.d.ts.map +0 -1
  409. package/dist/core/codegen/generators/literal.js +0 -37
  410. package/dist/core/codegen/generators/literal.js.map +0 -1
  411. package/dist/core/codegen/generators/map.d.ts +0 -6
  412. package/dist/core/codegen/generators/map.d.ts.map +0 -1
  413. package/dist/core/codegen/generators/map.js +0 -19
  414. package/dist/core/codegen/generators/map.js.map +0 -1
  415. package/dist/core/codegen/generators/nan.d.ts +0 -2
  416. package/dist/core/codegen/generators/nan.d.ts.map +0 -1
  417. package/dist/core/codegen/generators/nan.js +0 -9
  418. package/dist/core/codegen/generators/nan.js.map +0 -1
  419. package/dist/core/codegen/generators/never.d.ts +0 -2
  420. package/dist/core/codegen/generators/never.d.ts.map +0 -1
  421. package/dist/core/codegen/generators/never.js +0 -7
  422. package/dist/core/codegen/generators/never.js.map +0 -1
  423. package/dist/core/codegen/generators/null.d.ts +0 -2
  424. package/dist/core/codegen/generators/null.d.ts.map +0 -1
  425. package/dist/core/codegen/generators/null.js +0 -9
  426. package/dist/core/codegen/generators/null.js.map +0 -1
  427. package/dist/core/codegen/generators/nullable.d.ts +0 -6
  428. package/dist/core/codegen/generators/nullable.d.ts.map +0 -1
  429. package/dist/core/codegen/generators/nullable.js +0 -9
  430. package/dist/core/codegen/generators/nullable.js.map +0 -1
  431. package/dist/core/codegen/generators/number.d.ts +0 -6
  432. package/dist/core/codegen/generators/number.d.ts.map +0 -1
  433. package/dist/core/codegen/generators/number.js +0 -101
  434. package/dist/core/codegen/generators/number.js.map +0 -1
  435. package/dist/core/codegen/generators/object.d.ts +0 -6
  436. package/dist/core/codegen/generators/object.d.ts.map +0 -1
  437. package/dist/core/codegen/generators/object.js +0 -31
  438. package/dist/core/codegen/generators/object.js.map +0 -1
  439. package/dist/core/codegen/generators/optional.d.ts +0 -6
  440. package/dist/core/codegen/generators/optional.d.ts.map +0 -1
  441. package/dist/core/codegen/generators/optional.js +0 -9
  442. package/dist/core/codegen/generators/optional.js.map +0 -1
  443. package/dist/core/codegen/generators/pipe.d.ts +0 -6
  444. package/dist/core/codegen/generators/pipe.d.ts.map +0 -1
  445. package/dist/core/codegen/generators/pipe.js +0 -5
  446. package/dist/core/codegen/generators/pipe.js.map +0 -1
  447. package/dist/core/codegen/generators/readonly.d.ts +0 -6
  448. package/dist/core/codegen/generators/readonly.d.ts.map +0 -1
  449. package/dist/core/codegen/generators/readonly.js +0 -4
  450. package/dist/core/codegen/generators/readonly.js.map +0 -1
  451. package/dist/core/codegen/generators/record.d.ts +0 -6
  452. package/dist/core/codegen/generators/record.d.ts.map +0 -1
  453. package/dist/core/codegen/generators/record.js +0 -32
  454. package/dist/core/codegen/generators/record.js.map +0 -1
  455. package/dist/core/codegen/generators/recursive-ref.d.ts +0 -3
  456. package/dist/core/codegen/generators/recursive-ref.d.ts.map +0 -1
  457. package/dist/core/codegen/generators/recursive-ref.js +0 -20
  458. package/dist/core/codegen/generators/recursive-ref.js.map +0 -1
  459. package/dist/core/codegen/generators/set.d.ts +0 -6
  460. package/dist/core/codegen/generators/set.d.ts.map +0 -1
  461. package/dist/core/codegen/generators/set.js +0 -39
  462. package/dist/core/codegen/generators/set.js.map +0 -1
  463. package/dist/core/codegen/generators/string.d.ts +0 -6
  464. package/dist/core/codegen/generators/string.d.ts.map +0 -1
  465. package/dist/core/codegen/generators/string.js +0 -101
  466. package/dist/core/codegen/generators/string.js.map +0 -1
  467. package/dist/core/codegen/generators/symbol.d.ts +0 -2
  468. package/dist/core/codegen/generators/symbol.d.ts.map +0 -1
  469. package/dist/core/codegen/generators/symbol.js +0 -9
  470. package/dist/core/codegen/generators/symbol.js.map +0 -1
  471. package/dist/core/codegen/generators/template-literal.d.ts +0 -6
  472. package/dist/core/codegen/generators/template-literal.d.ts.map +0 -1
  473. package/dist/core/codegen/generators/template-literal.js +0 -13
  474. package/dist/core/codegen/generators/template-literal.js.map +0 -1
  475. package/dist/core/codegen/generators/tuple.d.ts +0 -6
  476. package/dist/core/codegen/generators/tuple.d.ts.map +0 -1
  477. package/dist/core/codegen/generators/tuple.js +0 -37
  478. package/dist/core/codegen/generators/tuple.js.map +0 -1
  479. package/dist/core/codegen/generators/undefined.d.ts +0 -2
  480. package/dist/core/codegen/generators/undefined.d.ts.map +0 -1
  481. package/dist/core/codegen/generators/undefined.js +0 -9
  482. package/dist/core/codegen/generators/undefined.js.map +0 -1
  483. package/dist/core/codegen/generators/union.d.ts +0 -6
  484. package/dist/core/codegen/generators/union.d.ts.map +0 -1
  485. package/dist/core/codegen/generators/union.js +0 -33
  486. package/dist/core/codegen/generators/union.js.map +0 -1
  487. package/dist/core/codegen/generators/unknown.d.ts +0 -2
  488. package/dist/core/codegen/generators/unknown.d.ts.map +0 -1
  489. package/dist/core/codegen/generators/unknown.js +0 -4
  490. package/dist/core/codegen/generators/unknown.js.map +0 -1
  491. package/dist/core/codegen/generators/void.d.ts +0 -2
  492. package/dist/core/codegen/generators/void.d.ts.map +0 -1
  493. package/dist/core/codegen/generators/void.js +0 -9
  494. package/dist/core/codegen/generators/void.js.map +0 -1
@@ -0,0 +1,156 @@
1
+ import { checkPriority, sortChecksPreservingEffects } from "../context.js";
2
+ import { emit } from "../emit.js";
3
+ import { refineCheck } from "./effect.js";
4
+ export function slowNumber(ir, g) {
5
+ let code = "";
6
+ if (ir.coerce) {
7
+ code += emit `${g.output}=Number(${g.input});`;
8
+ }
9
+ code += emit `
10
+ if(typeof ${g.input}!=="number"){
11
+ ${g.issues}.push({code:"invalid_type",expected:"number",input:${g.input},path:${g.path}});
12
+ }else if(Number.isNaN(${g.input})){
13
+ ${g.issues}.push({code:"invalid_type",expected:"number",received:"NaN",input:${g.input},path:${g.path}});
14
+ }else if(!Number.isFinite(${g.input})){
15
+ ${g.issues}.push({code:"invalid_type",expected:"number",received:"Infinity",input:${g.input},path:${g.path}});
16
+ }`;
17
+ if (ir.checks.length > 0) {
18
+ code += `else{`;
19
+ for (const check of sortChecksPreservingEffects([...ir.checks])) {
20
+ switch (check.kind) {
21
+ case "greater_than":
22
+ if (check.inclusive) {
23
+ code += emit `
24
+ if(${g.input}<${check.value}){
25
+ ${g.issues}.push({code:"too_small",minimum:${check.value},origin:"number",inclusive:true,input:${g.input},path:${g.path}});
26
+ }`;
27
+ }
28
+ else {
29
+ code += emit `
30
+ if(${g.input}<=${check.value}){
31
+ ${g.issues}.push({code:"too_small",minimum:${check.value},origin:"number",inclusive:false,input:${g.input},path:${g.path}});
32
+ }`;
33
+ }
34
+ break;
35
+ case "less_than":
36
+ if (check.inclusive) {
37
+ code += emit `
38
+ if(${g.input}>${check.value}){
39
+ ${g.issues}.push({code:"too_big",maximum:${check.value},origin:"number",inclusive:true,input:${g.input},path:${g.path}});
40
+ }`;
41
+ }
42
+ else {
43
+ code += emit `
44
+ if(${g.input}>=${check.value}){
45
+ ${g.issues}.push({code:"too_big",maximum:${check.value},origin:"number",inclusive:false,input:${g.input},path:${g.path}});
46
+ }`;
47
+ }
48
+ break;
49
+ case "number_format":
50
+ if (check.format === "safeint") {
51
+ code += emit `
52
+ if(!Number.isSafeInteger(${g.input})){
53
+ ${g.issues}.push({code:"invalid_type",expected:"int",format:"safeint",input:${g.input},path:${g.path}});
54
+ }`;
55
+ }
56
+ else if (check.format === "int32") {
57
+ code += emit `
58
+ if(!Number.isInteger(${g.input})){
59
+ ${g.issues}.push({code:"invalid_type",expected:"int",format:"int32",input:${g.input},path:${g.path}});
60
+ }else if(${g.input}<-2147483648){
61
+ ${g.issues}.push({code:"too_small",minimum:-2147483648,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
62
+ }else if(${g.input}>2147483647){
63
+ ${g.issues}.push({code:"too_big",maximum:2147483647,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
64
+ }`;
65
+ }
66
+ else if (check.format === "uint32") {
67
+ code += emit `
68
+ if(!Number.isInteger(${g.input})){
69
+ ${g.issues}.push({code:"invalid_type",expected:"int",format:"uint32",input:${g.input},path:${g.path}});
70
+ }else if(${g.input}<0){
71
+ ${g.issues}.push({code:"too_small",minimum:0,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
72
+ }else if(${g.input}>4294967295){
73
+ ${g.issues}.push({code:"too_big",maximum:4294967295,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
74
+ }`;
75
+ }
76
+ else if (check.format === "float32") {
77
+ code += emit `
78
+ if(${g.input}<-3.4028234663852886e+38){
79
+ ${g.issues}.push({code:"too_small",minimum:-3.4028234663852886e+38,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
80
+ }else if(${g.input}>3.4028234663852886e+38){
81
+ ${g.issues}.push({code:"too_big",maximum:3.4028234663852886e+38,origin:"number",inclusive:true,input:${g.input},path:${g.path}});
82
+ }`;
83
+ }
84
+ // float64 range is [-Number.MAX_VALUE, Number.MAX_VALUE], already covered by the isFinite check above
85
+ break;
86
+ case "multiple_of":
87
+ code += emit `
88
+ if(${g.input}%${check.value}!==0){
89
+ ${g.issues}.push({code:"not_multiple_of",divisor:${check.value},origin:"number",input:${g.input},path:${g.path}});
90
+ }`;
91
+ break;
92
+ case "refine_effect":
93
+ code += refineCheck(check, g.input, g);
94
+ break;
95
+ }
96
+ }
97
+ code += `}`;
98
+ }
99
+ return `${code}\n`;
100
+ }
101
+ export function fastNumber(ir, g) {
102
+ if (ir.coerce)
103
+ return null;
104
+ if (ir.checks.some((c) => c.kind === "refine_effect"))
105
+ return null;
106
+ const x = g.input;
107
+ const parts = [
108
+ `typeof ${x}==="number"`,
109
+ `!Number.isNaN(${x})`,
110
+ `Number.isFinite(${x})`,
111
+ ];
112
+ const checks = ir.checks.filter((c) => c.kind !== "refine_effect");
113
+ for (const check of checks.sort(checkPriority)) {
114
+ switch (check.kind) {
115
+ case "number_format":
116
+ switch (check.format) {
117
+ case "safeint":
118
+ parts.push(`Number.isSafeInteger(${x})`);
119
+ break;
120
+ case "int32":
121
+ parts.push(`(${x}|0)===${x}`);
122
+ break;
123
+ case "uint32":
124
+ parts.push(`${x}>=0`, `${x}<=4294967295`, `(${x}>>>0)===${x}`);
125
+ break;
126
+ case "float32":
127
+ parts.push(`Math.fround(${x})===${x}`);
128
+ break;
129
+ case "float64":
130
+ // All finite numbers are valid float64
131
+ break;
132
+ }
133
+ break;
134
+ case "greater_than":
135
+ parts.push(check.inclusive ? `${x}>=${check.value}` : `${x}>${check.value}`);
136
+ break;
137
+ case "less_than":
138
+ parts.push(check.inclusive ? `${x}<=${check.value}` : `${x}<${check.value}`);
139
+ break;
140
+ case "multiple_of":
141
+ parts.push(`${x}%${check.value}===0`);
142
+ break;
143
+ case "min_length":
144
+ case "max_length":
145
+ case "length_equals":
146
+ case "string_format":
147
+ case "includes":
148
+ case "starts_with":
149
+ case "ends_with":
150
+ // String-only checks on a number schema — shouldn't happen, skip
151
+ break;
152
+ }
153
+ }
154
+ return parts.join("&&");
155
+ }
156
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ObjectIR, SchemaIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowObject(ir: SchemaIR & {
4
+ type: "object";
5
+ }, g: SlowGen): string;
6
+ export declare function fastObject(ir: ObjectIR, g: FastGen): string | null;
7
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA6BhF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAelE"}
@@ -0,0 +1,44 @@
1
+ import { escapeString, hasMutation } from "../context.js";
2
+ import { emit } from "../emit.js";
3
+ import { refineCheck } from "./effect.js";
4
+ export function slowObject(ir, g) {
5
+ let code = emit `
6
+ if(typeof ${g.input}!=="object"||${g.input}===null||Array.isArray(${g.input})){
7
+ ${g.issues}.push({code:"invalid_type",expected:"object",input:${g.input},path:${g.path}});
8
+ }else{`;
9
+ const needsClone = Object.values(ir.properties).some(hasMutation);
10
+ const objVar = g.temp("o");
11
+ code += needsClone ? `var ${objVar}=Object.assign({},${g.input});` : `var ${objVar}=${g.input};`;
12
+ for (const [key, propIR] of Object.entries(ir.properties)) {
13
+ const propExpr = `${objVar}[${escapeString(key)}]`;
14
+ const propPath = `${g.path}.concat(${escapeString(key)})`;
15
+ code += g.visit(propIR, { input: propExpr, output: propExpr, path: propPath });
16
+ }
17
+ if (needsClone) {
18
+ code += `${g.output}=${objVar};`;
19
+ }
20
+ // Object-level refine effects: z.object({...}).refine(fn)
21
+ if (ir.checks) {
22
+ for (const check of ir.checks) {
23
+ code += refineCheck(check, objVar, g);
24
+ }
25
+ }
26
+ code += `}\n`;
27
+ return code;
28
+ }
29
+ export function fastObject(ir, g) {
30
+ // Object with refine effects is not eligible for Fast Path
31
+ if (ir.checks && ir.checks.length > 0)
32
+ return null;
33
+ const x = g.input;
34
+ const parts = [`typeof ${x}==="object"`, `${x}!==null`, `!Array.isArray(${x})`];
35
+ for (const [key, propIR] of Object.entries(ir.properties)) {
36
+ const propExpr = `${x}[${escapeString(key)}]`;
37
+ const propCheck = g.visit(propIR, { input: propExpr });
38
+ if (propCheck === null)
39
+ return null; // All-or-nothing
40
+ parts.push(propCheck);
41
+ }
42
+ return parts.join("&&");
43
+ }
44
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OptionalIR, SchemaIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowOptional(ir: SchemaIR & {
4
+ type: "optional";
5
+ }, g: SlowGen): string;
6
+ export declare function fastOptional(ir: OptionalIR, g: FastGen): string | null;
7
+ //# sourceMappingURL=optional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/optional.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAMpF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAItE"}
@@ -0,0 +1,15 @@
1
+ import { emit } from "../emit.js";
2
+ export function slowOptional(ir, g) {
3
+ return `${emit `
4
+ if(${g.input}!==undefined){
5
+ ${g.visit(ir.inner)}
6
+ }
7
+ `}\n`;
8
+ }
9
+ export function fastOptional(ir, g) {
10
+ const inner = g.visit(ir.inner);
11
+ if (inner === null)
12
+ return null;
13
+ return `(${g.input}===undefined||(${inner}))`;
14
+ }
15
+ //# sourceMappingURL=optional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/optional.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,YAAY,CAAC,EAAmC,EAAE,CAAU;IAC1E,OAAO,GAAG,IAAI,CAAA;SACP,CAAC,CAAC,KAAK;QACR,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;;GAEtB,IAAI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAc,EAAE,CAAU;IACrD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,CAAC,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAChD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PipeIR, SchemaIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowPipe(ir: SchemaIR & {
4
+ type: "pipe";
5
+ }, g: SlowGen): string;
6
+ export declare function fastPipe(ir: PipeIR, g: FastGen): string | null;
7
+ //# sourceMappingURL=pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAG5E;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU9D"}
@@ -1,11 +1,15 @@
1
- export function fastCheckPipe(ir, x, ctx, generateFn) {
1
+ export function slowPipe(ir, g) {
2
+ // Validate input schema first, then output schema sequentially
3
+ return `${g.visit(ir.in)}${g.visit(ir.out, { input: g.output, output: g.output })}`;
4
+ }
5
+ export function fastPipe(ir, g) {
2
6
  // Only eligible if `out` is the same as `in` (non-transform pipe)
3
7
  // We check `in` only — if the pipe has a transform, `out` would be a fallback
4
- const inCheck = generateFn(ir.in, x, ctx);
8
+ const inCheck = g.visit(ir.in);
5
9
  if (inCheck === null)
6
10
  return null;
7
11
  // Check if out schema is eligible (non-fallback)
8
- const outCheck = generateFn(ir.out, x, ctx);
12
+ const outCheck = g.visit(ir.out);
9
13
  if (outCheck === null)
10
14
  return null;
11
15
  // Both in and out must pass
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/pipe.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAC,EAA+B,EAAE,CAAU;IAClE,+DAA+D;IAC/D,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,CAAU;IAC7C,kEAAkE;IAClE,8EAA8E;IAC9E,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,iDAAiD;IACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,4BAA4B;IAC5B,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,QAAQ,EAAE,CAAC;AACnG,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ReadonlyIR, SchemaIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowReadonly(ir: SchemaIR & {
4
+ type: "readonly";
5
+ }, g: SlowGen): string;
6
+ export declare function fastReadonly(ir: ReadonlyIR, g: FastGen): string | null;
7
+ //# sourceMappingURL=readonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/readonly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAEpF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,7 @@
1
+ export function slowReadonly(ir, g) {
2
+ return g.visit(ir.inner);
3
+ }
4
+ export function fastReadonly(ir, g) {
5
+ return g.visit(ir.inner);
6
+ }
7
+ //# sourceMappingURL=readonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/readonly.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,EAAmC,EAAE,CAAU;IAC1E,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAc,EAAE,CAAU;IACrD,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { RecordIR, SchemaIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowRecord(ir: SchemaIR & {
4
+ type: "record";
5
+ }, g: SlowGen): string;
6
+ export declare function fastRecord(ir: RecordIR, g: FastGen): string | null;
7
+ //# sourceMappingURL=record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAItD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA+BhF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkBlE"}
@@ -0,0 +1,50 @@
1
+ import { hasMutation } from "../context.js";
2
+ import { emit } from "../emit.js";
3
+ export function slowRecord(ir, g) {
4
+ let code = emit `
5
+ if(typeof ${g.input}!=="object"||${g.input}===null||Array.isArray(${g.input})){
6
+ ${g.issues}.push({code:"invalid_type",expected:"record",input:${g.input},path:${g.path}});
7
+ }else{`;
8
+ if (hasMutation(ir.valueType)) {
9
+ code += `${g.output}=Object.assign({},${g.input});`;
10
+ }
11
+ const keysVar = g.temp("rk");
12
+ const idxVar = g.temp("ri");
13
+ const keyVar = g.temp("rkey");
14
+ const keyIssuesVar = g.temp("rki");
15
+ const keyPath = `${g.path}.concat(${keyVar})`;
16
+ const valExpr = `${g.input}[${keyVar}]`;
17
+ code += emit `
18
+ var ${keysVar}=Object.keys(${g.input});
19
+ for(var ${idxVar}=0;${idxVar}<${keysVar}.length;${idxVar}++){
20
+ var ${keyVar}=${keysVar}[${idxVar}];
21
+ var ${keyIssuesVar}=[];
22
+ ${g.visit(ir.keyType, { input: keyVar, output: keyVar, path: keyPath, issues: keyIssuesVar })}
23
+ if(${keyIssuesVar}.length>0){
24
+ ${g.issues}.push({code:"invalid_key",origin:"record",path:${keyPath},issues:${keyIssuesVar}});
25
+ }else{
26
+ ${g.visit(ir.valueType, { input: valExpr, output: valExpr, path: keyPath })}
27
+ }
28
+ }
29
+ }`;
30
+ return `${code}\n`;
31
+ }
32
+ export function fastRecord(ir, g) {
33
+ const x = g.input;
34
+ const parts = [`typeof ${x}==="object"`, `${x}!==null`, `!Array.isArray(${x})`];
35
+ const kv = g.temp("rk");
36
+ const keyCheck = g.visit(ir.keyType, { input: kv });
37
+ const valCheck = g.visit(ir.valueType, { input: `${x}[${kv}]` });
38
+ if (keyCheck === null || valCheck === null)
39
+ return null;
40
+ const conditions = [];
41
+ if (keyCheck !== "true")
42
+ conditions.push(keyCheck);
43
+ if (valCheck !== "true")
44
+ conditions.push(valCheck);
45
+ if (conditions.length > 0) {
46
+ parts.push(`Object.keys(${x}).every(${kv}=>${conditions.join("&&")})`);
47
+ }
48
+ return parts.join("&&");
49
+ }
50
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { RecursiveRefIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowRecursiveRef(_ir: RecursiveRefIR, g: SlowGen): string;
4
+ export declare function fastRecursiveRef(_ir: RecursiveRefIR, _g: FastGen): string | null;
5
+ //# sourceMappingURL=recursive-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive-ref.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/recursive-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAiBxE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGhF"}
@@ -0,0 +1,24 @@
1
+ import { emit } from "../emit.js";
2
+ export function slowRecursiveRef(_ir, g) {
3
+ const n = g.ctx.counter++;
4
+ const rVar = `__rec_r${n}`;
5
+ const iVar = `__rec_i${n}`;
6
+ const jVar = `__rec_j${n}`;
7
+ return `${emit `
8
+ var ${rVar}=${g.ctx.fnName}(${g.input});
9
+ if(!${rVar}.success){
10
+ var ${iVar}=${rVar}.error.issues;
11
+ for(var ${jVar}=0;${jVar}<${iVar}.length;${jVar}++){
12
+ ${g.issues}.push(Object.assign({},${iVar}[${jVar}],
13
+ {path:${g.path}.concat(${iVar}[${jVar}].path)}));
14
+ }
15
+ }else{
16
+ ${g.output}=${rVar}.data;
17
+ }
18
+ `}\n`;
19
+ }
20
+ export function fastRecursiveRef(_ir, _g) {
21
+ // recursiveRef needs auxiliary function generation — ineligible for now
22
+ return null;
23
+ }
24
+ //# sourceMappingURL=recursive-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive-ref.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/recursive-ref.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,gBAAgB,CAAC,GAAmB,EAAE,CAAU;IAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,OAAO,GAAG,IAAI,CAAA;UACN,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK;UAC/B,IAAI;YACF,IAAI,IAAI,IAAI;gBACR,IAAI,MAAM,IAAI,IAAI,IAAI,WAAW,IAAI;UAC3C,CAAC,CAAC,MAAM,0BAA0B,IAAI,IAAI,IAAI;kBACtC,CAAC,CAAC,IAAI,WAAW,IAAI,IAAI,IAAI;;;QAGvC,CAAC,CAAC,MAAM,IAAI,IAAI;;GAErB,IAAI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAmB,EAAE,EAAW;IAC/D,wEAAwE;IACxE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaIR } from "../../types.js";
2
+ import type { SlowGen } from "../context.js";
3
+ export declare function slowSet(ir: SchemaIR & {
4
+ type: "set";
5
+ }, g: SlowGen): string;
6
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAqC1E"}
@@ -0,0 +1,38 @@
1
+ import { emit } from "../emit.js";
2
+ export function slowSet(ir, g) {
3
+ let code = emit `
4
+ if(!(${g.input} instanceof Set)){
5
+ ${g.issues}.push({code:"invalid_type",expected:"set",input:${g.input},path:${g.path}});
6
+ }else{`;
7
+ // Size checks
8
+ if (ir.checks) {
9
+ for (const check of ir.checks) {
10
+ switch (check.kind) {
11
+ case "min_size":
12
+ code += emit `
13
+ if(${g.input}.size<${check.minimum}){
14
+ ${g.issues}.push({code:"too_small",minimum:${check.minimum},origin:"set",inclusive:true,input:${g.input},path:${g.path}});
15
+ }`;
16
+ break;
17
+ case "max_size":
18
+ code += emit `
19
+ if(${g.input}.size>${check.maximum}){
20
+ ${g.issues}.push({code:"too_big",maximum:${check.maximum},origin:"set",inclusive:true,input:${g.input},path:${g.path}});
21
+ }`;
22
+ break;
23
+ }
24
+ }
25
+ }
26
+ // Validate each element
27
+ const iterVar = g.temp("set_v");
28
+ const idxVar = g.temp("set_i");
29
+ code += emit `
30
+ var ${idxVar}=0;
31
+ for(var ${iterVar} of ${g.input}){
32
+ ${g.visit(ir.valueType, { input: iterVar, output: iterVar, path: `${g.path}.concat(${idxVar})` })}
33
+ ${idxVar}++;
34
+ }
35
+ }`;
36
+ return `${code}\n`;
37
+ }
38
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,OAAO,CAAC,EAA8B,EAAE,CAAU;IAChE,IAAI,IAAI,GAAG,IAAI,CAAA;WACN,CAAC,CAAC,KAAK;QACV,CAAC,CAAC,MAAM,mDAAmD,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI;WAC9E,CAAC;IAEV,cAAc;IACd,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,UAAU;oBACb,IAAI,IAAI,IAAI,CAAA;iBACL,CAAC,CAAC,KAAK,SAAS,KAAK,CAAC,OAAO;gBAC9B,CAAC,CAAC,MAAM,mCAAmC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI;cACtH,CAAC;oBACL,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,IAAI,IAAI,CAAA;iBACL,CAAC,CAAC,KAAK,SAAS,KAAK,CAAC,OAAO;gBAC9B,CAAC,CAAC,MAAM,iCAAiC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI;cACpH,CAAC;oBACL,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,IAAI,IAAI,CAAA;UACJ,MAAM;cACF,OAAO,OAAO,CAAC,CAAC,KAAK;QAC3B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,WAAW,MAAM,GAAG,EAAE,CAAC;QAC/F,MAAM;;IAEV,CAAC;IACH,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { StringIR } from "../../types.js";
2
+ import type { FastGen, SlowGen } from "../context.js";
3
+ export declare function slowString(ir: StringIR, g: SlowGen): string;
4
+ export declare function fastString(ir: StringIR, g: FastGen): string | null;
5
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAWtD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAyF3D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA2DlE"}