zod-compiler 1.23.0 → 1.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/README.md +9 -6
  2. package/dist/cli/commands/check.d.ts +10 -7
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +125 -148
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/generate.d.ts +22 -19
  7. package/dist/cli/commands/generate.d.ts.map +1 -1
  8. package/dist/cli/commands/generate.js +102 -133
  9. package/dist/cli/commands/generate.js.map +1 -1
  10. package/dist/cli/commands/watch.d.ts +17 -15
  11. package/dist/cli/commands/watch.d.ts.map +1 -1
  12. package/dist/cli/commands/watch.js +126 -154
  13. package/dist/cli/commands/watch.js.map +1 -1
  14. package/dist/cli/emitter.d.ts +19 -16
  15. package/dist/cli/emitter.d.ts.map +1 -1
  16. package/dist/cli/emitter.js +55 -71
  17. package/dist/cli/emitter.js.map +1 -1
  18. package/dist/cli/errors.d.ts +4 -1
  19. package/dist/cli/errors.d.ts.map +1 -1
  20. package/dist/cli/errors.js +6 -2
  21. package/dist/cli/errors.js.map +1 -1
  22. package/dist/cli/index.d.ts +1 -3
  23. package/dist/cli/index.js +147 -160
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/logger.d.ts +18 -15
  26. package/dist/cli/logger.d.ts.map +1 -1
  27. package/dist/cli/logger.js +38 -37
  28. package/dist/cli/logger.js.map +1 -1
  29. package/dist/core/codegen/build-path.d.ts +7 -41
  30. package/dist/core/codegen/build-path.d.ts.map +1 -1
  31. package/dist/core/codegen/build-path.js +481 -570
  32. package/dist/core/codegen/build-path.js.map +1 -1
  33. package/dist/core/codegen/context.d.ts +256 -253
  34. package/dist/core/codegen/context.d.ts.map +1 -1
  35. package/dist/core/codegen/context.js +363 -437
  36. package/dist/core/codegen/context.js.map +1 -1
  37. package/dist/core/codegen/dedupe.d.ts +22 -56
  38. package/dist/core/codegen/dedupe.d.ts.map +1 -1
  39. package/dist/core/codegen/dedupe.js +150 -242
  40. package/dist/core/codegen/dedupe.js.map +1 -1
  41. package/dist/core/codegen/emit-issue.d.ts +44 -68
  42. package/dist/core/codegen/emit-issue.d.ts.map +1 -1
  43. package/dist/core/codegen/emit-issue.js +76 -108
  44. package/dist/core/codegen/emit-issue.js.map +1 -1
  45. package/dist/core/codegen/emit.d.ts +4 -1
  46. package/dist/core/codegen/emit.d.ts.map +1 -1
  47. package/dist/core/codegen/emit.js +16 -13
  48. package/dist/core/codegen/emit.js.map +1 -1
  49. package/dist/core/codegen/fast-path.d.ts +7 -12
  50. package/dist/core/codegen/fast-path.d.ts.map +1 -1
  51. package/dist/core/codegen/fast-path.js +116 -145
  52. package/dist/core/codegen/fast-path.js.map +1 -1
  53. package/dist/core/codegen/fast-size.d.ts +12 -26
  54. package/dist/core/codegen/fast-size.d.ts.map +1 -1
  55. package/dist/core/codegen/fast-size.js +169 -244
  56. package/dist/core/codegen/fast-size.js.map +1 -1
  57. package/dist/core/codegen/index.d.ts +25 -23
  58. package/dist/core/codegen/index.d.ts.map +1 -1
  59. package/dist/core/codegen/index.js +239 -405
  60. package/dist/core/codegen/index.js.map +1 -1
  61. package/dist/core/codegen/issue-decls.d.ts +15 -12
  62. package/dist/core/codegen/issue-decls.d.ts.map +1 -1
  63. package/dist/core/codegen/issue-decls.js +131 -162
  64. package/dist/core/codegen/issue-decls.js.map +1 -1
  65. package/dist/core/codegen/regex-unroll.d.ts +4 -1
  66. package/dist/core/codegen/regex-unroll.d.ts.map +1 -1
  67. package/dist/core/codegen/regex-unroll.js +173 -197
  68. package/dist/core/codegen/regex-unroll.js.map +1 -1
  69. package/dist/core/codegen/schemas/any.d.ts +7 -4
  70. package/dist/core/codegen/schemas/any.d.ts.map +1 -1
  71. package/dist/core/codegen/schemas/any.js +8 -4
  72. package/dist/core/codegen/schemas/any.js.map +1 -1
  73. package/dist/core/codegen/schemas/array.d.ts +8 -5
  74. package/dist/core/codegen/schemas/array.d.ts.map +1 -1
  75. package/dist/core/codegen/schemas/array.js +77 -95
  76. package/dist/core/codegen/schemas/array.js.map +1 -1
  77. package/dist/core/codegen/schemas/bigint.d.ts +7 -4
  78. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
  79. package/dist/core/codegen/schemas/bigint.js +44 -56
  80. package/dist/core/codegen/schemas/bigint.js.map +1 -1
  81. package/dist/core/codegen/schemas/boolean.d.ts +7 -4
  82. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
  83. package/dist/core/codegen/schemas/boolean.js +12 -11
  84. package/dist/core/codegen/schemas/boolean.js.map +1 -1
  85. package/dist/core/codegen/schemas/catch.d.ts +8 -5
  86. package/dist/core/codegen/schemas/catch.d.ts.map +1 -1
  87. package/dist/core/codegen/schemas/catch.js +23 -23
  88. package/dist/core/codegen/schemas/catch.js.map +1 -1
  89. package/dist/core/codegen/schemas/date.d.ts +7 -4
  90. package/dist/core/codegen/schemas/date.d.ts.map +1 -1
  91. package/dist/core/codegen/schemas/date.js +49 -68
  92. package/dist/core/codegen/schemas/date.js.map +1 -1
  93. package/dist/core/codegen/schemas/default.d.ts +9 -6
  94. package/dist/core/codegen/schemas/default.d.ts.map +1 -1
  95. package/dist/core/codegen/schemas/default.js +29 -27
  96. package/dist/core/codegen/schemas/default.js.map +1 -1
  97. package/dist/core/codegen/schemas/discriminated-union.d.ts +12 -10
  98. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
  99. package/dist/core/codegen/schemas/discriminated-union.js +153 -178
  100. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
  101. package/dist/core/codegen/schemas/effect.d.ts +9 -6
  102. package/dist/core/codegen/schemas/effect.d.ts.map +1 -1
  103. package/dist/core/codegen/schemas/effect.js +54 -67
  104. package/dist/core/codegen/schemas/effect.js.map +1 -1
  105. package/dist/core/codegen/schemas/enum.d.ts +7 -4
  106. package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
  107. package/dist/core/codegen/schemas/enum.js +15 -21
  108. package/dist/core/codegen/schemas/enum.js.map +1 -1
  109. package/dist/core/codegen/schemas/fallback.d.ts +6 -3
  110. package/dist/core/codegen/schemas/fallback.d.ts.map +1 -1
  111. package/dist/core/codegen/schemas/fallback.js +14 -13
  112. package/dist/core/codegen/schemas/fallback.js.map +1 -1
  113. package/dist/core/codegen/schemas/file.d.ts +7 -4
  114. package/dist/core/codegen/schemas/file.d.ts.map +1 -1
  115. package/dist/core/codegen/schemas/file.js +51 -57
  116. package/dist/core/codegen/schemas/file.js.map +1 -1
  117. package/dist/core/codegen/schemas/intersection.d.ts +8 -5
  118. package/dist/core/codegen/schemas/intersection.d.ts.map +1 -1
  119. package/dist/core/codegen/schemas/intersection.js +16 -13
  120. package/dist/core/codegen/schemas/intersection.js.map +1 -1
  121. package/dist/core/codegen/schemas/literal.d.ts +7 -4
  122. package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
  123. package/dist/core/codegen/schemas/literal.js +20 -23
  124. package/dist/core/codegen/schemas/literal.js.map +1 -1
  125. package/dist/core/codegen/schemas/map.d.ts +8 -5
  126. package/dist/core/codegen/schemas/map.d.ts.map +1 -1
  127. package/dist/core/codegen/schemas/map.js +61 -67
  128. package/dist/core/codegen/schemas/map.js.map +1 -1
  129. package/dist/core/codegen/schemas/nan.d.ts +7 -4
  130. package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
  131. package/dist/core/codegen/schemas/nan.js +8 -4
  132. package/dist/core/codegen/schemas/nan.js.map +1 -1
  133. package/dist/core/codegen/schemas/never.d.ts +7 -4
  134. package/dist/core/codegen/schemas/never.d.ts.map +1 -1
  135. package/dist/core/codegen/schemas/never.js +8 -4
  136. package/dist/core/codegen/schemas/never.js.map +1 -1
  137. package/dist/core/codegen/schemas/null.d.ts +7 -4
  138. package/dist/core/codegen/schemas/null.d.ts.map +1 -1
  139. package/dist/core/codegen/schemas/null.js +8 -4
  140. package/dist/core/codegen/schemas/null.js.map +1 -1
  141. package/dist/core/codegen/schemas/nullable.d.ts +8 -5
  142. package/dist/core/codegen/schemas/nullable.d.ts.map +1 -1
  143. package/dist/core/codegen/schemas/nullable.js +8 -5
  144. package/dist/core/codegen/schemas/nullable.js.map +1 -1
  145. package/dist/core/codegen/schemas/number.d.ts +7 -4
  146. package/dist/core/codegen/schemas/number.d.ts.map +1 -1
  147. package/dist/core/codegen/schemas/number.js +120 -176
  148. package/dist/core/codegen/schemas/number.js.map +1 -1
  149. package/dist/core/codegen/schemas/object.d.ts +8 -5
  150. package/dist/core/codegen/schemas/object.d.ts.map +1 -1
  151. package/dist/core/codegen/schemas/object.js +144 -231
  152. package/dist/core/codegen/schemas/object.js.map +1 -1
  153. package/dist/core/codegen/schemas/optional.d.ts +9 -6
  154. package/dist/core/codegen/schemas/optional.d.ts.map +1 -1
  155. package/dist/core/codegen/schemas/optional.js +23 -31
  156. package/dist/core/codegen/schemas/optional.js.map +1 -1
  157. package/dist/core/codegen/schemas/pipe.d.ts +8 -5
  158. package/dist/core/codegen/schemas/pipe.d.ts.map +1 -1
  159. package/dist/core/codegen/schemas/pipe.js +20 -27
  160. package/dist/core/codegen/schemas/pipe.js.map +1 -1
  161. package/dist/core/codegen/schemas/readonly.d.ts +8 -5
  162. package/dist/core/codegen/schemas/readonly.d.ts.map +1 -1
  163. package/dist/core/codegen/schemas/readonly.js +8 -5
  164. package/dist/core/codegen/schemas/readonly.js.map +1 -1
  165. package/dist/core/codegen/schemas/record.d.ts +8 -5
  166. package/dist/core/codegen/schemas/record.d.ts.map +1 -1
  167. package/dist/core/codegen/schemas/record.js +52 -65
  168. package/dist/core/codegen/schemas/record.js.map +1 -1
  169. package/dist/core/codegen/schemas/recursive-ref.d.ts +9 -6
  170. package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -1
  171. package/dist/core/codegen/schemas/recursive-ref.js +44 -44
  172. package/dist/core/codegen/schemas/recursive-ref.js.map +1 -1
  173. package/dist/core/codegen/schemas/set.d.ts +8 -5
  174. package/dist/core/codegen/schemas/set.d.ts.map +1 -1
  175. package/dist/core/codegen/schemas/set.js +61 -73
  176. package/dist/core/codegen/schemas/set.js.map +1 -1
  177. package/dist/core/codegen/schemas/string-bool.d.ts +6 -3
  178. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
  179. package/dist/core/codegen/schemas/string-bool.js +22 -23
  180. package/dist/core/codegen/schemas/string-bool.js.map +1 -1
  181. package/dist/core/codegen/schemas/string.d.ts +8 -5
  182. package/dist/core/codegen/schemas/string.d.ts.map +1 -1
  183. package/dist/core/codegen/schemas/string.js +168 -207
  184. package/dist/core/codegen/schemas/string.js.map +1 -1
  185. package/dist/core/codegen/schemas/symbol.d.ts +7 -4
  186. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
  187. package/dist/core/codegen/schemas/symbol.js +8 -4
  188. package/dist/core/codegen/schemas/symbol.js.map +1 -1
  189. package/dist/core/codegen/schemas/template-literal.d.ts +7 -4
  190. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
  191. package/dist/core/codegen/schemas/template-literal.js +12 -13
  192. package/dist/core/codegen/schemas/template-literal.js.map +1 -1
  193. package/dist/core/codegen/schemas/tuple.d.ts +8 -5
  194. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
  195. package/dist/core/codegen/schemas/tuple.js +84 -94
  196. package/dist/core/codegen/schemas/tuple.js.map +1 -1
  197. package/dist/core/codegen/schemas/undefined.d.ts +7 -4
  198. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
  199. package/dist/core/codegen/schemas/undefined.js +8 -4
  200. package/dist/core/codegen/schemas/undefined.js.map +1 -1
  201. package/dist/core/codegen/schemas/union.d.ts +8 -5
  202. package/dist/core/codegen/schemas/union.d.ts.map +1 -1
  203. package/dist/core/codegen/schemas/union.js +49 -69
  204. package/dist/core/codegen/schemas/union.js.map +1 -1
  205. package/dist/core/codegen/schemas/unknown.d.ts +7 -4
  206. package/dist/core/codegen/schemas/unknown.d.ts.map +1 -1
  207. package/dist/core/codegen/schemas/unknown.js +8 -4
  208. package/dist/core/codegen/schemas/unknown.js.map +1 -1
  209. package/dist/core/codegen/schemas/void.d.ts +7 -4
  210. package/dist/core/codegen/schemas/void.d.ts.map +1 -1
  211. package/dist/core/codegen/schemas/void.js +8 -4
  212. package/dist/core/codegen/schemas/void.js.map +1 -1
  213. package/dist/core/codegen/slow-path.d.ts +7 -4
  214. package/dist/core/codegen/slow-path.d.ts.map +1 -1
  215. package/dist/core/codegen/slow-path.js +71 -96
  216. package/dist/core/codegen/slow-path.js.map +1 -1
  217. package/dist/core/codegen/well-known-regex.d.ts +22 -19
  218. package/dist/core/codegen/well-known-regex.d.ts.map +1 -1
  219. package/dist/core/codegen/well-known-regex.js +127 -96
  220. package/dist/core/codegen/well-known-regex.js.map +1 -1
  221. package/dist/core/compile.d.ts +7 -4
  222. package/dist/core/compile.d.ts.map +1 -1
  223. package/dist/core/compile.js +48 -48
  224. package/dist/core/compile.js.map +1 -1
  225. package/dist/core/diagnostic.d.ts +38 -39
  226. package/dist/core/diagnostic.d.ts.map +1 -1
  227. package/dist/core/diagnostic.js +140 -164
  228. package/dist/core/diagnostic.js.map +1 -1
  229. package/dist/core/extract/checks.d.ts +18 -15
  230. package/dist/core/extract/checks.d.ts.map +1 -1
  231. package/dist/core/extract/checks.js +318 -311
  232. package/dist/core/extract/checks.js.map +1 -1
  233. package/dist/core/extract/effects.d.ts +13 -10
  234. package/dist/core/extract/effects.d.ts.map +1 -1
  235. package/dist/core/extract/effects.js +153 -222
  236. package/dist/core/extract/effects.js.map +1 -1
  237. package/dist/core/extract/extractors/any.d.ts +5 -2
  238. package/dist/core/extract/extractors/any.d.ts.map +1 -1
  239. package/dist/core/extract/extractors/any.js +5 -1
  240. package/dist/core/extract/extractors/any.js.map +1 -1
  241. package/dist/core/extract/extractors/array.d.ts +6 -3
  242. package/dist/core/extract/extractors/array.d.ts.map +1 -1
  243. package/dist/core/extract/extractors/array.js +25 -20
  244. package/dist/core/extract/extractors/array.js.map +1 -1
  245. package/dist/core/extract/extractors/bigint.d.ts +6 -3
  246. package/dist/core/extract/extractors/bigint.d.ts.map +1 -1
  247. package/dist/core/extract/extractors/bigint.js +66 -64
  248. package/dist/core/extract/extractors/bigint.js.map +1 -1
  249. package/dist/core/extract/extractors/boolean.d.ts +5 -2
  250. package/dist/core/extract/extractors/boolean.d.ts.map +1 -1
  251. package/dist/core/extract/extractors/boolean.js +7 -3
  252. package/dist/core/extract/extractors/boolean.js.map +1 -1
  253. package/dist/core/extract/extractors/catch.d.ts +6 -3
  254. package/dist/core/extract/extractors/catch.d.ts.map +1 -1
  255. package/dist/core/extract/extractors/catch.js +26 -17
  256. package/dist/core/extract/extractors/catch.js.map +1 -1
  257. package/dist/core/extract/extractors/date.d.ts +6 -3
  258. package/dist/core/extract/extractors/date.d.ts.map +1 -1
  259. package/dist/core/extract/extractors/date.js +42 -46
  260. package/dist/core/extract/extractors/date.js.map +1 -1
  261. package/dist/core/extract/extractors/default.d.ts +6 -3
  262. package/dist/core/extract/extractors/default.d.ts.map +1 -1
  263. package/dist/core/extract/extractors/default.js +20 -14
  264. package/dist/core/extract/extractors/default.js.map +1 -1
  265. package/dist/core/extract/extractors/enum.d.ts +5 -2
  266. package/dist/core/extract/extractors/enum.d.ts.map +1 -1
  267. package/dist/core/extract/extractors/enum.js +12 -13
  268. package/dist/core/extract/extractors/enum.js.map +1 -1
  269. package/dist/core/extract/extractors/file.d.ts +6 -3
  270. package/dist/core/extract/extractors/file.d.ts.map +1 -1
  271. package/dist/core/extract/extractors/file.js +34 -28
  272. package/dist/core/extract/extractors/file.js.map +1 -1
  273. package/dist/core/extract/extractors/intersection.d.ts +5 -2
  274. package/dist/core/extract/extractors/intersection.d.ts.map +1 -1
  275. package/dist/core/extract/extractors/intersection.js +13 -11
  276. package/dist/core/extract/extractors/intersection.js.map +1 -1
  277. package/dist/core/extract/extractors/lazy.d.ts +6 -3
  278. package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
  279. package/dist/core/extract/extractors/lazy.js +21 -30
  280. package/dist/core/extract/extractors/lazy.js.map +1 -1
  281. package/dist/core/extract/extractors/literal.d.ts +5 -2
  282. package/dist/core/extract/extractors/literal.d.ts.map +1 -1
  283. package/dist/core/extract/extractors/literal.js +8 -1
  284. package/dist/core/extract/extractors/literal.js.map +1 -1
  285. package/dist/core/extract/extractors/map.d.ts +6 -3
  286. package/dist/core/extract/extractors/map.d.ts.map +1 -1
  287. package/dist/core/extract/extractors/map.js +10 -4
  288. package/dist/core/extract/extractors/map.js.map +1 -1
  289. package/dist/core/extract/extractors/nan.d.ts +5 -2
  290. package/dist/core/extract/extractors/nan.d.ts.map +1 -1
  291. package/dist/core/extract/extractors/nan.js +5 -1
  292. package/dist/core/extract/extractors/nan.js.map +1 -1
  293. package/dist/core/extract/extractors/never.d.ts +5 -2
  294. package/dist/core/extract/extractors/never.d.ts.map +1 -1
  295. package/dist/core/extract/extractors/never.js +5 -1
  296. package/dist/core/extract/extractors/never.js.map +1 -1
  297. package/dist/core/extract/extractors/null.d.ts +5 -2
  298. package/dist/core/extract/extractors/null.d.ts.map +1 -1
  299. package/dist/core/extract/extractors/null.js +5 -1
  300. package/dist/core/extract/extractors/null.js.map +1 -1
  301. package/dist/core/extract/extractors/nullable.d.ts +5 -2
  302. package/dist/core/extract/extractors/nullable.d.ts.map +1 -1
  303. package/dist/core/extract/extractors/nullable.js +7 -3
  304. package/dist/core/extract/extractors/nullable.js.map +1 -1
  305. package/dist/core/extract/extractors/number.d.ts +6 -3
  306. package/dist/core/extract/extractors/number.d.ts.map +1 -1
  307. package/dist/core/extract/extractors/number.js +35 -35
  308. package/dist/core/extract/extractors/number.js.map +1 -1
  309. package/dist/core/extract/extractors/object.d.ts +6 -3
  310. package/dist/core/extract/extractors/object.d.ts.map +1 -1
  311. package/dist/core/extract/extractors/object.js +49 -76
  312. package/dist/core/extract/extractors/object.js.map +1 -1
  313. package/dist/core/extract/extractors/optional.d.ts +5 -2
  314. package/dist/core/extract/extractors/optional.d.ts.map +1 -1
  315. package/dist/core/extract/extractors/optional.js +10 -12
  316. package/dist/core/extract/extractors/optional.js.map +1 -1
  317. package/dist/core/extract/extractors/pipe.d.ts +6 -3
  318. package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
  319. package/dist/core/extract/extractors/pipe.js +40 -41
  320. package/dist/core/extract/extractors/pipe.js.map +1 -1
  321. package/dist/core/extract/extractors/readonly.d.ts +5 -2
  322. package/dist/core/extract/extractors/readonly.d.ts.map +1 -1
  323. package/dist/core/extract/extractors/readonly.js +10 -6
  324. package/dist/core/extract/extractors/readonly.js.map +1 -1
  325. package/dist/core/extract/extractors/record.d.ts +6 -3
  326. package/dist/core/extract/extractors/record.d.ts.map +1 -1
  327. package/dist/core/extract/extractors/record.js +24 -35
  328. package/dist/core/extract/extractors/record.js.map +1 -1
  329. package/dist/core/extract/extractors/set.d.ts +6 -3
  330. package/dist/core/extract/extractors/set.d.ts.map +1 -1
  331. package/dist/core/extract/extractors/set.js +36 -30
  332. package/dist/core/extract/extractors/set.js.map +1 -1
  333. package/dist/core/extract/extractors/string-bool.d.ts +7 -4
  334. package/dist/core/extract/extractors/string-bool.d.ts.map +1 -1
  335. package/dist/core/extract/extractors/string-bool.js +66 -84
  336. package/dist/core/extract/extractors/string-bool.js.map +1 -1
  337. package/dist/core/extract/extractors/string.d.ts +6 -3
  338. package/dist/core/extract/extractors/string.d.ts.map +1 -1
  339. package/dist/core/extract/extractors/string.js +34 -37
  340. package/dist/core/extract/extractors/string.js.map +1 -1
  341. package/dist/core/extract/extractors/symbol.d.ts +5 -2
  342. package/dist/core/extract/extractors/symbol.d.ts.map +1 -1
  343. package/dist/core/extract/extractors/symbol.js +5 -1
  344. package/dist/core/extract/extractors/symbol.js.map +1 -1
  345. package/dist/core/extract/extractors/template-literal.d.ts +6 -3
  346. package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
  347. package/dist/core/extract/extractors/template-literal.js +11 -6
  348. package/dist/core/extract/extractors/template-literal.js.map +1 -1
  349. package/dist/core/extract/extractors/tuple.d.ts +6 -3
  350. package/dist/core/extract/extractors/tuple.d.ts.map +1 -1
  351. package/dist/core/extract/extractors/tuple.js +10 -4
  352. package/dist/core/extract/extractors/tuple.js.map +1 -1
  353. package/dist/core/extract/extractors/undefined.d.ts +5 -2
  354. package/dist/core/extract/extractors/undefined.d.ts.map +1 -1
  355. package/dist/core/extract/extractors/undefined.js +5 -1
  356. package/dist/core/extract/extractors/undefined.js.map +1 -1
  357. package/dist/core/extract/extractors/union.d.ts +6 -3
  358. package/dist/core/extract/extractors/union.d.ts.map +1 -1
  359. package/dist/core/extract/extractors/union.js +38 -64
  360. package/dist/core/extract/extractors/union.js.map +1 -1
  361. package/dist/core/extract/extractors/unknown.d.ts +5 -2
  362. package/dist/core/extract/extractors/unknown.d.ts.map +1 -1
  363. package/dist/core/extract/extractors/unknown.js +5 -1
  364. package/dist/core/extract/extractors/unknown.js.map +1 -1
  365. package/dist/core/extract/extractors/void.d.ts +5 -2
  366. package/dist/core/extract/extractors/void.d.ts.map +1 -1
  367. package/dist/core/extract/extractors/void.js +5 -1
  368. package/dist/core/extract/extractors/void.js.map +1 -1
  369. package/dist/core/extract/fallback.d.ts +6 -3
  370. package/dist/core/extract/fallback.d.ts.map +1 -1
  371. package/dist/core/extract/fallback.js +21 -7
  372. package/dist/core/extract/fallback.js.map +1 -1
  373. package/dist/core/extract/index.d.ts +6 -4
  374. package/dist/core/extract/index.d.ts.map +1 -1
  375. package/dist/core/extract/index.js +15 -15
  376. package/dist/core/extract/index.js.map +1 -1
  377. package/dist/core/extract/registry.d.ts +39 -36
  378. package/dist/core/extract/registry.d.ts.map +1 -1
  379. package/dist/core/extract/registry.js +96 -123
  380. package/dist/core/extract/registry.js.map +1 -1
  381. package/dist/core/extract/types.d.ts +124 -120
  382. package/dist/core/extract/types.d.ts.map +1 -1
  383. package/dist/core/extract/types.js +0 -1
  384. package/dist/core/iife.d.ts +14 -15
  385. package/dist/core/iife.d.ts.map +1 -1
  386. package/dist/core/iife.js +182 -206
  387. package/dist/core/iife.js.map +1 -1
  388. package/dist/core/pipeline.d.ts +33 -30
  389. package/dist/core/pipeline.d.ts.map +1 -1
  390. package/dist/core/pipeline.js +67 -74
  391. package/dist/core/pipeline.js.map +1 -1
  392. package/dist/core/types.d.ts +430 -427
  393. package/dist/core/types.d.ts.map +1 -1
  394. package/dist/core/types.js +0 -5
  395. package/dist/discovery.d.ts +8 -5
  396. package/dist/discovery.d.ts.map +1 -1
  397. package/dist/discovery.js +31 -32
  398. package/dist/discovery.js.map +1 -1
  399. package/dist/index.d.ts +4 -4
  400. package/dist/index.js +2 -2
  401. package/dist/jit.d.ts +15 -42
  402. package/dist/jit.d.ts.map +1 -1
  403. package/dist/jit.js +187 -216
  404. package/dist/jit.js.map +1 -1
  405. package/dist/loader.d.ts +14 -11
  406. package/dist/loader.d.ts.map +1 -1
  407. package/dist/loader.js +226 -258
  408. package/dist/loader.js.map +1 -1
  409. package/dist/static-filter.d.ts +4 -1
  410. package/dist/static-filter.d.ts.map +1 -1
  411. package/dist/static-filter.js +240 -367
  412. package/dist/static-filter.js.map +1 -1
  413. package/dist/swc.d.ts +38 -35
  414. package/dist/swc.d.ts.map +1 -1
  415. package/dist/swc.js +83 -76
  416. package/dist/swc.js.map +1 -1
  417. package/dist/unplugin/bun.d.ts +5 -2
  418. package/dist/unplugin/bun.d.ts.map +1 -1
  419. package/dist/unplugin/bun.js +5 -1
  420. package/dist/unplugin/bun.js.map +1 -1
  421. package/dist/unplugin/dep-graph.d.ts +10 -7
  422. package/dist/unplugin/dep-graph.d.ts.map +1 -1
  423. package/dist/unplugin/dep-graph.js +216 -252
  424. package/dist/unplugin/dep-graph.js.map +1 -1
  425. package/dist/unplugin/disk-cache.d.ts +121 -92
  426. package/dist/unplugin/disk-cache.d.ts.map +1 -1
  427. package/dist/unplugin/disk-cache.js +425 -444
  428. package/dist/unplugin/disk-cache.js.map +1 -1
  429. package/dist/unplugin/edits.d.ts +15 -12
  430. package/dist/unplugin/edits.d.ts.map +1 -1
  431. package/dist/unplugin/edits.js +24 -37
  432. package/dist/unplugin/edits.js.map +1 -1
  433. package/dist/unplugin/esbuild.d.ts +5 -2
  434. package/dist/unplugin/esbuild.d.ts.map +1 -1
  435. package/dist/unplugin/esbuild.js +5 -1
  436. package/dist/unplugin/esbuild.js.map +1 -1
  437. package/dist/unplugin/farm.d.ts +5 -2
  438. package/dist/unplugin/farm.d.ts.map +1 -1
  439. package/dist/unplugin/farm.js +5 -1
  440. package/dist/unplugin/farm.js.map +1 -1
  441. package/dist/unplugin/hoist-compile.d.ts +14 -42
  442. package/dist/unplugin/hoist-compile.d.ts.map +1 -1
  443. package/dist/unplugin/hoist-compile.js +67 -112
  444. package/dist/unplugin/hoist-compile.js.map +1 -1
  445. package/dist/unplugin/hoist.d.ts +56 -54
  446. package/dist/unplugin/hoist.d.ts.map +1 -1
  447. package/dist/unplugin/hoist.js +945 -1170
  448. package/dist/unplugin/hoist.js.map +1 -1
  449. package/dist/unplugin/index.d.ts +5 -3
  450. package/dist/unplugin/index.d.ts.map +1 -1
  451. package/dist/unplugin/index.js +175 -250
  452. package/dist/unplugin/index.js.map +1 -1
  453. package/dist/unplugin/rolldown.d.ts +5 -2
  454. package/dist/unplugin/rolldown.d.ts.map +1 -1
  455. package/dist/unplugin/rolldown.js +5 -1
  456. package/dist/unplugin/rolldown.js.map +1 -1
  457. package/dist/unplugin/rollup.d.ts +5 -2
  458. package/dist/unplugin/rollup.d.ts.map +1 -1
  459. package/dist/unplugin/rollup.js +5 -1
  460. package/dist/unplugin/rollup.js.map +1 -1
  461. package/dist/unplugin/rsbuild.d.ts +6 -3
  462. package/dist/unplugin/rsbuild.d.ts.map +1 -1
  463. package/dist/unplugin/rsbuild.js +15 -11
  464. package/dist/unplugin/rsbuild.js.map +1 -1
  465. package/dist/unplugin/rspack.d.ts +5 -2
  466. package/dist/unplugin/rspack.d.ts.map +1 -1
  467. package/dist/unplugin/rspack.js +5 -1
  468. package/dist/unplugin/rspack.js.map +1 -1
  469. package/dist/unplugin/transform.d.ts +30 -27
  470. package/dist/unplugin/transform.d.ts.map +1 -1
  471. package/dist/unplugin/transform.js +433 -620
  472. package/dist/unplugin/transform.js.map +1 -1
  473. package/dist/unplugin/types.d.ts +189 -184
  474. package/dist/unplugin/types.d.ts.map +1 -1
  475. package/dist/unplugin/types.js +22 -18
  476. package/dist/unplugin/types.js.map +1 -1
  477. package/dist/unplugin/virtual.d.ts +11 -8
  478. package/dist/unplugin/virtual.d.ts.map +1 -1
  479. package/dist/unplugin/virtual.js +65 -83
  480. package/dist/unplugin/virtual.js.map +1 -1
  481. package/dist/unplugin/vite.d.ts +5 -2
  482. package/dist/unplugin/vite.d.ts.map +1 -1
  483. package/dist/unplugin/vite.js +5 -1
  484. package/dist/unplugin/vite.js.map +1 -1
  485. package/dist/unplugin/webpack.d.ts +5 -2
  486. package/dist/unplugin/webpack.d.ts.map +1 -1
  487. package/dist/unplugin/webpack.js +5 -1
  488. package/dist/unplugin/webpack.js.map +1 -1
  489. package/package.json +23 -14
  490. package/dist/cli/index.d.ts.map +0 -1
  491. package/dist/core/extract/types.js.map +0 -1
  492. package/dist/core/types.js.map +0 -1
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js.map +0 -1
package/dist/loader.js CHANGED
@@ -1,308 +1,276 @@
1
1
  import path from "node:path";
2
2
  import { pathToFileURL } from "node:url";
3
- import { createPathsMatcher, getTsconfig, } from "get-tsconfig";
3
+ import { createPathsMatcher, getTsconfig } from "get-tsconfig";
4
+ //#region src/loader.ts
4
5
  function detectRuntime() {
5
- if ("Bun" in globalThis)
6
- return "bun";
7
- if ("Deno" in globalThis)
8
- return "deno";
9
- return "node";
6
+ if ("Bun" in globalThis) return "bun";
7
+ if ("Deno" in globalThis) return "deno";
8
+ return "node";
10
9
  }
11
10
  /** Cache: search dir → tsconfig lookup result (getTsconfig walks the fs otherwise). */
12
- const tsconfigSearchCache = new Map();
11
+ const tsconfigSearchCache = /* @__PURE__ */ new Map();
13
12
  /**
14
- * Cache: tsconfig.json absolute path → paths matcher. `null`: config has no
15
- * baseUrl/paths. `"unusable"`: createPathsMatcher rejected the config (the
16
- * same validations tsc enforces — multi-star patterns, TS5090 non-relative
17
- * substitutions without baseUrl).
18
- */
19
- const pathsMatcherCache = new Map();
13
+ * Cache: tsconfig.json absolute path → paths matcher. `null`: config has no
14
+ * baseUrl/paths. `"unusable"`: createPathsMatcher rejected the config (the
15
+ * same validations tsc enforces — multi-star patterns, TS5090 non-relative
16
+ * substitutions without baseUrl).
17
+ */
18
+ const pathsMatcherCache = /* @__PURE__ */ new Map();
20
19
  /**
21
- * Resolve the tsconfig.json visible from a source directory.
22
- *
23
- * jiti has first-class TypeScript paths support, so runtime discovery uses the
24
- * tsconfig path directly instead of translating aliases into jiti's simpler
25
- * prefix alias format. The static dependency crawler uses get-tsconfig's own
26
- * matcher for the same reason: project aliases are arbitrary TypeScript
27
- * `paths` patterns, not a fixed convention like "~" or "@".
28
- */
20
+ * Resolve the tsconfig.json visible from a source directory.
21
+ *
22
+ * jiti has first-class TypeScript paths support, so runtime discovery uses the
23
+ * tsconfig path directly instead of translating aliases into jiti's simpler
24
+ * prefix alias format. The static dependency crawler uses get-tsconfig's own
25
+ * matcher for the same reason: project aliases are arbitrary TypeScript
26
+ * `paths` patterns, not a fixed convention like "~" or "@".
27
+ */
29
28
  function resolveLoaderConfig(fromDir) {
30
- const tsconfig = getTsconfig(fromDir, "tsconfig.json", tsconfigSearchCache);
31
- if (!tsconfig)
32
- return { key: "", tsconfigPath: undefined };
33
- return { key: tsconfig.path, tsconfigPath: tsconfig.path };
29
+ const tsconfig = getTsconfig(fromDir, "tsconfig.json", tsconfigSearchCache);
30
+ if (!tsconfig) return {
31
+ key: "",
32
+ tsconfigPath: void 0
33
+ };
34
+ return {
35
+ key: tsconfig.path,
36
+ tsconfigPath: tsconfig.path
37
+ };
34
38
  }
35
39
  /**
36
- * Whether an explicit `compilerOptions.paths` pattern matches the specifier.
37
- * TS pattern grammar: an exact string, or a single `*` wildcard (prefix +
38
- * suffix match). Needed because the matcher's output alone cannot tell an
39
- * explicit alias apart from the implicit baseUrl lookup (see below).
40
- */
40
+ * Whether an explicit `compilerOptions.paths` pattern matches the specifier.
41
+ * TS pattern grammar: an exact string, or a single `*` wildcard (prefix +
42
+ * suffix match). Needed because the matcher's output alone cannot tell an
43
+ * explicit alias apart from the implicit baseUrl lookup (see below).
44
+ */
41
45
  function specifierMatchesPathsPattern(tsconfig, specifier) {
42
- const paths = tsconfig.config.compilerOptions?.paths;
43
- if (!paths)
44
- return false;
45
- return Object.keys(paths).some((pattern) => {
46
- const star = pattern.indexOf("*");
47
- if (star === -1)
48
- return pattern === specifier;
49
- const prefix = pattern.slice(0, star);
50
- const suffix = pattern.slice(star + 1);
51
- return (specifier.length >= prefix.length + suffix.length &&
52
- specifier.startsWith(prefix) &&
53
- specifier.endsWith(suffix));
54
- });
46
+ const paths = tsconfig.config.compilerOptions?.paths;
47
+ if (!paths) return false;
48
+ return Object.keys(paths).some((pattern) => {
49
+ const star = pattern.indexOf("*");
50
+ if (star === -1) return pattern === specifier;
51
+ const prefix = pattern.slice(0, star);
52
+ const suffix = pattern.slice(star + 1);
53
+ return specifier.length >= prefix.length + suffix.length && specifier.startsWith(prefix) && specifier.endsWith(suffix);
54
+ });
55
55
  }
56
56
  const NO_CANDIDATES = {
57
- candidates: [],
58
- authoritative: false,
57
+ candidates: [],
58
+ authoritative: false
59
59
  };
60
60
  const UNUSABLE_CONFIG = {
61
- candidates: [],
62
- authoritative: true,
61
+ candidates: [],
62
+ authoritative: true
63
63
  };
64
64
  /**
65
- * Candidate files for a specifier using the tsconfig path mappings visible
66
- * from a directory. Used by the static dependency crawler so alias imports
67
- * resolve the same way discovery resolves them.
68
- *
69
- * `authoritative` tells the caller how to treat a miss (no candidate exists
70
- * on disk):
71
- * - true — the tsconfig owns this specifier: an explicit `paths` pattern
72
- * matched, or the paths config exists but cannot be interpreted
73
- * (createPathsMatcher rejects what tsc rejects). Resolution must be
74
- * treated as failed rather than falling back to node — which specifiers a
75
- * broken config would have mapped is unknowable.
76
- * - false — candidates came only from the implicit baseUrl lookup, which
77
- * proposes `<baseDir>/<specifier>` for EVERY bare specifier (npm packages
78
- * and `#` subpath imports included) and expects the caller to fall back
79
- * to node resolution when the candidate does not exist.
80
- */
81
- export function resolveTsconfigPathCandidates(fromDir, specifier) {
82
- const tsconfig = getTsconfig(fromDir, "tsconfig.json", tsconfigSearchCache);
83
- if (!tsconfig)
84
- return NO_CANDIDATES;
85
- let matcher = pathsMatcherCache.get(tsconfig.path);
86
- if (matcher === undefined) {
87
- try {
88
- matcher = createPathsMatcher(tsconfig);
89
- }
90
- catch {
91
- // Invalid-per-tsc paths config. A stray tsconfig anywhere in the
92
- // crawled tree must degrade the graph, not crash the build.
93
- matcher = "unusable";
94
- }
95
- pathsMatcherCache.set(tsconfig.path, matcher);
96
- }
97
- if (matcher === "unusable")
98
- return UNUSABLE_CONFIG;
99
- const candidates = matcher?.(specifier) ?? [];
100
- if (candidates.length === 0)
101
- return NO_CANDIDATES;
102
- return { candidates, authoritative: specifierMatchesPathsPattern(tsconfig, specifier) };
65
+ * Candidate files for a specifier using the tsconfig path mappings visible
66
+ * from a directory. Used by the static dependency crawler so alias imports
67
+ * resolve the same way discovery resolves them.
68
+ *
69
+ * `authoritative` tells the caller how to treat a miss (no candidate exists
70
+ * on disk):
71
+ * - true — the tsconfig owns this specifier: an explicit `paths` pattern
72
+ * matched, or the paths config exists but cannot be interpreted
73
+ * (createPathsMatcher rejects what tsc rejects). Resolution must be
74
+ * treated as failed rather than falling back to node — which specifiers a
75
+ * broken config would have mapped is unknowable.
76
+ * - false — candidates came only from the implicit baseUrl lookup, which
77
+ * proposes `<baseDir>/<specifier>` for EVERY bare specifier (npm packages
78
+ * and `#` subpath imports included) and expects the caller to fall back
79
+ * to node resolution when the candidate does not exist.
80
+ */
81
+ function resolveTsconfigPathCandidates(fromDir, specifier) {
82
+ const tsconfig = getTsconfig(fromDir, "tsconfig.json", tsconfigSearchCache);
83
+ if (!tsconfig) return NO_CANDIDATES;
84
+ let matcher = pathsMatcherCache.get(tsconfig.path);
85
+ if (matcher === void 0) {
86
+ try {
87
+ matcher = createPathsMatcher(tsconfig);
88
+ } catch {
89
+ matcher = "unusable";
90
+ }
91
+ pathsMatcherCache.set(tsconfig.path, matcher);
92
+ }
93
+ if (matcher === "unusable") return UNUSABLE_CONFIG;
94
+ const candidates = matcher?.(specifier) ?? [];
95
+ if (candidates.length === 0) return NO_CANDIDATES;
96
+ return {
97
+ candidates,
98
+ authoritative: specifierMatchesPathsPattern(tsconfig, specifier)
99
+ };
103
100
  }
104
101
  /**
105
- * Shared jiti instances, keyed by tsconfig identity (the alias config).
106
- * Sharing one instance with `moduleCache: true` across the whole build means
107
- * the module graph behind schema files (zod itself, shared helpers, ...) is
108
- * executed roughly once per build instead of once per transformed file.
109
- */
110
- const jitiInstances = new Map();
102
+ * Shared jiti instances, keyed by tsconfig identity (the alias config).
103
+ * Sharing one instance with `moduleCache: true` across the whole build means
104
+ * the module graph behind schema files (zod itself, shared helpers, ...) is
105
+ * executed roughly once per build instead of once per transformed file.
106
+ */
107
+ const jitiInstances = /* @__PURE__ */ new Map();
111
108
  /**
112
- * Bumped by invalidateModuleCache(). Bun/Deno use native import, whose module
113
- * cache cannot be evicted — instead the generation is appended as a query
114
- * suffix so files re-execute after an invalidation while unchanged builds
115
- * share a single execution.
116
- */
109
+ * Bumped by invalidateModuleCache(). Bun/Deno use native import, whose module
110
+ * cache cannot be evicted — instead the generation is appended as a query
111
+ * suffix so files re-execute after an invalidation while unchanged builds
112
+ * share a single execution.
113
+ */
117
114
  let cacheGeneration = 0;
118
115
  /** Serializes loads so concurrent transforms don't double-execute shared deps. */
119
116
  let loadQueue = Promise.resolve();
120
117
  /**
121
- * Env var set on `process.env` while a build-time module executes. A schema
122
- * file's import graph commonly includes an env-validation module that calls
123
- * `process.exit()` when required variables are missing; in CI builds those
124
- * secrets are intentionally absent. Cooperating modules can guard on this
125
- * marker to skip validation during discovery (mirrors t3-env's
126
- * `SKIP_ENV_VALIDATION`):
127
- *
128
- * if (!process.env.ZOD_COMPILER) {
129
- * const r = envSchema.safeParse(process.env);
130
- * if (!r.success) process.exit(1);
131
- * }
132
- */
118
+ * Env var set on `process.env` while a build-time module executes. A schema
119
+ * file's import graph commonly includes an env-validation module that calls
120
+ * `process.exit()` when required variables are missing; in CI builds those
121
+ * secrets are intentionally absent. Cooperating modules can guard on this
122
+ * marker to skip validation during discovery (mirrors t3-env's
123
+ * `SKIP_ENV_VALIDATION`):
124
+ *
125
+ * if (!process.env.ZOD_COMPILER) {
126
+ * const r = envSchema.safeParse(process.env);
127
+ * if (!r.success) process.exit(1);
128
+ * }
129
+ */
133
130
  const DISCOVERY_ENV_MARKER = "ZOD_COMPILER";
134
131
  /**
135
- * Thrown in place of a `process.exit()` call made while a build-time module is
136
- * executing (see {@link runGuarded}). Discovery already catches load failures
137
- * and skips the file (falling back to runtime Zod), so a non-cooperating
138
- * module's exit degrades gracefully instead of terminating the bundler.
139
- */
140
- export class ProcessExitDuringLoadError extends Error {
141
- /** The code passed to the intercepted `process.exit()`, if any. */
142
- exitCode;
143
- constructor(code) {
144
- super(`process.exit(${code ?? ""}) was called while zod-compiler executed a module ` +
145
- `for build-time schema discovery.`);
146
- this.name = "ProcessExitDuringLoadError";
147
- this.exitCode = code;
148
- }
149
- }
132
+ * Thrown in place of a `process.exit()` call made while a build-time module is
133
+ * executing (see {@link runGuarded}). Discovery already catches load failures
134
+ * and skips the file (falling back to runtime Zod), so a non-cooperating
135
+ * module's exit degrades gracefully instead of terminating the bundler.
136
+ */
137
+ var ProcessExitDuringLoadError = class extends Error {
138
+ /** The code passed to the intercepted `process.exit()`, if any. */
139
+ exitCode;
140
+ constructor(code) {
141
+ super(`process.exit(${code ?? ""}) was called while zod-compiler executed a module for build-time schema discovery.`);
142
+ this.name = "ProcessExitDuringLoadError";
143
+ this.exitCode = code;
144
+ }
145
+ };
150
146
  /**
151
- * Ref-counted guard installed around every build-time module execution. While
152
- * any load is in flight it (1) sets {@link DISCOVERY_ENV_MARKER} so cooperating
153
- * env modules skip their exit guard, and (2) replaces `process.exit` with a
154
- * throw so a non-cooperating module's exit surfaces as a catchable load failure
155
- * rather than killing the process. Both are restored once the last concurrent
156
- * load settles, so exits elsewhere in the build are untouched.
157
- *
158
- * Only synchronous exits during module evaluation are caught — an exit deferred
159
- * past the load window (a `setTimeout`, a later event) still exits.
160
- */
147
+ * Ref-counted guard installed around every build-time module execution. While
148
+ * any load is in flight it (1) sets {@link DISCOVERY_ENV_MARKER} so cooperating
149
+ * env modules skip their exit guard, and (2) replaces `process.exit` with a
150
+ * throw so a non-cooperating module's exit surfaces as a catchable load failure
151
+ * rather than killing the process. Both are restored once the last concurrent
152
+ * load settles, so exits elsewhere in the build are untouched.
153
+ *
154
+ * Only synchronous exits during module evaluation are caught — an exit deferred
155
+ * past the load window (a `setTimeout`, a later event) still exits.
156
+ */
161
157
  let guardDepth = 0;
162
158
  let savedExit;
163
159
  let savedMarker;
164
160
  let markerWasSet = false;
165
161
  function installGuard() {
166
- markerWasSet = DISCOVERY_ENV_MARKER in process.env;
167
- savedMarker = process.env[DISCOVERY_ENV_MARKER];
168
- process.env[DISCOVERY_ENV_MARKER] = "1";
169
- // Capture the real exit verbatim so restoreGuard puts back the exact same
170
- // reference (identity matters to callers that compare process.exit).
171
- // oxlint-disable-next-line typescript/unbound-method -- restoring, not calling
172
- savedExit = process.exit;
173
- process.exit = ((...args) => {
174
- throw new ProcessExitDuringLoadError(args[0] ?? undefined);
175
- });
162
+ markerWasSet = DISCOVERY_ENV_MARKER in process.env;
163
+ savedMarker = process.env[DISCOVERY_ENV_MARKER];
164
+ process.env[DISCOVERY_ENV_MARKER] = "1";
165
+ savedExit = process.exit;
166
+ process.exit = ((...args) => {
167
+ throw new ProcessExitDuringLoadError(args[0] ?? void 0);
168
+ });
176
169
  }
177
170
  function restoreGuard() {
178
- if (savedExit) {
179
- process.exit = savedExit;
180
- savedExit = undefined;
181
- }
182
- if (markerWasSet) {
183
- process.env[DISCOVERY_ENV_MARKER] = savedMarker;
184
- }
185
- else {
186
- delete process.env[DISCOVERY_ENV_MARKER];
187
- }
171
+ if (savedExit) {
172
+ process.exit = savedExit;
173
+ savedExit = void 0;
174
+ }
175
+ if (markerWasSet) process.env[DISCOVERY_ENV_MARKER] = savedMarker;
176
+ else delete process.env[DISCOVERY_ENV_MARKER];
188
177
  }
189
178
  /**
190
- * Run a build-time module import with the discovery guard active. Nested and
191
- * concurrent loads share a single install via the ref count.
192
- */
179
+ * Run a build-time module import with the discovery guard active. Nested and
180
+ * concurrent loads share a single install via the ref count.
181
+ */
193
182
  async function runGuarded(run) {
194
- if (guardDepth++ === 0)
195
- installGuard();
196
- try {
197
- return await run();
198
- }
199
- finally {
200
- if (--guardDepth === 0)
201
- restoreGuard();
202
- }
183
+ if (guardDepth++ === 0) installGuard();
184
+ try {
185
+ return await run();
186
+ } finally {
187
+ if (--guardDepth === 0) restoreGuard();
188
+ }
203
189
  }
204
190
  const NODE_MODULES_SEGMENT = `${path.sep}node_modules${path.sep}`;
205
191
  /**
206
- * Drop every first-party (non-node_modules) module from the shared loader
207
- * caches. Called on watch/HMR file changes so the next discovery re-executes
208
- * changed schema graphs.
209
- *
210
- * Eviction is deliberately first-party-wide rather than per-module: jiti's
211
- * module cache only records importer→dep edges on cache misses, so a precise
212
- * reverse-dependency walk would miss importers of already-cached modules and
213
- * serve stale schemas. Evicting all project files (cheap to re-execute) while
214
- * keeping node_modules (the expensive bulk — zod itself) warm is both correct
215
- * and fast.
216
- */
217
- export function invalidateModuleCache() {
218
- cacheGeneration++;
219
- for (const jiti of jitiInstances.values()) {
220
- for (const key of Object.keys(jiti.cache)) {
221
- if (!key.includes(NODE_MODULES_SEGMENT)) {
222
- delete jiti.cache[key];
223
- }
224
- }
225
- }
192
+ * Drop every first-party (non-node_modules) module from the shared loader
193
+ * caches. Called on watch/HMR file changes so the next discovery re-executes
194
+ * changed schema graphs.
195
+ *
196
+ * Eviction is deliberately first-party-wide rather than per-module: jiti's
197
+ * module cache only records importer→dep edges on cache misses, so a precise
198
+ * reverse-dependency walk would miss importers of already-cached modules and
199
+ * serve stale schemas. Evicting all project files (cheap to re-execute) while
200
+ * keeping node_modules (the expensive bulk — zod itself) warm is both correct
201
+ * and fast.
202
+ */
203
+ function invalidateModuleCache() {
204
+ cacheGeneration++;
205
+ for (const jiti of jitiInstances.values()) for (const key of Object.keys(jiti.cache)) if (!key.includes(NODE_MODULES_SEGMENT)) delete jiti.cache[key];
226
206
  }
227
207
  /**
228
- * Absolute paths of every first-party (non-node_modules) module currently
229
- * executed by the shared loader. Used by the unplugin disk cache to record
230
- * which source files a schema file's discovery depended on — a superset is
231
- * safe (it can only over-invalidate, never serve stale results).
232
- *
233
- * Returns null when no jiti instance exists (Bun/Deno native import — no
234
- * evictable cache, so dependency tracking is unavailable).
235
- */
236
- export function getFirstPartyModulePaths() {
237
- if (jitiInstances.size === 0)
238
- return null;
239
- const paths = [];
240
- for (const jiti of jitiInstances.values()) {
241
- for (const key of Object.keys(jiti.cache)) {
242
- if (!key.includes(NODE_MODULES_SEGMENT)) {
243
- paths.push(key);
244
- }
245
- }
246
- }
247
- return paths;
208
+ * Absolute paths of every first-party (non-node_modules) module currently
209
+ * executed by the shared loader. Used by the unplugin disk cache to record
210
+ * which source files a schema file's discovery depended on — a superset is
211
+ * safe (it can only over-invalidate, never serve stale results).
212
+ *
213
+ * Returns null when no jiti instance exists (Bun/Deno native import — no
214
+ * evictable cache, so dependency tracking is unavailable).
215
+ */
216
+ function getFirstPartyModulePaths() {
217
+ if (jitiInstances.size === 0) return null;
218
+ const paths = [];
219
+ for (const jiti of jitiInstances.values()) for (const key of Object.keys(jiti.cache)) if (!key.includes(NODE_MODULES_SEGMENT)) paths.push(key);
220
+ return paths;
248
221
  }
249
222
  async function getJiti(absPath) {
250
- const { key, tsconfigPath } = resolveLoaderConfig(path.dirname(absPath));
251
- const existing = jitiInstances.get(key);
252
- if (existing)
253
- return existing;
254
- const { createJiti } = await import("jiti");
255
- const created = createJiti(pathToFileURL(absPath).href, {
256
- moduleCache: true,
257
- ...(tsconfigPath ? { tsconfigPaths: tsconfigPath } : {}),
258
- jsx: true,
259
- });
260
- jitiInstances.set(key, created);
261
- return created;
223
+ const { key, tsconfigPath } = resolveLoaderConfig(path.dirname(absPath));
224
+ const existing = jitiInstances.get(key);
225
+ if (existing) return existing;
226
+ const { createJiti } = await import("jiti");
227
+ const created = createJiti(pathToFileURL(absPath).href, {
228
+ moduleCache: true,
229
+ ...tsconfigPath ? { tsconfigPaths: tsconfigPath } : {},
230
+ jsx: true
231
+ });
232
+ jitiInstances.set(key, created);
233
+ return created;
262
234
  }
263
235
  /**
264
- * Dynamically import a source file (.ts or .js).
265
- * - Bun/Deno: native TypeScript support, direct import
266
- * - Node.js: uses a shared jiti instance for reliable TypeScript transpilation
267
- * (handles extensionless imports, enums, path aliases, and all TS syntax)
268
- *
269
- * Module executions are cached across calls; use invalidateModuleCache()
270
- * when source files change (watch/HMR).
271
- */
272
- export async function loadSourceFile(filePath) {
273
- const absPath = path.resolve(filePath);
274
- const runtime = detectRuntime();
275
- // Bun/Deno execute TypeScript natively. .mjs files bypass jiti even on
276
- // Node (jiti hands them to native import, outside its evictable cache),
277
- // so the generation suffix is the only way to refresh them.
278
- if (runtime === "bun" || runtime === "deno" || absPath.endsWith(".mjs")) {
279
- const suffix = cacheGeneration > 0 ? `?zcGen=${cacheGeneration}` : "";
280
- return (await runGuarded(() => import(pathToFileURL(absPath).href + suffix)));
281
- }
282
- const jiti = await getJiti(absPath);
283
- const load = loadQueue.then(() => runGuarded(() => jiti.import(absPath)));
284
- loadQueue = load.then(() => undefined, () => undefined);
285
- return (await load);
236
+ * Dynamically import a source file (.ts or .js).
237
+ * - Bun/Deno: native TypeScript support, direct import
238
+ * - Node.js: uses a shared jiti instance for reliable TypeScript transpilation
239
+ * (handles extensionless imports, enums, path aliases, and all TS syntax)
240
+ *
241
+ * Module executions are cached across calls; use invalidateModuleCache()
242
+ * when source files change (watch/HMR).
243
+ */
244
+ async function loadSourceFile(filePath) {
245
+ const absPath = path.resolve(filePath);
246
+ const runtime = detectRuntime();
247
+ if (runtime === "bun" || runtime === "deno" || absPath.endsWith(".mjs")) {
248
+ const suffix = cacheGeneration > 0 ? `?zcGen=${cacheGeneration}` : "";
249
+ return await runGuarded(() => import(pathToFileURL(absPath).href + suffix));
250
+ }
251
+ const jiti = await getJiti(absPath);
252
+ const load = loadQueue.then(() => runGuarded(() => jiti.import(absPath)));
253
+ loadQueue = load.then(() => void 0, () => void 0);
254
+ return await load;
286
255
  }
287
256
  /**
288
- * Import a module by SPECIFIER as `fromFile` would: relative specifiers
289
- * resolve against the importing file's directory; bare specifiers (`zod`)
290
- * resolve through node_modules / the shared jiti instance, so the value is
291
- * the same module instance discovery executions see. Used by the hoisted-
292
- * schema compile step to evaluate hoisted expressions at build time.
293
- */
294
- export async function loadModule(specifier, fromFile) {
295
- if (specifier.startsWith("./") || specifier.startsWith("../")) {
296
- return loadSourceFile(path.resolve(path.dirname(path.resolve(fromFile)), specifier));
297
- }
298
- const absPath = path.resolve(fromFile);
299
- const runtime = detectRuntime();
300
- if (runtime === "bun" || runtime === "deno") {
301
- return (await runGuarded(() => import(specifier)));
302
- }
303
- const jiti = await getJiti(absPath);
304
- const load = loadQueue.then(() => runGuarded(() => jiti.import(specifier)));
305
- loadQueue = load.then(() => undefined, () => undefined);
306
- return (await load);
257
+ * Import a module by SPECIFIER as `fromFile` would: relative specifiers
258
+ * resolve against the importing file's directory; bare specifiers (`zod`)
259
+ * resolve through node_modules / the shared jiti instance, so the value is
260
+ * the same module instance discovery executions see. Used by the hoisted-
261
+ * schema compile step to evaluate hoisted expressions at build time.
262
+ */
263
+ async function loadModule(specifier, fromFile) {
264
+ if (specifier.startsWith("./") || specifier.startsWith("../")) return loadSourceFile(path.resolve(path.dirname(path.resolve(fromFile)), specifier));
265
+ const absPath = path.resolve(fromFile);
266
+ const runtime = detectRuntime();
267
+ if (runtime === "bun" || runtime === "deno") return await runGuarded(() => import(specifier));
268
+ const jiti = await getJiti(absPath);
269
+ const load = loadQueue.then(() => runGuarded(() => jiti.import(specifier)));
270
+ loadQueue = load.then(() => void 0, () => void 0);
271
+ return await load;
307
272
  }
273
+ //#endregion
274
+ export { ProcessExitDuringLoadError, getFirstPartyModulePaths, invalidateModuleCache, loadModule, loadSourceFile, resolveTsconfigPathCandidates };
275
+
308
276
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","names":[],"sources":["../src/loader.ts"],"sourcesContent":["import path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport {\n createPathsMatcher,\n type Cache,\n getTsconfig,\n type PathsMatcher,\n type TsConfigResult,\n} from \"get-tsconfig\";\nimport type { Jiti } from \"jiti\";\n\ntype Runtime = \"node\" | \"bun\" | \"deno\";\n\nfunction detectRuntime(): Runtime {\n if (\"Bun\" in globalThis) return \"bun\";\n if (\"Deno\" in globalThis) return \"deno\";\n return \"node\";\n}\n\n/** Cache: search dir → tsconfig lookup result (getTsconfig walks the fs otherwise). */\nconst tsconfigSearchCache: Cache = new Map();\n\n/**\n * Cache: tsconfig.json absolute path → paths matcher. `null`: config has no\n * baseUrl/paths. `\"unusable\"`: createPathsMatcher rejected the config (the\n * same validations tsc enforces — multi-star patterns, TS5090 non-relative\n * substitutions without baseUrl).\n */\nconst pathsMatcherCache = new Map<string, PathsMatcher | null | \"unusable\">();\n\ninterface LoaderConfig {\n /** Identity key for the shared jiti instance (tsconfig path, or \"\" if none). */\n key: string;\n tsconfigPath: string | undefined;\n}\n\n/**\n * Resolve the tsconfig.json visible from a source directory.\n *\n * jiti has first-class TypeScript paths support, so runtime discovery uses the\n * tsconfig path directly instead of translating aliases into jiti's simpler\n * prefix alias format. The static dependency crawler uses get-tsconfig's own\n * matcher for the same reason: project aliases are arbitrary TypeScript\n * `paths` patterns, not a fixed convention like \"~\" or \"@\".\n */\nfunction resolveLoaderConfig(fromDir: string): LoaderConfig {\n const tsconfig = getTsconfig(fromDir, \"tsconfig.json\", tsconfigSearchCache);\n if (!tsconfig) return { key: \"\", tsconfigPath: undefined };\n\n return { key: tsconfig.path, tsconfigPath: tsconfig.path };\n}\n\n/**\n * Whether an explicit `compilerOptions.paths` pattern matches the specifier.\n * TS pattern grammar: an exact string, or a single `*` wildcard (prefix +\n * suffix match). Needed because the matcher's output alone cannot tell an\n * explicit alias apart from the implicit baseUrl lookup (see below).\n */\nfunction specifierMatchesPathsPattern(tsconfig: TsConfigResult, specifier: string): boolean {\n const paths = tsconfig.config.compilerOptions?.paths;\n if (!paths) return false;\n return Object.keys(paths).some((pattern) => {\n const star = pattern.indexOf(\"*\");\n if (star === -1) return pattern === specifier;\n const prefix = pattern.slice(0, star);\n const suffix = pattern.slice(star + 1);\n return (\n specifier.length >= prefix.length + suffix.length &&\n specifier.startsWith(prefix) &&\n specifier.endsWith(suffix)\n );\n });\n}\n\nconst NO_CANDIDATES: { candidates: string[]; authoritative: boolean } = {\n candidates: [],\n authoritative: false,\n};\n\nconst UNUSABLE_CONFIG: { candidates: string[]; authoritative: boolean } = {\n candidates: [],\n authoritative: true,\n};\n\n/**\n * Candidate files for a specifier using the tsconfig path mappings visible\n * from a directory. Used by the static dependency crawler so alias imports\n * resolve the same way discovery resolves them.\n *\n * `authoritative` tells the caller how to treat a miss (no candidate exists\n * on disk):\n * - true — the tsconfig owns this specifier: an explicit `paths` pattern\n * matched, or the paths config exists but cannot be interpreted\n * (createPathsMatcher rejects what tsc rejects). Resolution must be\n * treated as failed rather than falling back to node — which specifiers a\n * broken config would have mapped is unknowable.\n * - false — candidates came only from the implicit baseUrl lookup, which\n * proposes `<baseDir>/<specifier>` for EVERY bare specifier (npm packages\n * and `#` subpath imports included) and expects the caller to fall back\n * to node resolution when the candidate does not exist.\n */\nexport function resolveTsconfigPathCandidates(\n fromDir: string,\n specifier: string,\n): { candidates: string[]; authoritative: boolean } {\n const tsconfig = getTsconfig(fromDir, \"tsconfig.json\", tsconfigSearchCache);\n if (!tsconfig) return NO_CANDIDATES;\n\n let matcher = pathsMatcherCache.get(tsconfig.path);\n if (matcher === undefined) {\n try {\n matcher = createPathsMatcher(tsconfig);\n } catch {\n // Invalid-per-tsc paths config. A stray tsconfig anywhere in the\n // crawled tree must degrade the graph, not crash the build.\n matcher = \"unusable\";\n }\n pathsMatcherCache.set(tsconfig.path, matcher);\n }\n\n if (matcher === \"unusable\") return UNUSABLE_CONFIG;\n const candidates = matcher?.(specifier) ?? [];\n if (candidates.length === 0) return NO_CANDIDATES;\n return { candidates, authoritative: specifierMatchesPathsPattern(tsconfig, specifier) };\n}\n\n/**\n * Shared jiti instances, keyed by tsconfig identity (the alias config).\n * Sharing one instance with `moduleCache: true` across the whole build means\n * the module graph behind schema files (zod itself, shared helpers, ...) is\n * executed roughly once per build instead of once per transformed file.\n */\nconst jitiInstances = new Map<string, Jiti>();\n\n/**\n * Bumped by invalidateModuleCache(). Bun/Deno use native import, whose module\n * cache cannot be evicted — instead the generation is appended as a query\n * suffix so files re-execute after an invalidation while unchanged builds\n * share a single execution.\n */\nlet cacheGeneration = 0;\n\n/** Serializes loads so concurrent transforms don't double-execute shared deps. */\nlet loadQueue: Promise<unknown> = Promise.resolve();\n\n/**\n * Env var set on `process.env` while a build-time module executes. A schema\n * file's import graph commonly includes an env-validation module that calls\n * `process.exit()` when required variables are missing; in CI builds those\n * secrets are intentionally absent. Cooperating modules can guard on this\n * marker to skip validation during discovery (mirrors t3-env's\n * `SKIP_ENV_VALIDATION`):\n *\n * if (!process.env.ZOD_COMPILER) {\n * const r = envSchema.safeParse(process.env);\n * if (!r.success) process.exit(1);\n * }\n */\nconst DISCOVERY_ENV_MARKER = \"ZOD_COMPILER\";\n\n/**\n * Thrown in place of a `process.exit()` call made while a build-time module is\n * executing (see {@link runGuarded}). Discovery already catches load failures\n * and skips the file (falling back to runtime Zod), so a non-cooperating\n * module's exit degrades gracefully instead of terminating the bundler.\n */\nexport class ProcessExitDuringLoadError extends Error {\n /** The code passed to the intercepted `process.exit()`, if any. */\n readonly exitCode: number | string | undefined;\n\n constructor(code?: number | string) {\n super(\n `process.exit(${code ?? \"\"}) was called while zod-compiler executed a module ` +\n `for build-time schema discovery.`,\n );\n this.name = \"ProcessExitDuringLoadError\";\n this.exitCode = code;\n }\n}\n\n/**\n * Ref-counted guard installed around every build-time module execution. While\n * any load is in flight it (1) sets {@link DISCOVERY_ENV_MARKER} so cooperating\n * env modules skip their exit guard, and (2) replaces `process.exit` with a\n * throw so a non-cooperating module's exit surfaces as a catchable load failure\n * rather than killing the process. Both are restored once the last concurrent\n * load settles, so exits elsewhere in the build are untouched.\n *\n * Only synchronous exits during module evaluation are caught — an exit deferred\n * past the load window (a `setTimeout`, a later event) still exits.\n */\nlet guardDepth = 0;\nlet savedExit: typeof process.exit | undefined;\nlet savedMarker: string | undefined;\nlet markerWasSet = false;\n\nfunction installGuard(): void {\n markerWasSet = DISCOVERY_ENV_MARKER in process.env;\n savedMarker = process.env[DISCOVERY_ENV_MARKER];\n process.env[DISCOVERY_ENV_MARKER] = \"1\";\n // Capture the real exit verbatim so restoreGuard puts back the exact same\n // reference (identity matters to callers that compare process.exit).\n // oxlint-disable-next-line typescript/unbound-method -- restoring, not calling\n savedExit = process.exit;\n process.exit = ((...args: Parameters<typeof process.exit>): never => {\n throw new ProcessExitDuringLoadError(args[0] ?? undefined);\n }) as typeof process.exit;\n}\n\nfunction restoreGuard(): void {\n if (savedExit) {\n process.exit = savedExit;\n savedExit = undefined;\n }\n if (markerWasSet) {\n process.env[DISCOVERY_ENV_MARKER] = savedMarker as string;\n } else {\n delete process.env[DISCOVERY_ENV_MARKER];\n }\n}\n\n/**\n * Run a build-time module import with the discovery guard active. Nested and\n * concurrent loads share a single install via the ref count.\n */\nasync function runGuarded<T>(run: () => Promise<T>): Promise<T> {\n if (guardDepth++ === 0) installGuard();\n try {\n return await run();\n } finally {\n if (--guardDepth === 0) restoreGuard();\n }\n}\n\nconst NODE_MODULES_SEGMENT = `${path.sep}node_modules${path.sep}`;\n\n/**\n * Drop every first-party (non-node_modules) module from the shared loader\n * caches. Called on watch/HMR file changes so the next discovery re-executes\n * changed schema graphs.\n *\n * Eviction is deliberately first-party-wide rather than per-module: jiti's\n * module cache only records importer→dep edges on cache misses, so a precise\n * reverse-dependency walk would miss importers of already-cached modules and\n * serve stale schemas. Evicting all project files (cheap to re-execute) while\n * keeping node_modules (the expensive bulk — zod itself) warm is both correct\n * and fast.\n */\nexport function invalidateModuleCache(): void {\n cacheGeneration++;\n for (const jiti of jitiInstances.values()) {\n for (const key of Object.keys(jiti.cache)) {\n if (!key.includes(NODE_MODULES_SEGMENT)) {\n delete jiti.cache[key];\n }\n }\n }\n}\n\n/**\n * Absolute paths of every first-party (non-node_modules) module currently\n * executed by the shared loader. Used by the unplugin disk cache to record\n * which source files a schema file's discovery depended on — a superset is\n * safe (it can only over-invalidate, never serve stale results).\n *\n * Returns null when no jiti instance exists (Bun/Deno native import — no\n * evictable cache, so dependency tracking is unavailable).\n */\nexport function getFirstPartyModulePaths(): string[] | null {\n if (jitiInstances.size === 0) return null;\n const paths: string[] = [];\n for (const jiti of jitiInstances.values()) {\n for (const key of Object.keys(jiti.cache)) {\n if (!key.includes(NODE_MODULES_SEGMENT)) {\n paths.push(key);\n }\n }\n }\n return paths;\n}\n\nasync function getJiti(absPath: string): Promise<Jiti> {\n const { key, tsconfigPath } = resolveLoaderConfig(path.dirname(absPath));\n const existing = jitiInstances.get(key);\n if (existing) return existing;\n\n const { createJiti } = await import(\"jiti\");\n const created = createJiti(pathToFileURL(absPath).href, {\n moduleCache: true,\n ...(tsconfigPath ? { tsconfigPaths: tsconfigPath } : {}),\n jsx: true,\n });\n jitiInstances.set(key, created);\n return created;\n}\n\n/**\n * Dynamically import a source file (.ts or .js).\n * - Bun/Deno: native TypeScript support, direct import\n * - Node.js: uses a shared jiti instance for reliable TypeScript transpilation\n * (handles extensionless imports, enums, path aliases, and all TS syntax)\n *\n * Module executions are cached across calls; use invalidateModuleCache()\n * when source files change (watch/HMR).\n */\nexport async function loadSourceFile(filePath: string): Promise<Record<string, unknown>> {\n const absPath = path.resolve(filePath);\n const runtime = detectRuntime();\n\n // Bun/Deno execute TypeScript natively. .mjs files bypass jiti even on\n // Node (jiti hands them to native import, outside its evictable cache),\n // so the generation suffix is the only way to refresh them.\n if (runtime === \"bun\" || runtime === \"deno\" || absPath.endsWith(\".mjs\")) {\n const suffix = cacheGeneration > 0 ? `?zcGen=${cacheGeneration}` : \"\";\n return (await runGuarded(() => import(pathToFileURL(absPath).href + suffix))) as Record<\n string,\n unknown\n >;\n }\n\n const jiti = await getJiti(absPath);\n const load = loadQueue.then(() => runGuarded(() => jiti.import(absPath)));\n loadQueue = load.then(\n () => undefined,\n () => undefined,\n );\n return (await load) as Record<string, unknown>;\n}\n\n/**\n * Import a module by SPECIFIER as `fromFile` would: relative specifiers\n * resolve against the importing file's directory; bare specifiers (`zod`)\n * resolve through node_modules / the shared jiti instance, so the value is\n * the same module instance discovery executions see. Used by the hoisted-\n * schema compile step to evaluate hoisted expressions at build time.\n */\nexport async function loadModule(\n specifier: string,\n fromFile: string,\n): Promise<Record<string, unknown>> {\n if (specifier.startsWith(\"./\") || specifier.startsWith(\"../\")) {\n return loadSourceFile(path.resolve(path.dirname(path.resolve(fromFile)), specifier));\n }\n\n const absPath = path.resolve(fromFile);\n const runtime = detectRuntime();\n if (runtime === \"bun\" || runtime === \"deno\") {\n return (await runGuarded(() => import(specifier))) as Record<string, unknown>;\n }\n\n const jiti = await getJiti(absPath);\n const load = loadQueue.then(() => runGuarded(() => jiti.import(specifier)));\n loadQueue = load.then(\n () => undefined,\n () => undefined,\n );\n return (await load) as Record<string, unknown>;\n}\n"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ //#region src/static-filter.d.ts
1
2
  /**
2
3
  * Check whether a file's exports could include Zod schemas (or compile()
3
4
  * results) without executing the file. `filename` selects the TS/JSX
4
5
  * transforms; the file does not need to exist on disk.
5
6
  */
6
- export declare function mayExportSchemas(code: string, filename: string): Promise<boolean>;
7
+ declare function mayExportSchemas(code: string, filename: string): Promise<boolean>;
8
+ //#endregion
9
+ export { mayExportSchemas };
7
10
  //# sourceMappingURL=static-filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-filter.d.ts","sourceRoot":"","sources":["../src/static-filter.ts"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA+BvF"}
1
+ {"version":3,"file":"static-filter.d.ts","names":[],"sources":["../src/static-filter.ts"],"mappings":";;;;;;iBAgDsB,iBAAiB,cAAc,mBAAmB"}