zod 3.25.21 → 3.25.22

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 (506) hide show
  1. package/package.json +2 -2
  2. package/dist/cjs/v3/tests/all-errors.test.js +0 -147
  3. package/dist/cjs/v3/tests/anyunknown.test.js +0 -47
  4. package/dist/cjs/v3/tests/array.test.js +0 -80
  5. package/dist/cjs/v3/tests/async-parsing.test.js +0 -381
  6. package/dist/cjs/v3/tests/async-refinements.test.js +0 -60
  7. package/dist/cjs/v3/tests/base.test.js +0 -47
  8. package/dist/cjs/v3/tests/bigint.test.js +0 -74
  9. package/dist/cjs/v3/tests/branded.test.js +0 -58
  10. package/dist/cjs/v3/tests/catch.test.js +0 -181
  11. package/dist/cjs/v3/tests/coerce.test.js +0 -152
  12. package/dist/cjs/v3/tests/complex.test.js +0 -78
  13. package/dist/cjs/v3/tests/custom.test.js +0 -51
  14. package/dist/cjs/v3/tests/date.test.js +0 -49
  15. package/dist/cjs/v3/tests/deepmasking.test.js +0 -187
  16. package/dist/cjs/v3/tests/default.test.js +0 -86
  17. package/dist/cjs/v3/tests/description.test.js +0 -51
  18. package/dist/cjs/v3/tests/discriminated-unions.test.js +0 -321
  19. package/dist/cjs/v3/tests/enum.test.js +0 -91
  20. package/dist/cjs/v3/tests/error.test.js +0 -526
  21. package/dist/cjs/v3/tests/firstparty.test.js +0 -109
  22. package/dist/cjs/v3/tests/firstpartyschematypes.test.js +0 -8
  23. package/dist/cjs/v3/tests/function.test.js +0 -236
  24. package/dist/cjs/v3/tests/generics.test.js +0 -67
  25. package/dist/cjs/v3/tests/instanceof.test.js +0 -60
  26. package/dist/cjs/v3/tests/intersection.test.js +0 -111
  27. package/dist/cjs/v3/tests/language-server.source.js +0 -71
  28. package/dist/cjs/v3/tests/language-server.test.js +0 -177
  29. package/dist/cjs/v3/tests/literal.test.js +0 -55
  30. package/dist/cjs/v3/tests/map.test.js +0 -112
  31. package/dist/cjs/v3/tests/masking.test.js +0 -5
  32. package/dist/cjs/v3/tests/mocker.test.js +0 -19
  33. package/dist/cjs/v3/tests/nan.test.js +0 -42
  34. package/dist/cjs/v3/tests/nativeEnum.test.js +0 -100
  35. package/dist/cjs/v3/tests/nullable.test.js +0 -65
  36. package/dist/cjs/v3/tests/number.test.js +0 -189
  37. package/dist/cjs/v3/tests/object-augmentation.test.js +0 -50
  38. package/dist/cjs/v3/tests/object-in-es5-env.test.js +0 -49
  39. package/dist/cjs/v3/tests/object.test.js +0 -352
  40. package/dist/cjs/v3/tests/optional.test.js +0 -65
  41. package/dist/cjs/v3/tests/parseUtil.test.js +0 -20
  42. package/dist/cjs/v3/tests/parser.test.js +0 -55
  43. package/dist/cjs/v3/tests/partials.test.js +0 -201
  44. package/dist/cjs/v3/tests/pickomit.test.js +0 -113
  45. package/dist/cjs/v3/tests/pipeline.test.js +0 -50
  46. package/dist/cjs/v3/tests/preprocess.test.js +0 -181
  47. package/dist/cjs/v3/tests/primitive.test.js +0 -385
  48. package/dist/cjs/v3/tests/promise.test.js +0 -98
  49. package/dist/cjs/v3/tests/readonly.test.js +0 -190
  50. package/dist/cjs/v3/tests/record.test.js +0 -153
  51. package/dist/cjs/v3/tests/recursive.test.js +0 -161
  52. package/dist/cjs/v3/tests/refine.test.js +0 -279
  53. package/dist/cjs/v3/tests/safeparse.test.js +0 -46
  54. package/dist/cjs/v3/tests/set.test.js +0 -144
  55. package/dist/cjs/v3/tests/standard-schema.test.js +0 -102
  56. package/dist/cjs/v3/tests/string.test.js +0 -842
  57. package/dist/cjs/v3/tests/transformer.test.js +0 -218
  58. package/dist/cjs/v3/tests/tuple.test.js +0 -97
  59. package/dist/cjs/v3/tests/unions.test.js +0 -75
  60. package/dist/cjs/v3/tests/validations.test.js +0 -155
  61. package/dist/cjs/v3/tests/void.test.js +0 -36
  62. package/dist/cjs/v4/classic/tests/anyunknown.test.js +0 -45
  63. package/dist/cjs/v4/classic/tests/array.test.js +0 -249
  64. package/dist/cjs/v4/classic/tests/assignability.test.js +0 -110
  65. package/dist/cjs/v4/classic/tests/async-parsing.test.js +0 -364
  66. package/dist/cjs/v4/classic/tests/async-refinements.test.js +0 -82
  67. package/dist/cjs/v4/classic/tests/base.test.js +0 -31
  68. package/dist/cjs/v4/classic/tests/bigint.test.js +0 -73
  69. package/dist/cjs/v4/classic/tests/brand.test.js +0 -60
  70. package/dist/cjs/v4/classic/tests/catch.test.js +0 -214
  71. package/dist/cjs/v4/classic/tests/coalesce.test.js +0 -18
  72. package/dist/cjs/v4/classic/tests/coerce.test.js +0 -175
  73. package/dist/cjs/v4/classic/tests/custom.test.js +0 -38
  74. package/dist/cjs/v4/classic/tests/date.test.js +0 -48
  75. package/dist/cjs/v4/classic/tests/default.test.js +0 -88
  76. package/dist/cjs/v4/classic/tests/description.test.js +0 -51
  77. package/dist/cjs/v4/classic/tests/discriminated-unions.test.js +0 -540
  78. package/dist/cjs/v4/classic/tests/enum.test.js +0 -260
  79. package/dist/cjs/v4/classic/tests/error-utils.test.js +0 -411
  80. package/dist/cjs/v4/classic/tests/error.test.js +0 -651
  81. package/dist/cjs/v4/classic/tests/file.test.js +0 -68
  82. package/dist/cjs/v4/classic/tests/firstparty.test.js +0 -198
  83. package/dist/cjs/v4/classic/tests/function.test.js +0 -219
  84. package/dist/cjs/v4/classic/tests/generics.test.js +0 -72
  85. package/dist/cjs/v4/classic/tests/index.test.js +0 -765
  86. package/dist/cjs/v4/classic/tests/instanceof.test.js +0 -58
  87. package/dist/cjs/v4/classic/tests/intersection.test.js +0 -134
  88. package/dist/cjs/v4/classic/tests/json-schema.test.js +0 -1707
  89. package/dist/cjs/v4/classic/tests/json.test.js +0 -105
  90. package/dist/cjs/v4/classic/tests/lazy.test.js +0 -185
  91. package/dist/cjs/v4/classic/tests/literal.test.js +0 -94
  92. package/dist/cjs/v4/classic/tests/map.test.js +0 -193
  93. package/dist/cjs/v4/classic/tests/nan.test.js +0 -42
  94. package/dist/cjs/v4/classic/tests/nested-refine.test.js +0 -180
  95. package/dist/cjs/v4/classic/tests/nonoptional.test.js +0 -80
  96. package/dist/cjs/v4/classic/tests/nullable.test.js +0 -43
  97. package/dist/cjs/v4/classic/tests/number.test.js +0 -241
  98. package/dist/cjs/v4/classic/tests/object.test.js +0 -405
  99. package/dist/cjs/v4/classic/tests/optional.test.js +0 -98
  100. package/dist/cjs/v4/classic/tests/partial.test.js +0 -137
  101. package/dist/cjs/v4/classic/tests/pickomit.test.js +0 -125
  102. package/dist/cjs/v4/classic/tests/pipe.test.js +0 -92
  103. package/dist/cjs/v4/classic/tests/prefault.test.js +0 -22
  104. package/dist/cjs/v4/classic/tests/preprocess.test.js +0 -273
  105. package/dist/cjs/v4/classic/tests/primitive.test.js +0 -184
  106. package/dist/cjs/v4/classic/tests/promise.test.js +0 -91
  107. package/dist/cjs/v4/classic/tests/readonly.test.js +0 -241
  108. package/dist/cjs/v4/classic/tests/record.test.js +0 -307
  109. package/dist/cjs/v4/classic/tests/recursive-types.test.js +0 -108
  110. package/dist/cjs/v4/classic/tests/refine.test.js +0 -402
  111. package/dist/cjs/v4/classic/tests/registries.test.js +0 -155
  112. package/dist/cjs/v4/classic/tests/set.test.js +0 -182
  113. package/dist/cjs/v4/classic/tests/standard-schema.test.js +0 -77
  114. package/dist/cjs/v4/classic/tests/string-formats.test.js +0 -49
  115. package/dist/cjs/v4/classic/tests/string.test.js +0 -980
  116. package/dist/cjs/v4/classic/tests/template-literal.test.js +0 -705
  117. package/dist/cjs/v4/classic/tests/transform.test.js +0 -239
  118. package/dist/cjs/v4/classic/tests/tuple.test.js +0 -166
  119. package/dist/cjs/v4/classic/tests/union.test.js +0 -107
  120. package/dist/cjs/v4/classic/tests/validations.test.js +0 -301
  121. package/dist/cjs/v4/classic/tests/void.test.js +0 -34
  122. package/dist/cjs/v4/core/tests/index.test.js +0 -66
  123. package/dist/cjs/v4/core/tests/locales/be.test.js +0 -123
  124. package/dist/cjs/v4/core/tests/locales/en.test.js +0 -21
  125. package/dist/cjs/v4/core/tests/locales/ru.test.js +0 -123
  126. package/dist/cjs/v4/core/tests/locales/tr.test.js +0 -79
  127. package/dist/cjs/v4/mini/tests/assignability.test.js +0 -104
  128. package/dist/cjs/v4/mini/tests/brand.test.js +0 -58
  129. package/dist/cjs/v4/mini/tests/checks.test.js +0 -147
  130. package/dist/cjs/v4/mini/tests/computed.test.js +0 -55
  131. package/dist/cjs/v4/mini/tests/error.test.js +0 -45
  132. package/dist/cjs/v4/mini/tests/functions.test.js +0 -37
  133. package/dist/cjs/v4/mini/tests/index.test.js +0 -763
  134. package/dist/cjs/v4/mini/tests/number.test.js +0 -109
  135. package/dist/cjs/v4/mini/tests/object.test.js +0 -122
  136. package/dist/cjs/v4/mini/tests/prototypes.test.js +0 -44
  137. package/dist/cjs/v4/mini/tests/recursive-types.test.js +0 -106
  138. package/dist/cjs/v4/mini/tests/string.test.js +0 -265
  139. package/dist/types/v3/tests/all-errors.test.d.ts +0 -1
  140. package/dist/types/v3/tests/anyunknown.test.d.ts +0 -1
  141. package/dist/types/v3/tests/array.test.d.ts +0 -1
  142. package/dist/types/v3/tests/async-parsing.test.d.ts +0 -1
  143. package/dist/types/v3/tests/async-refinements.test.d.ts +0 -1
  144. package/dist/types/v3/tests/base.test.d.ts +0 -1
  145. package/dist/types/v3/tests/bigint.test.d.ts +0 -1
  146. package/dist/types/v3/tests/branded.test.d.ts +0 -1
  147. package/dist/types/v3/tests/catch.test.d.ts +0 -1
  148. package/dist/types/v3/tests/coerce.test.d.ts +0 -1
  149. package/dist/types/v3/tests/complex.test.d.ts +0 -1
  150. package/dist/types/v3/tests/custom.test.d.ts +0 -1
  151. package/dist/types/v3/tests/date.test.d.ts +0 -1
  152. package/dist/types/v3/tests/deepmasking.test.d.ts +0 -1
  153. package/dist/types/v3/tests/default.test.d.ts +0 -1
  154. package/dist/types/v3/tests/description.test.d.ts +0 -1
  155. package/dist/types/v3/tests/discriminated-unions.test.d.ts +0 -1
  156. package/dist/types/v3/tests/enum.test.d.ts +0 -1
  157. package/dist/types/v3/tests/error.test.d.ts +0 -1
  158. package/dist/types/v3/tests/firstparty.test.d.ts +0 -1
  159. package/dist/types/v3/tests/firstpartyschematypes.test.d.ts +0 -1
  160. package/dist/types/v3/tests/function.test.d.ts +0 -1
  161. package/dist/types/v3/tests/generics.test.d.ts +0 -1
  162. package/dist/types/v3/tests/instanceof.test.d.ts +0 -1
  163. package/dist/types/v3/tests/intersection.test.d.ts +0 -1
  164. package/dist/types/v3/tests/language-server.source.d.ts +0 -70
  165. package/dist/types/v3/tests/language-server.test.d.ts +0 -1
  166. package/dist/types/v3/tests/literal.test.d.ts +0 -1
  167. package/dist/types/v3/tests/map.test.d.ts +0 -1
  168. package/dist/types/v3/tests/masking.test.d.ts +0 -1
  169. package/dist/types/v3/tests/mocker.test.d.ts +0 -1
  170. package/dist/types/v3/tests/nan.test.d.ts +0 -1
  171. package/dist/types/v3/tests/nativeEnum.test.d.ts +0 -1
  172. package/dist/types/v3/tests/nullable.test.d.ts +0 -1
  173. package/dist/types/v3/tests/number.test.d.ts +0 -1
  174. package/dist/types/v3/tests/object-augmentation.test.d.ts +0 -1
  175. package/dist/types/v3/tests/object-in-es5-env.test.d.ts +0 -1
  176. package/dist/types/v3/tests/object.test.d.ts +0 -1
  177. package/dist/types/v3/tests/optional.test.d.ts +0 -1
  178. package/dist/types/v3/tests/parseUtil.test.d.ts +0 -1
  179. package/dist/types/v3/tests/parser.test.d.ts +0 -1
  180. package/dist/types/v3/tests/partials.test.d.ts +0 -1
  181. package/dist/types/v3/tests/pickomit.test.d.ts +0 -1
  182. package/dist/types/v3/tests/pipeline.test.d.ts +0 -1
  183. package/dist/types/v3/tests/preprocess.test.d.ts +0 -1
  184. package/dist/types/v3/tests/primitive.test.d.ts +0 -1
  185. package/dist/types/v3/tests/promise.test.d.ts +0 -1
  186. package/dist/types/v3/tests/readonly.test.d.ts +0 -1
  187. package/dist/types/v3/tests/record.test.d.ts +0 -1
  188. package/dist/types/v3/tests/recursive.test.d.ts +0 -1
  189. package/dist/types/v3/tests/refine.test.d.ts +0 -1
  190. package/dist/types/v3/tests/safeparse.test.d.ts +0 -1
  191. package/dist/types/v3/tests/set.test.d.ts +0 -1
  192. package/dist/types/v3/tests/standard-schema.test.d.ts +0 -1
  193. package/dist/types/v3/tests/string.test.d.ts +0 -1
  194. package/dist/types/v3/tests/transformer.test.d.ts +0 -1
  195. package/dist/types/v3/tests/tuple.test.d.ts +0 -1
  196. package/dist/types/v3/tests/unions.test.d.ts +0 -1
  197. package/dist/types/v3/tests/validations.test.d.ts +0 -1
  198. package/dist/types/v3/tests/void.test.d.ts +0 -1
  199. package/dist/types/v4/classic/tests/anyunknown.test.d.ts +0 -1
  200. package/dist/types/v4/classic/tests/array.test.d.ts +0 -1
  201. package/dist/types/v4/classic/tests/assignability.test.d.ts +0 -1
  202. package/dist/types/v4/classic/tests/async-parsing.test.d.ts +0 -1
  203. package/dist/types/v4/classic/tests/async-refinements.test.d.ts +0 -1
  204. package/dist/types/v4/classic/tests/base.test.d.ts +0 -1
  205. package/dist/types/v4/classic/tests/bigint.test.d.ts +0 -1
  206. package/dist/types/v4/classic/tests/brand.test.d.ts +0 -1
  207. package/dist/types/v4/classic/tests/catch.test.d.ts +0 -1
  208. package/dist/types/v4/classic/tests/coalesce.test.d.ts +0 -1
  209. package/dist/types/v4/classic/tests/coerce.test.d.ts +0 -1
  210. package/dist/types/v4/classic/tests/custom.test.d.ts +0 -1
  211. package/dist/types/v4/classic/tests/date.test.d.ts +0 -1
  212. package/dist/types/v4/classic/tests/default.test.d.ts +0 -1
  213. package/dist/types/v4/classic/tests/description.test.d.ts +0 -1
  214. package/dist/types/v4/classic/tests/discriminated-unions.test.d.ts +0 -1
  215. package/dist/types/v4/classic/tests/enum.test.d.ts +0 -1
  216. package/dist/types/v4/classic/tests/error-utils.test.d.ts +0 -1
  217. package/dist/types/v4/classic/tests/error.test.d.ts +0 -1
  218. package/dist/types/v4/classic/tests/file.test.d.ts +0 -1
  219. package/dist/types/v4/classic/tests/firstparty.test.d.ts +0 -1
  220. package/dist/types/v4/classic/tests/function.test.d.ts +0 -1
  221. package/dist/types/v4/classic/tests/generics.test.d.ts +0 -1
  222. package/dist/types/v4/classic/tests/index.test.d.ts +0 -1
  223. package/dist/types/v4/classic/tests/instanceof.test.d.ts +0 -1
  224. package/dist/types/v4/classic/tests/intersection.test.d.ts +0 -1
  225. package/dist/types/v4/classic/tests/json-schema.test.d.ts +0 -1
  226. package/dist/types/v4/classic/tests/json.test.d.ts +0 -1
  227. package/dist/types/v4/classic/tests/lazy.test.d.ts +0 -1
  228. package/dist/types/v4/classic/tests/literal.test.d.ts +0 -1
  229. package/dist/types/v4/classic/tests/map.test.d.ts +0 -1
  230. package/dist/types/v4/classic/tests/nan.test.d.ts +0 -1
  231. package/dist/types/v4/classic/tests/nested-refine.test.d.ts +0 -1
  232. package/dist/types/v4/classic/tests/nonoptional.test.d.ts +0 -1
  233. package/dist/types/v4/classic/tests/nullable.test.d.ts +0 -1
  234. package/dist/types/v4/classic/tests/number.test.d.ts +0 -1
  235. package/dist/types/v4/classic/tests/object.test.d.ts +0 -1
  236. package/dist/types/v4/classic/tests/optional.test.d.ts +0 -1
  237. package/dist/types/v4/classic/tests/partial.test.d.ts +0 -1
  238. package/dist/types/v4/classic/tests/pickomit.test.d.ts +0 -1
  239. package/dist/types/v4/classic/tests/pipe.test.d.ts +0 -1
  240. package/dist/types/v4/classic/tests/prefault.test.d.ts +0 -1
  241. package/dist/types/v4/classic/tests/preprocess.test.d.ts +0 -1
  242. package/dist/types/v4/classic/tests/primitive.test.d.ts +0 -1
  243. package/dist/types/v4/classic/tests/promise.test.d.ts +0 -1
  244. package/dist/types/v4/classic/tests/readonly.test.d.ts +0 -1
  245. package/dist/types/v4/classic/tests/record.test.d.ts +0 -1
  246. package/dist/types/v4/classic/tests/recursive-types.test.d.ts +0 -1
  247. package/dist/types/v4/classic/tests/refine.test.d.ts +0 -1
  248. package/dist/types/v4/classic/tests/registries.test.d.ts +0 -1
  249. package/dist/types/v4/classic/tests/set.test.d.ts +0 -1
  250. package/dist/types/v4/classic/tests/standard-schema.test.d.ts +0 -1
  251. package/dist/types/v4/classic/tests/string-formats.test.d.ts +0 -1
  252. package/dist/types/v4/classic/tests/string.test.d.ts +0 -1
  253. package/dist/types/v4/classic/tests/template-literal.test.d.ts +0 -1
  254. package/dist/types/v4/classic/tests/transform.test.d.ts +0 -1
  255. package/dist/types/v4/classic/tests/tuple.test.d.ts +0 -1
  256. package/dist/types/v4/classic/tests/union.test.d.ts +0 -1
  257. package/dist/types/v4/classic/tests/validations.test.d.ts +0 -1
  258. package/dist/types/v4/classic/tests/void.test.d.ts +0 -1
  259. package/dist/types/v4/core/tests/index.test.d.ts +0 -1
  260. package/dist/types/v4/core/tests/locales/be.test.d.ts +0 -1
  261. package/dist/types/v4/core/tests/locales/en.test.d.ts +0 -1
  262. package/dist/types/v4/core/tests/locales/ru.test.d.ts +0 -1
  263. package/dist/types/v4/core/tests/locales/tr.test.d.ts +0 -1
  264. package/dist/types/v4/mini/tests/assignability.test.d.ts +0 -1
  265. package/dist/types/v4/mini/tests/brand.test.d.ts +0 -1
  266. package/dist/types/v4/mini/tests/checks.test.d.ts +0 -1
  267. package/dist/types/v4/mini/tests/computed.test.d.ts +0 -1
  268. package/dist/types/v4/mini/tests/error.test.d.ts +0 -1
  269. package/dist/types/v4/mini/tests/functions.test.d.ts +0 -1
  270. package/dist/types/v4/mini/tests/index.test.d.ts +0 -1
  271. package/dist/types/v4/mini/tests/number.test.d.ts +0 -1
  272. package/dist/types/v4/mini/tests/object.test.d.ts +0 -1
  273. package/dist/types/v4/mini/tests/prototypes.test.d.ts +0 -1
  274. package/dist/types/v4/mini/tests/recursive-types.test.d.ts +0 -1
  275. package/dist/types/v4/mini/tests/string.test.d.ts +0 -1
  276. package/src/index.ts +0 -4
  277. package/src/v3/ZodError.ts +0 -329
  278. package/src/v3/benchmarks/datetime.ts +0 -58
  279. package/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  280. package/src/v3/benchmarks/index.ts +0 -59
  281. package/src/v3/benchmarks/ipv4.ts +0 -57
  282. package/src/v3/benchmarks/object.ts +0 -69
  283. package/src/v3/benchmarks/primitives.ts +0 -162
  284. package/src/v3/benchmarks/realworld.ts +0 -63
  285. package/src/v3/benchmarks/string.ts +0 -55
  286. package/src/v3/benchmarks/union.ts +0 -80
  287. package/src/v3/errors.ts +0 -13
  288. package/src/v3/external.ts +0 -6
  289. package/src/v3/helpers/enumUtil.ts +0 -17
  290. package/src/v3/helpers/errorUtil.ts +0 -8
  291. package/src/v3/helpers/parseUtil.ts +0 -176
  292. package/src/v3/helpers/partialUtil.ts +0 -34
  293. package/src/v3/helpers/typeAliases.ts +0 -2
  294. package/src/v3/helpers/util.ts +0 -224
  295. package/src/v3/index.ts +0 -4
  296. package/src/v3/locales/en.ts +0 -120
  297. package/src/v3/standard-schema.ts +0 -113
  298. package/src/v3/tests/Mocker.ts +0 -54
  299. package/src/v3/tests/all-errors.test.ts +0 -157
  300. package/src/v3/tests/anyunknown.test.ts +0 -28
  301. package/src/v3/tests/array.test.ts +0 -71
  302. package/src/v3/tests/async-parsing.test.ts +0 -388
  303. package/src/v3/tests/async-refinements.test.ts +0 -46
  304. package/src/v3/tests/base.test.ts +0 -29
  305. package/src/v3/tests/bigint.test.ts +0 -55
  306. package/src/v3/tests/branded.test.ts +0 -53
  307. package/src/v3/tests/catch.test.ts +0 -220
  308. package/src/v3/tests/coerce.test.ts +0 -133
  309. package/src/v3/tests/complex.test.ts +0 -56
  310. package/src/v3/tests/custom.test.ts +0 -31
  311. package/src/v3/tests/date.test.ts +0 -32
  312. package/src/v3/tests/deepmasking.test.ts +0 -186
  313. package/src/v3/tests/default.test.ts +0 -112
  314. package/src/v3/tests/description.test.ts +0 -33
  315. package/src/v3/tests/discriminated-unions.test.ts +0 -315
  316. package/src/v3/tests/enum.test.ts +0 -80
  317. package/src/v3/tests/error.test.ts +0 -551
  318. package/src/v3/tests/firstparty.test.ts +0 -87
  319. package/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  320. package/src/v3/tests/function.test.ts +0 -257
  321. package/src/v3/tests/generics.test.ts +0 -48
  322. package/src/v3/tests/instanceof.test.ts +0 -37
  323. package/src/v3/tests/intersection.test.ts +0 -110
  324. package/src/v3/tests/language-server.source.ts +0 -76
  325. package/src/v3/tests/language-server.test.ts +0 -207
  326. package/src/v3/tests/literal.test.ts +0 -36
  327. package/src/v3/tests/map.test.ts +0 -110
  328. package/src/v3/tests/masking.test.ts +0 -4
  329. package/src/v3/tests/mocker.test.ts +0 -19
  330. package/src/v3/tests/nan.test.ts +0 -21
  331. package/src/v3/tests/nativeEnum.test.ts +0 -87
  332. package/src/v3/tests/nullable.test.ts +0 -42
  333. package/src/v3/tests/number.test.ts +0 -176
  334. package/src/v3/tests/object-augmentation.test.ts +0 -29
  335. package/src/v3/tests/object-in-es5-env.test.ts +0 -29
  336. package/src/v3/tests/object.test.ts +0 -434
  337. package/src/v3/tests/optional.test.ts +0 -42
  338. package/src/v3/tests/parseUtil.test.ts +0 -23
  339. package/src/v3/tests/parser.test.ts +0 -41
  340. package/src/v3/tests/partials.test.ts +0 -243
  341. package/src/v3/tests/pickomit.test.ts +0 -111
  342. package/src/v3/tests/pipeline.test.ts +0 -29
  343. package/src/v3/tests/preprocess.test.ts +0 -188
  344. package/src/v3/tests/primitive.test.ts +0 -440
  345. package/src/v3/tests/promise.test.ts +0 -90
  346. package/src/v3/tests/readonly.test.ts +0 -194
  347. package/src/v3/tests/record.test.ts +0 -171
  348. package/src/v3/tests/recursive.test.ts +0 -197
  349. package/src/v3/tests/refine.test.ts +0 -297
  350. package/src/v3/tests/safeparse.test.ts +0 -27
  351. package/src/v3/tests/set.test.ts +0 -142
  352. package/src/v3/tests/standard-schema.test.ts +0 -83
  353. package/src/v3/tests/string.test.ts +0 -916
  354. package/src/v3/tests/transformer.test.ts +0 -233
  355. package/src/v3/tests/tuple.test.ts +0 -90
  356. package/src/v3/tests/unions.test.ts +0 -57
  357. package/src/v3/tests/validations.test.ts +0 -133
  358. package/src/v3/tests/void.test.ts +0 -15
  359. package/src/v3/types.ts +0 -5135
  360. package/src/v4/classic/checks.ts +0 -30
  361. package/src/v4/classic/coerce.ts +0 -27
  362. package/src/v4/classic/compat.ts +0 -76
  363. package/src/v4/classic/errors.ts +0 -75
  364. package/src/v4/classic/external.ts +0 -31
  365. package/src/v4/classic/index.ts +0 -5
  366. package/src/v4/classic/iso.ts +0 -90
  367. package/src/v4/classic/parse.ts +0 -33
  368. package/src/v4/classic/schemas.ts +0 -2062
  369. package/src/v4/classic/tests/anyunknown.test.ts +0 -26
  370. package/src/v4/classic/tests/array.test.ts +0 -257
  371. package/src/v4/classic/tests/assignability.test.ts +0 -124
  372. package/src/v4/classic/tests/async-parsing.test.ts +0 -381
  373. package/src/v4/classic/tests/async-refinements.test.ts +0 -68
  374. package/src/v4/classic/tests/base.test.ts +0 -7
  375. package/src/v4/classic/tests/bigint.test.ts +0 -54
  376. package/src/v4/classic/tests/brand.test.ts +0 -57
  377. package/src/v4/classic/tests/catch.test.ts +0 -252
  378. package/src/v4/classic/tests/coalesce.test.ts +0 -20
  379. package/src/v4/classic/tests/coerce.test.ts +0 -160
  380. package/src/v4/classic/tests/custom.test.ts +0 -16
  381. package/src/v4/classic/tests/date.test.ts +0 -31
  382. package/src/v4/classic/tests/default.test.ts +0 -114
  383. package/src/v4/classic/tests/description.test.ts +0 -32
  384. package/src/v4/classic/tests/discriminated-unions.test.ts +0 -566
  385. package/src/v4/classic/tests/enum.test.ts +0 -285
  386. package/src/v4/classic/tests/error-utils.test.ts +0 -480
  387. package/src/v4/classic/tests/error.test.ts +0 -698
  388. package/src/v4/classic/tests/file.test.ts +0 -52
  389. package/src/v4/classic/tests/firstparty.test.ts +0 -177
  390. package/src/v4/classic/tests/function.test.ts +0 -230
  391. package/src/v4/classic/tests/generics.test.ts +0 -58
  392. package/src/v4/classic/tests/index.test.ts +0 -909
  393. package/src/v4/classic/tests/instanceof.test.ts +0 -34
  394. package/src/v4/classic/tests/intersection.test.ts +0 -171
  395. package/src/v4/classic/tests/json-schema.test.ts +0 -1810
  396. package/src/v4/classic/tests/json.test.ts +0 -108
  397. package/src/v4/classic/tests/lazy.test.ts +0 -227
  398. package/src/v4/classic/tests/literal.test.ts +0 -82
  399. package/src/v4/classic/tests/map.test.ts +0 -196
  400. package/src/v4/classic/tests/nan.test.ts +0 -21
  401. package/src/v4/classic/tests/nested-refine.test.ts +0 -165
  402. package/src/v4/classic/tests/nonoptional.test.ts +0 -86
  403. package/src/v4/classic/tests/nullable.test.ts +0 -22
  404. package/src/v4/classic/tests/number.test.ts +0 -242
  405. package/src/v4/classic/tests/object.test.ts +0 -493
  406. package/src/v4/classic/tests/optional.test.ts +0 -103
  407. package/src/v4/classic/tests/partial.test.ts +0 -147
  408. package/src/v4/classic/tests/pickomit.test.ts +0 -125
  409. package/src/v4/classic/tests/pipe.test.ts +0 -81
  410. package/src/v4/classic/tests/prefault.test.ts +0 -37
  411. package/src/v4/classic/tests/preprocess.test.ts +0 -272
  412. package/src/v4/classic/tests/primitive.test.ts +0 -175
  413. package/src/v4/classic/tests/promise.test.ts +0 -81
  414. package/src/v4/classic/tests/readonly.test.ts +0 -252
  415. package/src/v4/classic/tests/record.test.ts +0 -332
  416. package/src/v4/classic/tests/recursive-types.test.ts +0 -126
  417. package/src/v4/classic/tests/refine.test.ts +0 -423
  418. package/src/v4/classic/tests/registries.test.ts +0 -159
  419. package/src/v4/classic/tests/set.test.ts +0 -179
  420. package/src/v4/classic/tests/standard-schema.test.ts +0 -57
  421. package/src/v4/classic/tests/string-formats.test.ts +0 -31
  422. package/src/v4/classic/tests/string.test.ts +0 -1081
  423. package/src/v4/classic/tests/template-literal.test.ts +0 -758
  424. package/src/v4/classic/tests/transform.test.ts +0 -250
  425. package/src/v4/classic/tests/tuple.test.ts +0 -163
  426. package/src/v4/classic/tests/union.test.ts +0 -94
  427. package/src/v4/classic/tests/validations.test.ts +0 -277
  428. package/src/v4/classic/tests/void.test.ts +0 -12
  429. package/src/v4/core/api.ts +0 -1533
  430. package/src/v4/core/checks.ts +0 -1282
  431. package/src/v4/core/config.ts +0 -15
  432. package/src/v4/core/core.ts +0 -98
  433. package/src/v4/core/doc.ts +0 -45
  434. package/src/v4/core/errors.ts +0 -433
  435. package/src/v4/core/function.ts +0 -143
  436. package/src/v4/core/index.ts +0 -15
  437. package/src/v4/core/json-schema.ts +0 -106
  438. package/src/v4/core/parse.ts +0 -94
  439. package/src/v4/core/regexes.ts +0 -133
  440. package/src/v4/core/registries.ts +0 -89
  441. package/src/v4/core/schemas.ts +0 -3802
  442. package/src/v4/core/standard-schema.ts +0 -64
  443. package/src/v4/core/tests/index.test.ts +0 -46
  444. package/src/v4/core/tests/locales/be.test.ts +0 -124
  445. package/src/v4/core/tests/locales/en.test.ts +0 -22
  446. package/src/v4/core/tests/locales/ru.test.ts +0 -128
  447. package/src/v4/core/tests/locales/tr.test.ts +0 -69
  448. package/src/v4/core/to-json-schema.ts +0 -790
  449. package/src/v4/core/util.ts +0 -750
  450. package/src/v4/core/versions.ts +0 -5
  451. package/src/v4/core/zsf.ts +0 -323
  452. package/src/v4/index.ts +0 -4
  453. package/src/v4/locales/ar.ts +0 -125
  454. package/src/v4/locales/az.ts +0 -121
  455. package/src/v4/locales/be.ts +0 -185
  456. package/src/v4/locales/ca.ts +0 -127
  457. package/src/v4/locales/cs.ts +0 -142
  458. package/src/v4/locales/de.ts +0 -124
  459. package/src/v4/locales/en.ts +0 -127
  460. package/src/v4/locales/es.ts +0 -124
  461. package/src/v4/locales/fa.ts +0 -134
  462. package/src/v4/locales/fi.ts +0 -131
  463. package/src/v4/locales/fr.ts +0 -124
  464. package/src/v4/locales/frCA.ts +0 -126
  465. package/src/v4/locales/he.ts +0 -125
  466. package/src/v4/locales/hu.ts +0 -126
  467. package/src/v4/locales/id.ts +0 -124
  468. package/src/v4/locales/index.ts +0 -34
  469. package/src/v4/locales/it.ts +0 -125
  470. package/src/v4/locales/ja.ts +0 -122
  471. package/src/v4/locales/ko.ts +0 -131
  472. package/src/v4/locales/mk.ts +0 -127
  473. package/src/v4/locales/ms.ts +0 -124
  474. package/src/v4/locales/no.ts +0 -124
  475. package/src/v4/locales/ota.ts +0 -125
  476. package/src/v4/locales/pl.ts +0 -125
  477. package/src/v4/locales/pt.ts +0 -123
  478. package/src/v4/locales/ru.ts +0 -185
  479. package/src/v4/locales/sl.ts +0 -125
  480. package/src/v4/locales/ta.ts +0 -125
  481. package/src/v4/locales/th.ts +0 -126
  482. package/src/v4/locales/tr.ts +0 -121
  483. package/src/v4/locales/ua.ts +0 -126
  484. package/src/v4/locales/ur.ts +0 -126
  485. package/src/v4/locales/vi.ts +0 -125
  486. package/src/v4/locales/zh-CN.ts +0 -123
  487. package/src/v4/locales/zh-tw.ts +0 -125
  488. package/src/v4/mini/checks.ts +0 -32
  489. package/src/v4/mini/coerce.ts +0 -22
  490. package/src/v4/mini/external.ts +0 -26
  491. package/src/v4/mini/index.ts +0 -3
  492. package/src/v4/mini/iso.ts +0 -62
  493. package/src/v4/mini/parse.ts +0 -1
  494. package/src/v4/mini/schemas.ts +0 -1556
  495. package/src/v4/mini/tests/assignability.test.ts +0 -117
  496. package/src/v4/mini/tests/brand.test.ts +0 -51
  497. package/src/v4/mini/tests/checks.test.ts +0 -144
  498. package/src/v4/mini/tests/computed.test.ts +0 -36
  499. package/src/v4/mini/tests/error.test.ts +0 -22
  500. package/src/v4/mini/tests/functions.test.ts +0 -43
  501. package/src/v4/mini/tests/index.test.ts +0 -914
  502. package/src/v4/mini/tests/number.test.ts +0 -95
  503. package/src/v4/mini/tests/object.test.ts +0 -139
  504. package/src/v4/mini/tests/prototypes.test.ts +0 -23
  505. package/src/v4/mini/tests/recursive-types.test.ts +0 -124
  506. package/src/v4/mini/tests/string.test.ts +0 -284
@@ -1,763 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const vitest_1 = require("vitest");
27
- const z = __importStar(require("zod/v4-mini"));
28
- (0, vitest_1.test)("z.boolean", () => {
29
- const a = z.boolean();
30
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(true);
31
- (0, vitest_1.expect)(z.parse(a, false)).toEqual(false);
32
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
33
- (0, vitest_1.expect)(() => z.parse(a, "true")).toThrow();
34
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
35
- });
36
- (0, vitest_1.test)("z.bigint", () => {
37
- const a = z.bigint();
38
- (0, vitest_1.expect)(z.parse(a, BigInt(123))).toEqual(BigInt(123));
39
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
40
- (0, vitest_1.expect)(() => z.parse(a, "123")).toThrow();
41
- });
42
- (0, vitest_1.test)("z.symbol", () => {
43
- const a = z.symbol();
44
- const sym = Symbol();
45
- (0, vitest_1.expect)(z.parse(a, sym)).toEqual(sym);
46
- (0, vitest_1.expect)(() => z.parse(a, "symbol")).toThrow();
47
- });
48
- (0, vitest_1.test)("z.date", () => {
49
- const a = z.date();
50
- const date = new Date();
51
- (0, vitest_1.expect)(z.parse(a, date)).toEqual(date);
52
- (0, vitest_1.expect)(() => z.parse(a, "date")).toThrow();
53
- });
54
- (0, vitest_1.test)("z.coerce.string", () => {
55
- const a = z.coerce.string();
56
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual("123");
57
- (0, vitest_1.expect)(z.parse(a, true)).toEqual("true");
58
- (0, vitest_1.expect)(z.parse(a, null)).toEqual("null");
59
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual("undefined");
60
- });
61
- (0, vitest_1.test)("z.coerce.number", () => {
62
- const a = z.coerce.number();
63
- (0, vitest_1.expect)(z.parse(a, "123")).toEqual(123);
64
- (0, vitest_1.expect)(z.parse(a, "123.45")).toEqual(123.45);
65
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(1);
66
- (0, vitest_1.expect)(z.parse(a, false)).toEqual(0);
67
- (0, vitest_1.expect)(() => z.parse(a, "abc")).toThrow();
68
- });
69
- (0, vitest_1.test)("z.coerce.boolean", () => {
70
- const a = z.coerce.boolean();
71
- // test booleans
72
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(true);
73
- (0, vitest_1.expect)(z.parse(a, false)).toEqual(false);
74
- (0, vitest_1.expect)(z.parse(a, "true")).toEqual(true);
75
- (0, vitest_1.expect)(z.parse(a, "false")).toEqual(true);
76
- (0, vitest_1.expect)(z.parse(a, 1)).toEqual(true);
77
- (0, vitest_1.expect)(z.parse(a, 0)).toEqual(false);
78
- (0, vitest_1.expect)(z.parse(a, {})).toEqual(true);
79
- (0, vitest_1.expect)(z.parse(a, [])).toEqual(true);
80
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(false);
81
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(false);
82
- (0, vitest_1.expect)(z.parse(a, "")).toEqual(false);
83
- });
84
- (0, vitest_1.test)("z.coerce.bigint", () => {
85
- const a = z.coerce.bigint();
86
- (0, vitest_1.expect)(z.parse(a, "123")).toEqual(BigInt(123));
87
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual(BigInt(123));
88
- (0, vitest_1.expect)(() => z.parse(a, "abc")).toThrow();
89
- });
90
- (0, vitest_1.test)("z.coerce.date", () => {
91
- const a = z.coerce.date();
92
- const date = new Date();
93
- (0, vitest_1.expect)(z.parse(a, date.toISOString())).toEqual(date);
94
- (0, vitest_1.expect)(z.parse(a, date.getTime())).toEqual(date);
95
- (0, vitest_1.expect)(() => z.parse(a, "invalid date")).toThrow();
96
- });
97
- (0, vitest_1.test)("z.iso.datetime", () => {
98
- const d1 = "2021-01-01T00:00:00Z";
99
- const d2 = "2021-01-01T00:00:00.123Z";
100
- const d3 = "2021-01-01T00:00:00";
101
- const d4 = "2021-01-01T00:00:00+07:00";
102
- const d5 = "bad data";
103
- // local: false, offset: false, precision: null
104
- const a = z.iso.datetime();
105
- (0, vitest_1.expect)(z.safeParse(a, d1).success).toEqual(true);
106
- (0, vitest_1.expect)(z.safeParse(a, d2).success).toEqual(true);
107
- (0, vitest_1.expect)(z.safeParse(a, d3).success).toEqual(false);
108
- (0, vitest_1.expect)(z.safeParse(a, d4).success).toEqual(false);
109
- (0, vitest_1.expect)(z.safeParse(a, d5).success).toEqual(false);
110
- const b = z.iso.datetime({ local: true });
111
- (0, vitest_1.expect)(z.safeParse(b, d1).success).toEqual(true);
112
- (0, vitest_1.expect)(z.safeParse(b, d2).success).toEqual(true);
113
- (0, vitest_1.expect)(z.safeParse(b, d3).success).toEqual(true);
114
- (0, vitest_1.expect)(z.safeParse(b, d4).success).toEqual(false);
115
- (0, vitest_1.expect)(z.safeParse(b, d5).success).toEqual(false);
116
- const c = z.iso.datetime({ offset: true });
117
- (0, vitest_1.expect)(z.safeParse(c, d1).success).toEqual(true);
118
- (0, vitest_1.expect)(z.safeParse(c, d2).success).toEqual(true);
119
- (0, vitest_1.expect)(z.safeParse(c, d3).success).toEqual(false);
120
- (0, vitest_1.expect)(z.safeParse(c, d4).success).toEqual(true);
121
- (0, vitest_1.expect)(z.safeParse(c, d5).success).toEqual(false);
122
- const d = z.iso.datetime({ precision: 3 });
123
- (0, vitest_1.expect)(z.safeParse(d, d1).success).toEqual(false);
124
- (0, vitest_1.expect)(z.safeParse(d, d2).success).toEqual(true);
125
- (0, vitest_1.expect)(z.safeParse(d, d3).success).toEqual(false);
126
- (0, vitest_1.expect)(z.safeParse(d, d4).success).toEqual(false);
127
- (0, vitest_1.expect)(z.safeParse(d, d5).success).toEqual(false);
128
- });
129
- (0, vitest_1.test)("z.iso.date", () => {
130
- const d1 = "2021-01-01";
131
- const d2 = "bad data";
132
- const a = z.iso.date();
133
- (0, vitest_1.expect)(z.safeParse(a, d1).success).toEqual(true);
134
- (0, vitest_1.expect)(z.safeParse(a, d2).success).toEqual(false);
135
- const b = z.string().check(z.iso.date());
136
- (0, vitest_1.expect)(z.safeParse(b, d1).success).toEqual(true);
137
- (0, vitest_1.expect)(z.safeParse(b, d2).success).toEqual(false);
138
- });
139
- (0, vitest_1.test)("z.iso.time", () => {
140
- const d1 = "00:00:00";
141
- const d2 = "00:00:00.123";
142
- const d3 = "bad data";
143
- const a = z.iso.time();
144
- (0, vitest_1.expect)(z.safeParse(a, d1).success).toEqual(true);
145
- (0, vitest_1.expect)(z.safeParse(a, d2).success).toEqual(true);
146
- (0, vitest_1.expect)(z.safeParse(a, d3).success).toEqual(false);
147
- const b = z.iso.time({ precision: 3 });
148
- (0, vitest_1.expect)(z.safeParse(b, d1).success).toEqual(false);
149
- (0, vitest_1.expect)(z.safeParse(b, d2).success).toEqual(true);
150
- (0, vitest_1.expect)(z.safeParse(b, d3).success).toEqual(false);
151
- const c = z.string().check(z.iso.time());
152
- (0, vitest_1.expect)(z.safeParse(c, d1).success).toEqual(true);
153
- (0, vitest_1.expect)(z.safeParse(c, d2).success).toEqual(true);
154
- (0, vitest_1.expect)(z.safeParse(c, d3).success).toEqual(false);
155
- });
156
- (0, vitest_1.test)("z.iso.duration", () => {
157
- const d1 = "P3Y6M4DT12H30M5S";
158
- const d2 = "bad data";
159
- const a = z.iso.duration();
160
- (0, vitest_1.expect)(z.safeParse(a, d1).success).toEqual(true);
161
- (0, vitest_1.expect)(z.safeParse(a, d2).success).toEqual(false);
162
- const b = z.string().check(z.iso.duration());
163
- (0, vitest_1.expect)(z.safeParse(b, d1).success).toEqual(true);
164
- (0, vitest_1.expect)(z.safeParse(b, d2).success).toEqual(false);
165
- });
166
- (0, vitest_1.test)("z.undefined", () => {
167
- const a = z.undefined();
168
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(undefined);
169
- (0, vitest_1.expect)(() => z.parse(a, "undefined")).toThrow();
170
- });
171
- (0, vitest_1.test)("z.null", () => {
172
- const a = z.null();
173
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(null);
174
- (0, vitest_1.expect)(() => z.parse(a, "null")).toThrow();
175
- });
176
- (0, vitest_1.test)("z.any", () => {
177
- const a = z.any();
178
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
179
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual(123);
180
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(true);
181
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(null);
182
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(undefined);
183
- z.parse(a, {});
184
- z.parse(a, []);
185
- z.parse(a, Symbol());
186
- z.parse(a, new Date());
187
- });
188
- (0, vitest_1.test)("z.unknown", () => {
189
- const a = z.unknown();
190
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
191
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual(123);
192
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(true);
193
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(null);
194
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(undefined);
195
- z.parse(a, {});
196
- z.parse(a, []);
197
- z.parse(a, Symbol());
198
- z.parse(a, new Date());
199
- });
200
- (0, vitest_1.test)("z.never", () => {
201
- const a = z.never();
202
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
203
- });
204
- (0, vitest_1.test)("z.void", () => {
205
- const a = z.void();
206
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(undefined);
207
- (0, vitest_1.expect)(() => z.parse(a, null)).toThrow();
208
- });
209
- (0, vitest_1.test)("z.array", () => {
210
- const a = z.array(z.string());
211
- (0, vitest_1.expect)(z.parse(a, ["hello", "world"])).toEqual(["hello", "world"]);
212
- (0, vitest_1.expect)(() => z.parse(a, [123])).toThrow();
213
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
214
- });
215
- (0, vitest_1.test)("z.union", () => {
216
- const a = z.union([z.string(), z.number()]);
217
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
218
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual(123);
219
- (0, vitest_1.expect)(() => z.parse(a, true)).toThrow();
220
- });
221
- (0, vitest_1.test)("z.discriminatedUnion", () => {
222
- const a = z.object({
223
- type: z.literal("A"),
224
- name: z.string(),
225
- });
226
- (0, vitest_1.expect)(a._zod.disc?.get("type")).toEqual({
227
- values: new Set(["A"]),
228
- maps: [],
229
- });
230
- const b = z.object({
231
- type: z.literal("B"),
232
- age: z.number(),
233
- });
234
- const c = z.discriminatedUnion("type", [a, b]);
235
- (0, vitest_1.expect)(c._zod.def.options.length).toEqual(2);
236
- (0, vitest_1.expect)(c._zod.disc.get("type").values.has("A")).toEqual(true);
237
- (0, vitest_1.expect)(c._zod.disc.get("type").values.has("B")).toEqual(true);
238
- (0, vitest_1.expect)(z.parse(c, { type: "A", name: "john" })).toEqual({
239
- type: "A",
240
- name: "john",
241
- });
242
- (0, vitest_1.expect)(z.parse(c, { type: "B", age: 30 })).toEqual({ type: "B", age: 30 });
243
- });
244
- (0, vitest_1.test)("z.discriminatedUnion with nested discriminator", () => {
245
- const a = z.object({
246
- type: z.object({ key: z.literal("A") }),
247
- name: z.string(),
248
- });
249
- const b = z.object({
250
- type: z.object({ key: z.literal("B") }),
251
- age: z.number(),
252
- });
253
- const c = z.discriminatedUnion("type", [a, b]);
254
- (0, vitest_1.expect)(c._zod.disc.get("type").maps[0].get("key").values.has("A")).toEqual(true);
255
- (0, vitest_1.expect)(c._zod.disc.get("type").maps[1].get("key").values.has("B")).toEqual(true);
256
- (0, vitest_1.expect)(z.parse(c, { type: { key: "A" }, name: "john" })).toEqual({
257
- type: { key: "A" },
258
- name: "john",
259
- });
260
- (0, vitest_1.expect)(z.parse(c, { type: { key: "B" }, age: 30 })).toEqual({
261
- type: { key: "B" },
262
- age: 30,
263
- });
264
- });
265
- (0, vitest_1.test)("z.discriminatedUnion nested", () => {
266
- const schema1 = z.discriminatedUnion("type", [
267
- z.object({
268
- type: z.literal("A"),
269
- name: z.string(),
270
- }),
271
- z.object({
272
- num: z.literal(1),
273
- type: z.literal("B"),
274
- age: z.number(),
275
- }),
276
- ]);
277
- const schema2 = z.discriminatedUnion("type", [
278
- z.object({
279
- num: z.literal(2),
280
- type: z.literal("C"),
281
- name: z.string(),
282
- }),
283
- z.object({
284
- num: z.literal(2),
285
- type: z.literal("D"),
286
- age: z.number(),
287
- }),
288
- ]);
289
- const hyper = z.discriminatedUnion("type", [schema1, schema2]);
290
- (0, vitest_1.expect)(hyper._zod.disc.get("num")).toEqual({
291
- values: new Set([1, 2]),
292
- maps: [],
293
- });
294
- (0, vitest_1.expect)(hyper._zod.disc.get("type")).toEqual({
295
- values: new Set(["A", "B", "C", "D"]),
296
- maps: [],
297
- });
298
- });
299
- (0, vitest_1.test)("z.intersection", () => {
300
- const a = z.intersection(z.object({ a: z.string() }), z.object({ b: z.number() }));
301
- (0, vitest_1.expect)(z.parse(a, { a: "hello", b: 123 })).toEqual({ a: "hello", b: 123 });
302
- (0, vitest_1.expect)(() => z.parse(a, { a: "hello" })).toThrow();
303
- (0, vitest_1.expect)(() => z.parse(a, { b: 123 })).toThrow();
304
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
305
- });
306
- (0, vitest_1.test)("z.tuple", () => {
307
- const a = z.tuple([z.string(), z.number()]);
308
- (0, vitest_1.expect)(z.parse(a, ["hello", 123])).toEqual(["hello", 123]);
309
- (0, vitest_1.expect)(() => z.parse(a, ["hello", "world"])).toThrow();
310
- (0, vitest_1.expect)(() => z.parse(a, [123, 456])).toThrow();
311
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
312
- // tuple with rest
313
- const b = z.tuple([z.string(), z.number(), z.optional(z.string())], z.boolean());
314
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
315
- const datas = [
316
- ["hello", 123],
317
- ["hello", 123, "world"],
318
- ["hello", 123, "world", true],
319
- ["hello", 123, "world", true, false, true],
320
- ];
321
- for (const data of datas) {
322
- (0, vitest_1.expect)(z.parse(b, data)).toEqual(data);
323
- }
324
- (0, vitest_1.expect)(() => z.parse(b, ["hello", 123, 123])).toThrow();
325
- (0, vitest_1.expect)(() => z.parse(b, ["hello", 123, "world", 123])).toThrow();
326
- // tuple with readonly args
327
- const cArgs = [z.string(), z.number(), z.optional(z.string())];
328
- const c = z.tuple(cArgs, z.boolean());
329
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
330
- });
331
- (0, vitest_1.test)("z.record", () => {
332
- // record schema with enum keys
333
- const a = z.record(z.string(), z.string());
334
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
335
- const b = z.record(z.union([z.string(), z.number(), z.symbol()]), z.string());
336
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
337
- (0, vitest_1.expect)(z.parse(b, { a: "hello", 1: "world", [Symbol.for("asdf")]: "symbol" })).toEqual({
338
- a: "hello",
339
- 1: "world",
340
- [Symbol.for("asdf")]: "symbol",
341
- });
342
- // enum keys
343
- const c = z.record(z.enum(["a", "b", "c"]), z.string());
344
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
345
- (0, vitest_1.expect)(z.parse(c, { a: "hello", b: "world", c: "world" })).toEqual({
346
- a: "hello",
347
- b: "world",
348
- c: "world",
349
- });
350
- // missing keys
351
- (0, vitest_1.expect)(() => z.parse(c, { a: "hello", b: "world" })).toThrow();
352
- // extra keys
353
- (0, vitest_1.expect)(() => z.parse(c, { a: "hello", b: "world", c: "world", d: "world" })).toThrow();
354
- });
355
- (0, vitest_1.test)("z.map", () => {
356
- const a = z.map(z.string(), z.number());
357
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
358
- (0, vitest_1.expect)(z.parse(a, new Map([["hello", 123]]))).toEqual(new Map([["hello", 123]]));
359
- (0, vitest_1.expect)(() => z.parse(a, new Map([["hello", "world"]]))).toThrow();
360
- (0, vitest_1.expect)(() => z.parse(a, new Map([[1243, "world"]]))).toThrow();
361
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
362
- const r1 = z.safeParse(a, new Map([[123, 123]]));
363
- (0, vitest_1.expect)(r1.error?.issues[0].code).toEqual("invalid_type");
364
- (0, vitest_1.expect)(r1.error?.issues[0].path).toEqual([123]);
365
- const r2 = z.safeParse(a, new Map([[BigInt(123), 123]]));
366
- (0, vitest_1.expect)(r2.error.issues[0].code).toEqual("invalid_key");
367
- (0, vitest_1.expect)(r2.error.issues[0].path).toEqual([]);
368
- const r3 = z.safeParse(a, new Map([["hello", "world"]]));
369
- (0, vitest_1.expect)(r3.error.issues[0].code).toEqual("invalid_type");
370
- (0, vitest_1.expect)(r3.error.issues[0].path).toEqual(["hello"]);
371
- });
372
- (0, vitest_1.test)("z.map invalid_element", () => {
373
- const a = z.map(z.bigint(), z.number());
374
- const r1 = z.safeParse(a, new Map([[BigInt(123), BigInt(123)]]));
375
- (0, vitest_1.expect)(r1.error.issues[0].code).toEqual("invalid_element");
376
- (0, vitest_1.expect)(r1.error.issues[0].path).toEqual([]);
377
- });
378
- (0, vitest_1.test)("z.map async", async () => {
379
- const a = z.map(z.string().check(z.refine(async () => true)), z.number().check(z.refine(async () => true)));
380
- const d1 = new Map([["hello", 123]]);
381
- (0, vitest_1.expect)(await z.parseAsync(a, d1)).toEqual(d1);
382
- await (0, vitest_1.expect)(z.parseAsync(a, new Map([[123, 123]]))).rejects.toThrow();
383
- await (0, vitest_1.expect)(z.parseAsync(a, new Map([["hi", "world"]]))).rejects.toThrow();
384
- await (0, vitest_1.expect)(z.parseAsync(a, new Map([[1243, "world"]]))).rejects.toThrow();
385
- await (0, vitest_1.expect)(z.parseAsync(a, "hello")).rejects.toThrow();
386
- const r = await z.safeParseAsync(a, new Map([[123, 123]]));
387
- (0, vitest_1.expect)(r.success).toEqual(false);
388
- (0, vitest_1.expect)(r.error.issues[0].code).toEqual("invalid_type");
389
- (0, vitest_1.expect)(r.error.issues[0].path).toEqual([123]);
390
- });
391
- (0, vitest_1.test)("z.set", () => {
392
- const a = z.set(z.string());
393
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
394
- (0, vitest_1.expect)(z.parse(a, new Set(["hello", "world"]))).toEqual(new Set(["hello", "world"]));
395
- (0, vitest_1.expect)(() => z.parse(a, new Set([123]))).toThrow();
396
- (0, vitest_1.expect)(() => z.parse(a, ["hello", "world"])).toThrow();
397
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
398
- const b = z.set(z.number());
399
- (0, vitest_1.expect)(z.parse(b, new Set([1, 2, 3]))).toEqual(new Set([1, 2, 3]));
400
- (0, vitest_1.expect)(() => z.parse(b, new Set(["hello"]))).toThrow();
401
- (0, vitest_1.expect)(() => z.parse(b, [1, 2, 3])).toThrow();
402
- (0, vitest_1.expect)(() => z.parse(b, 123)).toThrow();
403
- });
404
- (0, vitest_1.test)("z.enum", () => {
405
- const a = z.enum(["A", "B", "C"]);
406
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
407
- (0, vitest_1.expect)(z.parse(a, "A")).toEqual("A");
408
- (0, vitest_1.expect)(z.parse(a, "B")).toEqual("B");
409
- (0, vitest_1.expect)(z.parse(a, "C")).toEqual("C");
410
- (0, vitest_1.expect)(() => z.parse(a, "D")).toThrow();
411
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
412
- // expect(a.enum.A).toEqual("A");
413
- // expect(a.enum.B).toEqual("B");
414
- // expect(a.enum.C).toEqual("C");
415
- // expect((a.enum as any).D).toEqual(undefined);
416
- });
417
- (0, vitest_1.test)("z.enum - native", () => {
418
- let NativeEnum;
419
- (function (NativeEnum) {
420
- NativeEnum["A"] = "A";
421
- NativeEnum["B"] = "B";
422
- NativeEnum["C"] = "C";
423
- })(NativeEnum || (NativeEnum = {}));
424
- const a = z.enum(NativeEnum);
425
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
426
- (0, vitest_1.expect)(z.parse(a, NativeEnum.A)).toEqual(NativeEnum.A);
427
- (0, vitest_1.expect)(z.parse(a, NativeEnum.B)).toEqual(NativeEnum.B);
428
- (0, vitest_1.expect)(z.parse(a, NativeEnum.C)).toEqual(NativeEnum.C);
429
- (0, vitest_1.expect)(() => z.parse(a, "D")).toThrow();
430
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
431
- // test a.enum
432
- a;
433
- // expect(a.enum.A).toEqual(NativeEnum.A);
434
- // expect(a.enum.B).toEqual(NativeEnum.B);
435
- // expect(a.enum.C).toEqual(NativeEnum.C);
436
- });
437
- (0, vitest_1.test)("z.nativeEnum", () => {
438
- let NativeEnum;
439
- (function (NativeEnum) {
440
- NativeEnum["A"] = "A";
441
- NativeEnum["B"] = "B";
442
- NativeEnum["C"] = "C";
443
- })(NativeEnum || (NativeEnum = {}));
444
- const a = z.nativeEnum(NativeEnum);
445
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
446
- (0, vitest_1.expect)(z.parse(a, NativeEnum.A)).toEqual(NativeEnum.A);
447
- (0, vitest_1.expect)(z.parse(a, NativeEnum.B)).toEqual(NativeEnum.B);
448
- (0, vitest_1.expect)(z.parse(a, NativeEnum.C)).toEqual(NativeEnum.C);
449
- (0, vitest_1.expect)(() => z.parse(a, "D")).toThrow();
450
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
451
- // test a.enum
452
- a;
453
- // expect(a.enum.A).toEqual(NativeEnum.A);
454
- // expect(a.enum.B).toEqual(NativeEnum.B);
455
- // expect(a.enum.C).toEqual(NativeEnum.C);
456
- });
457
- (0, vitest_1.test)("z.literal", () => {
458
- const a = z.literal("hello");
459
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
460
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
461
- (0, vitest_1.expect)(() => z.parse(a, "world")).toThrow();
462
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
463
- });
464
- (0, vitest_1.test)("z.file", () => {
465
- const a = z.file();
466
- const file = new File(["content"], "filename.txt", { type: "text/plain" });
467
- (0, vitest_1.expect)(z.parse(a, file)).toEqual(file);
468
- (0, vitest_1.expect)(() => z.parse(a, "file")).toThrow();
469
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
470
- });
471
- (0, vitest_1.test)("z.transform", () => {
472
- const a = z.pipe(z.string(), z.transform((val) => val.toUpperCase()));
473
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
474
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("HELLO");
475
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
476
- });
477
- (0, vitest_1.test)("z.transform async", async () => {
478
- const a = z.pipe(z.string(), z.transform(async (val) => val.toUpperCase()));
479
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
480
- (0, vitest_1.expect)(await z.parseAsync(a, "hello")).toEqual("HELLO");
481
- await (0, vitest_1.expect)(() => z.parseAsync(a, 123)).rejects.toThrow();
482
- });
483
- (0, vitest_1.test)("z.preprocess", () => {
484
- const a = z.pipe(z.transform((val) => String(val).toUpperCase()), z.string());
485
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
486
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual("123");
487
- (0, vitest_1.expect)(z.parse(a, true)).toEqual("TRUE");
488
- (0, vitest_1.expect)(z.parse(a, BigInt(1234))).toEqual("1234");
489
- // expect(() => z.parse(a, Symbol("asdf"))).toThrow();
490
- });
491
- // test("z.preprocess async", () => {
492
- // const a = z.preprocess(async (val) => String(val), z.string());
493
- // type a = z.output<typeof a>;
494
- // expectTypeOf<a>().toEqualTypeOf<string>();
495
- // expect(z.parse(a, 123)).toEqual("123");
496
- // expect(z.parse(a, true)).toEqual("true");
497
- // expect(() => z.parse(a, {})).toThrow();
498
- // });
499
- (0, vitest_1.test)("z.optional", () => {
500
- const a = z.optional(z.string());
501
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
502
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
503
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual(undefined);
504
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
505
- });
506
- (0, vitest_1.test)("z.nullable", () => {
507
- const a = z.nullable(z.string());
508
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
509
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
510
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(null);
511
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
512
- });
513
- (0, vitest_1.test)("z.default", () => {
514
- const a = z._default(z.string(), "default");
515
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
516
- (0, vitest_1.expect)(z.parse(a, undefined)).toEqual("default");
517
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
518
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
519
- const b = z._default(z.string(), () => "default");
520
- (0, vitest_1.expect)(z.parse(b, undefined)).toEqual("default");
521
- (0, vitest_1.expect)(z.parse(b, "hello")).toEqual("hello");
522
- (0, vitest_1.expect)(() => z.parse(b, 123)).toThrow();
523
- });
524
- (0, vitest_1.test)("z.catch", () => {
525
- const a = z.catch(z.string(), "default");
526
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
527
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
528
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual("default");
529
- const b = z.catch(z.string(), () => "default");
530
- (0, vitest_1.expect)(z.parse(b, "hello")).toEqual("hello");
531
- (0, vitest_1.expect)(z.parse(b, 123)).toEqual("default");
532
- const c = z.catch(z.string(), (ctx) => {
533
- return `${ctx.error.issues.length}issues`;
534
- });
535
- (0, vitest_1.expect)(z.parse(c, 1234)).toEqual("1issues");
536
- });
537
- (0, vitest_1.test)("z.nan", () => {
538
- const a = z.nan();
539
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
540
- (0, vitest_1.expect)(z.parse(a, Number.NaN)).toEqual(Number.NaN);
541
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
542
- (0, vitest_1.expect)(() => z.parse(a, "NaN")).toThrow();
543
- });
544
- (0, vitest_1.test)("z.pipe", () => {
545
- const a = z.pipe(z.pipe(z.string(), z.transform((val) => val.length)), z.number());
546
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
547
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
548
- (0, vitest_1.expect)(z.parse(a, "123")).toEqual(3);
549
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual(5);
550
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
551
- });
552
- (0, vitest_1.test)("z.readonly", () => {
553
- const a = z.readonly(z.string());
554
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
555
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
556
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
557
- });
558
- (0, vitest_1.test)("z.templateLiteral", () => {
559
- const a = z.templateLiteral([z.string(), z.number()]);
560
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
561
- (0, vitest_1.expect)(z.parse(a, "hello123")).toEqual("hello123");
562
- (0, vitest_1.expect)(() => z.parse(a, "hello")).toThrow();
563
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
564
- // multipart
565
- const b = z.templateLiteral([z.string(), z.number(), z.string()]);
566
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
567
- (0, vitest_1.expect)(z.parse(b, "hello123world")).toEqual("hello123world");
568
- (0, vitest_1.expect)(z.parse(b, "123")).toEqual("123");
569
- (0, vitest_1.expect)(() => z.parse(b, "hello")).toThrow();
570
- (0, vitest_1.expect)(() => z.parse(b, 123)).toThrow();
571
- // include boolean
572
- const c = z.templateLiteral([z.string(), z.boolean()]);
573
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
574
- (0, vitest_1.expect)(z.parse(c, "hellotrue")).toEqual("hellotrue");
575
- (0, vitest_1.expect)(z.parse(c, "hellofalse")).toEqual("hellofalse");
576
- (0, vitest_1.expect)(() => z.parse(c, "hello")).toThrow();
577
- (0, vitest_1.expect)(() => z.parse(c, 123)).toThrow();
578
- // include literal prefix
579
- const d = z.templateLiteral([z.literal("hello"), z.number()]);
580
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
581
- (0, vitest_1.expect)(z.parse(d, "hello123")).toEqual("hello123");
582
- (0, vitest_1.expect)(() => z.parse(d, 123)).toThrow();
583
- (0, vitest_1.expect)(() => z.parse(d, "world123")).toThrow();
584
- // include literal union
585
- const e = z.templateLiteral([z.literal(["aa", "bb"]), z.number()]);
586
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
587
- (0, vitest_1.expect)(z.parse(e, "aa123")).toEqual("aa123");
588
- (0, vitest_1.expect)(z.parse(e, "bb123")).toEqual("bb123");
589
- (0, vitest_1.expect)(() => z.parse(e, "cc123")).toThrow();
590
- (0, vitest_1.expect)(() => z.parse(e, 123)).toThrow();
591
- });
592
- // this returns both a schema and a check
593
- (0, vitest_1.test)("z.custom", () => {
594
- const a = z.custom((val) => {
595
- return typeof val === "string";
596
- });
597
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
598
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
599
- const b = z.string().check(z.custom((val) => val.length > 3));
600
- (0, vitest_1.expect)(z.parse(b, "hello")).toEqual("hello");
601
- (0, vitest_1.expect)(() => z.parse(b, "hi")).toThrow();
602
- });
603
- (0, vitest_1.test)("z.check", () => {
604
- // this is a more flexible version of z.custom that accepts an arbitrary _parse logic
605
- // the function should return core.$ZodResult
606
- const a = z.any().check(z.check((ctx) => {
607
- if (typeof ctx.value === "string")
608
- return;
609
- ctx.issues.push({
610
- code: "custom",
611
- origin: "custom",
612
- message: "Expected a string",
613
- input: ctx.value,
614
- });
615
- }));
616
- (0, vitest_1.expect)(z.safeParse(a, "hello")).toMatchObject({
617
- success: true,
618
- data: "hello",
619
- });
620
- (0, vitest_1.expect)(z.safeParse(a, 123)).toMatchObject({
621
- success: false,
622
- error: { issues: [{ code: "custom", message: "Expected a string" }] },
623
- });
624
- });
625
- (0, vitest_1.test)("z.instanceof", () => {
626
- class A {
627
- }
628
- const a = z.instanceof(A);
629
- (0, vitest_1.expect)(z.parse(a, new A())).toBeInstanceOf(A);
630
- (0, vitest_1.expect)(() => z.parse(a, {})).toThrow();
631
- });
632
- (0, vitest_1.test)("z.refine", () => {
633
- const a = z.number().check(z.refine((val) => val > 3), z.refine((val) => val < 10));
634
- (0, vitest_1.expect)(z.parse(a, 5)).toEqual(5);
635
- (0, vitest_1.expect)(() => z.parse(a, 2)).toThrow();
636
- (0, vitest_1.expect)(() => z.parse(a, 11)).toThrow();
637
- (0, vitest_1.expect)(() => z.parse(a, "hi")).toThrow();
638
- });
639
- // test("z.superRefine", () => {
640
- // const a = z.number([
641
- // z.superRefine((val, ctx) => {
642
- // if (val < 3) {
643
- // return ctx.addIssue({
644
- // code: "custom",
645
- // origin: "custom",
646
- // message: "Too small",
647
- // input: val,
648
- // });
649
- // }
650
- // if (val > 10) {
651
- // return ctx.addIssue("Too big");
652
- // }
653
- // }),
654
- // ]);
655
- // expect(z.parse(a, 5)).toEqual(5);
656
- // expect(() => z.parse(a, 2)).toThrow();
657
- // expect(() => z.parse(a, 11)).toThrow();
658
- // expect(() => z.parse(a, "hi")).toThrow();
659
- // });
660
- (0, vitest_1.test)("z.transform", () => {
661
- const a = z.transform((val) => {
662
- return `${val}`;
663
- });
664
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
665
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
666
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual("123");
667
- });
668
- (0, vitest_1.test)("z.$brand()", () => {
669
- const a = z.string().brand();
670
- const branded = (_) => { };
671
- // @ts-expect-error
672
- branded("asdf");
673
- });
674
- (0, vitest_1.test)("z.lazy", () => {
675
- const a = z.lazy(() => z.string());
676
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
677
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
678
- (0, vitest_1.expect)(() => z.parse(a, 123)).toThrow();
679
- });
680
- // schema that validates JSON-like data
681
- (0, vitest_1.test)("z.json", () => {
682
- const a = z.json();
683
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
684
- (0, vitest_1.expect)(z.parse(a, "hello")).toEqual("hello");
685
- (0, vitest_1.expect)(z.parse(a, 123)).toEqual(123);
686
- (0, vitest_1.expect)(z.parse(a, true)).toEqual(true);
687
- (0, vitest_1.expect)(z.parse(a, null)).toEqual(null);
688
- (0, vitest_1.expect)(z.parse(a, {})).toEqual({});
689
- (0, vitest_1.expect)(z.parse(a, { a: "hello" })).toEqual({ a: "hello" });
690
- (0, vitest_1.expect)(z.parse(a, [1, 2, 3])).toEqual([1, 2, 3]);
691
- (0, vitest_1.expect)(z.parse(a, [{ a: "hello" }])).toEqual([{ a: "hello" }]);
692
- // fail cases
693
- (0, vitest_1.expect)(() => z.parse(a, new Date())).toThrow();
694
- (0, vitest_1.expect)(() => z.parse(a, Symbol())).toThrow();
695
- (0, vitest_1.expect)(() => z.parse(a, { a: new Date() })).toThrow();
696
- (0, vitest_1.expect)(() => z.parse(a, undefined)).toThrow();
697
- (0, vitest_1.expect)(() => z.parse(a, { a: undefined })).toThrow();
698
- });
699
- (0, vitest_1.test)("z.stringbool", () => {
700
- const a = z.stringbool();
701
- (0, vitest_1.expect)(z.parse(a, "true")).toEqual(true);
702
- (0, vitest_1.expect)(z.parse(a, "yes")).toEqual(true);
703
- (0, vitest_1.expect)(z.parse(a, "1")).toEqual(true);
704
- (0, vitest_1.expect)(z.parse(a, "on")).toEqual(true);
705
- (0, vitest_1.expect)(z.parse(a, "y")).toEqual(true);
706
- (0, vitest_1.expect)(z.parse(a, "enabled")).toEqual(true);
707
- (0, vitest_1.expect)(z.parse(a, "TRUE")).toEqual(true);
708
- (0, vitest_1.expect)(z.parse(a, "false")).toEqual(false);
709
- (0, vitest_1.expect)(z.parse(a, "no")).toEqual(false);
710
- (0, vitest_1.expect)(z.parse(a, "0")).toEqual(false);
711
- (0, vitest_1.expect)(z.parse(a, "off")).toEqual(false);
712
- (0, vitest_1.expect)(z.parse(a, "n")).toEqual(false);
713
- (0, vitest_1.expect)(z.parse(a, "disabled")).toEqual(false);
714
- (0, vitest_1.expect)(z.parse(a, "FALSE")).toEqual(false);
715
- (0, vitest_1.expect)(z.safeParse(a, "other")).toMatchObject({ success: false });
716
- (0, vitest_1.expect)(z.safeParse(a, "")).toMatchObject({ success: false });
717
- (0, vitest_1.expect)(z.safeParse(a, undefined)).toMatchObject({ success: false });
718
- (0, vitest_1.expect)(z.safeParse(a, {})).toMatchObject({ success: false });
719
- (0, vitest_1.expect)(z.safeParse(a, true)).toMatchObject({ success: false });
720
- (0, vitest_1.expect)(z.safeParse(a, false)).toMatchObject({ success: false });
721
- const b = z.stringbool({
722
- truthy: ["y"],
723
- falsy: ["n"],
724
- });
725
- (0, vitest_1.expect)(z.parse(b, "y")).toEqual(true);
726
- (0, vitest_1.expect)(z.parse(b, "n")).toEqual(false);
727
- (0, vitest_1.expect)(z.safeParse(b, "true")).toMatchObject({ success: false });
728
- (0, vitest_1.expect)(z.safeParse(b, "false")).toMatchObject({ success: false });
729
- const c = z.stringbool({
730
- case: "sensitive",
731
- });
732
- (0, vitest_1.expect)(z.parse(c, "true")).toEqual(true);
733
- (0, vitest_1.expect)(z.safeParse(c, "TRUE")).toMatchObject({ success: false });
734
- });
735
- // promise
736
- (0, vitest_1.test)("z.promise", async () => {
737
- const a = z.promise(z.string());
738
- (0, vitest_1.expectTypeOf)().toEqualTypeOf();
739
- (0, vitest_1.expect)(await z.safeParseAsync(a, Promise.resolve("hello"))).toMatchObject({
740
- success: true,
741
- data: "hello",
742
- });
743
- (0, vitest_1.expect)(await z.safeParseAsync(a, Promise.resolve(123))).toMatchObject({
744
- success: false,
745
- });
746
- const b = z.string();
747
- (0, vitest_1.expect)(() => z.parse(b, Promise.resolve("hello"))).toThrow();
748
- });
749
- // test("type assertions", () => {
750
- // const schema = z.pipe(
751
- // z.string(),
752
- // z.transform((val) => val.length)
753
- // );
754
- // schema.assertInput<string>();
755
- // // @ts-expect-error
756
- // schema.assertInput<number>();
757
- // schema.assertOutput<number>();
758
- // // @ts-expect-error
759
- // schema.assertOutput<string>();
760
- // });
761
- (0, vitest_1.test)("z.pipe type enforcement", () => {
762
- z.pipe(z.pipe(z.string().check(z.regex(/asdf/)), z.transform((v) => new Date(v))), z.date().check(z.maximum(new Date())));
763
- });