zod 4.0.0-beta.20250505T195954 → 4.0.0

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 (618) hide show
  1. package/README.md +208 -0
  2. package/index.cjs +33 -0
  3. package/index.d.cts +4 -0
  4. package/index.d.ts +4 -0
  5. package/index.js +4 -0
  6. package/locales/index.cjs +17 -0
  7. package/locales/index.d.cts +1 -0
  8. package/locales/index.d.ts +1 -0
  9. package/locales/index.js +1 -0
  10. package/mini/index.cjs +17 -0
  11. package/mini/index.d.cts +1 -0
  12. package/mini/index.d.ts +1 -0
  13. package/mini/index.js +1 -0
  14. package/package.json +87 -40
  15. package/src/index.ts +2 -3
  16. package/src/locales/index.ts +1 -0
  17. package/src/mini/index.ts +1 -0
  18. package/src/v3/ZodError.ts +330 -0
  19. package/src/v3/benchmarks/datetime.ts +58 -0
  20. package/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  21. package/src/v3/benchmarks/index.ts +59 -0
  22. package/src/v3/benchmarks/ipv4.ts +57 -0
  23. package/src/v3/benchmarks/object.ts +69 -0
  24. package/src/v3/benchmarks/primitives.ts +162 -0
  25. package/src/v3/benchmarks/realworld.ts +63 -0
  26. package/src/v3/benchmarks/string.ts +55 -0
  27. package/src/v3/benchmarks/union.ts +80 -0
  28. package/src/v3/errors.ts +13 -0
  29. package/src/v3/external.ts +6 -0
  30. package/src/v3/helpers/enumUtil.ts +17 -0
  31. package/src/v3/helpers/errorUtil.ts +8 -0
  32. package/src/v3/helpers/parseUtil.ts +176 -0
  33. package/src/v3/helpers/partialUtil.ts +34 -0
  34. package/src/v3/helpers/typeAliases.ts +2 -0
  35. package/src/v3/helpers/util.ts +224 -0
  36. package/src/v3/index.ts +4 -0
  37. package/src/v3/locales/en.ts +124 -0
  38. package/src/v3/standard-schema.ts +113 -0
  39. package/src/v3/tests/Mocker.ts +54 -0
  40. package/src/v3/tests/all-errors.test.ts +157 -0
  41. package/src/v3/tests/anyunknown.test.ts +28 -0
  42. package/src/v3/tests/array.test.ts +71 -0
  43. package/src/v3/tests/async-parsing.test.ts +388 -0
  44. package/src/v3/tests/async-refinements.test.ts +46 -0
  45. package/src/v3/tests/base.test.ts +29 -0
  46. package/src/v3/tests/bigint.test.ts +55 -0
  47. package/src/v3/tests/branded.test.ts +53 -0
  48. package/src/v3/tests/catch.test.ts +220 -0
  49. package/src/v3/tests/coerce.test.ts +133 -0
  50. package/src/v3/tests/complex.test.ts +56 -0
  51. package/src/v3/tests/custom.test.ts +31 -0
  52. package/src/v3/tests/date.test.ts +32 -0
  53. package/src/v3/tests/deepmasking.test.ts +186 -0
  54. package/src/v3/tests/default.test.ts +112 -0
  55. package/src/v3/tests/description.test.ts +33 -0
  56. package/src/v3/tests/discriminated-unions.test.ts +315 -0
  57. package/src/v3/tests/enum.test.ts +80 -0
  58. package/src/v3/tests/error.test.ts +551 -0
  59. package/src/v3/tests/firstparty.test.ts +87 -0
  60. package/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  61. package/src/v3/tests/function.test.ts +257 -0
  62. package/src/v3/tests/generics.test.ts +48 -0
  63. package/src/v3/tests/instanceof.test.ts +37 -0
  64. package/src/v3/tests/intersection.test.ts +110 -0
  65. package/src/v3/tests/language-server.source.ts +76 -0
  66. package/src/v3/tests/language-server.test.ts +207 -0
  67. package/src/v3/tests/literal.test.ts +36 -0
  68. package/src/v3/tests/map.test.ts +110 -0
  69. package/src/v3/tests/masking.test.ts +4 -0
  70. package/src/v3/tests/mocker.test.ts +19 -0
  71. package/src/v3/tests/nan.test.ts +21 -0
  72. package/src/v3/tests/nativeEnum.test.ts +87 -0
  73. package/src/v3/tests/nullable.test.ts +42 -0
  74. package/src/v3/tests/number.test.ts +176 -0
  75. package/src/v3/tests/object-augmentation.test.ts +29 -0
  76. package/src/v3/tests/object-in-es5-env.test.ts +29 -0
  77. package/src/v3/tests/object.test.ts +434 -0
  78. package/src/v3/tests/optional.test.ts +42 -0
  79. package/src/v3/tests/parseUtil.test.ts +23 -0
  80. package/src/v3/tests/parser.test.ts +41 -0
  81. package/src/v3/tests/partials.test.ts +243 -0
  82. package/src/v3/tests/pickomit.test.ts +111 -0
  83. package/src/v3/tests/pipeline.test.ts +29 -0
  84. package/src/v3/tests/preprocess.test.ts +186 -0
  85. package/src/v3/tests/primitive.test.ts +440 -0
  86. package/src/v3/tests/promise.test.ts +90 -0
  87. package/src/v3/tests/readonly.test.ts +194 -0
  88. package/src/v3/tests/record.test.ts +171 -0
  89. package/src/v3/tests/recursive.test.ts +197 -0
  90. package/src/v3/tests/refine.test.ts +313 -0
  91. package/src/v3/tests/safeparse.test.ts +27 -0
  92. package/src/v3/tests/set.test.ts +142 -0
  93. package/src/v3/tests/standard-schema.test.ts +83 -0
  94. package/src/v3/tests/string.test.ts +916 -0
  95. package/src/v3/tests/transformer.test.ts +233 -0
  96. package/src/v3/tests/tuple.test.ts +90 -0
  97. package/src/v3/tests/unions.test.ts +57 -0
  98. package/src/v3/tests/validations.test.ts +133 -0
  99. package/src/v3/tests/void.test.ts +15 -0
  100. package/src/v3/types.ts +5136 -0
  101. package/src/{checks.ts → v4/classic/checks.ts} +1 -1
  102. package/src/v4/classic/coerce.ts +27 -0
  103. package/src/{compat.ts → v4/classic/compat.ts} +3 -13
  104. package/src/v4/classic/errors.ts +75 -0
  105. package/src/v4/classic/external.ts +50 -0
  106. package/src/v4/classic/index.ts +5 -0
  107. package/src/{iso.ts → v4/classic/iso.ts} +1 -1
  108. package/src/{parse.ts → v4/classic/parse.ts} +13 -12
  109. package/src/{schemas.ts → v4/classic/schemas.ts} +430 -417
  110. package/src/v4/classic/tests/anyunknown.test.ts +26 -0
  111. package/src/v4/classic/tests/array.test.ts +264 -0
  112. package/src/v4/classic/tests/assignability.test.ts +210 -0
  113. package/src/v4/classic/tests/async-parsing.test.ts +381 -0
  114. package/src/v4/classic/tests/async-refinements.test.ts +68 -0
  115. package/src/v4/classic/tests/base.test.ts +7 -0
  116. package/src/v4/classic/tests/bigint.test.ts +54 -0
  117. package/src/v4/classic/tests/brand.test.ts +63 -0
  118. package/src/v4/classic/tests/catch.test.ts +252 -0
  119. package/src/v4/classic/tests/coalesce.test.ts +20 -0
  120. package/src/v4/classic/tests/coerce.test.ts +160 -0
  121. package/src/v4/classic/tests/continuability.test.ts +352 -0
  122. package/src/v4/classic/tests/custom.test.ts +40 -0
  123. package/src/v4/classic/tests/date.test.ts +31 -0
  124. package/src/v4/classic/tests/datetime.test.ts +296 -0
  125. package/src/v4/classic/tests/default.test.ts +313 -0
  126. package/src/v4/classic/tests/description.test.ts +32 -0
  127. package/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
  128. package/src/v4/classic/tests/enum.test.ts +285 -0
  129. package/src/v4/classic/tests/error-utils.test.ts +552 -0
  130. package/src/v4/classic/tests/error.test.ts +711 -0
  131. package/src/v4/classic/tests/file.test.ts +91 -0
  132. package/src/v4/classic/tests/firstparty.test.ts +175 -0
  133. package/src/v4/classic/tests/function.test.ts +268 -0
  134. package/src/v4/classic/tests/generics.test.ts +72 -0
  135. package/src/v4/classic/tests/index.test.ts +829 -0
  136. package/src/v4/classic/tests/instanceof.test.ts +34 -0
  137. package/src/v4/classic/tests/intersection.test.ts +171 -0
  138. package/src/v4/classic/tests/json.test.ts +108 -0
  139. package/src/v4/classic/tests/lazy.test.ts +227 -0
  140. package/src/v4/classic/tests/literal.test.ts +92 -0
  141. package/src/v4/classic/tests/map.test.ts +196 -0
  142. package/src/v4/classic/tests/nan.test.ts +21 -0
  143. package/src/v4/classic/tests/nested-refine.test.ts +168 -0
  144. package/src/v4/classic/tests/nonoptional.test.ts +86 -0
  145. package/src/v4/classic/tests/nullable.test.ts +22 -0
  146. package/src/v4/classic/tests/number.test.ts +247 -0
  147. package/src/v4/classic/tests/object.test.ts +563 -0
  148. package/src/v4/classic/tests/optional.test.ts +123 -0
  149. package/src/v4/classic/tests/partial.test.ts +147 -0
  150. package/src/v4/classic/tests/pickomit.test.ts +127 -0
  151. package/src/v4/classic/tests/pipe.test.ts +81 -0
  152. package/src/v4/classic/tests/prefault.test.ts +37 -0
  153. package/src/v4/classic/tests/preprocess.test.ts +298 -0
  154. package/src/v4/classic/tests/primitive.test.ts +175 -0
  155. package/src/v4/classic/tests/promise.test.ts +81 -0
  156. package/src/v4/classic/tests/prototypes.test.ts +23 -0
  157. package/src/v4/classic/tests/readonly.test.ts +252 -0
  158. package/src/v4/classic/tests/record.test.ts +342 -0
  159. package/src/v4/classic/tests/recursive-types.test.ts +356 -0
  160. package/src/v4/classic/tests/refine.test.ts +532 -0
  161. package/src/v4/classic/tests/registries.test.ts +204 -0
  162. package/src/v4/classic/tests/set.test.ts +179 -0
  163. package/src/v4/classic/tests/standard-schema.test.ts +57 -0
  164. package/src/v4/classic/tests/string-formats.test.ts +109 -0
  165. package/src/v4/classic/tests/string.test.ts +881 -0
  166. package/src/v4/classic/tests/stringbool.test.ts +66 -0
  167. package/src/v4/classic/tests/template-literal.test.ts +758 -0
  168. package/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
  169. package/src/v4/classic/tests/transform.test.ts +250 -0
  170. package/src/v4/classic/tests/tuple.test.ts +163 -0
  171. package/src/v4/classic/tests/union.test.ts +94 -0
  172. package/src/v4/classic/tests/validations.test.ts +283 -0
  173. package/src/v4/classic/tests/void.test.ts +12 -0
  174. package/src/v4/core/api.ts +1594 -0
  175. package/src/v4/core/checks.ts +1283 -0
  176. package/src/v4/core/config.ts +15 -0
  177. package/src/v4/core/core.ts +134 -0
  178. package/src/v4/core/doc.ts +44 -0
  179. package/src/v4/core/errors.ts +426 -0
  180. package/src/v4/core/function.ts +176 -0
  181. package/src/v4/core/index.ts +15 -0
  182. package/src/v4/core/json-schema.ts +143 -0
  183. package/src/v4/core/parse.ts +94 -0
  184. package/src/v4/core/regexes.ts +135 -0
  185. package/src/v4/core/registries.ts +96 -0
  186. package/src/v4/core/schemas.ts +3842 -0
  187. package/src/v4/core/standard-schema.ts +64 -0
  188. package/src/v4/core/tests/index.test.ts +46 -0
  189. package/src/v4/core/tests/locales/be.test.ts +124 -0
  190. package/src/v4/core/tests/locales/en.test.ts +22 -0
  191. package/src/v4/core/tests/locales/ru.test.ts +128 -0
  192. package/src/v4/core/tests/locales/tr.test.ts +69 -0
  193. package/src/v4/core/to-json-schema.ts +977 -0
  194. package/src/v4/core/util.ts +775 -0
  195. package/src/v4/core/versions.ts +5 -0
  196. package/src/v4/core/zsf.ts +323 -0
  197. package/src/v4/index.ts +4 -0
  198. package/src/v4/locales/ar.ts +125 -0
  199. package/src/v4/locales/az.ts +121 -0
  200. package/src/v4/locales/be.ts +184 -0
  201. package/src/v4/locales/ca.ts +127 -0
  202. package/src/v4/locales/cs.ts +142 -0
  203. package/src/v4/locales/de.ts +124 -0
  204. package/src/v4/locales/en.ts +127 -0
  205. package/src/v4/locales/eo.ts +125 -0
  206. package/src/v4/locales/es.ts +125 -0
  207. package/src/v4/locales/fa.ts +134 -0
  208. package/src/v4/locales/fi.ts +131 -0
  209. package/src/v4/locales/fr-CA.ts +126 -0
  210. package/src/v4/locales/fr.ts +124 -0
  211. package/src/v4/locales/he.ts +125 -0
  212. package/src/v4/locales/hu.ts +126 -0
  213. package/src/v4/locales/id.ts +125 -0
  214. package/src/v4/locales/index.ts +39 -0
  215. package/src/v4/locales/it.ts +125 -0
  216. package/src/v4/locales/ja.ts +122 -0
  217. package/src/v4/locales/kh.ts +126 -0
  218. package/src/v4/locales/ko.ts +131 -0
  219. package/src/v4/locales/mk.ts +127 -0
  220. package/src/v4/locales/ms.ts +124 -0
  221. package/src/v4/locales/nl.ts +126 -0
  222. package/src/v4/locales/no.ts +124 -0
  223. package/src/v4/locales/ota.ts +125 -0
  224. package/src/v4/locales/pl.ts +126 -0
  225. package/src/v4/locales/ps.ts +133 -0
  226. package/src/v4/locales/pt.ts +123 -0
  227. package/src/v4/locales/ru.ts +184 -0
  228. package/src/v4/locales/sl.ts +126 -0
  229. package/src/v4/locales/sv.ts +127 -0
  230. package/src/v4/locales/ta.ts +125 -0
  231. package/src/v4/locales/th.ts +126 -0
  232. package/src/v4/locales/tr.ts +121 -0
  233. package/src/v4/locales/ua.ts +126 -0
  234. package/src/v4/locales/ur.ts +126 -0
  235. package/src/v4/locales/vi.ts +125 -0
  236. package/src/v4/locales/zh-CN.ts +123 -0
  237. package/src/v4/locales/zh-TW.ts +125 -0
  238. package/src/v4/mini/checks.ts +32 -0
  239. package/src/v4/mini/coerce.ts +22 -0
  240. package/src/v4/mini/external.ts +40 -0
  241. package/src/v4/mini/index.ts +3 -0
  242. package/src/v4/mini/iso.ts +62 -0
  243. package/src/v4/mini/parse.ts +1 -0
  244. package/src/v4/mini/schemas.ts +1579 -0
  245. package/src/v4/mini/tests/assignability.test.ts +129 -0
  246. package/src/v4/mini/tests/brand.test.ts +51 -0
  247. package/src/v4/mini/tests/checks.test.ts +144 -0
  248. package/src/v4/mini/tests/computed.test.ts +36 -0
  249. package/src/v4/mini/tests/error.test.ts +22 -0
  250. package/src/v4/mini/tests/functions.test.ts +43 -0
  251. package/src/v4/mini/tests/index.test.ts +871 -0
  252. package/src/v4/mini/tests/number.test.ts +95 -0
  253. package/src/v4/mini/tests/object.test.ts +185 -0
  254. package/src/v4/mini/tests/prototypes.test.ts +43 -0
  255. package/src/v4/mini/tests/recursive-types.test.ts +275 -0
  256. package/src/v4/mini/tests/string.test.ts +299 -0
  257. package/src/v4-mini/index.ts +1 -0
  258. package/v3/ZodError.cjs +138 -0
  259. package/v3/ZodError.d.cts +164 -0
  260. package/v3/ZodError.d.ts +164 -0
  261. package/v3/ZodError.js +133 -0
  262. package/v3/errors.cjs +17 -0
  263. package/v3/errors.d.cts +5 -0
  264. package/v3/errors.d.ts +5 -0
  265. package/v3/errors.js +9 -0
  266. package/v3/external.cjs +22 -0
  267. package/v3/external.d.cts +6 -0
  268. package/v3/external.d.ts +6 -0
  269. package/v3/external.js +6 -0
  270. package/v3/helpers/enumUtil.cjs +2 -0
  271. package/v3/helpers/enumUtil.d.cts +8 -0
  272. package/v3/helpers/enumUtil.d.ts +8 -0
  273. package/v3/helpers/enumUtil.js +1 -0
  274. package/v3/helpers/errorUtil.cjs +9 -0
  275. package/v3/helpers/errorUtil.d.cts +9 -0
  276. package/v3/helpers/errorUtil.d.ts +9 -0
  277. package/v3/helpers/errorUtil.js +6 -0
  278. package/v3/helpers/parseUtil.cjs +124 -0
  279. package/v3/helpers/parseUtil.d.cts +78 -0
  280. package/v3/helpers/parseUtil.d.ts +78 -0
  281. package/v3/helpers/parseUtil.js +109 -0
  282. package/v3/helpers/partialUtil.cjs +2 -0
  283. package/v3/helpers/partialUtil.d.cts +8 -0
  284. package/v3/helpers/partialUtil.d.ts +8 -0
  285. package/v3/helpers/partialUtil.js +1 -0
  286. package/v3/helpers/typeAliases.cjs +2 -0
  287. package/v3/helpers/typeAliases.d.cts +2 -0
  288. package/v3/helpers/typeAliases.d.ts +2 -0
  289. package/v3/helpers/typeAliases.js +1 -0
  290. package/v3/helpers/util.cjs +137 -0
  291. package/v3/helpers/util.d.cts +85 -0
  292. package/v3/helpers/util.d.ts +85 -0
  293. package/v3/helpers/util.js +133 -0
  294. package/{dist/commonjs/index.js → v3/index.cjs} +2 -2
  295. package/v3/index.d.cts +4 -0
  296. package/v3/index.js +4 -0
  297. package/v3/locales/en.cjs +111 -0
  298. package/v3/locales/en.d.cts +3 -0
  299. package/v3/locales/en.d.ts +3 -0
  300. package/v3/locales/en.js +109 -0
  301. package/v3/standard-schema.cjs +2 -0
  302. package/v3/standard-schema.d.cts +102 -0
  303. package/v3/standard-schema.d.ts +102 -0
  304. package/v3/standard-schema.js +1 -0
  305. package/v3/types.cjs +3775 -0
  306. package/v3/types.d.cts +1031 -0
  307. package/v3/types.d.ts +1031 -0
  308. package/v3/types.js +3693 -0
  309. package/{dist/commonjs/checks.js → v4/classic/checks.cjs} +29 -29
  310. package/{dist/esm/checks.d.ts → v4/classic/checks.d.cts} +1 -1
  311. package/{dist/commonjs → v4/classic}/checks.d.ts +1 -1
  312. package/{dist/esm → v4/classic}/checks.js +1 -1
  313. package/{dist/commonjs/coerce.js → v4/classic/coerce.cjs} +2 -2
  314. package/v4/classic/coerce.d.cts +17 -0
  315. package/v4/classic/coerce.d.ts +17 -0
  316. package/{dist/esm → v4/classic}/coerce.js +1 -1
  317. package/{dist/commonjs/compat.js → v4/classic/compat.cjs} +5 -11
  318. package/{dist/esm/compat.d.ts → v4/classic/compat.d.cts} +4 -6
  319. package/{dist/commonjs → v4/classic}/compat.d.ts +3 -5
  320. package/{dist/esm → v4/classic}/compat.js +2 -8
  321. package/v4/classic/errors.cjs +67 -0
  322. package/{dist/commonjs/errors.d.ts → v4/classic/errors.d.cts} +8 -7
  323. package/{dist/esm → v4/classic}/errors.d.ts +8 -7
  324. package/v4/classic/errors.js +41 -0
  325. package/v4/classic/external.cjs +70 -0
  326. package/v4/classic/external.d.cts +13 -0
  327. package/v4/classic/external.d.ts +13 -0
  328. package/v4/classic/external.js +18 -0
  329. package/v4/classic/index.cjs +33 -0
  330. package/v4/classic/index.d.cts +4 -0
  331. package/{dist/commonjs/iso.js → v4/classic/iso.cjs} +2 -2
  332. package/{dist/esm/iso.d.ts → v4/classic/iso.d.cts} +2 -2
  333. package/{dist/commonjs → v4/classic}/iso.d.ts +1 -1
  334. package/{dist/esm → v4/classic}/iso.js +1 -1
  335. package/{dist/commonjs/parse.js → v4/classic/parse.cjs} +7 -9
  336. package/{dist/commonjs/parse.d.ts → v4/classic/parse.d.cts} +10 -4
  337. package/{dist/esm → v4/classic}/parse.d.ts +10 -4
  338. package/v4/classic/parse.js +6 -0
  339. package/{dist/commonjs/schemas.js → v4/classic/schemas.cjs} +167 -138
  340. package/{dist/esm/schemas.d.ts → v4/classic/schemas.d.cts} +176 -196
  341. package/{dist/commonjs → v4/classic}/schemas.d.ts +175 -195
  342. package/{dist/esm → v4/classic}/schemas.js +128 -102
  343. package/v4/core/api.cjs +1039 -0
  344. package/v4/core/api.d.cts +284 -0
  345. package/v4/core/api.d.ts +284 -0
  346. package/v4/core/api.js +906 -0
  347. package/v4/core/checks.cjs +591 -0
  348. package/v4/core/checks.d.cts +278 -0
  349. package/v4/core/checks.d.ts +278 -0
  350. package/v4/core/checks.js +565 -0
  351. package/v4/core/core.cjs +67 -0
  352. package/v4/core/core.d.cts +49 -0
  353. package/v4/core/core.d.ts +49 -0
  354. package/v4/core/core.js +61 -0
  355. package/v4/core/doc.cjs +39 -0
  356. package/v4/core/doc.d.cts +14 -0
  357. package/v4/core/doc.d.ts +14 -0
  358. package/v4/core/doc.js +35 -0
  359. package/v4/core/errors.cjs +226 -0
  360. package/v4/core/errors.d.cts +210 -0
  361. package/v4/core/errors.d.ts +210 -0
  362. package/v4/core/errors.js +195 -0
  363. package/v4/core/function.cjs +102 -0
  364. package/v4/core/function.d.cts +52 -0
  365. package/v4/core/function.d.ts +52 -0
  366. package/v4/core/function.js +75 -0
  367. package/v4/core/index.cjs +44 -0
  368. package/v4/core/index.d.cts +15 -0
  369. package/v4/core/index.d.ts +15 -0
  370. package/v4/core/index.js +15 -0
  371. package/v4/core/json-schema.cjs +2 -0
  372. package/v4/core/json-schema.d.cts +87 -0
  373. package/v4/core/json-schema.d.ts +87 -0
  374. package/v4/core/json-schema.js +1 -0
  375. package/v4/core/parse.cjs +87 -0
  376. package/v4/core/parse.d.cts +25 -0
  377. package/v4/core/parse.d.ts +25 -0
  378. package/v4/core/parse.js +57 -0
  379. package/v4/core/regexes.cjs +103 -0
  380. package/v4/core/regexes.d.cts +61 -0
  381. package/v4/core/regexes.d.ts +61 -0
  382. package/v4/core/regexes.js +95 -0
  383. package/v4/core/registries.cjs +56 -0
  384. package/v4/core/registries.d.cts +35 -0
  385. package/v4/core/registries.d.ts +35 -0
  386. package/v4/core/registries.js +51 -0
  387. package/v4/core/schemas.cjs +1748 -0
  388. package/v4/core/schemas.d.cts +1041 -0
  389. package/v4/core/schemas.d.ts +1041 -0
  390. package/v4/core/schemas.js +1717 -0
  391. package/v4/core/standard-schema.cjs +2 -0
  392. package/v4/core/standard-schema.d.cts +55 -0
  393. package/v4/core/standard-schema.d.ts +55 -0
  394. package/v4/core/standard-schema.js +1 -0
  395. package/v4/core/to-json-schema.cjs +854 -0
  396. package/v4/core/to-json-schema.d.cts +88 -0
  397. package/v4/core/to-json-schema.d.ts +88 -0
  398. package/v4/core/to-json-schema.js +849 -0
  399. package/v4/core/util.cjs +539 -0
  400. package/v4/core/util.d.cts +183 -0
  401. package/v4/core/util.d.ts +183 -0
  402. package/v4/core/util.js +493 -0
  403. package/v4/core/versions.cjs +8 -0
  404. package/v4/core/versions.d.cts +5 -0
  405. package/v4/core/versions.d.ts +5 -0
  406. package/v4/core/versions.js +5 -0
  407. package/v4/index.cjs +22 -0
  408. package/v4/index.d.cts +3 -0
  409. package/v4/index.d.ts +3 -0
  410. package/v4/index.js +3 -0
  411. package/v4/locales/ar.cjs +142 -0
  412. package/v4/locales/ar.d.cts +4 -0
  413. package/v4/locales/ar.d.ts +4 -0
  414. package/v4/locales/ar.js +116 -0
  415. package/v4/locales/az.cjs +141 -0
  416. package/v4/locales/az.d.cts +4 -0
  417. package/v4/locales/az.d.ts +4 -0
  418. package/v4/locales/az.js +115 -0
  419. package/v4/locales/be.cjs +190 -0
  420. package/v4/locales/be.d.cts +4 -0
  421. package/v4/locales/be.d.ts +4 -0
  422. package/v4/locales/be.js +164 -0
  423. package/v4/locales/ca.cjs +144 -0
  424. package/v4/locales/ca.d.cts +4 -0
  425. package/v4/locales/ca.d.ts +4 -0
  426. package/v4/locales/ca.js +118 -0
  427. package/v4/locales/cs.cjs +161 -0
  428. package/v4/locales/cs.d.cts +4 -0
  429. package/v4/locales/cs.d.ts +4 -0
  430. package/v4/locales/cs.js +135 -0
  431. package/v4/locales/de.cjs +142 -0
  432. package/v4/locales/de.d.cts +4 -0
  433. package/v4/locales/de.d.ts +4 -0
  434. package/v4/locales/de.js +116 -0
  435. package/v4/locales/en.cjs +145 -0
  436. package/v4/locales/en.d.cts +5 -0
  437. package/v4/locales/en.d.ts +5 -0
  438. package/v4/locales/en.js +117 -0
  439. package/v4/locales/eo.cjs +144 -0
  440. package/v4/locales/eo.d.cts +5 -0
  441. package/v4/locales/eo.d.ts +5 -0
  442. package/v4/locales/eo.js +116 -0
  443. package/v4/locales/es.cjs +143 -0
  444. package/v4/locales/es.d.cts +4 -0
  445. package/v4/locales/es.d.ts +4 -0
  446. package/v4/locales/es.js +117 -0
  447. package/v4/locales/fa.cjs +148 -0
  448. package/v4/locales/fa.d.cts +4 -0
  449. package/v4/locales/fa.d.ts +4 -0
  450. package/v4/locales/fa.js +122 -0
  451. package/v4/locales/fi.cjs +148 -0
  452. package/v4/locales/fi.d.cts +4 -0
  453. package/v4/locales/fi.d.ts +4 -0
  454. package/v4/locales/fi.js +122 -0
  455. package/v4/locales/fr-CA.cjs +143 -0
  456. package/v4/locales/fr-CA.d.cts +4 -0
  457. package/v4/locales/fr-CA.d.ts +4 -0
  458. package/v4/locales/fr-CA.js +117 -0
  459. package/v4/locales/fr.cjs +142 -0
  460. package/v4/locales/fr.d.cts +4 -0
  461. package/v4/locales/fr.d.ts +4 -0
  462. package/v4/locales/fr.js +116 -0
  463. package/v4/locales/he.cjs +143 -0
  464. package/v4/locales/he.d.cts +4 -0
  465. package/v4/locales/he.d.ts +4 -0
  466. package/v4/locales/he.js +117 -0
  467. package/v4/locales/hu.cjs +143 -0
  468. package/v4/locales/hu.d.cts +4 -0
  469. package/v4/locales/hu.d.ts +4 -0
  470. package/v4/locales/hu.js +117 -0
  471. package/v4/locales/id.cjs +142 -0
  472. package/v4/locales/id.d.cts +4 -0
  473. package/v4/locales/id.d.ts +4 -0
  474. package/v4/locales/id.js +116 -0
  475. package/v4/locales/index.cjs +84 -0
  476. package/v4/locales/index.d.cts +39 -0
  477. package/v4/locales/index.d.ts +39 -0
  478. package/v4/locales/index.js +39 -0
  479. package/v4/locales/it.cjs +143 -0
  480. package/v4/locales/it.d.cts +4 -0
  481. package/v4/locales/it.d.ts +4 -0
  482. package/v4/locales/it.js +117 -0
  483. package/v4/locales/ja.cjs +141 -0
  484. package/v4/locales/ja.d.cts +4 -0
  485. package/v4/locales/ja.d.ts +4 -0
  486. package/v4/locales/ja.js +115 -0
  487. package/v4/locales/kh.cjs +143 -0
  488. package/v4/locales/kh.d.cts +4 -0
  489. package/v4/locales/kh.d.ts +4 -0
  490. package/v4/locales/kh.js +117 -0
  491. package/v4/locales/ko.cjs +147 -0
  492. package/v4/locales/ko.d.cts +4 -0
  493. package/v4/locales/ko.d.ts +4 -0
  494. package/v4/locales/ko.js +121 -0
  495. package/v4/locales/mk.cjs +144 -0
  496. package/v4/locales/mk.d.cts +4 -0
  497. package/v4/locales/mk.d.ts +4 -0
  498. package/v4/locales/mk.js +118 -0
  499. package/v4/locales/ms.cjs +142 -0
  500. package/v4/locales/ms.d.cts +4 -0
  501. package/v4/locales/ms.d.ts +4 -0
  502. package/v4/locales/ms.js +116 -0
  503. package/v4/locales/nl.cjs +143 -0
  504. package/v4/locales/nl.d.cts +4 -0
  505. package/v4/locales/nl.d.ts +4 -0
  506. package/v4/locales/nl.js +117 -0
  507. package/v4/locales/no.cjs +142 -0
  508. package/v4/locales/no.d.cts +4 -0
  509. package/v4/locales/no.d.ts +4 -0
  510. package/v4/locales/no.js +116 -0
  511. package/v4/locales/ota.cjs +143 -0
  512. package/v4/locales/ota.d.cts +4 -0
  513. package/v4/locales/ota.d.ts +4 -0
  514. package/v4/locales/ota.js +117 -0
  515. package/v4/locales/pl.cjs +143 -0
  516. package/v4/locales/pl.d.cts +4 -0
  517. package/v4/locales/pl.d.ts +4 -0
  518. package/v4/locales/pl.js +117 -0
  519. package/v4/locales/ps.cjs +148 -0
  520. package/v4/locales/ps.d.cts +4 -0
  521. package/v4/locales/ps.d.ts +4 -0
  522. package/v4/locales/ps.js +122 -0
  523. package/v4/locales/pt.cjs +142 -0
  524. package/v4/locales/pt.d.cts +4 -0
  525. package/v4/locales/pt.d.ts +4 -0
  526. package/v4/locales/pt.js +116 -0
  527. package/v4/locales/ru.cjs +190 -0
  528. package/v4/locales/ru.d.cts +4 -0
  529. package/v4/locales/ru.d.ts +4 -0
  530. package/v4/locales/ru.js +164 -0
  531. package/v4/locales/sl.cjs +143 -0
  532. package/v4/locales/sl.d.cts +4 -0
  533. package/v4/locales/sl.d.ts +4 -0
  534. package/v4/locales/sl.js +117 -0
  535. package/v4/locales/sv.cjs +144 -0
  536. package/v4/locales/sv.d.cts +4 -0
  537. package/v4/locales/sv.d.ts +4 -0
  538. package/v4/locales/sv.js +118 -0
  539. package/v4/locales/ta.cjs +143 -0
  540. package/v4/locales/ta.d.cts +4 -0
  541. package/v4/locales/ta.d.ts +4 -0
  542. package/v4/locales/ta.js +117 -0
  543. package/v4/locales/th.cjs +143 -0
  544. package/v4/locales/th.d.cts +4 -0
  545. package/v4/locales/th.d.ts +4 -0
  546. package/v4/locales/th.js +117 -0
  547. package/v4/locales/tr.cjs +143 -0
  548. package/v4/locales/tr.d.cts +5 -0
  549. package/v4/locales/tr.d.ts +5 -0
  550. package/v4/locales/tr.js +115 -0
  551. package/v4/locales/ua.cjs +143 -0
  552. package/v4/locales/ua.d.cts +4 -0
  553. package/v4/locales/ua.d.ts +4 -0
  554. package/v4/locales/ua.js +117 -0
  555. package/v4/locales/ur.cjs +143 -0
  556. package/v4/locales/ur.d.cts +4 -0
  557. package/v4/locales/ur.d.ts +4 -0
  558. package/v4/locales/ur.js +117 -0
  559. package/v4/locales/vi.cjs +142 -0
  560. package/v4/locales/vi.d.cts +4 -0
  561. package/v4/locales/vi.d.ts +4 -0
  562. package/v4/locales/vi.js +116 -0
  563. package/v4/locales/zh-CN.cjs +142 -0
  564. package/v4/locales/zh-CN.d.cts +4 -0
  565. package/v4/locales/zh-CN.d.ts +4 -0
  566. package/v4/locales/zh-CN.js +116 -0
  567. package/v4/locales/zh-TW.cjs +143 -0
  568. package/v4/locales/zh-TW.d.cts +4 -0
  569. package/v4/locales/zh-TW.d.ts +4 -0
  570. package/v4/locales/zh-TW.js +117 -0
  571. package/v4/mini/checks.cjs +34 -0
  572. package/v4/mini/checks.d.cts +1 -0
  573. package/v4/mini/checks.d.ts +1 -0
  574. package/v4/mini/checks.js +1 -0
  575. package/{dist/commonjs/errors.js → v4/mini/coerce.cjs} +21 -25
  576. package/v4/mini/coerce.d.cts +7 -0
  577. package/v4/mini/coerce.d.ts +7 -0
  578. package/v4/mini/coerce.js +17 -0
  579. package/v4/mini/external.cjs +62 -0
  580. package/v4/mini/external.d.cts +11 -0
  581. package/v4/mini/external.d.ts +11 -0
  582. package/v4/mini/external.js +13 -0
  583. package/v4/mini/index.cjs +32 -0
  584. package/v4/mini/index.d.cts +3 -0
  585. package/v4/mini/index.d.ts +3 -0
  586. package/v4/mini/index.js +3 -0
  587. package/v4/mini/iso.cjs +60 -0
  588. package/v4/mini/iso.d.cts +22 -0
  589. package/v4/mini/iso.d.ts +22 -0
  590. package/v4/mini/iso.js +30 -0
  591. package/v4/mini/parse.cjs +8 -0
  592. package/v4/mini/parse.d.cts +1 -0
  593. package/v4/mini/parse.d.ts +1 -0
  594. package/v4/mini/parse.js +1 -0
  595. package/v4/mini/schemas.cjs +839 -0
  596. package/v4/mini/schemas.d.cts +356 -0
  597. package/v4/mini/schemas.d.ts +356 -0
  598. package/v4/mini/schemas.js +732 -0
  599. package/v4-mini/index.cjs +17 -0
  600. package/v4-mini/index.d.cts +1 -0
  601. package/v4-mini/index.d.ts +1 -0
  602. package/v4-mini/index.js +1 -0
  603. package/dist/commonjs/coerce.d.ts +0 -17
  604. package/dist/commonjs/external.d.ts +0 -8
  605. package/dist/commonjs/external.js +0 -58
  606. package/dist/commonjs/package.json +0 -3
  607. package/dist/esm/coerce.d.ts +0 -17
  608. package/dist/esm/errors.js +0 -24
  609. package/dist/esm/external.d.ts +0 -8
  610. package/dist/esm/external.js +0 -14
  611. package/dist/esm/package.json +0 -3
  612. package/dist/esm/parse.js +0 -8
  613. package/src/coerce.ts +0 -27
  614. package/src/errors.ts +0 -50
  615. package/src/external.ts +0 -30
  616. package/{dist/esm → v3}/index.d.ts +1 -1
  617. /package/{dist/commonjs → v4/classic}/index.d.ts +0 -0
  618. /package/{dist/esm → v4/classic}/index.js +0 -0
@@ -0,0 +1,164 @@
1
+ import type { Primitive } from "./helpers/typeAliases.js";
2
+ import { util, type ZodParsedType } from "./helpers/util.js";
3
+ import type { TypeOf, ZodType } from "./index.js";
4
+ type allKeys<T> = T extends any ? keyof T : never;
5
+ export type inferFlattenedErrors<T extends ZodType<any, any, any>, U = string> = typeToFlattenedError<TypeOf<T>, U>;
6
+ export type typeToFlattenedError<T, U = string> = {
7
+ formErrors: U[];
8
+ fieldErrors: {
9
+ [P in allKeys<T>]?: U[];
10
+ };
11
+ };
12
+ export declare const ZodIssueCode: {
13
+ custom: "custom";
14
+ invalid_type: "invalid_type";
15
+ unrecognized_keys: "unrecognized_keys";
16
+ too_big: "too_big";
17
+ too_small: "too_small";
18
+ not_multiple_of: "not_multiple_of";
19
+ invalid_union: "invalid_union";
20
+ invalid_literal: "invalid_literal";
21
+ invalid_union_discriminator: "invalid_union_discriminator";
22
+ invalid_enum_value: "invalid_enum_value";
23
+ invalid_arguments: "invalid_arguments";
24
+ invalid_return_type: "invalid_return_type";
25
+ invalid_date: "invalid_date";
26
+ invalid_string: "invalid_string";
27
+ invalid_intersection_types: "invalid_intersection_types";
28
+ not_finite: "not_finite";
29
+ };
30
+ export type ZodIssueCode = keyof typeof ZodIssueCode;
31
+ export type ZodIssueBase = {
32
+ path: (string | number)[];
33
+ message?: string | undefined;
34
+ };
35
+ export interface ZodInvalidTypeIssue extends ZodIssueBase {
36
+ code: typeof ZodIssueCode.invalid_type;
37
+ expected: ZodParsedType;
38
+ received: ZodParsedType;
39
+ }
40
+ export interface ZodInvalidLiteralIssue extends ZodIssueBase {
41
+ code: typeof ZodIssueCode.invalid_literal;
42
+ expected: unknown;
43
+ received: unknown;
44
+ }
45
+ export interface ZodUnrecognizedKeysIssue extends ZodIssueBase {
46
+ code: typeof ZodIssueCode.unrecognized_keys;
47
+ keys: string[];
48
+ }
49
+ export interface ZodInvalidUnionIssue extends ZodIssueBase {
50
+ code: typeof ZodIssueCode.invalid_union;
51
+ unionErrors: ZodError[];
52
+ }
53
+ export interface ZodInvalidUnionDiscriminatorIssue extends ZodIssueBase {
54
+ code: typeof ZodIssueCode.invalid_union_discriminator;
55
+ options: Primitive[];
56
+ }
57
+ export interface ZodInvalidEnumValueIssue extends ZodIssueBase {
58
+ received: string | number;
59
+ code: typeof ZodIssueCode.invalid_enum_value;
60
+ options: (string | number)[];
61
+ }
62
+ export interface ZodInvalidArgumentsIssue extends ZodIssueBase {
63
+ code: typeof ZodIssueCode.invalid_arguments;
64
+ argumentsError: ZodError;
65
+ }
66
+ export interface ZodInvalidReturnTypeIssue extends ZodIssueBase {
67
+ code: typeof ZodIssueCode.invalid_return_type;
68
+ returnTypeError: ZodError;
69
+ }
70
+ export interface ZodInvalidDateIssue extends ZodIssueBase {
71
+ code: typeof ZodIssueCode.invalid_date;
72
+ }
73
+ export type StringValidation = "email" | "url" | "emoji" | "uuid" | "nanoid" | "regex" | "cuid" | "cuid2" | "ulid" | "datetime" | "date" | "time" | "duration" | "ip" | "cidr" | "base64" | "jwt" | "base64url" | {
74
+ includes: string;
75
+ position?: number | undefined;
76
+ } | {
77
+ startsWith: string;
78
+ } | {
79
+ endsWith: string;
80
+ };
81
+ export interface ZodInvalidStringIssue extends ZodIssueBase {
82
+ code: typeof ZodIssueCode.invalid_string;
83
+ validation: StringValidation;
84
+ }
85
+ export interface ZodTooSmallIssue extends ZodIssueBase {
86
+ code: typeof ZodIssueCode.too_small;
87
+ minimum: number | bigint;
88
+ inclusive: boolean;
89
+ exact?: boolean;
90
+ type: "array" | "string" | "number" | "set" | "date" | "bigint";
91
+ }
92
+ export interface ZodTooBigIssue extends ZodIssueBase {
93
+ code: typeof ZodIssueCode.too_big;
94
+ maximum: number | bigint;
95
+ inclusive: boolean;
96
+ exact?: boolean;
97
+ type: "array" | "string" | "number" | "set" | "date" | "bigint";
98
+ }
99
+ export interface ZodInvalidIntersectionTypesIssue extends ZodIssueBase {
100
+ code: typeof ZodIssueCode.invalid_intersection_types;
101
+ }
102
+ export interface ZodNotMultipleOfIssue extends ZodIssueBase {
103
+ code: typeof ZodIssueCode.not_multiple_of;
104
+ multipleOf: number | bigint;
105
+ }
106
+ export interface ZodNotFiniteIssue extends ZodIssueBase {
107
+ code: typeof ZodIssueCode.not_finite;
108
+ }
109
+ export interface ZodCustomIssue extends ZodIssueBase {
110
+ code: typeof ZodIssueCode.custom;
111
+ params?: {
112
+ [k: string]: any;
113
+ };
114
+ }
115
+ export type DenormalizedError = {
116
+ [k: string]: DenormalizedError | string[];
117
+ };
118
+ export type ZodIssueOptionalMessage = ZodInvalidTypeIssue | ZodInvalidLiteralIssue | ZodUnrecognizedKeysIssue | ZodInvalidUnionIssue | ZodInvalidUnionDiscriminatorIssue | ZodInvalidEnumValueIssue | ZodInvalidArgumentsIssue | ZodInvalidReturnTypeIssue | ZodInvalidDateIssue | ZodInvalidStringIssue | ZodTooSmallIssue | ZodTooBigIssue | ZodInvalidIntersectionTypesIssue | ZodNotMultipleOfIssue | ZodNotFiniteIssue | ZodCustomIssue;
119
+ export type ZodIssue = ZodIssueOptionalMessage & {
120
+ fatal?: boolean | undefined;
121
+ message: string;
122
+ };
123
+ export declare const quotelessJson: (obj: any) => string;
124
+ type recursiveZodFormattedError<T> = T extends [any, ...any[]] ? {
125
+ [K in keyof T]?: ZodFormattedError<T[K]>;
126
+ } : T extends any[] ? {
127
+ [k: number]: ZodFormattedError<T[number]>;
128
+ } : T extends object ? {
129
+ [K in keyof T]?: ZodFormattedError<T[K]>;
130
+ } : unknown;
131
+ export type ZodFormattedError<T, U = string> = {
132
+ _errors: U[];
133
+ } & recursiveZodFormattedError<NonNullable<T>>;
134
+ export type inferFormattedError<T extends ZodType<any, any, any>, U = string> = ZodFormattedError<TypeOf<T>, U>;
135
+ export declare class ZodError<T = any> extends Error {
136
+ issues: ZodIssue[];
137
+ get errors(): ZodIssue[];
138
+ constructor(issues: ZodIssue[]);
139
+ format(): ZodFormattedError<T>;
140
+ format<U>(mapper: (issue: ZodIssue) => U): ZodFormattedError<T, U>;
141
+ static create: (issues: ZodIssue[]) => ZodError<any>;
142
+ static assert(value: unknown): asserts value is ZodError;
143
+ toString(): string;
144
+ get message(): string;
145
+ get isEmpty(): boolean;
146
+ addIssue: (sub: ZodIssue) => void;
147
+ addIssues: (subs?: ZodIssue[]) => void;
148
+ flatten(): typeToFlattenedError<T>;
149
+ flatten<U>(mapper?: (issue: ZodIssue) => U): typeToFlattenedError<T, U>;
150
+ get formErrors(): typeToFlattenedError<T, string>;
151
+ }
152
+ type stripPath<T extends object> = T extends any ? util.OmitKeys<T, "path"> : never;
153
+ export type IssueData = stripPath<ZodIssueOptionalMessage> & {
154
+ path?: (string | number)[];
155
+ fatal?: boolean | undefined;
156
+ };
157
+ export type ErrorMapCtx = {
158
+ defaultError: string;
159
+ data: any;
160
+ };
161
+ export type ZodErrorMap = (issue: ZodIssueOptionalMessage, _ctx: ErrorMapCtx) => {
162
+ message: string;
163
+ };
164
+ export {};
package/v3/ZodError.js ADDED
@@ -0,0 +1,133 @@
1
+ import { util } from "./helpers/util.js";
2
+ export const ZodIssueCode = util.arrayToEnum([
3
+ "invalid_type",
4
+ "invalid_literal",
5
+ "custom",
6
+ "invalid_union",
7
+ "invalid_union_discriminator",
8
+ "invalid_enum_value",
9
+ "unrecognized_keys",
10
+ "invalid_arguments",
11
+ "invalid_return_type",
12
+ "invalid_date",
13
+ "invalid_string",
14
+ "too_small",
15
+ "too_big",
16
+ "invalid_intersection_types",
17
+ "not_multiple_of",
18
+ "not_finite",
19
+ ]);
20
+ export const quotelessJson = (obj) => {
21
+ const json = JSON.stringify(obj, null, 2);
22
+ return json.replace(/"([^"]+)":/g, "$1:");
23
+ };
24
+ export class ZodError extends Error {
25
+ get errors() {
26
+ return this.issues;
27
+ }
28
+ constructor(issues) {
29
+ super();
30
+ this.issues = [];
31
+ this.addIssue = (sub) => {
32
+ this.issues = [...this.issues, sub];
33
+ };
34
+ this.addIssues = (subs = []) => {
35
+ this.issues = [...this.issues, ...subs];
36
+ };
37
+ const actualProto = new.target.prototype;
38
+ if (Object.setPrototypeOf) {
39
+ // eslint-disable-next-line ban/ban
40
+ Object.setPrototypeOf(this, actualProto);
41
+ }
42
+ else {
43
+ this.__proto__ = actualProto;
44
+ }
45
+ this.name = "ZodError";
46
+ this.issues = issues;
47
+ }
48
+ format(_mapper) {
49
+ const mapper = _mapper ||
50
+ function (issue) {
51
+ return issue.message;
52
+ };
53
+ const fieldErrors = { _errors: [] };
54
+ const processError = (error) => {
55
+ for (const issue of error.issues) {
56
+ if (issue.code === "invalid_union") {
57
+ issue.unionErrors.map(processError);
58
+ }
59
+ else if (issue.code === "invalid_return_type") {
60
+ processError(issue.returnTypeError);
61
+ }
62
+ else if (issue.code === "invalid_arguments") {
63
+ processError(issue.argumentsError);
64
+ }
65
+ else if (issue.path.length === 0) {
66
+ fieldErrors._errors.push(mapper(issue));
67
+ }
68
+ else {
69
+ let curr = fieldErrors;
70
+ let i = 0;
71
+ while (i < issue.path.length) {
72
+ const el = issue.path[i];
73
+ const terminal = i === issue.path.length - 1;
74
+ if (!terminal) {
75
+ curr[el] = curr[el] || { _errors: [] };
76
+ // if (typeof el === "string") {
77
+ // curr[el] = curr[el] || { _errors: [] };
78
+ // } else if (typeof el === "number") {
79
+ // const errorArray: any = [];
80
+ // errorArray._errors = [];
81
+ // curr[el] = curr[el] || errorArray;
82
+ // }
83
+ }
84
+ else {
85
+ curr[el] = curr[el] || { _errors: [] };
86
+ curr[el]._errors.push(mapper(issue));
87
+ }
88
+ curr = curr[el];
89
+ i++;
90
+ }
91
+ }
92
+ }
93
+ };
94
+ processError(this);
95
+ return fieldErrors;
96
+ }
97
+ static assert(value) {
98
+ if (!(value instanceof ZodError)) {
99
+ throw new Error(`Not a ZodError: ${value}`);
100
+ }
101
+ }
102
+ toString() {
103
+ return this.message;
104
+ }
105
+ get message() {
106
+ return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
107
+ }
108
+ get isEmpty() {
109
+ return this.issues.length === 0;
110
+ }
111
+ flatten(mapper = (issue) => issue.message) {
112
+ const fieldErrors = {};
113
+ const formErrors = [];
114
+ for (const sub of this.issues) {
115
+ if (sub.path.length > 0) {
116
+ const firstEl = sub.path[0];
117
+ fieldErrors[firstEl] = fieldErrors[firstEl] || [];
118
+ fieldErrors[firstEl].push(mapper(sub));
119
+ }
120
+ else {
121
+ formErrors.push(mapper(sub));
122
+ }
123
+ }
124
+ return { formErrors, fieldErrors };
125
+ }
126
+ get formErrors() {
127
+ return this.flatten();
128
+ }
129
+ }
130
+ ZodError.create = (issues) => {
131
+ const error = new ZodError(issues);
132
+ return error;
133
+ };
package/v3/errors.cjs ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.defaultErrorMap = void 0;
7
+ exports.setErrorMap = setErrorMap;
8
+ exports.getErrorMap = getErrorMap;
9
+ const en_js_1 = __importDefault(require("./locales/en.cjs"));
10
+ exports.defaultErrorMap = en_js_1.default;
11
+ let overrideErrorMap = en_js_1.default;
12
+ function setErrorMap(map) {
13
+ overrideErrorMap = map;
14
+ }
15
+ function getErrorMap() {
16
+ return overrideErrorMap;
17
+ }
@@ -0,0 +1,5 @@
1
+ import type { ZodErrorMap } from "./ZodError.cjs";
2
+ import defaultErrorMap from "./locales/en.cjs";
3
+ export { defaultErrorMap };
4
+ export declare function setErrorMap(map: ZodErrorMap): void;
5
+ export declare function getErrorMap(): ZodErrorMap;
package/v3/errors.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import type { ZodErrorMap } from "./ZodError.js";
2
+ import defaultErrorMap from "./locales/en.js";
3
+ export { defaultErrorMap };
4
+ export declare function setErrorMap(map: ZodErrorMap): void;
5
+ export declare function getErrorMap(): ZodErrorMap;
package/v3/errors.js ADDED
@@ -0,0 +1,9 @@
1
+ import defaultErrorMap from "./locales/en.js";
2
+ let overrideErrorMap = defaultErrorMap;
3
+ export { defaultErrorMap };
4
+ export function setErrorMap(map) {
5
+ overrideErrorMap = map;
6
+ }
7
+ export function getErrorMap() {
8
+ return overrideErrorMap;
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./errors.cjs"), exports);
18
+ __exportStar(require("./helpers/parseUtil.cjs"), exports);
19
+ __exportStar(require("./helpers/typeAliases.cjs"), exports);
20
+ __exportStar(require("./helpers/util.cjs"), exports);
21
+ __exportStar(require("./types.cjs"), exports);
22
+ __exportStar(require("./ZodError.cjs"), exports);
@@ -0,0 +1,6 @@
1
+ export * from "./errors.cjs";
2
+ export * from "./helpers/parseUtil.cjs";
3
+ export * from "./helpers/typeAliases.cjs";
4
+ export * from "./helpers/util.cjs";
5
+ export * from "./types.cjs";
6
+ export * from "./ZodError.cjs";
@@ -0,0 +1,6 @@
1
+ export * from "./errors.js";
2
+ export * from "./helpers/parseUtil.js";
3
+ export * from "./helpers/typeAliases.js";
4
+ export * from "./helpers/util.js";
5
+ export * from "./types.js";
6
+ export * from "./ZodError.js";
package/v3/external.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from "./errors.js";
2
+ export * from "./helpers/parseUtil.js";
3
+ export * from "./helpers/typeAliases.js";
4
+ export * from "./helpers/util.js";
5
+ export * from "./types.js";
6
+ export * from "./ZodError.js";
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ export declare namespace enumUtil {
2
+ type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
3
+ type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
4
+ type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
5
+ type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
6
+ export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;
7
+ export {};
8
+ }
@@ -0,0 +1,8 @@
1
+ export declare namespace enumUtil {
2
+ type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
3
+ type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
4
+ type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
5
+ type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
6
+ export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;
7
+ export {};
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorUtil = void 0;
4
+ var errorUtil;
5
+ (function (errorUtil) {
6
+ errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
7
+ // biome-ignore lint:
8
+ errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
9
+ })(errorUtil || (exports.errorUtil = errorUtil = {}));
@@ -0,0 +1,9 @@
1
+ export declare namespace errorUtil {
2
+ type ErrMessage = string | {
3
+ message?: string | undefined;
4
+ };
5
+ const errToObj: (message?: ErrMessage) => {
6
+ message?: string | undefined;
7
+ };
8
+ const toString: (message?: ErrMessage) => string | undefined;
9
+ }
@@ -0,0 +1,9 @@
1
+ export declare namespace errorUtil {
2
+ type ErrMessage = string | {
3
+ message?: string | undefined;
4
+ };
5
+ const errToObj: (message?: ErrMessage) => {
6
+ message?: string | undefined;
7
+ };
8
+ const toString: (message?: ErrMessage) => string | undefined;
9
+ }
@@ -0,0 +1,6 @@
1
+ export var errorUtil;
2
+ (function (errorUtil) {
3
+ errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
4
+ // biome-ignore lint:
5
+ errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
6
+ })(errorUtil || (errorUtil = {}));
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.EMPTY_PATH = exports.makeIssue = void 0;
7
+ exports.addIssueToContext = addIssueToContext;
8
+ const errors_js_1 = require("../errors.cjs");
9
+ const en_js_1 = __importDefault(require("../locales/en.cjs"));
10
+ const makeIssue = (params) => {
11
+ const { data, path, errorMaps, issueData } = params;
12
+ const fullPath = [...path, ...(issueData.path || [])];
13
+ const fullIssue = {
14
+ ...issueData,
15
+ path: fullPath,
16
+ };
17
+ if (issueData.message !== undefined) {
18
+ return {
19
+ ...issueData,
20
+ path: fullPath,
21
+ message: issueData.message,
22
+ };
23
+ }
24
+ let errorMessage = "";
25
+ const maps = errorMaps
26
+ .filter((m) => !!m)
27
+ .slice()
28
+ .reverse();
29
+ for (const map of maps) {
30
+ errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
31
+ }
32
+ return {
33
+ ...issueData,
34
+ path: fullPath,
35
+ message: errorMessage,
36
+ };
37
+ };
38
+ exports.makeIssue = makeIssue;
39
+ exports.EMPTY_PATH = [];
40
+ function addIssueToContext(ctx, issueData) {
41
+ const overrideMap = (0, errors_js_1.getErrorMap)();
42
+ const issue = (0, exports.makeIssue)({
43
+ issueData: issueData,
44
+ data: ctx.data,
45
+ path: ctx.path,
46
+ errorMaps: [
47
+ ctx.common.contextualErrorMap, // contextual error map is first priority
48
+ ctx.schemaErrorMap, // then schema-bound map if available
49
+ overrideMap, // then global override map
50
+ overrideMap === en_js_1.default ? undefined : en_js_1.default, // then global default map
51
+ ].filter((x) => !!x),
52
+ });
53
+ ctx.common.issues.push(issue);
54
+ }
55
+ class ParseStatus {
56
+ constructor() {
57
+ this.value = "valid";
58
+ }
59
+ dirty() {
60
+ if (this.value === "valid")
61
+ this.value = "dirty";
62
+ }
63
+ abort() {
64
+ if (this.value !== "aborted")
65
+ this.value = "aborted";
66
+ }
67
+ static mergeArray(status, results) {
68
+ const arrayValue = [];
69
+ for (const s of results) {
70
+ if (s.status === "aborted")
71
+ return exports.INVALID;
72
+ if (s.status === "dirty")
73
+ status.dirty();
74
+ arrayValue.push(s.value);
75
+ }
76
+ return { status: status.value, value: arrayValue };
77
+ }
78
+ static async mergeObjectAsync(status, pairs) {
79
+ const syncPairs = [];
80
+ for (const pair of pairs) {
81
+ const key = await pair.key;
82
+ const value = await pair.value;
83
+ syncPairs.push({
84
+ key,
85
+ value,
86
+ });
87
+ }
88
+ return ParseStatus.mergeObjectSync(status, syncPairs);
89
+ }
90
+ static mergeObjectSync(status, pairs) {
91
+ const finalObject = {};
92
+ for (const pair of pairs) {
93
+ const { key, value } = pair;
94
+ if (key.status === "aborted")
95
+ return exports.INVALID;
96
+ if (value.status === "aborted")
97
+ return exports.INVALID;
98
+ if (key.status === "dirty")
99
+ status.dirty();
100
+ if (value.status === "dirty")
101
+ status.dirty();
102
+ if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
103
+ finalObject[key.value] = value.value;
104
+ }
105
+ }
106
+ return { status: status.value, value: finalObject };
107
+ }
108
+ }
109
+ exports.ParseStatus = ParseStatus;
110
+ exports.INVALID = Object.freeze({
111
+ status: "aborted",
112
+ });
113
+ const DIRTY = (value) => ({ status: "dirty", value });
114
+ exports.DIRTY = DIRTY;
115
+ const OK = (value) => ({ status: "valid", value });
116
+ exports.OK = OK;
117
+ const isAborted = (x) => x.status === "aborted";
118
+ exports.isAborted = isAborted;
119
+ const isDirty = (x) => x.status === "dirty";
120
+ exports.isDirty = isDirty;
121
+ const isValid = (x) => x.status === "valid";
122
+ exports.isValid = isValid;
123
+ const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
124
+ exports.isAsync = isAsync;
@@ -0,0 +1,78 @@
1
+ import type { IssueData, ZodErrorMap, ZodIssue } from "../ZodError.cjs";
2
+ import type { ZodParsedType } from "./util.cjs";
3
+ export declare const makeIssue: (params: {
4
+ data: any;
5
+ path: (string | number)[];
6
+ errorMaps: ZodErrorMap[];
7
+ issueData: IssueData;
8
+ }) => ZodIssue;
9
+ export type ParseParams = {
10
+ path: (string | number)[];
11
+ errorMap: ZodErrorMap;
12
+ async: boolean;
13
+ };
14
+ export type ParsePathComponent = string | number;
15
+ export type ParsePath = ParsePathComponent[];
16
+ export declare const EMPTY_PATH: ParsePath;
17
+ export interface ParseContext {
18
+ readonly common: {
19
+ readonly issues: ZodIssue[];
20
+ readonly contextualErrorMap?: ZodErrorMap | undefined;
21
+ readonly async: boolean;
22
+ };
23
+ readonly path: ParsePath;
24
+ readonly schemaErrorMap?: ZodErrorMap | undefined;
25
+ readonly parent: ParseContext | null;
26
+ readonly data: any;
27
+ readonly parsedType: ZodParsedType;
28
+ }
29
+ export type ParseInput = {
30
+ data: any;
31
+ path: (string | number)[];
32
+ parent: ParseContext;
33
+ };
34
+ export declare function addIssueToContext(ctx: ParseContext, issueData: IssueData): void;
35
+ export type ObjectPair = {
36
+ key: SyncParseReturnType<any>;
37
+ value: SyncParseReturnType<any>;
38
+ };
39
+ export declare class ParseStatus {
40
+ value: "aborted" | "dirty" | "valid";
41
+ dirty(): void;
42
+ abort(): void;
43
+ static mergeArray(status: ParseStatus, results: SyncParseReturnType<any>[]): SyncParseReturnType;
44
+ static mergeObjectAsync(status: ParseStatus, pairs: {
45
+ key: ParseReturnType<any>;
46
+ value: ParseReturnType<any>;
47
+ }[]): Promise<SyncParseReturnType<any>>;
48
+ static mergeObjectSync(status: ParseStatus, pairs: {
49
+ key: SyncParseReturnType<any>;
50
+ value: SyncParseReturnType<any>;
51
+ alwaysSet?: boolean;
52
+ }[]): SyncParseReturnType;
53
+ }
54
+ export interface ParseResult {
55
+ status: "aborted" | "dirty" | "valid";
56
+ data: any;
57
+ }
58
+ export type INVALID = {
59
+ status: "aborted";
60
+ };
61
+ export declare const INVALID: INVALID;
62
+ export type DIRTY<T> = {
63
+ status: "dirty";
64
+ value: T;
65
+ };
66
+ export declare const DIRTY: <T>(value: T) => DIRTY<T>;
67
+ export type OK<T> = {
68
+ status: "valid";
69
+ value: T;
70
+ };
71
+ export declare const OK: <T>(value: T) => OK<T>;
72
+ export type SyncParseReturnType<T = any> = OK<T> | DIRTY<T> | INVALID;
73
+ export type AsyncParseReturnType<T> = Promise<SyncParseReturnType<T>>;
74
+ export type ParseReturnType<T> = SyncParseReturnType<T> | AsyncParseReturnType<T>;
75
+ export declare const isAborted: (x: ParseReturnType<any>) => x is INVALID;
76
+ export declare const isDirty: <T>(x: ParseReturnType<T>) => x is OK<T> | DIRTY<T>;
77
+ export declare const isValid: <T>(x: ParseReturnType<T>) => x is OK<T>;
78
+ export declare const isAsync: <T>(x: ParseReturnType<T>) => x is AsyncParseReturnType<T>;