zod-compiler 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +381 -28
  3. package/dist/cli/commands/check.d.ts +9 -0
  4. package/dist/cli/commands/check.d.ts.map +1 -0
  5. package/dist/cli/commands/check.js +150 -0
  6. package/dist/cli/commands/check.js.map +1 -0
  7. package/dist/cli/commands/generate.d.ts +34 -0
  8. package/dist/cli/commands/generate.d.ts.map +1 -0
  9. package/dist/cli/commands/generate.js +135 -0
  10. package/dist/cli/commands/generate.js.map +1 -0
  11. package/dist/cli/commands/watch.d.ts +33 -0
  12. package/dist/cli/commands/watch.d.ts.map +1 -0
  13. package/dist/cli/commands/watch.js +163 -0
  14. package/dist/cli/commands/watch.js.map +1 -0
  15. package/dist/cli/emitter.d.ts +21 -0
  16. package/dist/cli/emitter.d.ts.map +1 -0
  17. package/dist/cli/emitter.js +64 -0
  18. package/dist/cli/emitter.js.map +1 -0
  19. package/dist/cli/errors.d.ts +2 -0
  20. package/dist/cli/errors.d.ts.map +1 -0
  21. package/dist/cli/errors.js +4 -0
  22. package/dist/cli/errors.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +181 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/logger.d.ts +18 -0
  28. package/dist/cli/logger.d.ts.map +1 -0
  29. package/dist/cli/logger.js +46 -0
  30. package/dist/cli/logger.js.map +1 -0
  31. package/dist/core/codegen/context.d.ts +138 -0
  32. package/dist/core/codegen/context.d.ts.map +1 -0
  33. package/dist/core/codegen/context.js +213 -0
  34. package/dist/core/codegen/context.js.map +1 -0
  35. package/dist/core/codegen/emit-issue.d.ts +74 -0
  36. package/dist/core/codegen/emit-issue.d.ts.map +1 -0
  37. package/dist/core/codegen/emit-issue.js +116 -0
  38. package/dist/core/codegen/emit-issue.js.map +1 -0
  39. package/dist/core/codegen/emit.d.ts +8 -0
  40. package/dist/core/codegen/emit.d.ts.map +1 -0
  41. package/dist/core/codegen/emit.js +16 -0
  42. package/dist/core/codegen/emit.js.map +1 -0
  43. package/dist/core/codegen/fast-path.d.ts +17 -0
  44. package/dist/core/codegen/fast-path.d.ts.map +1 -0
  45. package/dist/core/codegen/fast-path.js +114 -0
  46. package/dist/core/codegen/fast-path.js.map +1 -0
  47. package/dist/core/codegen/index.d.ts +19 -0
  48. package/dist/core/codegen/index.d.ts.map +1 -0
  49. package/dist/core/codegen/index.js +54 -0
  50. package/dist/core/codegen/index.js.map +1 -0
  51. package/dist/core/codegen/issue-decls.d.ts +37 -0
  52. package/dist/core/codegen/issue-decls.d.ts.map +1 -0
  53. package/dist/core/codegen/issue-decls.js +47 -0
  54. package/dist/core/codegen/issue-decls.js.map +1 -0
  55. package/dist/core/codegen/schemas/any.d.ts +5 -0
  56. package/dist/core/codegen/schemas/any.d.ts.map +1 -0
  57. package/dist/core/codegen/schemas/any.js +7 -0
  58. package/dist/core/codegen/schemas/any.js.map +1 -0
  59. package/dist/core/codegen/schemas/array.d.ts +7 -0
  60. package/dist/core/codegen/schemas/array.d.ts.map +1 -0
  61. package/dist/core/codegen/schemas/array.js +86 -0
  62. package/dist/core/codegen/schemas/array.js.map +1 -0
  63. package/dist/core/codegen/schemas/bigint.d.ts +5 -0
  64. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -0
  65. package/dist/core/codegen/schemas/bigint.js +80 -0
  66. package/dist/core/codegen/schemas/bigint.js.map +1 -0
  67. package/dist/core/codegen/schemas/boolean.d.ts +5 -0
  68. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -0
  69. package/dist/core/codegen/schemas/boolean.js +20 -0
  70. package/dist/core/codegen/schemas/boolean.js.map +1 -0
  71. package/dist/core/codegen/schemas/catch.d.ts +7 -0
  72. package/dist/core/codegen/schemas/catch.d.ts.map +1 -0
  73. package/dist/core/codegen/schemas/catch.js +26 -0
  74. package/dist/core/codegen/schemas/catch.js.map +1 -0
  75. package/dist/core/codegen/schemas/date.d.ts +5 -0
  76. package/dist/core/codegen/schemas/date.d.ts.map +1 -0
  77. package/dist/core/codegen/schemas/date.js +79 -0
  78. package/dist/core/codegen/schemas/date.js.map +1 -0
  79. package/dist/core/codegen/schemas/default.d.ts +5 -0
  80. package/dist/core/codegen/schemas/default.d.ts.map +1 -0
  81. package/dist/core/codegen/schemas/default.js +17 -0
  82. package/dist/core/codegen/schemas/default.js.map +1 -0
  83. package/dist/core/codegen/schemas/discriminated-union.d.ts +7 -0
  84. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -0
  85. package/dist/core/codegen/schemas/discriminated-union.js +45 -0
  86. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -0
  87. package/dist/core/codegen/schemas/effect.d.ts +17 -0
  88. package/dist/core/codegen/schemas/effect.d.ts.map +1 -0
  89. package/dist/core/codegen/schemas/effect.js +35 -0
  90. package/dist/core/codegen/schemas/effect.js.map +1 -0
  91. package/dist/core/codegen/schemas/enum.d.ts +5 -0
  92. package/dist/core/codegen/schemas/enum.d.ts.map +1 -0
  93. package/dist/core/codegen/schemas/enum.js +33 -0
  94. package/dist/core/codegen/schemas/enum.js.map +1 -0
  95. package/dist/core/codegen/schemas/fallback.d.ts +4 -0
  96. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -0
  97. package/dist/core/codegen/schemas/fallback.js +23 -0
  98. package/dist/core/codegen/schemas/fallback.js.map +1 -0
  99. package/dist/core/codegen/schemas/file.d.ts +5 -0
  100. package/dist/core/codegen/schemas/file.d.ts.map +1 -0
  101. package/dist/core/codegen/schemas/file.js +78 -0
  102. package/dist/core/codegen/schemas/file.js.map +1 -0
  103. package/dist/core/codegen/schemas/intersection.d.ts +7 -0
  104. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -0
  105. package/dist/core/codegen/schemas/intersection.js +13 -0
  106. package/dist/core/codegen/schemas/intersection.js.map +1 -0
  107. package/dist/core/codegen/schemas/literal.d.ts +5 -0
  108. package/dist/core/codegen/schemas/literal.d.ts.map +1 -0
  109. package/dist/core/codegen/schemas/literal.js +31 -0
  110. package/dist/core/codegen/schemas/literal.js.map +1 -0
  111. package/dist/core/codegen/schemas/map.d.ts +7 -0
  112. package/dist/core/codegen/schemas/map.d.ts.map +1 -0
  113. package/dist/core/codegen/schemas/map.js +46 -0
  114. package/dist/core/codegen/schemas/map.js.map +1 -0
  115. package/dist/core/codegen/schemas/nan.d.ts +5 -0
  116. package/dist/core/codegen/schemas/nan.d.ts.map +1 -0
  117. package/dist/core/codegen/schemas/nan.js +13 -0
  118. package/dist/core/codegen/schemas/nan.js.map +1 -0
  119. package/dist/core/codegen/schemas/never.d.ts +5 -0
  120. package/dist/core/codegen/schemas/never.d.ts.map +1 -0
  121. package/dist/core/codegen/schemas/never.js +11 -0
  122. package/dist/core/codegen/schemas/never.js.map +1 -0
  123. package/dist/core/codegen/schemas/null.d.ts +5 -0
  124. package/dist/core/codegen/schemas/null.d.ts.map +1 -0
  125. package/dist/core/codegen/schemas/null.js +13 -0
  126. package/dist/core/codegen/schemas/null.js.map +1 -0
  127. package/dist/core/codegen/schemas/nullable.d.ts +7 -0
  128. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -0
  129. package/dist/core/codegen/schemas/nullable.js +15 -0
  130. package/dist/core/codegen/schemas/nullable.js.map +1 -0
  131. package/dist/core/codegen/schemas/number.d.ts +5 -0
  132. package/dist/core/codegen/schemas/number.d.ts.map +1 -0
  133. package/dist/core/codegen/schemas/number.js +186 -0
  134. package/dist/core/codegen/schemas/number.js.map +1 -0
  135. package/dist/core/codegen/schemas/object.d.ts +7 -0
  136. package/dist/core/codegen/schemas/object.d.ts.map +1 -0
  137. package/dist/core/codegen/schemas/object.js +65 -0
  138. package/dist/core/codegen/schemas/object.js.map +1 -0
  139. package/dist/core/codegen/schemas/optional.d.ts +7 -0
  140. package/dist/core/codegen/schemas/optional.d.ts.map +1 -0
  141. package/dist/core/codegen/schemas/optional.js +15 -0
  142. package/dist/core/codegen/schemas/optional.js.map +1 -0
  143. package/dist/core/codegen/schemas/pipe.d.ts +7 -0
  144. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -0
  145. package/dist/core/codegen/schemas/pipe.js +18 -0
  146. package/dist/core/codegen/schemas/pipe.js.map +1 -0
  147. package/dist/core/codegen/schemas/readonly.d.ts +7 -0
  148. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -0
  149. package/dist/core/codegen/schemas/readonly.js +7 -0
  150. package/dist/core/codegen/schemas/readonly.js.map +1 -0
  151. package/dist/core/codegen/schemas/record.d.ts +7 -0
  152. package/dist/core/codegen/schemas/record.d.ts.map +1 -0
  153. package/dist/core/codegen/schemas/record.js +53 -0
  154. package/dist/core/codegen/schemas/record.js.map +1 -0
  155. package/dist/core/codegen/schemas/recursive-ref.d.ts +5 -0
  156. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -0
  157. package/dist/core/codegen/schemas/recursive-ref.js +24 -0
  158. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -0
  159. package/dist/core/codegen/schemas/set.d.ts +7 -0
  160. package/dist/core/codegen/schemas/set.d.ts.map +1 -0
  161. package/dist/core/codegen/schemas/set.js +88 -0
  162. package/dist/core/codegen/schemas/set.js.map +1 -0
  163. package/dist/core/codegen/schemas/string-bool.d.ts +4 -0
  164. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -0
  165. package/dist/core/codegen/schemas/string-bool.js +39 -0
  166. package/dist/core/codegen/schemas/string-bool.js.map +1 -0
  167. package/dist/core/codegen/schemas/string.d.ts +5 -0
  168. package/dist/core/codegen/schemas/string.d.ts.map +1 -0
  169. package/dist/core/codegen/schemas/string.js +226 -0
  170. package/dist/core/codegen/schemas/string.js.map +1 -0
  171. package/dist/core/codegen/schemas/symbol.d.ts +5 -0
  172. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -0
  173. package/dist/core/codegen/schemas/symbol.js +13 -0
  174. package/dist/core/codegen/schemas/symbol.js.map +1 -0
  175. package/dist/core/codegen/schemas/template-literal.d.ts +5 -0
  176. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -0
  177. package/dist/core/codegen/schemas/template-literal.js +16 -0
  178. package/dist/core/codegen/schemas/template-literal.js.map +1 -0
  179. package/dist/core/codegen/schemas/tuple.d.ts +15 -0
  180. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -0
  181. package/dist/core/codegen/schemas/tuple.js +111 -0
  182. package/dist/core/codegen/schemas/tuple.js.map +1 -0
  183. package/dist/core/codegen/schemas/undefined.d.ts +5 -0
  184. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -0
  185. package/dist/core/codegen/schemas/undefined.js +13 -0
  186. package/dist/core/codegen/schemas/undefined.js.map +1 -0
  187. package/dist/core/codegen/schemas/union.d.ts +7 -0
  188. package/dist/core/codegen/schemas/union.d.ts.map +1 -0
  189. package/dist/core/codegen/schemas/union.js +95 -0
  190. package/dist/core/codegen/schemas/union.js.map +1 -0
  191. package/dist/core/codegen/schemas/unknown.d.ts +5 -0
  192. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -0
  193. package/dist/core/codegen/schemas/unknown.js +7 -0
  194. package/dist/core/codegen/schemas/unknown.js.map +1 -0
  195. package/dist/core/codegen/schemas/void.d.ts +5 -0
  196. package/dist/core/codegen/schemas/void.d.ts.map +1 -0
  197. package/dist/core/codegen/schemas/void.js +13 -0
  198. package/dist/core/codegen/schemas/void.js.map +1 -0
  199. package/dist/core/codegen/slow-path.d.ts +5 -0
  200. package/dist/core/codegen/slow-path.d.ts.map +1 -0
  201. package/dist/core/codegen/slow-path.js +113 -0
  202. package/dist/core/codegen/slow-path.js.map +1 -0
  203. package/dist/core/codegen/well-known-regex.d.ts +27 -0
  204. package/dist/core/codegen/well-known-regex.d.ts.map +1 -0
  205. package/dist/core/codegen/well-known-regex.js +51 -0
  206. package/dist/core/codegen/well-known-regex.js.map +1 -0
  207. package/dist/core/compile.d.ts +19 -0
  208. package/dist/core/compile.d.ts.map +1 -0
  209. package/dist/core/compile.js +37 -0
  210. package/dist/core/compile.js.map +1 -0
  211. package/dist/core/diagnostic.d.ts +46 -0
  212. package/dist/core/diagnostic.d.ts.map +1 -0
  213. package/dist/core/diagnostic.js +174 -0
  214. package/dist/core/diagnostic.js.map +1 -0
  215. package/dist/core/extract/checks.d.ts +35 -0
  216. package/dist/core/extract/checks.d.ts.map +1 -0
  217. package/dist/core/extract/checks.js +249 -0
  218. package/dist/core/extract/checks.js.map +1 -0
  219. package/dist/core/extract/effects.d.ts +12 -0
  220. package/dist/core/extract/effects.d.ts.map +1 -0
  221. package/dist/core/extract/effects.js +204 -0
  222. package/dist/core/extract/effects.js.map +1 -0
  223. package/dist/core/extract/extractors/any.d.ts +3 -0
  224. package/dist/core/extract/extractors/any.d.ts.map +1 -0
  225. package/dist/core/extract/extractors/any.js +2 -0
  226. package/dist/core/extract/extractors/any.js.map +1 -0
  227. package/dist/core/extract/extractors/array.d.ts +4 -0
  228. package/dist/core/extract/extractors/array.d.ts.map +1 -0
  229. package/dist/core/extract/extractors/array.js +19 -0
  230. package/dist/core/extract/extractors/array.js.map +1 -0
  231. package/dist/core/extract/extractors/bigint.d.ts +4 -0
  232. package/dist/core/extract/extractors/bigint.d.ts.map +1 -0
  233. package/dist/core/extract/extractors/bigint.js +70 -0
  234. package/dist/core/extract/extractors/bigint.js.map +1 -0
  235. package/dist/core/extract/extractors/boolean.d.ts +3 -0
  236. package/dist/core/extract/extractors/boolean.d.ts.map +1 -0
  237. package/dist/core/extract/extractors/boolean.js +5 -0
  238. package/dist/core/extract/extractors/boolean.js.map +1 -0
  239. package/dist/core/extract/extractors/catch.d.ts +11 -0
  240. package/dist/core/extract/extractors/catch.d.ts.map +1 -0
  241. package/dist/core/extract/extractors/catch.js +20 -0
  242. package/dist/core/extract/extractors/catch.js.map +1 -0
  243. package/dist/core/extract/extractors/date.d.ts +4 -0
  244. package/dist/core/extract/extractors/date.d.ts.map +1 -0
  245. package/dist/core/extract/extractors/date.js +49 -0
  246. package/dist/core/extract/extractors/date.js.map +1 -0
  247. package/dist/core/extract/extractors/default.d.ts +4 -0
  248. package/dist/core/extract/extractors/default.d.ts.map +1 -0
  249. package/dist/core/extract/extractors/default.js +11 -0
  250. package/dist/core/extract/extractors/default.js.map +1 -0
  251. package/dist/core/extract/extractors/enum.d.ts +3 -0
  252. package/dist/core/extract/extractors/enum.d.ts.map +1 -0
  253. package/dist/core/extract/extractors/enum.js +15 -0
  254. package/dist/core/extract/extractors/enum.js.map +1 -0
  255. package/dist/core/extract/extractors/file.d.ts +4 -0
  256. package/dist/core/extract/extractors/file.d.ts.map +1 -0
  257. package/dist/core/extract/extractors/file.js +24 -0
  258. package/dist/core/extract/extractors/file.js.map +1 -0
  259. package/dist/core/extract/extractors/index.d.ts +32 -0
  260. package/dist/core/extract/extractors/index.d.ts.map +1 -0
  261. package/dist/core/extract/extractors/index.js +32 -0
  262. package/dist/core/extract/extractors/index.js.map +1 -0
  263. package/dist/core/extract/extractors/intersection.d.ts +3 -0
  264. package/dist/core/extract/extractors/intersection.d.ts.map +1 -0
  265. package/dist/core/extract/extractors/intersection.js +14 -0
  266. package/dist/core/extract/extractors/intersection.js.map +1 -0
  267. package/dist/core/extract/extractors/lazy.d.ts +4 -0
  268. package/dist/core/extract/extractors/lazy.d.ts.map +1 -0
  269. package/dist/core/extract/extractors/lazy.js +23 -0
  270. package/dist/core/extract/extractors/lazy.js.map +1 -0
  271. package/dist/core/extract/extractors/literal.d.ts +3 -0
  272. package/dist/core/extract/extractors/literal.d.ts.map +1 -0
  273. package/dist/core/extract/extractors/literal.js +2 -0
  274. package/dist/core/extract/extractors/literal.js.map +1 -0
  275. package/dist/core/extract/extractors/map.d.ts +4 -0
  276. package/dist/core/extract/extractors/map.d.ts.map +1 -0
  277. package/dist/core/extract/extractors/map.js +6 -0
  278. package/dist/core/extract/extractors/map.js.map +1 -0
  279. package/dist/core/extract/extractors/nan.d.ts +3 -0
  280. package/dist/core/extract/extractors/nan.d.ts.map +1 -0
  281. package/dist/core/extract/extractors/nan.js +2 -0
  282. package/dist/core/extract/extractors/nan.js.map +1 -0
  283. package/dist/core/extract/extractors/never.d.ts +3 -0
  284. package/dist/core/extract/extractors/never.d.ts.map +1 -0
  285. package/dist/core/extract/extractors/never.js +2 -0
  286. package/dist/core/extract/extractors/never.js.map +1 -0
  287. package/dist/core/extract/extractors/null.d.ts +3 -0
  288. package/dist/core/extract/extractors/null.d.ts.map +1 -0
  289. package/dist/core/extract/extractors/null.js +2 -0
  290. package/dist/core/extract/extractors/null.js.map +1 -0
  291. package/dist/core/extract/extractors/nullable.d.ts +3 -0
  292. package/dist/core/extract/extractors/nullable.d.ts.map +1 -0
  293. package/dist/core/extract/extractors/nullable.js +5 -0
  294. package/dist/core/extract/extractors/nullable.js.map +1 -0
  295. package/dist/core/extract/extractors/number.d.ts +4 -0
  296. package/dist/core/extract/extractors/number.d.ts.map +1 -0
  297. package/dist/core/extract/extractors/number.js +38 -0
  298. package/dist/core/extract/extractors/number.js.map +1 -0
  299. package/dist/core/extract/extractors/object.d.ts +4 -0
  300. package/dist/core/extract/extractors/object.d.ts.map +1 -0
  301. package/dist/core/extract/extractors/object.js +43 -0
  302. package/dist/core/extract/extractors/object.js.map +1 -0
  303. package/dist/core/extract/extractors/optional.d.ts +3 -0
  304. package/dist/core/extract/extractors/optional.d.ts.map +1 -0
  305. package/dist/core/extract/extractors/optional.js +14 -0
  306. package/dist/core/extract/extractors/optional.js.map +1 -0
  307. package/dist/core/extract/extractors/pipe.d.ts +4 -0
  308. package/dist/core/extract/extractors/pipe.d.ts.map +1 -0
  309. package/dist/core/extract/extractors/pipe.js +31 -0
  310. package/dist/core/extract/extractors/pipe.js.map +1 -0
  311. package/dist/core/extract/extractors/readonly.d.ts +9 -0
  312. package/dist/core/extract/extractors/readonly.d.ts.map +1 -0
  313. package/dist/core/extract/extractors/readonly.js +8 -0
  314. package/dist/core/extract/extractors/readonly.js.map +1 -0
  315. package/dist/core/extract/extractors/record.d.ts +4 -0
  316. package/dist/core/extract/extractors/record.d.ts.map +1 -0
  317. package/dist/core/extract/extractors/record.js +39 -0
  318. package/dist/core/extract/extractors/record.js.map +1 -0
  319. package/dist/core/extract/extractors/set.d.ts +4 -0
  320. package/dist/core/extract/extractors/set.d.ts.map +1 -0
  321. package/dist/core/extract/extractors/set.js +33 -0
  322. package/dist/core/extract/extractors/set.js.map +1 -0
  323. package/dist/core/extract/extractors/string-bool.d.ts +10 -0
  324. package/dist/core/extract/extractors/string-bool.d.ts.map +1 -0
  325. package/dist/core/extract/extractors/string-bool.js +92 -0
  326. package/dist/core/extract/extractors/string-bool.js.map +1 -0
  327. package/dist/core/extract/extractors/string.d.ts +4 -0
  328. package/dist/core/extract/extractors/string.d.ts.map +1 -0
  329. package/dist/core/extract/extractors/string.js +41 -0
  330. package/dist/core/extract/extractors/string.js.map +1 -0
  331. package/dist/core/extract/extractors/symbol.d.ts +3 -0
  332. package/dist/core/extract/extractors/symbol.d.ts.map +1 -0
  333. package/dist/core/extract/extractors/symbol.js +2 -0
  334. package/dist/core/extract/extractors/symbol.js.map +1 -0
  335. package/dist/core/extract/extractors/template-literal.d.ts +4 -0
  336. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -0
  337. package/dist/core/extract/extractors/template-literal.js +8 -0
  338. package/dist/core/extract/extractors/template-literal.js.map +1 -0
  339. package/dist/core/extract/extractors/tuple.d.ts +4 -0
  340. package/dist/core/extract/extractors/tuple.d.ts.map +1 -0
  341. package/dist/core/extract/extractors/tuple.js +6 -0
  342. package/dist/core/extract/extractors/tuple.js.map +1 -0
  343. package/dist/core/extract/extractors/undefined.d.ts +3 -0
  344. package/dist/core/extract/extractors/undefined.d.ts.map +1 -0
  345. package/dist/core/extract/extractors/undefined.js +2 -0
  346. package/dist/core/extract/extractors/undefined.js.map +1 -0
  347. package/dist/core/extract/extractors/union.d.ts +4 -0
  348. package/dist/core/extract/extractors/union.d.ts.map +1 -0
  349. package/dist/core/extract/extractors/union.js +44 -0
  350. package/dist/core/extract/extractors/union.js.map +1 -0
  351. package/dist/core/extract/extractors/unknown.d.ts +3 -0
  352. package/dist/core/extract/extractors/unknown.d.ts.map +1 -0
  353. package/dist/core/extract/extractors/unknown.js +2 -0
  354. package/dist/core/extract/extractors/unknown.js.map +1 -0
  355. package/dist/core/extract/extractors/void.d.ts +3 -0
  356. package/dist/core/extract/extractors/void.d.ts.map +1 -0
  357. package/dist/core/extract/extractors/void.js +2 -0
  358. package/dist/core/extract/extractors/void.js.map +1 -0
  359. package/dist/core/extract/fallback.d.ts +4 -0
  360. package/dist/core/extract/fallback.d.ts.map +1 -0
  361. package/dist/core/extract/fallback.js +9 -0
  362. package/dist/core/extract/fallback.js.map +1 -0
  363. package/dist/core/extract/index.d.ts +11 -0
  364. package/dist/core/extract/index.d.ts.map +1 -0
  365. package/dist/core/extract/index.js +11 -0
  366. package/dist/core/extract/index.js.map +1 -0
  367. package/dist/core/extract/registry.d.ts +59 -0
  368. package/dist/core/extract/registry.d.ts.map +1 -0
  369. package/dist/core/extract/registry.js +152 -0
  370. package/dist/core/extract/registry.js.map +1 -0
  371. package/dist/core/extract/types.d.ts +114 -0
  372. package/dist/core/extract/types.d.ts.map +1 -0
  373. package/dist/core/extract/types.js +2 -0
  374. package/dist/core/extract/types.js.map +1 -0
  375. package/dist/core/iife.d.ts +38 -0
  376. package/dist/core/iife.d.ts.map +1 -0
  377. package/dist/core/iife.js +59 -0
  378. package/dist/core/iife.js.map +1 -0
  379. package/dist/core/pipeline.d.ts +26 -0
  380. package/dist/core/pipeline.d.ts.map +1 -0
  381. package/dist/core/pipeline.js +42 -0
  382. package/dist/core/pipeline.js.map +1 -0
  383. package/dist/core/types.d.ts +352 -0
  384. package/dist/core/types.d.ts.map +1 -0
  385. package/dist/core/types.js +6 -0
  386. package/dist/core/types.js.map +1 -0
  387. package/dist/discovery.d.ts +15 -0
  388. package/dist/discovery.d.ts.map +1 -0
  389. package/dist/discovery.js +40 -0
  390. package/dist/discovery.js.map +1 -0
  391. package/dist/index.d.ts +4 -670
  392. package/dist/index.d.ts.map +1 -0
  393. package/dist/index.js +2 -2550
  394. package/dist/index.js.map +1 -0
  395. package/dist/loader.d.ts +12 -0
  396. package/dist/loader.d.ts.map +1 -0
  397. package/dist/loader.js +76 -0
  398. package/dist/loader.js.map +1 -0
  399. package/dist/unplugin/bun.d.ts +3 -0
  400. package/dist/unplugin/bun.d.ts.map +1 -0
  401. package/dist/unplugin/bun.js +3 -0
  402. package/dist/unplugin/bun.js.map +1 -0
  403. package/dist/unplugin/esbuild.d.ts +3 -0
  404. package/dist/unplugin/esbuild.d.ts.map +1 -0
  405. package/dist/unplugin/esbuild.js +3 -0
  406. package/dist/unplugin/esbuild.js.map +1 -0
  407. package/dist/unplugin/farm.d.ts +3 -0
  408. package/dist/unplugin/farm.d.ts.map +1 -0
  409. package/dist/unplugin/farm.js +3 -0
  410. package/dist/unplugin/farm.js.map +1 -0
  411. package/dist/unplugin/index.d.ts +4 -0
  412. package/dist/unplugin/index.d.ts.map +1 -0
  413. package/dist/unplugin/index.js +75 -0
  414. package/dist/unplugin/index.js.map +1 -0
  415. package/dist/unplugin/rolldown.d.ts +3 -0
  416. package/dist/unplugin/rolldown.d.ts.map +1 -0
  417. package/dist/unplugin/rolldown.js +3 -0
  418. package/dist/unplugin/rolldown.js.map +1 -0
  419. package/dist/unplugin/rollup.d.ts +3 -0
  420. package/dist/unplugin/rollup.d.ts.map +1 -0
  421. package/dist/unplugin/rollup.js +3 -0
  422. package/dist/unplugin/rollup.js.map +1 -0
  423. package/dist/unplugin/rspack.d.ts +3 -0
  424. package/dist/unplugin/rspack.d.ts.map +1 -0
  425. package/dist/unplugin/rspack.js +3 -0
  426. package/dist/unplugin/rspack.js.map +1 -0
  427. package/dist/unplugin/transform.d.ts +36 -0
  428. package/dist/unplugin/transform.d.ts.map +1 -0
  429. package/dist/unplugin/transform.js +285 -0
  430. package/dist/unplugin/transform.js.map +1 -0
  431. package/dist/unplugin/types.d.ts +54 -0
  432. package/dist/unplugin/types.d.ts.map +1 -0
  433. package/dist/unplugin/types.js +19 -0
  434. package/dist/unplugin/types.js.map +1 -0
  435. package/dist/unplugin/virtual.d.ts +24 -0
  436. package/dist/unplugin/virtual.d.ts.map +1 -0
  437. package/dist/unplugin/virtual.js +62 -0
  438. package/dist/unplugin/virtual.js.map +1 -0
  439. package/dist/unplugin/vite.d.ts +3 -0
  440. package/dist/unplugin/vite.d.ts.map +1 -0
  441. package/dist/unplugin/vite.js +3 -0
  442. package/dist/unplugin/vite.js.map +1 -0
  443. package/dist/unplugin/webpack.d.ts +3 -0
  444. package/dist/unplugin/webpack.d.ts.map +1 -0
  445. package/dist/unplugin/webpack.js +3 -0
  446. package/dist/unplugin/webpack.js.map +1 -0
  447. package/package.json +110 -51
  448. package/dist/index.mjs +0 -2536
  449. package/dist/standalone.d.ts +0 -294
  450. package/dist/standalone.js +0 -523
  451. package/dist/standalone.mjs +0 -514
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface Colors {
2
+ reset: string;
3
+ red: string;
4
+ green: string;
5
+ yellow: string;
6
+ cyan: string;
7
+ dim: string;
8
+ bold: string;
9
+ }
10
+ export declare function createColors(enabled: boolean): Colors;
11
+ export declare const logger: {
12
+ info(msg: string): void;
13
+ success(msg: string): void;
14
+ warn(msg: string): void;
15
+ error(msg: string): void;
16
+ dim(msg: string): void;
17
+ };
18
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/cli/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAYD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAWrD;AASD,eAAO,MAAM,MAAM;cACP,MAAM,GAAG,IAAI;iBAGV,MAAM,GAAG,IAAI;cAGhB,MAAM,GAAG,IAAI;eAGZ,MAAM,GAAG,IAAI;aAGf,MAAM,GAAG,IAAI;CAGvB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import process from "node:process";
2
+ const NO_COLORS = {
3
+ reset: "",
4
+ red: "",
5
+ green: "",
6
+ yellow: "",
7
+ cyan: "",
8
+ dim: "",
9
+ bold: "",
10
+ };
11
+ export function createColors(enabled) {
12
+ if (!enabled)
13
+ return NO_COLORS;
14
+ return {
15
+ reset: "\x1b[0m",
16
+ red: "\x1b[31m",
17
+ green: "\x1b[32m",
18
+ yellow: "\x1b[33m",
19
+ cyan: "\x1b[36m",
20
+ dim: "\x1b[2m",
21
+ bold: "\x1b[1m",
22
+ };
23
+ }
24
+ const colors = createColors(process.stdout.isTTY === true);
25
+ // biome-ignore lint/suspicious/noConsole: CLI output
26
+ const log = console.log;
27
+ // biome-ignore lint/suspicious/noConsole: CLI output
28
+ const logError = console.error;
29
+ export const logger = {
30
+ info(msg) {
31
+ log(`${colors.cyan}info${colors.reset} ${msg}`);
32
+ },
33
+ success(msg) {
34
+ log(`${colors.green}done${colors.reset} ${msg}`);
35
+ },
36
+ warn(msg) {
37
+ logError(`${colors.yellow}warn${colors.reset} ${msg}`);
38
+ },
39
+ error(msg) {
40
+ logError(`${colors.red}error${colors.reset} ${msg}`);
41
+ },
42
+ dim(msg) {
43
+ log(`${colors.dim}${msg}${colors.reset}`);
44
+ },
45
+ };
46
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/cli/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAYnC,MAAM,SAAS,GAAW;IACxB,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAE3D,qDAAqD;AACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACxB,qDAAqD;AACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;AAE/B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,CAAC,GAAW;QACd,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,GAAW;QACjB,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,GAAW;QACd,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,GAAW;QACf,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,QAAQ,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,GAAG,CAAC,GAAW;QACb,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC"}
@@ -0,0 +1,138 @@
1
+ import type { BigIntCheckIR, CheckIR, CheckOrEffectIR, DateCheckIR, SchemaIR, SetCheckIR } from "../types.js";
2
+ /** Codegen output mode. "inline" emits self-contained code (CLI .compiled.ts). "lean" emits references to imports from "virtual:zod-compiler/runtime" (unplugin). */
3
+ export type CodegenMode = "inline" | "lean";
4
+ export interface CodeGenResult {
5
+ code: string;
6
+ functionDef: string;
7
+ /** Number of fallback schemas referenced by __rf[N] in the generated code. 0 = no fallbacks. */
8
+ refCount: number;
9
+ /**
10
+ * Helper names referenced by this schema in lean mode (e.g. "__zaTS", "__zaReEmail").
11
+ * Used by the unplugin transform to construct the `import { ... } from "virtual:zod-compiler/runtime"` line.
12
+ * Always empty in inline mode.
13
+ */
14
+ usedHelpers: Set<string>;
15
+ }
16
+ /** Shared mutable state for code generation. Fast and slow paths share the same instance. */
17
+ export interface CodeGenContext {
18
+ preamble: string[];
19
+ counter: number;
20
+ fnName: string;
21
+ /** Deduplicates regex patterns: same pattern string → same preamble variable name. */
22
+ regexCache: Map<string, string>;
23
+ /** Codegen output mode. */
24
+ mode: CodegenMode;
25
+ /** Names of helpers from "virtual:zod-compiler/runtime" referenced in this schema (lean mode only). */
26
+ usedHelpers: Set<string>;
27
+ }
28
+ /** Context object for slow-path (error-collecting) generator functions. */
29
+ export interface SlowGen {
30
+ readonly input: string;
31
+ readonly output: string;
32
+ readonly path: string;
33
+ readonly issues: string;
34
+ readonly ctx: CodeGenContext;
35
+ /**
36
+ * Schema-level static error message of the node being generated
37
+ * (z.string({ error: "..." })). Default message for issues this node emits
38
+ * when the individual check has no message of its own. Set by generateSlow()
39
+ * from ir.typeMessage; never inherited by child nodes.
40
+ */
41
+ readonly typeMsg?: string | undefined;
42
+ /**
43
+ * Recursively generate validation for a child IR node.
44
+ * All fields are inherited from parent unless overridden.
45
+ * Union generators use `{ issues }` to redirect child errors to temporary arrays.
46
+ * Container generators use `{ input, output, path }` for element traversal.
47
+ */
48
+ visit(ir: SchemaIR, overrides?: {
49
+ input?: string;
50
+ output?: string;
51
+ path?: string;
52
+ issues?: string;
53
+ }): string;
54
+ /** Generate a unique temp variable name: `__${prefix}_${counter++}` */
55
+ temp(prefix: string): string;
56
+ /** Add a regex to preamble and return the variable name. */
57
+ regex(prefix: string, pattern: string, flags?: string): string;
58
+ /** Add a Set to preamble and return the variable name. */
59
+ set(prefix: string, values: readonly unknown[]): string;
60
+ }
61
+ /** Slow-path generator function signature — registered in slowRegistry. */
62
+ export type SlowGenerator<T extends SchemaIR = SchemaIR> = (ir: T, g: SlowGen) => string;
63
+ /** Context object for fast-path (boolean expression) generator functions. */
64
+ export interface FastGen {
65
+ readonly input: string;
66
+ readonly ctx: CodeGenContext;
67
+ /**
68
+ * Recursively generate fast-check expression for a child IR node.
69
+ * Returns null if any child is ineligible for fast path.
70
+ */
71
+ visit(ir: SchemaIR, overrides?: {
72
+ input?: string;
73
+ }): string | null;
74
+ /** Generate a unique temp variable name. */
75
+ temp(prefix: string): string;
76
+ /** Add a regex to preamble and return the variable name. */
77
+ regex(prefix: string, pattern: string, flags?: string): string;
78
+ }
79
+ /** Fast-path generator function signature — registered in fastRegistry. */
80
+ export type FastGenerator<T extends SchemaIR = SchemaIR> = (ir: T, g: FastGen) => string | null;
81
+ /** Allocate a fresh `__${prefix}_${n}` identifier and bump the shared counter. */
82
+ export declare function emitTemp(ctx: CodeGenContext, prefix: string): string;
83
+ /**
84
+ * Resolve a regex pattern to a runtime variable name.
85
+ * Lean mode short-circuits well-known patterns to virtual-module names so the
86
+ * bundler can dedup across files; everything else is cached + declared in the
87
+ * per-IIFE preamble exactly once per pattern.
88
+ */
89
+ export declare function emitRegex(ctx: CodeGenContext, prefix: string, pattern: string, flags?: string): string;
90
+ /** Declare a `new Set([...])` in the preamble and return its variable name. */
91
+ export declare function emitSet(ctx: CodeGenContext, prefix: string, values: readonly unknown[]): string;
92
+ /** Enum values at or below this count use inline === checks instead of Set.has(). */
93
+ export declare const ENUM_INLINE_THRESHOLD = 3;
94
+ export declare function escapeString(s: string | number): string;
95
+ /**
96
+ * JS source for a primitive literal value (literal schemas, discriminator
97
+ * case labels). JSON.stringify covers string/number/boolean/null; bigint
98
+ * needs the `n` suffix (JSON.stringify throws and String(5n) renders a
99
+ * number literal that never strict-equals a bigint); undefined isn't JSON.
100
+ */
101
+ export declare function literalToJs(v: string | number | boolean | null | bigint | undefined): string;
102
+ /**
103
+ * Reference a shared runtime helper (e.g. __zaFsr) from generated code.
104
+ * Lean mode: registers it for the `virtual:zod-compiler/runtime` import.
105
+ * Inline mode: declares it once in the per-IIFE preamble.
106
+ */
107
+ export declare function emitRuntimeHelper(ctx: CodeGenContext, name: string, decl: string): string;
108
+ /**
109
+ * Extend a path expression with a static string key.
110
+ * Avoids [].concat("key") at root level; falls back to .concat() for nested paths.
111
+ */
112
+ export declare function extendStaticPath(parentPath: string, key: string): string;
113
+ /**
114
+ * Extend a path expression with a numeric index.
115
+ * Avoids [].concat(0) at root level; falls back to .concat() for nested paths.
116
+ */
117
+ export declare function extendStaticPathIndex(parentPath: string, index: number): string;
118
+ /**
119
+ * Check if a SchemaIR tree contains any value-mutating operations
120
+ * (coerce, default, catch) that would write back to the input expression.
121
+ * Used by container generators to decide whether to shallow-clone.
122
+ */
123
+ export declare function hasMutation(ir: SchemaIR): boolean;
124
+ /**
125
+ * Sort comparator for CheckIR: cheapest/most-discriminating checks first.
126
+ * Used by fast-path generators after filtering out refine_effect entries.
127
+ */
128
+ export declare function checkPriority(a: CheckIR | BigIntCheckIR | DateCheckIR | SetCheckIR, b: CheckIR | BigIntCheckIR | DateCheckIR | SetCheckIR): number;
129
+ /**
130
+ * Sort compilable checks by cost (cheapest first) while preserving
131
+ * the original position of refine_effect entries.
132
+ *
133
+ * Zod preserves insertion order for checks. Compilable checks (typeof, length,
134
+ * regex) are reordered for performance, but refine_effect entries stay at their
135
+ * original index to maintain semantic parity with Zod.
136
+ */
137
+ export declare function sortChecksPreservingEffects<T extends CheckIR | CheckOrEffectIR | BigIntCheckIR | DateCheckIR>(checks: T[]): T[];
138
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ import { lookupWellKnownRegex } from "./well-known-regex.js";
2
+ // ─── Shared emit helpers (used by both slow-path and fast-path factories) ────
3
+ /** Allocate a fresh `__${prefix}_${n}` identifier and bump the shared counter. */
4
+ export function emitTemp(ctx, prefix) {
5
+ return `__${prefix}_${ctx.counter++}`;
6
+ }
7
+ /**
8
+ * Resolve a regex pattern to a runtime variable name.
9
+ * Lean mode short-circuits well-known patterns to virtual-module names so the
10
+ * bundler can dedup across files; everything else is cached + declared in the
11
+ * per-IIFE preamble exactly once per pattern.
12
+ */
13
+ export function emitRegex(ctx, prefix, pattern, flags) {
14
+ if (ctx.mode === "lean" && !flags) {
15
+ const wellKnown = lookupWellKnownRegex(pattern);
16
+ if (wellKnown !== null) {
17
+ ctx.usedHelpers.add(wellKnown);
18
+ return wellKnown;
19
+ }
20
+ }
21
+ const cacheKey = flags ? `${flags}\u0000${pattern}` : pattern;
22
+ const cached = ctx.regexCache.get(cacheKey);
23
+ if (cached)
24
+ return cached;
25
+ const name = `__re_${prefix}_${ctx.counter++}`;
26
+ const flagsArg = flags ? `,${escapeString(flags)}` : "";
27
+ ctx.preamble.push(`var ${name}=new RegExp(${escapeString(pattern)}${flagsArg});`);
28
+ ctx.regexCache.set(cacheKey, name);
29
+ return name;
30
+ }
31
+ /** Declare a `new Set([...])` in the preamble and return its variable name. */
32
+ export function emitSet(ctx, prefix, values) {
33
+ const name = `__set_${prefix}_${ctx.counter++}`;
34
+ ctx.preamble.push(`var ${name}=new Set(${JSON.stringify([...values])});`);
35
+ return name;
36
+ }
37
+ /** Enum values at or below this count use inline === checks instead of Set.has(). */
38
+ export const ENUM_INLINE_THRESHOLD = 3;
39
+ const CHECK_PRIORITY = {
40
+ // Cheapest: length/size comparisons (O(1))
41
+ min_length: 10,
42
+ max_length: 11,
43
+ length_equals: 12,
44
+ min_size: 13,
45
+ max_size: 14,
46
+ // Number format checks (comparison + bitwise)
47
+ number_format: 15,
48
+ // Range comparisons
49
+ greater_than: 20,
50
+ less_than: 21,
51
+ bigint_greater_than: 20,
52
+ bigint_less_than: 21,
53
+ date_greater_than: 22,
54
+ date_less_than: 23,
55
+ // Modulo
56
+ multiple_of: 30,
57
+ bigint_multiple_of: 30,
58
+ // String prefix/suffix (O(prefix/suffix length))
59
+ starts_with: 40,
60
+ ends_with: 41,
61
+ // String search (O(n·m) worst case)
62
+ includes: 42,
63
+ // Regex (most expensive)
64
+ string_format: 50,
65
+ };
66
+ export function escapeString(s) {
67
+ return JSON.stringify(s);
68
+ }
69
+ /**
70
+ * JS source for a primitive literal value (literal schemas, discriminator
71
+ * case labels). JSON.stringify covers string/number/boolean/null; bigint
72
+ * needs the `n` suffix (JSON.stringify throws and String(5n) renders a
73
+ * number literal that never strict-equals a bigint); undefined isn't JSON.
74
+ */
75
+ export function literalToJs(v) {
76
+ if (typeof v === "bigint")
77
+ return `${v}n`;
78
+ if (v === undefined)
79
+ return "undefined";
80
+ return JSON.stringify(v);
81
+ }
82
+ /**
83
+ * Reference a shared runtime helper (e.g. __zaFsr) from generated code.
84
+ * Lean mode: registers it for the `virtual:zod-compiler/runtime` import.
85
+ * Inline mode: declares it once in the per-IIFE preamble.
86
+ */
87
+ export function emitRuntimeHelper(ctx, name, decl) {
88
+ if (ctx.mode === "lean") {
89
+ ctx.usedHelpers.add(name);
90
+ }
91
+ else if (!ctx.preamble.includes(decl)) {
92
+ ctx.preamble.push(decl);
93
+ }
94
+ return name;
95
+ }
96
+ /**
97
+ * Extend a path expression with a static string key.
98
+ * Avoids [].concat("key") at root level; falls back to .concat() for nested paths.
99
+ */
100
+ export function extendStaticPath(parentPath, key) {
101
+ if (parentPath === "[]")
102
+ return `[${escapeString(key)}]`;
103
+ return `${parentPath}.concat(${escapeString(key)})`;
104
+ }
105
+ /**
106
+ * Extend a path expression with a numeric index.
107
+ * Avoids [].concat(0) at root level; falls back to .concat() for nested paths.
108
+ */
109
+ export function extendStaticPathIndex(parentPath, index) {
110
+ if (parentPath === "[]")
111
+ return `[${index}]`;
112
+ return `${parentPath}.concat(${index})`;
113
+ }
114
+ /**
115
+ * Check if a SchemaIR tree contains any value-mutating operations
116
+ * (coerce, default, catch) that would write back to the input expression.
117
+ * Used by container generators to decide whether to shallow-clone.
118
+ */
119
+ export function hasMutation(ir) {
120
+ switch (ir.type) {
121
+ case "string":
122
+ // url checks trim (and optionally normalize) the value; overwrite
123
+ // effects (.trim(), .toLowerCase()) rewrite it.
124
+ return (ir.coerce === true ||
125
+ ir.checks.some((c) => c.kind === "overwrite_effect" || (c.kind === "string_format" && c.format === "url")));
126
+ case "number":
127
+ case "boolean":
128
+ case "bigint":
129
+ case "date":
130
+ return ir.coerce === true;
131
+ case "default":
132
+ case "catch":
133
+ case "effect":
134
+ case "fallback":
135
+ case "stringBool":
136
+ return true;
137
+ case "object":
138
+ return Object.values(ir.properties).some(hasMutation);
139
+ case "array":
140
+ return hasMutation(ir.element);
141
+ case "tuple":
142
+ return ir.items.some(hasMutation) || (ir.rest !== null && hasMutation(ir.rest));
143
+ case "record":
144
+ return hasMutation(ir.valueType);
145
+ case "optional":
146
+ case "nullable":
147
+ case "readonly":
148
+ return hasMutation(ir.inner);
149
+ case "union":
150
+ case "discriminatedUnion":
151
+ return ir.options.some(hasMutation);
152
+ case "intersection":
153
+ return hasMutation(ir.left) || hasMutation(ir.right);
154
+ case "pipe":
155
+ return hasMutation(ir.in) || hasMutation(ir.out);
156
+ case "set":
157
+ return hasMutation(ir.valueType);
158
+ case "map":
159
+ return hasMutation(ir.keyType) || hasMutation(ir.valueType);
160
+ case "file":
161
+ return false;
162
+ default:
163
+ return false;
164
+ }
165
+ }
166
+ /**
167
+ * Sort comparator for CheckIR: cheapest/most-discriminating checks first.
168
+ * Used by fast-path generators after filtering out refine_effect entries.
169
+ */
170
+ export function checkPriority(a, b) {
171
+ return (CHECK_PRIORITY[a.kind] ?? 99) - (CHECK_PRIORITY[b.kind] ?? 99);
172
+ }
173
+ /**
174
+ * Sort compilable checks by cost (cheapest first) while preserving
175
+ * the original position of refine_effect entries.
176
+ *
177
+ * Zod preserves insertion order for checks. Compilable checks (typeof, length,
178
+ * regex) are reordered for performance, but refine_effect entries stay at their
179
+ * original index to maintain semantic parity with Zod.
180
+ */
181
+ export function sortChecksPreservingEffects(checks) {
182
+ // Value-mutating checks (overwrite effects, trimming url checks) make order
183
+ // semantically load-bearing: a length check before vs after .trim() measures
184
+ // different strings. Keep Zod's exact order when any mutator is present.
185
+ const isMutator = (c) => c.kind === "overwrite_effect" || (c.kind === "string_format" && c.format === "url");
186
+ if (checks.some(isMutator)) {
187
+ return [...checks];
188
+ }
189
+ const result = new Array(checks.length);
190
+ const compilable = [];
191
+ // First pass: place refine_effects at their original positions
192
+ for (let i = 0; i < checks.length; i++) {
193
+ const check = checks[i];
194
+ if (check.kind === "refine_effect") {
195
+ result[i] = check;
196
+ }
197
+ else {
198
+ compilable.push({ check, originalIndex: i });
199
+ }
200
+ }
201
+ // Sort compilable checks by priority (cheapest first)
202
+ compilable.sort((a, b) => (CHECK_PRIORITY[a.check.kind] ?? 99) - (CHECK_PRIORITY[b.check.kind] ?? 99));
203
+ // Fill remaining slots with sorted compilable checks
204
+ let ci = 0;
205
+ for (let i = 0; i < result.length; i++) {
206
+ if (result[i] === undefined) {
207
+ const entry = compilable[ci++];
208
+ result[i] = entry.check;
209
+ }
210
+ }
211
+ return result;
212
+ }
213
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Issue object emit helpers.
3
+ *
4
+ * Each helper returns a string of the form `_e.push(...)` (or equivalent on a
5
+ * caller-supplied issues variable). Two emit modes:
6
+ *
7
+ * - inline (CLI .compiled.ts): emits the literal `{code:"too_small",...}` object.
8
+ * - lean (unplugin): emits a call like `__zaTS(min,origin,inclusive,input,path)`
9
+ * and registers the helper in `ctx.usedHelpers` so the transform layer can
10
+ * construct the corresponding `import` from `"virtual:zod-compiler/runtime"`.
11
+ *
12
+ * Centralizing all issue emission here means schema codegen files don't carry
13
+ * the inline/lean branching; they just call `tooSmall(g, ...)` etc.
14
+ *
15
+ * Message resolution mirrors Zod, which consults the error map of the
16
+ * INSTANCE that created the issue:
17
+ * - check-created issues (min/max/format/refine): per-check message only
18
+ * (options.message, extracted from `.min(3, "msg")`)
19
+ * - schema-created issues (invalid_type, enum/literal invalid_value, tuple
20
+ * length, invalid_union, invalid_key): schema-level message (g.typeMsg,
21
+ * from `z.string({ error: "msg" })`)
22
+ * Helpers default per the most common call-site kind; size-issue emitters
23
+ * accept `useTypeMsg: true` for node-level uses (tuple), and invalidValue
24
+ * accepts `useTypeMsg: false` for check-level uses (file mime).
25
+ * When no message lands, the __fin finalizer applies the locale default.
26
+ */
27
+ import type { CodeGenContext } from "./context.js";
28
+ /** Common slim slice of SlowGen + FastGen needed for issue emission. */
29
+ interface IssueGen {
30
+ readonly issues: string;
31
+ readonly input: string;
32
+ readonly path: string;
33
+ readonly ctx: CodeGenContext;
34
+ readonly typeMsg?: string | undefined;
35
+ }
36
+ export declare function tooSmall(g: IssueGen, minimum: string | number, origin: string, inclusive: boolean, options?: {
37
+ exact?: boolean;
38
+ input?: string;
39
+ path?: string;
40
+ message?: string | undefined;
41
+ /** Set for node-level issues (tuple length) where schema error applies. */
42
+ useTypeMsg?: boolean;
43
+ }): string;
44
+ export declare function tooBig(g: IssueGen, maximum: string | number, origin: string, inclusive: boolean, options?: {
45
+ exact?: boolean;
46
+ input?: string;
47
+ path?: string;
48
+ message?: string | undefined;
49
+ /** Set for node-level issues (tuple length) where schema error applies. */
50
+ useTypeMsg?: boolean;
51
+ }): string;
52
+ export declare function invalidType(g: IssueGen, expected: string, options?: {
53
+ input?: string;
54
+ path?: string;
55
+ extra?: string;
56
+ message?: string | undefined;
57
+ }): string;
58
+ export declare function invalidFormat(g: IssueGen, format: string | {
59
+ expr: string;
60
+ }, options?: {
61
+ input?: string;
62
+ path?: string;
63
+ extra?: string;
64
+ message?: string | undefined;
65
+ }): string;
66
+ export declare function invalidValue(g: IssueGen, valuesExpr: string, options?: {
67
+ input?: string;
68
+ path?: string;
69
+ message?: string | undefined;
70
+ /** Set to false for check-level issues (file mime) where schema error does not apply. */
71
+ useTypeMsg?: boolean;
72
+ }): string;
73
+ export {};
74
+ //# sourceMappingURL=emit-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-issue.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/emit-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,wEAAwE;AACxE,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAyBD,wBAAgB,QAAQ,CACtB,CAAC,EAAE,QAAQ,EACX,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,MAAM,CA6BR;AAED,wBAAgB,MAAM,CACpB,CAAC,EAAE,QAAQ,EACX,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,MAAM,CA6BR;AAED,wBAAgB,WAAW,CACzB,CAAC,EAAE,QAAQ,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxF,MAAM,CAcR;AAED,wBAAgB,aAAa,CAC3B,CAAC,EAAE,QAAQ,EACX,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxF,MAAM,CAgBR;AAED,wBAAgB,YAAY,CAC1B,CAAC,EAAE,QAAQ,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,MAAM,CAaR"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Issue object emit helpers.
3
+ *
4
+ * Each helper returns a string of the form `_e.push(...)` (or equivalent on a
5
+ * caller-supplied issues variable). Two emit modes:
6
+ *
7
+ * - inline (CLI .compiled.ts): emits the literal `{code:"too_small",...}` object.
8
+ * - lean (unplugin): emits a call like `__zaTS(min,origin,inclusive,input,path)`
9
+ * and registers the helper in `ctx.usedHelpers` so the transform layer can
10
+ * construct the corresponding `import` from `"virtual:zod-compiler/runtime"`.
11
+ *
12
+ * Centralizing all issue emission here means schema codegen files don't carry
13
+ * the inline/lean branching; they just call `tooSmall(g, ...)` etc.
14
+ *
15
+ * Message resolution mirrors Zod, which consults the error map of the
16
+ * INSTANCE that created the issue:
17
+ * - check-created issues (min/max/format/refine): per-check message only
18
+ * (options.message, extracted from `.min(3, "msg")`)
19
+ * - schema-created issues (invalid_type, enum/literal invalid_value, tuple
20
+ * length, invalid_union, invalid_key): schema-level message (g.typeMsg,
21
+ * from `z.string({ error: "msg" })`)
22
+ * Helpers default per the most common call-site kind; size-issue emitters
23
+ * accept `useTypeMsg: true` for node-level uses (tuple), and invalidValue
24
+ * accepts `useTypeMsg: false` for check-level uses (file mime).
25
+ * When no message lands, the __fin finalizer applies the locale default.
26
+ */
27
+ import { escapeString } from "./context.js";
28
+ function pushIssue(g, body) {
29
+ return `${g.issues}.push(${body});`;
30
+ }
31
+ /** Resolve the effective static message for an issue site. */
32
+ function resolveMessage(g, explicit, useTypeMsg) {
33
+ return explicit ?? (useTypeMsg ? g.typeMsg : undefined);
34
+ }
35
+ /** `,message:"..."` fragment for inline object literals ("" when no message). */
36
+ function messageProp(m) {
37
+ return m === undefined ? "" : `,message:${escapeString(m)}`;
38
+ }
39
+ /** `,"..."` trailing argument fragment for lean factory calls ("" when no message). */
40
+ function messageArg(m) {
41
+ return m === undefined ? "" : `,${escapeString(m)}`;
42
+ }
43
+ export function tooSmall(g, minimum, origin, inclusive, options) {
44
+ const input = options?.input ?? g.input;
45
+ const path = options?.path ?? g.path;
46
+ const exact = options?.exact === true;
47
+ const m = resolveMessage(g, options?.message, options?.useTypeMsg === true);
48
+ if (g.ctx.mode === "lean") {
49
+ if (exact) {
50
+ g.ctx.usedHelpers.add("__zaTSx");
51
+ return pushIssue(g, `__zaTSx(${minimum},${escapeString(origin)},${input},${path}${messageArg(m)})`);
52
+ }
53
+ g.ctx.usedHelpers.add("__zaTS");
54
+ return pushIssue(g, `__zaTS(${minimum},${escapeString(origin)},${inclusive},${input},${path}${messageArg(m)})`);
55
+ }
56
+ if (exact) {
57
+ return pushIssue(g, `{code:"too_small",minimum:${minimum},origin:${escapeString(origin)},inclusive:true,exact:true${messageProp(m)},input:${input},path:${path}}`);
58
+ }
59
+ return pushIssue(g, `{code:"too_small",minimum:${minimum},origin:${escapeString(origin)},inclusive:${inclusive}${messageProp(m)},input:${input},path:${path}}`);
60
+ }
61
+ export function tooBig(g, maximum, origin, inclusive, options) {
62
+ const input = options?.input ?? g.input;
63
+ const path = options?.path ?? g.path;
64
+ const exact = options?.exact === true;
65
+ const m = resolveMessage(g, options?.message, options?.useTypeMsg === true);
66
+ if (g.ctx.mode === "lean") {
67
+ if (exact) {
68
+ g.ctx.usedHelpers.add("__zaTBx");
69
+ return pushIssue(g, `__zaTBx(${maximum},${escapeString(origin)},${input},${path}${messageArg(m)})`);
70
+ }
71
+ g.ctx.usedHelpers.add("__zaTB");
72
+ return pushIssue(g, `__zaTB(${maximum},${escapeString(origin)},${inclusive},${input},${path}${messageArg(m)})`);
73
+ }
74
+ if (exact) {
75
+ return pushIssue(g, `{code:"too_big",maximum:${maximum},origin:${escapeString(origin)},inclusive:true,exact:true${messageProp(m)},input:${input},path:${path}}`);
76
+ }
77
+ return pushIssue(g, `{code:"too_big",maximum:${maximum},origin:${escapeString(origin)},inclusive:${inclusive}${messageProp(m)},input:${input},path:${path}}`);
78
+ }
79
+ export function invalidType(g, expected, options) {
80
+ const input = options?.input ?? g.input;
81
+ const path = options?.path ?? g.path;
82
+ // invalid_type is always created by the schema node — schema error applies.
83
+ const m = resolveMessage(g, options?.message, true);
84
+ if (g.ctx.mode === "lean" && !options?.extra) {
85
+ g.ctx.usedHelpers.add("__zaIT");
86
+ return pushIssue(g, `__zaIT(${escapeString(expected)},${input},${path}${messageArg(m)})`);
87
+ }
88
+ const extra = options?.extra ? `,${options.extra}` : "";
89
+ return pushIssue(g, `{code:"invalid_type",expected:${escapeString(expected)}${extra}${messageProp(m)},input:${input},path:${path}}`);
90
+ }
91
+ export function invalidFormat(g, format, options) {
92
+ const input = options?.input ?? g.input;
93
+ const path = options?.path ?? g.path;
94
+ const formatExpr = typeof format === "string" ? escapeString(format) : format.expr;
95
+ // Format issues are created by check instances — schema error never applies.
96
+ const m = options?.message;
97
+ if (g.ctx.mode === "lean") {
98
+ g.ctx.usedHelpers.add("__zaIF");
99
+ const extraArg = options?.extra ? `,{${options.extra}}` : m !== undefined ? ",undefined" : "";
100
+ return pushIssue(g, `__zaIF(${formatExpr},${input},${path}${extraArg}${messageArg(m)})`);
101
+ }
102
+ const extra = options?.extra ? `,${options.extra}` : "";
103
+ return pushIssue(g, `{code:"invalid_format",format:${formatExpr}${extra}${messageProp(m)},input:${input},path:${path}}`);
104
+ }
105
+ export function invalidValue(g, valuesExpr, options) {
106
+ const input = options?.input ?? g.input;
107
+ const path = options?.path ?? g.path;
108
+ // Default: enum/literal invalid_value is created by the schema node.
109
+ const m = resolveMessage(g, options?.message, options?.useTypeMsg !== false);
110
+ if (g.ctx.mode === "lean") {
111
+ g.ctx.usedHelpers.add("__zaIV");
112
+ return pushIssue(g, `__zaIV(${valuesExpr},${input},${path}${messageArg(m)})`);
113
+ }
114
+ return pushIssue(g, `{code:"invalid_value",values:${valuesExpr}${messageProp(m)},input:${input},path:${path}}`);
115
+ }
116
+ //# sourceMappingURL=emit-issue.js.map