zod-compiler 0.1.1 → 1.0.1

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 (455) 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 +33 -0
  8. package/dist/cli/commands/generate.d.ts.map +1 -0
  9. package/dist/cli/commands/generate.js +142 -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 +166 -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 +14 -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 -674
  392. package/dist/index.d.ts.map +1 -0
  393. package/dist/index.js +2 -2553
  394. package/dist/index.js.map +1 -0
  395. package/dist/loader.d.ts +24 -0
  396. package/dist/loader.d.ts.map +1 -0
  397. package/dist/loader.js +129 -0
  398. package/dist/loader.js.map +1 -0
  399. package/dist/static-filter.d.ts +7 -0
  400. package/dist/static-filter.d.ts.map +1 -0
  401. package/dist/static-filter.js +396 -0
  402. package/dist/static-filter.js.map +1 -0
  403. package/dist/unplugin/bun.d.ts +3 -0
  404. package/dist/unplugin/bun.d.ts.map +1 -0
  405. package/dist/unplugin/bun.js +3 -0
  406. package/dist/unplugin/bun.js.map +1 -0
  407. package/dist/unplugin/esbuild.d.ts +3 -0
  408. package/dist/unplugin/esbuild.d.ts.map +1 -0
  409. package/dist/unplugin/esbuild.js +3 -0
  410. package/dist/unplugin/esbuild.js.map +1 -0
  411. package/dist/unplugin/farm.d.ts +3 -0
  412. package/dist/unplugin/farm.d.ts.map +1 -0
  413. package/dist/unplugin/farm.js +3 -0
  414. package/dist/unplugin/farm.js.map +1 -0
  415. package/dist/unplugin/index.d.ts +4 -0
  416. package/dist/unplugin/index.d.ts.map +1 -0
  417. package/dist/unplugin/index.js +102 -0
  418. package/dist/unplugin/index.js.map +1 -0
  419. package/dist/unplugin/rolldown.d.ts +3 -0
  420. package/dist/unplugin/rolldown.d.ts.map +1 -0
  421. package/dist/unplugin/rolldown.js +3 -0
  422. package/dist/unplugin/rolldown.js.map +1 -0
  423. package/dist/unplugin/rollup.d.ts +3 -0
  424. package/dist/unplugin/rollup.d.ts.map +1 -0
  425. package/dist/unplugin/rollup.js +3 -0
  426. package/dist/unplugin/rollup.js.map +1 -0
  427. package/dist/unplugin/rspack.d.ts +3 -0
  428. package/dist/unplugin/rspack.d.ts.map +1 -0
  429. package/dist/unplugin/rspack.js +3 -0
  430. package/dist/unplugin/rspack.js.map +1 -0
  431. package/dist/unplugin/transform.d.ts +36 -0
  432. package/dist/unplugin/transform.d.ts.map +1 -0
  433. package/dist/unplugin/transform.js +292 -0
  434. package/dist/unplugin/transform.js.map +1 -0
  435. package/dist/unplugin/types.d.ts +67 -0
  436. package/dist/unplugin/types.d.ts.map +1 -0
  437. package/dist/unplugin/types.js +19 -0
  438. package/dist/unplugin/types.js.map +1 -0
  439. package/dist/unplugin/virtual.d.ts +24 -0
  440. package/dist/unplugin/virtual.d.ts.map +1 -0
  441. package/dist/unplugin/virtual.js +62 -0
  442. package/dist/unplugin/virtual.js.map +1 -0
  443. package/dist/unplugin/vite.d.ts +3 -0
  444. package/dist/unplugin/vite.d.ts.map +1 -0
  445. package/dist/unplugin/vite.js +3 -0
  446. package/dist/unplugin/vite.js.map +1 -0
  447. package/dist/unplugin/webpack.d.ts +3 -0
  448. package/dist/unplugin/webpack.d.ts.map +1 -0
  449. package/dist/unplugin/webpack.js +3 -0
  450. package/dist/unplugin/webpack.js.map +1 -0
  451. package/package.json +110 -51
  452. package/dist/index.mjs +0 -2539
  453. package/dist/standalone.d.ts +0 -386
  454. package/dist/standalone.js +0 -540
  455. package/dist/standalone.mjs +0 -531
@@ -0,0 +1,59 @@
1
+ import type { SchemaIR } from "../types.js";
2
+ import { extractArray } from "./extractors/array.js";
3
+ import { extractBigint } from "./extractors/bigint.js";
4
+ import { extractCatch } from "./extractors/catch.js";
5
+ import { extractDate } from "./extractors/date.js";
6
+ import { extractDefault } from "./extractors/default.js";
7
+ import { extractFile } from "./extractors/file.js";
8
+ import { extractLazy } from "./extractors/lazy.js";
9
+ import { extractMap } from "./extractors/map.js";
10
+ import { extractNumber } from "./extractors/number.js";
11
+ import { extractObject } from "./extractors/object.js";
12
+ import { extractPipe } from "./extractors/pipe.js";
13
+ import { extractRecord } from "./extractors/record.js";
14
+ import { extractSet } from "./extractors/set.js";
15
+ import { extractString } from "./extractors/string.js";
16
+ import { extractTemplateLiteral } from "./extractors/template-literal.js";
17
+ import { extractTuple } from "./extractors/tuple.js";
18
+ import { extractUnion } from "./extractors/union.js";
19
+ import type { Extractor, RefEntry } from "./types.js";
20
+ export declare const extractRegistry: {
21
+ boolean: Extractor;
22
+ null: Extractor;
23
+ undefined: Extractor;
24
+ any: Extractor;
25
+ unknown: Extractor;
26
+ symbol: Extractor;
27
+ void: Extractor;
28
+ nan: Extractor;
29
+ never: Extractor;
30
+ literal: Extractor;
31
+ enum: Extractor;
32
+ optional: Extractor;
33
+ nullable: Extractor;
34
+ readonly: Extractor;
35
+ intersection: Extractor;
36
+ string: typeof extractString;
37
+ number: typeof extractNumber;
38
+ bigint: typeof extractBigint;
39
+ date: typeof extractDate;
40
+ object: typeof extractObject;
41
+ array: typeof extractArray;
42
+ tuple: typeof extractTuple;
43
+ record: typeof extractRecord;
44
+ set: typeof extractSet;
45
+ map: typeof extractMap;
46
+ union: typeof extractUnion;
47
+ default: typeof extractDefault;
48
+ pipe: typeof extractPipe;
49
+ lazy: typeof extractLazy;
50
+ catch: typeof extractCatch;
51
+ template_literal: typeof extractTemplateLiteral;
52
+ file: typeof extractFile;
53
+ };
54
+ /**
55
+ * Central dispatch — replaces extractSchemaInner().
56
+ * visit() and dispatch() form a mutually recursive pair, both in this file.
57
+ */
58
+ export declare function dispatch(zodSchema: unknown, path: string, refs: RefEntry[] | undefined, visiting: Set<unknown>): SchemaIR;
59
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/extract/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,KAAK,EACV,SAAS,EAET,QAAQ,EAGT,MAAM,YAAY,CAAC;AAWpB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCsB,CAAC;AAgDnD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,EAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GACrB,QAAQ,CAgCV"}
@@ -0,0 +1,152 @@
1
+ import { resolveCheckMessage } from "./checks.js";
2
+ import { extractAny } from "./extractors/any.js";
3
+ import { extractArray } from "./extractors/array.js";
4
+ import { extractBigint } from "./extractors/bigint.js";
5
+ import { extractBoolean } from "./extractors/boolean.js";
6
+ import { extractCatch } from "./extractors/catch.js";
7
+ import { extractDate } from "./extractors/date.js";
8
+ import { extractDefault } from "./extractors/default.js";
9
+ import { extractEnum } from "./extractors/enum.js";
10
+ import { extractFile } from "./extractors/file.js";
11
+ import { extractIntersection } from "./extractors/intersection.js";
12
+ import { extractLazy } from "./extractors/lazy.js";
13
+ import { extractLiteral } from "./extractors/literal.js";
14
+ import { extractMap } from "./extractors/map.js";
15
+ import { extractNan } from "./extractors/nan.js";
16
+ import { extractNever } from "./extractors/never.js";
17
+ import { extractNull } from "./extractors/null.js";
18
+ import { extractNullable } from "./extractors/nullable.js";
19
+ import { extractNumber } from "./extractors/number.js";
20
+ import { extractObject } from "./extractors/object.js";
21
+ import { extractOptional } from "./extractors/optional.js";
22
+ import { extractPipe } from "./extractors/pipe.js";
23
+ import { extractReadonly } from "./extractors/readonly.js";
24
+ import { extractRecord } from "./extractors/record.js";
25
+ import { extractSet } from "./extractors/set.js";
26
+ import { extractString } from "./extractors/string.js";
27
+ import { extractSymbol } from "./extractors/symbol.js";
28
+ import { extractTemplateLiteral } from "./extractors/template-literal.js";
29
+ import { extractTuple } from "./extractors/tuple.js";
30
+ import { extractUndefined } from "./extractors/undefined.js";
31
+ import { extractUnion } from "./extractors/union.js";
32
+ import { extractUnknown } from "./extractors/unknown.js";
33
+ import { extractVoid } from "./extractors/void.js";
34
+ import { makeFallback } from "./fallback.js";
35
+ // ─── Typed registry ─────────────────────────────────────────────────────────
36
+ // Adding a new SupportedZodDefType without registering an extractor here causes
37
+ // a compile error, preventing silent-missing-case bugs.
38
+ //
39
+ // Note: SupportedZodDefType covers Zod's def.type values, not SchemaIR types.
40
+ // SchemaIR types like discriminatedUnion, recursiveRef, effect, and fallback are
41
+ // produced by extractors (e.g. union emits discriminatedUnion, lazy emits
42
+ // recursiveRef) but have no corresponding Zod def.type.
43
+ export const extractRegistry = {
44
+ // Primitives (order follows SupportedZodDefType union in types.ts)
45
+ boolean: extractBoolean,
46
+ null: extractNull,
47
+ undefined: extractUndefined,
48
+ any: extractAny,
49
+ unknown: extractUnknown,
50
+ symbol: extractSymbol,
51
+ void: extractVoid,
52
+ nan: extractNan,
53
+ never: extractNever,
54
+ literal: extractLiteral,
55
+ enum: extractEnum,
56
+ optional: extractOptional,
57
+ nullable: extractNullable,
58
+ readonly: extractReadonly,
59
+ intersection: extractIntersection,
60
+ // Complex extractors
61
+ string: extractString,
62
+ number: extractNumber,
63
+ bigint: extractBigint,
64
+ date: extractDate,
65
+ object: extractObject,
66
+ array: extractArray,
67
+ tuple: extractTuple,
68
+ record: extractRecord,
69
+ set: extractSet,
70
+ map: extractMap,
71
+ union: extractUnion,
72
+ default: extractDefault,
73
+ pipe: extractPipe,
74
+ lazy: extractLazy,
75
+ catch: extractCatch,
76
+ template_literal: extractTemplateLiteral,
77
+ file: extractFile,
78
+ };
79
+ // ─── Factory ────────────────────────────────────────────────────────────────
80
+ // Lives here (not in types.ts) to avoid circular imports:
81
+ // visit() → dispatch() → imports from types.ts
82
+ function createExtractorContext(schema, path, refs, visiting) {
83
+ return {
84
+ schema,
85
+ path,
86
+ refs,
87
+ visiting,
88
+ visit(childSchema, pathSuffix) {
89
+ const childPath = pathSuffix ? `${path}${pathSuffix}` : path;
90
+ return dispatch(childSchema, childPath, refs, visiting);
91
+ },
92
+ fallback(reason) {
93
+ return makeFallback(reason, schema, refs, path);
94
+ },
95
+ };
96
+ }
97
+ // ─── Dispatch ───────────────────────────────────────────────────────────────
98
+ /**
99
+ * def.type values whose extractors consume `def.checks`. In Zod v4, `.refine()`
100
+ * (and `.check()`) appends to the checks array of WHATEVER schema type it is
101
+ * called on — z.string().nullable().refine(...) puts the check on the nullable.
102
+ * For every other type, checks present on the def would be silently dropped by
103
+ * extraction, so dispatch() forces a Zod fallback instead (validation hole
104
+ * otherwise: compiled output accepts input Zod rejects).
105
+ */
106
+ const CHECKS_AWARE_TYPES = new Set([
107
+ "string",
108
+ "number",
109
+ "bigint",
110
+ "date",
111
+ "object",
112
+ "array",
113
+ "set",
114
+ "file",
115
+ ]);
116
+ /**
117
+ * Central dispatch — replaces extractSchemaInner().
118
+ * visit() and dispatch() form a mutually recursive pair, both in this file.
119
+ */
120
+ export function dispatch(zodSchema, path, refs, visiting) {
121
+ const schema = zodSchema;
122
+ const def = schema._zod.def;
123
+ visiting.add(zodSchema);
124
+ try {
125
+ const extractor = extractRegistry[def.type];
126
+ const ctx = createExtractorContext(zodSchema, path, refs, visiting);
127
+ let ir = extractor ? extractor(def, ctx) : makeFallback("unsupported", zodSchema, refs, path);
128
+ if (ir.type === "fallback")
129
+ return ir;
130
+ // Safety net: checks attached to a type whose extractor ignores them.
131
+ if (def.checks && def.checks.length > 0 && !CHECKS_AWARE_TYPES.has(def.type)) {
132
+ return makeFallback("refine", zodSchema, refs, path);
133
+ }
134
+ // Schema-level custom error (z.string({ error: "..." })): bake static
135
+ // messages as the node's default issue message; dynamic error maps can't
136
+ // be compiled — delegate to Zod so messages stay exact.
137
+ if (def.error !== undefined) {
138
+ const resolved = resolveCheckMessage(def.error);
139
+ if (resolved.kind === "dynamic") {
140
+ return makeFallback("refine", zodSchema, refs, path);
141
+ }
142
+ if (resolved.kind === "static") {
143
+ ir = { ...ir, typeMessage: resolved.message };
144
+ }
145
+ }
146
+ return ir;
147
+ }
148
+ finally {
149
+ visiting.delete(zodSchema);
150
+ }
151
+ }
152
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/extract/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ export interface ZodCheckDef {
2
+ check: string;
3
+ type: string;
4
+ format: string;
5
+ pattern: RegExp | string;
6
+ minimum: number;
7
+ maximum: number;
8
+ length: number;
9
+ size: number;
10
+ value: number;
11
+ inclusive: boolean;
12
+ includes: string;
13
+ position: number;
14
+ prefix: string;
15
+ suffix: string;
16
+ fn: unknown;
17
+ /** $ZodCheckOverwrite transform function (.trim(), .toLowerCase(), ...). */
18
+ tx?: unknown;
19
+ /** Runtime predicate gating check execution — forces fallback when present. */
20
+ when?: unknown;
21
+ /** abort:true stops later checks and marks union options aborted — forces fallback. */
22
+ abort?: boolean;
23
+ mime: string[];
24
+ /** url-only constraints (z.httpUrl()). */
25
+ hostname?: RegExp;
26
+ protocol?: RegExp;
27
+ normalize?: boolean;
28
+ error?: unknown;
29
+ }
30
+ export interface ZodCheckSchema {
31
+ _zod?: {
32
+ def: ZodCheckDef;
33
+ };
34
+ }
35
+ export interface ZodDef {
36
+ type: string;
37
+ checks: ZodCheckSchema[];
38
+ check: string;
39
+ format: string;
40
+ pattern: RegExp | string;
41
+ /** Schema-level custom error (z.string({ error: "..." })). */
42
+ error?: unknown;
43
+ /** Unknown-key policy schema (z.strictObject → never, z.looseObject → unknown). */
44
+ catchall?: ZodSchema;
45
+ shape: Record<string, ZodSchema>;
46
+ element: ZodSchema;
47
+ options: ZodSchema[];
48
+ innerType: ZodSchema;
49
+ values: (string | number | boolean | null | bigint | undefined)[];
50
+ entries: Record<string, string>;
51
+ in: ZodSchema;
52
+ out: ZodSchema;
53
+ items: ZodSchema[];
54
+ rest: ZodSchema | null;
55
+ keyType: ZodSchema;
56
+ valueType: ZodSchema;
57
+ left: ZodSchema;
58
+ right: ZodSchema;
59
+ discriminator: string;
60
+ /** false on z.xor() unions (exactly-one-match semantics). */
61
+ inclusive?: boolean;
62
+ defaultValue: unknown;
63
+ coerce?: boolean;
64
+ catchValue?: (ctx: unknown) => unknown;
65
+ /** Transform function reference (present when type is "transform", and on Codec pipes). */
66
+ transform?: unknown;
67
+ /** Reverse transform (present on Codec schemas like stringbool). */
68
+ reverseTransform?: unknown;
69
+ }
70
+ export interface ZodSchema {
71
+ _zod: {
72
+ def: ZodDef;
73
+ bag?: Record<string, unknown>;
74
+ /** Resolved inner type for lazy schemas. */
75
+ innerType?: ZodSchema;
76
+ /** Pre-compiled pattern for templateLiteral schemas. */
77
+ pattern?: RegExp;
78
+ /** Finite value set (enum/literal keys) — drives exhaustive-key records. */
79
+ values?: Set<unknown>;
80
+ /** Class trait names from zod's $constructor (e.g. "$ZodExactOptional"). */
81
+ traits?: Set<string>;
82
+ /** "optional" when the key may be absent in object output (zod optout). */
83
+ optout?: string;
84
+ /** Discriminator dispatch values per property key (discriminated unions). */
85
+ propValues?: Record<string, Set<unknown> | undefined>;
86
+ };
87
+ }
88
+ /** Entry collected during extraction for each fallback sub-schema. */
89
+ export interface RefEntry {
90
+ /** Runtime reference to the Zod sub-schema. */
91
+ schema: unknown;
92
+ /** Navigation path from root schema, e.g. '.shape["slug"]' */
93
+ accessPath: string;
94
+ }
95
+ /** All Zod v4 def.type values that zod-compiler supports. */
96
+ export type SupportedZodDefType = "boolean" | "null" | "undefined" | "any" | "unknown" | "symbol" | "void" | "nan" | "never" | "literal" | "enum" | "optional" | "nullable" | "readonly" | "intersection" | "string" | "number" | "bigint" | "date" | "object" | "array" | "tuple" | "record" | "set" | "map" | "union" | "default" | "pipe" | "lazy" | "catch" | "template_literal" | "file";
97
+ /** Context object for extractor functions. Unifies the varied parameter patterns. */
98
+ export interface ExtractorContext {
99
+ /** Raw Zod schema reference (for fallback entries and schema._zod access). */
100
+ readonly schema: unknown;
101
+ /** Navigation path from root, e.g. '._zod.def.innerType' */
102
+ readonly path: string;
103
+ /** Fallback entries collector (undefined if partial fallback disabled). */
104
+ readonly refs: RefEntry[] | undefined;
105
+ /** Cycle detection set for lazy resolution. */
106
+ readonly visiting: Set<unknown>;
107
+ /** Recursively extract a child schema. Manages visiting set automatically. */
108
+ visit(childSchema: unknown, pathSuffix?: string): import("../types.js").SchemaIR;
109
+ /** Create a fallback entry for non-compilable sub-schemas. */
110
+ fallback(reason: import("../types.js").FallbackIR["reason"]): import("../types.js").FallbackIR;
111
+ }
112
+ /** Extractor function signature — registered in extractRegistry. */
113
+ export type Extractor = (def: ZodDef, ctx: ExtractorContext) => import("../types.js").SchemaIR;
114
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/extract/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/extract/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Shared CompiledSchema<T> IIFE generation.
3
+ * Used by both CLI emitter and unplugin transform.
4
+ */
5
+ import type { CompiledSchemaInfo } from "./pipeline.js";
6
+ /** Import statement required by generateIIFE output (references __zodCompilerConfig). */
7
+ export declare const ZOD_CONFIG_IMPORT = "import { config as __zodCompilerConfig, ZodRealError as __ZodError } from \"zod\";";
8
+ /** File-level __msg declaration (must appear once after ZOD_CONFIG_IMPORT). */
9
+ export declare const ZOD_MSG_DECLARATION = "var __msg=__zodCompilerConfig().localeError;";
10
+ /**
11
+ * File-level finalization helper (must appear once per compiled file).
12
+ * Processes issues (adds messages, strips input) and returns SafeParseResult.
13
+ * Each generated safeParse function calls __fin(_e, _d) instead of inlining this logic.
14
+ *
15
+ * The locale default (__msg) is applied ONLY when an issue carries no message,
16
+ * mirroring Zod's precedence: check/schema-level custom messages baked into
17
+ * generated issues — and messages on issues copied from fallback sub-schemas —
18
+ * must never be overwritten by the locale map.
19
+ */
20
+ export declare const FIN_DECL = "function __fin(e,d){for(var i=0;i<e.length;i++){if(e[i].message===undefined&&typeof __msg===\"function\")e[i].message=__msg(e[i]);e[i].input=undefined;}return e.length?{success:false,error:new __ZodError(e)}:{success:true,data:d};}";
21
+ /**
22
+ * File-level validator factory (must appear once per compiled file).
23
+ * Wraps a safeParse function into the CompiledSchema interface.
24
+ * schema=null produces a plain object; schema=ZodSchema uses Object.create.
25
+ */
26
+ export declare const MK_VALIDATOR_DECL = "function __mkv(fn,schema){var w=schema?Object.create(schema):{};w.parse=function(input){var r=fn(input);if(r.success)return r.data;throw r.error;};w.safeParse=fn;w.safeParseAsync=function(input){return Promise.resolve(fn(input));};w.parseAsync=function(input){var r=fn(input);if(r.success)return Promise.resolve(r.data);return Promise.reject(r.error);};return w;}";
27
+ /**
28
+ * Generate a `/* @__PURE__ * /` IIFE wrapping a compiled validator.
29
+ *
30
+ * @param schemaExpr - Expression resolving to the original Zod schema
31
+ * (e.g. `"UserSchema"` in unplugin, `"(__src_X as any).schema"` in CLI)
32
+ * @param schema
33
+ * @param options
34
+ */
35
+ export declare function generateIIFE(schemaExpr: string, schema: CompiledSchemaInfo, options?: {
36
+ zodCompat?: boolean | undefined;
37
+ }): string;
38
+ //# sourceMappingURL=iife.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iife.d.ts","sourceRoot":"","sources":["../../src/core/iife.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,uFACsD,CAAC;AAErF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,iDAAiD,CAAC;AAElF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,4OACoN,CAAC;AAE1O;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,gXACiV,CAAC;AAUhX;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAkBR"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Shared CompiledSchema<T> IIFE generation.
3
+ * Used by both CLI emitter and unplugin transform.
4
+ */
5
+ /** Import statement required by generateIIFE output (references __zodCompilerConfig). */
6
+ export const ZOD_CONFIG_IMPORT = 'import { config as __zodCompilerConfig, ZodRealError as __ZodError } from "zod";';
7
+ /** File-level __msg declaration (must appear once after ZOD_CONFIG_IMPORT). */
8
+ export const ZOD_MSG_DECLARATION = "var __msg=__zodCompilerConfig().localeError;";
9
+ /**
10
+ * File-level finalization helper (must appear once per compiled file).
11
+ * Processes issues (adds messages, strips input) and returns SafeParseResult.
12
+ * Each generated safeParse function calls __fin(_e, _d) instead of inlining this logic.
13
+ *
14
+ * The locale default (__msg) is applied ONLY when an issue carries no message,
15
+ * mirroring Zod's precedence: check/schema-level custom messages baked into
16
+ * generated issues — and messages on issues copied from fallback sub-schemas —
17
+ * must never be overwritten by the locale map.
18
+ */
19
+ export const FIN_DECL = 'function __fin(e,d){for(var i=0;i<e.length;i++){if(e[i].message===undefined&&typeof __msg==="function")e[i].message=__msg(e[i]);e[i].input=undefined;}return e.length?{success:false,error:new __ZodError(e)}:{success:true,data:d};}';
20
+ /**
21
+ * File-level validator factory (must appear once per compiled file).
22
+ * Wraps a safeParse function into the CompiledSchema interface.
23
+ * schema=null produces a plain object; schema=ZodSchema uses Object.create.
24
+ */
25
+ export const MK_VALIDATOR_DECL = "function __mkv(fn,schema){var w=schema?Object.create(schema):{};w.parse=function(input){var r=fn(input);if(r.success)return r.data;throw r.error;};w.safeParse=fn;w.safeParseAsync=function(input){return Promise.resolve(fn(input));};w.parseAsync=function(input){var r=fn(input);if(r.success)return Promise.resolve(r.data);return Promise.reject(r.error);};return w;}";
26
+ function extractFunctionName(functionDef) {
27
+ const match = /^function\s+(\w+)\s*\(/.exec(functionDef);
28
+ if (!match?.[1]) {
29
+ throw new Error("Cannot extract function name from generated code");
30
+ }
31
+ return match[1];
32
+ }
33
+ /**
34
+ * Generate a `/* @__PURE__ * /` IIFE wrapping a compiled validator.
35
+ *
36
+ * @param schemaExpr - Expression resolving to the original Zod schema
37
+ * (e.g. `"UserSchema"` in unplugin, `"(__src_X as any).schema"` in CLI)
38
+ * @param schema
39
+ * @param options
40
+ */
41
+ export function generateIIFE(schemaExpr, schema, options) {
42
+ const { codegenResult, refEntries } = schema;
43
+ const fnName = extractFunctionName(codegenResult.functionDef);
44
+ const zodCompat = options?.zodCompat !== false;
45
+ const schemaArg = zodCompat ? schemaExpr : "null";
46
+ return [
47
+ "/* @__PURE__ */ (() => {",
48
+ ...(refEntries.length > 0
49
+ ? [`var __rf=[${refEntries.map((fb) => `${schemaExpr}${fb.accessPath}`).join(",")}];`]
50
+ : []),
51
+ ...codegenResult.code
52
+ .split("\n")
53
+ .filter((l) => l.trim() !== "" && l.trim() !== "/* zod-compiler */"),
54
+ codegenResult.functionDef,
55
+ `return __mkv(${fnName},${schemaArg});`,
56
+ "})()",
57
+ ].join("\n");
58
+ }
59
+ //# sourceMappingURL=iife.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iife.js","sourceRoot":"","sources":["../../src/core/iife.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,kFAAkF,CAAC;AAErF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,8CAA8C,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,uOAAuO,CAAC;AAE1O;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,6WAA6W,CAAC;AAEhX,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,MAA0B,EAC1B,OAA6C;IAE7C,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,OAAO;QACL,0BAA0B;QAC1B,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,CAAC,aAAa,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACtF,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,aAAa,CAAC,IAAI;aAClB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,oBAAoB,CAAC;QACtE,aAAa,CAAC,WAAW;QACzB,gBAAgB,MAAM,IAAI,SAAS,IAAI;QACvC,MAAM;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { CodeGenResult, CodegenMode } from "./codegen/context.js";
2
+ import type { RefEntry } from "./extract/index.js";
3
+ import type { DiscoveredSchema } from "./types.js";
4
+ /** Result of compiling a single discovered schema through extract → generate pipeline. */
5
+ export interface CompiledSchemaInfo {
6
+ exportName: string;
7
+ codegenResult: CodeGenResult;
8
+ refEntries: RefEntry[];
9
+ }
10
+ export interface CompileSchemasOptions {
11
+ /** "inline" for CLI .compiled.ts; "lean" for unplugin (imports from virtual:zod-compiler/runtime). */
12
+ mode: CodegenMode;
13
+ /** When provided, per-schema failures call this and continue. Otherwise the first error throws. */
14
+ onError?: (exportName: string, error: Error) => void;
15
+ }
16
+ /**
17
+ * Run the extract → generate pipeline for each discovered schema.
18
+ * Shared by CLI generate and unplugin transform.
19
+ */
20
+ export declare function compileSchemas(schemas: DiscoveredSchema[], options: CompileSchemasOptions): CompiledSchemaInfo[];
21
+ /**
22
+ * Aggregate `usedHelpers` across multiple compiled schemas (typically all schemas in one file).
23
+ * Used by the unplugin transform to construct a single import statement per file.
24
+ */
25
+ export declare function aggregateUsedHelpers(schemas: CompiledSchemaInfo[]): Set<string>;
26
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,sGAAsG;IACtG,IAAI,EAAE,WAAW,CAAC;IAClB,mGAAmG;IACnG,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,EAAE,CAsBtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/E"}
@@ -0,0 +1,42 @@
1
+ import { generateValidator } from "./codegen/index.js";
2
+ import { extractSchema } from "./extract/index.js";
3
+ /**
4
+ * Run the extract → generate pipeline for each discovered schema.
5
+ * Shared by CLI generate and unplugin transform.
6
+ */
7
+ export function compileSchemas(schemas, options) {
8
+ const results = [];
9
+ for (const s of schemas) {
10
+ try {
11
+ const refEntries = [];
12
+ const ir = extractSchema(s.schema, refEntries);
13
+ const codegenResult = generateValidator(ir, s.exportName, {
14
+ refCount: refEntries.length,
15
+ mode: options.mode,
16
+ });
17
+ results.push({ exportName: s.exportName, codegenResult, refEntries });
18
+ }
19
+ catch (err) {
20
+ if (options.onError) {
21
+ options.onError(s.exportName, err instanceof Error ? err : new Error(String(err)));
22
+ }
23
+ else {
24
+ throw err;
25
+ }
26
+ }
27
+ }
28
+ return results;
29
+ }
30
+ /**
31
+ * Aggregate `usedHelpers` across multiple compiled schemas (typically all schemas in one file).
32
+ * Used by the unplugin transform to construct a single import statement per file.
33
+ */
34
+ export function aggregateUsedHelpers(schemas) {
35
+ const all = new Set();
36
+ for (const s of schemas) {
37
+ for (const h of s.codegenResult.usedHelpers)
38
+ all.add(h);
39
+ }
40
+ return all;
41
+ }
42
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAiBnD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA2B,EAC3B,OAA8B;IAE9B,MAAM,OAAO,GAAyB,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE;gBACxD,QAAQ,EAAE,UAAU,CAAC,MAAM;gBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA6B;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}