zod 4.5.4 → 4.6.1

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 (359) hide show
  1. package/compile.cjs +19 -0
  2. package/index.cjs +19 -0
  3. package/locales/index.cjs +19 -0
  4. package/mini/index.cjs +19 -0
  5. package/package.json +8 -7
  6. package/src/v3/helpers/errorUtil.ts +1 -1
  7. package/src/v4/classic/checks.ts +0 -1
  8. package/src/v4/classic/external.ts +2 -0
  9. package/src/v4/classic/from-json-schema.ts +248 -25
  10. package/src/v4/classic/schemas.ts +255 -164
  11. package/src/v4/classic/tests/assignability.test.ts +59 -9
  12. package/src/v4/classic/tests/bigint.test.ts +6 -0
  13. package/src/v4/classic/tests/continuability.test.ts +2 -2
  14. package/src/v4/classic/tests/cyclic-data.test.ts +274 -0
  15. package/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  16. package/src/v4/classic/tests/enum.test.ts +9 -0
  17. package/src/v4/classic/tests/error.test.ts +130 -1
  18. package/src/v4/classic/tests/firstparty.test.ts +4 -0
  19. package/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  20. package/src/v4/classic/tests/iban.test.ts +81 -0
  21. package/src/v4/classic/tests/instance-footprint.test.ts +18 -2
  22. package/src/v4/classic/tests/instanceof.test.ts +27 -7
  23. package/src/v4/classic/tests/issue-schema.test.ts +88 -56
  24. package/src/v4/classic/tests/object.test.ts +56 -0
  25. package/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  26. package/src/v4/classic/tests/properties.test.ts +225 -0
  27. package/src/v4/classic/tests/recursive-types.test.ts +46 -1
  28. package/src/v4/classic/tests/standard-schema.test.ts +19 -0
  29. package/src/v4/classic/tests/string.test.ts +25 -0
  30. package/src/v4/classic/tests/template-literal.test.ts +33 -1
  31. package/src/v4/classic/tests/to-json-schema.test.ts +147 -3
  32. package/src/v4/classic/tests/validate.test.ts +569 -0
  33. package/src/v4/core/api.ts +30 -6
  34. package/src/v4/core/checks.ts +1 -101
  35. package/src/v4/core/compile.ts +194 -82
  36. package/src/v4/core/doc.ts +6 -2
  37. package/src/v4/core/errors.ts +3 -6
  38. package/src/v4/core/json-schema-generator.ts +2 -2
  39. package/src/v4/core/json-schema-processors.ts +226 -68
  40. package/src/v4/core/memoizer.ts +78 -28
  41. package/src/v4/core/parse.ts +37 -16
  42. package/src/v4/core/regexes.ts +10 -4
  43. package/src/v4/core/schemas.ts +350 -113
  44. package/src/v4/core/tests/cached.test.ts +54 -0
  45. package/src/v4/core/tests/compile-generative.test.ts +445 -0
  46. package/src/v4/core/tests/compile.test.ts +222 -2
  47. package/src/v4/core/tests/email-regex.test.ts +140 -0
  48. package/src/v4/core/tests/locales/tg.test.ts +85 -0
  49. package/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  50. package/src/v4/core/to-json-schema.ts +10 -8
  51. package/src/v4/core/util.ts +222 -147
  52. package/src/v4/core/versions.ts +2 -2
  53. package/src/v4/core/visit.ts +11 -0
  54. package/src/v4/locales/ar.ts +1 -0
  55. package/src/v4/locales/az.ts +1 -0
  56. package/src/v4/locales/be.ts +1 -0
  57. package/src/v4/locales/bg.ts +1 -0
  58. package/src/v4/locales/bn.ts +1 -0
  59. package/src/v4/locales/ca.ts +1 -0
  60. package/src/v4/locales/ckb.ts +1 -0
  61. package/src/v4/locales/cs.ts +1 -0
  62. package/src/v4/locales/da.ts +1 -0
  63. package/src/v4/locales/de.ts +1 -0
  64. package/src/v4/locales/el.ts +1 -0
  65. package/src/v4/locales/en.ts +1 -0
  66. package/src/v4/locales/eo.ts +1 -0
  67. package/src/v4/locales/es.ts +1 -0
  68. package/src/v4/locales/fa.ts +1 -0
  69. package/src/v4/locales/fi.ts +1 -0
  70. package/src/v4/locales/fr-CA.ts +1 -0
  71. package/src/v4/locales/fr.ts +1 -0
  72. package/src/v4/locales/gu.ts +1 -0
  73. package/src/v4/locales/he.ts +1 -0
  74. package/src/v4/locales/hi.ts +1 -0
  75. package/src/v4/locales/hr.ts +1 -0
  76. package/src/v4/locales/hu.ts +1 -0
  77. package/src/v4/locales/hy.ts +1 -0
  78. package/src/v4/locales/id.ts +1 -0
  79. package/src/v4/locales/index.ts +1 -0
  80. package/src/v4/locales/is.ts +1 -0
  81. package/src/v4/locales/it.ts +1 -0
  82. package/src/v4/locales/ja.ts +1 -0
  83. package/src/v4/locales/ka.ts +1 -0
  84. package/src/v4/locales/km.ts +1 -0
  85. package/src/v4/locales/kn.ts +1 -0
  86. package/src/v4/locales/ko.ts +1 -0
  87. package/src/v4/locales/lt.ts +1 -0
  88. package/src/v4/locales/mk.ts +1 -0
  89. package/src/v4/locales/ms.ts +1 -0
  90. package/src/v4/locales/ne.ts +1 -0
  91. package/src/v4/locales/nl.ts +1 -0
  92. package/src/v4/locales/nn.ts +1 -0
  93. package/src/v4/locales/no.ts +1 -0
  94. package/src/v4/locales/ota.ts +1 -0
  95. package/src/v4/locales/pl.ts +1 -0
  96. package/src/v4/locales/ps.ts +1 -0
  97. package/src/v4/locales/pt-BR.ts +1 -0
  98. package/src/v4/locales/pt.ts +1 -0
  99. package/src/v4/locales/ro.ts +1 -0
  100. package/src/v4/locales/ru.ts +1 -0
  101. package/src/v4/locales/sk.ts +1 -0
  102. package/src/v4/locales/sl.ts +1 -0
  103. package/src/v4/locales/sv.ts +1 -0
  104. package/src/v4/locales/ta.ts +1 -0
  105. package/src/v4/locales/tg.ts +134 -0
  106. package/src/v4/locales/th.ts +1 -0
  107. package/src/v4/locales/tk.ts +1 -0
  108. package/src/v4/locales/tr.ts +1 -0
  109. package/src/v4/locales/uk.ts +1 -0
  110. package/src/v4/locales/ur.ts +1 -0
  111. package/src/v4/locales/uz.ts +1 -0
  112. package/src/v4/locales/vi.ts +1 -0
  113. package/src/v4/locales/yo.ts +1 -0
  114. package/src/v4/locales/zh-CN.ts +1 -0
  115. package/src/v4/locales/zh-TW.ts +1 -0
  116. package/src/v4/mini/checks.ts +0 -1
  117. package/src/v4/mini/external.ts +2 -0
  118. package/src/v4/mini/schemas.ts +38 -2
  119. package/src/v4/mini/tests/checks.test.ts +1 -1
  120. package/src/v4/mini/tests/computed.test.ts +11 -17
  121. package/src/v4/mini/tests/index.test.ts +8 -0
  122. package/src/v4/mini/tests/recursive-types.test.ts +16 -0
  123. package/src/v4/mini/tests/string.test.ts +16 -0
  124. package/v3/ZodError.cjs +19 -0
  125. package/v3/errors.cjs +19 -0
  126. package/v3/external.cjs +19 -0
  127. package/v3/helpers/enumUtil.cjs +19 -0
  128. package/v3/helpers/errorUtil.cjs +20 -1
  129. package/v3/helpers/errorUtil.js +1 -1
  130. package/v3/helpers/parseUtil.cjs +19 -0
  131. package/v3/helpers/partialUtil.cjs +19 -0
  132. package/v3/helpers/typeAliases.cjs +19 -0
  133. package/v3/helpers/util.cjs +19 -0
  134. package/v3/index.cjs +19 -0
  135. package/v3/standard-schema.cjs +19 -0
  136. package/v3/types.cjs +19 -0
  137. package/v4/classic/checks.cjs +20 -2
  138. package/v4/classic/checks.d.cts +1 -1
  139. package/v4/classic/checks.d.ts +1 -1
  140. package/v4/classic/checks.js +1 -1
  141. package/v4/classic/coerce.cjs +19 -0
  142. package/v4/classic/compat.cjs +19 -0
  143. package/v4/classic/deep-partial.cjs +19 -0
  144. package/v4/classic/errors.cjs +19 -0
  145. package/v4/classic/external.cjs +22 -1
  146. package/v4/classic/external.d.cts +1 -1
  147. package/v4/classic/external.d.ts +1 -1
  148. package/v4/classic/external.js +1 -1
  149. package/v4/classic/from-json-schema.cjs +264 -24
  150. package/v4/classic/from-json-schema.js +245 -24
  151. package/v4/classic/in-out.cjs +19 -0
  152. package/v4/classic/index.cjs +19 -0
  153. package/v4/classic/iso.cjs +19 -0
  154. package/v4/classic/parse.cjs +19 -0
  155. package/v4/classic/schemas.cjs +100 -31
  156. package/v4/classic/schemas.d.cts +17 -1
  157. package/v4/classic/schemas.d.ts +17 -1
  158. package/v4/classic/schemas.js +77 -29
  159. package/v4/core/api.cjs +37 -2
  160. package/v4/core/api.d.cts +6 -4
  161. package/v4/core/api.d.ts +6 -4
  162. package/v4/core/api.js +17 -2
  163. package/v4/core/checks.cjs +19 -96
  164. package/v4/core/checks.d.cts +1 -1
  165. package/v4/core/checks.d.ts +1 -1
  166. package/v4/core/checks.js +0 -96
  167. package/v4/core/compile.cjs +165 -66
  168. package/v4/core/compile.d.cts +18 -4
  169. package/v4/core/compile.d.ts +18 -4
  170. package/v4/core/compile.js +146 -67
  171. package/v4/core/core.cjs +19 -0
  172. package/v4/core/doc.cjs +26 -2
  173. package/v4/core/doc.js +7 -2
  174. package/v4/core/errors.cjs +21 -5
  175. package/v4/core/errors.js +2 -5
  176. package/v4/core/index.cjs +19 -0
  177. package/v4/core/json-schema-generator.cjs +20 -1
  178. package/v4/core/json-schema-generator.js +2 -2
  179. package/v4/core/json-schema-processors.cjs +215 -63
  180. package/v4/core/json-schema-processors.d.cts +17 -0
  181. package/v4/core/json-schema-processors.d.ts +17 -0
  182. package/v4/core/json-schema-processors.js +195 -64
  183. package/v4/core/json-schema.cjs +19 -0
  184. package/v4/core/memoizer.cjs +114 -23
  185. package/v4/core/memoizer.js +72 -23
  186. package/v4/core/parse.cjs +56 -16
  187. package/v4/core/parse.js +37 -16
  188. package/v4/core/regexes.cjs +29 -6
  189. package/v4/core/regexes.d.cts +2 -0
  190. package/v4/core/regexes.d.ts +2 -0
  191. package/v4/core/regexes.js +8 -4
  192. package/v4/core/registries.cjs +19 -0
  193. package/v4/core/schemas.cjs +322 -95
  194. package/v4/core/schemas.d.cts +42 -7
  195. package/v4/core/schemas.d.ts +42 -7
  196. package/v4/core/schemas.js +301 -94
  197. package/v4/core/standard-schema.cjs +19 -0
  198. package/v4/core/to-json-schema.cjs +29 -7
  199. package/v4/core/to-json-schema.d.cts +7 -3
  200. package/v4/core/to-json-schema.d.ts +7 -3
  201. package/v4/core/to-json-schema.js +8 -7
  202. package/v4/core/util.cjs +181 -143
  203. package/v4/core/util.d.cts +25 -4
  204. package/v4/core/util.d.ts +25 -4
  205. package/v4/core/util.js +160 -143
  206. package/v4/core/versions.cjs +21 -2
  207. package/v4/core/versions.d.cts +1 -1
  208. package/v4/core/versions.d.ts +1 -1
  209. package/v4/core/versions.js +2 -2
  210. package/v4/core/visit.cjs +31 -0
  211. package/v4/core/visit.js +12 -0
  212. package/v4/index.cjs +19 -0
  213. package/v4/locales/ar.cjs +1 -0
  214. package/v4/locales/ar.js +1 -0
  215. package/v4/locales/az.cjs +1 -0
  216. package/v4/locales/az.js +1 -0
  217. package/v4/locales/be.cjs +1 -0
  218. package/v4/locales/be.js +1 -0
  219. package/v4/locales/bg.cjs +1 -0
  220. package/v4/locales/bg.js +1 -0
  221. package/v4/locales/bn.cjs +1 -0
  222. package/v4/locales/bn.js +1 -0
  223. package/v4/locales/ca.cjs +1 -0
  224. package/v4/locales/ca.js +1 -0
  225. package/v4/locales/ckb.cjs +1 -0
  226. package/v4/locales/ckb.js +1 -0
  227. package/v4/locales/cs.cjs +1 -0
  228. package/v4/locales/cs.js +1 -0
  229. package/v4/locales/da.cjs +1 -0
  230. package/v4/locales/da.js +1 -0
  231. package/v4/locales/de.cjs +1 -0
  232. package/v4/locales/de.js +1 -0
  233. package/v4/locales/el.cjs +1 -0
  234. package/v4/locales/el.js +1 -0
  235. package/v4/locales/en.cjs +1 -0
  236. package/v4/locales/en.js +1 -0
  237. package/v4/locales/eo.cjs +1 -0
  238. package/v4/locales/eo.js +1 -0
  239. package/v4/locales/es.cjs +1 -0
  240. package/v4/locales/es.js +1 -0
  241. package/v4/locales/fa.cjs +1 -0
  242. package/v4/locales/fa.js +1 -0
  243. package/v4/locales/fi.cjs +1 -0
  244. package/v4/locales/fi.js +1 -0
  245. package/v4/locales/fr-CA.cjs +1 -0
  246. package/v4/locales/fr-CA.js +1 -0
  247. package/v4/locales/fr.cjs +1 -0
  248. package/v4/locales/fr.js +1 -0
  249. package/v4/locales/gu.cjs +1 -0
  250. package/v4/locales/gu.js +1 -0
  251. package/v4/locales/he.cjs +1 -0
  252. package/v4/locales/he.js +1 -0
  253. package/v4/locales/hi.cjs +1 -0
  254. package/v4/locales/hi.js +1 -0
  255. package/v4/locales/hr.cjs +1 -0
  256. package/v4/locales/hr.js +1 -0
  257. package/v4/locales/hu.cjs +1 -0
  258. package/v4/locales/hu.js +1 -0
  259. package/v4/locales/hy.cjs +1 -0
  260. package/v4/locales/hy.js +1 -0
  261. package/v4/locales/id.cjs +1 -0
  262. package/v4/locales/id.js +1 -0
  263. package/v4/locales/index.cjs +22 -1
  264. package/v4/locales/index.d.cts +1 -0
  265. package/v4/locales/index.d.ts +1 -0
  266. package/v4/locales/index.js +1 -0
  267. package/v4/locales/is.cjs +1 -0
  268. package/v4/locales/is.js +1 -0
  269. package/v4/locales/it.cjs +1 -0
  270. package/v4/locales/it.js +1 -0
  271. package/v4/locales/ja.cjs +1 -0
  272. package/v4/locales/ja.js +1 -0
  273. package/v4/locales/ka.cjs +1 -0
  274. package/v4/locales/ka.js +1 -0
  275. package/v4/locales/km.cjs +1 -0
  276. package/v4/locales/km.js +1 -0
  277. package/v4/locales/kn.cjs +1 -0
  278. package/v4/locales/kn.js +1 -0
  279. package/v4/locales/ko.cjs +1 -0
  280. package/v4/locales/ko.js +1 -0
  281. package/v4/locales/lt.cjs +1 -0
  282. package/v4/locales/lt.js +1 -0
  283. package/v4/locales/mk.cjs +1 -0
  284. package/v4/locales/mk.js +1 -0
  285. package/v4/locales/ms.cjs +1 -0
  286. package/v4/locales/ms.js +1 -0
  287. package/v4/locales/ne.cjs +1 -0
  288. package/v4/locales/ne.js +1 -0
  289. package/v4/locales/nl.cjs +1 -0
  290. package/v4/locales/nl.js +1 -0
  291. package/v4/locales/nn.cjs +1 -0
  292. package/v4/locales/nn.js +1 -0
  293. package/v4/locales/no.cjs +1 -0
  294. package/v4/locales/no.js +1 -0
  295. package/v4/locales/ota.cjs +1 -0
  296. package/v4/locales/ota.js +1 -0
  297. package/v4/locales/pl.cjs +1 -0
  298. package/v4/locales/pl.js +1 -0
  299. package/v4/locales/ps.cjs +1 -0
  300. package/v4/locales/ps.js +1 -0
  301. package/v4/locales/pt-BR.cjs +1 -0
  302. package/v4/locales/pt-BR.js +1 -0
  303. package/v4/locales/pt.cjs +1 -0
  304. package/v4/locales/pt.js +1 -0
  305. package/v4/locales/ro.cjs +1 -0
  306. package/v4/locales/ro.js +1 -0
  307. package/v4/locales/ru.cjs +1 -0
  308. package/v4/locales/ru.js +1 -0
  309. package/v4/locales/sk.cjs +1 -0
  310. package/v4/locales/sk.js +1 -0
  311. package/v4/locales/sl.cjs +1 -0
  312. package/v4/locales/sl.js +1 -0
  313. package/v4/locales/sv.cjs +1 -0
  314. package/v4/locales/sv.js +1 -0
  315. package/v4/locales/ta.cjs +1 -0
  316. package/v4/locales/ta.js +1 -0
  317. package/v4/locales/tg.cjs +143 -0
  318. package/v4/locales/tg.d.cts +5 -0
  319. package/v4/locales/tg.d.ts +4 -0
  320. package/v4/locales/tg.js +116 -0
  321. package/v4/locales/th.cjs +1 -0
  322. package/v4/locales/th.js +1 -0
  323. package/v4/locales/tk.cjs +1 -0
  324. package/v4/locales/tk.js +1 -0
  325. package/v4/locales/tr.cjs +1 -0
  326. package/v4/locales/tr.js +1 -0
  327. package/v4/locales/uk.cjs +1 -0
  328. package/v4/locales/uk.js +1 -0
  329. package/v4/locales/ur.cjs +1 -0
  330. package/v4/locales/ur.js +1 -0
  331. package/v4/locales/uz.cjs +1 -0
  332. package/v4/locales/uz.js +1 -0
  333. package/v4/locales/vi.cjs +1 -0
  334. package/v4/locales/vi.js +1 -0
  335. package/v4/locales/yo.cjs +1 -0
  336. package/v4/locales/yo.js +1 -0
  337. package/v4/locales/zh-CN.cjs +1 -0
  338. package/v4/locales/zh-CN.js +1 -0
  339. package/v4/locales/zh-TW.cjs +1 -0
  340. package/v4/locales/zh-TW.js +1 -0
  341. package/v4/mini/checks.cjs +20 -2
  342. package/v4/mini/checks.d.cts +1 -1
  343. package/v4/mini/checks.d.ts +1 -1
  344. package/v4/mini/checks.js +1 -1
  345. package/v4/mini/coerce.cjs +19 -0
  346. package/v4/mini/deep-partial.cjs +19 -0
  347. package/v4/mini/external.cjs +22 -1
  348. package/v4/mini/external.d.cts +1 -1
  349. package/v4/mini/external.d.ts +1 -1
  350. package/v4/mini/external.js +1 -1
  351. package/v4/mini/in-out.cjs +19 -0
  352. package/v4/mini/index.cjs +19 -0
  353. package/v4/mini/iso.cjs +19 -0
  354. package/v4/mini/parse.cjs +19 -0
  355. package/v4/mini/schemas.cjs +42 -4
  356. package/v4/mini/schemas.d.cts +8 -0
  357. package/v4/mini/schemas.d.ts +8 -0
  358. package/v4/mini/schemas.js +19 -2
  359. package/v4-mini/index.cjs +19 -0
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "chaîne JSON",
47
47
  e164: "numéro E.164",
48
48
  credit_card: "numéro de carte de crédit",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "entrée",
51
52
  };
@@ -45,6 +45,7 @@ const error: () => errors.$ZodErrorMap = () => {
45
45
  json_string: "chaîne de caractères JSON",
46
46
  e164: "numéro au format E.164",
47
47
  credit_card: "numéro de carte de crédit",
48
+ iban: "IBAN",
48
49
  jwt: "JWT",
49
50
  template_literal: "entrée",
50
51
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON સ્ટ્રિંગ",
47
47
  e164: "E.164 નંબર",
48
48
  credit_card: "ક્રેડિટ કાર્ડ નંબર",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "ઇનપુટ",
51
52
  };
@@ -88,6 +88,7 @@ const error: () => errors.$ZodErrorMap = () => {
88
88
  json_string: { label: "מחרוזת JSON", gender: "f" },
89
89
  e164: { label: "מספר E.164", gender: "m" },
90
90
  credit_card: { label: "מספר כרטיס אשראי", gender: "m" },
91
+ iban: { label: "IBAN", gender: "m" },
91
92
  jwt: { label: "JWT", gender: "m" },
92
93
  template_literal: { label: "קלט", gender: "m" },
93
94
  ends_with: { label: "קלט", gender: "m" },
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON स्ट्रिंग",
47
47
  e164: "E.164 संख्या",
48
48
  credit_card: "क्रेडिट कार्ड संख्या",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "इनपुट",
51
52
  };
@@ -45,6 +45,7 @@ const error: () => errors.$ZodErrorMap = () => {
45
45
  json_string: "JSON tekst",
46
46
  e164: "E.164 broj",
47
47
  credit_card: "broj kreditne kartice",
48
+ iban: "IBAN",
48
49
  jwt: "JWT",
49
50
  template_literal: "unos",
50
51
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON string",
47
47
  e164: "E.164 szám",
48
48
  credit_card: "hitelkártyaszám",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "bemenet",
51
52
  };
@@ -95,6 +95,7 @@ const error: () => errors.$ZodErrorMap = () => {
95
95
  json_string: "JSON տող",
96
96
  e164: "E.164 համար",
97
97
  credit_card: "կրեդիտ քարտի համար",
98
+ iban: "IBAN",
98
99
  jwt: "JWT",
99
100
  template_literal: "մուտք",
100
101
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "string JSON",
47
47
  e164: "angka E.164",
48
48
  credit_card: "nomor kartu kredit",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -49,6 +49,7 @@ export { default as sk } from "./sk.js";
49
49
  export { default as sl } from "./sl.js";
50
50
  export { default as sv } from "./sv.js";
51
51
  export { default as ta } from "./ta.js";
52
+ export { default as tg } from "./tg.js";
52
53
  export { default as th } from "./th.js";
53
54
  export { default as tk } from "./tk.js";
54
55
  export { default as tr } from "./tr.js";
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON strengur",
47
47
  e164: "E.164 tölugildi",
48
48
  credit_card: "kreditkortanúmer",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "gildi",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "stringa JSON",
47
47
  e164: "numero E.164",
48
48
  credit_card: "numero di carta di credito",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON文字列",
47
47
  e164: "E.164番号",
48
48
  credit_card: "クレジットカード番号",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "入力値",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON ველი",
47
47
  e164: "E.164 ნომერი",
48
48
  credit_card: "საკრედიტო ბარათის ნომერი",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "შეყვანა",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "ខ្សែអក្សរ JSON",
47
47
  e164: "លេខ E.164",
48
48
  credit_card: "លេខប័ណ្ណឥណទាន",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "ទិន្នន័យបញ្ចូល",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSONಸ್ಟ್ರಿಂಗ್",
47
47
  e164: "E.164 ಸಂಖ್ಯೆ",
48
48
  credit_card: "ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆ",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "ಇನ್ಪುಟ್",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON 문자열",
47
47
  e164: "E.164 번호",
48
48
  credit_card: "신용카드 번호",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "입력",
51
52
  };
@@ -146,6 +146,7 @@ const error: () => errors.$ZodErrorMap = () => {
146
146
  json_string: "JSON eilutė",
147
147
  e164: "E.164 numeris",
148
148
  credit_card: "kredito kortelės numeris",
149
+ iban: "IBAN",
149
150
  jwt: "JWT",
150
151
  template_literal: "įvestis",
151
152
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON низа",
47
47
  e164: "E.164 број",
48
48
  credit_card: "број на кредитна картичка",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "внес",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "string JSON",
47
47
  e164: "nombor E.164",
48
48
  credit_card: "nombor kad kredit",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON स्ट्रिङ",
47
47
  e164: "E.164 नम्बर",
48
48
  credit_card: "क्रेडिट कार्ड नम्बर",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "इनपुट",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON string",
47
47
  e164: "E.164-nummer",
48
48
  credit_card: "creditcardnummer",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "invoer",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON-streng",
47
47
  e164: "E.164-nummer",
48
48
  credit_card: "kredittkortnummer",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON-streng",
47
47
  e164: "E.164-nummer",
48
48
  credit_card: "kredittkortnummer",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON metin",
47
47
  e164: "E.164 sayısı",
48
48
  credit_card: "i'tibâr kartı numarası",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "giren",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "ciąg znaków w formacie JSON",
47
47
  e164: "liczba E.164",
48
48
  credit_card: "numer karty kredytowej",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "wejście",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON متن",
47
47
  e164: "د E.164 شمېره",
48
48
  credit_card: "د کریډیټ کارت شمیره",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "ورودي",
51
52
  };
@@ -47,6 +47,7 @@ const error: () => errors.$ZodErrorMap = () => {
47
47
  json_string: "o texto JSON",
48
48
  e164: "o número E.164",
49
49
  credit_card: "o número de cartão de crédito",
50
+ iban: "o IBAN",
50
51
  jwt: "o JWT",
51
52
  template_literal: "a entrada",
52
53
  };
@@ -47,6 +47,7 @@ const error: () => errors.$ZodErrorMap = () => {
47
47
  json_string: "o texto JSON",
48
48
  e164: "o número E.164",
49
49
  credit_card: "o número de cartão de crédito",
50
+ iban: "o IBAN",
50
51
  jwt: "o JWT",
51
52
  template_literal: "a entrada",
52
53
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "șir JSON",
47
47
  e164: "număr E.164",
48
48
  credit_card: "număr de card de credit",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "intrare",
51
52
  };
@@ -109,6 +109,7 @@ const error: () => errors.$ZodErrorMap = () => {
109
109
  json_string: "JSON строка",
110
110
  e164: "номер E.164",
111
111
  credit_card: "номер кредитной карты",
112
+ iban: "IBAN",
112
113
  jwt: "JWT",
113
114
  template_literal: "ввод",
114
115
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "reťazec vo formáte JSON",
47
47
  e164: "číslo E.164",
48
48
  credit_card: "číslo kreditnej karty",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "vstup",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON niz",
47
47
  e164: "E.164 številka",
48
48
  credit_card: "številka kreditne kartice",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "vnos",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON-sträng",
47
47
  e164: "E.164-nummer",
48
48
  credit_card: "kreditkortsnummer",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "mall-literal",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON சரம்",
47
47
  e164: "E.164 எண்",
48
48
  credit_card: "கடன் அட்டை எண்",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "input",
51
52
  };
@@ -0,0 +1,134 @@
1
+ import type { $ZodStringFormats } from "../core/checks.js";
2
+ import type * as errors from "../core/errors.js";
3
+ import * as util from "../core/util.js";
4
+
5
+ const error: () => errors.$ZodErrorMap = () => {
6
+ // singular units after numerals in Tajik
7
+ const Sizable: Record<string, { unit: string; verb: string }> = {
8
+ string: { unit: "аломат", verb: "дошта бошад" },
9
+ file: { unit: "байт", verb: "дошта бошад" },
10
+ array: { unit: "унсур", verb: "дошта бошад" },
11
+ set: { unit: "унсур", verb: "дошта бошад" },
12
+ map: { unit: "сабт", verb: "дошта бошад" },
13
+ };
14
+
15
+ function getSizing(origin: string): { unit: string; verb: string } | null {
16
+ return Sizable[origin] ?? null;
17
+ }
18
+
19
+ const FormatDictionary: {
20
+ [k in $ZodStringFormats | (string & {})]?: string;
21
+ } = {
22
+ regex: "вуруд",
23
+ email: "суроғаи email",
24
+ url: "URL",
25
+ emoji: "эмоҷи",
26
+ uuid: "UUID",
27
+ uuidv4: "UUIDv4",
28
+ uuidv6: "UUIDv6",
29
+ nanoid: "nanoid",
30
+ guid: "GUID",
31
+ cuid: "cuid",
32
+ cuid2: "cuid2",
33
+ ulid: "ULID",
34
+ xid: "XID",
35
+ ksuid: "KSUID",
36
+ datetime: "санаву вақти ISO",
37
+ date: "санаи ISO",
38
+ time: "вақти ISO",
39
+ duration: "давомнокии ISO",
40
+ ipv4: "суроғаи IPv4",
41
+ ipv6: "суроғаи IPv6",
42
+ mac: "суроғаи MAC",
43
+ cidrv4: "маҳдудаи IPv4",
44
+ cidrv6: "маҳдудаи IPv6",
45
+ base64: "сатри дар формати base64",
46
+ base64url: "сатри дар формати base64url",
47
+ json_string: "сатри JSON",
48
+ e164: "рақами E.164",
49
+ credit_card: "рақами корти кредитӣ",
50
+ iban: "IBAN",
51
+ jwt: "JWT",
52
+ template_literal: "вуруд",
53
+ };
54
+
55
+ const TypeDictionary: {
56
+ [k in errors.$ZodInvalidTypeExpected | (string & {})]?: string;
57
+ } = {
58
+ nan: "NaN",
59
+ number: "рақам",
60
+ string: "сатр",
61
+ array: "массив",
62
+ object: "объект",
63
+ date: "сана",
64
+ };
65
+
66
+ return (issue) => {
67
+ switch (issue.code) {
68
+ case "invalid_type": {
69
+ const expected = TypeDictionary[issue.expected] ?? issue.expected;
70
+ const receivedType = util.parsedType(issue.input);
71
+ const received = TypeDictionary[receivedType] ?? receivedType;
72
+ return `Вуруди нодуруст: ${expected} интизор мерафт, ${received} гирифта шуд`;
73
+ }
74
+
75
+ case "invalid_value":
76
+ if (issue.values.length === 1)
77
+ return `Вуруди нодуруст: ${util.stringifyPrimitive(issue.values[0])} интизор мерафт`;
78
+ return `Интихоби нодуруст: яке аз ${util.joinValues(issue.values, "|")} интизор мерафт`;
79
+
80
+ case "too_big": {
81
+ const adj = issue.inclusive ? "<=" : "<";
82
+ const sizing = getSizing(issue.origin);
83
+ if (sizing)
84
+ return `Хеле калон: ${issue.origin ?? "қимат"} бояд ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;
85
+ return `Хеле калон: ${issue.origin ?? "қимат"} бояд ${adj}${issue.maximum.toString()} бошад`;
86
+ }
87
+
88
+ case "too_small": {
89
+ const adj = issue.inclusive ? ">=" : ">";
90
+ const sizing = getSizing(issue.origin);
91
+ if (sizing)
92
+ return `Хеле хурд: ${issue.origin} бояд ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;
93
+ return `Хеле хурд: ${issue.origin} бояд ${adj}${issue.minimum.toString()} бошад`;
94
+ }
95
+
96
+ case "invalid_format": {
97
+ const _issue = issue as errors.$ZodStringFormatIssues;
98
+ if (_issue.format === "starts_with") return `Сатри нодуруст: бояд бо "${_issue.prefix}" оғоз шавад`;
99
+ if (_issue.format === "ends_with") return `Сатри нодуруст: бояд бо "${_issue.suffix}" анҷом ёбад`;
100
+ if (_issue.format === "includes") return `Сатри нодуруст: бояд "${_issue.includes}"-ро дар бар гирад`;
101
+ if (_issue.format === "regex") return `Сатри нодуруст: бояд ба намунаи ${_issue.pattern} мувофиқат кунад`;
102
+ return `${FormatDictionary[_issue.format] ?? issue.format}-и нодуруст`;
103
+ }
104
+
105
+ case "not_multiple_of":
106
+ return `Рақами нодуруст: бояд ба ${issue.divisor} бе бақия тақсим шавад`;
107
+
108
+ case "unrecognized_keys":
109
+ return `Калид${issue.keys.length > 1 ? "ҳои" : "и"} номаълум: ${util.joinValues(issue.keys, ", ")}`;
110
+
111
+ case "invalid_key":
112
+ return `Калиди нодуруст дар ${issue.origin}`;
113
+
114
+ case "invalid_union":
115
+ if (issue.options && Array.isArray(issue.options) && issue.options.length > 0) {
116
+ const opts = issue.options.map((o) => `'${o}'`).join(" | ");
117
+ return `Қимати нодурусти дискриминатор: ${opts} интизор мерафт`;
118
+ }
119
+ return "Вуруди нодуруст";
120
+
121
+ case "invalid_element":
122
+ return `Қимати нодуруст дар ${issue.origin}`;
123
+
124
+ default:
125
+ return `Вуруди нодуруст`;
126
+ }
127
+ };
128
+ };
129
+
130
+ export default function (): { localeError: errors.$ZodErrorMap } {
131
+ return {
132
+ localeError: error(),
133
+ };
134
+ }
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "ข้อความแบบ JSON",
47
47
  e164: "เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",
48
48
  credit_card: "หมายเลขบัตรเครดิต",
49
+ iban: "IBAN",
49
50
  jwt: "โทเคน JWT",
50
51
  template_literal: "ข้อมูลที่ป้อน",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON setiri",
47
47
  e164: "E.164 nomeri",
48
48
  credit_card: "kredit kartynyň nomeri",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "şablon",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON dizesi",
47
47
  e164: "E.164 sayısı",
48
48
  credit_card: "kredi kartı numarası",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "Şablon dizesi",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "рядок JSON",
47
47
  e164: "номер E.164",
48
48
  credit_card: "номер кредитної картки",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "вхідні дані",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "جے ایس او این سٹرنگ",
47
47
  e164: "ای 164 نمبر",
48
48
  credit_card: "کریڈٹ کارڈ نمبر",
49
+ iban: "IBAN",
49
50
  jwt: "جے ڈبلیو ٹی",
50
51
  template_literal: "ان پٹ",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON satr",
47
47
  e164: "E.164 raqam",
48
48
  credit_card: "kredit karta raqami",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "kirish",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "chuỗi JSON",
47
47
  e164: "số E.164",
48
48
  credit_card: "số thẻ tín dụng",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "đầu vào",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "ọ̀rọ̀ JSON",
47
47
  e164: "nọ́mbà E.164",
48
48
  credit_card: "nọmba kaadi gbese",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "ẹ̀rọ ìbáwọlé",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON字符串",
47
47
  e164: "E.164号码",
48
48
  credit_card: "信用卡号",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "输入",
51
52
  };
@@ -46,6 +46,7 @@ const error: () => errors.$ZodErrorMap = () => {
46
46
  json_string: "JSON 字串",
47
47
  e164: "E.164 數值",
48
48
  credit_card: "信用卡號",
49
+ iban: "IBAN",
49
50
  jwt: "JWT",
50
51
  template_literal: "輸入",
51
52
  };
@@ -23,7 +23,6 @@ export {
23
23
  _startsWith as startsWith,
24
24
  _endsWith as endsWith,
25
25
  _property as property,
26
- _properties as properties,
27
26
  _mime as mime,
28
27
  _overwrite as overwrite,
29
28
  _normalize as normalize,
@@ -25,8 +25,10 @@ export {
25
25
  TimePrecision,
26
26
  util,
27
27
  NEVER,
28
+ INVALID,
28
29
  toZod,
29
30
  compile,
31
+ withParser,
30
32
  ZodCompileAsyncError,
31
33
  ZodCompileUnsupportedError,
32
34
  getDiscriminatedOption,
@@ -509,6 +509,21 @@ export function creditCard(params?: string | core.$ZodCreditCardParams): ZodMini
509
509
  return core._creditCard(ZodMiniCreditCard, params);
510
510
  }
511
511
 
512
+ // ZodMiniIBAN
513
+ export interface ZodMiniIBAN extends _ZodMiniString<core.$ZodIBANInternals> {}
514
+ export const ZodMiniIBAN: core.$constructor<ZodMiniIBAN> = /*@__PURE__*/ core.$constructor(
515
+ "ZodMiniIBAN",
516
+ (inst, def) => {
517
+ core.$ZodIBAN.init(inst, def);
518
+ ZodMiniStringFormat.init(inst, def);
519
+ }
520
+ );
521
+
522
+ // @__NO_SIDE_EFFECTS__
523
+ export function iban(params?: string | core.$ZodIBANParams): ZodMiniIBAN {
524
+ return core._iban(ZodMiniIBAN, params);
525
+ }
526
+
512
527
  // ZodMiniJWT
513
528
  export interface ZodMiniJWT extends _ZodMiniString<core.$ZodJWTInternals> {
514
529
  // _zod: core.$ZodJWTInternals;
@@ -1094,7 +1109,8 @@ export function catchall<T extends ZodMiniObject, U extends SomeType>(
1094
1109
  inst: T,
1095
1110
  catchall: U
1096
1111
  ): ZodMiniObject<T["shape"], core.$catchall<U>> {
1097
- return inst.clone({ ...inst._zod.def, catchall: catchall as any }) as any;
1112
+ // `mergeDefs` rather than a spread: spreading reads `shape`, and resolving it can mint a whole fresh subtree
1113
+ return inst.clone(util.mergeDefs(inst._zod.def, { catchall: catchall as any })) as any;
1098
1114
  }
1099
1115
 
1100
1116
  // ZodMiniUnion
@@ -1362,7 +1378,8 @@ export const ZodMiniEnum: core.$constructor<ZodMiniEnum> = /*@__PURE__*/ core.$c
1362
1378
  core.$ZodEnum.init(inst, def);
1363
1379
  ZodMiniType.init(inst, def);
1364
1380
 
1365
- inst.options = Object.values(def.entries);
1381
+ // reuse the parsed value set so a numeric TS enum's reverse-mapping keys stay out
1382
+ inst.options = [...inst._zod.values] as util.EnumValue[];
1366
1383
  }
1367
1384
  );
1368
1385
 
@@ -1849,6 +1866,25 @@ export const ZodMiniCustom: core.$constructor<ZodMiniCustom> = /*@__PURE__*/ cor
1849
1866
  }
1850
1867
  );
1851
1868
 
1869
+ // ZodMiniProperties
1870
+ export interface ZodMiniProperties<Shape extends core.$ZodShape = core.$ZodShape>
1871
+ extends _ZodMiniType<core.$ZodPropertiesInternals<Shape>>,
1872
+ core.$ZodProperties<Shape> {}
1873
+ export const ZodMiniProperties: core.$constructor<ZodMiniProperties> = /*@__PURE__*/ core.$constructor(
1874
+ "ZodMiniProperties",
1875
+ (inst, def) => {
1876
+ core.$ZodProperties.init(inst, def);
1877
+ ZodMiniType.init(inst, def);
1878
+ }
1879
+ );
1880
+
1881
+ export function properties<Shape extends core.$ZodShape>(
1882
+ shape: Shape,
1883
+ params?: string | core.$ZodPropertiesParams
1884
+ ): ZodMiniProperties<Shape> {
1885
+ return core._properties(ZodMiniProperties, shape, params) as any;
1886
+ }
1887
+
1852
1888
  // custom checks
1853
1889
  // @__NO_SIDE_EFFECTS__
1854
1890
  export function check<O = unknown>(fn: core.CheckFn<O>, params?: string | core.$ZodCustomParams): core.$ZodCheck<O> {
@@ -141,7 +141,7 @@ test("z.overwrite", () => {
141
141
  // property
142
142
 
143
143
  test("z.properties", () => {
144
- const a = z.instanceof(URL).check(...z.properties({ protocol: z.literal("https:" as string), hostname: z.string() }));
144
+ const a = z.instanceof(URL).check(...z.properties({ protocol: z.literal("https:"), hostname: z.string() }));
145
145
  expect(z.safeParse(a, new URL("https://example.com")).success).toEqual(true);
146
146
  expect(z.safeParse(a, new URL("http://example.com")).error!.issues.map((i) => i.path)).toEqual([["protocol"]]);
147
147
  });