zod-compiler 1.23.0 → 1.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/README.md +9 -6
  2. package/dist/cli/commands/check.d.ts +10 -7
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +125 -148
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/generate.d.ts +22 -19
  7. package/dist/cli/commands/generate.d.ts.map +1 -1
  8. package/dist/cli/commands/generate.js +102 -133
  9. package/dist/cli/commands/generate.js.map +1 -1
  10. package/dist/cli/commands/watch.d.ts +17 -15
  11. package/dist/cli/commands/watch.d.ts.map +1 -1
  12. package/dist/cli/commands/watch.js +126 -154
  13. package/dist/cli/commands/watch.js.map +1 -1
  14. package/dist/cli/emitter.d.ts +19 -16
  15. package/dist/cli/emitter.d.ts.map +1 -1
  16. package/dist/cli/emitter.js +55 -71
  17. package/dist/cli/emitter.js.map +1 -1
  18. package/dist/cli/errors.d.ts +4 -1
  19. package/dist/cli/errors.d.ts.map +1 -1
  20. package/dist/cli/errors.js +6 -2
  21. package/dist/cli/errors.js.map +1 -1
  22. package/dist/cli/index.d.ts +1 -3
  23. package/dist/cli/index.js +147 -160
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/logger.d.ts +18 -15
  26. package/dist/cli/logger.d.ts.map +1 -1
  27. package/dist/cli/logger.js +38 -37
  28. package/dist/cli/logger.js.map +1 -1
  29. package/dist/core/codegen/build-path.d.ts +7 -41
  30. package/dist/core/codegen/build-path.d.ts.map +1 -1
  31. package/dist/core/codegen/build-path.js +481 -570
  32. package/dist/core/codegen/build-path.js.map +1 -1
  33. package/dist/core/codegen/context.d.ts +256 -253
  34. package/dist/core/codegen/context.d.ts.map +1 -1
  35. package/dist/core/codegen/context.js +363 -437
  36. package/dist/core/codegen/context.js.map +1 -1
  37. package/dist/core/codegen/dedupe.d.ts +22 -56
  38. package/dist/core/codegen/dedupe.d.ts.map +1 -1
  39. package/dist/core/codegen/dedupe.js +150 -242
  40. package/dist/core/codegen/dedupe.js.map +1 -1
  41. package/dist/core/codegen/emit-issue.d.ts +44 -68
  42. package/dist/core/codegen/emit-issue.d.ts.map +1 -1
  43. package/dist/core/codegen/emit-issue.js +76 -108
  44. package/dist/core/codegen/emit-issue.js.map +1 -1
  45. package/dist/core/codegen/emit.d.ts +4 -1
  46. package/dist/core/codegen/emit.d.ts.map +1 -1
  47. package/dist/core/codegen/emit.js +16 -13
  48. package/dist/core/codegen/emit.js.map +1 -1
  49. package/dist/core/codegen/fast-path.d.ts +7 -12
  50. package/dist/core/codegen/fast-path.d.ts.map +1 -1
  51. package/dist/core/codegen/fast-path.js +116 -145
  52. package/dist/core/codegen/fast-path.js.map +1 -1
  53. package/dist/core/codegen/fast-size.d.ts +12 -26
  54. package/dist/core/codegen/fast-size.d.ts.map +1 -1
  55. package/dist/core/codegen/fast-size.js +169 -244
  56. package/dist/core/codegen/fast-size.js.map +1 -1
  57. package/dist/core/codegen/index.d.ts +25 -23
  58. package/dist/core/codegen/index.d.ts.map +1 -1
  59. package/dist/core/codegen/index.js +239 -405
  60. package/dist/core/codegen/index.js.map +1 -1
  61. package/dist/core/codegen/issue-decls.d.ts +15 -12
  62. package/dist/core/codegen/issue-decls.d.ts.map +1 -1
  63. package/dist/core/codegen/issue-decls.js +131 -162
  64. package/dist/core/codegen/issue-decls.js.map +1 -1
  65. package/dist/core/codegen/regex-unroll.d.ts +4 -1
  66. package/dist/core/codegen/regex-unroll.d.ts.map +1 -1
  67. package/dist/core/codegen/regex-unroll.js +173 -197
  68. package/dist/core/codegen/regex-unroll.js.map +1 -1
  69. package/dist/core/codegen/schemas/any.d.ts +7 -4
  70. package/dist/core/codegen/schemas/any.d.ts.map +1 -1
  71. package/dist/core/codegen/schemas/any.js +8 -4
  72. package/dist/core/codegen/schemas/any.js.map +1 -1
  73. package/dist/core/codegen/schemas/array.d.ts +8 -5
  74. package/dist/core/codegen/schemas/array.d.ts.map +1 -1
  75. package/dist/core/codegen/schemas/array.js +77 -95
  76. package/dist/core/codegen/schemas/array.js.map +1 -1
  77. package/dist/core/codegen/schemas/bigint.d.ts +7 -4
  78. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
  79. package/dist/core/codegen/schemas/bigint.js +44 -56
  80. package/dist/core/codegen/schemas/bigint.js.map +1 -1
  81. package/dist/core/codegen/schemas/boolean.d.ts +7 -4
  82. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
  83. package/dist/core/codegen/schemas/boolean.js +12 -11
  84. package/dist/core/codegen/schemas/boolean.js.map +1 -1
  85. package/dist/core/codegen/schemas/catch.d.ts +8 -5
  86. package/dist/core/codegen/schemas/catch.d.ts.map +1 -1
  87. package/dist/core/codegen/schemas/catch.js +23 -23
  88. package/dist/core/codegen/schemas/catch.js.map +1 -1
  89. package/dist/core/codegen/schemas/date.d.ts +7 -4
  90. package/dist/core/codegen/schemas/date.d.ts.map +1 -1
  91. package/dist/core/codegen/schemas/date.js +49 -68
  92. package/dist/core/codegen/schemas/date.js.map +1 -1
  93. package/dist/core/codegen/schemas/default.d.ts +9 -6
  94. package/dist/core/codegen/schemas/default.d.ts.map +1 -1
  95. package/dist/core/codegen/schemas/default.js +29 -27
  96. package/dist/core/codegen/schemas/default.js.map +1 -1
  97. package/dist/core/codegen/schemas/discriminated-union.d.ts +12 -10
  98. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
  99. package/dist/core/codegen/schemas/discriminated-union.js +153 -178
  100. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
  101. package/dist/core/codegen/schemas/effect.d.ts +9 -6
  102. package/dist/core/codegen/schemas/effect.d.ts.map +1 -1
  103. package/dist/core/codegen/schemas/effect.js +54 -67
  104. package/dist/core/codegen/schemas/effect.js.map +1 -1
  105. package/dist/core/codegen/schemas/enum.d.ts +7 -4
  106. package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
  107. package/dist/core/codegen/schemas/enum.js +15 -21
  108. package/dist/core/codegen/schemas/enum.js.map +1 -1
  109. package/dist/core/codegen/schemas/fallback.d.ts +6 -3
  110. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -1
  111. package/dist/core/codegen/schemas/fallback.js +14 -13
  112. package/dist/core/codegen/schemas/fallback.js.map +1 -1
  113. package/dist/core/codegen/schemas/file.d.ts +7 -4
  114. package/dist/core/codegen/schemas/file.d.ts.map +1 -1
  115. package/dist/core/codegen/schemas/file.js +51 -57
  116. package/dist/core/codegen/schemas/file.js.map +1 -1
  117. package/dist/core/codegen/schemas/intersection.d.ts +8 -5
  118. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -1
  119. package/dist/core/codegen/schemas/intersection.js +16 -13
  120. package/dist/core/codegen/schemas/intersection.js.map +1 -1
  121. package/dist/core/codegen/schemas/literal.d.ts +7 -4
  122. package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
  123. package/dist/core/codegen/schemas/literal.js +20 -23
  124. package/dist/core/codegen/schemas/literal.js.map +1 -1
  125. package/dist/core/codegen/schemas/map.d.ts +8 -5
  126. package/dist/core/codegen/schemas/map.d.ts.map +1 -1
  127. package/dist/core/codegen/schemas/map.js +61 -67
  128. package/dist/core/codegen/schemas/map.js.map +1 -1
  129. package/dist/core/codegen/schemas/nan.d.ts +7 -4
  130. package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
  131. package/dist/core/codegen/schemas/nan.js +8 -4
  132. package/dist/core/codegen/schemas/nan.js.map +1 -1
  133. package/dist/core/codegen/schemas/never.d.ts +7 -4
  134. package/dist/core/codegen/schemas/never.d.ts.map +1 -1
  135. package/dist/core/codegen/schemas/never.js +8 -4
  136. package/dist/core/codegen/schemas/never.js.map +1 -1
  137. package/dist/core/codegen/schemas/null.d.ts +7 -4
  138. package/dist/core/codegen/schemas/null.d.ts.map +1 -1
  139. package/dist/core/codegen/schemas/null.js +8 -4
  140. package/dist/core/codegen/schemas/null.js.map +1 -1
  141. package/dist/core/codegen/schemas/nullable.d.ts +8 -5
  142. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -1
  143. package/dist/core/codegen/schemas/nullable.js +8 -5
  144. package/dist/core/codegen/schemas/nullable.js.map +1 -1
  145. package/dist/core/codegen/schemas/number.d.ts +7 -4
  146. package/dist/core/codegen/schemas/number.d.ts.map +1 -1
  147. package/dist/core/codegen/schemas/number.js +120 -176
  148. package/dist/core/codegen/schemas/number.js.map +1 -1
  149. package/dist/core/codegen/schemas/object.d.ts +8 -5
  150. package/dist/core/codegen/schemas/object.d.ts.map +1 -1
  151. package/dist/core/codegen/schemas/object.js +144 -231
  152. package/dist/core/codegen/schemas/object.js.map +1 -1
  153. package/dist/core/codegen/schemas/optional.d.ts +9 -6
  154. package/dist/core/codegen/schemas/optional.d.ts.map +1 -1
  155. package/dist/core/codegen/schemas/optional.js +23 -31
  156. package/dist/core/codegen/schemas/optional.js.map +1 -1
  157. package/dist/core/codegen/schemas/pipe.d.ts +8 -5
  158. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -1
  159. package/dist/core/codegen/schemas/pipe.js +20 -27
  160. package/dist/core/codegen/schemas/pipe.js.map +1 -1
  161. package/dist/core/codegen/schemas/readonly.d.ts +8 -5
  162. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -1
  163. package/dist/core/codegen/schemas/readonly.js +8 -5
  164. package/dist/core/codegen/schemas/readonly.js.map +1 -1
  165. package/dist/core/codegen/schemas/record.d.ts +8 -5
  166. package/dist/core/codegen/schemas/record.d.ts.map +1 -1
  167. package/dist/core/codegen/schemas/record.js +52 -65
  168. package/dist/core/codegen/schemas/record.js.map +1 -1
  169. package/dist/core/codegen/schemas/recursive-ref.d.ts +9 -6
  170. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -1
  171. package/dist/core/codegen/schemas/recursive-ref.js +44 -44
  172. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -1
  173. package/dist/core/codegen/schemas/set.d.ts +8 -5
  174. package/dist/core/codegen/schemas/set.d.ts.map +1 -1
  175. package/dist/core/codegen/schemas/set.js +61 -73
  176. package/dist/core/codegen/schemas/set.js.map +1 -1
  177. package/dist/core/codegen/schemas/string-bool.d.ts +6 -3
  178. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
  179. package/dist/core/codegen/schemas/string-bool.js +22 -23
  180. package/dist/core/codegen/schemas/string-bool.js.map +1 -1
  181. package/dist/core/codegen/schemas/string.d.ts +8 -5
  182. package/dist/core/codegen/schemas/string.d.ts.map +1 -1
  183. package/dist/core/codegen/schemas/string.js +168 -207
  184. package/dist/core/codegen/schemas/string.js.map +1 -1
  185. package/dist/core/codegen/schemas/symbol.d.ts +7 -4
  186. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
  187. package/dist/core/codegen/schemas/symbol.js +8 -4
  188. package/dist/core/codegen/schemas/symbol.js.map +1 -1
  189. package/dist/core/codegen/schemas/template-literal.d.ts +7 -4
  190. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
  191. package/dist/core/codegen/schemas/template-literal.js +12 -13
  192. package/dist/core/codegen/schemas/template-literal.js.map +1 -1
  193. package/dist/core/codegen/schemas/tuple.d.ts +8 -5
  194. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
  195. package/dist/core/codegen/schemas/tuple.js +84 -94
  196. package/dist/core/codegen/schemas/tuple.js.map +1 -1
  197. package/dist/core/codegen/schemas/undefined.d.ts +7 -4
  198. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
  199. package/dist/core/codegen/schemas/undefined.js +8 -4
  200. package/dist/core/codegen/schemas/undefined.js.map +1 -1
  201. package/dist/core/codegen/schemas/union.d.ts +8 -5
  202. package/dist/core/codegen/schemas/union.d.ts.map +1 -1
  203. package/dist/core/codegen/schemas/union.js +49 -69
  204. package/dist/core/codegen/schemas/union.js.map +1 -1
  205. package/dist/core/codegen/schemas/unknown.d.ts +7 -4
  206. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -1
  207. package/dist/core/codegen/schemas/unknown.js +8 -4
  208. package/dist/core/codegen/schemas/unknown.js.map +1 -1
  209. package/dist/core/codegen/schemas/void.d.ts +7 -4
  210. package/dist/core/codegen/schemas/void.d.ts.map +1 -1
  211. package/dist/core/codegen/schemas/void.js +8 -4
  212. package/dist/core/codegen/schemas/void.js.map +1 -1
  213. package/dist/core/codegen/slow-path.d.ts +7 -4
  214. package/dist/core/codegen/slow-path.d.ts.map +1 -1
  215. package/dist/core/codegen/slow-path.js +71 -96
  216. package/dist/core/codegen/slow-path.js.map +1 -1
  217. package/dist/core/codegen/well-known-regex.d.ts +22 -19
  218. package/dist/core/codegen/well-known-regex.d.ts.map +1 -1
  219. package/dist/core/codegen/well-known-regex.js +127 -96
  220. package/dist/core/codegen/well-known-regex.js.map +1 -1
  221. package/dist/core/compile.d.ts +7 -4
  222. package/dist/core/compile.d.ts.map +1 -1
  223. package/dist/core/compile.js +48 -48
  224. package/dist/core/compile.js.map +1 -1
  225. package/dist/core/diagnostic.d.ts +38 -39
  226. package/dist/core/diagnostic.d.ts.map +1 -1
  227. package/dist/core/diagnostic.js +140 -164
  228. package/dist/core/diagnostic.js.map +1 -1
  229. package/dist/core/extract/checks.d.ts +18 -15
  230. package/dist/core/extract/checks.d.ts.map +1 -1
  231. package/dist/core/extract/checks.js +318 -311
  232. package/dist/core/extract/checks.js.map +1 -1
  233. package/dist/core/extract/effects.d.ts +13 -10
  234. package/dist/core/extract/effects.d.ts.map +1 -1
  235. package/dist/core/extract/effects.js +153 -222
  236. package/dist/core/extract/effects.js.map +1 -1
  237. package/dist/core/extract/extractors/any.d.ts +5 -2
  238. package/dist/core/extract/extractors/any.d.ts.map +1 -1
  239. package/dist/core/extract/extractors/any.js +5 -1
  240. package/dist/core/extract/extractors/any.js.map +1 -1
  241. package/dist/core/extract/extractors/array.d.ts +6 -3
  242. package/dist/core/extract/extractors/array.d.ts.map +1 -1
  243. package/dist/core/extract/extractors/array.js +25 -20
  244. package/dist/core/extract/extractors/array.js.map +1 -1
  245. package/dist/core/extract/extractors/bigint.d.ts +6 -3
  246. package/dist/core/extract/extractors/bigint.d.ts.map +1 -1
  247. package/dist/core/extract/extractors/bigint.js +66 -64
  248. package/dist/core/extract/extractors/bigint.js.map +1 -1
  249. package/dist/core/extract/extractors/boolean.d.ts +5 -2
  250. package/dist/core/extract/extractors/boolean.d.ts.map +1 -1
  251. package/dist/core/extract/extractors/boolean.js +7 -3
  252. package/dist/core/extract/extractors/boolean.js.map +1 -1
  253. package/dist/core/extract/extractors/catch.d.ts +6 -3
  254. package/dist/core/extract/extractors/catch.d.ts.map +1 -1
  255. package/dist/core/extract/extractors/catch.js +26 -17
  256. package/dist/core/extract/extractors/catch.js.map +1 -1
  257. package/dist/core/extract/extractors/date.d.ts +6 -3
  258. package/dist/core/extract/extractors/date.d.ts.map +1 -1
  259. package/dist/core/extract/extractors/date.js +42 -46
  260. package/dist/core/extract/extractors/date.js.map +1 -1
  261. package/dist/core/extract/extractors/default.d.ts +6 -3
  262. package/dist/core/extract/extractors/default.d.ts.map +1 -1
  263. package/dist/core/extract/extractors/default.js +20 -14
  264. package/dist/core/extract/extractors/default.js.map +1 -1
  265. package/dist/core/extract/extractors/enum.d.ts +5 -2
  266. package/dist/core/extract/extractors/enum.d.ts.map +1 -1
  267. package/dist/core/extract/extractors/enum.js +12 -13
  268. package/dist/core/extract/extractors/enum.js.map +1 -1
  269. package/dist/core/extract/extractors/file.d.ts +6 -3
  270. package/dist/core/extract/extractors/file.d.ts.map +1 -1
  271. package/dist/core/extract/extractors/file.js +34 -28
  272. package/dist/core/extract/extractors/file.js.map +1 -1
  273. package/dist/core/extract/extractors/intersection.d.ts +5 -2
  274. package/dist/core/extract/extractors/intersection.d.ts.map +1 -1
  275. package/dist/core/extract/extractors/intersection.js +13 -11
  276. package/dist/core/extract/extractors/intersection.js.map +1 -1
  277. package/dist/core/extract/extractors/lazy.d.ts +6 -3
  278. package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
  279. package/dist/core/extract/extractors/lazy.js +21 -30
  280. package/dist/core/extract/extractors/lazy.js.map +1 -1
  281. package/dist/core/extract/extractors/literal.d.ts +5 -2
  282. package/dist/core/extract/extractors/literal.d.ts.map +1 -1
  283. package/dist/core/extract/extractors/literal.js +8 -1
  284. package/dist/core/extract/extractors/literal.js.map +1 -1
  285. package/dist/core/extract/extractors/map.d.ts +6 -3
  286. package/dist/core/extract/extractors/map.d.ts.map +1 -1
  287. package/dist/core/extract/extractors/map.js +10 -4
  288. package/dist/core/extract/extractors/map.js.map +1 -1
  289. package/dist/core/extract/extractors/nan.d.ts +5 -2
  290. package/dist/core/extract/extractors/nan.d.ts.map +1 -1
  291. package/dist/core/extract/extractors/nan.js +5 -1
  292. package/dist/core/extract/extractors/nan.js.map +1 -1
  293. package/dist/core/extract/extractors/never.d.ts +5 -2
  294. package/dist/core/extract/extractors/never.d.ts.map +1 -1
  295. package/dist/core/extract/extractors/never.js +5 -1
  296. package/dist/core/extract/extractors/never.js.map +1 -1
  297. package/dist/core/extract/extractors/null.d.ts +5 -2
  298. package/dist/core/extract/extractors/null.d.ts.map +1 -1
  299. package/dist/core/extract/extractors/null.js +5 -1
  300. package/dist/core/extract/extractors/null.js.map +1 -1
  301. package/dist/core/extract/extractors/nullable.d.ts +5 -2
  302. package/dist/core/extract/extractors/nullable.d.ts.map +1 -1
  303. package/dist/core/extract/extractors/nullable.js +7 -3
  304. package/dist/core/extract/extractors/nullable.js.map +1 -1
  305. package/dist/core/extract/extractors/number.d.ts +6 -3
  306. package/dist/core/extract/extractors/number.d.ts.map +1 -1
  307. package/dist/core/extract/extractors/number.js +35 -35
  308. package/dist/core/extract/extractors/number.js.map +1 -1
  309. package/dist/core/extract/extractors/object.d.ts +6 -3
  310. package/dist/core/extract/extractors/object.d.ts.map +1 -1
  311. package/dist/core/extract/extractors/object.js +49 -76
  312. package/dist/core/extract/extractors/object.js.map +1 -1
  313. package/dist/core/extract/extractors/optional.d.ts +5 -2
  314. package/dist/core/extract/extractors/optional.d.ts.map +1 -1
  315. package/dist/core/extract/extractors/optional.js +10 -12
  316. package/dist/core/extract/extractors/optional.js.map +1 -1
  317. package/dist/core/extract/extractors/pipe.d.ts +6 -3
  318. package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
  319. package/dist/core/extract/extractors/pipe.js +40 -41
  320. package/dist/core/extract/extractors/pipe.js.map +1 -1
  321. package/dist/core/extract/extractors/readonly.d.ts +5 -2
  322. package/dist/core/extract/extractors/readonly.d.ts.map +1 -1
  323. package/dist/core/extract/extractors/readonly.js +10 -6
  324. package/dist/core/extract/extractors/readonly.js.map +1 -1
  325. package/dist/core/extract/extractors/record.d.ts +6 -3
  326. package/dist/core/extract/extractors/record.d.ts.map +1 -1
  327. package/dist/core/extract/extractors/record.js +24 -35
  328. package/dist/core/extract/extractors/record.js.map +1 -1
  329. package/dist/core/extract/extractors/set.d.ts +6 -3
  330. package/dist/core/extract/extractors/set.d.ts.map +1 -1
  331. package/dist/core/extract/extractors/set.js +36 -30
  332. package/dist/core/extract/extractors/set.js.map +1 -1
  333. package/dist/core/extract/extractors/string-bool.d.ts +7 -4
  334. package/dist/core/extract/extractors/string-bool.d.ts.map +1 -1
  335. package/dist/core/extract/extractors/string-bool.js +66 -84
  336. package/dist/core/extract/extractors/string-bool.js.map +1 -1
  337. package/dist/core/extract/extractors/string.d.ts +6 -3
  338. package/dist/core/extract/extractors/string.d.ts.map +1 -1
  339. package/dist/core/extract/extractors/string.js +34 -37
  340. package/dist/core/extract/extractors/string.js.map +1 -1
  341. package/dist/core/extract/extractors/symbol.d.ts +5 -2
  342. package/dist/core/extract/extractors/symbol.d.ts.map +1 -1
  343. package/dist/core/extract/extractors/symbol.js +5 -1
  344. package/dist/core/extract/extractors/symbol.js.map +1 -1
  345. package/dist/core/extract/extractors/template-literal.d.ts +6 -3
  346. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
  347. package/dist/core/extract/extractors/template-literal.js +11 -6
  348. package/dist/core/extract/extractors/template-literal.js.map +1 -1
  349. package/dist/core/extract/extractors/tuple.d.ts +6 -3
  350. package/dist/core/extract/extractors/tuple.d.ts.map +1 -1
  351. package/dist/core/extract/extractors/tuple.js +10 -4
  352. package/dist/core/extract/extractors/tuple.js.map +1 -1
  353. package/dist/core/extract/extractors/undefined.d.ts +5 -2
  354. package/dist/core/extract/extractors/undefined.d.ts.map +1 -1
  355. package/dist/core/extract/extractors/undefined.js +5 -1
  356. package/dist/core/extract/extractors/undefined.js.map +1 -1
  357. package/dist/core/extract/extractors/union.d.ts +6 -3
  358. package/dist/core/extract/extractors/union.d.ts.map +1 -1
  359. package/dist/core/extract/extractors/union.js +38 -64
  360. package/dist/core/extract/extractors/union.js.map +1 -1
  361. package/dist/core/extract/extractors/unknown.d.ts +5 -2
  362. package/dist/core/extract/extractors/unknown.d.ts.map +1 -1
  363. package/dist/core/extract/extractors/unknown.js +5 -1
  364. package/dist/core/extract/extractors/unknown.js.map +1 -1
  365. package/dist/core/extract/extractors/void.d.ts +5 -2
  366. package/dist/core/extract/extractors/void.d.ts.map +1 -1
  367. package/dist/core/extract/extractors/void.js +5 -1
  368. package/dist/core/extract/extractors/void.js.map +1 -1
  369. package/dist/core/extract/fallback.d.ts +6 -3
  370. package/dist/core/extract/fallback.d.ts.map +1 -1
  371. package/dist/core/extract/fallback.js +21 -7
  372. package/dist/core/extract/fallback.js.map +1 -1
  373. package/dist/core/extract/index.d.ts +6 -4
  374. package/dist/core/extract/index.d.ts.map +1 -1
  375. package/dist/core/extract/index.js +15 -15
  376. package/dist/core/extract/index.js.map +1 -1
  377. package/dist/core/extract/registry.d.ts +39 -36
  378. package/dist/core/extract/registry.d.ts.map +1 -1
  379. package/dist/core/extract/registry.js +96 -123
  380. package/dist/core/extract/registry.js.map +1 -1
  381. package/dist/core/extract/types.d.ts +124 -120
  382. package/dist/core/extract/types.d.ts.map +1 -1
  383. package/dist/core/extract/types.js +0 -1
  384. package/dist/core/iife.d.ts +14 -15
  385. package/dist/core/iife.d.ts.map +1 -1
  386. package/dist/core/iife.js +182 -206
  387. package/dist/core/iife.js.map +1 -1
  388. package/dist/core/pipeline.d.ts +33 -30
  389. package/dist/core/pipeline.d.ts.map +1 -1
  390. package/dist/core/pipeline.js +67 -74
  391. package/dist/core/pipeline.js.map +1 -1
  392. package/dist/core/types.d.ts +430 -427
  393. package/dist/core/types.d.ts.map +1 -1
  394. package/dist/core/types.js +0 -5
  395. package/dist/discovery.d.ts +8 -5
  396. package/dist/discovery.d.ts.map +1 -1
  397. package/dist/discovery.js +31 -32
  398. package/dist/discovery.js.map +1 -1
  399. package/dist/index.d.ts +4 -4
  400. package/dist/index.js +2 -2
  401. package/dist/jit.d.ts +15 -42
  402. package/dist/jit.d.ts.map +1 -1
  403. package/dist/jit.js +187 -216
  404. package/dist/jit.js.map +1 -1
  405. package/dist/loader.d.ts +14 -11
  406. package/dist/loader.d.ts.map +1 -1
  407. package/dist/loader.js +226 -258
  408. package/dist/loader.js.map +1 -1
  409. package/dist/static-filter.d.ts +4 -1
  410. package/dist/static-filter.d.ts.map +1 -1
  411. package/dist/static-filter.js +240 -367
  412. package/dist/static-filter.js.map +1 -1
  413. package/dist/swc.d.ts +38 -35
  414. package/dist/swc.d.ts.map +1 -1
  415. package/dist/swc.js +83 -76
  416. package/dist/swc.js.map +1 -1
  417. package/dist/unplugin/bun.d.ts +5 -2
  418. package/dist/unplugin/bun.d.ts.map +1 -1
  419. package/dist/unplugin/bun.js +5 -1
  420. package/dist/unplugin/bun.js.map +1 -1
  421. package/dist/unplugin/dep-graph.d.ts +10 -7
  422. package/dist/unplugin/dep-graph.d.ts.map +1 -1
  423. package/dist/unplugin/dep-graph.js +216 -252
  424. package/dist/unplugin/dep-graph.js.map +1 -1
  425. package/dist/unplugin/disk-cache.d.ts +121 -92
  426. package/dist/unplugin/disk-cache.d.ts.map +1 -1
  427. package/dist/unplugin/disk-cache.js +425 -444
  428. package/dist/unplugin/disk-cache.js.map +1 -1
  429. package/dist/unplugin/edits.d.ts +15 -12
  430. package/dist/unplugin/edits.d.ts.map +1 -1
  431. package/dist/unplugin/edits.js +24 -37
  432. package/dist/unplugin/edits.js.map +1 -1
  433. package/dist/unplugin/esbuild.d.ts +5 -2
  434. package/dist/unplugin/esbuild.d.ts.map +1 -1
  435. package/dist/unplugin/esbuild.js +5 -1
  436. package/dist/unplugin/esbuild.js.map +1 -1
  437. package/dist/unplugin/farm.d.ts +5 -2
  438. package/dist/unplugin/farm.d.ts.map +1 -1
  439. package/dist/unplugin/farm.js +5 -1
  440. package/dist/unplugin/farm.js.map +1 -1
  441. package/dist/unplugin/hoist-compile.d.ts +14 -42
  442. package/dist/unplugin/hoist-compile.d.ts.map +1 -1
  443. package/dist/unplugin/hoist-compile.js +67 -112
  444. package/dist/unplugin/hoist-compile.js.map +1 -1
  445. package/dist/unplugin/hoist.d.ts +56 -54
  446. package/dist/unplugin/hoist.d.ts.map +1 -1
  447. package/dist/unplugin/hoist.js +945 -1170
  448. package/dist/unplugin/hoist.js.map +1 -1
  449. package/dist/unplugin/index.d.ts +5 -3
  450. package/dist/unplugin/index.d.ts.map +1 -1
  451. package/dist/unplugin/index.js +175 -250
  452. package/dist/unplugin/index.js.map +1 -1
  453. package/dist/unplugin/rolldown.d.ts +5 -2
  454. package/dist/unplugin/rolldown.d.ts.map +1 -1
  455. package/dist/unplugin/rolldown.js +5 -1
  456. package/dist/unplugin/rolldown.js.map +1 -1
  457. package/dist/unplugin/rollup.d.ts +5 -2
  458. package/dist/unplugin/rollup.d.ts.map +1 -1
  459. package/dist/unplugin/rollup.js +5 -1
  460. package/dist/unplugin/rollup.js.map +1 -1
  461. package/dist/unplugin/rsbuild.d.ts +6 -3
  462. package/dist/unplugin/rsbuild.d.ts.map +1 -1
  463. package/dist/unplugin/rsbuild.js +15 -11
  464. package/dist/unplugin/rsbuild.js.map +1 -1
  465. package/dist/unplugin/rspack.d.ts +5 -2
  466. package/dist/unplugin/rspack.d.ts.map +1 -1
  467. package/dist/unplugin/rspack.js +5 -1
  468. package/dist/unplugin/rspack.js.map +1 -1
  469. package/dist/unplugin/transform.d.ts +30 -27
  470. package/dist/unplugin/transform.d.ts.map +1 -1
  471. package/dist/unplugin/transform.js +433 -620
  472. package/dist/unplugin/transform.js.map +1 -1
  473. package/dist/unplugin/types.d.ts +189 -184
  474. package/dist/unplugin/types.d.ts.map +1 -1
  475. package/dist/unplugin/types.js +22 -18
  476. package/dist/unplugin/types.js.map +1 -1
  477. package/dist/unplugin/virtual.d.ts +11 -8
  478. package/dist/unplugin/virtual.d.ts.map +1 -1
  479. package/dist/unplugin/virtual.js +65 -83
  480. package/dist/unplugin/virtual.js.map +1 -1
  481. package/dist/unplugin/vite.d.ts +5 -2
  482. package/dist/unplugin/vite.d.ts.map +1 -1
  483. package/dist/unplugin/vite.js +5 -1
  484. package/dist/unplugin/vite.js.map +1 -1
  485. package/dist/unplugin/webpack.d.ts +5 -2
  486. package/dist/unplugin/webpack.d.ts.map +1 -1
  487. package/dist/unplugin/webpack.js +5 -1
  488. package/dist/unplugin/webpack.js.map +1 -1
  489. package/package.json +23 -14
  490. package/dist/cli/index.d.ts.map +0 -1
  491. package/dist/core/extract/types.js.map +0 -1
  492. package/dist/core/types.js.map +0 -1
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,13 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { createRequire } from "node:module";
3
- import process from "node:process";
4
2
  import { getErrorMessage } from "./errors.js";
5
3
  import { logger } from "./logger.js";
6
- const require = createRequire(import.meta.url);
7
- const VERSION = require("../../package.json").version;
4
+ import { createRequire } from "node:module";
5
+ import process from "node:process";
6
+ //#region src/cli/index.ts
7
+ const VERSION = createRequire(import.meta.url)("../../package.json").version;
8
8
  function printUsage() {
9
- // oxlint-disable-next-line no-console -- CLI output
10
- console.log(`
9
+ console.log(`
11
10
  zod-compiler v${VERSION} — Compile Zod schemas into zero-overhead validation functions
12
11
 
13
12
  Usage:
@@ -44,167 +43,155 @@ Examples:
44
43
  }
45
44
  /** Parse a `--schemas <explicit|auto>` value; exits on invalid input. */
46
45
  function parseSchemasValue(val) {
47
- if (val !== "explicit" && val !== "auto") {
48
- logger.error('--schemas must be "explicit" or "auto"');
49
- process.exit(1);
50
- }
51
- return val === "auto";
46
+ if (val !== "explicit" && val !== "auto") {
47
+ logger.error("--schemas must be \"explicit\" or \"auto\"");
48
+ process.exit(1);
49
+ }
50
+ return val === "auto";
52
51
  }
53
52
  /** Parse an `--emit <schema|bag|compact>` value; exits on invalid input. */
54
53
  function parseEmitValue(val) {
55
- if (val !== "schema" && val !== "bag" && val !== "compact") {
56
- logger.error('--emit must be "schema", "bag", or "compact"');
57
- process.exit(1);
58
- }
59
- // "compact" keeps the Zod schema (its safeParse IS the cold error path).
60
- return { zodCompat: val === "schema" || val === "compact", compact: val === "compact" };
54
+ if (val !== "schema" && val !== "bag" && val !== "compact") {
55
+ logger.error("--emit must be \"schema\", \"bag\", or \"compact\"");
56
+ process.exit(1);
57
+ }
58
+ return {
59
+ zodCompat: val === "schema" || val === "compact",
60
+ compact: val === "compact"
61
+ };
61
62
  }
62
63
  function parseArgs(argv) {
63
- const args = argv.slice(2);
64
- if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
65
- return { kind: "help" };
66
- }
67
- if (args.includes("--version") || args.includes("-v")) {
68
- return { kind: "version" };
69
- }
70
- const command = args[0];
71
- const rest = args.slice(1);
72
- if (command === "generate") {
73
- const inputs = [];
74
- let output;
75
- let watch = false;
76
- let zodCompat;
77
- let compact = false;
78
- // Default "auto": every exported Zod schema compiles, matching the plugin.
79
- let autoDiscover = true;
80
- for (let i = 0; i < rest.length; i++) {
81
- const arg = rest[i];
82
- if (arg === "-o" || arg === "--output") {
83
- i++;
84
- const val = rest[i];
85
- if (!val) {
86
- logger.error("Missing value for --output");
87
- process.exit(1);
88
- }
89
- output = val;
90
- }
91
- else if (arg === "-w" || arg === "--watch") {
92
- watch = true;
93
- }
94
- else if (arg === "--schemas") {
95
- i++;
96
- autoDiscover = parseSchemasValue(rest[i]);
97
- }
98
- else if (arg === "--emit") {
99
- i++;
100
- const emit = parseEmitValue(rest[i]);
101
- zodCompat = emit.zodCompat;
102
- compact = emit.compact;
103
- }
104
- else if (arg.startsWith("-")) {
105
- logger.error(`Unknown option: ${arg}`);
106
- process.exit(1);
107
- }
108
- else {
109
- inputs.push(arg);
110
- }
111
- }
112
- if (inputs.length === 0) {
113
- logger.error("No input files specified. Run 'zod-compiler --help' for usage.");
114
- process.exit(1);
115
- }
116
- return {
117
- kind: "generate",
118
- options: {
119
- inputs,
120
- output,
121
- watch,
122
- zodCompat,
123
- compact,
124
- autoDiscover,
125
- },
126
- };
127
- }
128
- if (command === "check") {
129
- const inputs = [];
130
- let json = false;
131
- let failUnder;
132
- let noColor = false;
133
- // Default "auto", matching generate and the plugin.
134
- let autoDiscover = true;
135
- for (let i = 0; i < rest.length; i++) {
136
- const arg = rest[i];
137
- if (arg === "--json") {
138
- json = true;
139
- }
140
- else if (arg === "--schemas") {
141
- i++;
142
- autoDiscover = parseSchemasValue(rest[i]);
143
- }
144
- else if (arg === "--fail-under") {
145
- i++;
146
- const val = rest[i];
147
- if (!val) {
148
- logger.error("Missing value for --fail-under");
149
- process.exit(1);
150
- }
151
- const num = Number(val);
152
- if (Number.isNaN(num) || num < 0 || num > 100) {
153
- logger.error("--fail-under must be a number between 0 and 100");
154
- process.exit(1);
155
- }
156
- failUnder = num;
157
- }
158
- else if (arg === "--no-color") {
159
- noColor = true;
160
- }
161
- else if (arg.startsWith("-")) {
162
- logger.error(`Unknown option: ${arg}`);
163
- process.exit(1);
164
- }
165
- else {
166
- inputs.push(arg);
167
- }
168
- }
169
- if (inputs.length === 0) {
170
- logger.error("No input files specified. Run 'zod-compiler --help' for usage.");
171
- process.exit(1);
172
- }
173
- return { kind: "check", options: { inputs, json, failUnder, noColor, autoDiscover } };
174
- }
175
- logger.error(`Unknown command: ${command}. Run 'zod-compiler --help' for usage.`);
176
- process.exit(1);
64
+ const args = argv.slice(2);
65
+ if (args.length === 0 || args.includes("--help") || args.includes("-h")) return { kind: "help" };
66
+ if (args.includes("--version") || args.includes("-v")) return { kind: "version" };
67
+ const command = args[0];
68
+ const rest = args.slice(1);
69
+ if (command === "generate") {
70
+ const inputs = [];
71
+ let output;
72
+ let watch = false;
73
+ let zodCompat;
74
+ let compact = false;
75
+ let autoDiscover = true;
76
+ for (let i = 0; i < rest.length; i++) {
77
+ const arg = rest[i];
78
+ if (arg === "-o" || arg === "--output") {
79
+ i++;
80
+ const val = rest[i];
81
+ if (!val) {
82
+ logger.error("Missing value for --output");
83
+ process.exit(1);
84
+ }
85
+ output = val;
86
+ } else if (arg === "-w" || arg === "--watch") watch = true;
87
+ else if (arg === "--schemas") {
88
+ i++;
89
+ autoDiscover = parseSchemasValue(rest[i]);
90
+ } else if (arg === "--emit") {
91
+ i++;
92
+ const emit = parseEmitValue(rest[i]);
93
+ zodCompat = emit.zodCompat;
94
+ compact = emit.compact;
95
+ } else if (arg.startsWith("-")) {
96
+ logger.error(`Unknown option: ${arg}`);
97
+ process.exit(1);
98
+ } else inputs.push(arg);
99
+ }
100
+ if (inputs.length === 0) {
101
+ logger.error("No input files specified. Run 'zod-compiler --help' for usage.");
102
+ process.exit(1);
103
+ }
104
+ return {
105
+ kind: "generate",
106
+ options: {
107
+ inputs,
108
+ output,
109
+ watch,
110
+ zodCompat,
111
+ compact,
112
+ autoDiscover
113
+ }
114
+ };
115
+ }
116
+ if (command === "check") {
117
+ const inputs = [];
118
+ let json = false;
119
+ let failUnder;
120
+ let noColor = false;
121
+ let autoDiscover = true;
122
+ for (let i = 0; i < rest.length; i++) {
123
+ const arg = rest[i];
124
+ if (arg === "--json") json = true;
125
+ else if (arg === "--schemas") {
126
+ i++;
127
+ autoDiscover = parseSchemasValue(rest[i]);
128
+ } else if (arg === "--fail-under") {
129
+ i++;
130
+ const val = rest[i];
131
+ if (!val) {
132
+ logger.error("Missing value for --fail-under");
133
+ process.exit(1);
134
+ }
135
+ const num = Number(val);
136
+ if (Number.isNaN(num) || num < 0 || num > 100) {
137
+ logger.error("--fail-under must be a number between 0 and 100");
138
+ process.exit(1);
139
+ }
140
+ failUnder = num;
141
+ } else if (arg === "--no-color") noColor = true;
142
+ else if (arg.startsWith("-")) {
143
+ logger.error(`Unknown option: ${arg}`);
144
+ process.exit(1);
145
+ } else inputs.push(arg);
146
+ }
147
+ if (inputs.length === 0) {
148
+ logger.error("No input files specified. Run 'zod-compiler --help' for usage.");
149
+ process.exit(1);
150
+ }
151
+ return {
152
+ kind: "check",
153
+ options: {
154
+ inputs,
155
+ json,
156
+ failUnder,
157
+ noColor,
158
+ autoDiscover
159
+ }
160
+ };
161
+ }
162
+ logger.error(`Unknown command: ${command}. Run 'zod-compiler --help' for usage.`);
163
+ process.exit(1);
177
164
  }
178
165
  async function main() {
179
- const command = parseArgs(process.argv);
180
- switch (command.kind) {
181
- case "help":
182
- printUsage();
183
- break;
184
- case "version":
185
- // oxlint-disable-next-line no-console -- CLI output
186
- console.log(VERSION);
187
- break;
188
- case "generate": {
189
- if (command.options.watch) {
190
- const { runWatch } = await import("./commands/watch.js");
191
- await runWatch(command.options);
192
- }
193
- else {
194
- const { runGenerate } = await import("./commands/generate.js");
195
- await runGenerate(command.options);
196
- }
197
- break;
198
- }
199
- case "check": {
200
- const { runCheck } = await import("./commands/check.js");
201
- await runCheck(command.options);
202
- break;
203
- }
204
- }
166
+ const command = parseArgs(process.argv);
167
+ switch (command.kind) {
168
+ case "help":
169
+ printUsage();
170
+ break;
171
+ case "version":
172
+ console.log(VERSION);
173
+ break;
174
+ case "generate":
175
+ if (command.options.watch) {
176
+ const { runWatch } = await import("./commands/watch.js");
177
+ await runWatch(command.options);
178
+ } else {
179
+ const { runGenerate } = await import("./commands/generate.js");
180
+ await runGenerate(command.options);
181
+ }
182
+ break;
183
+ case "check": {
184
+ const { runCheck } = await import("./commands/check.js");
185
+ await runCheck(command.options);
186
+ break;
187
+ }
188
+ }
205
189
  }
206
- void main().catch((err) => {
207
- logger.error(getErrorMessage(err));
208
- process.exit(1);
190
+ main().catch((err) => {
191
+ logger.error(getErrorMessage(err));
192
+ process.exit(1);
209
193
  });
194
+ //#endregion
195
+ export {};
196
+
210
197
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { createRequire } from \"node:module\";\nimport process from \"node:process\";\nimport type { CheckOptions } from \"./commands/check.js\";\nimport type { GenerateOptions as BaseGenerateOptions } from \"./commands/generate.js\";\nimport { getErrorMessage } from \"./errors.js\";\nimport { logger } from \"./logger.js\";\n\nconst require = createRequire(import.meta.url);\nconst VERSION: string = (require(\"../../package.json\") as { version: string }).version;\n\ntype GenerateOptions = BaseGenerateOptions & { watch: boolean };\n\ntype Command =\n | { kind: \"generate\"; options: GenerateOptions }\n | { kind: \"check\"; options: CheckOptions }\n | { kind: \"help\" }\n | { kind: \"version\" };\n\nfunction printUsage(): void {\n // oxlint-disable-next-line no-console -- CLI output\n console.log(\n `\nzod-compiler v${VERSION} — Compile Zod schemas into zero-overhead validation functions\n\nUsage:\n zod-compiler generate <files...> [-o <output>] [-w] [--schemas <mode>]\n zod-compiler check <files...> [--json] [--fail-under <pct>] [--no-color] [--schemas <mode>]\n\nCommands:\n generate Generate optimized validation code from discovered schemas\n check Check schemas with tree view, coverage, Fast Path status, and hints\n\nOptions:\n -o, --output <path> Output file or directory\n -w, --watch Watch for changes and regenerate\n --schemas <explicit|auto> How schemas are found: \"auto\" (default) compiles every\n exported Zod schema; \"explicit\" only compile()-wrapped ones\n --emit <schema|bag|compact> Compiled export shape: \"schema\" (default, full Zod API),\n \"bag\" (minimal methods-only object, smaller output), or\n \"compact\" (full Zod API, fast path only — cold errors\n delegated to Zod; ~70% smaller output)\n --json Output diagnosis as JSON (check only)\n --fail-under <pct> Exit with code 1 if any schema's coverage < pct (check only)\n --no-color Disable colored output (check only)\n -h, --help Show this help message\n -v, --version Show version number\n\nExamples:\n zod-compiler generate src/schemas.ts\n zod-compiler generate src/schemas.ts -o src/schemas.compiled.ts\n zod-compiler generate src/ --watch\n zod-compiler generate src/schemas.ts --schemas explicit\n zod-compiler check src/schemas.ts\n zod-compiler check src/schemas.ts --json --fail-under 80\n`.trim(),\n );\n}\n\n/** Parse a `--schemas <explicit|auto>` value; exits on invalid input. */\nfunction parseSchemasValue(val: string | undefined): boolean {\n if (val !== \"explicit\" && val !== \"auto\") {\n logger.error('--schemas must be \"explicit\" or \"auto\"');\n process.exit(1);\n }\n return val === \"auto\";\n}\n\n/** Parse an `--emit <schema|bag|compact>` value; exits on invalid input. */\nfunction parseEmitValue(val: string | undefined): { zodCompat: boolean; compact: boolean } {\n if (val !== \"schema\" && val !== \"bag\" && val !== \"compact\") {\n logger.error('--emit must be \"schema\", \"bag\", or \"compact\"');\n process.exit(1);\n }\n // \"compact\" keeps the Zod schema (its safeParse IS the cold error path).\n return { zodCompat: val === \"schema\" || val === \"compact\", compact: val === \"compact\" };\n}\n\nfunction parseArgs(argv: string[]): Command {\n const args = argv.slice(2);\n\n if (args.length === 0 || args.includes(\"--help\") || args.includes(\"-h\")) {\n return { kind: \"help\" };\n }\n\n if (args.includes(\"--version\") || args.includes(\"-v\")) {\n return { kind: \"version\" };\n }\n\n const command = args[0];\n const rest = args.slice(1);\n\n if (command === \"generate\") {\n const inputs: string[] = [];\n let output: string | undefined;\n let watch = false;\n let zodCompat: boolean | undefined;\n let compact = false;\n // Default \"auto\": every exported Zod schema compiles, matching the plugin.\n let autoDiscover = true;\n\n for (let i = 0; i < rest.length; i++) {\n const arg = rest[i] as string;\n if (arg === \"-o\" || arg === \"--output\") {\n i++;\n const val = rest[i];\n if (!val) {\n logger.error(\"Missing value for --output\");\n process.exit(1);\n }\n output = val;\n } else if (arg === \"-w\" || arg === \"--watch\") {\n watch = true;\n } else if (arg === \"--schemas\") {\n i++;\n autoDiscover = parseSchemasValue(rest[i]);\n } else if (arg === \"--emit\") {\n i++;\n const emit = parseEmitValue(rest[i]);\n zodCompat = emit.zodCompat;\n compact = emit.compact;\n } else if (arg.startsWith(\"-\")) {\n logger.error(`Unknown option: ${arg}`);\n process.exit(1);\n } else {\n inputs.push(arg);\n }\n }\n\n if (inputs.length === 0) {\n logger.error(\"No input files specified. Run 'zod-compiler --help' for usage.\");\n process.exit(1);\n }\n\n return {\n kind: \"generate\",\n options: {\n inputs,\n output,\n watch,\n zodCompat,\n compact,\n autoDiscover,\n },\n };\n }\n\n if (command === \"check\") {\n const inputs: string[] = [];\n let json = false;\n let failUnder: number | undefined;\n let noColor = false;\n // Default \"auto\", matching generate and the plugin.\n let autoDiscover = true;\n\n for (let i = 0; i < rest.length; i++) {\n const arg = rest[i] as string;\n if (arg === \"--json\") {\n json = true;\n } else if (arg === \"--schemas\") {\n i++;\n autoDiscover = parseSchemasValue(rest[i]);\n } else if (arg === \"--fail-under\") {\n i++;\n const val = rest[i];\n if (!val) {\n logger.error(\"Missing value for --fail-under\");\n process.exit(1);\n }\n const num = Number(val);\n if (Number.isNaN(num) || num < 0 || num > 100) {\n logger.error(\"--fail-under must be a number between 0 and 100\");\n process.exit(1);\n }\n failUnder = num;\n } else if (arg === \"--no-color\") {\n noColor = true;\n } else if (arg.startsWith(\"-\")) {\n logger.error(`Unknown option: ${arg}`);\n process.exit(1);\n } else {\n inputs.push(arg);\n }\n }\n\n if (inputs.length === 0) {\n logger.error(\"No input files specified. Run 'zod-compiler --help' for usage.\");\n process.exit(1);\n }\n\n return { kind: \"check\", options: { inputs, json, failUnder, noColor, autoDiscover } };\n }\n\n logger.error(`Unknown command: ${command}. Run 'zod-compiler --help' for usage.`);\n process.exit(1);\n}\n\nasync function main(): Promise<void> {\n const command = parseArgs(process.argv);\n\n switch (command.kind) {\n case \"help\":\n printUsage();\n break;\n case \"version\":\n // oxlint-disable-next-line no-console -- CLI output\n console.log(VERSION);\n break;\n case \"generate\": {\n if (command.options.watch) {\n const { runWatch } = await import(\"./commands/watch.js\");\n await runWatch(command.options);\n } else {\n const { runGenerate } = await import(\"./commands/generate.js\");\n await runGenerate(command.options);\n }\n break;\n }\n case \"check\": {\n const { runCheck } = await import(\"./commands/check.js\");\n await runCheck(command.options);\n break;\n }\n }\n}\n\nvoid main().catch((err: unknown) => {\n logger.error(getErrorMessage(err));\n process.exit(1);\n});\n"],"mappings":"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"}
@@ -1,18 +1,21 @@
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;
1
+ //#region src/cli/logger.d.ts
2
+ interface Colors {
3
+ reset: string;
4
+ red: string;
5
+ green: string;
6
+ yellow: string;
7
+ cyan: string;
8
+ dim: string;
9
+ bold: string;
9
10
  }
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;
11
+ declare function createColors(enabled: boolean): Colors;
12
+ declare const logger: {
13
+ info(msg: string): void;
14
+ success(msg: string): void;
15
+ warn(msg: string): void;
16
+ error(msg: string): void;
17
+ dim(msg: string): void;
17
18
  };
19
+ //#endregion
20
+ export { Colors, createColors, logger };
18
21
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"logger.d.ts","names":[],"sources":["../../src/cli/logger.ts"],"mappings":";UAEiB;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;iBAac,aAAa,mBAAmB;cAoBnC;EACD,KAAA;EAGG,QAAA;EAGH,KAAA;EAGC,MAAA;EAGF,IAAA"}
@@ -1,46 +1,47 @@
1
1
  import process from "node:process";
2
+ //#region src/cli/logger.ts
2
3
  const NO_COLORS = {
3
- reset: "",
4
- red: "",
5
- green: "",
6
- yellow: "",
7
- cyan: "",
8
- dim: "",
9
- bold: "",
4
+ reset: "",
5
+ red: "",
6
+ green: "",
7
+ yellow: "",
8
+ cyan: "",
9
+ dim: "",
10
+ bold: ""
10
11
  };
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
- };
12
+ function createColors(enabled) {
13
+ if (!enabled) 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
23
  }
24
24
  const colors = createColors(process.stdout.isTTY === true);
25
- // oxlint-disable-next-line no-console -- CLI output
26
25
  const log = console.log;
27
- // oxlint-disable-next-line no-console -- CLI output
28
26
  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
- },
27
+ const logger = {
28
+ info(msg) {
29
+ log(`${colors.cyan}info${colors.reset} ${msg}`);
30
+ },
31
+ success(msg) {
32
+ log(`${colors.green}done${colors.reset} ${msg}`);
33
+ },
34
+ warn(msg) {
35
+ logError(`${colors.yellow}warn${colors.reset} ${msg}`);
36
+ },
37
+ error(msg) {
38
+ logError(`${colors.red}error${colors.reset} ${msg}`);
39
+ },
40
+ dim(msg) {
41
+ log(`${colors.dim}${msg}${colors.reset}`);
42
+ }
45
43
  };
44
+ //#endregion
45
+ export { createColors, logger };
46
+
46
47
  //# sourceMappingURL=logger.js.map
@@ -1 +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,oDAAoD;AACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACxB,oDAAoD;AACpD,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"}
1
+ {"version":3,"file":"logger.js","names":[],"sources":["../../src/cli/logger.ts"],"sourcesContent":["import process from \"node:process\";\n\nexport interface Colors {\n reset: string;\n red: string;\n green: string;\n yellow: string;\n cyan: string;\n dim: string;\n bold: string;\n}\n\nconst NO_COLORS: Colors = {\n reset: \"\",\n red: \"\",\n green: \"\",\n yellow: \"\",\n cyan: \"\",\n dim: \"\",\n bold: \"\",\n};\n\nexport function createColors(enabled: boolean): Colors {\n if (!enabled) return NO_COLORS;\n return {\n reset: \"\\x1b[0m\",\n red: \"\\x1b[31m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n cyan: \"\\x1b[36m\",\n dim: \"\\x1b[2m\",\n bold: \"\\x1b[1m\",\n };\n}\n\nconst colors = createColors(process.stdout.isTTY === true);\n\n// oxlint-disable-next-line no-console -- CLI output\nconst log = console.log;\n// oxlint-disable-next-line no-console -- CLI output\nconst logError = console.error;\n\nexport const logger = {\n info(msg: string): void {\n log(`${colors.cyan}info${colors.reset} ${msg}`);\n },\n success(msg: string): void {\n log(`${colors.green}done${colors.reset} ${msg}`);\n },\n warn(msg: string): void {\n logError(`${colors.yellow}warn${colors.reset} ${msg}`);\n },\n error(msg: string): void {\n logError(`${colors.red}error${colors.reset} ${msg}`);\n },\n dim(msg: string): void {\n log(`${colors.dim}${msg}${colors.reset}`);\n },\n};\n"],"mappings":";;AAYA,MAAM,YAAoB;CACxB,OAAO;CACP,KAAK;CACL,OAAO;CACP,QAAQ;CACR,MAAM;CACN,KAAK;CACL,MAAM;AACR;AAEA,SAAgB,aAAa,SAA0B;CACrD,IAAI,CAAC,SAAS,OAAO;CACrB,OAAO;EACL,OAAO;EACP,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACN,KAAK;EACL,MAAM;CACR;AACF;AAEA,MAAM,SAAS,aAAa,QAAQ,OAAO,UAAU,IAAI;AAGzD,MAAM,MAAM,QAAQ;AAEpB,MAAM,WAAW,QAAQ;AAEzB,MAAa,SAAS;CACpB,KAAK,KAAmB;EACtB,IAAI,GAAG,OAAO,KAAK,MAAM,OAAO,MAAM,GAAG,KAAK;CAChD;CACA,QAAQ,KAAmB;EACzB,IAAI,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,GAAG,KAAK;CACjD;CACA,KAAK,KAAmB;EACtB,SAAS,GAAG,OAAO,OAAO,MAAM,OAAO,MAAM,GAAG,KAAK;CACvD;CACA,MAAM,KAAmB;EACvB,SAAS,GAAG,OAAO,IAAI,OAAO,OAAO,MAAM,GAAG,KAAK;CACrD;CACA,IAAI,KAAmB;EACrB,IAAI,GAAG,OAAO,MAAM,MAAM,OAAO,OAAO;CAC1C;AACF"}
@@ -1,48 +1,14 @@
1
- /**
2
- * Build Path: one uninstrumented pass that VALIDATES and BUILDS the stripped
3
- * output together, abandoning the whole parse at the first failing check.
4
- *
5
- * `z.object()` strips unknown keys, so a successful parse cannot return the
6
- * input by reference — it must produce a fresh object. That rules out the Fast
7
- * Path (whose contract is `data === input`), and before this the only remaining
8
- * option was the eager slow walk: a fully instrumented traversal that collects
9
- * issues on every parse, valid or not.
10
- *
11
- * Two passes are wasteful in either direction. Validating first and building
12
- * afterwards reads every property twice (measured 29.7 ns vs 21.6 for the slow
13
- * walk on a 6-field object). Building with issue collection pays the
14
- * instrumentation even when nothing fails. Doing both in ONE pass, with a
15
- * sentinel instead of an issues array, beats both — and a failure costs only
16
- * the checks up to the first bad one, because the issue-producing walk is
17
- * deferred into `.error` exactly as `__zcFinD` does for mutation-free schemas:
18
- *
19
- * object clean object invalid array(8) invalid
20
- * slow walk 21.6 ns 30.4 ns 197.5 ns
21
- * build path 18.1 ns 7.7 ns 9.8 ns
22
- *
23
- * A subtree that rebuilds nothing is validated with its existing Fast Path
24
- * expression and passed through by reference, so only nodes that genuinely
25
- * produce a new value need code here; anything else returns null and keeps the
26
- * eager walk.
27
- *
28
- * Coverage is what decides whether this pass is reached at all, because it is
29
- * all-or-nothing per schema: ONE unmodelled node anywhere in the tree costs the
30
- * whole schema its single-pass parse. Modelled, beyond the stripping containers
31
- * this started with: array size checks and `.refine()`, object-level `.refine()`,
32
- * `.default()` substitution, ordered string rewrites (`.trim()`,
33
- * `.toLowerCase()`), and sync `.transform()`. Still declined, via
34
- * {@link mutatesBeyondStrip} — coerce, `.catch()` (its callback wants the inner
35
- * schema's issue list, which this pass never builds), `z.url()`, and
36
- * `superRefine`.
37
- */
38
- import type { SchemaIR } from "../types.js";
39
- import type { CodeGenContext } from "./context.js";
1
+ import { SchemaIR } from "../types.js";
2
+ import { CodeGenContext } from "./context.js";
3
+ //#region src/core/codegen/build-path.d.ts
40
4
  /** Does `ir`, taken as a whole schema, produce a value that is not its input? */
41
- export declare function rebuildsOutput(ir: SchemaIR): boolean;
5
+ declare function rebuildsOutput(ir: SchemaIR): boolean;
42
6
  /**
43
7
  * Host the whole schema as `function NAME(input){…}` returning the built value
44
8
  * or the FAIL sentinel. Returns the function name, or null when the schema is
45
9
  * not expressible as a single build pass.
46
10
  */
47
- export declare function generateBuild(ir: SchemaIR, ctx: CodeGenContext): string | null;
11
+ declare function generateBuild(ir: SchemaIR, ctx: CodeGenContext): string | null;
12
+ //#endregion
13
+ export { generateBuild, rebuildsOutput };
48
14
  //# sourceMappingURL=build-path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/build-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAiC,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAiG9D,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEpD;AA2FD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAY9E"}
1
+ {"version":3,"file":"build-path.d.ts","names":[],"sources":["../../../src/core/codegen/build-path.ts"],"mappings":";;;;iBAgJgB,eAAe,IAAI;;;;;;iBAmGnB,cAAc,IAAI,UAAU,KAAK"}