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/README.md CHANGED
@@ -434,6 +434,8 @@ Schema-level `error` and `z.config()` maps are unaffected; for a per-call map us
434
434
  | object with captured transform | 1.4M | 6.3M | **15.1M** | — | — | 2.4x |
435
435
  | object with captured refine (cross-field) | 1.6M | 2.4M | **15.3M** | — | — | 6.3x |
436
436
  | object with superRefine (cross-field) | 1.6M | 2.3M | **11.6M** | — | — | 5.0x |
437
+ | coerced query object (valid) | 1.9M | 2.3M | **5.2M** | — | — | 2.2x |
438
+ | coerced query object (invalid) | 1.1M | 162K | **10.1M** | — | — | **62x** |
437
439
 
438
440
  _ops/s, higher is better. `vitest bench` on an Apple M4 Max (zod 4.3.6, zod v3 3.23.8, typia 12, ajv 8),
439
441
  best of three runs. The harness costs ~55 ns per iteration, so the fastest rows sit at that floor and gaps
@@ -443,7 +445,7 @@ Nested objects, arrays and recursive types gain the most. Rejection is fast beca
443
445
  `safeParse` defers building the error until `.error` is read.
444
446
 
445
447
  ```bash
446
- pnpm benchmark # run locally
448
+ vp run benchmark # run locally
447
449
  ```
448
450
 
449
451
  ### Performance Architecture
@@ -456,15 +458,16 @@ idioms (array size checks, `.refine()`, `.default()`, `.trim()`, `.transform()`)
456
458
 
457
459
  Regexes are pre-compiled with bounded repeats unrolled, checks run cheapest-first, discriminated unions
458
460
  dispatch through a jump table (plain tagged unions are auto-discriminated into it), and oversized check
459
- functions are split to stay within V8's optimizer budget.
461
+ functions are split to stay within V8's optimizer budget. Stripping objects, native coercions, defaults,
462
+ string rewrites and synchronous transforms validate and build their output in one pass.
460
463
 
461
464
  ## Development
462
465
 
463
466
  ```bash
464
- pnpm install
465
- pnpm test
466
- pnpm benchmark
467
- pnpm lint
467
+ vp install
468
+ vp test
469
+ vp run benchmark
470
+ vp run lint
468
471
  ```
469
472
 
470
473
  ## Acknowledgements
@@ -1,9 +1,12 @@
1
- export interface CheckOptions {
2
- inputs: string[];
3
- json: boolean;
4
- failUnder: number | undefined;
5
- noColor: boolean;
6
- autoDiscover: boolean;
1
+ //#region src/cli/commands/check.d.ts
2
+ interface CheckOptions {
3
+ inputs: string[];
4
+ json: boolean;
5
+ failUnder: number | undefined;
6
+ noColor: boolean;
7
+ autoDiscover: boolean;
7
8
  }
8
- export declare function runCheck(options: CheckOptions): Promise<void>;
9
+ declare function runCheck(options: CheckOptions): Promise<void>;
10
+ //#endregion
11
+ export { CheckOptions, runCheck };
9
12
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAkFA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HnE"}
1
+ {"version":3,"file":"check.d.ts","names":[],"sources":["../../../src/cli/commands/check.ts"],"mappings":";UAkFiB;EACf;EACA;EACA;EACA;EACA;;iBAGoB,SAAS,SAAS,eAAe"}
@@ -1,157 +1,134 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import process from "node:process";
4
- import { diagnoseSchema } from "../../core/diagnostic.js";
5
- import { extractSchema } from "../../core/extract/index.js";
6
1
  import { discoverSchemas } from "../../discovery.js";
2
+ import { extractSchema } from "../../core/extract/index.js";
7
3
  import { getErrorMessage } from "../errors.js";
8
4
  import { createColors, logger } from "../logger.js";
9
- // ─── Tree Rendering ─────────────────────────────────────────────────────────
5
+ import { diagnoseSchema } from "../../core/diagnostic.js";
6
+ import path from "node:path";
7
+ import fs from "node:fs";
8
+ import process from "node:process";
9
+ //#region src/cli/commands/check.ts
10
10
  function renderTree(node, c, prefix = "", isLast = true) {
11
- const lines = [];
12
- const connector = prefix === "" ? "" : isLast ? "└─ " : "├─ ";
13
- const childPrefix = prefix === "" ? "" : prefix + (isLast ? " " : "│ ");
14
- const statusIcon = node.status === "compiled" ? `${c.green}✓${c.reset}` : `${c.red}✗${c.reset}`;
15
- const typeLabel = `${c.bold}${node.type}${c.reset}`;
16
- const pathLabel = node.path && node.path !== "(root)" ? ` ${c.dim}${node.path}${c.reset}` : "";
17
- const reasonLabel = node.status === "fallback" && node.reason ? ` ${c.yellow}(${node.reason})${c.reset}` : "";
18
- lines.push(`${prefix}${connector}${statusIcon} ${typeLabel}${pathLabel}${reasonLabel}`);
19
- if (node.status === "fallback" && node.hint) {
20
- const hintPrefix = `${childPrefix} `;
21
- lines.push(`${hintPrefix}${c.dim}hint: ${node.hint}${c.reset}`);
22
- }
23
- for (const [i, child] of node.children.entries()) {
24
- const last = i === node.children.length - 1;
25
- lines.push(...renderTree(child, c, childPrefix, last));
26
- }
27
- return lines;
11
+ const lines = [];
12
+ const connector = prefix === "" ? "" : isLast ? "└─ " : "├─ ";
13
+ const childPrefix = prefix === "" ? "" : prefix + (isLast ? " " : "│ ");
14
+ const statusIcon = node.status === "compiled" ? `${c.green}✓${c.reset}` : `${c.red}✗${c.reset}`;
15
+ const typeLabel = `${c.bold}${node.type}${c.reset}`;
16
+ const pathLabel = node.path && node.path !== "(root)" ? ` ${c.dim}${node.path}${c.reset}` : "";
17
+ const reasonLabel = node.status === "fallback" && node.reason ? ` ${c.yellow}(${node.reason})${c.reset}` : "";
18
+ lines.push(`${prefix}${connector}${statusIcon} ${typeLabel}${pathLabel}${reasonLabel}`);
19
+ if (node.status === "fallback" && node.hint) {
20
+ const hintPrefix = `${childPrefix} `;
21
+ lines.push(`${hintPrefix}${c.dim}hint: ${node.hint}${c.reset}`);
22
+ }
23
+ for (const [i, child] of node.children.entries()) {
24
+ const last = i === node.children.length - 1;
25
+ lines.push(...renderTree(child, c, childPrefix, last));
26
+ }
27
+ return lines;
28
28
  }
29
29
  function buildJsonReport(filePath, results) {
30
- return {
31
- file: filePath,
32
- schemas: results.map(({ exportName, diagnostic }) => {
33
- const report = {
34
- exportName,
35
- coverage: {
36
- total: diagnostic.total,
37
- compilable: diagnostic.compilable,
38
- percent: diagnostic.coveragePct,
39
- },
40
- fastPath: { eligible: diagnostic.fastPathEligible },
41
- fallbacks: diagnostic.fallbacks,
42
- };
43
- if (diagnostic.fastPathBlocker) {
44
- report.fastPath.blocker = diagnostic.fastPathBlocker;
45
- }
46
- return report;
47
- }),
48
- };
30
+ return {
31
+ file: filePath,
32
+ schemas: results.map(({ exportName, diagnostic }) => {
33
+ const report = {
34
+ exportName,
35
+ coverage: {
36
+ total: diagnostic.total,
37
+ compilable: diagnostic.compilable,
38
+ percent: diagnostic.coveragePct
39
+ },
40
+ fastPath: { eligible: diagnostic.fastPathEligible },
41
+ fallbacks: diagnostic.fallbacks
42
+ };
43
+ if (diagnostic.fastPathBlocker) report.fastPath.blocker = diagnostic.fastPathBlocker;
44
+ return report;
45
+ })
46
+ };
49
47
  }
50
- export async function runCheck(options) {
51
- // oxlint-disable-next-line no-console -- CLI output
52
- const out = console.log;
53
- // oxlint-disable-next-line no-console -- CLI output
54
- const err = console.error;
55
- const colorEnabled = !options.noColor && process.stdout.isTTY === true;
56
- const c = createColors(colorEnabled);
57
- const files = [];
58
- for (const input of options.inputs) {
59
- const absPath = path.resolve(input);
60
- const stat = await fs.promises.stat(absPath).catch(() => null);
61
- if (!stat) {
62
- logger.error(`File not found: ${input}`);
63
- process.exit(1);
64
- }
65
- if (stat.isDirectory()) {
66
- logger.error("check command expects file paths, not directories.");
67
- process.exit(1);
68
- }
69
- files.push(absPath);
70
- }
71
- const allJsonReports = [];
72
- let minCoverage = 100;
73
- let schemasProcessed = 0;
74
- for (const filePath of files) {
75
- const relPath = path.relative(process.cwd(), filePath);
76
- let schemas;
77
- try {
78
- schemas = await discoverSchemas(filePath, { autoDiscover: options.autoDiscover });
79
- }
80
- catch (e) {
81
- logger.error(`Failed to load ${relPath}: ${getErrorMessage(e)}`);
82
- process.exit(1);
83
- }
84
- if (schemas.length === 0) {
85
- const hint = options.autoDiscover
86
- ? "no Zod schemas exported"
87
- : "no compile() calls found (use --schemas auto to scan plain Zod exports)";
88
- logger.warn(`${relPath}: ${hint}`);
89
- continue;
90
- }
91
- const results = [];
92
- for (const s of schemas) {
93
- let ir;
94
- try {
95
- // Collect refs exactly as the compile pipeline does. A callback that
96
- // captures is compiled by REFERENCE through an `__rf[]` entry, which
97
- // only happens when a ref table is present — extracting without one
98
- // reports every captured refine/transform and every superRefine as a
99
- // fallback, so `check` claimed 0% on schemas `generate` compiles in
100
- // full and told the user to rewrite code that was already fast.
101
- const refEntries = [];
102
- ir = extractSchema(s.schema, refEntries);
103
- }
104
- catch (e) {
105
- err(`${c.red}error${c.reset} Failed to extract "${s.exportName}" in ${relPath}: ${getErrorMessage(e)}`);
106
- continue;
107
- }
108
- const diagnostic = diagnoseSchema(ir);
109
- results.push({ exportName: s.exportName, diagnostic });
110
- schemasProcessed++;
111
- if (diagnostic.coveragePct < minCoverage) {
112
- minCoverage = diagnostic.coveragePct;
113
- }
114
- }
115
- if (options.json) {
116
- allJsonReports.push(buildJsonReport(relPath, results));
117
- }
118
- else {
119
- out(`\n${c.bold}${relPath}${c.reset}`);
120
- for (const { exportName, diagnostic } of results) {
121
- const pctColor = diagnostic.coveragePct === 100 ? c.green : c.yellow;
122
- const fpLabel = diagnostic.fastPathEligible
123
- ? `${c.green}Fast Path: eligible${c.reset}`
124
- : `${c.yellow}Fast Path: ineligible${c.reset}${c.dim} (${diagnostic.fastPathBlocker})${c.reset}`;
125
- out(`\n ${c.cyan}${exportName}${c.reset} — ${pctColor}${diagnostic.coveragePct}%${c.reset} compiled (${diagnostic.compilable}/${diagnostic.total} nodes) | ${fpLabel}`);
126
- const treeLines = renderTree(diagnostic.root, c, " ");
127
- for (const line of treeLines) {
128
- out(line);
129
- }
130
- if (diagnostic.fallbacks.length > 0) {
131
- out(`\n ${c.yellow}Fallbacks:${c.reset}`);
132
- for (const fb of diagnostic.fallbacks) {
133
- out(` ${c.red}✗${c.reset} ${fb.path} — ${fb.reason}`);
134
- out(` ${c.dim}${fb.hint}${c.reset}`);
135
- }
136
- }
137
- }
138
- }
139
- }
140
- if (options.json) {
141
- out(JSON.stringify(allJsonReports, null, 2));
142
- }
143
- if (options.failUnder !== undefined) {
144
- if (schemasProcessed === 0) {
145
- logger.error("No schemas were analyzed — cannot satisfy --fail-under");
146
- process.exit(1);
147
- }
148
- if (minCoverage < options.failUnder) {
149
- logger.error(`Coverage ${minCoverage}% is below threshold ${options.failUnder}%`);
150
- process.exit(1);
151
- }
152
- }
153
- else if (schemasProcessed === 0) {
154
- process.exit(1);
155
- }
48
+ async function runCheck(options) {
49
+ const out = console.log;
50
+ const err = console.error;
51
+ const c = createColors(!options.noColor && process.stdout.isTTY === true);
52
+ const files = [];
53
+ for (const input of options.inputs) {
54
+ const absPath = path.resolve(input);
55
+ const stat = await fs.promises.stat(absPath).catch(() => null);
56
+ if (!stat) {
57
+ logger.error(`File not found: ${input}`);
58
+ process.exit(1);
59
+ }
60
+ if (stat.isDirectory()) {
61
+ logger.error("check command expects file paths, not directories.");
62
+ process.exit(1);
63
+ }
64
+ files.push(absPath);
65
+ }
66
+ const allJsonReports = [];
67
+ let minCoverage = 100;
68
+ let schemasProcessed = 0;
69
+ for (const filePath of files) {
70
+ const relPath = path.relative(process.cwd(), filePath);
71
+ let schemas;
72
+ try {
73
+ schemas = await discoverSchemas(filePath, { autoDiscover: options.autoDiscover });
74
+ } catch (e) {
75
+ logger.error(`Failed to load ${relPath}: ${getErrorMessage(e)}`);
76
+ process.exit(1);
77
+ }
78
+ if (schemas.length === 0) {
79
+ const hint = options.autoDiscover ? "no Zod schemas exported" : "no compile() calls found (use --schemas auto to scan plain Zod exports)";
80
+ logger.warn(`${relPath}: ${hint}`);
81
+ continue;
82
+ }
83
+ const results = [];
84
+ for (const s of schemas) {
85
+ let ir;
86
+ try {
87
+ ir = extractSchema(s.schema, []);
88
+ } catch (e) {
89
+ err(`${c.red}error${c.reset} Failed to extract "${s.exportName}" in ${relPath}: ${getErrorMessage(e)}`);
90
+ continue;
91
+ }
92
+ const diagnostic = diagnoseSchema(ir);
93
+ results.push({
94
+ exportName: s.exportName,
95
+ diagnostic
96
+ });
97
+ schemasProcessed++;
98
+ if (diagnostic.coveragePct < minCoverage) minCoverage = diagnostic.coveragePct;
99
+ }
100
+ if (options.json) allJsonReports.push(buildJsonReport(relPath, results));
101
+ else {
102
+ out(`\n${c.bold}${relPath}${c.reset}`);
103
+ for (const { exportName, diagnostic } of results) {
104
+ const pctColor = diagnostic.coveragePct === 100 ? c.green : c.yellow;
105
+ const fpLabel = diagnostic.fastPathEligible ? `${c.green}Fast Path: eligible${c.reset}` : `${c.yellow}Fast Path: ineligible${c.reset}${c.dim} (${diagnostic.fastPathBlocker})${c.reset}`;
106
+ out(`\n ${c.cyan}${exportName}${c.reset} — ${pctColor}${diagnostic.coveragePct}%${c.reset} compiled (${diagnostic.compilable}/${diagnostic.total} nodes) | ${fpLabel}`);
107
+ const treeLines = renderTree(diagnostic.root, c, " ");
108
+ for (const line of treeLines) out(line);
109
+ if (diagnostic.fallbacks.length > 0) {
110
+ out(`\n ${c.yellow}Fallbacks:${c.reset}`);
111
+ for (const fb of diagnostic.fallbacks) {
112
+ out(` ${c.red}✗${c.reset} ${fb.path} — ${fb.reason}`);
113
+ out(` ${c.dim}${fb.hint}${c.reset}`);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ if (options.json) out(JSON.stringify(allJsonReports, null, 2));
120
+ if (options.failUnder !== void 0) {
121
+ if (schemasProcessed === 0) {
122
+ logger.error("No schemas were analyzed — cannot satisfy --fail-under");
123
+ process.exit(1);
124
+ }
125
+ if (minCoverage < options.failUnder) {
126
+ logger.error(`Coverage ${minCoverage}% is below threshold ${options.failUnder}%`);
127
+ process.exit(1);
128
+ }
129
+ } else if (schemasProcessed === 0) process.exit(1);
156
130
  }
131
+ //#endregion
132
+ export { runCheck };
133
+
157
134
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","names":[],"sources":["../../../src/cli/commands/check.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport type { DiagnosticNode, DiagnosticResult } from \"../../core/diagnostic.js\";\nimport { diagnoseSchema } from \"../../core/diagnostic.js\";\nimport type { RefEntry } from \"../../core/extract/index.js\";\nimport { extractSchema } from \"../../core/extract/index.js\";\nimport type { DiscoveredSchema, SchemaIR } from \"../../core/types.js\";\nimport { discoverSchemas } from \"../../discovery.js\";\nimport { getErrorMessage } from \"../errors.js\";\nimport type { Colors } from \"../logger.js\";\nimport { createColors, logger } from \"../logger.js\";\n\n// ─── Tree Rendering ─────────────────────────────────────────────────────────\n\nfunction renderTree(node: DiagnosticNode, c: Colors, prefix = \"\", isLast = true): string[] {\n const lines: string[] = [];\n const connector = prefix === \"\" ? \"\" : isLast ? \"└─ \" : \"├─ \";\n const childPrefix = prefix === \"\" ? \"\" : prefix + (isLast ? \" \" : \"│ \");\n\n const statusIcon = node.status === \"compiled\" ? `${c.green}✓${c.reset}` : `${c.red}✗${c.reset}`;\n const typeLabel = `${c.bold}${node.type}${c.reset}`;\n const pathLabel = node.path && node.path !== \"(root)\" ? ` ${c.dim}${node.path}${c.reset}` : \"\";\n const reasonLabel =\n node.status === \"fallback\" && node.reason ? ` ${c.yellow}(${node.reason})${c.reset}` : \"\";\n\n lines.push(`${prefix}${connector}${statusIcon} ${typeLabel}${pathLabel}${reasonLabel}`);\n\n if (node.status === \"fallback\" && node.hint) {\n const hintPrefix = `${childPrefix} `;\n lines.push(`${hintPrefix}${c.dim}hint: ${node.hint}${c.reset}`);\n }\n\n for (const [i, child] of node.children.entries()) {\n const last = i === node.children.length - 1;\n lines.push(...renderTree(child, c, childPrefix, last));\n }\n\n return lines;\n}\n\n// ─── JSON Output ────────────────────────────────────────────────────────────\n\ninterface JsonSchemaReport {\n exportName: string;\n coverage: { total: number; compilable: number; percent: number };\n fastPath: { eligible: boolean; blocker?: string };\n fallbacks: { reason: string; path: string; hint: string }[];\n}\n\ninterface JsonReport {\n file: string;\n schemas: JsonSchemaReport[];\n}\n\nfunction buildJsonReport(\n filePath: string,\n results: { exportName: string; diagnostic: DiagnosticResult }[],\n): JsonReport {\n return {\n file: filePath,\n schemas: results.map(({ exportName, diagnostic }) => {\n const report: JsonSchemaReport = {\n exportName,\n coverage: {\n total: diagnostic.total,\n compilable: diagnostic.compilable,\n percent: diagnostic.coveragePct,\n },\n fastPath: { eligible: diagnostic.fastPathEligible },\n fallbacks: diagnostic.fallbacks,\n };\n if (diagnostic.fastPathBlocker) {\n report.fastPath.blocker = diagnostic.fastPathBlocker;\n }\n return report;\n }),\n };\n}\n\n// ─── Command ────────────────────────────────────────────────────────────────\n\nexport interface CheckOptions {\n inputs: string[];\n json: boolean;\n failUnder: number | undefined;\n noColor: boolean;\n autoDiscover: boolean;\n}\n\nexport async function runCheck(options: CheckOptions): Promise<void> {\n // oxlint-disable-next-line no-console -- CLI output\n const out = console.log;\n // oxlint-disable-next-line no-console -- CLI output\n const err = console.error;\n const colorEnabled = !options.noColor && process.stdout.isTTY === true;\n const c = createColors(colorEnabled);\n const files: string[] = [];\n\n for (const input of options.inputs) {\n const absPath = path.resolve(input);\n const stat = await fs.promises.stat(absPath).catch(() => null);\n\n if (!stat) {\n logger.error(`File not found: ${input}`);\n process.exit(1);\n }\n\n if (stat.isDirectory()) {\n logger.error(\"check command expects file paths, not directories.\");\n process.exit(1);\n }\n\n files.push(absPath);\n }\n\n const allJsonReports: JsonReport[] = [];\n let minCoverage = 100;\n let schemasProcessed = 0;\n\n for (const filePath of files) {\n const relPath = path.relative(process.cwd(), filePath);\n\n let schemas: DiscoveredSchema[];\n try {\n schemas = await discoverSchemas(filePath, { autoDiscover: options.autoDiscover });\n } catch (e) {\n logger.error(`Failed to load ${relPath}: ${getErrorMessage(e)}`);\n process.exit(1);\n }\n\n if (schemas.length === 0) {\n const hint = options.autoDiscover\n ? \"no Zod schemas exported\"\n : \"no compile() calls found (use --schemas auto to scan plain Zod exports)\";\n logger.warn(`${relPath}: ${hint}`);\n continue;\n }\n\n const results: { exportName: string; diagnostic: DiagnosticResult }[] = [];\n\n for (const s of schemas) {\n let ir: SchemaIR;\n try {\n // Collect refs exactly as the compile pipeline does. A callback that\n // captures is compiled by REFERENCE through an `__rf[]` entry, which\n // only happens when a ref table is present — extracting without one\n // reports every captured refine/transform and every superRefine as a\n // fallback, so `check` claimed 0% on schemas `generate` compiles in\n // full and told the user to rewrite code that was already fast.\n const refEntries: RefEntry[] = [];\n ir = extractSchema(s.schema, refEntries);\n } catch (e) {\n err(\n `${c.red}error${c.reset} Failed to extract \"${s.exportName}\" in ${relPath}: ${getErrorMessage(e)}`,\n );\n continue;\n }\n const diagnostic = diagnoseSchema(ir);\n results.push({ exportName: s.exportName, diagnostic });\n schemasProcessed++;\n\n if (diagnostic.coveragePct < minCoverage) {\n minCoverage = diagnostic.coveragePct;\n }\n }\n\n if (options.json) {\n allJsonReports.push(buildJsonReport(relPath, results));\n } else {\n out(`\\n${c.bold}${relPath}${c.reset}`);\n\n for (const { exportName, diagnostic } of results) {\n const pctColor = diagnostic.coveragePct === 100 ? c.green : c.yellow;\n const fpLabel = diagnostic.fastPathEligible\n ? `${c.green}Fast Path: eligible${c.reset}`\n : `${c.yellow}Fast Path: ineligible${c.reset}${c.dim} (${diagnostic.fastPathBlocker})${c.reset}`;\n\n out(\n `\\n ${c.cyan}${exportName}${c.reset} — ${pctColor}${diagnostic.coveragePct}%${c.reset} compiled (${diagnostic.compilable}/${diagnostic.total} nodes) | ${fpLabel}`,\n );\n\n const treeLines = renderTree(diagnostic.root, c, \" \");\n for (const line of treeLines) {\n out(line);\n }\n\n if (diagnostic.fallbacks.length > 0) {\n out(`\\n ${c.yellow}Fallbacks:${c.reset}`);\n for (const fb of diagnostic.fallbacks) {\n out(` ${c.red}✗${c.reset} ${fb.path} — ${fb.reason}`);\n out(` ${c.dim}${fb.hint}${c.reset}`);\n }\n }\n }\n }\n }\n\n if (options.json) {\n out(JSON.stringify(allJsonReports, null, 2));\n }\n\n if (options.failUnder !== undefined) {\n if (schemasProcessed === 0) {\n logger.error(\"No schemas were analyzed — cannot satisfy --fail-under\");\n process.exit(1);\n }\n if (minCoverage < options.failUnder) {\n logger.error(`Coverage ${minCoverage}% is below threshold ${options.failUnder}%`);\n process.exit(1);\n }\n } else if (schemasProcessed === 0) {\n process.exit(1);\n }\n}\n"],"mappings":"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"}
@@ -1,35 +1,38 @@
1
- export interface GenerateOptions {
2
- inputs: string[];
3
- output: string | undefined;
4
- zodCompat?: boolean | undefined;
5
- compact?: boolean | undefined;
6
- autoDiscover?: boolean | undefined;
1
+ //#region src/cli/commands/generate.d.ts
2
+ interface GenerateOptions {
3
+ inputs: string[];
4
+ output: string | undefined;
5
+ zodCompat?: boolean | undefined;
6
+ compact?: boolean | undefined;
7
+ autoDiscover?: boolean | undefined;
7
8
  }
8
- export interface GenerateFileResult {
9
- filePath: string;
10
- outputPath: string;
11
- schemaCount: number;
12
- schemaNames: string[];
9
+ interface GenerateFileResult {
10
+ filePath: string;
11
+ outputPath: string;
12
+ schemaCount: number;
13
+ schemaNames: string[];
13
14
  }
14
15
  /**
15
16
  * Check if a filename is a schema file candidate.
16
17
  * Shared filter logic used by both findSchemaFiles and isWatchTarget.
17
18
  */
18
- export declare function isSchemaFile(fileName: string): boolean;
19
+ declare function isSchemaFile(fileName: string): boolean;
19
20
  /**
20
21
  * Resolve input paths to a list of source files.
21
22
  * If a path is a directory, find all .ts files (excluding .compiled.ts, .test.ts, node_modules).
22
23
  */
23
- export declare function resolveInputFiles(inputs: string[]): Promise<string[]>;
24
- export declare function findSchemaFiles(dir: string): Promise<string[]>;
24
+ declare function resolveInputFiles(inputs: string[]): Promise<string[]>;
25
+ declare function findSchemaFiles(dir: string): Promise<string[]>;
25
26
  /**
26
27
  * Generate compiled output for a single source file.
27
28
  * Returns null if no compile() calls are found.
28
29
  */
29
- export declare function generateFile(filePath: string, outputFlag: string | undefined, options?: {
30
- zodCompat?: boolean | undefined;
31
- compact?: boolean | undefined;
32
- autoDiscover?: boolean | undefined;
30
+ declare function generateFile(filePath: string, outputFlag: string | undefined, options?: {
31
+ zodCompat?: boolean | undefined;
32
+ compact?: boolean | undefined;
33
+ autoDiscover?: boolean | undefined;
33
34
  }): Promise<GenerateFileResult | null>;
34
- export declare function runGenerate(options: GenerateOptions): Promise<void>;
35
+ declare function runGenerate(options: GenerateOptions): Promise<void>;
36
+ //#endregion
37
+ export { GenerateFileResult, GenerateOptions, findSchemaFiles, generateFile, isSchemaFile, resolveInputFiles, runGenerate };
35
38
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAStD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBpE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC,GACA,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA4CpC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CzE"}
1
+ {"version":3,"file":"generate.d.ts","names":[],"sources":["../../../src/cli/commands/generate.ts"],"mappings":";UAWiB;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;;;;;iBAOc,aAAa;;;;;iBAeP,kBAAkB,mBAAmB;iBAuBrC,gBAAgB,cAAc;;;;;iBAyB9B,aACpB,kBACA,gCACA;EACE;EACA;EACA;IAED,QAAQ;iBA8CW,YAAY,SAAS,kBAAkB"}