zod 3.26.0-canary.20250703T013930 → 3.26.0-canary.20250703T214020

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 (278) hide show
  1. package/package.json +20 -20
  2. package/src/index.ts +4 -0
  3. package/src/v3/ZodError.ts +330 -0
  4. package/src/v3/benchmarks/datetime.ts +58 -0
  5. package/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  6. package/src/v3/benchmarks/index.ts +59 -0
  7. package/src/v3/benchmarks/ipv4.ts +57 -0
  8. package/src/v3/benchmarks/object.ts +69 -0
  9. package/src/v3/benchmarks/primitives.ts +162 -0
  10. package/src/v3/benchmarks/realworld.ts +63 -0
  11. package/src/v3/benchmarks/string.ts +55 -0
  12. package/src/v3/benchmarks/union.ts +80 -0
  13. package/src/v3/errors.ts +13 -0
  14. package/src/v3/external.ts +6 -0
  15. package/src/v3/helpers/enumUtil.ts +17 -0
  16. package/src/v3/helpers/errorUtil.ts +8 -0
  17. package/src/v3/helpers/parseUtil.ts +176 -0
  18. package/src/v3/helpers/partialUtil.ts +34 -0
  19. package/src/v3/helpers/typeAliases.ts +2 -0
  20. package/src/v3/helpers/util.ts +224 -0
  21. package/src/v3/index.ts +4 -0
  22. package/src/v3/locales/en.ts +124 -0
  23. package/src/v3/standard-schema.ts +113 -0
  24. package/src/v3/tests/Mocker.ts +54 -0
  25. package/src/v3/tests/all-errors.test.ts +157 -0
  26. package/src/v3/tests/anyunknown.test.ts +28 -0
  27. package/src/v3/tests/array.test.ts +71 -0
  28. package/src/v3/tests/async-parsing.test.ts +388 -0
  29. package/src/v3/tests/async-refinements.test.ts +46 -0
  30. package/src/v3/tests/base.test.ts +29 -0
  31. package/src/v3/tests/bigint.test.ts +55 -0
  32. package/src/v3/tests/branded.test.ts +53 -0
  33. package/src/v3/tests/catch.test.ts +220 -0
  34. package/src/v3/tests/coerce.test.ts +133 -0
  35. package/src/v3/tests/complex.test.ts +56 -0
  36. package/src/v3/tests/custom.test.ts +31 -0
  37. package/src/v3/tests/date.test.ts +32 -0
  38. package/src/v3/tests/deepmasking.test.ts +186 -0
  39. package/src/v3/tests/default.test.ts +112 -0
  40. package/src/v3/tests/description.test.ts +33 -0
  41. package/src/v3/tests/discriminated-unions.test.ts +315 -0
  42. package/src/v3/tests/enum.test.ts +80 -0
  43. package/src/v3/tests/error.test.ts +551 -0
  44. package/src/v3/tests/firstparty.test.ts +87 -0
  45. package/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  46. package/src/v3/tests/function.test.ts +257 -0
  47. package/src/v3/tests/generics.test.ts +48 -0
  48. package/src/v3/tests/instanceof.test.ts +37 -0
  49. package/src/v3/tests/intersection.test.ts +110 -0
  50. package/src/v3/tests/language-server.source.ts +76 -0
  51. package/src/v3/tests/language-server.test.ts +207 -0
  52. package/src/v3/tests/literal.test.ts +36 -0
  53. package/src/v3/tests/map.test.ts +110 -0
  54. package/src/v3/tests/masking.test.ts +4 -0
  55. package/src/v3/tests/mocker.test.ts +19 -0
  56. package/src/v3/tests/nan.test.ts +21 -0
  57. package/src/v3/tests/nativeEnum.test.ts +87 -0
  58. package/src/v3/tests/nullable.test.ts +42 -0
  59. package/src/v3/tests/number.test.ts +176 -0
  60. package/src/v3/tests/object-augmentation.test.ts +29 -0
  61. package/src/v3/tests/object-in-es5-env.test.ts +29 -0
  62. package/src/v3/tests/object.test.ts +434 -0
  63. package/src/v3/tests/optional.test.ts +42 -0
  64. package/src/v3/tests/parseUtil.test.ts +23 -0
  65. package/src/v3/tests/parser.test.ts +41 -0
  66. package/src/v3/tests/partials.test.ts +243 -0
  67. package/src/v3/tests/pickomit.test.ts +111 -0
  68. package/src/v3/tests/pipeline.test.ts +29 -0
  69. package/src/v3/tests/preprocess.test.ts +186 -0
  70. package/src/v3/tests/primitive.test.ts +440 -0
  71. package/src/v3/tests/promise.test.ts +90 -0
  72. package/src/v3/tests/readonly.test.ts +194 -0
  73. package/src/v3/tests/record.test.ts +171 -0
  74. package/src/v3/tests/recursive.test.ts +197 -0
  75. package/src/v3/tests/refine.test.ts +313 -0
  76. package/src/v3/tests/safeparse.test.ts +27 -0
  77. package/src/v3/tests/set.test.ts +142 -0
  78. package/src/v3/tests/standard-schema.test.ts +83 -0
  79. package/src/v3/tests/string.test.ts +916 -0
  80. package/src/v3/tests/transformer.test.ts +233 -0
  81. package/src/v3/tests/tuple.test.ts +90 -0
  82. package/src/v3/tests/unions.test.ts +57 -0
  83. package/src/v3/tests/validations.test.ts +133 -0
  84. package/src/v3/tests/void.test.ts +15 -0
  85. package/src/v3/types.ts +5136 -0
  86. package/src/v4/classic/checks.ts +30 -0
  87. package/src/v4/classic/coerce.ts +27 -0
  88. package/src/v4/classic/compat.ts +66 -0
  89. package/src/v4/classic/errors.ts +75 -0
  90. package/src/v4/classic/external.ts +50 -0
  91. package/src/v4/classic/index.ts +5 -0
  92. package/src/v4/classic/iso.ts +90 -0
  93. package/src/v4/classic/parse.ts +33 -0
  94. package/src/v4/classic/schemas.ts +2055 -0
  95. package/src/v4/classic/tests/anyunknown.test.ts +26 -0
  96. package/src/v4/classic/tests/array.test.ts +264 -0
  97. package/src/v4/classic/tests/assignability.test.ts +210 -0
  98. package/src/v4/classic/tests/async-parsing.test.ts +381 -0
  99. package/src/v4/classic/tests/async-refinements.test.ts +68 -0
  100. package/src/v4/classic/tests/base.test.ts +7 -0
  101. package/src/v4/classic/tests/bigint.test.ts +54 -0
  102. package/src/v4/classic/tests/brand.test.ts +65 -0
  103. package/src/v4/classic/tests/catch.test.ts +252 -0
  104. package/src/v4/classic/tests/coalesce.test.ts +20 -0
  105. package/src/v4/classic/tests/coerce.test.ts +160 -0
  106. package/src/v4/classic/tests/continuability.test.ts +352 -0
  107. package/src/v4/classic/tests/custom.test.ts +40 -0
  108. package/src/v4/classic/tests/date.test.ts +31 -0
  109. package/src/v4/classic/tests/datetime.test.ts +296 -0
  110. package/src/v4/classic/tests/default.test.ts +313 -0
  111. package/src/v4/classic/tests/description.test.ts +32 -0
  112. package/src/v4/classic/tests/discriminated-unions.test.ts +592 -0
  113. package/src/v4/classic/tests/enum.test.ts +285 -0
  114. package/src/v4/classic/tests/error-utils.test.ts +527 -0
  115. package/src/v4/classic/tests/error.test.ts +711 -0
  116. package/src/v4/classic/tests/file.test.ts +91 -0
  117. package/src/v4/classic/tests/firstparty.test.ts +175 -0
  118. package/src/v4/classic/tests/function.test.ts +268 -0
  119. package/src/v4/classic/tests/generics.test.ts +72 -0
  120. package/src/v4/classic/tests/index.test.ts +829 -0
  121. package/src/v4/classic/tests/instanceof.test.ts +34 -0
  122. package/src/v4/classic/tests/intersection.test.ts +171 -0
  123. package/src/v4/classic/tests/json.test.ts +108 -0
  124. package/src/v4/classic/tests/lazy.test.ts +227 -0
  125. package/src/v4/classic/tests/literal.test.ts +92 -0
  126. package/src/v4/classic/tests/map.test.ts +196 -0
  127. package/src/v4/classic/tests/nan.test.ts +21 -0
  128. package/src/v4/classic/tests/nested-refine.test.ts +168 -0
  129. package/src/v4/classic/tests/nonoptional.test.ts +86 -0
  130. package/src/v4/classic/tests/nullable.test.ts +22 -0
  131. package/src/v4/classic/tests/number.test.ts +247 -0
  132. package/src/v4/classic/tests/object.test.ts +553 -0
  133. package/src/v4/classic/tests/optional.test.ts +103 -0
  134. package/src/v4/classic/tests/partial.test.ts +147 -0
  135. package/src/v4/classic/tests/pickomit.test.ts +127 -0
  136. package/src/v4/classic/tests/pipe.test.ts +81 -0
  137. package/src/v4/classic/tests/prefault.test.ts +37 -0
  138. package/src/v4/classic/tests/preprocess.test.ts +298 -0
  139. package/src/v4/classic/tests/primitive.test.ts +175 -0
  140. package/src/v4/classic/tests/promise.test.ts +81 -0
  141. package/src/v4/classic/tests/prototypes.test.ts +23 -0
  142. package/src/v4/classic/tests/readonly.test.ts +252 -0
  143. package/src/v4/classic/tests/record.test.ts +332 -0
  144. package/src/v4/classic/tests/recursive-types.test.ts +325 -0
  145. package/src/v4/classic/tests/refine.test.ts +423 -0
  146. package/src/v4/classic/tests/registries.test.ts +195 -0
  147. package/src/v4/classic/tests/set.test.ts +179 -0
  148. package/src/v4/classic/tests/standard-schema.test.ts +57 -0
  149. package/src/v4/classic/tests/string-formats.test.ts +109 -0
  150. package/src/v4/classic/tests/string.test.ts +881 -0
  151. package/src/v4/classic/tests/stringbool.test.ts +66 -0
  152. package/src/v4/classic/tests/template-literal.test.ts +758 -0
  153. package/src/v4/classic/tests/to-json-schema.test.ts +2182 -0
  154. package/src/v4/classic/tests/transform.test.ts +250 -0
  155. package/src/v4/classic/tests/tuple.test.ts +163 -0
  156. package/src/v4/classic/tests/union.test.ts +94 -0
  157. package/src/v4/classic/tests/validations.test.ts +283 -0
  158. package/src/v4/classic/tests/void.test.ts +12 -0
  159. package/src/v4/core/api.ts +1592 -0
  160. package/src/v4/core/checks.ts +1285 -0
  161. package/src/v4/core/config.ts +15 -0
  162. package/src/v4/core/core.ts +134 -0
  163. package/src/v4/core/doc.ts +44 -0
  164. package/src/v4/core/errors.ts +420 -0
  165. package/src/v4/core/function.ts +176 -0
  166. package/src/v4/core/index.ts +15 -0
  167. package/src/v4/core/json-schema.ts +143 -0
  168. package/src/v4/core/parse.ts +94 -0
  169. package/src/v4/core/regexes.ts +135 -0
  170. package/src/v4/core/registries.ts +86 -0
  171. package/src/v4/core/schemas.ts +3781 -0
  172. package/src/v4/core/standard-schema.ts +64 -0
  173. package/src/v4/core/tests/index.test.ts +46 -0
  174. package/src/v4/core/tests/locales/be.test.ts +124 -0
  175. package/src/v4/core/tests/locales/en.test.ts +22 -0
  176. package/src/v4/core/tests/locales/ru.test.ts +128 -0
  177. package/src/v4/core/tests/locales/tr.test.ts +69 -0
  178. package/src/v4/core/to-json-schema.ts +944 -0
  179. package/src/v4/core/util.ts +775 -0
  180. package/src/v4/core/versions.ts +5 -0
  181. package/src/v4/core/zsf.ts +323 -0
  182. package/src/v4/index.ts +4 -0
  183. package/src/v4/locales/ar.ts +125 -0
  184. package/src/v4/locales/az.ts +121 -0
  185. package/src/v4/locales/be.ts +184 -0
  186. package/src/v4/locales/ca.ts +127 -0
  187. package/src/v4/locales/cs.ts +142 -0
  188. package/src/v4/locales/de.ts +124 -0
  189. package/src/v4/locales/en.ts +127 -0
  190. package/src/v4/locales/eo.ts +125 -0
  191. package/src/v4/locales/es.ts +125 -0
  192. package/src/v4/locales/fa.ts +134 -0
  193. package/src/v4/locales/fi.ts +131 -0
  194. package/src/v4/locales/fr-CA.ts +126 -0
  195. package/src/v4/locales/fr.ts +124 -0
  196. package/src/v4/locales/he.ts +125 -0
  197. package/src/v4/locales/hu.ts +126 -0
  198. package/src/v4/locales/id.ts +125 -0
  199. package/src/v4/locales/index.ts +39 -0
  200. package/src/v4/locales/it.ts +125 -0
  201. package/src/v4/locales/ja.ts +122 -0
  202. package/src/v4/locales/kh.ts +126 -0
  203. package/src/v4/locales/ko.ts +131 -0
  204. package/src/v4/locales/mk.ts +127 -0
  205. package/src/v4/locales/ms.ts +124 -0
  206. package/src/v4/locales/nl.ts +126 -0
  207. package/src/v4/locales/no.ts +124 -0
  208. package/src/v4/locales/ota.ts +125 -0
  209. package/src/v4/locales/pl.ts +126 -0
  210. package/src/v4/locales/ps.ts +133 -0
  211. package/src/v4/locales/pt.ts +123 -0
  212. package/src/v4/locales/ru.ts +184 -0
  213. package/src/v4/locales/sl.ts +126 -0
  214. package/src/v4/locales/sv.ts +127 -0
  215. package/src/v4/locales/ta.ts +125 -0
  216. package/src/v4/locales/th.ts +126 -0
  217. package/src/v4/locales/tr.ts +121 -0
  218. package/src/v4/locales/ua.ts +126 -0
  219. package/src/v4/locales/ur.ts +126 -0
  220. package/src/v4/locales/vi.ts +125 -0
  221. package/src/v4/locales/zh-CN.ts +123 -0
  222. package/src/v4/locales/zh-TW.ts +125 -0
  223. package/src/v4/mini/checks.ts +32 -0
  224. package/src/v4/mini/coerce.ts +22 -0
  225. package/src/v4/mini/external.ts +40 -0
  226. package/src/v4/mini/index.ts +3 -0
  227. package/src/v4/mini/iso.ts +62 -0
  228. package/src/v4/mini/parse.ts +1 -0
  229. package/src/v4/mini/schemas.ts +1579 -0
  230. package/src/v4/mini/tests/assignability.test.ts +129 -0
  231. package/src/v4/mini/tests/brand.test.ts +51 -0
  232. package/src/v4/mini/tests/checks.test.ts +144 -0
  233. package/src/v4/mini/tests/computed.test.ts +36 -0
  234. package/src/v4/mini/tests/error.test.ts +22 -0
  235. package/src/v4/mini/tests/functions.test.ts +43 -0
  236. package/src/v4/mini/tests/index.test.ts +871 -0
  237. package/src/v4/mini/tests/number.test.ts +95 -0
  238. package/src/v4/mini/tests/object.test.ts +185 -0
  239. package/src/v4/mini/tests/prototypes.test.ts +43 -0
  240. package/src/v4/mini/tests/recursive-types.test.ts +275 -0
  241. package/src/v4/mini/tests/string.test.ts +293 -0
  242. package/src/v4-mini/index.ts +1 -0
  243. package/v4/classic/compat.cjs +1 -7
  244. package/v4/classic/compat.d.cts +0 -2
  245. package/v4/classic/compat.d.ts +0 -2
  246. package/v4/classic/compat.js +0 -6
  247. package/v4/classic/external.cjs +2 -1
  248. package/v4/classic/external.d.cts +1 -1
  249. package/v4/classic/external.d.ts +1 -1
  250. package/v4/classic/external.js +1 -1
  251. package/v4/classic/schemas.d.cts +4 -4
  252. package/v4/classic/schemas.d.ts +4 -4
  253. package/v4/core/api.cjs +11 -10
  254. package/v4/core/api.js +11 -10
  255. package/v4/core/checks.cjs +6 -4
  256. package/v4/core/checks.js +6 -4
  257. package/v4/core/core.cjs +5 -1
  258. package/v4/core/core.d.cts +2 -0
  259. package/v4/core/core.d.ts +2 -0
  260. package/v4/core/core.js +4 -0
  261. package/v4/core/schemas.cjs +12 -13
  262. package/v4/core/schemas.js +12 -13
  263. package/v4/core/util.cjs +3 -0
  264. package/v4/core/util.d.cts +1 -1
  265. package/v4/core/util.d.ts +1 -1
  266. package/v4/core/util.js +3 -0
  267. package/v4/locales/eo.cjs +144 -0
  268. package/v4/locales/eo.d.cts +5 -0
  269. package/v4/locales/eo.d.ts +5 -0
  270. package/v4/locales/eo.js +116 -0
  271. package/v4/locales/index.cjs +3 -1
  272. package/v4/locales/index.d.cts +1 -0
  273. package/v4/locales/index.d.ts +1 -0
  274. package/v4/locales/index.js +1 -0
  275. package/v4/mini/external.cjs +2 -1
  276. package/v4/mini/external.d.cts +1 -1
  277. package/v4/mini/external.d.ts +1 -1
  278. package/v4/mini/external.js +1 -1
@@ -0,0 +1,1592 @@
1
+ import * as checks from "./checks.js";
2
+ import type * as core from "./core.js";
3
+ import type * as errors from "./errors.js";
4
+ import * as schemas from "./schemas.js";
5
+ import * as util from "./util.js";
6
+
7
+ export type Params<
8
+ T extends schemas.$ZodType | checks.$ZodCheck,
9
+ IssueTypes extends errors.$ZodIssueBase,
10
+ OmitKeys extends keyof T["_zod"]["def"] = never,
11
+ > = util.Flatten<
12
+ Partial<
13
+ util.EmptyToNever<
14
+ Omit<T["_zod"]["def"], OmitKeys> &
15
+ ([IssueTypes] extends [never]
16
+ ? {} // unknown
17
+ : {
18
+ error?: string | errors.$ZodErrorMap<IssueTypes> | undefined;
19
+ /** @deprecated This parameter is deprecated. Use `error` instead. */
20
+ message?: string | undefined; // supported in Zod 3
21
+ })
22
+ >
23
+ >
24
+ >;
25
+
26
+ export type TypeParams<
27
+ T extends schemas.$ZodType = schemas.$ZodType & { _isst: never },
28
+ AlsoOmit extends Exclude<keyof T["_zod"]["def"], "type" | "checks" | "error"> = never,
29
+ > = Params<T, NonNullable<T["_zod"]["isst"]>, "type" | "checks" | "error" | AlsoOmit>;
30
+
31
+ // strips types that are not exposed in the public factory
32
+ // incl. `error`, `check`
33
+ export type CheckParams<
34
+ T extends checks.$ZodCheck = checks.$ZodCheck, // & { _issc: never },
35
+ AlsoOmit extends Exclude<keyof T["_zod"]["def"], "check" | "error"> = never,
36
+ > = Params<T, NonNullable<T["_zod"]["issc"]>, "check" | "error" | AlsoOmit>;
37
+
38
+ // strips types that are not exposed in the public factory
39
+ // incl. `type`, `checks`, `error`, `check`, `format`
40
+ export type StringFormatParams<
41
+ T extends schemas.$ZodStringFormat = schemas.$ZodStringFormat,
42
+ AlsoOmit extends Exclude<keyof T["_zod"]["def"], "type" | "coerce" | "checks" | "error" | "check" | "format"> = never,
43
+ > = Params<
44
+ T,
45
+ NonNullable<T["_zod"]["isst"] | T["_zod"]["issc"]>,
46
+ "type" | "coerce" | "checks" | "error" | "check" | "format" | AlsoOmit
47
+ >;
48
+
49
+ export type CheckStringFormatParams<
50
+ T extends schemas.$ZodStringFormat = schemas.$ZodStringFormat,
51
+ AlsoOmit extends Exclude<keyof T["_zod"]["def"], "type" | "coerce" | "checks" | "error" | "check" | "format"> = never,
52
+ > = Params<T, NonNullable<T["_zod"]["issc"]>, "type" | "coerce" | "checks" | "error" | "check" | "format" | AlsoOmit>;
53
+
54
+ export type CheckTypeParams<
55
+ T extends schemas.$ZodType & checks.$ZodCheck = schemas.$ZodType & checks.$ZodCheck,
56
+ AlsoOmit extends Exclude<keyof T["_zod"]["def"], "type" | "checks" | "error" | "check"> = never,
57
+ > = Params<T, NonNullable<T["_zod"]["isst"] | T["_zod"]["issc"]>, "type" | "checks" | "error" | "check" | AlsoOmit>;
58
+
59
+ // String
60
+ export type $ZodStringParams = TypeParams<schemas.$ZodString<string>, "coerce">;
61
+ export function _string<T extends schemas.$ZodString>(
62
+ Class: util.SchemaClass<T>,
63
+ params?: string | $ZodStringParams
64
+ ): T {
65
+ return new Class({
66
+ type: "string",
67
+ ...util.normalizeParams(params),
68
+ });
69
+ }
70
+
71
+ export function _coercedString<T extends schemas.$ZodString>(
72
+ Class: util.SchemaClass<T>,
73
+ params?: string | $ZodStringParams
74
+ ): T {
75
+ return new Class({
76
+ type: "string",
77
+ coerce: true,
78
+ ...util.normalizeParams(params),
79
+ });
80
+ }
81
+
82
+ export type $ZodStringFormatParams = CheckTypeParams<schemas.$ZodStringFormat, "format" | "coerce">;
83
+ export type $ZodCheckStringFormatParams = CheckParams<checks.$ZodCheckStringFormat, "format">;
84
+ // custom format
85
+
86
+ // Email
87
+ export type $ZodEmailParams = StringFormatParams<schemas.$ZodEmail>;
88
+ export type $ZodCheckEmailParams = CheckStringFormatParams<schemas.$ZodEmail>;
89
+ export function _email<T extends schemas.$ZodEmail>(
90
+ Class: util.SchemaClass<T>,
91
+ params?: string | $ZodEmailParams | $ZodCheckEmailParams
92
+ ): T {
93
+ return new Class({
94
+ type: "string",
95
+ format: "email",
96
+ check: "string_format",
97
+ abort: false,
98
+ ...util.normalizeParams(params),
99
+ });
100
+ }
101
+
102
+ // GUID
103
+ export type $ZodGUIDParams = StringFormatParams<schemas.$ZodGUID, "pattern">;
104
+ export type $ZodCheckGUIDParams = CheckStringFormatParams<schemas.$ZodGUID, "pattern">;
105
+ export function _guid<T extends schemas.$ZodGUID>(
106
+ Class: util.SchemaClass<T>,
107
+ params?: string | $ZodGUIDParams | $ZodCheckGUIDParams
108
+ ): T {
109
+ return new Class({
110
+ type: "string",
111
+ format: "guid",
112
+ check: "string_format",
113
+ abort: false,
114
+ ...util.normalizeParams(params),
115
+ });
116
+ }
117
+
118
+ // UUID
119
+ export type $ZodUUIDParams = StringFormatParams<schemas.$ZodUUID, "pattern">;
120
+ export type $ZodCheckUUIDParams = CheckStringFormatParams<schemas.$ZodUUID, "pattern">;
121
+ export function _uuid<T extends schemas.$ZodUUID>(
122
+ Class: util.SchemaClass<T>,
123
+ params?: string | $ZodUUIDParams | $ZodCheckUUIDParams
124
+ ): T {
125
+ return new Class({
126
+ type: "string",
127
+ format: "uuid",
128
+ check: "string_format",
129
+ abort: false,
130
+ ...util.normalizeParams(params),
131
+ });
132
+ }
133
+
134
+ // UUIDv4
135
+ export type $ZodUUIDv4Params = StringFormatParams<schemas.$ZodUUID, "pattern">;
136
+ export type $ZodCheckUUIDv4Params = CheckStringFormatParams<schemas.$ZodUUID, "pattern">;
137
+ export function _uuidv4<T extends schemas.$ZodUUID>(
138
+ Class: util.SchemaClass<T>,
139
+ params?: string | $ZodUUIDv4Params | $ZodCheckUUIDv4Params
140
+ ): T {
141
+ return new Class({
142
+ type: "string",
143
+ format: "uuid",
144
+ check: "string_format",
145
+ abort: false,
146
+ version: "v4",
147
+ ...util.normalizeParams(params),
148
+ });
149
+ }
150
+
151
+ // UUIDv6
152
+ export type $ZodUUIDv6Params = StringFormatParams<schemas.$ZodUUID, "pattern">;
153
+ export type $ZodCheckUUIDv6Params = CheckStringFormatParams<schemas.$ZodUUID, "pattern">;
154
+ export function _uuidv6<T extends schemas.$ZodUUID>(
155
+ Class: util.SchemaClass<T>,
156
+ params?: string | $ZodUUIDv6Params | $ZodCheckUUIDv6Params
157
+ ): T {
158
+ return new Class({
159
+ type: "string",
160
+ format: "uuid",
161
+ check: "string_format",
162
+ abort: false,
163
+ version: "v6",
164
+ ...util.normalizeParams(params),
165
+ });
166
+ }
167
+
168
+ // UUIDv7
169
+ export type $ZodUUIDv7Params = StringFormatParams<schemas.$ZodUUID, "pattern">;
170
+ export type $ZodCheckUUIDv7Params = CheckStringFormatParams<schemas.$ZodUUID, "pattern">;
171
+ export function _uuidv7<T extends schemas.$ZodUUID>(
172
+ Class: util.SchemaClass<T>,
173
+ params?: string | $ZodUUIDv7Params | $ZodCheckUUIDv7Params
174
+ ): T {
175
+ return new Class({
176
+ type: "string",
177
+ format: "uuid",
178
+ check: "string_format",
179
+ abort: false,
180
+ version: "v7",
181
+ ...util.normalizeParams(params),
182
+ });
183
+ }
184
+
185
+ // URL
186
+ export type $ZodURLParams = StringFormatParams<schemas.$ZodURL>;
187
+ export type $ZodCheckURLParams = CheckStringFormatParams<schemas.$ZodURL>;
188
+ export function _url<T extends schemas.$ZodURL>(
189
+ Class: util.SchemaClass<T>,
190
+ params?: string | $ZodURLParams | $ZodCheckURLParams
191
+ ): T {
192
+ return new Class({
193
+ type: "string",
194
+ format: "url",
195
+ check: "string_format",
196
+ abort: false,
197
+ ...util.normalizeParams(params),
198
+ });
199
+ }
200
+
201
+ // Emoji
202
+ export type $ZodEmojiParams = StringFormatParams<schemas.$ZodEmoji>;
203
+ export type $ZodCheckEmojiParams = CheckStringFormatParams<schemas.$ZodEmoji>;
204
+ export function _emoji<T extends schemas.$ZodEmoji>(
205
+ Class: util.SchemaClass<T>,
206
+ params?: string | $ZodEmojiParams | $ZodCheckEmojiParams
207
+ ): T {
208
+ return new Class({
209
+ type: "string",
210
+ format: "emoji",
211
+ check: "string_format",
212
+ abort: false,
213
+ ...util.normalizeParams(params),
214
+ });
215
+ }
216
+
217
+ // NanoID
218
+ export type $ZodNanoIDParams = StringFormatParams<schemas.$ZodNanoID>;
219
+ export type $ZodCheckNanoIDParams = CheckStringFormatParams<schemas.$ZodNanoID>;
220
+ export function _nanoid<T extends schemas.$ZodNanoID>(
221
+ Class: util.SchemaClass<T>,
222
+ params?: string | $ZodNanoIDParams | $ZodCheckNanoIDParams
223
+ ): T {
224
+ return new Class({
225
+ type: "string",
226
+ format: "nanoid",
227
+ check: "string_format",
228
+ abort: false,
229
+ ...util.normalizeParams(params),
230
+ });
231
+ }
232
+
233
+ // CUID
234
+ export type $ZodCUIDParams = StringFormatParams<schemas.$ZodCUID>;
235
+ export type $ZodCheckCUIDParams = CheckStringFormatParams<schemas.$ZodCUID>;
236
+ export function _cuid<T extends schemas.$ZodCUID>(
237
+ Class: util.SchemaClass<T>,
238
+ params?: string | $ZodCUIDParams | $ZodCheckCUIDParams
239
+ ): T {
240
+ return new Class({
241
+ type: "string",
242
+ format: "cuid",
243
+ check: "string_format",
244
+ abort: false,
245
+ ...util.normalizeParams(params),
246
+ });
247
+ }
248
+
249
+ // CUID2
250
+ export type $ZodCUID2Params = StringFormatParams<schemas.$ZodCUID2>;
251
+ export type $ZodCheckCUID2Params = CheckStringFormatParams<schemas.$ZodCUID2>;
252
+ export function _cuid2<T extends schemas.$ZodCUID2>(
253
+ Class: util.SchemaClass<T>,
254
+ params?: string | $ZodCUID2Params | $ZodCheckCUID2Params
255
+ ): T {
256
+ return new Class({
257
+ type: "string",
258
+ format: "cuid2",
259
+ check: "string_format",
260
+ abort: false,
261
+ ...util.normalizeParams(params),
262
+ });
263
+ }
264
+
265
+ // ULID
266
+ export type $ZodULIDParams = StringFormatParams<schemas.$ZodULID>;
267
+ export type $ZodCheckULIDParams = CheckStringFormatParams<schemas.$ZodULID>;
268
+ export function _ulid<T extends schemas.$ZodULID>(
269
+ Class: util.SchemaClass<T>,
270
+ params?: string | $ZodULIDParams | $ZodCheckULIDParams
271
+ ): T {
272
+ return new Class({
273
+ type: "string",
274
+ format: "ulid",
275
+ check: "string_format",
276
+ abort: false,
277
+ ...util.normalizeParams(params),
278
+ });
279
+ }
280
+
281
+ // XID
282
+ export type $ZodXIDParams = StringFormatParams<schemas.$ZodXID>;
283
+ export type $ZodCheckXIDParams = CheckStringFormatParams<schemas.$ZodXID>;
284
+ export function _xid<T extends schemas.$ZodXID>(
285
+ Class: util.SchemaClass<T>,
286
+ params?: string | $ZodXIDParams | $ZodCheckXIDParams
287
+ ): T {
288
+ return new Class({
289
+ type: "string",
290
+ format: "xid",
291
+ check: "string_format",
292
+ abort: false,
293
+ ...util.normalizeParams(params),
294
+ });
295
+ }
296
+
297
+ // KSUID
298
+ export type $ZodKSUIDParams = StringFormatParams<schemas.$ZodKSUID>;
299
+ export type $ZodCheckKSUIDParams = CheckStringFormatParams<schemas.$ZodKSUID>;
300
+ export function _ksuid<T extends schemas.$ZodKSUID>(
301
+ Class: util.SchemaClass<T>,
302
+ params?: string | $ZodKSUIDParams | $ZodCheckKSUIDParams
303
+ ): T {
304
+ return new Class({
305
+ type: "string",
306
+ format: "ksuid",
307
+ check: "string_format",
308
+ abort: false,
309
+ ...util.normalizeParams(params),
310
+ });
311
+ }
312
+
313
+ // IP
314
+ // export type $ZodIPParams = StringFormatParams<schemas.$ZodIP, "pattern">;
315
+ // export type $ZodCheckIPParams = CheckStringFormatParams<schemas.$ZodIP, "pattern">;
316
+ // export function _ip<T extends schemas.$ZodIP>(
317
+ // Class: util.SchemaClass<T>,
318
+ // params?: string | $ZodIPParams | $ZodCheckIPParams
319
+ // ): T {
320
+ // return new Class({
321
+ // type: "string",
322
+ // format: "ip",
323
+ // check: "string_format",
324
+ // abort: false,
325
+ // ...util.normalizeParams(params),
326
+ // });
327
+ // }
328
+
329
+ // IPv4
330
+ export type $ZodIPv4Params = StringFormatParams<schemas.$ZodIPv4, "pattern">;
331
+ export type $ZodCheckIPv4Params = CheckStringFormatParams<schemas.$ZodIPv4, "pattern">;
332
+ export function _ipv4<T extends schemas.$ZodIPv4>(
333
+ Class: util.SchemaClass<T>,
334
+ params?: string | $ZodIPv4Params | $ZodCheckIPv4Params
335
+ ): T {
336
+ return new Class({
337
+ type: "string",
338
+ format: "ipv4",
339
+ check: "string_format",
340
+ abort: false,
341
+ ...util.normalizeParams(params),
342
+ });
343
+ }
344
+
345
+ // IPv6
346
+ export type $ZodIPv6Params = StringFormatParams<schemas.$ZodIPv6, "pattern">;
347
+ export type $ZodCheckIPv6Params = CheckStringFormatParams<schemas.$ZodIPv6, "pattern">;
348
+ export function _ipv6<T extends schemas.$ZodIPv6>(
349
+ Class: util.SchemaClass<T>,
350
+ params?: string | $ZodIPv6Params | $ZodCheckIPv6Params
351
+ ): T {
352
+ return new Class({
353
+ type: "string",
354
+ format: "ipv6",
355
+ check: "string_format",
356
+ abort: false,
357
+ ...util.normalizeParams(params),
358
+ });
359
+ }
360
+
361
+ // CIDRv4
362
+ export type $ZodCIDRv4Params = StringFormatParams<schemas.$ZodCIDRv4, "pattern">;
363
+ export type $ZodCheckCIDRv4Params = CheckStringFormatParams<schemas.$ZodCIDRv4, "pattern">;
364
+ export function _cidrv4<T extends schemas.$ZodCIDRv4>(
365
+ Class: util.SchemaClass<T>,
366
+ params?: string | $ZodCIDRv4Params | $ZodCheckCIDRv4Params
367
+ ): T {
368
+ return new Class({
369
+ type: "string",
370
+ format: "cidrv4",
371
+ check: "string_format",
372
+ abort: false,
373
+ ...util.normalizeParams(params),
374
+ });
375
+ }
376
+
377
+ // CIDRv6
378
+ export type $ZodCIDRv6Params = StringFormatParams<schemas.$ZodCIDRv6, "pattern">;
379
+ export type $ZodCheckCIDRv6Params = CheckStringFormatParams<schemas.$ZodCIDRv6, "pattern">;
380
+ export function _cidrv6<T extends schemas.$ZodCIDRv6>(
381
+ Class: util.SchemaClass<T>,
382
+ params?: string | $ZodCIDRv6Params | $ZodCheckCIDRv6Params
383
+ ): T {
384
+ return new Class({
385
+ type: "string",
386
+ format: "cidrv6",
387
+ check: "string_format",
388
+ abort: false,
389
+ ...util.normalizeParams(params),
390
+ });
391
+ }
392
+
393
+ // Base64
394
+ export type $ZodBase64Params = StringFormatParams<schemas.$ZodBase64, "pattern">;
395
+ export type $ZodCheckBase64Params = CheckStringFormatParams<schemas.$ZodBase64, "pattern">;
396
+ export function _base64<T extends schemas.$ZodBase64>(
397
+ Class: util.SchemaClass<T>,
398
+ params?: string | $ZodBase64Params | $ZodCheckBase64Params
399
+ ): T {
400
+ return new Class({
401
+ type: "string",
402
+ format: "base64",
403
+ check: "string_format",
404
+ abort: false,
405
+ ...util.normalizeParams(params),
406
+ });
407
+ }
408
+
409
+ // base64url
410
+ export type $ZodBase64URLParams = StringFormatParams<schemas.$ZodBase64URL, "pattern">;
411
+ export type $ZodCheckBase64URLParams = CheckStringFormatParams<schemas.$ZodBase64URL, "pattern">;
412
+ export function _base64url<T extends schemas.$ZodBase64URL>(
413
+ Class: util.SchemaClass<T>,
414
+ params?: string | $ZodBase64URLParams | $ZodCheckBase64URLParams
415
+ ): T {
416
+ return new Class({
417
+ type: "string",
418
+ format: "base64url",
419
+ check: "string_format",
420
+ abort: false,
421
+ ...util.normalizeParams(params),
422
+ });
423
+ }
424
+
425
+ // E164
426
+ export type $ZodE164Params = StringFormatParams<schemas.$ZodE164>;
427
+ export type $ZodCheckE164Params = CheckStringFormatParams<schemas.$ZodE164>;
428
+ export function _e164<T extends schemas.$ZodE164>(
429
+ Class: util.SchemaClass<T>,
430
+ params?: string | $ZodE164Params | $ZodCheckE164Params
431
+ ): T {
432
+ return new Class({
433
+ type: "string",
434
+ format: "e164",
435
+ check: "string_format",
436
+ abort: false,
437
+ ...util.normalizeParams(params),
438
+ });
439
+ }
440
+
441
+ // JWT
442
+ export type $ZodJWTParams = StringFormatParams<schemas.$ZodJWT, "pattern">;
443
+ export type $ZodCheckJWTParams = CheckStringFormatParams<schemas.$ZodJWT, "pattern">;
444
+ export function _jwt<T extends schemas.$ZodJWT>(
445
+ Class: util.SchemaClass<T>,
446
+ params?: string | $ZodJWTParams | $ZodCheckJWTParams
447
+ ): T {
448
+ return new Class({
449
+ type: "string",
450
+ format: "jwt",
451
+ check: "string_format",
452
+ abort: false,
453
+ ...util.normalizeParams(params),
454
+ });
455
+ }
456
+
457
+ export const TimePrecision = {
458
+ Any: null,
459
+ Minute: -1,
460
+ Second: 0,
461
+ Millisecond: 3,
462
+ Microsecond: 6,
463
+ } as const;
464
+ // ISODateTime
465
+ export type $ZodISODateTimeParams = StringFormatParams<schemas.$ZodISODateTime, "pattern">;
466
+ export type $ZodCheckISODateTimeParams = CheckStringFormatParams<schemas.$ZodISODateTime, "pattern">;
467
+ export function _isoDateTime<T extends schemas.$ZodISODateTime>(
468
+ Class: util.SchemaClass<T>,
469
+ params?: string | $ZodISODateTimeParams | $ZodCheckISODateTimeParams
470
+ ): T {
471
+ return new Class({
472
+ type: "string",
473
+ format: "datetime",
474
+ check: "string_format",
475
+ offset: false,
476
+ local: false,
477
+ precision: null,
478
+ ...util.normalizeParams(params),
479
+ });
480
+ }
481
+
482
+ // ISODate
483
+ export type $ZodISODateParams = StringFormatParams<schemas.$ZodISODate, "pattern">;
484
+ export type $ZodCheckISODateParams = CheckStringFormatParams<schemas.$ZodISODate, "pattern">;
485
+ export function _isoDate<T extends schemas.$ZodISODate>(
486
+ Class: util.SchemaClass<T>,
487
+ params?: string | $ZodISODateParams | $ZodCheckISODateParams
488
+ ): T {
489
+ return new Class({
490
+ type: "string",
491
+ format: "date",
492
+ check: "string_format",
493
+ ...util.normalizeParams(params),
494
+ });
495
+ }
496
+
497
+ // ISOTime
498
+ export type $ZodISOTimeParams = StringFormatParams<schemas.$ZodISOTime, "pattern">;
499
+ export type $ZodCheckISOTimeParams = CheckStringFormatParams<schemas.$ZodISOTime, "pattern">;
500
+ export function _isoTime<T extends schemas.$ZodISOTime>(
501
+ Class: util.SchemaClass<T>,
502
+ params?: string | $ZodISOTimeParams | $ZodCheckISOTimeParams
503
+ ): T {
504
+ return new Class({
505
+ type: "string",
506
+ format: "time",
507
+ check: "string_format",
508
+ precision: null,
509
+ ...util.normalizeParams(params),
510
+ });
511
+ }
512
+
513
+ // ISODuration
514
+ export type $ZodISODurationParams = StringFormatParams<schemas.$ZodISODuration>;
515
+ export type $ZodCheckISODurationParams = CheckStringFormatParams<schemas.$ZodISODuration>;
516
+ export function _isoDuration<T extends schemas.$ZodISODuration>(
517
+ Class: util.SchemaClass<T>,
518
+ params?: string | $ZodISODurationParams | $ZodCheckISODurationParams
519
+ ): T {
520
+ return new Class({
521
+ type: "string",
522
+ format: "duration",
523
+ check: "string_format",
524
+ ...util.normalizeParams(params),
525
+ });
526
+ }
527
+
528
+ // Number
529
+ export type $ZodNumberParams = TypeParams<schemas.$ZodNumber<number>, "coerce">;
530
+ export type $ZodNumberFormatParams = CheckTypeParams<schemas.$ZodNumberFormat, "format" | "coerce">;
531
+ export type $ZodCheckNumberFormatParams = CheckParams<checks.$ZodCheckNumberFormat, "format">;
532
+ export function _number<T extends schemas.$ZodNumber>(
533
+ Class: util.SchemaClass<T>,
534
+ params?: string | $ZodNumberParams
535
+ ): T {
536
+ return new Class({
537
+ type: "number",
538
+ checks: [],
539
+ ...util.normalizeParams(params),
540
+ });
541
+ }
542
+
543
+ export function _coercedNumber<T extends schemas.$ZodNumber>(
544
+ Class: util.SchemaClass<T>,
545
+ params?: string | $ZodNumberParams
546
+ ): T {
547
+ return new Class({
548
+ type: "number",
549
+ coerce: true,
550
+ checks: [],
551
+ ...util.normalizeParams(params),
552
+ });
553
+ }
554
+
555
+ export function _int<T extends schemas.$ZodNumberFormat>(
556
+ Class: util.SchemaClass<T>,
557
+ params?: string | $ZodCheckNumberFormatParams
558
+ ): T {
559
+ return new Class({
560
+ type: "number",
561
+ check: "number_format",
562
+ abort: false,
563
+ format: "safeint",
564
+ ...util.normalizeParams(params),
565
+ });
566
+ }
567
+ export function _float32<T extends schemas.$ZodNumberFormat>(
568
+ Class: util.SchemaClass<T>,
569
+ params?: string | $ZodCheckNumberFormatParams
570
+ ): T {
571
+ return new Class({
572
+ type: "number",
573
+ check: "number_format",
574
+ abort: false,
575
+ format: "float32",
576
+ ...util.normalizeParams(params),
577
+ });
578
+ }
579
+ export function _float64<T extends schemas.$ZodNumberFormat>(
580
+ Class: util.SchemaClass<T>,
581
+ params?: string | $ZodCheckNumberFormatParams
582
+ ): T {
583
+ return new Class({
584
+ type: "number",
585
+ check: "number_format",
586
+ abort: false,
587
+ format: "float64",
588
+ ...util.normalizeParams(params),
589
+ });
590
+ }
591
+ export function _int32<T extends schemas.$ZodNumberFormat>(
592
+ Class: util.SchemaClass<T>,
593
+ params?: string | $ZodCheckNumberFormatParams
594
+ ): T {
595
+ return new Class({
596
+ type: "number",
597
+ check: "number_format",
598
+ abort: false,
599
+ format: "int32",
600
+ ...util.normalizeParams(params),
601
+ });
602
+ }
603
+ export function _uint32<T extends schemas.$ZodNumberFormat>(
604
+ Class: util.SchemaClass<T>,
605
+ params?: string | $ZodCheckNumberFormatParams
606
+ ): T {
607
+ return new Class({
608
+ type: "number",
609
+ check: "number_format",
610
+ abort: false,
611
+ format: "uint32",
612
+ ...util.normalizeParams(params),
613
+ });
614
+ }
615
+
616
+ // Boolean
617
+ export type $ZodBooleanParams = TypeParams<schemas.$ZodBoolean<boolean>, "coerce">;
618
+ export function _boolean<T extends schemas.$ZodBoolean>(
619
+ Class: util.SchemaClass<T>,
620
+ params?: string | $ZodBooleanParams
621
+ ): T {
622
+ return new Class({
623
+ type: "boolean",
624
+ ...util.normalizeParams(params),
625
+ });
626
+ }
627
+ export function _coercedBoolean<T extends schemas.$ZodBoolean>(
628
+ Class: util.SchemaClass<T>,
629
+ params?: string | $ZodBooleanParams
630
+ ): T {
631
+ return new Class({
632
+ type: "boolean",
633
+ coerce: true,
634
+ ...util.normalizeParams(params),
635
+ });
636
+ }
637
+
638
+ // BigInt
639
+ export type $ZodBigIntParams = TypeParams<schemas.$ZodBigInt<bigint>>;
640
+ export type $ZodBigIntFormatParams = CheckTypeParams<schemas.$ZodBigIntFormat, "format" | "coerce">;
641
+ export type $ZodCheckBigIntFormatParams = CheckParams<checks.$ZodCheckBigIntFormat, "format">;
642
+ export function _bigint<T extends schemas.$ZodBigInt>(
643
+ Class: util.SchemaClass<T>,
644
+ params?: string | $ZodBigIntParams
645
+ ): T {
646
+ return new Class({
647
+ type: "bigint",
648
+ ...util.normalizeParams(params),
649
+ });
650
+ }
651
+ export function _coercedBigint<T extends schemas.$ZodBigInt>(
652
+ Class: util.SchemaClass<T>,
653
+ params?: string | $ZodBigIntParams
654
+ ): T {
655
+ return new Class({
656
+ type: "bigint",
657
+ coerce: true,
658
+ ...util.normalizeParams(params),
659
+ });
660
+ }
661
+
662
+ export function _int64<T extends schemas.$ZodBigIntFormat>(
663
+ Class: util.SchemaClass<T>,
664
+ params?: string | $ZodBigIntFormatParams
665
+ ): T {
666
+ return new Class({
667
+ type: "bigint",
668
+ check: "bigint_format",
669
+ abort: false,
670
+ format: "int64",
671
+ ...util.normalizeParams(params),
672
+ });
673
+ }
674
+ export function _uint64<T extends schemas.$ZodBigIntFormat>(
675
+ Class: util.SchemaClass<T>,
676
+ params?: string | $ZodBigIntFormatParams
677
+ ): T {
678
+ return new Class({
679
+ type: "bigint",
680
+ check: "bigint_format",
681
+ abort: false,
682
+ format: "uint64",
683
+ ...util.normalizeParams(params),
684
+ });
685
+ }
686
+
687
+ // Symbol
688
+ export type $ZodSymbolParams = TypeParams<schemas.$ZodSymbol>;
689
+ export function _symbol<T extends schemas.$ZodSymbol>(
690
+ Class: util.SchemaClass<T>,
691
+ params?: string | $ZodSymbolParams
692
+ ): T {
693
+ return new Class({
694
+ type: "symbol",
695
+ ...util.normalizeParams(params),
696
+ });
697
+ }
698
+
699
+ // Undefined
700
+ export type $ZodUndefinedParams = TypeParams<schemas.$ZodUndefined>;
701
+ export function _undefined<T extends schemas.$ZodUndefined>(
702
+ Class: util.SchemaClass<T>,
703
+ params?: string | $ZodUndefinedParams
704
+ ): T {
705
+ return new Class({
706
+ type: "undefined",
707
+ ...util.normalizeParams(params),
708
+ });
709
+ }
710
+
711
+ // Null
712
+ export type $ZodNullParams = TypeParams<schemas.$ZodNull>;
713
+ export function _null<T extends schemas.$ZodNull>(Class: util.SchemaClass<T>, params?: string | $ZodNullParams): T {
714
+ return new Class({
715
+ type: "null",
716
+ ...util.normalizeParams(params),
717
+ });
718
+ }
719
+
720
+ // Any
721
+ export type $ZodAnyParams = TypeParams<schemas.$ZodAny>;
722
+ export function _any<T extends schemas.$ZodAny>(Class: util.SchemaClass<T>): T {
723
+ return new Class({
724
+ type: "any",
725
+ });
726
+ }
727
+
728
+ // Unknown
729
+ export type $ZodUnknownParams = TypeParams<schemas.$ZodUnknown>;
730
+ export function _unknown<T extends schemas.$ZodUnknown>(Class: util.SchemaClass<T>): T {
731
+ return new Class({
732
+ type: "unknown",
733
+ });
734
+ }
735
+
736
+ // Never
737
+ export type $ZodNeverParams = TypeParams<schemas.$ZodNever>;
738
+ export function _never<T extends schemas.$ZodNever>(Class: util.SchemaClass<T>, params?: string | $ZodNeverParams): T {
739
+ return new Class({
740
+ type: "never",
741
+ ...util.normalizeParams(params),
742
+ });
743
+ }
744
+
745
+ // Void
746
+ export type $ZodVoidParams = TypeParams<schemas.$ZodVoid>;
747
+ export function _void<T extends schemas.$ZodVoid>(Class: util.SchemaClass<T>, params?: string | $ZodVoidParams): T {
748
+ return new Class({
749
+ type: "void",
750
+ ...util.normalizeParams(params),
751
+ });
752
+ }
753
+
754
+ // Date
755
+ export type $ZodDateParams = TypeParams<schemas.$ZodDate, "coerce">;
756
+ export function _date<T extends schemas.$ZodDate>(Class: util.SchemaClass<T>, params?: string | $ZodDateParams): T {
757
+ return new Class({
758
+ type: "date",
759
+ ...util.normalizeParams(params),
760
+ });
761
+ }
762
+ export function _coercedDate<T extends schemas.$ZodDate>(
763
+ Class: util.SchemaClass<T>,
764
+ params?: string | $ZodDateParams
765
+ ): T {
766
+ return new Class({
767
+ type: "date",
768
+ coerce: true,
769
+ ...util.normalizeParams(params),
770
+ });
771
+ }
772
+
773
+ // NaN
774
+ export type $ZodNaNParams = TypeParams<schemas.$ZodNaN>;
775
+ export function _nan<T extends schemas.$ZodNaN>(Class: util.SchemaClass<T>, params?: string | $ZodNaNParams): T {
776
+ return new Class({
777
+ type: "nan",
778
+ ...util.normalizeParams(params),
779
+ });
780
+ }
781
+
782
+ export type $ZodCheckLessThanParams = CheckParams<checks.$ZodCheckLessThan, "inclusive" | "value">;
783
+ export function _lt(
784
+ value: util.Numeric,
785
+ params?: string | $ZodCheckLessThanParams
786
+ ): checks.$ZodCheckLessThan<util.Numeric> {
787
+ return new checks.$ZodCheckLessThan({
788
+ check: "less_than",
789
+ ...util.normalizeParams(params),
790
+ value,
791
+ inclusive: false,
792
+ });
793
+ }
794
+
795
+ export function _lte(
796
+ value: util.Numeric,
797
+ params?: string | $ZodCheckLessThanParams
798
+ ): checks.$ZodCheckLessThan<util.Numeric> {
799
+ return new checks.$ZodCheckLessThan({
800
+ check: "less_than",
801
+
802
+ ...util.normalizeParams(params),
803
+ value,
804
+ inclusive: true,
805
+ });
806
+ }
807
+ export {
808
+ /** @deprecated Use `z.lte()` instead. */
809
+ _lte as _max,
810
+ };
811
+
812
+ // ZodCheckGreaterThan
813
+ export type $ZodCheckGreaterThanParams = CheckParams<checks.$ZodCheckGreaterThan, "inclusive" | "value">;
814
+ export function _gt(value: util.Numeric, params?: string | $ZodCheckGreaterThanParams): checks.$ZodCheckGreaterThan {
815
+ return new checks.$ZodCheckGreaterThan({
816
+ check: "greater_than",
817
+
818
+ ...util.normalizeParams(params),
819
+ value,
820
+ inclusive: false,
821
+ });
822
+ }
823
+
824
+ export function _gte(value: util.Numeric, params?: string | $ZodCheckGreaterThanParams): checks.$ZodCheckGreaterThan {
825
+ return new checks.$ZodCheckGreaterThan({
826
+ check: "greater_than",
827
+ ...util.normalizeParams(params),
828
+ value,
829
+ inclusive: true,
830
+ });
831
+ }
832
+
833
+ export {
834
+ /** @deprecated Use `z.gte()` instead. */
835
+ _gte as _min,
836
+ };
837
+
838
+ export function _positive(params?: string | $ZodCheckGreaterThanParams): checks.$ZodCheckGreaterThan {
839
+ return _gt(0, params);
840
+ }
841
+
842
+ // negative
843
+ export function _negative(params?: string | $ZodCheckLessThanParams): checks.$ZodCheckLessThan {
844
+ return _lt(0, params);
845
+ }
846
+
847
+ // nonpositive
848
+ export function _nonpositive(params?: string | $ZodCheckLessThanParams): checks.$ZodCheckLessThan {
849
+ return _lte(0, params);
850
+ }
851
+
852
+ // nonnegative
853
+ export function _nonnegative(params?: string | $ZodCheckGreaterThanParams): checks.$ZodCheckGreaterThan {
854
+ return _gte(0, params);
855
+ }
856
+
857
+ export type $ZodCheckMultipleOfParams = CheckParams<checks.$ZodCheckMultipleOf, "value">;
858
+ export function _multipleOf(
859
+ value: number | bigint,
860
+ params?: string | $ZodCheckMultipleOfParams
861
+ ): checks.$ZodCheckMultipleOf {
862
+ return new checks.$ZodCheckMultipleOf({
863
+ check: "multiple_of",
864
+ ...util.normalizeParams(params),
865
+ value,
866
+ });
867
+ }
868
+
869
+ export type $ZodCheckMaxSizeParams = CheckParams<checks.$ZodCheckMaxSize, "maximum">;
870
+ export function _maxSize(
871
+ maximum: number,
872
+ params?: string | $ZodCheckMaxSizeParams
873
+ ): checks.$ZodCheckMaxSize<util.HasSize> {
874
+ return new checks.$ZodCheckMaxSize({
875
+ check: "max_size",
876
+ ...util.normalizeParams(params),
877
+ maximum,
878
+ });
879
+ }
880
+
881
+ export type $ZodCheckMinSizeParams = CheckParams<checks.$ZodCheckMinSize, "minimum">;
882
+ export function _minSize(
883
+ minimum: number,
884
+ params?: string | $ZodCheckMinSizeParams
885
+ ): checks.$ZodCheckMinSize<util.HasSize> {
886
+ return new checks.$ZodCheckMinSize({
887
+ check: "min_size",
888
+ ...util.normalizeParams(params),
889
+ minimum,
890
+ });
891
+ }
892
+
893
+ export type $ZodCheckSizeEqualsParams = CheckParams<checks.$ZodCheckSizeEquals, "size">;
894
+ export function _size(
895
+ size: number,
896
+ params?: string | $ZodCheckSizeEqualsParams
897
+ ): checks.$ZodCheckSizeEquals<util.HasSize> {
898
+ return new checks.$ZodCheckSizeEquals({
899
+ check: "size_equals",
900
+ ...util.normalizeParams(params),
901
+ size,
902
+ });
903
+ }
904
+
905
+ export type $ZodCheckMaxLengthParams = CheckParams<checks.$ZodCheckMaxLength, "maximum">;
906
+ export function _maxLength(
907
+ maximum: number,
908
+ params?: string | $ZodCheckMaxLengthParams
909
+ ): checks.$ZodCheckMaxLength<util.HasLength> {
910
+ const ch = new checks.$ZodCheckMaxLength({
911
+ check: "max_length",
912
+ ...util.normalizeParams(params),
913
+ maximum,
914
+ });
915
+ return ch;
916
+ }
917
+
918
+ export type $ZodCheckMinLengthParams = CheckParams<checks.$ZodCheckMinLength, "minimum">;
919
+ export function _minLength(
920
+ minimum: number,
921
+ params?: string | $ZodCheckMinLengthParams
922
+ ): checks.$ZodCheckMinLength<util.HasLength> {
923
+ return new checks.$ZodCheckMinLength({
924
+ check: "min_length",
925
+ ...util.normalizeParams(params),
926
+ minimum,
927
+ });
928
+ }
929
+
930
+ export type $ZodCheckLengthEqualsParams = CheckParams<checks.$ZodCheckLengthEquals, "length">;
931
+ export function _length(
932
+ length: number,
933
+ params?: string | $ZodCheckLengthEqualsParams
934
+ ): checks.$ZodCheckLengthEquals<util.HasLength> {
935
+ return new checks.$ZodCheckLengthEquals({
936
+ check: "length_equals",
937
+ ...util.normalizeParams(params),
938
+ length,
939
+ });
940
+ }
941
+
942
+ export type $ZodCheckRegexParams = CheckParams<checks.$ZodCheckRegex, "format" | "pattern">;
943
+ export function _regex(pattern: RegExp, params?: string | $ZodCheckRegexParams): checks.$ZodCheckRegex {
944
+ return new checks.$ZodCheckRegex({
945
+ check: "string_format",
946
+ format: "regex",
947
+ ...util.normalizeParams(params),
948
+ pattern,
949
+ });
950
+ }
951
+
952
+ export type $ZodCheckLowerCaseParams = CheckParams<checks.$ZodCheckLowerCase, "format">;
953
+ export function _lowercase(params?: string | $ZodCheckLowerCaseParams): checks.$ZodCheckLowerCase {
954
+ return new checks.$ZodCheckLowerCase({
955
+ check: "string_format",
956
+ format: "lowercase",
957
+ ...util.normalizeParams(params),
958
+ });
959
+ }
960
+
961
+ export type $ZodCheckUpperCaseParams = CheckParams<checks.$ZodCheckUpperCase, "format">;
962
+
963
+ export function _uppercase(params?: string | $ZodCheckUpperCaseParams): checks.$ZodCheckUpperCase {
964
+ return new checks.$ZodCheckUpperCase({
965
+ check: "string_format",
966
+ format: "uppercase",
967
+ ...util.normalizeParams(params),
968
+ });
969
+ }
970
+
971
+ export type $ZodCheckIncludesParams = CheckParams<checks.$ZodCheckIncludes, "includes" | "format" | "pattern">;
972
+ export function _includes(includes: string, params?: string | $ZodCheckIncludesParams): checks.$ZodCheckIncludes {
973
+ return new checks.$ZodCheckIncludes({
974
+ check: "string_format",
975
+ format: "includes",
976
+ ...util.normalizeParams(params),
977
+ includes,
978
+ });
979
+ }
980
+ export type $ZodCheckStartsWithParams = CheckParams<checks.$ZodCheckStartsWith, "prefix" | "format" | "pattern">;
981
+ export function _startsWith(prefix: string, params?: string | $ZodCheckStartsWithParams): checks.$ZodCheckStartsWith {
982
+ return new checks.$ZodCheckStartsWith({
983
+ check: "string_format",
984
+ format: "starts_with",
985
+ ...util.normalizeParams(params),
986
+ prefix,
987
+ });
988
+ }
989
+
990
+ export type $ZodCheckEndsWithParams = CheckParams<checks.$ZodCheckEndsWith, "suffix" | "format" | "pattern">;
991
+
992
+ export function _endsWith(suffix: string, params?: string | $ZodCheckEndsWithParams): checks.$ZodCheckEndsWith {
993
+ return new checks.$ZodCheckEndsWith({
994
+ check: "string_format",
995
+ format: "ends_with",
996
+ ...util.normalizeParams(params),
997
+ suffix,
998
+ });
999
+ }
1000
+
1001
+ export type $ZodCheckPropertyParams = CheckParams<checks.$ZodCheckProperty, "property" | "schema">;
1002
+ export function _property<K extends string, T extends schemas.$ZodType>(
1003
+ property: K,
1004
+ schema: T,
1005
+ params?: string | $ZodCheckPropertyParams
1006
+ ): checks.$ZodCheckProperty<{ [k in K]: core.output<T> }> {
1007
+ return new checks.$ZodCheckProperty({
1008
+ check: "property",
1009
+ property,
1010
+ schema,
1011
+ ...util.normalizeParams(params),
1012
+ });
1013
+ }
1014
+
1015
+ export type $ZodCheckMimeTypeParams = CheckParams<checks.$ZodCheckMimeType, "mime">;
1016
+ export function _mime(types: util.MimeTypes[], params?: string | $ZodCheckMimeTypeParams): checks.$ZodCheckMimeType {
1017
+ return new checks.$ZodCheckMimeType({
1018
+ check: "mime_type",
1019
+ mime: types,
1020
+ ...util.normalizeParams(params),
1021
+ });
1022
+ }
1023
+
1024
+ export function _overwrite<T>(tx: (input: T) => T): checks.$ZodCheckOverwrite<T> {
1025
+ return new checks.$ZodCheckOverwrite({
1026
+ check: "overwrite",
1027
+ tx,
1028
+ }) as checks.$ZodCheckOverwrite<T>;
1029
+ }
1030
+ // normalize
1031
+ export function _normalize(form?: "NFC" | "NFD" | "NFKC" | "NFKD" | (string & {})): checks.$ZodCheckOverwrite<string> {
1032
+ return _overwrite((input) => input.normalize(form));
1033
+ }
1034
+
1035
+ // trim
1036
+ export function _trim(): checks.$ZodCheckOverwrite<string> {
1037
+ return _overwrite((input) => input.trim());
1038
+ }
1039
+ // toLowerCase
1040
+ export function _toLowerCase(): checks.$ZodCheckOverwrite<string> {
1041
+ return _overwrite((input) => input.toLowerCase());
1042
+ }
1043
+ // toUpperCase
1044
+ export function _toUpperCase(): checks.$ZodCheckOverwrite<string> {
1045
+ return _overwrite((input) => input.toUpperCase());
1046
+ }
1047
+
1048
+ /////// collections ///////
1049
+
1050
+ // Array
1051
+ export type $ZodArrayParams = TypeParams<schemas.$ZodArray, "element">;
1052
+ export function _array<T extends schemas.$ZodType>(
1053
+ Class: util.SchemaClass<schemas.$ZodArray>,
1054
+ element: T,
1055
+ params?: string | $ZodArrayParams
1056
+ ): schemas.$ZodArray<T> {
1057
+ return new Class({
1058
+ type: "array",
1059
+ element,
1060
+ // get element() {
1061
+ // return element;
1062
+ // },
1063
+ ...util.normalizeParams(params),
1064
+ }) as any;
1065
+ }
1066
+
1067
+ export type $ZodObjectParams = TypeParams<schemas.$ZodObject, "shape" | "catchall">;
1068
+
1069
+ // ZodUnion
1070
+ export type $ZodUnionParams = TypeParams<schemas.$ZodUnion, "options">;
1071
+ export function _union<const T extends readonly schemas.$ZodObject[]>(
1072
+ Class: util.SchemaClass<schemas.$ZodUnion>,
1073
+ options: T,
1074
+ params?: string | $ZodUnionParams
1075
+ ): schemas.$ZodUnion<T> {
1076
+ return new Class({
1077
+ type: "union",
1078
+ options,
1079
+ ...util.normalizeParams(params),
1080
+ }) as any;
1081
+ }
1082
+
1083
+ // ZodDiscriminatedUnion
1084
+ export interface $ZodTypeDiscriminableInternals extends schemas.$ZodTypeInternals {
1085
+ propValues: util.PropValues;
1086
+ }
1087
+
1088
+ export interface $ZodTypeDiscriminable extends schemas.$ZodType {
1089
+ _zod: $ZodTypeDiscriminableInternals;
1090
+ }
1091
+ export type $ZodDiscriminatedUnionParams = TypeParams<schemas.$ZodDiscriminatedUnion, "options" | "discriminator">;
1092
+ export function _discriminatedUnion<Types extends [$ZodTypeDiscriminable, ...$ZodTypeDiscriminable[]]>(
1093
+ Class: util.SchemaClass<schemas.$ZodDiscriminatedUnion>,
1094
+ discriminator: string,
1095
+ options: Types,
1096
+ params?: string | $ZodDiscriminatedUnionParams
1097
+ ): schemas.$ZodDiscriminatedUnion<Types> {
1098
+ return new Class({
1099
+ type: "union",
1100
+ options,
1101
+ discriminator,
1102
+ ...util.normalizeParams(params),
1103
+ }) as any;
1104
+ }
1105
+
1106
+ // ZodIntersection
1107
+ export type $ZodIntersectionParams = TypeParams<schemas.$ZodIntersection, "left" | "right">;
1108
+ export function _intersection<T extends schemas.$ZodObject, U extends schemas.$ZodObject>(
1109
+ Class: util.SchemaClass<schemas.$ZodIntersection>,
1110
+ left: T,
1111
+ right: U
1112
+ ): schemas.$ZodIntersection<T, U> {
1113
+ return new Class({
1114
+ type: "intersection",
1115
+ left,
1116
+ right,
1117
+ }) as any;
1118
+ }
1119
+
1120
+ // ZodTuple
1121
+ export type $ZodTupleParams = TypeParams<schemas.$ZodTuple, "items" | "rest">;
1122
+ export function _tuple<T extends readonly [schemas.$ZodType, ...schemas.$ZodType[]]>(
1123
+ Class: util.SchemaClass<schemas.$ZodTuple>,
1124
+ items: T,
1125
+ params?: string | $ZodTupleParams
1126
+ ): schemas.$ZodTuple<T, null>;
1127
+ export function _tuple<T extends readonly [schemas.$ZodType, ...schemas.$ZodType[]], Rest extends schemas.$ZodType>(
1128
+ Class: util.SchemaClass<schemas.$ZodTuple>,
1129
+ items: T,
1130
+ rest: Rest,
1131
+ params?: string | $ZodTupleParams
1132
+ ): schemas.$ZodTuple<T, Rest>;
1133
+ // export function _tuple(
1134
+ // Class: util.SchemaClass<schemas.$ZodTuple>,
1135
+ // items: [],
1136
+ // params?: string | $ZodTupleParams
1137
+ // ): schemas.$ZodTuple<[], null>;
1138
+ export function _tuple(
1139
+ Class: util.SchemaClass<schemas.$ZodTuple>,
1140
+ items: schemas.$ZodType[],
1141
+ _paramsOrRest?: string | $ZodTupleParams | schemas.$ZodType,
1142
+ _params?: string | $ZodTupleParams
1143
+ ) {
1144
+ const hasRest = _paramsOrRest instanceof schemas.$ZodType;
1145
+ const params = hasRest ? _params : _paramsOrRest;
1146
+ const rest = hasRest ? _paramsOrRest : null;
1147
+ return new Class({
1148
+ type: "tuple",
1149
+ items,
1150
+ rest,
1151
+ ...util.normalizeParams(params),
1152
+ });
1153
+ }
1154
+
1155
+ // ZodRecord
1156
+ export type $ZodRecordParams = TypeParams<schemas.$ZodRecord, "keyType" | "valueType">;
1157
+ export function _record<Key extends schemas.$ZodRecordKey, Value extends schemas.$ZodObject>(
1158
+ Class: util.SchemaClass<schemas.$ZodRecord>,
1159
+ keyType: Key,
1160
+ valueType: Value,
1161
+ params?: string | $ZodRecordParams
1162
+ ): schemas.$ZodRecord<Key, Value> {
1163
+ return new Class({
1164
+ type: "record",
1165
+ keyType,
1166
+ valueType,
1167
+ ...util.normalizeParams(params),
1168
+ }) as any;
1169
+ }
1170
+
1171
+ // ZodMap
1172
+ export type $ZodMapParams = TypeParams<schemas.$ZodMap, "keyType" | "valueType">;
1173
+ export function _map<Key extends schemas.$ZodObject, Value extends schemas.$ZodObject>(
1174
+ Class: util.SchemaClass<schemas.$ZodMap>,
1175
+ keyType: Key,
1176
+ valueType: Value,
1177
+ params?: string | $ZodMapParams
1178
+ ): schemas.$ZodMap<Key, Value> {
1179
+ return new Class({
1180
+ type: "map",
1181
+ keyType,
1182
+ valueType,
1183
+ ...util.normalizeParams(params),
1184
+ }) as any;
1185
+ }
1186
+
1187
+ // ZodSet
1188
+ export type $ZodSetParams = TypeParams<schemas.$ZodSet, "valueType">;
1189
+ export function _set<Value extends schemas.$ZodObject>(
1190
+ Class: util.SchemaClass<schemas.$ZodSet>,
1191
+ valueType: Value,
1192
+ params?: string | $ZodSetParams
1193
+ ): schemas.$ZodSet<Value> {
1194
+ return new Class({
1195
+ type: "set",
1196
+ valueType,
1197
+ ...util.normalizeParams(params),
1198
+ }) as any;
1199
+ }
1200
+
1201
+ // ZodEnum
1202
+ export type $ZodEnumParams = TypeParams<schemas.$ZodEnum, "entries">;
1203
+ export function _enum<const T extends string[]>(
1204
+ Class: util.SchemaClass<schemas.$ZodEnum>,
1205
+ values: T,
1206
+ params?: string | $ZodEnumParams
1207
+ ): schemas.$ZodEnum<util.ToEnum<T[number]>>;
1208
+ export function _enum<T extends util.EnumLike>(
1209
+ Class: util.SchemaClass<schemas.$ZodEnum>,
1210
+ entries: T,
1211
+ params?: string | $ZodEnumParams
1212
+ ): schemas.$ZodEnum<T>;
1213
+ export function _enum(Class: util.SchemaClass<schemas.$ZodEnum>, values: any, params?: string | $ZodEnumParams) {
1214
+ const entries: any = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;
1215
+ // if (Array.isArray(values)) {
1216
+ // for (const value of values) {
1217
+ // entries[value] = value;
1218
+ // }
1219
+ // } else {
1220
+ // Object.assign(entries, values);
1221
+ // }
1222
+ // const entries: util.EnumLike = {};
1223
+ // for (const val of values) {
1224
+ // entries[val] = val;
1225
+ // }
1226
+
1227
+ return new Class({
1228
+ type: "enum",
1229
+ entries,
1230
+ ...util.normalizeParams(params),
1231
+ }) as any;
1232
+ }
1233
+
1234
+ /** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.
1235
+ *
1236
+ * ```ts
1237
+ * enum Colors { red, green, blue }
1238
+ * z.enum(Colors);
1239
+ * ```
1240
+ */
1241
+ export function _nativeEnum<T extends util.EnumLike>(
1242
+ Class: util.SchemaClass<schemas.$ZodEnum>,
1243
+ entries: T,
1244
+ params?: string | $ZodEnumParams
1245
+ ): schemas.$ZodEnum<T> {
1246
+ return new Class({
1247
+ type: "enum",
1248
+ entries,
1249
+ ...util.normalizeParams(params),
1250
+ }) as any;
1251
+ }
1252
+
1253
+ // ZodLiteral
1254
+ export type $ZodLiteralParams = TypeParams<schemas.$ZodLiteral, "values">;
1255
+ export function _literal<const T extends Array<util.Literal>>(
1256
+ Class: util.SchemaClass<schemas.$ZodLiteral>,
1257
+ value: T,
1258
+ params?: string | $ZodLiteralParams
1259
+ ): schemas.$ZodLiteral<T[number]>;
1260
+ export function _literal<const T extends util.Literal>(
1261
+ Class: util.SchemaClass<schemas.$ZodLiteral>,
1262
+ value: T,
1263
+ params?: string | $ZodLiteralParams
1264
+ ): schemas.$ZodLiteral<T>;
1265
+ export function _literal(Class: util.SchemaClass<schemas.$ZodLiteral>, value: any, params: any) {
1266
+ return new Class({
1267
+ type: "literal",
1268
+ values: Array.isArray(value) ? value : [value],
1269
+ ...util.normalizeParams(params),
1270
+ });
1271
+ }
1272
+
1273
+ // ZodFile
1274
+ export type $ZodFileParams = TypeParams<schemas.$ZodFile>;
1275
+ export function _file(Class: util.SchemaClass<schemas.$ZodFile>, params?: string | $ZodFileParams): schemas.$ZodFile {
1276
+ return new Class({
1277
+ type: "file",
1278
+ ...util.normalizeParams(params),
1279
+ });
1280
+ }
1281
+
1282
+ // ZodTransform
1283
+ export type $ZodTransformParams = TypeParams<schemas.$ZodTransform, "transform">;
1284
+ export function _transform<I = unknown, O = I>(
1285
+ Class: util.SchemaClass<schemas.$ZodTransform>,
1286
+ fn: (input: I, ctx?: schemas.ParsePayload) => O
1287
+ ): schemas.$ZodTransform<Awaited<O>, I> {
1288
+ return new Class({
1289
+ type: "transform",
1290
+ transform: fn as any,
1291
+ }) as any;
1292
+ }
1293
+
1294
+ // ZodOptional
1295
+ export type $ZodOptionalParams = TypeParams<schemas.$ZodOptional, "innerType">;
1296
+ export function _optional<T extends schemas.$ZodObject>(
1297
+ Class: util.SchemaClass<schemas.$ZodOptional>,
1298
+ innerType: T
1299
+ ): schemas.$ZodOptional<T> {
1300
+ return new Class({
1301
+ type: "optional",
1302
+ innerType,
1303
+ }) as any;
1304
+ }
1305
+
1306
+ // ZodNullable
1307
+ export type $ZodNullableParams = TypeParams<schemas.$ZodNullable, "innerType">;
1308
+ export function _nullable<T extends schemas.$ZodObject>(
1309
+ Class: util.SchemaClass<schemas.$ZodNullable>,
1310
+ innerType: T
1311
+ ): schemas.$ZodNullable<T> {
1312
+ return new Class({
1313
+ type: "nullable",
1314
+ innerType,
1315
+ }) as any;
1316
+ }
1317
+
1318
+ // ZodDefault
1319
+ export type $ZodDefaultParams = TypeParams<schemas.$ZodDefault, "innerType" | "defaultValue">;
1320
+ export function _default<T extends schemas.$ZodObject>(
1321
+ Class: util.SchemaClass<schemas.$ZodDefault>,
1322
+ innerType: T,
1323
+ defaultValue: util.NoUndefined<core.output<T>> | (() => util.NoUndefined<core.output<T>>)
1324
+ ): schemas.$ZodDefault<T> {
1325
+ return new Class({
1326
+ type: "default",
1327
+ innerType,
1328
+ get defaultValue() {
1329
+ return typeof defaultValue === "function" ? (defaultValue as Function)() : defaultValue;
1330
+ },
1331
+ }) as any;
1332
+ }
1333
+
1334
+ // ZodNonOptional
1335
+ export type $ZodNonOptionalParams = TypeParams<schemas.$ZodNonOptional, "innerType">;
1336
+ export function _nonoptional<T extends schemas.$ZodObject>(
1337
+ Class: util.SchemaClass<schemas.$ZodNonOptional>,
1338
+ innerType: T,
1339
+ params?: string | $ZodNonOptionalParams
1340
+ ): schemas.$ZodNonOptional<T> {
1341
+ return new Class({
1342
+ type: "nonoptional",
1343
+ innerType,
1344
+ ...util.normalizeParams(params),
1345
+ }) as any;
1346
+ }
1347
+
1348
+ // ZodSuccess
1349
+ export type $ZodSuccessParams = TypeParams<schemas.$ZodSuccess, "innerType">;
1350
+ export function _success<T extends schemas.$ZodObject>(
1351
+ Class: util.SchemaClass<schemas.$ZodSuccess>,
1352
+ innerType: T
1353
+ ): schemas.$ZodSuccess<T> {
1354
+ return new Class({
1355
+ type: "success",
1356
+ innerType,
1357
+ }) as any;
1358
+ }
1359
+
1360
+ // ZodCatch
1361
+ export type $ZodCatchParams = TypeParams<schemas.$ZodCatch, "innerType" | "catchValue">;
1362
+ export function _catch<T extends schemas.$ZodObject>(
1363
+ Class: util.SchemaClass<schemas.$ZodCatch>,
1364
+ innerType: T,
1365
+ catchValue: core.output<T> | ((ctx: schemas.$ZodCatchCtx) => core.output<T>)
1366
+ ): schemas.$ZodCatch<T> {
1367
+ return new Class({
1368
+ type: "catch",
1369
+ innerType,
1370
+ catchValue: (typeof catchValue === "function" ? catchValue : () => catchValue) as any,
1371
+ }) as any;
1372
+ }
1373
+
1374
+ // ZodPipe
1375
+ export type $ZodPipeParams = TypeParams<schemas.$ZodPipe, "in" | "out">;
1376
+ export function _pipe<
1377
+ const A extends schemas.$ZodType,
1378
+ B extends schemas.$ZodType<unknown, core.output<A>> = schemas.$ZodType<unknown, core.output<A>>,
1379
+ >(
1380
+ Class: util.SchemaClass<schemas.$ZodPipe>,
1381
+ in_: A,
1382
+ out: B | schemas.$ZodType<unknown, core.output<A>>
1383
+ ): schemas.$ZodPipe<A, B> {
1384
+ return new Class({
1385
+ type: "pipe",
1386
+ in: in_,
1387
+ out,
1388
+ }) as any;
1389
+ }
1390
+
1391
+ // ZodReadonly
1392
+ export type $ZodReadonlyParams = TypeParams<schemas.$ZodReadonly, "innerType">;
1393
+ export function _readonly<T extends schemas.$ZodObject>(
1394
+ Class: util.SchemaClass<schemas.$ZodReadonly>,
1395
+ innerType: T
1396
+ ): schemas.$ZodReadonly<T> {
1397
+ return new Class({
1398
+ type: "readonly",
1399
+ innerType,
1400
+ }) as any;
1401
+ }
1402
+
1403
+ // ZodTemplateLiteral
1404
+ export type $ZodTemplateLiteralParams = TypeParams<schemas.$ZodTemplateLiteral, "parts">;
1405
+ export function _templateLiteral<const Parts extends schemas.$ZodTemplateLiteralPart[]>(
1406
+ Class: util.SchemaClass<schemas.$ZodTemplateLiteral>,
1407
+ parts: Parts,
1408
+ params?: string | $ZodTemplateLiteralParams
1409
+ ): schemas.$ZodTemplateLiteral<schemas.$PartsToTemplateLiteral<Parts>> {
1410
+ return new Class({
1411
+ type: "template_literal",
1412
+ parts,
1413
+ ...util.normalizeParams(params),
1414
+ }) as any;
1415
+ }
1416
+
1417
+ // ZodLazy
1418
+ export type $ZodLazyParams = TypeParams<schemas.$ZodLazy, "getter">;
1419
+ export function _lazy<T extends schemas.$ZodType>(
1420
+ Class: util.SchemaClass<schemas.$ZodLazy>,
1421
+ getter: () => T
1422
+ ): schemas.$ZodLazy<T> {
1423
+ return new Class({
1424
+ type: "lazy",
1425
+ getter,
1426
+ }) as any;
1427
+ }
1428
+
1429
+ // ZodPromise
1430
+ export type $ZodPromiseParams = TypeParams<schemas.$ZodPromise, "innerType">;
1431
+ export function _promise<T extends schemas.$ZodObject>(
1432
+ Class: util.SchemaClass<schemas.$ZodPromise>,
1433
+ innerType: T
1434
+ ): schemas.$ZodPromise<T> {
1435
+ return new Class({
1436
+ type: "promise",
1437
+ innerType,
1438
+ }) as any;
1439
+ }
1440
+
1441
+ // ZodCustom
1442
+ export type $ZodCustomParams = CheckTypeParams<schemas.$ZodCustom, "fn">;
1443
+ export function _custom<O = unknown, I = O>(
1444
+ Class: util.SchemaClass<schemas.$ZodCustom>,
1445
+ fn: (data: O) => unknown,
1446
+ _params: string | $ZodCustomParams | undefined
1447
+ ): schemas.$ZodCustom<O, I> {
1448
+ const norm = util.normalizeParams(_params);
1449
+ norm.abort ??= true; // default to abort:false
1450
+ const schema = new Class({
1451
+ type: "custom",
1452
+ check: "custom",
1453
+ fn: fn as any,
1454
+ ...norm,
1455
+ });
1456
+
1457
+ return schema as any;
1458
+ }
1459
+
1460
+ // export function _refine<T>(
1461
+ // Class: util.SchemaClass<schemas.$ZodCustom>,
1462
+ // fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>,
1463
+ // _params: string | $ZodCustomParams = {}
1464
+ // ): checks.$ZodCheck<T> {
1465
+ // return _custom(Class, fn, _params);
1466
+ // }
1467
+ // same as _custom but defaults to abort:false
1468
+ export function _refine<O = unknown, I = O>(
1469
+ Class: util.SchemaClass<schemas.$ZodCustom>,
1470
+ fn: (data: O) => unknown,
1471
+ _params: string | $ZodCustomParams | undefined
1472
+ ): schemas.$ZodCustom<O, I> {
1473
+ const schema = new Class({
1474
+ type: "custom",
1475
+ check: "custom",
1476
+ fn: fn as any,
1477
+ ...util.normalizeParams(_params),
1478
+ });
1479
+
1480
+ return schema as any;
1481
+ }
1482
+
1483
+ // export type $ZodCustomParams = CheckTypeParams<schemas.$ZodCustom, "fn">
1484
+
1485
+ ///////// STRINGBOOL /////////
1486
+
1487
+ // stringbool
1488
+ export interface $ZodStringBoolParams extends TypeParams {
1489
+ truthy?: string[];
1490
+ falsy?: string[];
1491
+ /**
1492
+ * Options: `"sensitive"`, `"insensitive"`
1493
+ *
1494
+ * @default `"insensitive"`
1495
+ */
1496
+ case?: "sensitive" | "insensitive" | undefined;
1497
+ }
1498
+
1499
+ export function _stringbool(
1500
+ Classes: {
1501
+ Pipe?: typeof schemas.$ZodPipe;
1502
+ Boolean?: typeof schemas.$ZodBoolean;
1503
+ Transform?: typeof schemas.$ZodTransform;
1504
+ String?: typeof schemas.$ZodString;
1505
+ },
1506
+ _params?: string | $ZodStringBoolParams
1507
+ ): schemas.$ZodPipe<
1508
+ schemas.$ZodPipe<schemas.$ZodString, schemas.$ZodTransform<boolean, string>>,
1509
+ schemas.$ZodBoolean<boolean>
1510
+ > {
1511
+ const params = util.normalizeParams(_params);
1512
+
1513
+ let truthyArray = params.truthy ?? ["true", "1", "yes", "on", "y", "enabled"];
1514
+ let falsyArray = params.falsy ?? ["false", "0", "no", "off", "n", "disabled"];
1515
+ if (params.case !== "sensitive") {
1516
+ truthyArray = truthyArray.map((v) => (typeof v === "string" ? v.toLowerCase() : v));
1517
+ falsyArray = falsyArray.map((v) => (typeof v === "string" ? v.toLowerCase() : v));
1518
+ }
1519
+
1520
+ const truthySet = new Set(truthyArray);
1521
+ const falsySet = new Set(falsyArray);
1522
+
1523
+ const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;
1524
+ const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;
1525
+ const _String = Classes.String ?? schemas.$ZodString;
1526
+ const _Transform = Classes.Transform ?? schemas.$ZodTransform;
1527
+
1528
+ const tx = new _Transform({
1529
+ type: "transform",
1530
+ transform: (input, payload: schemas.ParsePayload<unknown>) => {
1531
+ let data: string = input as string;
1532
+ if (params.case !== "sensitive") data = data.toLowerCase();
1533
+ if (truthySet.has(data)) {
1534
+ return true;
1535
+ } else if (falsySet.has(data)) {
1536
+ return false;
1537
+ } else {
1538
+ payload.issues.push({
1539
+ code: "invalid_value",
1540
+ expected: "stringbool",
1541
+ values: [...truthySet, ...falsySet],
1542
+ input: payload.value,
1543
+ inst: tx,
1544
+ });
1545
+ return {} as never;
1546
+ }
1547
+ },
1548
+ error: params.error,
1549
+ });
1550
+ // params.error;
1551
+
1552
+ const innerPipe = new _Pipe({
1553
+ type: "pipe",
1554
+ in: new _String({ type: "string", error: params.error }),
1555
+ out: tx,
1556
+ error: params.error,
1557
+ });
1558
+
1559
+ const outerPipe = new _Pipe({
1560
+ type: "pipe",
1561
+ in: innerPipe,
1562
+ out: new _Boolean({
1563
+ type: "boolean",
1564
+ error: params.error,
1565
+ }),
1566
+ error: params.error,
1567
+ });
1568
+ return outerPipe as any;
1569
+ }
1570
+
1571
+ export function _stringFormat<Format extends string>(
1572
+ Class: typeof schemas.$ZodCustomStringFormat,
1573
+ format: Format,
1574
+ fnOrRegex: ((arg: string) => util.MaybeAsync<unknown>) | RegExp,
1575
+ _params: string | $ZodStringFormatParams = {}
1576
+ ): schemas.$ZodCustomStringFormat<Format> {
1577
+ const params = util.normalizeParams(_params);
1578
+ const def: schemas.$ZodCustomStringFormatDef = {
1579
+ ...util.normalizeParams(_params),
1580
+ check: "string_format",
1581
+ type: "string",
1582
+ format,
1583
+ fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val),
1584
+ ...params,
1585
+ };
1586
+ if (fnOrRegex instanceof RegExp) {
1587
+ def.pattern = fnOrRegex;
1588
+ }
1589
+
1590
+ const inst = new Class(def);
1591
+ return inst as any;
1592
+ }