zod-compiler 1.23.0 → 1.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/README.md +9 -6
  2. package/dist/cli/commands/check.d.ts +10 -7
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +125 -148
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/generate.d.ts +22 -19
  7. package/dist/cli/commands/generate.d.ts.map +1 -1
  8. package/dist/cli/commands/generate.js +102 -133
  9. package/dist/cli/commands/generate.js.map +1 -1
  10. package/dist/cli/commands/watch.d.ts +17 -15
  11. package/dist/cli/commands/watch.d.ts.map +1 -1
  12. package/dist/cli/commands/watch.js +126 -154
  13. package/dist/cli/commands/watch.js.map +1 -1
  14. package/dist/cli/emitter.d.ts +19 -16
  15. package/dist/cli/emitter.d.ts.map +1 -1
  16. package/dist/cli/emitter.js +55 -71
  17. package/dist/cli/emitter.js.map +1 -1
  18. package/dist/cli/errors.d.ts +4 -1
  19. package/dist/cli/errors.d.ts.map +1 -1
  20. package/dist/cli/errors.js +6 -2
  21. package/dist/cli/errors.js.map +1 -1
  22. package/dist/cli/index.d.ts +1 -3
  23. package/dist/cli/index.js +147 -160
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/logger.d.ts +18 -15
  26. package/dist/cli/logger.d.ts.map +1 -1
  27. package/dist/cli/logger.js +38 -37
  28. package/dist/cli/logger.js.map +1 -1
  29. package/dist/core/codegen/build-path.d.ts +7 -41
  30. package/dist/core/codegen/build-path.d.ts.map +1 -1
  31. package/dist/core/codegen/build-path.js +481 -570
  32. package/dist/core/codegen/build-path.js.map +1 -1
  33. package/dist/core/codegen/context.d.ts +256 -253
  34. package/dist/core/codegen/context.d.ts.map +1 -1
  35. package/dist/core/codegen/context.js +363 -437
  36. package/dist/core/codegen/context.js.map +1 -1
  37. package/dist/core/codegen/dedupe.d.ts +22 -56
  38. package/dist/core/codegen/dedupe.d.ts.map +1 -1
  39. package/dist/core/codegen/dedupe.js +150 -242
  40. package/dist/core/codegen/dedupe.js.map +1 -1
  41. package/dist/core/codegen/emit-issue.d.ts +44 -68
  42. package/dist/core/codegen/emit-issue.d.ts.map +1 -1
  43. package/dist/core/codegen/emit-issue.js +76 -108
  44. package/dist/core/codegen/emit-issue.js.map +1 -1
  45. package/dist/core/codegen/emit.d.ts +4 -1
  46. package/dist/core/codegen/emit.d.ts.map +1 -1
  47. package/dist/core/codegen/emit.js +16 -13
  48. package/dist/core/codegen/emit.js.map +1 -1
  49. package/dist/core/codegen/fast-path.d.ts +7 -12
  50. package/dist/core/codegen/fast-path.d.ts.map +1 -1
  51. package/dist/core/codegen/fast-path.js +116 -145
  52. package/dist/core/codegen/fast-path.js.map +1 -1
  53. package/dist/core/codegen/fast-size.d.ts +12 -26
  54. package/dist/core/codegen/fast-size.d.ts.map +1 -1
  55. package/dist/core/codegen/fast-size.js +169 -244
  56. package/dist/core/codegen/fast-size.js.map +1 -1
  57. package/dist/core/codegen/index.d.ts +25 -23
  58. package/dist/core/codegen/index.d.ts.map +1 -1
  59. package/dist/core/codegen/index.js +239 -405
  60. package/dist/core/codegen/index.js.map +1 -1
  61. package/dist/core/codegen/issue-decls.d.ts +15 -12
  62. package/dist/core/codegen/issue-decls.d.ts.map +1 -1
  63. package/dist/core/codegen/issue-decls.js +131 -162
  64. package/dist/core/codegen/issue-decls.js.map +1 -1
  65. package/dist/core/codegen/regex-unroll.d.ts +4 -1
  66. package/dist/core/codegen/regex-unroll.d.ts.map +1 -1
  67. package/dist/core/codegen/regex-unroll.js +173 -197
  68. package/dist/core/codegen/regex-unroll.js.map +1 -1
  69. package/dist/core/codegen/schemas/any.d.ts +7 -4
  70. package/dist/core/codegen/schemas/any.d.ts.map +1 -1
  71. package/dist/core/codegen/schemas/any.js +8 -4
  72. package/dist/core/codegen/schemas/any.js.map +1 -1
  73. package/dist/core/codegen/schemas/array.d.ts +8 -5
  74. package/dist/core/codegen/schemas/array.d.ts.map +1 -1
  75. package/dist/core/codegen/schemas/array.js +77 -95
  76. package/dist/core/codegen/schemas/array.js.map +1 -1
  77. package/dist/core/codegen/schemas/bigint.d.ts +7 -4
  78. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
  79. package/dist/core/codegen/schemas/bigint.js +44 -56
  80. package/dist/core/codegen/schemas/bigint.js.map +1 -1
  81. package/dist/core/codegen/schemas/boolean.d.ts +7 -4
  82. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
  83. package/dist/core/codegen/schemas/boolean.js +12 -11
  84. package/dist/core/codegen/schemas/boolean.js.map +1 -1
  85. package/dist/core/codegen/schemas/catch.d.ts +8 -5
  86. package/dist/core/codegen/schemas/catch.d.ts.map +1 -1
  87. package/dist/core/codegen/schemas/catch.js +23 -23
  88. package/dist/core/codegen/schemas/catch.js.map +1 -1
  89. package/dist/core/codegen/schemas/date.d.ts +7 -4
  90. package/dist/core/codegen/schemas/date.d.ts.map +1 -1
  91. package/dist/core/codegen/schemas/date.js +49 -68
  92. package/dist/core/codegen/schemas/date.js.map +1 -1
  93. package/dist/core/codegen/schemas/default.d.ts +9 -6
  94. package/dist/core/codegen/schemas/default.d.ts.map +1 -1
  95. package/dist/core/codegen/schemas/default.js +29 -27
  96. package/dist/core/codegen/schemas/default.js.map +1 -1
  97. package/dist/core/codegen/schemas/discriminated-union.d.ts +12 -10
  98. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
  99. package/dist/core/codegen/schemas/discriminated-union.js +153 -178
  100. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
  101. package/dist/core/codegen/schemas/effect.d.ts +9 -6
  102. package/dist/core/codegen/schemas/effect.d.ts.map +1 -1
  103. package/dist/core/codegen/schemas/effect.js +54 -67
  104. package/dist/core/codegen/schemas/effect.js.map +1 -1
  105. package/dist/core/codegen/schemas/enum.d.ts +7 -4
  106. package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
  107. package/dist/core/codegen/schemas/enum.js +15 -21
  108. package/dist/core/codegen/schemas/enum.js.map +1 -1
  109. package/dist/core/codegen/schemas/fallback.d.ts +6 -3
  110. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -1
  111. package/dist/core/codegen/schemas/fallback.js +14 -13
  112. package/dist/core/codegen/schemas/fallback.js.map +1 -1
  113. package/dist/core/codegen/schemas/file.d.ts +7 -4
  114. package/dist/core/codegen/schemas/file.d.ts.map +1 -1
  115. package/dist/core/codegen/schemas/file.js +51 -57
  116. package/dist/core/codegen/schemas/file.js.map +1 -1
  117. package/dist/core/codegen/schemas/intersection.d.ts +8 -5
  118. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -1
  119. package/dist/core/codegen/schemas/intersection.js +16 -13
  120. package/dist/core/codegen/schemas/intersection.js.map +1 -1
  121. package/dist/core/codegen/schemas/literal.d.ts +7 -4
  122. package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
  123. package/dist/core/codegen/schemas/literal.js +20 -23
  124. package/dist/core/codegen/schemas/literal.js.map +1 -1
  125. package/dist/core/codegen/schemas/map.d.ts +8 -5
  126. package/dist/core/codegen/schemas/map.d.ts.map +1 -1
  127. package/dist/core/codegen/schemas/map.js +61 -67
  128. package/dist/core/codegen/schemas/map.js.map +1 -1
  129. package/dist/core/codegen/schemas/nan.d.ts +7 -4
  130. package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
  131. package/dist/core/codegen/schemas/nan.js +8 -4
  132. package/dist/core/codegen/schemas/nan.js.map +1 -1
  133. package/dist/core/codegen/schemas/never.d.ts +7 -4
  134. package/dist/core/codegen/schemas/never.d.ts.map +1 -1
  135. package/dist/core/codegen/schemas/never.js +8 -4
  136. package/dist/core/codegen/schemas/never.js.map +1 -1
  137. package/dist/core/codegen/schemas/null.d.ts +7 -4
  138. package/dist/core/codegen/schemas/null.d.ts.map +1 -1
  139. package/dist/core/codegen/schemas/null.js +8 -4
  140. package/dist/core/codegen/schemas/null.js.map +1 -1
  141. package/dist/core/codegen/schemas/nullable.d.ts +8 -5
  142. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -1
  143. package/dist/core/codegen/schemas/nullable.js +8 -5
  144. package/dist/core/codegen/schemas/nullable.js.map +1 -1
  145. package/dist/core/codegen/schemas/number.d.ts +7 -4
  146. package/dist/core/codegen/schemas/number.d.ts.map +1 -1
  147. package/dist/core/codegen/schemas/number.js +120 -176
  148. package/dist/core/codegen/schemas/number.js.map +1 -1
  149. package/dist/core/codegen/schemas/object.d.ts +8 -5
  150. package/dist/core/codegen/schemas/object.d.ts.map +1 -1
  151. package/dist/core/codegen/schemas/object.js +144 -231
  152. package/dist/core/codegen/schemas/object.js.map +1 -1
  153. package/dist/core/codegen/schemas/optional.d.ts +9 -6
  154. package/dist/core/codegen/schemas/optional.d.ts.map +1 -1
  155. package/dist/core/codegen/schemas/optional.js +23 -31
  156. package/dist/core/codegen/schemas/optional.js.map +1 -1
  157. package/dist/core/codegen/schemas/pipe.d.ts +8 -5
  158. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -1
  159. package/dist/core/codegen/schemas/pipe.js +20 -27
  160. package/dist/core/codegen/schemas/pipe.js.map +1 -1
  161. package/dist/core/codegen/schemas/readonly.d.ts +8 -5
  162. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -1
  163. package/dist/core/codegen/schemas/readonly.js +8 -5
  164. package/dist/core/codegen/schemas/readonly.js.map +1 -1
  165. package/dist/core/codegen/schemas/record.d.ts +8 -5
  166. package/dist/core/codegen/schemas/record.d.ts.map +1 -1
  167. package/dist/core/codegen/schemas/record.js +52 -65
  168. package/dist/core/codegen/schemas/record.js.map +1 -1
  169. package/dist/core/codegen/schemas/recursive-ref.d.ts +9 -6
  170. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -1
  171. package/dist/core/codegen/schemas/recursive-ref.js +44 -44
  172. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -1
  173. package/dist/core/codegen/schemas/set.d.ts +8 -5
  174. package/dist/core/codegen/schemas/set.d.ts.map +1 -1
  175. package/dist/core/codegen/schemas/set.js +61 -73
  176. package/dist/core/codegen/schemas/set.js.map +1 -1
  177. package/dist/core/codegen/schemas/string-bool.d.ts +6 -3
  178. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
  179. package/dist/core/codegen/schemas/string-bool.js +22 -23
  180. package/dist/core/codegen/schemas/string-bool.js.map +1 -1
  181. package/dist/core/codegen/schemas/string.d.ts +8 -5
  182. package/dist/core/codegen/schemas/string.d.ts.map +1 -1
  183. package/dist/core/codegen/schemas/string.js +168 -207
  184. package/dist/core/codegen/schemas/string.js.map +1 -1
  185. package/dist/core/codegen/schemas/symbol.d.ts +7 -4
  186. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
  187. package/dist/core/codegen/schemas/symbol.js +8 -4
  188. package/dist/core/codegen/schemas/symbol.js.map +1 -1
  189. package/dist/core/codegen/schemas/template-literal.d.ts +7 -4
  190. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
  191. package/dist/core/codegen/schemas/template-literal.js +12 -13
  192. package/dist/core/codegen/schemas/template-literal.js.map +1 -1
  193. package/dist/core/codegen/schemas/tuple.d.ts +8 -5
  194. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
  195. package/dist/core/codegen/schemas/tuple.js +84 -94
  196. package/dist/core/codegen/schemas/tuple.js.map +1 -1
  197. package/dist/core/codegen/schemas/undefined.d.ts +7 -4
  198. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
  199. package/dist/core/codegen/schemas/undefined.js +8 -4
  200. package/dist/core/codegen/schemas/undefined.js.map +1 -1
  201. package/dist/core/codegen/schemas/union.d.ts +8 -5
  202. package/dist/core/codegen/schemas/union.d.ts.map +1 -1
  203. package/dist/core/codegen/schemas/union.js +49 -69
  204. package/dist/core/codegen/schemas/union.js.map +1 -1
  205. package/dist/core/codegen/schemas/unknown.d.ts +7 -4
  206. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -1
  207. package/dist/core/codegen/schemas/unknown.js +8 -4
  208. package/dist/core/codegen/schemas/unknown.js.map +1 -1
  209. package/dist/core/codegen/schemas/void.d.ts +7 -4
  210. package/dist/core/codegen/schemas/void.d.ts.map +1 -1
  211. package/dist/core/codegen/schemas/void.js +8 -4
  212. package/dist/core/codegen/schemas/void.js.map +1 -1
  213. package/dist/core/codegen/slow-path.d.ts +7 -4
  214. package/dist/core/codegen/slow-path.d.ts.map +1 -1
  215. package/dist/core/codegen/slow-path.js +71 -96
  216. package/dist/core/codegen/slow-path.js.map +1 -1
  217. package/dist/core/codegen/well-known-regex.d.ts +22 -19
  218. package/dist/core/codegen/well-known-regex.d.ts.map +1 -1
  219. package/dist/core/codegen/well-known-regex.js +127 -96
  220. package/dist/core/codegen/well-known-regex.js.map +1 -1
  221. package/dist/core/compile.d.ts +7 -4
  222. package/dist/core/compile.d.ts.map +1 -1
  223. package/dist/core/compile.js +48 -48
  224. package/dist/core/compile.js.map +1 -1
  225. package/dist/core/diagnostic.d.ts +38 -39
  226. package/dist/core/diagnostic.d.ts.map +1 -1
  227. package/dist/core/diagnostic.js +140 -164
  228. package/dist/core/diagnostic.js.map +1 -1
  229. package/dist/core/extract/checks.d.ts +18 -15
  230. package/dist/core/extract/checks.d.ts.map +1 -1
  231. package/dist/core/extract/checks.js +318 -311
  232. package/dist/core/extract/checks.js.map +1 -1
  233. package/dist/core/extract/effects.d.ts +13 -10
  234. package/dist/core/extract/effects.d.ts.map +1 -1
  235. package/dist/core/extract/effects.js +153 -222
  236. package/dist/core/extract/effects.js.map +1 -1
  237. package/dist/core/extract/extractors/any.d.ts +5 -2
  238. package/dist/core/extract/extractors/any.d.ts.map +1 -1
  239. package/dist/core/extract/extractors/any.js +5 -1
  240. package/dist/core/extract/extractors/any.js.map +1 -1
  241. package/dist/core/extract/extractors/array.d.ts +6 -3
  242. package/dist/core/extract/extractors/array.d.ts.map +1 -1
  243. package/dist/core/extract/extractors/array.js +25 -20
  244. package/dist/core/extract/extractors/array.js.map +1 -1
  245. package/dist/core/extract/extractors/bigint.d.ts +6 -3
  246. package/dist/core/extract/extractors/bigint.d.ts.map +1 -1
  247. package/dist/core/extract/extractors/bigint.js +66 -64
  248. package/dist/core/extract/extractors/bigint.js.map +1 -1
  249. package/dist/core/extract/extractors/boolean.d.ts +5 -2
  250. package/dist/core/extract/extractors/boolean.d.ts.map +1 -1
  251. package/dist/core/extract/extractors/boolean.js +7 -3
  252. package/dist/core/extract/extractors/boolean.js.map +1 -1
  253. package/dist/core/extract/extractors/catch.d.ts +6 -3
  254. package/dist/core/extract/extractors/catch.d.ts.map +1 -1
  255. package/dist/core/extract/extractors/catch.js +26 -17
  256. package/dist/core/extract/extractors/catch.js.map +1 -1
  257. package/dist/core/extract/extractors/date.d.ts +6 -3
  258. package/dist/core/extract/extractors/date.d.ts.map +1 -1
  259. package/dist/core/extract/extractors/date.js +42 -46
  260. package/dist/core/extract/extractors/date.js.map +1 -1
  261. package/dist/core/extract/extractors/default.d.ts +6 -3
  262. package/dist/core/extract/extractors/default.d.ts.map +1 -1
  263. package/dist/core/extract/extractors/default.js +20 -14
  264. package/dist/core/extract/extractors/default.js.map +1 -1
  265. package/dist/core/extract/extractors/enum.d.ts +5 -2
  266. package/dist/core/extract/extractors/enum.d.ts.map +1 -1
  267. package/dist/core/extract/extractors/enum.js +12 -13
  268. package/dist/core/extract/extractors/enum.js.map +1 -1
  269. package/dist/core/extract/extractors/file.d.ts +6 -3
  270. package/dist/core/extract/extractors/file.d.ts.map +1 -1
  271. package/dist/core/extract/extractors/file.js +34 -28
  272. package/dist/core/extract/extractors/file.js.map +1 -1
  273. package/dist/core/extract/extractors/intersection.d.ts +5 -2
  274. package/dist/core/extract/extractors/intersection.d.ts.map +1 -1
  275. package/dist/core/extract/extractors/intersection.js +13 -11
  276. package/dist/core/extract/extractors/intersection.js.map +1 -1
  277. package/dist/core/extract/extractors/lazy.d.ts +6 -3
  278. package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
  279. package/dist/core/extract/extractors/lazy.js +21 -30
  280. package/dist/core/extract/extractors/lazy.js.map +1 -1
  281. package/dist/core/extract/extractors/literal.d.ts +5 -2
  282. package/dist/core/extract/extractors/literal.d.ts.map +1 -1
  283. package/dist/core/extract/extractors/literal.js +8 -1
  284. package/dist/core/extract/extractors/literal.js.map +1 -1
  285. package/dist/core/extract/extractors/map.d.ts +6 -3
  286. package/dist/core/extract/extractors/map.d.ts.map +1 -1
  287. package/dist/core/extract/extractors/map.js +10 -4
  288. package/dist/core/extract/extractors/map.js.map +1 -1
  289. package/dist/core/extract/extractors/nan.d.ts +5 -2
  290. package/dist/core/extract/extractors/nan.d.ts.map +1 -1
  291. package/dist/core/extract/extractors/nan.js +5 -1
  292. package/dist/core/extract/extractors/nan.js.map +1 -1
  293. package/dist/core/extract/extractors/never.d.ts +5 -2
  294. package/dist/core/extract/extractors/never.d.ts.map +1 -1
  295. package/dist/core/extract/extractors/never.js +5 -1
  296. package/dist/core/extract/extractors/never.js.map +1 -1
  297. package/dist/core/extract/extractors/null.d.ts +5 -2
  298. package/dist/core/extract/extractors/null.d.ts.map +1 -1
  299. package/dist/core/extract/extractors/null.js +5 -1
  300. package/dist/core/extract/extractors/null.js.map +1 -1
  301. package/dist/core/extract/extractors/nullable.d.ts +5 -2
  302. package/dist/core/extract/extractors/nullable.d.ts.map +1 -1
  303. package/dist/core/extract/extractors/nullable.js +7 -3
  304. package/dist/core/extract/extractors/nullable.js.map +1 -1
  305. package/dist/core/extract/extractors/number.d.ts +6 -3
  306. package/dist/core/extract/extractors/number.d.ts.map +1 -1
  307. package/dist/core/extract/extractors/number.js +35 -35
  308. package/dist/core/extract/extractors/number.js.map +1 -1
  309. package/dist/core/extract/extractors/object.d.ts +6 -3
  310. package/dist/core/extract/extractors/object.d.ts.map +1 -1
  311. package/dist/core/extract/extractors/object.js +49 -76
  312. package/dist/core/extract/extractors/object.js.map +1 -1
  313. package/dist/core/extract/extractors/optional.d.ts +5 -2
  314. package/dist/core/extract/extractors/optional.d.ts.map +1 -1
  315. package/dist/core/extract/extractors/optional.js +10 -12
  316. package/dist/core/extract/extractors/optional.js.map +1 -1
  317. package/dist/core/extract/extractors/pipe.d.ts +6 -3
  318. package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
  319. package/dist/core/extract/extractors/pipe.js +40 -41
  320. package/dist/core/extract/extractors/pipe.js.map +1 -1
  321. package/dist/core/extract/extractors/readonly.d.ts +5 -2
  322. package/dist/core/extract/extractors/readonly.d.ts.map +1 -1
  323. package/dist/core/extract/extractors/readonly.js +10 -6
  324. package/dist/core/extract/extractors/readonly.js.map +1 -1
  325. package/dist/core/extract/extractors/record.d.ts +6 -3
  326. package/dist/core/extract/extractors/record.d.ts.map +1 -1
  327. package/dist/core/extract/extractors/record.js +24 -35
  328. package/dist/core/extract/extractors/record.js.map +1 -1
  329. package/dist/core/extract/extractors/set.d.ts +6 -3
  330. package/dist/core/extract/extractors/set.d.ts.map +1 -1
  331. package/dist/core/extract/extractors/set.js +36 -30
  332. package/dist/core/extract/extractors/set.js.map +1 -1
  333. package/dist/core/extract/extractors/string-bool.d.ts +7 -4
  334. package/dist/core/extract/extractors/string-bool.d.ts.map +1 -1
  335. package/dist/core/extract/extractors/string-bool.js +66 -84
  336. package/dist/core/extract/extractors/string-bool.js.map +1 -1
  337. package/dist/core/extract/extractors/string.d.ts +6 -3
  338. package/dist/core/extract/extractors/string.d.ts.map +1 -1
  339. package/dist/core/extract/extractors/string.js +34 -37
  340. package/dist/core/extract/extractors/string.js.map +1 -1
  341. package/dist/core/extract/extractors/symbol.d.ts +5 -2
  342. package/dist/core/extract/extractors/symbol.d.ts.map +1 -1
  343. package/dist/core/extract/extractors/symbol.js +5 -1
  344. package/dist/core/extract/extractors/symbol.js.map +1 -1
  345. package/dist/core/extract/extractors/template-literal.d.ts +6 -3
  346. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
  347. package/dist/core/extract/extractors/template-literal.js +11 -6
  348. package/dist/core/extract/extractors/template-literal.js.map +1 -1
  349. package/dist/core/extract/extractors/tuple.d.ts +6 -3
  350. package/dist/core/extract/extractors/tuple.d.ts.map +1 -1
  351. package/dist/core/extract/extractors/tuple.js +10 -4
  352. package/dist/core/extract/extractors/tuple.js.map +1 -1
  353. package/dist/core/extract/extractors/undefined.d.ts +5 -2
  354. package/dist/core/extract/extractors/undefined.d.ts.map +1 -1
  355. package/dist/core/extract/extractors/undefined.js +5 -1
  356. package/dist/core/extract/extractors/undefined.js.map +1 -1
  357. package/dist/core/extract/extractors/union.d.ts +6 -3
  358. package/dist/core/extract/extractors/union.d.ts.map +1 -1
  359. package/dist/core/extract/extractors/union.js +38 -64
  360. package/dist/core/extract/extractors/union.js.map +1 -1
  361. package/dist/core/extract/extractors/unknown.d.ts +5 -2
  362. package/dist/core/extract/extractors/unknown.d.ts.map +1 -1
  363. package/dist/core/extract/extractors/unknown.js +5 -1
  364. package/dist/core/extract/extractors/unknown.js.map +1 -1
  365. package/dist/core/extract/extractors/void.d.ts +5 -2
  366. package/dist/core/extract/extractors/void.d.ts.map +1 -1
  367. package/dist/core/extract/extractors/void.js +5 -1
  368. package/dist/core/extract/extractors/void.js.map +1 -1
  369. package/dist/core/extract/fallback.d.ts +6 -3
  370. package/dist/core/extract/fallback.d.ts.map +1 -1
  371. package/dist/core/extract/fallback.js +21 -7
  372. package/dist/core/extract/fallback.js.map +1 -1
  373. package/dist/core/extract/index.d.ts +6 -4
  374. package/dist/core/extract/index.d.ts.map +1 -1
  375. package/dist/core/extract/index.js +15 -15
  376. package/dist/core/extract/index.js.map +1 -1
  377. package/dist/core/extract/registry.d.ts +39 -36
  378. package/dist/core/extract/registry.d.ts.map +1 -1
  379. package/dist/core/extract/registry.js +96 -123
  380. package/dist/core/extract/registry.js.map +1 -1
  381. package/dist/core/extract/types.d.ts +124 -120
  382. package/dist/core/extract/types.d.ts.map +1 -1
  383. package/dist/core/extract/types.js +0 -1
  384. package/dist/core/iife.d.ts +14 -15
  385. package/dist/core/iife.d.ts.map +1 -1
  386. package/dist/core/iife.js +182 -206
  387. package/dist/core/iife.js.map +1 -1
  388. package/dist/core/pipeline.d.ts +33 -30
  389. package/dist/core/pipeline.d.ts.map +1 -1
  390. package/dist/core/pipeline.js +67 -74
  391. package/dist/core/pipeline.js.map +1 -1
  392. package/dist/core/types.d.ts +430 -427
  393. package/dist/core/types.d.ts.map +1 -1
  394. package/dist/core/types.js +0 -5
  395. package/dist/discovery.d.ts +8 -5
  396. package/dist/discovery.d.ts.map +1 -1
  397. package/dist/discovery.js +31 -32
  398. package/dist/discovery.js.map +1 -1
  399. package/dist/index.d.ts +4 -4
  400. package/dist/index.js +2 -2
  401. package/dist/jit.d.ts +15 -42
  402. package/dist/jit.d.ts.map +1 -1
  403. package/dist/jit.js +187 -216
  404. package/dist/jit.js.map +1 -1
  405. package/dist/loader.d.ts +14 -11
  406. package/dist/loader.d.ts.map +1 -1
  407. package/dist/loader.js +226 -258
  408. package/dist/loader.js.map +1 -1
  409. package/dist/static-filter.d.ts +4 -1
  410. package/dist/static-filter.d.ts.map +1 -1
  411. package/dist/static-filter.js +240 -367
  412. package/dist/static-filter.js.map +1 -1
  413. package/dist/swc.d.ts +38 -35
  414. package/dist/swc.d.ts.map +1 -1
  415. package/dist/swc.js +83 -76
  416. package/dist/swc.js.map +1 -1
  417. package/dist/unplugin/bun.d.ts +5 -2
  418. package/dist/unplugin/bun.d.ts.map +1 -1
  419. package/dist/unplugin/bun.js +5 -1
  420. package/dist/unplugin/bun.js.map +1 -1
  421. package/dist/unplugin/dep-graph.d.ts +10 -7
  422. package/dist/unplugin/dep-graph.d.ts.map +1 -1
  423. package/dist/unplugin/dep-graph.js +216 -252
  424. package/dist/unplugin/dep-graph.js.map +1 -1
  425. package/dist/unplugin/disk-cache.d.ts +121 -92
  426. package/dist/unplugin/disk-cache.d.ts.map +1 -1
  427. package/dist/unplugin/disk-cache.js +425 -444
  428. package/dist/unplugin/disk-cache.js.map +1 -1
  429. package/dist/unplugin/edits.d.ts +15 -12
  430. package/dist/unplugin/edits.d.ts.map +1 -1
  431. package/dist/unplugin/edits.js +24 -37
  432. package/dist/unplugin/edits.js.map +1 -1
  433. package/dist/unplugin/esbuild.d.ts +5 -2
  434. package/dist/unplugin/esbuild.d.ts.map +1 -1
  435. package/dist/unplugin/esbuild.js +5 -1
  436. package/dist/unplugin/esbuild.js.map +1 -1
  437. package/dist/unplugin/farm.d.ts +5 -2
  438. package/dist/unplugin/farm.d.ts.map +1 -1
  439. package/dist/unplugin/farm.js +5 -1
  440. package/dist/unplugin/farm.js.map +1 -1
  441. package/dist/unplugin/hoist-compile.d.ts +14 -42
  442. package/dist/unplugin/hoist-compile.d.ts.map +1 -1
  443. package/dist/unplugin/hoist-compile.js +67 -112
  444. package/dist/unplugin/hoist-compile.js.map +1 -1
  445. package/dist/unplugin/hoist.d.ts +56 -54
  446. package/dist/unplugin/hoist.d.ts.map +1 -1
  447. package/dist/unplugin/hoist.js +945 -1170
  448. package/dist/unplugin/hoist.js.map +1 -1
  449. package/dist/unplugin/index.d.ts +5 -3
  450. package/dist/unplugin/index.d.ts.map +1 -1
  451. package/dist/unplugin/index.js +175 -250
  452. package/dist/unplugin/index.js.map +1 -1
  453. package/dist/unplugin/rolldown.d.ts +5 -2
  454. package/dist/unplugin/rolldown.d.ts.map +1 -1
  455. package/dist/unplugin/rolldown.js +5 -1
  456. package/dist/unplugin/rolldown.js.map +1 -1
  457. package/dist/unplugin/rollup.d.ts +5 -2
  458. package/dist/unplugin/rollup.d.ts.map +1 -1
  459. package/dist/unplugin/rollup.js +5 -1
  460. package/dist/unplugin/rollup.js.map +1 -1
  461. package/dist/unplugin/rsbuild.d.ts +6 -3
  462. package/dist/unplugin/rsbuild.d.ts.map +1 -1
  463. package/dist/unplugin/rsbuild.js +15 -11
  464. package/dist/unplugin/rsbuild.js.map +1 -1
  465. package/dist/unplugin/rspack.d.ts +5 -2
  466. package/dist/unplugin/rspack.d.ts.map +1 -1
  467. package/dist/unplugin/rspack.js +5 -1
  468. package/dist/unplugin/rspack.js.map +1 -1
  469. package/dist/unplugin/transform.d.ts +30 -27
  470. package/dist/unplugin/transform.d.ts.map +1 -1
  471. package/dist/unplugin/transform.js +433 -620
  472. package/dist/unplugin/transform.js.map +1 -1
  473. package/dist/unplugin/types.d.ts +189 -184
  474. package/dist/unplugin/types.d.ts.map +1 -1
  475. package/dist/unplugin/types.js +22 -18
  476. package/dist/unplugin/types.js.map +1 -1
  477. package/dist/unplugin/virtual.d.ts +11 -8
  478. package/dist/unplugin/virtual.d.ts.map +1 -1
  479. package/dist/unplugin/virtual.js +65 -83
  480. package/dist/unplugin/virtual.js.map +1 -1
  481. package/dist/unplugin/vite.d.ts +5 -2
  482. package/dist/unplugin/vite.d.ts.map +1 -1
  483. package/dist/unplugin/vite.js +5 -1
  484. package/dist/unplugin/vite.js.map +1 -1
  485. package/dist/unplugin/webpack.d.ts +5 -2
  486. package/dist/unplugin/webpack.d.ts.map +1 -1
  487. package/dist/unplugin/webpack.js +5 -1
  488. package/dist/unplugin/webpack.js.map +1 -1
  489. package/package.json +23 -14
  490. package/dist/cli/index.d.ts.map +0 -1
  491. package/dist/core/extract/types.js.map +0 -1
  492. package/dist/core/types.js.map +0 -1
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"void.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/void.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAItD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAMxD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"void.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/void.ts"],"mappings":";;;iBAKgB,SAAS,KAAK,QAAQ,GAAG;iBAQzB,SAAS,KAAK,QAAQ,GAAG"}
@@ -1,13 +1,17 @@
1
1
  import { emit } from "../emit.js";
2
2
  import { invalidType } from "../emit-issue.js";
3
- export function slowVoid(_ir, g) {
4
- return `${emit `
3
+ //#region src/core/codegen/schemas/void.ts
4
+ function slowVoid(_ir, g) {
5
+ return `${emit`
5
6
  if(${g.input}!==undefined){
6
7
  ${invalidType(g, "void")}
7
8
  }
8
9
  `}\n`;
9
10
  }
10
- export function fastVoid(_ir, g) {
11
- return `${g.input}===undefined`;
11
+ function fastVoid(_ir, g) {
12
+ return `${g.input}===undefined`;
12
13
  }
14
+ //#endregion
15
+ export { fastVoid, slowVoid };
16
+
13
17
  //# sourceMappingURL=void.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"void.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/void.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,CAAU;IAC9C,OAAO,GAAG,IAAI,CAAA;SACP,CAAC,CAAC,KAAK;QACR,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;;GAE3B,IAAI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,CAAU;IAC9C,OAAO,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"void.js","names":[],"sources":["../../../../src/core/codegen/schemas/void.ts"],"sourcesContent":["import type { VoidIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidType } from \"../emit-issue.js\";\n\nexport function slowVoid(_ir: VoidIR, g: SlowGen): string {\n return `${emit`\n if(${g.input}!==undefined){\n ${invalidType(g, \"void\")}\n }\n `}\\n`;\n}\n\nexport function fastVoid(_ir: VoidIR, g: FastGen): string | null {\n return `${g.input}===undefined`;\n}\n"],"mappings":";;;AAKA,SAAgB,SAAS,KAAa,GAAoB;CACxD,OAAO,GAAG,IAAI;SACP,EAAE,MAAM;QACT,YAAY,GAAG,MAAM,EAAE;;IAE3B;AACJ;AAEA,SAAgB,SAAS,KAAa,GAA2B;CAC/D,OAAO,GAAG,EAAE,MAAM;AACpB"}
@@ -1,5 +1,8 @@
1
- import type { SchemaIR } from "../types.js";
2
- import type { CodeGenContext, SlowGen } from "./context.js";
3
- export declare function createSlowGen(inputExpr: string, outputExpr: string, pathExpr: string, issuesVar: string, ctx: CodeGenContext, abortedVar?: string): SlowGen;
4
- export declare function generateSlow(ir: SchemaIR, g: SlowGen): string;
1
+ import { SchemaIR } from "../types.js";
2
+ import { CodeGenContext, SlowGen } from "./context.js";
3
+ //#region src/core/codegen/slow-path.d.ts
4
+ declare function createSlowGen(inputExpr: string, outputExpr: string, pathExpr: string, issuesVar: string, ctx: CodeGenContext, abortedVar?: string): SlowGen;
5
+ declare function generateSlow(ir: SchemaIR, g: SlowGen): string;
6
+ //#endregion
7
+ export { createSlowGen, generateSlow };
5
8
  //# sourceMappingURL=slow-path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slow-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/slow-path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AAgG3E,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAqCT;AAID,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAO7D"}
1
+ {"version":3,"file":"slow-path.d.ts","names":[],"sources":["../../../src/core/codegen/slow-path.ts"],"mappings":";;;iBAiGgB,cACd,mBACA,oBACA,kBACA,mBACA,KAAK,gBACL,sBACC;iBAyCa,aAAa,IAAI,UAAU,GAAG"}
@@ -1,5 +1,6 @@
1
1
  import { emitRegex, emitSet, emitTemp } from "./context.js";
2
2
  import { slowAny } from "./schemas/any.js";
3
+ import { slowEffect } from "./schemas/effect.js";
3
4
  import { slowArray } from "./schemas/array.js";
4
5
  import { slowBigInt } from "./schemas/bigint.js";
5
6
  import { slowBoolean } from "./schemas/boolean.js";
@@ -7,7 +8,6 @@ import { slowCatch } from "./schemas/catch.js";
7
8
  import { slowDate } from "./schemas/date.js";
8
9
  import { slowDefault } from "./schemas/default.js";
9
10
  import { slowDiscriminatedUnion } from "./schemas/discriminated-union.js";
10
- import { slowEffect } from "./schemas/effect.js";
11
11
  import { slowEnum } from "./schemas/enum.js";
12
12
  import { slowFallback } from "./schemas/fallback.js";
13
13
  import { slowFile } from "./schemas/file.js";
@@ -35,103 +35,78 @@ import { slowUndefined } from "./schemas/undefined.js";
35
35
  import { slowUnion } from "./schemas/union.js";
36
36
  import { slowUnknown } from "./schemas/unknown.js";
37
37
  import { slowVoid } from "./schemas/void.js";
38
- // ─── Typed registry ─────────────────────────────────────────────────────────
39
- // Adding a new SchemaIR type without registering a generator here causes a
40
- // compile error, preventing the silent-missing-case bugs that plagued the old
41
- // switch-based dispatch.
38
+ //#region src/core/codegen/slow-path.ts
42
39
  const slowRegistry = {
43
- // Primitives (order follows SchemaIR union in types.ts)
44
- string: slowString,
45
- number: slowNumber,
46
- boolean: slowBoolean,
47
- bigint: slowBigInt,
48
- date: slowDate,
49
- symbol: slowSymbol,
50
- null: slowNull,
51
- undefined: slowUndefined,
52
- void: slowVoid,
53
- nan: slowNan,
54
- never: slowNever,
55
- any: slowAny,
56
- unknown: slowUnknown,
57
- literal: slowLiteral,
58
- enum: slowEnum,
59
- // Containers
60
- object: slowObject,
61
- array: slowArray,
62
- tuple: slowTuple,
63
- record: slowRecord,
64
- set: slowSet,
65
- map: slowMap,
66
- file: slowFile,
67
- // Unions & Intersections
68
- union: slowUnion,
69
- discriminatedUnion: slowDiscriminatedUnion,
70
- intersection: slowIntersection,
71
- // Modifiers
72
- optional: slowOptional,
73
- nullable: slowNullable,
74
- readonly: slowReadonly,
75
- default: slowDefault,
76
- pipe: slowPipe,
77
- // Effects
78
- effect: slowEffect,
79
- // Special
80
- templateLiteral: slowTemplateLiteral,
81
- catch: slowCatch,
82
- fallback: slowFallback,
83
- recursiveRef: slowRecursiveRef,
84
- recursionTarget: slowRecursionTarget,
85
- stringBool: slowStringBool,
40
+ string: slowString,
41
+ number: slowNumber,
42
+ boolean: slowBoolean,
43
+ bigint: slowBigInt,
44
+ date: slowDate,
45
+ symbol: slowSymbol,
46
+ null: slowNull,
47
+ undefined: slowUndefined,
48
+ void: slowVoid,
49
+ nan: slowNan,
50
+ never: slowNever,
51
+ any: slowAny,
52
+ unknown: slowUnknown,
53
+ literal: slowLiteral,
54
+ enum: slowEnum,
55
+ object: slowObject,
56
+ array: slowArray,
57
+ tuple: slowTuple,
58
+ record: slowRecord,
59
+ set: slowSet,
60
+ map: slowMap,
61
+ file: slowFile,
62
+ union: slowUnion,
63
+ discriminatedUnion: slowDiscriminatedUnion,
64
+ intersection: slowIntersection,
65
+ optional: slowOptional,
66
+ nullable: slowNullable,
67
+ readonly: slowReadonly,
68
+ default: slowDefault,
69
+ pipe: slowPipe,
70
+ effect: slowEffect,
71
+ templateLiteral: slowTemplateLiteral,
72
+ catch: slowCatch,
73
+ fallback: slowFallback,
74
+ recursiveRef: slowRecursiveRef,
75
+ recursionTarget: slowRecursionTarget,
76
+ stringBool: slowStringBool
86
77
  };
87
- // ─── Factory ─────────────────────────────────────────────────────────────────
88
- // Lives here (not in context.ts) to avoid circular imports:
89
- // visit() → generateSlow() → imports from context.ts
90
- export function createSlowGen(inputExpr, outputExpr, pathExpr, issuesVar, ctx, abortedVar) {
91
- return {
92
- input: inputExpr,
93
- output: outputExpr,
94
- path: pathExpr,
95
- issues: issuesVar,
96
- aborted: abortedVar,
97
- ctx,
98
- visit(ir, overrides) {
99
- const input = overrides?.input ?? inputExpr;
100
- const output = overrides?.output ?? outputExpr;
101
- const path = overrides?.path ?? pathExpr;
102
- const issues = overrides?.issues ?? issuesVar;
103
- // `aborted` is deliberately NOT inherited (see SlowGen.aborted): a child
104
- // only tracks abort when the parent explicitly forwards it, so a pipe
105
- // buried inside a container never trips its ancestor union's abort flag.
106
- const aborted = overrides?.aborted;
107
- // Shared sub-schema: call the file-level `__zcSw_N(input, path, issues)`
108
- // walk (signature defined in dedupe.ts) instead of inlining a duplicate.
109
- // It returns the parsed value, so the assignment delivers whatever an
110
- // inlined walk would have written to `output` — a stripping object's
111
- // rebuilt result, a coerced number, a trimmed string.
112
- //
113
- // But the shared walk's 3-arg signature can't carry this call site's
114
- // abort flag — a shared pipe option would silently drop it. When we're in
115
- // an abort-tracking position (`aborted` set), inline instead of sharing so
116
- // the pipe's abort reaches the union. Non-tracking sites still share.
117
- const ref = aborted === undefined ? ctx.sharedSchemas?.refFor(ir) : undefined;
118
- if (ref !== undefined) {
119
- return `${output}=${ref.name}(${input},${path},${issues});`;
120
- }
121
- return generateSlow(ir, createSlowGen(input, output, path, issues, ctx, aborted));
122
- },
123
- temp: (prefix) => emitTemp(ctx, prefix),
124
- regex: (prefix, pattern, flags) => emitRegex(ctx, prefix, pattern, flags),
125
- set: (prefix, values) => emitSet(ctx, prefix, values),
126
- };
78
+ function createSlowGen(inputExpr, outputExpr, pathExpr, issuesVar, ctx, abortedVar) {
79
+ return {
80
+ input: inputExpr,
81
+ output: outputExpr,
82
+ path: pathExpr,
83
+ issues: issuesVar,
84
+ aborted: abortedVar,
85
+ ctx,
86
+ visit(ir, overrides) {
87
+ const input = overrides?.input ?? inputExpr;
88
+ const output = overrides?.output ?? outputExpr;
89
+ const path = overrides?.path ?? pathExpr;
90
+ const issues = overrides?.issues ?? issuesVar;
91
+ const aborted = overrides?.aborted;
92
+ const ref = aborted === void 0 ? ctx.sharedSchemas?.refFor(ir) : void 0;
93
+ if (ref !== void 0) return `${output}=${ref.name}(${input},${path},${issues});`;
94
+ return generateSlow(ir, createSlowGen(input, output, path, issues, ctx, aborted));
95
+ },
96
+ temp: (prefix) => emitTemp(ctx, prefix),
97
+ regex: (prefix, pattern, flags) => emitRegex(ctx, prefix, pattern, flags),
98
+ set: (prefix, values) => emitSet(ctx, prefix, values)
99
+ };
127
100
  }
128
- // ─── Dispatch ────────────────────────────────────────────────────────────────
129
- export function generateSlow(ir, g) {
130
- // Surface the node's schema-level error message to issue emission. visit()
131
- // always builds a fresh context, so typeMsg never leaks into child nodes.
132
- const gen0 = ir.typeMessage !== g.typeMsg ? { ...g, typeMsg: ir.typeMessage } : g;
133
- const gen = slowRegistry[ir.type];
134
- // oxlint-disable-next-line typescript/no-explicit-any -- registry dispatch requires type erasure at call site
135
- return gen(ir, gen0);
101
+ function generateSlow(ir, g) {
102
+ const gen0 = ir.typeMessage !== g.typeMsg ? {
103
+ ...g,
104
+ typeMsg: ir.typeMessage
105
+ } : g;
106
+ const gen = slowRegistry[ir.type];
107
+ return gen(ir, gen0);
136
108
  }
109
+ //#endregion
110
+ export { createSlowGen, generateSlow };
111
+
137
112
  //# sourceMappingURL=slow-path.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slow-path.js","sourceRoot":"","sources":["../../../src/core/codegen/slow-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slow-path.js","names":[],"sources":["../../../src/core/codegen/slow-path.ts"],"sourcesContent":["import type { SchemaIR } from \"../types.js\";\nimport type { CodeGenContext, SlowGen, SlowGenerator } from \"./context.js\";\nimport { emitRegex, emitSet, emitTemp } from \"./context.js\";\nimport { slowAny } from \"./schemas/any.js\";\nimport { slowArray } from \"./schemas/array.js\";\nimport { slowBigInt } from \"./schemas/bigint.js\";\nimport { slowBoolean } from \"./schemas/boolean.js\";\nimport { slowCatch } from \"./schemas/catch.js\";\nimport { slowDate } from \"./schemas/date.js\";\nimport { slowDefault } from \"./schemas/default.js\";\nimport { slowDiscriminatedUnion } from \"./schemas/discriminated-union.js\";\nimport { slowEffect } from \"./schemas/effect.js\";\nimport { slowEnum } from \"./schemas/enum.js\";\nimport { slowFallback } from \"./schemas/fallback.js\";\nimport { slowFile } from \"./schemas/file.js\";\nimport { slowIntersection } from \"./schemas/intersection.js\";\nimport { slowLiteral } from \"./schemas/literal.js\";\nimport { slowMap } from \"./schemas/map.js\";\nimport { slowNan } from \"./schemas/nan.js\";\nimport { slowNever } from \"./schemas/never.js\";\nimport { slowNull } from \"./schemas/null.js\";\nimport { slowNullable } from \"./schemas/nullable.js\";\nimport { slowNumber } from \"./schemas/number.js\";\nimport { slowObject } from \"./schemas/object.js\";\nimport { slowOptional } from \"./schemas/optional.js\";\nimport { slowPipe } from \"./schemas/pipe.js\";\nimport { slowReadonly } from \"./schemas/readonly.js\";\nimport { slowRecord } from \"./schemas/record.js\";\nimport { slowRecursionTarget, slowRecursiveRef } from \"./schemas/recursive-ref.js\";\nimport { slowSet } from \"./schemas/set.js\";\nimport { slowString } from \"./schemas/string.js\";\nimport { slowStringBool } from \"./schemas/string-bool.js\";\nimport { slowSymbol } from \"./schemas/symbol.js\";\nimport { slowTemplateLiteral } from \"./schemas/template-literal.js\";\nimport { slowTuple } from \"./schemas/tuple.js\";\nimport { slowUndefined } from \"./schemas/undefined.js\";\nimport { slowUnion } from \"./schemas/union.js\";\nimport { slowUnknown } from \"./schemas/unknown.js\";\nimport { slowVoid } from \"./schemas/void.js\";\n\n// ─── Typed registry ─────────────────────────────────────────────────────────\n// Adding a new SchemaIR type without registering a generator here causes a\n// compile error, preventing the silent-missing-case bugs that plagued the old\n// switch-based dispatch.\n\nconst slowRegistry = {\n // Primitives (order follows SchemaIR union in types.ts)\n string: slowString,\n number: slowNumber,\n boolean: slowBoolean,\n bigint: slowBigInt,\n date: slowDate,\n symbol: slowSymbol,\n null: slowNull,\n undefined: slowUndefined,\n void: slowVoid,\n nan: slowNan,\n never: slowNever,\n any: slowAny,\n unknown: slowUnknown,\n literal: slowLiteral,\n enum: slowEnum,\n // Containers\n object: slowObject,\n array: slowArray,\n tuple: slowTuple,\n record: slowRecord,\n set: slowSet,\n map: slowMap,\n file: slowFile,\n // Unions & Intersections\n union: slowUnion,\n discriminatedUnion: slowDiscriminatedUnion,\n intersection: slowIntersection,\n // Modifiers\n optional: slowOptional,\n nullable: slowNullable,\n readonly: slowReadonly,\n default: slowDefault,\n pipe: slowPipe,\n // Effects\n effect: slowEffect,\n // Special\n templateLiteral: slowTemplateLiteral,\n catch: slowCatch,\n fallback: slowFallback,\n recursiveRef: slowRecursiveRef,\n recursionTarget: slowRecursionTarget,\n stringBool: slowStringBool,\n} satisfies {\n [K in SchemaIR[\"type\"]]: SlowGenerator<Extract<SchemaIR, { type: K }>>;\n};\n\n// ─── Factory ─────────────────────────────────────────────────────────────────\n// Lives here (not in context.ts) to avoid circular imports:\n// visit() → generateSlow() → imports from context.ts\n\nexport function createSlowGen(\n inputExpr: string,\n outputExpr: string,\n pathExpr: string,\n issuesVar: string,\n ctx: CodeGenContext,\n abortedVar?: string,\n): SlowGen {\n return {\n input: inputExpr,\n output: outputExpr,\n path: pathExpr,\n issues: issuesVar,\n aborted: abortedVar,\n ctx,\n visit(ir, overrides) {\n const input = overrides?.input ?? inputExpr;\n const output = overrides?.output ?? outputExpr;\n const path = overrides?.path ?? pathExpr;\n const issues = overrides?.issues ?? issuesVar;\n // `aborted` is deliberately NOT inherited (see SlowGen.aborted): a child\n // only tracks abort when the parent explicitly forwards it, so a pipe\n // buried inside a container never trips its ancestor union's abort flag.\n const aborted = overrides?.aborted;\n // Shared sub-schema: call the file-level `__zcSw_N(input, path, issues)`\n // walk (signature defined in dedupe.ts) instead of inlining a duplicate.\n // It returns the parsed value, so the assignment delivers whatever an\n // inlined walk would have written to `output` — a stripping object's\n // rebuilt result, a coerced number, a trimmed string.\n //\n // But the shared walk's 3-arg signature can't carry this call site's\n // abort flag — a shared pipe option would silently drop it. When we're in\n // an abort-tracking position (`aborted` set), inline instead of sharing so\n // the pipe's abort reaches the union. Non-tracking sites still share.\n const ref = aborted === undefined ? ctx.sharedSchemas?.refFor(ir) : undefined;\n if (ref !== undefined) {\n return `${output}=${ref.name}(${input},${path},${issues});`;\n }\n return generateSlow(ir, createSlowGen(input, output, path, issues, ctx, aborted));\n },\n temp: (prefix) => emitTemp(ctx, prefix),\n regex: (prefix, pattern, flags) => emitRegex(ctx, prefix, pattern, flags),\n set: (prefix, values) => emitSet(ctx, prefix, values),\n };\n}\n\n// ─── Dispatch ────────────────────────────────────────────────────────────────\n\nexport function generateSlow(ir: SchemaIR, g: SlowGen): string {\n // Surface the node's schema-level error message to issue emission. visit()\n // always builds a fresh context, so typeMsg never leaks into child nodes.\n const gen0 = ir.typeMessage !== g.typeMsg ? { ...g, typeMsg: ir.typeMessage } : g;\n const gen = slowRegistry[ir.type];\n // oxlint-disable-next-line typescript/no-explicit-any -- registry dispatch requires type erasure at call site\n return (gen as any)(ir, gen0);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAM,eAAe;CAEnB,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,MAAM;CACN,WAAW;CACX,MAAM;CACN,KAAK;CACL,OAAO;CACP,KAAK;CACL,SAAS;CACT,SAAS;CACT,MAAM;CAEN,QAAQ;CACR,OAAO;CACP,OAAO;CACP,QAAQ;CACR,KAAK;CACL,KAAK;CACL,MAAM;CAEN,OAAO;CACP,oBAAoB;CACpB,cAAc;CAEd,UAAU;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,MAAM;CAEN,QAAQ;CAER,iBAAiB;CACjB,OAAO;CACP,UAAU;CACV,cAAc;CACd,iBAAiB;CACjB,YAAY;AACd;AAQA,SAAgB,cACd,WACA,YACA,UACA,WACA,KACA,YACS;CACT,OAAO;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACN,QAAQ;EACR,SAAS;EACT;EACA,MAAM,IAAI,WAAW;GACnB,MAAM,QAAQ,WAAW,SAAS;GAClC,MAAM,SAAS,WAAW,UAAU;GACpC,MAAM,OAAO,WAAW,QAAQ;GAChC,MAAM,SAAS,WAAW,UAAU;GAIpC,MAAM,UAAU,WAAW;GAW3B,MAAM,MAAM,YAAY,KAAA,IAAY,IAAI,eAAe,OAAO,EAAE,IAAI,KAAA;GACpE,IAAI,QAAQ,KAAA,GACV,OAAO,GAAG,OAAO,GAAG,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO;GAE1D,OAAO,aAAa,IAAI,cAAc,OAAO,QAAQ,MAAM,QAAQ,KAAK,OAAO,CAAC;EAClF;EACA,OAAO,WAAW,SAAS,KAAK,MAAM;EACtC,QAAQ,QAAQ,SAAS,UAAU,UAAU,KAAK,QAAQ,SAAS,KAAK;EACxE,MAAM,QAAQ,WAAW,QAAQ,KAAK,QAAQ,MAAM;CACtD;AACF;AAIA,SAAgB,aAAa,IAAc,GAAoB;CAG7D,MAAM,OAAO,GAAG,gBAAgB,EAAE,UAAU;EAAE,GAAG;EAAG,SAAS,GAAG;CAAY,IAAI;CAChF,MAAM,MAAM,aAAa,GAAG;CAE5B,OAAQ,IAAY,IAAI,IAAI;AAC9B"}
@@ -1,3 +1,4 @@
1
+ //#region src/core/codegen/well-known-regex.d.ts
1
2
  /**
2
3
  * Well-known regex sources hosted in the virtual module "virtual:zod-compiler/runtime".
3
4
  *
@@ -9,7 +10,7 @@
9
10
  * exposes additional well-known formats and we want bundle-wide dedup.
10
11
  */
11
12
  /** Zod v4's email regex source (string.ts uses this directly when format === "email"). */
12
- export declare const EMAIL_REGEX_SOURCE: string;
13
+ declare const EMAIL_REGEX_SOURCE: string;
13
14
  /**
14
15
  * Behavior-equivalent rewrite of EMAIL_REGEX_SOURCE that runs ~1.45x faster on V8.
15
16
  *
@@ -22,27 +23,27 @@ export declare const EMAIL_REGEX_SOURCE: string;
22
23
  * Equivalence is enforced by tests/core/codegen/email-fast-regex.test.ts
23
24
  * (exhaustive short-string sweep + structured cases + random fuzz).
24
25
  */
25
- export declare const EMAIL_FAST_REGEX_SOURCE: string;
26
+ declare const EMAIL_FAST_REGEX_SOURCE: string;
26
27
  /** Fallback UUID regex used when the extractor doesn't provide a pattern (e.g. in unit tests). */
27
- export declare const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
28
- export interface WellKnownRegex {
29
- /** Stable virtual-module export name. Always starts with "__zcRe". */
30
- name: string;
31
- /** Pattern source string (verbatim match against `g.regex()` 2nd argument). */
32
- source: string;
33
- /**
34
- * Behavior-equivalent faster pattern used for the actual `.test()` regex.
35
- * Issue reporting (`pattern:` field) always uses `source` so generated
36
- * issues stay byte-identical to zod's.
37
- */
38
- testSource?: string;
28
+ declare const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
29
+ interface WellKnownRegex {
30
+ /** Stable virtual-module export name. Always starts with "__zcRe". */
31
+ name: string;
32
+ /** Pattern source string (verbatim match against `g.regex()` 2nd argument). */
33
+ source: string;
34
+ /**
35
+ * Behavior-equivalent faster pattern used for the actual `.test()` regex.
36
+ * Issue reporting (`pattern:` field) always uses `source` so generated
37
+ * issues stay byte-identical to zod's.
38
+ */
39
+ testSource?: string;
39
40
  }
40
- export declare const WELL_KNOWN_REGEXES: readonly WellKnownRegex[];
41
+ declare const WELL_KNOWN_REGEXES: readonly WellKnownRegex[];
41
42
  /**
42
43
  * Look up a well-known regex by its pattern source string.
43
44
  * Returns the virtual-module export name or null if the pattern is user-defined.
44
45
  */
45
- export declare function lookupWellKnownRegex(source: string): string | null;
46
+ declare function lookupWellKnownRegex(source: string): string | null;
46
47
  /**
47
48
  * Look up the hand-written behavior-equivalent test pattern for a regex source.
48
49
  * Returns null when no rewrite is registered in {@link WELL_KNOWN_REGEXES}.
@@ -51,7 +52,7 @@ export declare function lookupWellKnownRegex(source: string): string | null;
51
52
  * layers automatic repeat unrolling on top and also covers user-supplied
52
53
  * patterns that are in no table.
53
54
  */
54
- export declare function lookupFastRegexSource(source: string): string | null;
55
+ declare function lookupFastRegexSource(source: string): string | null;
55
56
  /**
56
57
  * The pattern a generated `.test()` should actually run for `source`, or null
57
58
  * when `source` is already the best form.
@@ -67,12 +68,14 @@ export declare function lookupFastRegexSource(source: string): string | null;
67
68
  * need its flags carried into the reported pattern too) and must keep
68
69
  * reporting the ORIGINAL source in issues — see `emitRegexSourceString`.
69
70
  */
70
- export declare function fastTestSource(source: string): string | null;
71
+ declare function fastTestSource(source: string): string | null;
71
72
  /**
72
73
  * Virtual-module export name for the ORIGINAL `/source/` pattern string of a
73
74
  * rewritten well-known regex (e.g. "__zcReEmailSrc"). Issue sites reference it
74
75
  * so the original pattern stays a single bundle-wide string even though the
75
76
  * runtime regex object is built from testSource.
76
77
  */
77
- export declare function wellKnownRegexSourceName(source: string): string | null;
78
+ declare function wellKnownRegexSourceName(source: string): string | null;
79
+ //#endregion
80
+ export { EMAIL_FAST_REGEX_SOURCE, EMAIL_REGEX_SOURCE, UUID_REGEX_SOURCE, WELL_KNOWN_REGEXES, WellKnownRegex, fastTestSource, lookupFastRegexSource, lookupWellKnownRegex, wellKnownRegexSourceName };
78
81
  //# sourceMappingURL=well-known-regex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"well-known-regex.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/well-known-regex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,QAA+G,CAAC;AAE/I;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,QAAqH,CAAC;AAE1J,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,2KAC4I,CAAC;AAE3K,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EA6BvD,CAAC;AAaF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE"}
1
+ {"version":3,"file":"well-known-regex.d.ts","names":[],"sources":["../../../src/core/codegen/well-known-regex.ts"],"mappings":";;;;;;;;;;;;cAca;;;;;;;;;;;;;cAcA;;cAGA;UAGI;;EAEf;;EAEA;;;;;;EAMA;;cAGW,6BAA6B;;;;;iBA8C1B,qBAAqB;;;;;;;;;iBAYrB,sBAAsB;;;;;;;;;;;;;;;;iBAmBtB,eAAe;;;;;;;iBAWf,yBAAyB"}
@@ -1,111 +1,142 @@
1
- /**
2
- * Well-known regex sources hosted in the virtual module "virtual:zod-compiler/runtime".
3
- *
4
- * In lean mode (unplugin), `g.regex()` consults this registry and emits a reference
5
- * like `__zcReEmail` instead of declaring `var __re_email_*=new RegExp(...)`.
6
- * The bundler then deduplicates the regex literal across all transformed files.
7
- *
8
- * Pattern sources are matched verbatim (string equality). Add new entries as Zod
9
- * exposes additional well-known formats and we want bundle-wide dedup.
10
- */
11
1
  import { unrollRepeats } from "./regex-unroll.js";
2
+ //#region src/core/codegen/well-known-regex.ts
3
+ /**
4
+ * Well-known regex sources hosted in the virtual module "virtual:zod-compiler/runtime".
5
+ *
6
+ * In lean mode (unplugin), `g.regex()` consults this registry and emits a reference
7
+ * like `__zcReEmail` instead of declaring `var __re_email_*=new RegExp(...)`.
8
+ * The bundler then deduplicates the regex literal across all transformed files.
9
+ *
10
+ * Pattern sources are matched verbatim (string equality). Add new entries as Zod
11
+ * exposes additional well-known formats and we want bundle-wide dedup.
12
+ */
12
13
  /** Zod v4's email regex source (string.ts uses this directly when format === "email"). */
13
- export const EMAIL_REGEX_SOURCE = String.raw `^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$`;
14
+ const EMAIL_REGEX_SOURCE = String.raw`^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$`;
14
15
  /**
15
- * Behavior-equivalent rewrite of EMAIL_REGEX_SOURCE that runs ~1.45x faster on V8.
16
- *
17
- * Zod's pattern fronts two lookaheads; `(?!.*\.\.)` re-scans the entire string
18
- * before matching starts. The rewrite encodes the same constraints structurally:
19
- * the local part is dot-separated runs of `[A-Za-z0-9_'+-]` (no leading dot, no
20
- * empty run ⇒ no `..`) ending in `[A-Za-z0-9_+-]`, and the domain grammar already
21
- * makes `..` impossible (every label starts with an alphanumeric).
22
- *
23
- * Equivalence is enforced by tests/core/codegen/email-fast-regex.test.ts
24
- * (exhaustive short-string sweep + structured cases + random fuzz).
25
- */
26
- export const EMAIL_FAST_REGEX_SOURCE = String.raw `^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$`;
16
+ * Behavior-equivalent rewrite of EMAIL_REGEX_SOURCE that runs ~1.45x faster on V8.
17
+ *
18
+ * Zod's pattern fronts two lookaheads; `(?!.*\.\.)` re-scans the entire string
19
+ * before matching starts. The rewrite encodes the same constraints structurally:
20
+ * the local part is dot-separated runs of `[A-Za-z0-9_'+-]` (no leading dot, no
21
+ * empty run ⇒ no `..`) ending in `[A-Za-z0-9_+-]`, and the domain grammar already
22
+ * makes `..` impossible (every label starts with an alphanumeric).
23
+ *
24
+ * Equivalence is enforced by tests/core/codegen/email-fast-regex.test.ts
25
+ * (exhaustive short-string sweep + structured cases + random fuzz).
26
+ */
27
+ const EMAIL_FAST_REGEX_SOURCE = String.raw`^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$`;
27
28
  /** Fallback UUID regex used when the extractor doesn't provide a pattern (e.g. in unit tests). */
28
- export const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
29
- export const WELL_KNOWN_REGEXES = [
30
- { name: "__zcReEmail", source: EMAIL_REGEX_SOURCE, testSource: EMAIL_FAST_REGEX_SOURCE },
31
- { name: "__zcReUuid", source: UUID_REGEX_SOURCE },
32
- { name: "__zcReCuid", source: "^[cC][^\\s-]{8,}$" },
33
- { name: "__zcReCuid2", source: "^[0-9a-z]+$" },
34
- { name: "__zcReUlid", source: "^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$" },
35
- { name: "__zcReNanoid", source: "^[a-zA-Z0-9_-]{21}$" },
36
- { name: "__zcReXid", source: "^[0-9a-vA-V]{20}$" },
37
- { name: "__zcReKsuid", source: "^[A-Za-z0-9]{27}$" },
38
- {
39
- name: "__zcReIpv4",
40
- source: "^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$",
41
- },
42
- {
43
- name: "__zcReIpv6",
44
- source: "^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$",
45
- },
46
- {
47
- name: "__zcReBase64",
48
- source: "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$",
49
- },
50
- { name: "__zcReBase64Url", source: "^[A-Za-z0-9_-]*$" },
51
- { name: "__zcReE164", source: "^\\+[1-9]\\d{6,14}$" },
52
- {
53
- name: "__zcReGuid",
54
- source: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
55
- },
29
+ const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
30
+ const WELL_KNOWN_REGEXES = [
31
+ {
32
+ name: "__zcReEmail",
33
+ source: EMAIL_REGEX_SOURCE,
34
+ testSource: EMAIL_FAST_REGEX_SOURCE
35
+ },
36
+ {
37
+ name: "__zcReUuid",
38
+ source: UUID_REGEX_SOURCE
39
+ },
40
+ {
41
+ name: "__zcReCuid",
42
+ source: "^[cC][^\\s-]{8,}$"
43
+ },
44
+ {
45
+ name: "__zcReCuid2",
46
+ source: "^[0-9a-z]+$"
47
+ },
48
+ {
49
+ name: "__zcReUlid",
50
+ source: "^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$"
51
+ },
52
+ {
53
+ name: "__zcReNanoid",
54
+ source: "^[a-zA-Z0-9_-]{21}$"
55
+ },
56
+ {
57
+ name: "__zcReXid",
58
+ source: "^[0-9a-vA-V]{20}$"
59
+ },
60
+ {
61
+ name: "__zcReKsuid",
62
+ source: "^[A-Za-z0-9]{27}$"
63
+ },
64
+ {
65
+ name: "__zcReIpv4",
66
+ source: "^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"
67
+ },
68
+ {
69
+ name: "__zcReIpv6",
70
+ source: "^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$"
71
+ },
72
+ {
73
+ name: "__zcReBase64",
74
+ source: "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$"
75
+ },
76
+ {
77
+ name: "__zcReBase64Url",
78
+ source: "^[A-Za-z0-9_-]*$"
79
+ },
80
+ {
81
+ name: "__zcReE164",
82
+ source: "^\\+[1-9]\\d{6,14}$"
83
+ },
84
+ {
85
+ name: "__zcReGuid",
86
+ source: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
87
+ }
56
88
  ];
57
89
  const SOURCE_TO_NAME = new Map(WELL_KNOWN_REGEXES.map((r) => [r.source, r.name]));
58
- const SOURCE_TO_TEST_SOURCE = new Map(WELL_KNOWN_REGEXES.filter((r) => r.testSource !== undefined).map((r) => [
59
- r.source,
60
- r.testSource,
61
- ]));
90
+ const SOURCE_TO_TEST_SOURCE = new Map(WELL_KNOWN_REGEXES.filter((r) => r.testSource !== void 0).map((r) => [r.source, r.testSource]));
62
91
  /**
63
- * Look up a well-known regex by its pattern source string.
64
- * Returns the virtual-module export name or null if the pattern is user-defined.
65
- */
66
- export function lookupWellKnownRegex(source) {
67
- return SOURCE_TO_NAME.get(source) ?? null;
92
+ * Look up a well-known regex by its pattern source string.
93
+ * Returns the virtual-module export name or null if the pattern is user-defined.
94
+ */
95
+ function lookupWellKnownRegex(source) {
96
+ return SOURCE_TO_NAME.get(source) ?? null;
68
97
  }
69
98
  /**
70
- * Look up the hand-written behavior-equivalent test pattern for a regex source.
71
- * Returns null when no rewrite is registered in {@link WELL_KNOWN_REGEXES}.
72
- *
73
- * This is the TABLE lookup only. Codegen calls {@link fastTestSource}, which
74
- * layers automatic repeat unrolling on top and also covers user-supplied
75
- * patterns that are in no table.
76
- */
77
- export function lookupFastRegexSource(source) {
78
- return SOURCE_TO_TEST_SOURCE.get(source) ?? null;
99
+ * Look up the hand-written behavior-equivalent test pattern for a regex source.
100
+ * Returns null when no rewrite is registered in {@link WELL_KNOWN_REGEXES}.
101
+ *
102
+ * This is the TABLE lookup only. Codegen calls {@link fastTestSource}, which
103
+ * layers automatic repeat unrolling on top and also covers user-supplied
104
+ * patterns that are in no table.
105
+ */
106
+ function lookupFastRegexSource(source) {
107
+ return SOURCE_TO_TEST_SOURCE.get(source) ?? null;
79
108
  }
80
109
  /**
81
- * The pattern a generated `.test()` should actually run for `source`, or null
82
- * when `source` is already the best form.
83
- *
84
- * Two behavior-preserving rewrites compose here: the hand-written table entry
85
- * above (currently just email), then {@link unrollRepeats}, which turns bounded
86
- * repeats of single-character atoms into explicit repetition — worth 1.3-3.4x
87
- * on the string formats everyday schemas use (uuid, guid, ulid, nanoid, xid,
88
- * ksuid, base64, e164, iso.date). Unrolling runs on the table rewrite when
89
- * there is one, so the two stack.
90
- *
91
- * Callers must apply this only to flag-less regexes (the flagged form would
92
- * need its flags carried into the reported pattern too) and must keep
93
- * reporting the ORIGINAL source in issues — see `emitRegexSourceString`.
94
- */
95
- export function fastTestSource(source) {
96
- const tableRewrite = SOURCE_TO_TEST_SOURCE.get(source) ?? null;
97
- return unrollRepeats(tableRewrite ?? source) ?? tableRewrite;
110
+ * The pattern a generated `.test()` should actually run for `source`, or null
111
+ * when `source` is already the best form.
112
+ *
113
+ * Two behavior-preserving rewrites compose here: the hand-written table entry
114
+ * above (currently just email), then {@link unrollRepeats}, which turns bounded
115
+ * repeats of single-character atoms into explicit repetition — worth 1.3-3.4x
116
+ * on the string formats everyday schemas use (uuid, guid, ulid, nanoid, xid,
117
+ * ksuid, base64, e164, iso.date). Unrolling runs on the table rewrite when
118
+ * there is one, so the two stack.
119
+ *
120
+ * Callers must apply this only to flag-less regexes (the flagged form would
121
+ * need its flags carried into the reported pattern too) and must keep
122
+ * reporting the ORIGINAL source in issues — see `emitRegexSourceString`.
123
+ */
124
+ function fastTestSource(source) {
125
+ const tableRewrite = SOURCE_TO_TEST_SOURCE.get(source) ?? null;
126
+ return unrollRepeats(tableRewrite ?? source) ?? tableRewrite;
98
127
  }
99
128
  /**
100
- * Virtual-module export name for the ORIGINAL `/source/` pattern string of a
101
- * rewritten well-known regex (e.g. "__zcReEmailSrc"). Issue sites reference it
102
- * so the original pattern stays a single bundle-wide string even though the
103
- * runtime regex object is built from testSource.
104
- */
105
- export function wellKnownRegexSourceName(source) {
106
- const name = SOURCE_TO_NAME.get(source);
107
- if (name === undefined)
108
- return null;
109
- return fastTestSource(source) !== null ? `${name}Src` : null;
129
+ * Virtual-module export name for the ORIGINAL `/source/` pattern string of a
130
+ * rewritten well-known regex (e.g. "__zcReEmailSrc"). Issue sites reference it
131
+ * so the original pattern stays a single bundle-wide string even though the
132
+ * runtime regex object is built from testSource.
133
+ */
134
+ function wellKnownRegexSourceName(source) {
135
+ const name = SOURCE_TO_NAME.get(source);
136
+ if (name === void 0) return null;
137
+ return fastTestSource(source) !== null ? `${name}Src` : null;
110
138
  }
139
+ //#endregion
140
+ export { EMAIL_FAST_REGEX_SOURCE, EMAIL_REGEX_SOURCE, UUID_REGEX_SOURCE, WELL_KNOWN_REGEXES, fastTestSource, lookupFastRegexSource, lookupWellKnownRegex, wellKnownRegexSourceName };
141
+
111
142
  //# sourceMappingURL=well-known-regex.js.map