zod-compiler 1.23.0 → 1.23.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/README.md +9 -6
  2. package/dist/cli/commands/check.d.ts +10 -7
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +125 -148
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/generate.d.ts +22 -19
  7. package/dist/cli/commands/generate.d.ts.map +1 -1
  8. package/dist/cli/commands/generate.js +102 -133
  9. package/dist/cli/commands/generate.js.map +1 -1
  10. package/dist/cli/commands/watch.d.ts +17 -15
  11. package/dist/cli/commands/watch.d.ts.map +1 -1
  12. package/dist/cli/commands/watch.js +126 -154
  13. package/dist/cli/commands/watch.js.map +1 -1
  14. package/dist/cli/emitter.d.ts +19 -16
  15. package/dist/cli/emitter.d.ts.map +1 -1
  16. package/dist/cli/emitter.js +55 -71
  17. package/dist/cli/emitter.js.map +1 -1
  18. package/dist/cli/errors.d.ts +4 -1
  19. package/dist/cli/errors.d.ts.map +1 -1
  20. package/dist/cli/errors.js +6 -2
  21. package/dist/cli/errors.js.map +1 -1
  22. package/dist/cli/index.d.ts +1 -3
  23. package/dist/cli/index.js +147 -160
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/logger.d.ts +18 -15
  26. package/dist/cli/logger.d.ts.map +1 -1
  27. package/dist/cli/logger.js +38 -37
  28. package/dist/cli/logger.js.map +1 -1
  29. package/dist/core/codegen/build-path.d.ts +7 -41
  30. package/dist/core/codegen/build-path.d.ts.map +1 -1
  31. package/dist/core/codegen/build-path.js +481 -570
  32. package/dist/core/codegen/build-path.js.map +1 -1
  33. package/dist/core/codegen/context.d.ts +256 -253
  34. package/dist/core/codegen/context.d.ts.map +1 -1
  35. package/dist/core/codegen/context.js +363 -437
  36. package/dist/core/codegen/context.js.map +1 -1
  37. package/dist/core/codegen/dedupe.d.ts +22 -56
  38. package/dist/core/codegen/dedupe.d.ts.map +1 -1
  39. package/dist/core/codegen/dedupe.js +150 -242
  40. package/dist/core/codegen/dedupe.js.map +1 -1
  41. package/dist/core/codegen/emit-issue.d.ts +44 -68
  42. package/dist/core/codegen/emit-issue.d.ts.map +1 -1
  43. package/dist/core/codegen/emit-issue.js +76 -108
  44. package/dist/core/codegen/emit-issue.js.map +1 -1
  45. package/dist/core/codegen/emit.d.ts +4 -1
  46. package/dist/core/codegen/emit.d.ts.map +1 -1
  47. package/dist/core/codegen/emit.js +16 -13
  48. package/dist/core/codegen/emit.js.map +1 -1
  49. package/dist/core/codegen/fast-path.d.ts +7 -12
  50. package/dist/core/codegen/fast-path.d.ts.map +1 -1
  51. package/dist/core/codegen/fast-path.js +116 -145
  52. package/dist/core/codegen/fast-path.js.map +1 -1
  53. package/dist/core/codegen/fast-size.d.ts +12 -26
  54. package/dist/core/codegen/fast-size.d.ts.map +1 -1
  55. package/dist/core/codegen/fast-size.js +169 -244
  56. package/dist/core/codegen/fast-size.js.map +1 -1
  57. package/dist/core/codegen/index.d.ts +25 -23
  58. package/dist/core/codegen/index.d.ts.map +1 -1
  59. package/dist/core/codegen/index.js +239 -405
  60. package/dist/core/codegen/index.js.map +1 -1
  61. package/dist/core/codegen/issue-decls.d.ts +15 -12
  62. package/dist/core/codegen/issue-decls.d.ts.map +1 -1
  63. package/dist/core/codegen/issue-decls.js +131 -162
  64. package/dist/core/codegen/issue-decls.js.map +1 -1
  65. package/dist/core/codegen/regex-unroll.d.ts +4 -1
  66. package/dist/core/codegen/regex-unroll.d.ts.map +1 -1
  67. package/dist/core/codegen/regex-unroll.js +173 -197
  68. package/dist/core/codegen/regex-unroll.js.map +1 -1
  69. package/dist/core/codegen/schemas/any.d.ts +7 -4
  70. package/dist/core/codegen/schemas/any.d.ts.map +1 -1
  71. package/dist/core/codegen/schemas/any.js +8 -4
  72. package/dist/core/codegen/schemas/any.js.map +1 -1
  73. package/dist/core/codegen/schemas/array.d.ts +8 -5
  74. package/dist/core/codegen/schemas/array.d.ts.map +1 -1
  75. package/dist/core/codegen/schemas/array.js +77 -95
  76. package/dist/core/codegen/schemas/array.js.map +1 -1
  77. package/dist/core/codegen/schemas/bigint.d.ts +7 -4
  78. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
  79. package/dist/core/codegen/schemas/bigint.js +44 -56
  80. package/dist/core/codegen/schemas/bigint.js.map +1 -1
  81. package/dist/core/codegen/schemas/boolean.d.ts +7 -4
  82. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
  83. package/dist/core/codegen/schemas/boolean.js +12 -11
  84. package/dist/core/codegen/schemas/boolean.js.map +1 -1
  85. package/dist/core/codegen/schemas/catch.d.ts +8 -5
  86. package/dist/core/codegen/schemas/catch.d.ts.map +1 -1
  87. package/dist/core/codegen/schemas/catch.js +23 -23
  88. package/dist/core/codegen/schemas/catch.js.map +1 -1
  89. package/dist/core/codegen/schemas/date.d.ts +7 -4
  90. package/dist/core/codegen/schemas/date.d.ts.map +1 -1
  91. package/dist/core/codegen/schemas/date.js +49 -68
  92. package/dist/core/codegen/schemas/date.js.map +1 -1
  93. package/dist/core/codegen/schemas/default.d.ts +9 -6
  94. package/dist/core/codegen/schemas/default.d.ts.map +1 -1
  95. package/dist/core/codegen/schemas/default.js +29 -27
  96. package/dist/core/codegen/schemas/default.js.map +1 -1
  97. package/dist/core/codegen/schemas/discriminated-union.d.ts +12 -10
  98. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
  99. package/dist/core/codegen/schemas/discriminated-union.js +153 -178
  100. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
  101. package/dist/core/codegen/schemas/effect.d.ts +9 -6
  102. package/dist/core/codegen/schemas/effect.d.ts.map +1 -1
  103. package/dist/core/codegen/schemas/effect.js +54 -67
  104. package/dist/core/codegen/schemas/effect.js.map +1 -1
  105. package/dist/core/codegen/schemas/enum.d.ts +7 -4
  106. package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
  107. package/dist/core/codegen/schemas/enum.js +15 -21
  108. package/dist/core/codegen/schemas/enum.js.map +1 -1
  109. package/dist/core/codegen/schemas/fallback.d.ts +6 -3
  110. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -1
  111. package/dist/core/codegen/schemas/fallback.js +14 -13
  112. package/dist/core/codegen/schemas/fallback.js.map +1 -1
  113. package/dist/core/codegen/schemas/file.d.ts +7 -4
  114. package/dist/core/codegen/schemas/file.d.ts.map +1 -1
  115. package/dist/core/codegen/schemas/file.js +51 -57
  116. package/dist/core/codegen/schemas/file.js.map +1 -1
  117. package/dist/core/codegen/schemas/intersection.d.ts +8 -5
  118. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -1
  119. package/dist/core/codegen/schemas/intersection.js +16 -13
  120. package/dist/core/codegen/schemas/intersection.js.map +1 -1
  121. package/dist/core/codegen/schemas/literal.d.ts +7 -4
  122. package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
  123. package/dist/core/codegen/schemas/literal.js +20 -23
  124. package/dist/core/codegen/schemas/literal.js.map +1 -1
  125. package/dist/core/codegen/schemas/map.d.ts +8 -5
  126. package/dist/core/codegen/schemas/map.d.ts.map +1 -1
  127. package/dist/core/codegen/schemas/map.js +61 -67
  128. package/dist/core/codegen/schemas/map.js.map +1 -1
  129. package/dist/core/codegen/schemas/nan.d.ts +7 -4
  130. package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
  131. package/dist/core/codegen/schemas/nan.js +8 -4
  132. package/dist/core/codegen/schemas/nan.js.map +1 -1
  133. package/dist/core/codegen/schemas/never.d.ts +7 -4
  134. package/dist/core/codegen/schemas/never.d.ts.map +1 -1
  135. package/dist/core/codegen/schemas/never.js +8 -4
  136. package/dist/core/codegen/schemas/never.js.map +1 -1
  137. package/dist/core/codegen/schemas/null.d.ts +7 -4
  138. package/dist/core/codegen/schemas/null.d.ts.map +1 -1
  139. package/dist/core/codegen/schemas/null.js +8 -4
  140. package/dist/core/codegen/schemas/null.js.map +1 -1
  141. package/dist/core/codegen/schemas/nullable.d.ts +8 -5
  142. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -1
  143. package/dist/core/codegen/schemas/nullable.js +8 -5
  144. package/dist/core/codegen/schemas/nullable.js.map +1 -1
  145. package/dist/core/codegen/schemas/number.d.ts +7 -4
  146. package/dist/core/codegen/schemas/number.d.ts.map +1 -1
  147. package/dist/core/codegen/schemas/number.js +120 -176
  148. package/dist/core/codegen/schemas/number.js.map +1 -1
  149. package/dist/core/codegen/schemas/object.d.ts +8 -5
  150. package/dist/core/codegen/schemas/object.d.ts.map +1 -1
  151. package/dist/core/codegen/schemas/object.js +144 -231
  152. package/dist/core/codegen/schemas/object.js.map +1 -1
  153. package/dist/core/codegen/schemas/optional.d.ts +9 -6
  154. package/dist/core/codegen/schemas/optional.d.ts.map +1 -1
  155. package/dist/core/codegen/schemas/optional.js +23 -31
  156. package/dist/core/codegen/schemas/optional.js.map +1 -1
  157. package/dist/core/codegen/schemas/pipe.d.ts +8 -5
  158. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -1
  159. package/dist/core/codegen/schemas/pipe.js +20 -27
  160. package/dist/core/codegen/schemas/pipe.js.map +1 -1
  161. package/dist/core/codegen/schemas/readonly.d.ts +8 -5
  162. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -1
  163. package/dist/core/codegen/schemas/readonly.js +8 -5
  164. package/dist/core/codegen/schemas/readonly.js.map +1 -1
  165. package/dist/core/codegen/schemas/record.d.ts +8 -5
  166. package/dist/core/codegen/schemas/record.d.ts.map +1 -1
  167. package/dist/core/codegen/schemas/record.js +52 -65
  168. package/dist/core/codegen/schemas/record.js.map +1 -1
  169. package/dist/core/codegen/schemas/recursive-ref.d.ts +9 -6
  170. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -1
  171. package/dist/core/codegen/schemas/recursive-ref.js +44 -44
  172. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -1
  173. package/dist/core/codegen/schemas/set.d.ts +8 -5
  174. package/dist/core/codegen/schemas/set.d.ts.map +1 -1
  175. package/dist/core/codegen/schemas/set.js +61 -73
  176. package/dist/core/codegen/schemas/set.js.map +1 -1
  177. package/dist/core/codegen/schemas/string-bool.d.ts +6 -3
  178. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
  179. package/dist/core/codegen/schemas/string-bool.js +22 -23
  180. package/dist/core/codegen/schemas/string-bool.js.map +1 -1
  181. package/dist/core/codegen/schemas/string.d.ts +8 -5
  182. package/dist/core/codegen/schemas/string.d.ts.map +1 -1
  183. package/dist/core/codegen/schemas/string.js +168 -207
  184. package/dist/core/codegen/schemas/string.js.map +1 -1
  185. package/dist/core/codegen/schemas/symbol.d.ts +7 -4
  186. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
  187. package/dist/core/codegen/schemas/symbol.js +8 -4
  188. package/dist/core/codegen/schemas/symbol.js.map +1 -1
  189. package/dist/core/codegen/schemas/template-literal.d.ts +7 -4
  190. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
  191. package/dist/core/codegen/schemas/template-literal.js +12 -13
  192. package/dist/core/codegen/schemas/template-literal.js.map +1 -1
  193. package/dist/core/codegen/schemas/tuple.d.ts +8 -5
  194. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
  195. package/dist/core/codegen/schemas/tuple.js +84 -94
  196. package/dist/core/codegen/schemas/tuple.js.map +1 -1
  197. package/dist/core/codegen/schemas/undefined.d.ts +7 -4
  198. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
  199. package/dist/core/codegen/schemas/undefined.js +8 -4
  200. package/dist/core/codegen/schemas/undefined.js.map +1 -1
  201. package/dist/core/codegen/schemas/union.d.ts +8 -5
  202. package/dist/core/codegen/schemas/union.d.ts.map +1 -1
  203. package/dist/core/codegen/schemas/union.js +49 -69
  204. package/dist/core/codegen/schemas/union.js.map +1 -1
  205. package/dist/core/codegen/schemas/unknown.d.ts +7 -4
  206. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -1
  207. package/dist/core/codegen/schemas/unknown.js +8 -4
  208. package/dist/core/codegen/schemas/unknown.js.map +1 -1
  209. package/dist/core/codegen/schemas/void.d.ts +7 -4
  210. package/dist/core/codegen/schemas/void.d.ts.map +1 -1
  211. package/dist/core/codegen/schemas/void.js +8 -4
  212. package/dist/core/codegen/schemas/void.js.map +1 -1
  213. package/dist/core/codegen/slow-path.d.ts +7 -4
  214. package/dist/core/codegen/slow-path.d.ts.map +1 -1
  215. package/dist/core/codegen/slow-path.js +71 -96
  216. package/dist/core/codegen/slow-path.js.map +1 -1
  217. package/dist/core/codegen/well-known-regex.d.ts +22 -19
  218. package/dist/core/codegen/well-known-regex.d.ts.map +1 -1
  219. package/dist/core/codegen/well-known-regex.js +127 -96
  220. package/dist/core/codegen/well-known-regex.js.map +1 -1
  221. package/dist/core/compile.d.ts +7 -4
  222. package/dist/core/compile.d.ts.map +1 -1
  223. package/dist/core/compile.js +48 -48
  224. package/dist/core/compile.js.map +1 -1
  225. package/dist/core/diagnostic.d.ts +38 -39
  226. package/dist/core/diagnostic.d.ts.map +1 -1
  227. package/dist/core/diagnostic.js +140 -164
  228. package/dist/core/diagnostic.js.map +1 -1
  229. package/dist/core/extract/checks.d.ts +18 -15
  230. package/dist/core/extract/checks.d.ts.map +1 -1
  231. package/dist/core/extract/checks.js +318 -311
  232. package/dist/core/extract/checks.js.map +1 -1
  233. package/dist/core/extract/effects.d.ts +13 -10
  234. package/dist/core/extract/effects.d.ts.map +1 -1
  235. package/dist/core/extract/effects.js +153 -222
  236. package/dist/core/extract/effects.js.map +1 -1
  237. package/dist/core/extract/extractors/any.d.ts +5 -2
  238. package/dist/core/extract/extractors/any.d.ts.map +1 -1
  239. package/dist/core/extract/extractors/any.js +5 -1
  240. package/dist/core/extract/extractors/any.js.map +1 -1
  241. package/dist/core/extract/extractors/array.d.ts +6 -3
  242. package/dist/core/extract/extractors/array.d.ts.map +1 -1
  243. package/dist/core/extract/extractors/array.js +25 -20
  244. package/dist/core/extract/extractors/array.js.map +1 -1
  245. package/dist/core/extract/extractors/bigint.d.ts +6 -3
  246. package/dist/core/extract/extractors/bigint.d.ts.map +1 -1
  247. package/dist/core/extract/extractors/bigint.js +66 -64
  248. package/dist/core/extract/extractors/bigint.js.map +1 -1
  249. package/dist/core/extract/extractors/boolean.d.ts +5 -2
  250. package/dist/core/extract/extractors/boolean.d.ts.map +1 -1
  251. package/dist/core/extract/extractors/boolean.js +7 -3
  252. package/dist/core/extract/extractors/boolean.js.map +1 -1
  253. package/dist/core/extract/extractors/catch.d.ts +6 -3
  254. package/dist/core/extract/extractors/catch.d.ts.map +1 -1
  255. package/dist/core/extract/extractors/catch.js +26 -17
  256. package/dist/core/extract/extractors/catch.js.map +1 -1
  257. package/dist/core/extract/extractors/date.d.ts +6 -3
  258. package/dist/core/extract/extractors/date.d.ts.map +1 -1
  259. package/dist/core/extract/extractors/date.js +42 -46
  260. package/dist/core/extract/extractors/date.js.map +1 -1
  261. package/dist/core/extract/extractors/default.d.ts +6 -3
  262. package/dist/core/extract/extractors/default.d.ts.map +1 -1
  263. package/dist/core/extract/extractors/default.js +20 -14
  264. package/dist/core/extract/extractors/default.js.map +1 -1
  265. package/dist/core/extract/extractors/enum.d.ts +5 -2
  266. package/dist/core/extract/extractors/enum.d.ts.map +1 -1
  267. package/dist/core/extract/extractors/enum.js +12 -13
  268. package/dist/core/extract/extractors/enum.js.map +1 -1
  269. package/dist/core/extract/extractors/file.d.ts +6 -3
  270. package/dist/core/extract/extractors/file.d.ts.map +1 -1
  271. package/dist/core/extract/extractors/file.js +34 -28
  272. package/dist/core/extract/extractors/file.js.map +1 -1
  273. package/dist/core/extract/extractors/intersection.d.ts +5 -2
  274. package/dist/core/extract/extractors/intersection.d.ts.map +1 -1
  275. package/dist/core/extract/extractors/intersection.js +13 -11
  276. package/dist/core/extract/extractors/intersection.js.map +1 -1
  277. package/dist/core/extract/extractors/lazy.d.ts +6 -3
  278. package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
  279. package/dist/core/extract/extractors/lazy.js +21 -30
  280. package/dist/core/extract/extractors/lazy.js.map +1 -1
  281. package/dist/core/extract/extractors/literal.d.ts +5 -2
  282. package/dist/core/extract/extractors/literal.d.ts.map +1 -1
  283. package/dist/core/extract/extractors/literal.js +8 -1
  284. package/dist/core/extract/extractors/literal.js.map +1 -1
  285. package/dist/core/extract/extractors/map.d.ts +6 -3
  286. package/dist/core/extract/extractors/map.d.ts.map +1 -1
  287. package/dist/core/extract/extractors/map.js +10 -4
  288. package/dist/core/extract/extractors/map.js.map +1 -1
  289. package/dist/core/extract/extractors/nan.d.ts +5 -2
  290. package/dist/core/extract/extractors/nan.d.ts.map +1 -1
  291. package/dist/core/extract/extractors/nan.js +5 -1
  292. package/dist/core/extract/extractors/nan.js.map +1 -1
  293. package/dist/core/extract/extractors/never.d.ts +5 -2
  294. package/dist/core/extract/extractors/never.d.ts.map +1 -1
  295. package/dist/core/extract/extractors/never.js +5 -1
  296. package/dist/core/extract/extractors/never.js.map +1 -1
  297. package/dist/core/extract/extractors/null.d.ts +5 -2
  298. package/dist/core/extract/extractors/null.d.ts.map +1 -1
  299. package/dist/core/extract/extractors/null.js +5 -1
  300. package/dist/core/extract/extractors/null.js.map +1 -1
  301. package/dist/core/extract/extractors/nullable.d.ts +5 -2
  302. package/dist/core/extract/extractors/nullable.d.ts.map +1 -1
  303. package/dist/core/extract/extractors/nullable.js +7 -3
  304. package/dist/core/extract/extractors/nullable.js.map +1 -1
  305. package/dist/core/extract/extractors/number.d.ts +6 -3
  306. package/dist/core/extract/extractors/number.d.ts.map +1 -1
  307. package/dist/core/extract/extractors/number.js +35 -35
  308. package/dist/core/extract/extractors/number.js.map +1 -1
  309. package/dist/core/extract/extractors/object.d.ts +6 -3
  310. package/dist/core/extract/extractors/object.d.ts.map +1 -1
  311. package/dist/core/extract/extractors/object.js +49 -76
  312. package/dist/core/extract/extractors/object.js.map +1 -1
  313. package/dist/core/extract/extractors/optional.d.ts +5 -2
  314. package/dist/core/extract/extractors/optional.d.ts.map +1 -1
  315. package/dist/core/extract/extractors/optional.js +10 -12
  316. package/dist/core/extract/extractors/optional.js.map +1 -1
  317. package/dist/core/extract/extractors/pipe.d.ts +6 -3
  318. package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
  319. package/dist/core/extract/extractors/pipe.js +40 -41
  320. package/dist/core/extract/extractors/pipe.js.map +1 -1
  321. package/dist/core/extract/extractors/readonly.d.ts +5 -2
  322. package/dist/core/extract/extractors/readonly.d.ts.map +1 -1
  323. package/dist/core/extract/extractors/readonly.js +10 -6
  324. package/dist/core/extract/extractors/readonly.js.map +1 -1
  325. package/dist/core/extract/extractors/record.d.ts +6 -3
  326. package/dist/core/extract/extractors/record.d.ts.map +1 -1
  327. package/dist/core/extract/extractors/record.js +24 -35
  328. package/dist/core/extract/extractors/record.js.map +1 -1
  329. package/dist/core/extract/extractors/set.d.ts +6 -3
  330. package/dist/core/extract/extractors/set.d.ts.map +1 -1
  331. package/dist/core/extract/extractors/set.js +36 -30
  332. package/dist/core/extract/extractors/set.js.map +1 -1
  333. package/dist/core/extract/extractors/string-bool.d.ts +7 -4
  334. package/dist/core/extract/extractors/string-bool.d.ts.map +1 -1
  335. package/dist/core/extract/extractors/string-bool.js +66 -84
  336. package/dist/core/extract/extractors/string-bool.js.map +1 -1
  337. package/dist/core/extract/extractors/string.d.ts +6 -3
  338. package/dist/core/extract/extractors/string.d.ts.map +1 -1
  339. package/dist/core/extract/extractors/string.js +34 -37
  340. package/dist/core/extract/extractors/string.js.map +1 -1
  341. package/dist/core/extract/extractors/symbol.d.ts +5 -2
  342. package/dist/core/extract/extractors/symbol.d.ts.map +1 -1
  343. package/dist/core/extract/extractors/symbol.js +5 -1
  344. package/dist/core/extract/extractors/symbol.js.map +1 -1
  345. package/dist/core/extract/extractors/template-literal.d.ts +6 -3
  346. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
  347. package/dist/core/extract/extractors/template-literal.js +11 -6
  348. package/dist/core/extract/extractors/template-literal.js.map +1 -1
  349. package/dist/core/extract/extractors/tuple.d.ts +6 -3
  350. package/dist/core/extract/extractors/tuple.d.ts.map +1 -1
  351. package/dist/core/extract/extractors/tuple.js +10 -4
  352. package/dist/core/extract/extractors/tuple.js.map +1 -1
  353. package/dist/core/extract/extractors/undefined.d.ts +5 -2
  354. package/dist/core/extract/extractors/undefined.d.ts.map +1 -1
  355. package/dist/core/extract/extractors/undefined.js +5 -1
  356. package/dist/core/extract/extractors/undefined.js.map +1 -1
  357. package/dist/core/extract/extractors/union.d.ts +6 -3
  358. package/dist/core/extract/extractors/union.d.ts.map +1 -1
  359. package/dist/core/extract/extractors/union.js +38 -64
  360. package/dist/core/extract/extractors/union.js.map +1 -1
  361. package/dist/core/extract/extractors/unknown.d.ts +5 -2
  362. package/dist/core/extract/extractors/unknown.d.ts.map +1 -1
  363. package/dist/core/extract/extractors/unknown.js +5 -1
  364. package/dist/core/extract/extractors/unknown.js.map +1 -1
  365. package/dist/core/extract/extractors/void.d.ts +5 -2
  366. package/dist/core/extract/extractors/void.d.ts.map +1 -1
  367. package/dist/core/extract/extractors/void.js +5 -1
  368. package/dist/core/extract/extractors/void.js.map +1 -1
  369. package/dist/core/extract/fallback.d.ts +6 -3
  370. package/dist/core/extract/fallback.d.ts.map +1 -1
  371. package/dist/core/extract/fallback.js +21 -7
  372. package/dist/core/extract/fallback.js.map +1 -1
  373. package/dist/core/extract/index.d.ts +6 -4
  374. package/dist/core/extract/index.d.ts.map +1 -1
  375. package/dist/core/extract/index.js +15 -15
  376. package/dist/core/extract/index.js.map +1 -1
  377. package/dist/core/extract/registry.d.ts +39 -36
  378. package/dist/core/extract/registry.d.ts.map +1 -1
  379. package/dist/core/extract/registry.js +96 -123
  380. package/dist/core/extract/registry.js.map +1 -1
  381. package/dist/core/extract/types.d.ts +124 -120
  382. package/dist/core/extract/types.d.ts.map +1 -1
  383. package/dist/core/extract/types.js +0 -1
  384. package/dist/core/iife.d.ts +14 -15
  385. package/dist/core/iife.d.ts.map +1 -1
  386. package/dist/core/iife.js +182 -206
  387. package/dist/core/iife.js.map +1 -1
  388. package/dist/core/pipeline.d.ts +33 -30
  389. package/dist/core/pipeline.d.ts.map +1 -1
  390. package/dist/core/pipeline.js +67 -74
  391. package/dist/core/pipeline.js.map +1 -1
  392. package/dist/core/types.d.ts +430 -427
  393. package/dist/core/types.d.ts.map +1 -1
  394. package/dist/core/types.js +0 -5
  395. package/dist/discovery.d.ts +8 -5
  396. package/dist/discovery.d.ts.map +1 -1
  397. package/dist/discovery.js +31 -32
  398. package/dist/discovery.js.map +1 -1
  399. package/dist/index.d.ts +4 -4
  400. package/dist/index.js +2 -2
  401. package/dist/jit.d.ts +15 -42
  402. package/dist/jit.d.ts.map +1 -1
  403. package/dist/jit.js +187 -216
  404. package/dist/jit.js.map +1 -1
  405. package/dist/loader.d.ts +14 -11
  406. package/dist/loader.d.ts.map +1 -1
  407. package/dist/loader.js +226 -258
  408. package/dist/loader.js.map +1 -1
  409. package/dist/static-filter.d.ts +4 -1
  410. package/dist/static-filter.d.ts.map +1 -1
  411. package/dist/static-filter.js +240 -367
  412. package/dist/static-filter.js.map +1 -1
  413. package/dist/swc.d.ts +38 -35
  414. package/dist/swc.d.ts.map +1 -1
  415. package/dist/swc.js +83 -76
  416. package/dist/swc.js.map +1 -1
  417. package/dist/unplugin/bun.d.ts +5 -2
  418. package/dist/unplugin/bun.d.ts.map +1 -1
  419. package/dist/unplugin/bun.js +5 -1
  420. package/dist/unplugin/bun.js.map +1 -1
  421. package/dist/unplugin/dep-graph.d.ts +10 -7
  422. package/dist/unplugin/dep-graph.d.ts.map +1 -1
  423. package/dist/unplugin/dep-graph.js +216 -252
  424. package/dist/unplugin/dep-graph.js.map +1 -1
  425. package/dist/unplugin/disk-cache.d.ts +121 -92
  426. package/dist/unplugin/disk-cache.d.ts.map +1 -1
  427. package/dist/unplugin/disk-cache.js +425 -444
  428. package/dist/unplugin/disk-cache.js.map +1 -1
  429. package/dist/unplugin/edits.d.ts +15 -12
  430. package/dist/unplugin/edits.d.ts.map +1 -1
  431. package/dist/unplugin/edits.js +24 -37
  432. package/dist/unplugin/edits.js.map +1 -1
  433. package/dist/unplugin/esbuild.d.ts +5 -2
  434. package/dist/unplugin/esbuild.d.ts.map +1 -1
  435. package/dist/unplugin/esbuild.js +5 -1
  436. package/dist/unplugin/esbuild.js.map +1 -1
  437. package/dist/unplugin/farm.d.ts +5 -2
  438. package/dist/unplugin/farm.d.ts.map +1 -1
  439. package/dist/unplugin/farm.js +5 -1
  440. package/dist/unplugin/farm.js.map +1 -1
  441. package/dist/unplugin/hoist-compile.d.ts +14 -42
  442. package/dist/unplugin/hoist-compile.d.ts.map +1 -1
  443. package/dist/unplugin/hoist-compile.js +67 -112
  444. package/dist/unplugin/hoist-compile.js.map +1 -1
  445. package/dist/unplugin/hoist.d.ts +56 -54
  446. package/dist/unplugin/hoist.d.ts.map +1 -1
  447. package/dist/unplugin/hoist.js +945 -1170
  448. package/dist/unplugin/hoist.js.map +1 -1
  449. package/dist/unplugin/index.d.ts +5 -3
  450. package/dist/unplugin/index.d.ts.map +1 -1
  451. package/dist/unplugin/index.js +175 -250
  452. package/dist/unplugin/index.js.map +1 -1
  453. package/dist/unplugin/rolldown.d.ts +5 -2
  454. package/dist/unplugin/rolldown.d.ts.map +1 -1
  455. package/dist/unplugin/rolldown.js +5 -1
  456. package/dist/unplugin/rolldown.js.map +1 -1
  457. package/dist/unplugin/rollup.d.ts +5 -2
  458. package/dist/unplugin/rollup.d.ts.map +1 -1
  459. package/dist/unplugin/rollup.js +5 -1
  460. package/dist/unplugin/rollup.js.map +1 -1
  461. package/dist/unplugin/rsbuild.d.ts +6 -3
  462. package/dist/unplugin/rsbuild.d.ts.map +1 -1
  463. package/dist/unplugin/rsbuild.js +15 -11
  464. package/dist/unplugin/rsbuild.js.map +1 -1
  465. package/dist/unplugin/rspack.d.ts +5 -2
  466. package/dist/unplugin/rspack.d.ts.map +1 -1
  467. package/dist/unplugin/rspack.js +5 -1
  468. package/dist/unplugin/rspack.js.map +1 -1
  469. package/dist/unplugin/transform.d.ts +30 -27
  470. package/dist/unplugin/transform.d.ts.map +1 -1
  471. package/dist/unplugin/transform.js +433 -620
  472. package/dist/unplugin/transform.js.map +1 -1
  473. package/dist/unplugin/types.d.ts +189 -184
  474. package/dist/unplugin/types.d.ts.map +1 -1
  475. package/dist/unplugin/types.js +22 -18
  476. package/dist/unplugin/types.js.map +1 -1
  477. package/dist/unplugin/virtual.d.ts +11 -8
  478. package/dist/unplugin/virtual.d.ts.map +1 -1
  479. package/dist/unplugin/virtual.js +65 -83
  480. package/dist/unplugin/virtual.js.map +1 -1
  481. package/dist/unplugin/vite.d.ts +5 -2
  482. package/dist/unplugin/vite.d.ts.map +1 -1
  483. package/dist/unplugin/vite.js +5 -1
  484. package/dist/unplugin/vite.js.map +1 -1
  485. package/dist/unplugin/webpack.d.ts +5 -2
  486. package/dist/unplugin/webpack.d.ts.map +1 -1
  487. package/dist/unplugin/webpack.js +5 -1
  488. package/dist/unplugin/webpack.js.map +1 -1
  489. package/package.json +23 -14
  490. package/dist/cli/index.d.ts.map +0 -1
  491. package/dist/core/extract/types.js.map +0 -1
  492. package/dist/core/types.js.map +0 -1
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js.map +0 -1
@@ -1,30 +1,23 @@
1
- export function slowPipe(ir, g) {
2
- // zod's handlePipeResult: run `in`; if it produced ANY issue the pipe aborts —
3
- // `out` does NOT run, and (inside a union) the option is flagged aborted so it
4
- // loses union pruning even when `in`'s only issue is a non-aborting code (e.g.
5
- // a `custom` refine). When the pipe is not a union option, `g.aborted` is
6
- // undefined and only the short-circuit applies. Capturing the issue count
7
- // before `in` detects whether `in` added issues regardless of what they are.
8
- const lenVar = g.temp("pl");
9
- const inCode = g.visit(ir.in);
10
- // Forward `aborted` into `out` too: zod returns the `out` payload directly, so
11
- // an abort-bearing `out` (a nested pipe/codec/transform whose own step fails)
12
- // must propagate its abort up to this option.
13
- const outCode = g.visit(ir.out, { input: g.output, output: g.output, aborted: g.aborted });
14
- const abortBranch = g.aborted ? `else{${g.aborted}=true;}` : "";
15
- return `var ${lenVar}=${g.issues}.length;\n${inCode}\nif(${g.issues}.length===${lenVar}){${outCode}}${abortBranch}\n`;
1
+ //#region src/core/codegen/schemas/pipe.ts
2
+ function slowPipe(ir, g) {
3
+ const lenVar = g.temp("pl");
4
+ const inCode = g.visit(ir.in);
5
+ const outCode = g.visit(ir.out, {
6
+ input: g.output,
7
+ output: g.output,
8
+ aborted: g.aborted
9
+ });
10
+ const abortBranch = g.aborted ? `else{${g.aborted}=true;}` : "";
11
+ return `var ${lenVar}=${g.issues}.length;\n${inCode}\nif(${g.issues}.length===${lenVar}){${outCode}}${abortBranch}\n`;
16
12
  }
17
- export function fastPipe(ir, g) {
18
- // Only eligible if `out` is the same as `in` (non-transform pipe)
19
- // We check `in` only — if the pipe has a transform, `out` would be a fallback
20
- const inCheck = g.visit(ir.in);
21
- if (inCheck === null)
22
- return null;
23
- // Check if out schema is eligible (non-fallback)
24
- const outCheck = g.visit(ir.out);
25
- if (outCheck === null)
26
- return null;
27
- // Both in and out must pass
28
- return inCheck === "true" ? outCheck : outCheck === "true" ? inCheck : `${inCheck}&&${outCheck}`;
13
+ function fastPipe(ir, g) {
14
+ const inCheck = g.visit(ir.in);
15
+ if (inCheck === null) return null;
16
+ const outCheck = g.visit(ir.out);
17
+ if (outCheck === null) return null;
18
+ return inCheck === "true" ? outCheck : outCheck === "true" ? inCheck : `${inCheck}&&${outCheck}`;
29
19
  }
20
+ //#endregion
21
+ export { fastPipe, slowPipe };
22
+
30
23
  //# sourceMappingURL=pipe.js.map
@@ -1 +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,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9B,+EAA+E;IAC/E,8EAA8E;IAC9E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,aAAa,MAAM,QAAQ,CAAC,CAAC,MAAM,aAAa,MAAM,KAAK,OAAO,IAAI,WAAW,IAAI,CAAC;AACxH,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"}
1
+ {"version":3,"file":"pipe.js","names":[],"sources":["../../../../src/core/codegen/schemas/pipe.ts"],"sourcesContent":["import type { PipeIR, SchemaIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\n\nexport function slowPipe(ir: SchemaIR & { type: \"pipe\" }, g: SlowGen): string {\n // zod's handlePipeResult: run `in`; if it produced ANY issue the pipe aborts —\n // `out` does NOT run, and (inside a union) the option is flagged aborted so it\n // loses union pruning even when `in`'s only issue is a non-aborting code (e.g.\n // a `custom` refine). When the pipe is not a union option, `g.aborted` is\n // undefined and only the short-circuit applies. Capturing the issue count\n // before `in` detects whether `in` added issues regardless of what they are.\n const lenVar = g.temp(\"pl\");\n const inCode = g.visit(ir.in);\n // Forward `aborted` into `out` too: zod returns the `out` payload directly, so\n // an abort-bearing `out` (a nested pipe/codec/transform whose own step fails)\n // must propagate its abort up to this option.\n const outCode = g.visit(ir.out, { input: g.output, output: g.output, aborted: g.aborted });\n const abortBranch = g.aborted ? `else{${g.aborted}=true;}` : \"\";\n return `var ${lenVar}=${g.issues}.length;\\n${inCode}\\nif(${g.issues}.length===${lenVar}){${outCode}}${abortBranch}\\n`;\n}\n\nexport function fastPipe(ir: PipeIR, g: FastGen): string | null {\n // Only eligible if `out` is the same as `in` (non-transform pipe)\n // We check `in` only — if the pipe has a transform, `out` would be a fallback\n const inCheck = g.visit(ir.in);\n if (inCheck === null) return null;\n // Check if out schema is eligible (non-fallback)\n const outCheck = g.visit(ir.out);\n if (outCheck === null) return null;\n // Both in and out must pass\n return inCheck === \"true\" ? outCheck : outCheck === \"true\" ? inCheck : `${inCheck}&&${outCheck}`;\n}\n"],"mappings":";AAGA,SAAgB,SAAS,IAAiC,GAAoB;CAO5E,MAAM,SAAS,EAAE,KAAK,IAAI;CAC1B,MAAM,SAAS,EAAE,MAAM,GAAG,EAAE;CAI5B,MAAM,UAAU,EAAE,MAAM,GAAG,KAAK;EAAE,OAAO,EAAE;EAAQ,QAAQ,EAAE;EAAQ,SAAS,EAAE;CAAQ,CAAC;CACzF,MAAM,cAAc,EAAE,UAAU,QAAQ,EAAE,QAAQ,WAAW;CAC7D,OAAO,OAAO,OAAO,GAAG,EAAE,OAAO,YAAY,OAAO,OAAO,EAAE,OAAO,YAAY,OAAO,IAAI,QAAQ,GAAG,YAAY;AACpH;AAEA,SAAgB,SAAS,IAAY,GAA2B;CAG9D,MAAM,UAAU,EAAE,MAAM,GAAG,EAAE;CAC7B,IAAI,YAAY,MAAM,OAAO;CAE7B,MAAM,WAAW,EAAE,MAAM,GAAG,GAAG;CAC/B,IAAI,aAAa,MAAM,OAAO;CAE9B,OAAO,YAAY,SAAS,WAAW,aAAa,SAAS,UAAU,GAAG,QAAQ,IAAI;AACxF"}
@@ -1,7 +1,10 @@
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";
1
+ import { ReadonlyIR, SchemaIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/readonly.d.ts
4
+ declare function slowReadonly(ir: SchemaIR & {
5
+ type: "readonly";
5
6
  }, g: SlowGen): string;
6
- export declare function fastReadonly(ir: ReadonlyIR, g: FastGen): string | null;
7
+ declare function fastReadonly(ir: ReadonlyIR, g: FastGen): string | null;
8
+ //#endregion
9
+ export { fastReadonly, slowReadonly };
7
10
  //# sourceMappingURL=readonly.d.ts.map
@@ -1 +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,CAGpF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtE"}
1
+ {"version":3,"file":"readonly.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/readonly.ts"],"mappings":";;;iBAGgB,aAAa,IAAI;EAAa;GAAoB,GAAG;iBAKrD,aAAa,IAAI,YAAY,GAAG"}
@@ -1,8 +1,11 @@
1
- export function slowReadonly(ir, g) {
2
- // Pass-through wrapper: forward the union abort flag (see slowOptional).
3
- return g.visit(ir.inner, { aborted: g.aborted });
1
+ //#region src/core/codegen/schemas/readonly.ts
2
+ function slowReadonly(ir, g) {
3
+ return g.visit(ir.inner, { aborted: g.aborted });
4
4
  }
5
- export function fastReadonly(ir, g) {
6
- return g.visit(ir.inner);
5
+ function fastReadonly(ir, g) {
6
+ return g.visit(ir.inner);
7
7
  }
8
+ //#endregion
9
+ export { fastReadonly, slowReadonly };
10
+
8
11
  //# sourceMappingURL=readonly.js.map
@@ -1 +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,yEAAyE;IACzE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAc,EAAE,CAAU;IACrD,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"readonly.js","names":[],"sources":["../../../../src/core/codegen/schemas/readonly.ts"],"sourcesContent":["import type { ReadonlyIR, SchemaIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\n\nexport function slowReadonly(ir: SchemaIR & { type: \"readonly\" }, g: SlowGen): string {\n // Pass-through wrapper: forward the union abort flag (see slowOptional).\n return g.visit(ir.inner, { aborted: g.aborted });\n}\n\nexport function fastReadonly(ir: ReadonlyIR, g: FastGen): string | null {\n return g.visit(ir.inner);\n}\n"],"mappings":";AAGA,SAAgB,aAAa,IAAqC,GAAoB;CAEpF,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AACjD;AAEA,SAAgB,aAAa,IAAgB,GAA2B;CACtE,OAAO,EAAE,MAAM,GAAG,KAAK;AACzB"}
@@ -1,7 +1,10 @@
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";
1
+ import { RecordIR, SchemaIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/record.d.ts
4
+ declare function slowRecord(ir: SchemaIR & {
5
+ type: "record";
5
6
  }, g: SlowGen): string;
6
- export declare function fastRecord(ir: RecordIR, g: FastGen): string | null;
7
+ declare function fastRecord(ir: RecordIR, g: FastGen): string | null;
8
+ //#endregion
9
+ export { fastRecord, slowRecord };
7
10
  //# sourceMappingURL=record.d.ts.map
@@ -1 +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;AAMtD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA2ChF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA0ClE"}
1
+ {"version":3,"file":"record.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/record.ts"],"mappings":";;;iBAOgB,WAAW,IAAI;EAAa;GAAkB,GAAG;iBA6CjD,WAAW,IAAI,UAAU,GAAG"}
@@ -2,82 +2,69 @@ import { declareFastTemps, emitRuntimeHelper, extendPath, hasMutation } from "..
2
2
  import { emit } from "../emit.js";
3
3
  import { invalidType } from "../emit-issue.js";
4
4
  import { ZC_FZ_DECL, ZC_HOP_DECL } from "../issue-decls.js";
5
- export function slowRecord(ir, g) {
6
- let code = emit `
5
+ //#region src/core/codegen/schemas/record.ts
6
+ function slowRecord(ir, g) {
7
+ let code = emit`
7
8
  if(typeof ${g.input}!=="object"||${g.input}===null||Array.isArray(${g.input})){
8
9
  ${invalidType(g, "record")}
9
10
  }else{`;
10
- if (hasMutation(ir.valueType)) {
11
- code += `${g.output}={...${g.input}};`;
12
- }
13
- const keyVar = g.temp("rkey");
14
- const keyIssuesVar = g.temp("rki");
15
- const keyPath = extendPath(g.path, keyVar);
16
- const valExpr = `${g.input}[${keyVar}]`;
17
- // for-in + hasOwnProperty guard instead of Object.keys(): identical
18
- // own-enumerable string-key set and iteration order, no keys-array
19
- // allocation. When the value type mutates (coerce/default/.trim()) the clone
20
- // above has already replaced g.input, so this iterates the clone exactly as
21
- // the Object.keys form did — the key set is stable (values change, keys
22
- // don't). Records whose values mutate run this path eagerly, so they get the
23
- // same speedup the fast path does.
24
- const hop = emitRuntimeHelper(g.ctx, "__zcHop", ZC_HOP_DECL);
25
- // The key is validated at a RELATIVE path and its issues are finalized before
26
- // being nested, mirroring zod: `issues: keyResult.issues.map(finalizeIssue)`
27
- // over a payload zod ran fresh. Nested issues never reach the top-level
28
- // finalization loop (it walks only the outer array), so an unfinalized nest
29
- // leaked absolute paths and the raw `input` into the reported error.
30
- const fz = emitRuntimeHelper(g.ctx, "__zcFz", ZC_FZ_DECL);
31
- code += emit `
11
+ if (hasMutation(ir.valueType)) code += `${g.output}={...${g.input}};`;
12
+ const keyVar = g.temp("rkey");
13
+ const keyIssuesVar = g.temp("rki");
14
+ const keyPath = extendPath(g.path, keyVar);
15
+ const valExpr = `${g.input}[${keyVar}]`;
16
+ const hop = emitRuntimeHelper(g.ctx, "__zcHop", ZC_HOP_DECL);
17
+ const fz = emitRuntimeHelper(g.ctx, "__zcFz", ZC_FZ_DECL);
18
+ code += emit`
32
19
  for(var ${keyVar} in ${g.input}){
33
20
  if(!${hop}.call(${g.input},${keyVar}))continue;
34
21
  var ${keyIssuesVar}=[];
35
- ${g.visit(ir.keyType, { input: keyVar, output: keyVar, path: "[]", issues: keyIssuesVar })}
22
+ ${g.visit(ir.keyType, {
23
+ input: keyVar,
24
+ output: keyVar,
25
+ path: "[]",
26
+ issues: keyIssuesVar
27
+ })}
36
28
  if(${keyIssuesVar}.length>0){
37
- ${g.issues}.push({code:"invalid_key",origin:"record"${g.typeMsg === undefined ? "" : `,message:${JSON.stringify(g.typeMsg)}`},input:${keyVar},path:${keyPath},issues:${fz}(${keyIssuesVar})});
29
+ ${g.issues}.push({code:"invalid_key",origin:"record"${g.typeMsg === void 0 ? "" : `,message:${JSON.stringify(g.typeMsg)}`},input:${keyVar},path:${keyPath},issues:${fz}(${keyIssuesVar})});
38
30
  }else{
39
- ${g.visit(ir.valueType, { input: valExpr, output: valExpr, path: keyPath })}
31
+ ${g.visit(ir.valueType, {
32
+ input: valExpr,
33
+ output: valExpr,
34
+ path: keyPath
35
+ })}
40
36
  }
41
37
  }
42
38
  }`;
43
- return `${code}\n`;
39
+ return `${code}\n`;
44
40
  }
45
- export function fastRecord(ir, g) {
46
- const x = g.input;
47
- const parts = [`typeof ${x}==="object"`, `${x}!==null`, `!Array.isArray(${x})`];
48
- // Object.keys only yields strings — a plain unconstrained string key schema
49
- // is always satisfied, so skip generating its check entirely.
50
- const plainStringKey = ir.keyType.type === "string" && ir.keyType.checks.length === 0 && ir.keyType.coerce !== true;
51
- const kv = g.temp("rk");
52
- const vv = g.temp("rv");
53
- // Key + value checks share one fresh scope — they live in the same emitted
54
- // helper function, size-gated independently of the caller.
55
- const body = g.scoped(kv);
56
- const keyCheck = plainStringKey ? "true" : body.visit(ir.keyType, { input: kv });
57
- // Hoist o[k] into a loop variable: computed-key lookups don't get V8's load
58
- // elimination across check boundaries, so each repeated o[k] would re-walk
59
- // the (often dictionary-mode) object.
60
- const valCheck = body.visit(ir.valueType, { input: vv });
61
- if (keyCheck === null || valCheck === null)
62
- return null;
63
- const conditions = [];
64
- if (keyCheck !== "true")
65
- conditions.push(keyCheck);
66
- if (valCheck !== "true")
67
- conditions.push(valCheck);
68
- if (conditions.length > 0) {
69
- const helperName = g.temp("rf");
70
- const valAssign = valCheck !== "true" ? `${vv}=o[${kv}];` : "";
71
- // for-in (no Object.keys array allocation) + hasOwnProperty guard. The
72
- // guard restricts iteration to own enumerable string keys — the exact set
73
- // Object.keys/the slow path produce — so inherited enumerable props can't
74
- // make the fast check disagree with the deferred slow walk. Measured 2.9x
75
- // (5 keys) to 5.8x (20 keys) faster than the Object.keys form; the hoisted
76
- // __zcHop.call inlines, making the guard ~free vs an unguarded for-in.
77
- const hop = emitRuntimeHelper(g.ctx, "__zcHop", ZC_HOP_DECL);
78
- g.ctx.preamble.push(`function ${helperName}(o){${declareFastTemps(body.scope)}var ${kv},${vv};for(${kv} in o){if(${hop}.call(o,${kv})){${valAssign}if(!(${conditions.join("&&")})){return false;}}}return true;}`);
79
- parts.push(`${helperName}(${x})`);
80
- }
81
- return parts.join("&&");
41
+ function fastRecord(ir, g) {
42
+ const x = g.input;
43
+ const parts = [
44
+ `typeof ${x}==="object"`,
45
+ `${x}!==null`,
46
+ `!Array.isArray(${x})`
47
+ ];
48
+ const plainStringKey = ir.keyType.type === "string" && ir.keyType.checks.length === 0 && ir.keyType.coerce !== true;
49
+ const kv = g.temp("rk");
50
+ const vv = g.temp("rv");
51
+ const body = g.scoped(kv);
52
+ const keyCheck = plainStringKey ? "true" : body.visit(ir.keyType, { input: kv });
53
+ const valCheck = body.visit(ir.valueType, { input: vv });
54
+ if (keyCheck === null || valCheck === null) return null;
55
+ const conditions = [];
56
+ if (keyCheck !== "true") conditions.push(keyCheck);
57
+ if (valCheck !== "true") conditions.push(valCheck);
58
+ if (conditions.length > 0) {
59
+ const helperName = g.temp("rf");
60
+ const valAssign = valCheck !== "true" ? `${vv}=o[${kv}];` : "";
61
+ const hop = emitRuntimeHelper(g.ctx, "__zcHop", ZC_HOP_DECL);
62
+ g.ctx.preamble.push(`function ${helperName}(o){${declareFastTemps(body.scope)}var ${kv},${vv};for(${kv} in o){if(${hop}.call(o,${kv})){${valAssign}if(!(${conditions.join("&&")})){return false;}}}return true;}`);
63
+ parts.push(`${helperName}(${x})`);
64
+ }
65
+ return parts.join("&&");
82
66
  }
67
+ //#endregion
68
+ export { fastRecord, slowRecord };
69
+
83
70
  //# sourceMappingURL=record.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","names":[],"sources":["../../../../src/core/codegen/schemas/record.ts"],"sourcesContent":["import type { RecordIR, SchemaIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { declareFastTemps, emitRuntimeHelper, extendPath, hasMutation } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidType } from \"../emit-issue.js\";\nimport { ZC_FZ_DECL, ZC_HOP_DECL } from \"../issue-decls.js\";\n\nexport function slowRecord(ir: SchemaIR & { type: \"record\" }, g: SlowGen): string {\n let code = emit`\n if(typeof ${g.input}!==\"object\"||${g.input}===null||Array.isArray(${g.input})){\n ${invalidType(g, \"record\")}\n }else{`;\n\n if (hasMutation(ir.valueType)) {\n code += `${g.output}={...${g.input}};`;\n }\n\n const keyVar = g.temp(\"rkey\");\n const keyIssuesVar = g.temp(\"rki\");\n const keyPath = extendPath(g.path, keyVar);\n const valExpr = `${g.input}[${keyVar}]`;\n // for-in + hasOwnProperty guard instead of Object.keys(): identical\n // own-enumerable string-key set and iteration order, no keys-array\n // allocation. When the value type mutates (coerce/default/.trim()) the clone\n // above has already replaced g.input, so this iterates the clone exactly as\n // the Object.keys form did — the key set is stable (values change, keys\n // don't). Records whose values mutate run this path eagerly, so they get the\n // same speedup the fast path does.\n const hop = emitRuntimeHelper(g.ctx, \"__zcHop\", ZC_HOP_DECL);\n\n // The key is validated at a RELATIVE path and its issues are finalized before\n // being nested, mirroring zod: `issues: keyResult.issues.map(finalizeIssue)`\n // over a payload zod ran fresh. Nested issues never reach the top-level\n // finalization loop (it walks only the outer array), so an unfinalized nest\n // leaked absolute paths and the raw `input` into the reported error.\n const fz = emitRuntimeHelper(g.ctx, \"__zcFz\", ZC_FZ_DECL);\n\n code += emit`\n for(var ${keyVar} in ${g.input}){\n if(!${hop}.call(${g.input},${keyVar}))continue;\n var ${keyIssuesVar}=[];\n ${g.visit(ir.keyType, { input: keyVar, output: keyVar, path: \"[]\", issues: keyIssuesVar })}\n if(${keyIssuesVar}.length>0){\n ${g.issues}.push({code:\"invalid_key\",origin:\"record\"${g.typeMsg === undefined ? \"\" : `,message:${JSON.stringify(g.typeMsg)}`},input:${keyVar},path:${keyPath},issues:${fz}(${keyIssuesVar})});\n }else{\n ${g.visit(ir.valueType, { input: valExpr, output: valExpr, path: keyPath })}\n }\n }\n }`;\n return `${code}\\n`;\n}\n\nexport function fastRecord(ir: RecordIR, g: FastGen): string | null {\n const x = g.input;\n const parts: string[] = [`typeof ${x}===\"object\"`, `${x}!==null`, `!Array.isArray(${x})`];\n\n // Object.keys only yields strings — a plain unconstrained string key schema\n // is always satisfied, so skip generating its check entirely.\n const plainStringKey =\n ir.keyType.type === \"string\" && ir.keyType.checks.length === 0 && ir.keyType.coerce !== true;\n\n const kv = g.temp(\"rk\");\n const vv = g.temp(\"rv\");\n // Key + value checks share one fresh scope — they live in the same emitted\n // helper function, size-gated independently of the caller.\n const body = g.scoped(kv);\n const keyCheck = plainStringKey ? \"true\" : body.visit(ir.keyType, { input: kv });\n // Hoist o[k] into a loop variable: computed-key lookups don't get V8's load\n // elimination across check boundaries, so each repeated o[k] would re-walk\n // the (often dictionary-mode) object.\n const valCheck = body.visit(ir.valueType, { input: vv });\n if (keyCheck === null || valCheck === null) return null;\n\n const conditions: string[] = [];\n if (keyCheck !== \"true\") conditions.push(keyCheck);\n if (valCheck !== \"true\") conditions.push(valCheck);\n\n if (conditions.length > 0) {\n const helperName = g.temp(\"rf\");\n const valAssign = valCheck !== \"true\" ? `${vv}=o[${kv}];` : \"\";\n // for-in (no Object.keys array allocation) + hasOwnProperty guard. The\n // guard restricts iteration to own enumerable string keys — the exact set\n // Object.keys/the slow path produce — so inherited enumerable props can't\n // make the fast check disagree with the deferred slow walk. Measured 2.9x\n // (5 keys) to 5.8x (20 keys) faster than the Object.keys form; the hoisted\n // __zcHop.call inlines, making the guard ~free vs an unguarded for-in.\n const hop = emitRuntimeHelper(g.ctx, \"__zcHop\", ZC_HOP_DECL);\n g.ctx.preamble.push(\n `function ${helperName}(o){${declareFastTemps(body.scope)}var ${kv},${vv};for(${kv} in o){if(${hop}.call(o,${kv})){${valAssign}if(!(${conditions.join(\"&&\")})){return false;}}}return true;}`,\n );\n parts.push(`${helperName}(${x})`);\n }\n\n return parts.join(\"&&\");\n}\n"],"mappings":";;;;;AAOA,SAAgB,WAAW,IAAmC,GAAoB;CAChF,IAAI,OAAO,IAAI;gBACD,EAAE,MAAM,eAAe,EAAE,MAAM,yBAAyB,EAAE,MAAM;QACxE,YAAY,GAAG,QAAQ,EAAE;;CAG/B,IAAI,YAAY,GAAG,SAAS,GAC1B,QAAQ,GAAG,EAAE,OAAO,OAAO,EAAE,MAAM;CAGrC,MAAM,SAAS,EAAE,KAAK,MAAM;CAC5B,MAAM,eAAe,EAAE,KAAK,KAAK;CACjC,MAAM,UAAU,WAAW,EAAE,MAAM,MAAM;CACzC,MAAM,UAAU,GAAG,EAAE,MAAM,GAAG,OAAO;CAQrC,MAAM,MAAM,kBAAkB,EAAE,KAAK,WAAW,WAAW;CAO3D,MAAM,KAAK,kBAAkB,EAAE,KAAK,UAAU,UAAU;CAExD,QAAQ,IAAI;cACA,OAAO,MAAM,EAAE,MAAM;YACvB,IAAI,QAAQ,EAAE,MAAM,GAAG,OAAO;YAC9B,aAAa;QACjB,EAAE,MAAM,GAAG,SAAS;EAAE,OAAO;EAAQ,QAAQ;EAAQ,MAAM;EAAM,QAAQ;CAAa,CAAC,EAAE;WACtF,aAAa;UACd,EAAE,OAAO,2CAA2C,EAAE,YAAY,KAAA,IAAY,KAAK,YAAY,KAAK,UAAU,EAAE,OAAO,IAAI,SAAS,OAAO,QAAQ,QAAQ,UAAU,GAAG,GAAG,aAAa;;UAExL,EAAE,MAAM,GAAG,WAAW;EAAE,OAAO;EAAS,QAAQ;EAAS,MAAM;CAAQ,CAAC,EAAE;;;;CAIlF,OAAO,GAAG,KAAK;AACjB;AAEA,SAAgB,WAAW,IAAc,GAA2B;CAClE,MAAM,IAAI,EAAE;CACZ,MAAM,QAAkB;EAAC,UAAU,EAAE;EAAc,GAAG,EAAE;EAAU,kBAAkB,EAAE;CAAE;CAIxF,MAAM,iBACJ,GAAG,QAAQ,SAAS,YAAY,GAAG,QAAQ,OAAO,WAAW,KAAK,GAAG,QAAQ,WAAW;CAE1F,MAAM,KAAK,EAAE,KAAK,IAAI;CACtB,MAAM,KAAK,EAAE,KAAK,IAAI;CAGtB,MAAM,OAAO,EAAE,OAAO,EAAE;CACxB,MAAM,WAAW,iBAAiB,SAAS,KAAK,MAAM,GAAG,SAAS,EAAE,OAAO,GAAG,CAAC;CAI/E,MAAM,WAAW,KAAK,MAAM,GAAG,WAAW,EAAE,OAAO,GAAG,CAAC;CACvD,IAAI,aAAa,QAAQ,aAAa,MAAM,OAAO;CAEnD,MAAM,aAAuB,CAAC;CAC9B,IAAI,aAAa,QAAQ,WAAW,KAAK,QAAQ;CACjD,IAAI,aAAa,QAAQ,WAAW,KAAK,QAAQ;CAEjD,IAAI,WAAW,SAAS,GAAG;EACzB,MAAM,aAAa,EAAE,KAAK,IAAI;EAC9B,MAAM,YAAY,aAAa,SAAS,GAAG,GAAG,KAAK,GAAG,MAAM;EAO5D,MAAM,MAAM,kBAAkB,EAAE,KAAK,WAAW,WAAW;EAC3D,EAAE,IAAI,SAAS,KACb,YAAY,WAAW,MAAM,iBAAiB,KAAK,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,YAAY,IAAI,UAAU,GAAG,KAAK,UAAU,OAAO,WAAW,KAAK,IAAI,EAAE,iCAC9J;EACA,MAAM,KAAK,GAAG,WAAW,GAAG,EAAE,EAAE;CAClC;CAEA,OAAO,MAAM,KAAK,IAAI;AACxB"}
@@ -1,12 +1,15 @@
1
- import type { RecursionTargetIR, 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;
1
+ import { RecursionTargetIR, RecursiveRefIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/recursive-ref.d.ts
4
+ declare function slowRecursiveRef(ir: RecursiveRefIR, g: SlowGen): string;
5
+ declare function fastRecursiveRef(ir: RecursiveRefIR, g: FastGen): string | null;
5
6
  /**
6
7
  * In-place site of a non-root recursion target (the recursive sub-schema where
7
8
  * it sits in the larger tree). Validating it = calling its hosted validator,
8
9
  * exactly like a back-edge, so both reuse the recursion-call emitters.
9
10
  */
10
- export declare function slowRecursionTarget(ir: RecursionTargetIR, g: SlowGen): string;
11
- export declare function fastRecursionTarget(ir: RecursionTargetIR, g: FastGen): string | null;
11
+ declare function slowRecursionTarget(ir: RecursionTargetIR, g: SlowGen): string;
12
+ declare function fastRecursionTarget(ir: RecursionTargetIR, g: FastGen): string | null;
13
+ //#endregion
14
+ export { fastRecursionTarget, fastRecursiveRef, slowRecursionTarget, slowRecursiveRef };
12
15
  //# sourceMappingURL=recursive-ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-ref.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/recursive-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAkB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAyDtE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEpF"}
1
+ {"version":3,"file":"recursive-ref.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/recursive-ref.ts"],"mappings":";;;iBA0DgB,iBAAiB,IAAI,gBAAgB,GAAG;iBAIxC,iBAAiB,IAAI,gBAAgB,GAAG;;;;;;iBASxC,oBAAoB,IAAI,mBAAmB,GAAG;iBAI9C,oBAAoB,IAAI,mBAAmB,GAAG"}
@@ -1,25 +1,26 @@
1
1
  import { emit } from "../emit.js";
2
+ //#region src/core/codegen/schemas/recursive-ref.ts
2
3
  /**
3
- * Resolve the slow (safeParse-shaped) validator name for a recursion target.
4
- * refId 0 / no table ⇒ the root, which is the schema's own `safeParse_<name>`.
5
- */
4
+ * Resolve the slow (safeParse-shaped) validator name for a recursion target.
5
+ * refId 0 / no table ⇒ the root, which is the schema's own `safeParse_<name>`.
6
+ */
6
7
  function slowTargetName(ctx, refId) {
7
- const t = ctx.recTargets?.get(refId ?? 0);
8
- return t && !t.isRoot ? t.slowName : ctx.fnName;
8
+ const t = ctx.recTargets?.get(refId ?? 0);
9
+ return t && !t.isRoot ? t.slowName : ctx.fnName;
9
10
  }
10
11
  /**
11
- * Emit a recursion call on the slow (issue-collecting) path: invoke the hosted
12
- * validator for the target shape, then either merge its issues with the current
13
- * path prefix or write back its (possibly mutated) data. Shared by both the
14
- * back-edge (`recursiveRef`) and the in-place target site (`recursionTarget`).
15
- */
12
+ * Emit a recursion call on the slow (issue-collecting) path: invoke the hosted
13
+ * validator for the target shape, then either merge its issues with the current
14
+ * path prefix or write back its (possibly mutated) data. Shared by both the
15
+ * back-edge (`recursiveRef`) and the in-place target site (`recursionTarget`).
16
+ */
16
17
  function slowRecursionCall(refId, g) {
17
- const fn = slowTargetName(g.ctx, refId);
18
- const n = g.ctx.counter++;
19
- const rVar = `__rec_r${n}`;
20
- const iVar = `__rec_i${n}`;
21
- const jVar = `__rec_j${n}`;
22
- return `${emit `
18
+ const fn = slowTargetName(g.ctx, refId);
19
+ const n = g.ctx.counter++;
20
+ const rVar = `__rec_r${n}`;
21
+ const iVar = `__rec_i${n}`;
22
+ const jVar = `__rec_j${n}`;
23
+ return `${emit`
23
24
  var ${rVar}=${fn}(${g.input});
24
25
  if(!${rVar}.success){
25
26
  var ${iVar}=${rVar}.error.issues;
@@ -33,39 +34,38 @@ function slowRecursionCall(refId, g) {
33
34
  `}\n`;
34
35
  }
35
36
  /**
36
- * Resolve the fast (boolean) validator name for a recursion target, allocating
37
- * the root's lazily (mirrors the historical single-target behavior). Returns a
38
- * call expression on the target's hosted fast-check.
39
- */
37
+ * Resolve the fast (boolean) validator name for a recursion target, allocating
38
+ * the root's lazily (mirrors the historical single-target behavior). Returns a
39
+ * call expression on the target's hosted fast-check.
40
+ */
40
41
  function fastRecursionCall(refId, g) {
41
- const ctx = g.ctx;
42
- const t = ctx.recTargets?.get(refId ?? 0);
43
- if (!t || t.isRoot) {
44
- // Root recursion (refId 0, or a standalone generator call with no table):
45
- // the root fast expression is hosted under this name by generateValidator.
46
- ctx.recFastName ??= `__fcr_${ctx.counter++}`;
47
- if (t)
48
- t.fastName = ctx.recFastName;
49
- return `${ctx.recFastName}(${g.input})`;
50
- }
51
- // Non-root target: name pre-allocated by generateValidator before the walk.
52
- return `${t.fastName}(${g.input})`;
42
+ const ctx = g.ctx;
43
+ const t = ctx.recTargets?.get(refId ?? 0);
44
+ if (!t || t.isRoot) {
45
+ ctx.recFastName ??= `__fcr_${ctx.counter++}`;
46
+ if (t) t.fastName = ctx.recFastName;
47
+ return `${ctx.recFastName}(${g.input})`;
48
+ }
49
+ return `${t.fastName}(${g.input})`;
53
50
  }
54
- export function slowRecursiveRef(ir, g) {
55
- return slowRecursionCall(ir.refId, g);
51
+ function slowRecursiveRef(ir, g) {
52
+ return slowRecursionCall(ir.refId, g);
56
53
  }
57
- export function fastRecursiveRef(ir, g) {
58
- return fastRecursionCall(ir.refId, g);
54
+ function fastRecursiveRef(ir, g) {
55
+ return fastRecursionCall(ir.refId, g);
59
56
  }
60
57
  /**
61
- * In-place site of a non-root recursion target (the recursive sub-schema where
62
- * it sits in the larger tree). Validating it = calling its hosted validator,
63
- * exactly like a back-edge, so both reuse the recursion-call emitters.
64
- */
65
- export function slowRecursionTarget(ir, g) {
66
- return slowRecursionCall(ir.refId, g);
58
+ * In-place site of a non-root recursion target (the recursive sub-schema where
59
+ * it sits in the larger tree). Validating it = calling its hosted validator,
60
+ * exactly like a back-edge, so both reuse the recursion-call emitters.
61
+ */
62
+ function slowRecursionTarget(ir, g) {
63
+ return slowRecursionCall(ir.refId, g);
67
64
  }
68
- export function fastRecursionTarget(ir, g) {
69
- return fastRecursionCall(ir.refId, g);
65
+ function fastRecursionTarget(ir, g) {
66
+ return fastRecursionCall(ir.refId, g);
70
67
  }
68
+ //#endregion
69
+ export { fastRecursionTarget, fastRecursiveRef, slowRecursionTarget, slowRecursiveRef };
70
+
71
71
  //# sourceMappingURL=recursive-ref.js.map
@@ -1 +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;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAmB,EAAE,KAAyB;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAyB,EAAE,CAAU;IAC9D,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,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,EAAE,IAAI,CAAC,CAAC,KAAK;UACrB,IAAI;YACF,IAAI,IAAI,IAAI;gBACR,IAAI,MAAM,IAAI,IAAI,IAAI,WAAW,IAAI;UAC3C,CAAC,CAAC,MAAM,aAAa,IAAI,IAAI,IAAI;iBAC1B,CAAC,CAAC,IAAI,WAAW,IAAI,IAAI,IAAI;;;QAGtC,CAAC,CAAC,MAAM,IAAI,IAAI;;GAErB,IAAI,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAyB,EAAE,CAAU;IAC9D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IAClB,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACnB,0EAA0E;QAC1E,2EAA2E;QAC3E,GAAG,CAAC,WAAW,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;QACpC,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;IAC1C,CAAC;IACD,4EAA4E;IAC5E,OAAO,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAkB,EAAE,CAAU;IAC7D,OAAO,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAkB,EAAE,CAAU;IAC7D,OAAO,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAqB,EAAE,CAAU;IACnE,OAAO,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAqB,EAAE,CAAU;IACnE,OAAO,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"recursive-ref.js","names":[],"sources":["../../../../src/core/codegen/schemas/recursive-ref.ts"],"sourcesContent":["import type { RecursionTargetIR, RecursiveRefIR } from \"../../types.js\";\nimport type { CodeGenContext, FastGen, SlowGen } from \"../context.js\";\nimport { emit } from \"../emit.js\";\n\n/**\n * Resolve the slow (safeParse-shaped) validator name for a recursion target.\n * refId 0 / no table ⇒ the root, which is the schema's own `safeParse_<name>`.\n */\nfunction slowTargetName(ctx: CodeGenContext, refId: number | undefined): string {\n const t = ctx.recTargets?.get(refId ?? 0);\n return t && !t.isRoot ? t.slowName : ctx.fnName;\n}\n\n/**\n * Emit a recursion call on the slow (issue-collecting) path: invoke the hosted\n * validator for the target shape, then either merge its issues with the current\n * path prefix or write back its (possibly mutated) data. Shared by both the\n * back-edge (`recursiveRef`) and the in-place target site (`recursionTarget`).\n */\nfunction slowRecursionCall(refId: number | undefined, g: SlowGen): string {\n const fn = slowTargetName(g.ctx, refId);\n const n = g.ctx.counter++;\n const rVar = `__rec_r${n}`;\n const iVar = `__rec_i${n}`;\n const jVar = `__rec_j${n}`;\n return `${emit`\n var ${rVar}=${fn}(${g.input});\n if(!${rVar}.success){\n var ${iVar}=${rVar}.error.issues;\n for(var ${jVar}=0;${jVar}<${iVar}.length;${jVar}++){\n ${g.issues}.push({...${iVar}[${jVar}],\n path:${g.path}.concat(${iVar}[${jVar}].path)});\n }\n }else{\n ${g.output}=${rVar}.data;\n }\n `}\\n`;\n}\n\n/**\n * Resolve the fast (boolean) validator name for a recursion target, allocating\n * the root's lazily (mirrors the historical single-target behavior). Returns a\n * call expression on the target's hosted fast-check.\n */\nfunction fastRecursionCall(refId: number | undefined, g: FastGen): string {\n const ctx = g.ctx;\n const t = ctx.recTargets?.get(refId ?? 0);\n if (!t || t.isRoot) {\n // Root recursion (refId 0, or a standalone generator call with no table):\n // the root fast expression is hosted under this name by generateValidator.\n ctx.recFastName ??= `__fcr_${ctx.counter++}`;\n if (t) t.fastName = ctx.recFastName;\n return `${ctx.recFastName}(${g.input})`;\n }\n // Non-root target: name pre-allocated by generateValidator before the walk.\n return `${t.fastName}(${g.input})`;\n}\n\nexport function slowRecursiveRef(ir: RecursiveRefIR, g: SlowGen): string {\n return slowRecursionCall(ir.refId, g);\n}\n\nexport function fastRecursiveRef(ir: RecursiveRefIR, g: FastGen): string | null {\n return fastRecursionCall(ir.refId, g);\n}\n\n/**\n * In-place site of a non-root recursion target (the recursive sub-schema where\n * it sits in the larger tree). Validating it = calling its hosted validator,\n * exactly like a back-edge, so both reuse the recursion-call emitters.\n */\nexport function slowRecursionTarget(ir: RecursionTargetIR, g: SlowGen): string {\n return slowRecursionCall(ir.refId, g);\n}\n\nexport function fastRecursionTarget(ir: RecursionTargetIR, g: FastGen): string | null {\n return fastRecursionCall(ir.refId, g);\n}\n"],"mappings":";;;;;;AAQA,SAAS,eAAe,KAAqB,OAAmC;CAC9E,MAAM,IAAI,IAAI,YAAY,IAAI,SAAS,CAAC;CACxC,OAAO,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,IAAI;AAC3C;;;;;;;AAQA,SAAS,kBAAkB,OAA2B,GAAoB;CACxE,MAAM,KAAK,eAAe,EAAE,KAAK,KAAK;CACtC,MAAM,IAAI,EAAE,IAAI;CAChB,MAAM,OAAO,UAAU;CACvB,MAAM,OAAO,UAAU;CACvB,MAAM,OAAO,UAAU;CACvB,OAAO,GAAG,IAAI;UACN,KAAK,GAAG,GAAG,GAAG,EAAE,MAAM;UACtB,KAAK;YACH,KAAK,GAAG,KAAK;gBACT,KAAK,KAAK,KAAK,GAAG,KAAK,UAAU,KAAK;UAC5C,EAAE,OAAO,YAAY,KAAK,GAAG,KAAK;iBAC3B,EAAE,KAAK,UAAU,KAAK,GAAG,KAAK;;;QAGvC,EAAE,OAAO,GAAG,KAAK;;IAErB;AACJ;;;;;;AAOA,SAAS,kBAAkB,OAA2B,GAAoB;CACxE,MAAM,MAAM,EAAE;CACd,MAAM,IAAI,IAAI,YAAY,IAAI,SAAS,CAAC;CACxC,IAAI,CAAC,KAAK,EAAE,QAAQ;EAGlB,IAAI,gBAAgB,SAAS,IAAI;EACjC,IAAI,GAAG,EAAE,WAAW,IAAI;EACxB,OAAO,GAAG,IAAI,YAAY,GAAG,EAAE,MAAM;CACvC;CAEA,OAAO,GAAG,EAAE,SAAS,GAAG,EAAE,MAAM;AAClC;AAEA,SAAgB,iBAAiB,IAAoB,GAAoB;CACvE,OAAO,kBAAkB,GAAG,OAAO,CAAC;AACtC;AAEA,SAAgB,iBAAiB,IAAoB,GAA2B;CAC9E,OAAO,kBAAkB,GAAG,OAAO,CAAC;AACtC;;;;;;AAOA,SAAgB,oBAAoB,IAAuB,GAAoB;CAC7E,OAAO,kBAAkB,GAAG,OAAO,CAAC;AACtC;AAEA,SAAgB,oBAAoB,IAAuB,GAA2B;CACpF,OAAO,kBAAkB,GAAG,OAAO,CAAC;AACtC"}
@@ -1,7 +1,10 @@
1
- import type { SchemaIR, SetIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
3
- export declare function slowSet(ir: SchemaIR & {
4
- type: "set";
1
+ import { SchemaIR, SetIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/set.d.ts
4
+ declare function slowSet(ir: SchemaIR & {
5
+ type: "set";
5
6
  }, g: SlowGen): string;
6
- export declare function fastSet(ir: SetIR, g: FastGen): string | null;
7
+ declare function fastSet(ir: SetIR, g: FastGen): string | null;
8
+ //#endregion
9
+ export { fastSet, slowSet };
7
10
  //# sourceMappingURL=set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA4D1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAoC5D"}
1
+ {"version":3,"file":"set.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/set.ts"],"mappings":";;;iBAMgB,QAAQ,IAAI;EAAa;GAAe,GAAG;iBA8D3C,QAAQ,IAAI,OAAO,GAAG"}