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 +1 @@
1
- {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effect.js","names":[],"sources":["../../../../src/core/codegen/schemas/effect.ts"],"sourcesContent":["import type {\n RefineEffectCheckIR,\n SuperRefineEffectCheckIR,\n TransformEffectIR,\n} from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport {\n emitEffectCallable,\n emitRuntimeHelper,\n extendStaticPath,\n extendStaticPathIndex,\n} from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { ZC_SR_DECL, ZC_SR_OK_DECL, ZC_SR_RUN_DECL } from \"../issue-decls.js\";\n\n/**\n * Generate code for a TransformEffectIR node.\n * Validates the inner schema, then applies the transform function and writes back the result.\n */\nexport function slowEffect(ir: TransformEffectIR, g: SlowGen): string {\n const beforeVar = g.temp(\"ib\");\n const innerCode = g.visit(ir.inner);\n // A transform is `inner.transform(fn)` = a pipe(inner, transform): zod's\n // handlePipeResult aborts when `inner` produces any issue. Inside a union the\n // option must therefore count as aborted even if `inner`'s only issue is a\n // non-aborting `custom`/check-level code (mirrors slowPipe's abort branch).\n const abortBranch = g.aborted ? `else{${g.aborted}=true;}` : \"\";\n\n return `${emit`\n var ${beforeVar}=${g.issues}.length;\n ${innerCode}\n if(${g.issues}.length===${beforeVar}){\n ${g.output}=${emitEffectCallable(g.ctx, ir)}(${g.output});\n }${abortBranch}\n `}\\n`;\n}\n\n/**\n * Generate code for a RefineEffectCheckIR (inline refine function call).\n * Called from string/number/object check loops when a refine_effect is encountered.\n *\n * @param check - The refine effect check IR\n * @param expr - The expression to validate (may differ from g.input, e.g. objVar in object generators)\n * @param g - SlowGen context (provides path, issues)\n */\nexport function refineCheck(check: RefineEffectCheckIR, expr: string, g: SlowGen): string {\n // Custom issues are created by the refine check instance, so only the\n // refine's own message applies (never the schema-level error). With no\n // message baked in, __zcFin applies the locale default (\"Invalid input\").\n const messageProp =\n check.message === undefined ? \"\" : `,message:${JSON.stringify(check.message)}`;\n // `.refine(fn, { path })` reports against a member of the refined value, so\n // the configured segments extend this node's path.\n const path = (check.path ?? []).reduce<string>(\n (acc, segment) =>\n typeof segment === \"number\"\n ? extendStaticPathIndex(acc, segment)\n : extendStaticPath(acc, segment),\n g.path,\n );\n return emit`\n if(!${emitEffectCallable(g.ctx, check)}(${expr})){\n ${g.issues}.push({code:\"custom\",path:${path}${messageProp},input:${expr}});\n }`;\n}\n\n/**\n * Declare the shared invoker both superRefine helpers call. It is module-local\n * rather than an imported helper (lean mode declares it in the runtime module\n * beside them), so inline mode must place it in the preamble itself.\n */\nfunction emitSuperRefineRunner(ctx: SlowGen[\"ctx\"]): void {\n if (ctx.mode !== \"lean\" && !ctx.preamble.includes(ZC_SR_RUN_DECL)) {\n ctx.preamble.push(ZC_SR_RUN_DECL);\n }\n}\n\n/**\n * Fast-path test for a SuperRefineEffectCheckIR: a boolean term reporting that\n * the callback added no issue and left the value alone (see ZC_SR_OK_DECL).\n */\nexport function superRefineFastTest(\n check: SuperRefineEffectCheckIR,\n expr: string,\n g: FastGen,\n): string {\n emitSuperRefineRunner(g.ctx);\n const ok = emitRuntimeHelper(g.ctx, \"__zcSrOk\", ZC_SR_OK_DECL);\n return `${ok}(${emitEffectCallable(g.ctx, check)},${expr})`;\n}\n\n/**\n * Generate code for a SuperRefineEffectCheckIR: call the payload-taking\n * callback with a synthesized `{ value, issues }` and merge what it collected.\n * zod's own wrapper installs `addIssue` and normalizes the result, so the\n * issues are zod's — the helper only reprojects them onto this node's path and\n * strips the internal bookkeeping zod deletes before they become visible.\n *\n * The payload's `value` is writable public API, so it is written back to the\n * output slot the way an overwrite effect is. This walk is always the eager one\n * (the node reports as mutating, see hasMutation), so the write-back lands on\n * every parse that reaches it — not only on failures.\n */\nexport function superRefineCheck(\n check: SuperRefineEffectCheckIR,\n expr: string,\n g: SlowGen,\n): string {\n emitSuperRefineRunner(g.ctx);\n const helper = emitRuntimeHelper(g.ctx, \"__zcSr\", ZC_SR_DECL);\n const fn = emitEffectCallable(g.ctx, check);\n const p = g.temp(\"sp\");\n let code = `var ${p}=${helper}(${fn},${expr},${g.path},${g.issues});${g.output}=${p}.value;`;\n // Inside a union option, an aborting issue must mark the option aborted so\n // pruning matches zod (see ZC_SR_DECL); elsewhere the flag is unobserved.\n if (g.aborted) code += `if(${p}.aborted){${g.aborted}=true;}`;\n return code;\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,WAAW,IAAuB,GAAoB;CACpE,MAAM,YAAY,EAAE,KAAK,IAAI;CAC7B,MAAM,YAAY,EAAE,MAAM,GAAG,KAAK;CAKlC,MAAM,cAAc,EAAE,UAAU,QAAQ,EAAE,QAAQ,WAAW;CAE7D,OAAO,GAAG,IAAI;UACN,UAAU,GAAG,EAAE,OAAO;MAC1B,UAAU;SACP,EAAE,OAAO,YAAY,UAAU;QAChC,EAAE,OAAO,GAAG,mBAAmB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO;OACvD,YAAY;IACf;AACJ;;;;;;;;;AAUA,SAAgB,YAAY,OAA4B,MAAc,GAAoB;CAIxF,MAAM,cACJ,MAAM,YAAY,KAAA,IAAY,KAAK,YAAY,KAAK,UAAU,MAAM,OAAO;CAG7E,MAAM,QAAQ,MAAM,QAAQ,CAAC,EAAA,CAAG,QAC7B,KAAK,YACJ,OAAO,YAAY,WACf,sBAAsB,KAAK,OAAO,IAClC,iBAAiB,KAAK,OAAO,GACnC,EAAE,IACJ;CACA,OAAO,IAAI;UACH,mBAAmB,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK;QAC3C,EAAE,OAAO,4BAA4B,OAAO,YAAY,SAAS,KAAK;;AAE9E;;;;;;AAOA,SAAS,sBAAsB,KAA2B;CACxD,IAAI,IAAI,SAAS,UAAU,CAAC,IAAI,SAAS,SAAA,+GAAuB,GAC9D,IAAI,SAAS,KAAK,cAAc;AAEpC;;;;;AAMA,SAAgB,oBACd,OACA,MACA,GACQ;CACR,sBAAsB,EAAE,GAAG;CAE3B,OAAO,GADI,kBAAkB,EAAE,KAAK,YAAY,aACrC,EAAE,GAAG,mBAAmB,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK;AAC3D;;;;;;;;;;;;;AAcA,SAAgB,iBACd,OACA,MACA,GACQ;CACR,sBAAsB,EAAE,GAAG;CAC3B,MAAM,SAAS,kBAAkB,EAAE,KAAK,UAAU,UAAU;CAC5D,MAAM,KAAK,mBAAmB,EAAE,KAAK,KAAK;CAC1C,MAAM,IAAI,EAAE,KAAK,IAAI;CACrB,IAAI,OAAO,OAAO,EAAE,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE;CAGpF,IAAI,EAAE,SAAS,QAAQ,MAAM,EAAE,YAAY,EAAE,QAAQ;CACrD,OAAO;AACT"}
@@ -1,5 +1,8 @@
1
- import type { EnumIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
3
- export declare function slowEnum(ir: EnumIR, g: SlowGen): string;
4
- export declare function fastEnum(ir: EnumIR, g: FastGen): string;
1
+ import { EnumIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/enum.d.ts
4
+ declare function slowEnum(ir: EnumIR, g: SlowGen): string;
5
+ declare function fastEnum(ir: EnumIR, g: FastGen): string;
6
+ //#endregion
7
+ export { fastEnum, slowEnum };
5
8
  //# sourceMappingURL=enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAiBvD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CASvD"}
1
+ {"version":3,"file":"enum.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/enum.ts"],"mappings":";;;iBAMgB,SAAS,IAAI,QAAQ,GAAG;iBAmBxB,SAAS,IAAI,QAAQ,GAAG"}
@@ -1,32 +1,26 @@
1
- import { emitSet, ENUM_INLINE_THRESHOLD, escapeString } from "../context.js";
1
+ import { emitSet, escapeString } from "../context.js";
2
2
  import { emit } from "../emit.js";
3
3
  import { invalidValue } from "../emit-issue.js";
4
- export function slowEnum(ir, g) {
5
- const valuesExpr = JSON.stringify(ir.values);
6
- if (ir.values.length <= ENUM_INLINE_THRESHOLD) {
7
- // Inline equality checks for small enums (avoids Set allocation in preamble)
8
- const condition = ir.values.map((v) => `${g.input}!==${escapeString(v)}`).join("&&");
9
- return `${emit `
10
- if(${condition}){
4
+ //#region src/core/codegen/schemas/enum.ts
5
+ function slowEnum(ir, g) {
6
+ const valuesExpr = JSON.stringify(ir.values);
7
+ if (ir.values.length <= 5) return `${emit`
8
+ if(${ir.values.map((v) => `${g.input}!==${escapeString(v)}`).join("&&")}){
11
9
  ${invalidValue(g, valuesExpr)}
12
10
  }
13
11
  `}\n`;
14
- }
15
- const setVar = g.set("enum", ir.values);
16
- return `${emit `
17
- if(!${setVar}.has(${g.input})){
12
+ return `${emit`
13
+ if(!${g.set("enum", ir.values)}.has(${g.input})){
18
14
  ${invalidValue(g, valuesExpr)}
19
15
  }
20
16
  `}\n`;
21
17
  }
22
- export function fastEnum(ir, g) {
23
- const x = g.input;
24
- if (ir.values.length <= ENUM_INLINE_THRESHOLD) {
25
- // Inline equality checks for small enums, wrapped in parens for precedence safety
26
- return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join("||")})`;
27
- }
28
- // Use Set for larger enums. Routed through emitSet so the fast check and the
29
- // slow walk share one declaration instead of emitting the value list twice.
30
- return `${emitSet(g.ctx, "enum", ir.values)}.has(${x})`;
18
+ function fastEnum(ir, g) {
19
+ const x = g.input;
20
+ if (ir.values.length <= 5) return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join("||")})`;
21
+ return `${emitSet(g.ctx, "enum", ir.values)}.has(${x})`;
31
22
  }
23
+ //#endregion
24
+ export { fastEnum, slowEnum };
25
+
32
26
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/enum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,CAAU;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC9C,6EAA6E;QAC7E,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,GAAG,IAAI,CAAA;WACP,SAAS;UACV,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;;KAEhC,IAAI,CAAC;IACR,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,GAAG,IAAI,CAAA;UACN,MAAM,QAAQ,CAAC,CAAC,KAAK;QACvB,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;;GAEhC,IAAI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,CAAU;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC9C,kFAAkF;QAClF,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7E,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"enum.js","names":[],"sources":["../../../../src/core/codegen/schemas/enum.ts"],"sourcesContent":["import type { EnumIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { emitSet, ENUM_INLINE_THRESHOLD, escapeString } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidValue } from \"../emit-issue.js\";\n\nexport function slowEnum(ir: EnumIR, g: SlowGen): string {\n const valuesExpr = JSON.stringify(ir.values);\n if (ir.values.length <= ENUM_INLINE_THRESHOLD) {\n // Inline equality checks for small enums (avoids Set allocation in preamble)\n const condition = ir.values.map((v) => `${g.input}!==${escapeString(v)}`).join(\"&&\");\n return `${emit`\n if(${condition}){\n ${invalidValue(g, valuesExpr)}\n }\n `}\\n`;\n }\n const setVar = g.set(\"enum\", ir.values);\n return `${emit`\n if(!${setVar}.has(${g.input})){\n ${invalidValue(g, valuesExpr)}\n }\n `}\\n`;\n}\n\nexport function fastEnum(ir: EnumIR, g: FastGen): string {\n const x = g.input;\n if (ir.values.length <= ENUM_INLINE_THRESHOLD) {\n // Inline equality checks for small enums, wrapped in parens for precedence safety\n return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join(\"||\")})`;\n }\n // Use Set for larger enums. Routed through emitSet so the fast check and the\n // slow walk share one declaration instead of emitting the value list twice.\n return `${emitSet(g.ctx, \"enum\", ir.values)}.has(${x})`;\n}\n"],"mappings":";;;;AAMA,SAAgB,SAAS,IAAY,GAAoB;CACvD,MAAM,aAAa,KAAK,UAAU,GAAG,MAAM;CAC3C,IAAI,GAAG,OAAO,UAAA,GAGZ,OAAO,GAAG,IAAI;WADI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,IAEhE,EAAE;UACX,aAAa,GAAG,UAAU,EAAE;;MAEhC;CAGJ,OAAO,GAAG,IAAI;UADC,EAAE,IAAI,QAAQ,GAAG,MAEnB,EAAE,OAAO,EAAE,MAAM;QACxB,aAAa,GAAG,UAAU,EAAE;;IAEhC;AACJ;AAEA,SAAgB,SAAS,IAAY,GAAoB;CACvD,MAAM,IAAI,EAAE;CACZ,IAAI,GAAG,OAAO,UAAA,GAEZ,OAAO,IAAI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;CAI1E,OAAO,GAAG,QAAQ,EAAE,KAAK,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE;AACvD"}
@@ -1,4 +1,7 @@
1
- import type { FallbackIR } from "../../types.js";
2
- import type { SlowGen } from "../context.js";
3
- export declare function slowFallback(ir: FallbackIR, g: SlowGen): string;
1
+ import { FallbackIR } from "../../types.js";
2
+ import { SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/fallback.d.ts
4
+ declare function slowFallback(ir: FallbackIR, g: SlowGen): string;
5
+ //#endregion
6
+ export { slowFallback };
4
7
  //# sourceMappingURL=fallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAwB/D"}
1
+ {"version":3,"file":"fallback.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/fallback.ts"],"mappings":";;;iBAKgB,aAAa,IAAI,YAAY,GAAG"}
@@ -1,16 +1,14 @@
1
1
  import { emitRfDelegate } from "../context.js";
2
2
  import { emit } from "../emit.js";
3
- export function slowFallback(ir, g) {
4
- if (ir.refIndex !== undefined) {
5
- const idx = ir.refIndex;
6
- // Captured pre-__zcMkv (emitRfDelegate): a per-parse `__rf[N].safeParse`
7
- // read resolves to the compiled validator itself when CSE/dedup or an
8
- // identifier schemaExpr makes the entry alias the mutated schema object.
9
- const delegate = emitRfDelegate(g.ctx, idx);
10
- const rVar = `__rf_r${idx}`;
11
- const iVar = `__rf_i${idx}`;
12
- const jVar = `__rf_j${idx}`;
13
- return `${emit `
3
+ //#region src/core/codegen/schemas/fallback.ts
4
+ function slowFallback(ir, g) {
5
+ if (ir.refIndex !== void 0) {
6
+ const idx = ir.refIndex;
7
+ const delegate = emitRfDelegate(g.ctx, idx);
8
+ const rVar = `__rf_r${idx}`;
9
+ const iVar = `__rf_i${idx}`;
10
+ const jVar = `__rf_j${idx}`;
11
+ return `${emit`
14
12
  var ${rVar}=${delegate}(${g.input});
15
13
  if(!${rVar}.success){
16
14
  var ${iVar}=${rVar}.error.issues;
@@ -22,7 +20,10 @@ export function slowFallback(ir, g) {
22
20
  ${g.output}=${rVar}.data;
23
21
  }
24
22
  `}\n`;
25
- }
26
- return `${g.issues}.push({code:"custom",path:${g.path},message:"Fallback schema: ${ir.reason}"});\n`;
23
+ }
24
+ return `${g.issues}.push({code:"custom",path:${g.path},message:"Fallback schema: ${ir.reason}"});\n`;
27
25
  }
26
+ //#endregion
27
+ export { slowFallback };
28
+
28
29
  //# sourceMappingURL=fallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/fallback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,YAAY,CAAC,EAAc,EAAE,CAAU;IACrD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;QACxB,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAA;YACN,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK;YAC3B,IAAI;cACF,IAAI,IAAI,IAAI;kBACR,IAAI,MAAM,IAAI,IAAI,IAAI,WAAW,IAAI;YAC3C,CAAC,CAAC,MAAM,aAAa,IAAI,IAAI,IAAI;mBAC1B,CAAC,CAAC,IAAI,WAAW,IAAI,IAAI,IAAI;;;UAGtC,CAAC,CAAC,MAAM,IAAI,IAAI;;KAErB,IAAI,CAAC;IACR,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,MAAM,6BAA6B,CAAC,CAAC,IAAI,8BAA8B,EAAE,CAAC,MAAM,QAAQ,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"fallback.js","names":[],"sources":["../../../../src/core/codegen/schemas/fallback.ts"],"sourcesContent":["import type { FallbackIR } from \"../../types.js\";\nimport type { SlowGen } from \"../context.js\";\nimport { emitRfDelegate } from \"../context.js\";\nimport { emit } from \"../emit.js\";\n\nexport function slowFallback(ir: FallbackIR, g: SlowGen): string {\n if (ir.refIndex !== undefined) {\n const idx = ir.refIndex;\n // Captured pre-__zcMkv (emitRfDelegate): a per-parse `__rf[N].safeParse`\n // read resolves to the compiled validator itself when CSE/dedup or an\n // identifier schemaExpr makes the entry alias the mutated schema object.\n const delegate = emitRfDelegate(g.ctx, idx);\n const rVar = `__rf_r${idx}`;\n const iVar = `__rf_i${idx}`;\n const jVar = `__rf_j${idx}`;\n return `${emit`\n var ${rVar}=${delegate}(${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 return `${g.issues}.push({code:\"custom\",path:${g.path},message:\"Fallback schema: ${ir.reason}\"});\\n`;\n}\n"],"mappings":";;;AAKA,SAAgB,aAAa,IAAgB,GAAoB;CAC/D,IAAI,GAAG,aAAa,KAAA,GAAW;EAC7B,MAAM,MAAM,GAAG;EAIf,MAAM,WAAW,eAAe,EAAE,KAAK,GAAG;EAC1C,MAAM,OAAO,SAAS;EACtB,MAAM,OAAO,SAAS;EACtB,MAAM,OAAO,SAAS;EACtB,OAAO,GAAG,IAAI;YACN,KAAK,GAAG,SAAS,GAAG,EAAE,MAAM;YAC5B,KAAK;cACH,KAAK,GAAG,KAAK;kBACT,KAAK,KAAK,KAAK,GAAG,KAAK,UAAU,KAAK;YAC5C,EAAE,OAAO,YAAY,KAAK,GAAG,KAAK;mBAC3B,EAAE,KAAK,UAAU,KAAK,GAAG,KAAK;;;UAGvC,EAAE,OAAO,GAAG,KAAK;;MAErB;CACJ;CACA,OAAO,GAAG,EAAE,OAAO,4BAA4B,EAAE,KAAK,6BAA6B,GAAG,OAAO;AAC/F"}
@@ -1,5 +1,8 @@
1
- import type { FileIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
3
- export declare function slowFile(ir: FileIR, g: SlowGen): string;
4
- export declare function fastFile(ir: FileIR, g: FastGen): string | null;
1
+ import { FileIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/file.d.ts
4
+ declare function slowFile(ir: FileIR, g: SlowGen): string;
5
+ declare function fastFile(ir: FileIR, g: FastGen): string | null;
6
+ //#endregion
7
+ export { fastFile, slowFile };
5
8
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA4CvD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA0B9D"}
1
+ {"version":3,"file":"file.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/file.ts"],"mappings":";;;iBAMgB,SAAS,IAAI,QAAQ,GAAG;iBA8CxB,SAAS,IAAI,QAAQ,GAAG"}
@@ -1,76 +1,70 @@
1
1
  import { emitSet, escapeString } from "../context.js";
2
2
  import { emit } from "../emit.js";
3
3
  import { invalidType, invalidValue, tooBig, tooSmall } from "../emit-issue.js";
4
- export function slowFile(ir, g) {
5
- let code = emit `
4
+ //#region src/core/codegen/schemas/file.ts
5
+ function slowFile(ir, g) {
6
+ let code = emit`
6
7
  if(!(${g.input} instanceof File)){
7
8
  ${invalidType(g, "file")}
8
9
  }else{`;
9
- if (ir.checks) {
10
- for (const check of ir.checks) {
11
- switch (check.kind) {
12
- case "min_size":
13
- code += emit `
10
+ if (ir.checks) for (const check of ir.checks) switch (check.kind) {
11
+ case "min_size":
12
+ code += emit`
14
13
  if(${g.input}.size<${check.minimum}){
15
14
  ${tooSmall(g, check.minimum, "file", true, { message: check.message })}
16
15
  }`;
17
- break;
18
- case "max_size":
19
- code += emit `
16
+ break;
17
+ case "max_size":
18
+ code += emit`
20
19
  if(${g.input}.size>${check.maximum}){
21
20
  ${tooBig(g, check.maximum, "file", true, { message: check.message })}
22
21
  }`;
23
- break;
24
- case "mime_type": {
25
- if (check.mime.length === 0)
26
- break;
27
- const mimeValuesExpr = JSON.stringify(check.mime);
28
- if (check.mime.length === 1) {
29
- code += emit `
22
+ break;
23
+ case "mime_type": {
24
+ if (check.mime.length === 0) break;
25
+ const mimeValuesExpr = JSON.stringify(check.mime);
26
+ if (check.mime.length === 1) code += emit`
30
27
  if(${g.input}.type!==${escapeString(check.mime[0])}){
31
- ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}
28
+ ${invalidValue(g, mimeValuesExpr, {
29
+ message: check.message,
30
+ useTypeMsg: false
31
+ })}
32
32
  }`;
33
- }
34
- else {
35
- const setVar = g.set("mime", check.mime);
36
- code += emit `
33
+ else {
34
+ const setVar = g.set("mime", check.mime);
35
+ code += emit`
37
36
  if(!${setVar}.has(${g.input}.type)){
38
- ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}
37
+ ${invalidValue(g, mimeValuesExpr, {
38
+ message: check.message,
39
+ useTypeMsg: false
40
+ })}
39
41
  }`;
40
- }
41
- break;
42
- }
43
- }
44
- }
45
- }
46
- code += emit `}`;
47
- return `${code}\n`;
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ code += emit`}`;
47
+ return `${code}\n`;
48
48
  }
49
- export function fastFile(ir, g) {
50
- const x = g.input;
51
- const parts = [`${x} instanceof File`];
52
- if (ir.checks) {
53
- for (const check of ir.checks) {
54
- switch (check.kind) {
55
- case "min_size":
56
- parts.push(`${x}.size>=${check.minimum}`);
57
- break;
58
- case "max_size":
59
- parts.push(`${x}.size<=${check.maximum}`);
60
- break;
61
- case "mime_type":
62
- if (check.mime.length === 0)
63
- break;
64
- if (check.mime.length === 1) {
65
- parts.push(`${x}.type===${escapeString(check.mime[0])}`);
66
- }
67
- else {
68
- parts.push(`${emitSet(g.ctx, "mime", check.mime)}.has(${x}.type)`);
69
- }
70
- break;
71
- }
72
- }
73
- }
74
- return parts.join("&&");
49
+ function fastFile(ir, g) {
50
+ const x = g.input;
51
+ const parts = [`${x} instanceof File`];
52
+ if (ir.checks) for (const check of ir.checks) switch (check.kind) {
53
+ case "min_size":
54
+ parts.push(`${x}.size>=${check.minimum}`);
55
+ break;
56
+ case "max_size":
57
+ parts.push(`${x}.size<=${check.maximum}`);
58
+ break;
59
+ case "mime_type":
60
+ if (check.mime.length === 0) break;
61
+ if (check.mime.length === 1) parts.push(`${x}.type===${escapeString(check.mime[0])}`);
62
+ else parts.push(`${emitSet(g.ctx, "mime", check.mime)}.has(${x}.type)`);
63
+ break;
64
+ }
65
+ return parts.join("&&");
75
66
  }
67
+ //#endregion
68
+ export { fastFile, slowFile };
69
+
76
70
  //# sourceMappingURL=file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","names":[],"sources":["../../../../src/core/codegen/schemas/file.ts"],"sourcesContent":["import type { FileIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { emitSet, escapeString } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidType, invalidValue, tooBig, tooSmall } from \"../emit-issue.js\";\n\nexport function slowFile(ir: FileIR, g: SlowGen): string {\n let code = emit`\n if(!(${g.input} instanceof File)){\n ${invalidType(g, \"file\")}\n }else{`;\n\n if (ir.checks) {\n for (const check of ir.checks) {\n switch (check.kind) {\n case \"min_size\":\n code += emit`\n if(${g.input}.size<${check.minimum}){\n ${tooSmall(g, check.minimum, \"file\", true, { message: check.message })}\n }`;\n break;\n case \"max_size\":\n code += emit`\n if(${g.input}.size>${check.maximum}){\n ${tooBig(g, check.maximum, \"file\", true, { message: check.message })}\n }`;\n break;\n case \"mime_type\": {\n if (check.mime.length === 0) break;\n const mimeValuesExpr = JSON.stringify(check.mime);\n if (check.mime.length === 1) {\n code += emit`\n if(${g.input}.type!==${escapeString(check.mime[0] as string)}){\n ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}\n }`;\n } else {\n const setVar = g.set(\"mime\", check.mime);\n code += emit`\n if(!${setVar}.has(${g.input}.type)){\n ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}\n }`;\n }\n break;\n }\n }\n }\n }\n\n code += emit`}`;\n return `${code}\\n`;\n}\n\nexport function fastFile(ir: FileIR, g: FastGen): string | null {\n const x = g.input;\n const parts: string[] = [`${x} instanceof File`];\n\n if (ir.checks) {\n for (const check of ir.checks) {\n switch (check.kind) {\n case \"min_size\":\n parts.push(`${x}.size>=${check.minimum}`);\n break;\n case \"max_size\":\n parts.push(`${x}.size<=${check.maximum}`);\n break;\n case \"mime_type\":\n if (check.mime.length === 0) break;\n if (check.mime.length === 1) {\n parts.push(`${x}.type===${escapeString(check.mime[0] as string)}`);\n } else {\n parts.push(`${emitSet(g.ctx, \"mime\", check.mime)}.has(${x}.type)`);\n }\n break;\n }\n }\n }\n\n return parts.join(\"&&\");\n}\n"],"mappings":";;;;AAMA,SAAgB,SAAS,IAAY,GAAoB;CACvD,IAAI,OAAO,IAAI;WACN,EAAE,MAAM;QACX,YAAY,GAAG,MAAM,EAAE;;CAG7B,IAAI,GAAG,QACL,KAAK,MAAM,SAAS,GAAG,QACrB,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,QAAQ,IAAI;iBACL,EAAE,MAAM,QAAQ,MAAM,QAAQ;gBAC/B,SAAS,GAAG,MAAM,SAAS,QAAQ,MAAM,EAAE,SAAS,MAAM,QAAQ,CAAC,EAAE;;GAE3E;EACF,KAAK;GACH,QAAQ,IAAI;iBACL,EAAE,MAAM,QAAQ,MAAM,QAAQ;gBAC/B,OAAO,GAAG,MAAM,SAAS,QAAQ,MAAM,EAAE,SAAS,MAAM,QAAQ,CAAC,EAAE;;GAEzE;EACF,KAAK,aAAa;GAChB,IAAI,MAAM,KAAK,WAAW,GAAG;GAC7B,MAAM,iBAAiB,KAAK,UAAU,MAAM,IAAI;GAChD,IAAI,MAAM,KAAK,WAAW,GACxB,QAAQ,IAAI;mBACL,EAAE,MAAM,UAAU,aAAa,MAAM,KAAK,EAAY,EAAE;kBACzD,aAAa,GAAG,gBAAgB;IAAE,SAAS,MAAM;IAAS,YAAY;GAAM,CAAC,EAAE;;QAEhF;IACL,MAAM,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;IACvC,QAAQ,IAAI;oBACJ,OAAO,OAAO,EAAE,MAAM;kBACxB,aAAa,GAAG,gBAAgB;KAAE,SAAS,MAAM;KAAS,YAAY;IAAM,CAAC,EAAE;;GAEvF;GACA;EACF;CACF;CAIJ,QAAQ,IAAI;CACZ,OAAO,GAAG,KAAK;AACjB;AAEA,SAAgB,SAAS,IAAY,GAA2B;CAC9D,MAAM,IAAI,EAAE;CACZ,MAAM,QAAkB,CAAC,GAAG,EAAE,iBAAiB;CAE/C,IAAI,GAAG,QACL,KAAK,MAAM,SAAS,GAAG,QACrB,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,MAAM,KAAK,GAAG,EAAE,SAAS,MAAM,SAAS;GACxC;EACF,KAAK;GACH,MAAM,KAAK,GAAG,EAAE,SAAS,MAAM,SAAS;GACxC;EACF,KAAK;GACH,IAAI,MAAM,KAAK,WAAW,GAAG;GAC7B,IAAI,MAAM,KAAK,WAAW,GACxB,MAAM,KAAK,GAAG,EAAE,UAAU,aAAa,MAAM,KAAK,EAAY,GAAG;QAEjE,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,QAAQ,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO;GAEnE;CACJ;CAIJ,OAAO,MAAM,KAAK,IAAI;AACxB"}
@@ -1,7 +1,10 @@
1
- import type { IntersectionIR, SchemaIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
3
- export declare function slowIntersection(ir: SchemaIR & {
4
- type: "intersection";
1
+ import { IntersectionIR, SchemaIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/intersection.d.ts
4
+ declare function slowIntersection(ir: SchemaIR & {
5
+ type: "intersection";
5
6
  }, g: SlowGen): string;
6
- export declare function fastIntersection(ir: IntersectionIR, g: FastGen): string | null;
7
+ declare function fastIntersection(ir: IntersectionIR, g: FastGen): string | null;
8
+ //#endregion
9
+ export { fastIntersection, slowIntersection };
7
10
  //# sourceMappingURL=intersection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intersection.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/intersection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY9E"}
1
+ {"version":3,"file":"intersection.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/intersection.ts"],"mappings":";;;iBAIgB,iBAAiB,IAAI;EAAa;GAAwB,GAAG;iBAI7D,iBAAiB,IAAI,gBAAgB,GAAG"}
@@ -1,17 +1,20 @@
1
1
  import { orderByRuntimeCost } from "../fast-size.js";
2
- export function slowIntersection(ir, g) {
3
- return `${g.visit(ir.left)}${g.visit(ir.right, { input: g.output, output: g.output })}`;
2
+ //#region src/core/codegen/schemas/intersection.ts
3
+ function slowIntersection(ir, g) {
4
+ return `${g.visit(ir.left)}${g.visit(ir.right, {
5
+ input: g.output,
6
+ output: g.output
7
+ })}`;
4
8
  }
5
- export function fastIntersection(ir, g) {
6
- // Both sides must hold, so the conjunction is order-independent — emit the
7
- // cheaper side first so a reject decides on it (see estimateRuntimeCost).
8
- const [first, second] = orderByRuntimeCost([ir.left, ir.right], (side) => side, g.ctx);
9
- const left = g.visit(first);
10
- if (left === null)
11
- return null;
12
- const right = g.visit(second);
13
- if (right === null)
14
- return null;
15
- return left === "true" ? right : right === "true" ? left : `${left}&&${right}`;
9
+ function fastIntersection(ir, g) {
10
+ const [first, second] = orderByRuntimeCost([ir.left, ir.right], (side) => side, g.ctx);
11
+ const left = g.visit(first);
12
+ if (left === null) return null;
13
+ const right = g.visit(second);
14
+ if (right === null) return null;
15
+ return left === "true" ? right : right === "true" ? left : `${left}&&${right}`;
16
16
  }
17
+ //#endregion
18
+ export { fastIntersection, slowIntersection };
19
+
17
20
  //# sourceMappingURL=intersection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"intersection.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/intersection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,gBAAgB,CAAC,EAAuC,EAAE,CAAU;IAClF,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAkB,EAAE,CAAU;IAC7D,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAGpF,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"intersection.js","names":[],"sources":["../../../../src/core/codegen/schemas/intersection.ts"],"sourcesContent":["import type { IntersectionIR, SchemaIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { orderByRuntimeCost } from \"../fast-size.js\";\n\nexport function slowIntersection(ir: SchemaIR & { type: \"intersection\" }, g: SlowGen): string {\n return `${g.visit(ir.left)}${g.visit(ir.right, { input: g.output, output: g.output })}`;\n}\n\nexport function fastIntersection(ir: IntersectionIR, g: FastGen): string | null {\n // Both sides must hold, so the conjunction is order-independent — emit the\n // cheaper side first so a reject decides on it (see estimateRuntimeCost).\n const [first, second] = orderByRuntimeCost([ir.left, ir.right], (side) => side, g.ctx) as [\n SchemaIR,\n SchemaIR,\n ];\n const left = g.visit(first);\n if (left === null) return null;\n const right = g.visit(second);\n if (right === null) return null;\n return left === \"true\" ? right : right === \"true\" ? left : `${left}&&${right}`;\n}\n"],"mappings":";;AAIA,SAAgB,iBAAiB,IAAyC,GAAoB;CAC5F,OAAO,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,MAAM,GAAG,OAAO;EAAE,OAAO,EAAE;EAAQ,QAAQ,EAAE;CAAO,CAAC;AACtF;AAEA,SAAgB,iBAAiB,IAAoB,GAA2B;CAG9E,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,SAAS,MAAM,EAAE,GAAG;CAIrF,MAAM,OAAO,EAAE,MAAM,KAAK;CAC1B,IAAI,SAAS,MAAM,OAAO;CAC1B,MAAM,QAAQ,EAAE,MAAM,MAAM;CAC5B,IAAI,UAAU,MAAM,OAAO;CAC3B,OAAO,SAAS,SAAS,QAAQ,UAAU,SAAS,OAAO,GAAG,KAAK,IAAI;AACzE"}
@@ -1,5 +1,8 @@
1
- import type { LiteralIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
3
- export declare function slowLiteral(ir: LiteralIR, g: SlowGen): string;
4
- export declare function fastLiteral(ir: LiteralIR, g: FastGen): string;
1
+ import { LiteralIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/literal.d.ts
4
+ declare function slowLiteral(ir: LiteralIR, g: SlowGen): string;
5
+ declare function fastLiteral(ir: LiteralIR, g: FastGen): string;
6
+ //#endregion
7
+ export { fastLiteral, slowLiteral };
5
8
  //# sourceMappingURL=literal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/literal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAqBtD,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAgB7D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAO7D"}
1
+ {"version":3,"file":"literal.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/literal.ts"],"mappings":";;;iBAsBgB,YAAY,IAAI,WAAW,GAAG;iBAkB9B,YAAY,IAAI,WAAW,GAAG"}
@@ -1,42 +1,39 @@
1
1
  import { literalToJs } from "../context.js";
2
2
  import { emit } from "../emit.js";
3
3
  import { invalidValue } from "../emit-issue.js";
4
+ //#region src/core/codegen/schemas/literal.ts
4
5
  /** `[v1,v2,...]` source for the invalid_value issue's `values` field. */
5
6
  function valuesJs(values) {
6
- return `[${values.map(literalToJs).join(",")}]`;
7
+ return `[${values.map(literalToJs).join(",")}]`;
7
8
  }
8
9
  /**
9
- * Equality test `x === value`, except for the literal NaN value: `NaN === NaN`
10
- * is false under `===`, but zod accepts NaN against `z.literal(NaN)` by value, so
11
- * a NaN literal compares via `Number.isNaN`. (Infinity/-Infinity compare fine
12
- * under `===` once literalToJs emits them as the right expression.)
13
- */
10
+ * Equality test `x === value`, except for the literal NaN value: `NaN === NaN`
11
+ * is false under `===`, but zod accepts NaN against `z.literal(NaN)` by value, so
12
+ * a NaN literal compares via `Number.isNaN`. (Infinity/-Infinity compare fine
13
+ * under `===` once literalToJs emits them as the right expression.)
14
+ */
14
15
  function literalEq(x, v) {
15
- if (typeof v === "number" && Number.isNaN(v))
16
- return `Number.isNaN(${x})`;
17
- return `${x}===${literalToJs(v)}`;
16
+ if (typeof v === "number" && Number.isNaN(v)) return `Number.isNaN(${x})`;
17
+ return `${x}===${literalToJs(v)}`;
18
18
  }
19
- export function slowLiteral(ir, g) {
20
- if (ir.values.length === 1) {
21
- return emit `
19
+ function slowLiteral(ir, g) {
20
+ if (ir.values.length === 1) return emit`
22
21
  if(!(${literalEq(g.input, ir.values[0])})){
23
22
  ${invalidValue(g, valuesJs(ir.values))}
24
23
  }
25
24
  `;
26
- }
27
- const valueChecks = ir.values.map((v) => literalEq(g.input, v)).join("||");
28
- return emit `
29
- if(!(${valueChecks})){
25
+ return emit`
26
+ if(!(${ir.values.map((v) => literalEq(g.input, v)).join("||")})){
30
27
  ${invalidValue(g, valuesJs(ir.values))}
31
28
  }
32
29
  `;
33
30
  }
34
- export function fastLiteral(ir, g) {
35
- const x = g.input;
36
- if (ir.values.length === 1) {
37
- return literalEq(x, ir.values[0]);
38
- }
39
- // Wrap in parens — || has lower precedence than && in parent expressions
40
- return `(${ir.values.map((v) => literalEq(x, v)).join("||")})`;
31
+ function fastLiteral(ir, g) {
32
+ const x = g.input;
33
+ if (ir.values.length === 1) return literalEq(x, ir.values[0]);
34
+ return `(${ir.values.map((v) => literalEq(x, v)).join("||")})`;
41
35
  }
36
+ //#endregion
37
+ export { fastLiteral, slowLiteral };
38
+
42
39
  //# sourceMappingURL=literal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/literal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,yEAAyE;AACzE,SAAS,QAAQ,CAAC,MAA2B;IAC3C,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAS,EAAE,CAA8B;IAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC;IAC1E,OAAO,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAa,EAAE,CAAU;IACnD,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;aACF,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;UACnC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;KAEzC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3E,OAAO,IAAI,CAAA;WACF,WAAW;QACd,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;GAEzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAa,EAAE,CAAU;IACnD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,yEAAyE;IACzE,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"literal.js","names":[],"sources":["../../../../src/core/codegen/schemas/literal.ts"],"sourcesContent":["import type { LiteralIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { literalToJs } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidValue } from \"../emit-issue.js\";\n\n/** `[v1,v2,...]` source for the invalid_value issue's `values` field. */\nfunction valuesJs(values: LiteralIR[\"values\"]): string {\n return `[${values.map(literalToJs).join(\",\")}]`;\n}\n\n/**\n * Equality test `x === value`, except for the literal NaN value: `NaN === NaN`\n * is false under `===`, but zod accepts NaN against `z.literal(NaN)` by value, so\n * a NaN literal compares via `Number.isNaN`. (Infinity/-Infinity compare fine\n * under `===` once literalToJs emits them as the right expression.)\n */\nfunction literalEq(x: string, v: LiteralIR[\"values\"][number]): string {\n if (typeof v === \"number\" && Number.isNaN(v)) return `Number.isNaN(${x})`;\n return `${x}===${literalToJs(v)}`;\n}\n\nexport function slowLiteral(ir: LiteralIR, g: SlowGen): string {\n if (ir.values.length === 1) {\n return emit`\n if(!(${literalEq(g.input, ir.values[0])})){\n ${invalidValue(g, valuesJs(ir.values))}\n }\n `;\n }\n\n const valueChecks = ir.values.map((v) => literalEq(g.input, v)).join(\"||\");\n\n return emit`\n if(!(${valueChecks})){\n ${invalidValue(g, valuesJs(ir.values))}\n }\n `;\n}\n\nexport function fastLiteral(ir: LiteralIR, g: FastGen): string {\n const x = g.input;\n if (ir.values.length === 1) {\n return literalEq(x, ir.values[0]);\n }\n // Wrap in parens — || has lower precedence than && in parent expressions\n return `(${ir.values.map((v) => literalEq(x, v)).join(\"||\")})`;\n}\n"],"mappings":";;;;;AAOA,SAAS,SAAS,QAAqC;CACrD,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/C;;;;;;;AAQA,SAAS,UAAU,GAAW,GAAwC;CACpE,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,CAAC,GAAG,OAAO,gBAAgB,EAAE;CACvE,OAAO,GAAG,EAAE,KAAK,YAAY,CAAC;AAChC;AAEA,SAAgB,YAAY,IAAe,GAAoB;CAC7D,IAAI,GAAG,OAAO,WAAW,GACvB,OAAO,IAAI;aACF,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE;UACpC,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE;;;CAO7C,OAAO,IAAI;WAFS,GAAG,OAAO,KAAK,MAAM,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAGlD,EAAE;QACf,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE;;;AAG7C;AAEA,SAAgB,YAAY,IAAe,GAAoB;CAC7D,MAAM,IAAI,EAAE;CACZ,IAAI,GAAG,OAAO,WAAW,GACvB,OAAO,UAAU,GAAG,GAAG,OAAO,EAAE;CAGlC,OAAO,IAAI,GAAG,OAAO,KAAK,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC9D"}
@@ -1,5 +1,6 @@
1
- import type { MapIR, SchemaIR } from "../../types.js";
2
- import type { FastGen, SlowGen } from "../context.js";
1
+ import { MapIR, SchemaIR } from "../../types.js";
2
+ import { FastGen, SlowGen } from "../context.js";
3
+ //#region src/core/codegen/schemas/map.d.ts
3
4
  /**
4
5
  * Map entries report through zod's `handleMapResult`, which branches on the
5
6
  * RUNTIME type of the key rather than on the key schema:
@@ -17,8 +18,10 @@ import type { FastGen, SlowGen } from "../context.js";
17
18
  * to both the type test and the prefix, and a mutating key schema (`.trim()`)
18
19
  * would otherwise have rewritten it by then.
19
20
  */
20
- export declare function slowMap(ir: SchemaIR & {
21
- type: "map";
21
+ declare function slowMap(ir: SchemaIR & {
22
+ type: "map";
22
23
  }, g: SlowGen): string;
23
- export declare function fastMap(ir: MapIR, g: FastGen): string | null;
24
+ declare function fastMap(ir: MapIR, g: FastGen): string | null;
25
+ //#endregion
26
+ export { fastMap, slowMap };
24
27
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMtD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA6D1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAwB5D"}
1
+ {"version":3,"file":"map.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/map.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;iBAwBgB,QAAQ,IAAI;EAAa;GAAe,GAAG;iBA+D3C,QAAQ,IAAI,OAAO,GAAG"}