zod 4.0.0-beta.20250505T195954 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -0
- package/index.cjs +33 -0
- package/index.d.cts +4 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/locales/index.cjs +17 -0
- package/locales/index.d.cts +1 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/mini/index.cjs +17 -0
- package/mini/index.d.cts +1 -0
- package/mini/index.d.ts +1 -0
- package/mini/index.js +1 -0
- package/package.json +87 -40
- package/src/index.ts +2 -3
- package/src/locales/index.ts +1 -0
- package/src/mini/index.ts +1 -0
- package/src/v3/ZodError.ts +330 -0
- package/src/v3/benchmarks/datetime.ts +58 -0
- package/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/src/v3/benchmarks/index.ts +59 -0
- package/src/v3/benchmarks/ipv4.ts +57 -0
- package/src/v3/benchmarks/object.ts +69 -0
- package/src/v3/benchmarks/primitives.ts +162 -0
- package/src/v3/benchmarks/realworld.ts +63 -0
- package/src/v3/benchmarks/string.ts +55 -0
- package/src/v3/benchmarks/union.ts +80 -0
- package/src/v3/errors.ts +13 -0
- package/src/v3/external.ts +6 -0
- package/src/v3/helpers/enumUtil.ts +17 -0
- package/src/v3/helpers/errorUtil.ts +8 -0
- package/src/v3/helpers/parseUtil.ts +176 -0
- package/src/v3/helpers/partialUtil.ts +34 -0
- package/src/v3/helpers/typeAliases.ts +2 -0
- package/src/v3/helpers/util.ts +224 -0
- package/src/v3/index.ts +4 -0
- package/src/v3/locales/en.ts +124 -0
- package/src/v3/standard-schema.ts +113 -0
- package/src/v3/tests/Mocker.ts +54 -0
- package/src/v3/tests/all-errors.test.ts +157 -0
- package/src/v3/tests/anyunknown.test.ts +28 -0
- package/src/v3/tests/array.test.ts +71 -0
- package/src/v3/tests/async-parsing.test.ts +388 -0
- package/src/v3/tests/async-refinements.test.ts +46 -0
- package/src/v3/tests/base.test.ts +29 -0
- package/src/v3/tests/bigint.test.ts +55 -0
- package/src/v3/tests/branded.test.ts +53 -0
- package/src/v3/tests/catch.test.ts +220 -0
- package/src/v3/tests/coerce.test.ts +133 -0
- package/src/v3/tests/complex.test.ts +56 -0
- package/src/v3/tests/custom.test.ts +31 -0
- package/src/v3/tests/date.test.ts +32 -0
- package/src/v3/tests/deepmasking.test.ts +186 -0
- package/src/v3/tests/default.test.ts +112 -0
- package/src/v3/tests/description.test.ts +33 -0
- package/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/src/v3/tests/enum.test.ts +80 -0
- package/src/v3/tests/error.test.ts +551 -0
- package/src/v3/tests/firstparty.test.ts +87 -0
- package/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/src/v3/tests/function.test.ts +257 -0
- package/src/v3/tests/generics.test.ts +48 -0
- package/src/v3/tests/instanceof.test.ts +37 -0
- package/src/v3/tests/intersection.test.ts +110 -0
- package/src/v3/tests/language-server.source.ts +76 -0
- package/src/v3/tests/language-server.test.ts +207 -0
- package/src/v3/tests/literal.test.ts +36 -0
- package/src/v3/tests/map.test.ts +110 -0
- package/src/v3/tests/masking.test.ts +4 -0
- package/src/v3/tests/mocker.test.ts +19 -0
- package/src/v3/tests/nan.test.ts +21 -0
- package/src/v3/tests/nativeEnum.test.ts +87 -0
- package/src/v3/tests/nullable.test.ts +42 -0
- package/src/v3/tests/number.test.ts +176 -0
- package/src/v3/tests/object-augmentation.test.ts +29 -0
- package/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/src/v3/tests/object.test.ts +434 -0
- package/src/v3/tests/optional.test.ts +42 -0
- package/src/v3/tests/parseUtil.test.ts +23 -0
- package/src/v3/tests/parser.test.ts +41 -0
- package/src/v3/tests/partials.test.ts +243 -0
- package/src/v3/tests/pickomit.test.ts +111 -0
- package/src/v3/tests/pipeline.test.ts +29 -0
- package/src/v3/tests/preprocess.test.ts +186 -0
- package/src/v3/tests/primitive.test.ts +440 -0
- package/src/v3/tests/promise.test.ts +90 -0
- package/src/v3/tests/readonly.test.ts +194 -0
- package/src/v3/tests/record.test.ts +171 -0
- package/src/v3/tests/recursive.test.ts +197 -0
- package/src/v3/tests/refine.test.ts +313 -0
- package/src/v3/tests/safeparse.test.ts +27 -0
- package/src/v3/tests/set.test.ts +142 -0
- package/src/v3/tests/standard-schema.test.ts +83 -0
- package/src/v3/tests/string.test.ts +916 -0
- package/src/v3/tests/transformer.test.ts +233 -0
- package/src/v3/tests/tuple.test.ts +90 -0
- package/src/v3/tests/unions.test.ts +57 -0
- package/src/v3/tests/validations.test.ts +133 -0
- package/src/v3/tests/void.test.ts +15 -0
- package/src/v3/types.ts +5136 -0
- package/src/{checks.ts → v4/classic/checks.ts} +1 -1
- package/src/v4/classic/coerce.ts +27 -0
- package/src/{compat.ts → v4/classic/compat.ts} +3 -13
- package/src/v4/classic/errors.ts +75 -0
- package/src/v4/classic/external.ts +50 -0
- package/src/v4/classic/index.ts +5 -0
- package/src/{iso.ts → v4/classic/iso.ts} +1 -1
- package/src/{parse.ts → v4/classic/parse.ts} +13 -12
- package/src/{schemas.ts → v4/classic/schemas.ts} +430 -417
- package/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/src/v4/classic/tests/array.test.ts +264 -0
- package/src/v4/classic/tests/assignability.test.ts +210 -0
- package/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/src/v4/classic/tests/base.test.ts +7 -0
- package/src/v4/classic/tests/bigint.test.ts +54 -0
- package/src/v4/classic/tests/brand.test.ts +63 -0
- package/src/v4/classic/tests/catch.test.ts +252 -0
- package/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/src/v4/classic/tests/coerce.test.ts +160 -0
- package/src/v4/classic/tests/continuability.test.ts +352 -0
- package/src/v4/classic/tests/custom.test.ts +40 -0
- package/src/v4/classic/tests/date.test.ts +31 -0
- package/src/v4/classic/tests/datetime.test.ts +296 -0
- package/src/v4/classic/tests/default.test.ts +313 -0
- package/src/v4/classic/tests/description.test.ts +32 -0
- package/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/src/v4/classic/tests/enum.test.ts +285 -0
- package/src/v4/classic/tests/error-utils.test.ts +552 -0
- package/src/v4/classic/tests/error.test.ts +711 -0
- package/src/v4/classic/tests/file.test.ts +91 -0
- package/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/src/v4/classic/tests/function.test.ts +268 -0
- package/src/v4/classic/tests/generics.test.ts +72 -0
- package/src/v4/classic/tests/index.test.ts +829 -0
- package/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/src/v4/classic/tests/intersection.test.ts +171 -0
- package/src/v4/classic/tests/json.test.ts +108 -0
- package/src/v4/classic/tests/lazy.test.ts +227 -0
- package/src/v4/classic/tests/literal.test.ts +92 -0
- package/src/v4/classic/tests/map.test.ts +196 -0
- package/src/v4/classic/tests/nan.test.ts +21 -0
- package/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/src/v4/classic/tests/nullable.test.ts +22 -0
- package/src/v4/classic/tests/number.test.ts +247 -0
- package/src/v4/classic/tests/object.test.ts +563 -0
- package/src/v4/classic/tests/optional.test.ts +123 -0
- package/src/v4/classic/tests/partial.test.ts +147 -0
- package/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/src/v4/classic/tests/pipe.test.ts +81 -0
- package/src/v4/classic/tests/prefault.test.ts +37 -0
- package/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/src/v4/classic/tests/primitive.test.ts +175 -0
- package/src/v4/classic/tests/promise.test.ts +81 -0
- package/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/src/v4/classic/tests/readonly.test.ts +252 -0
- package/src/v4/classic/tests/record.test.ts +342 -0
- package/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/src/v4/classic/tests/refine.test.ts +532 -0
- package/src/v4/classic/tests/registries.test.ts +204 -0
- package/src/v4/classic/tests/set.test.ts +179 -0
- package/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/src/v4/classic/tests/string.test.ts +881 -0
- package/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/src/v4/classic/tests/transform.test.ts +250 -0
- package/src/v4/classic/tests/tuple.test.ts +163 -0
- package/src/v4/classic/tests/union.test.ts +94 -0
- package/src/v4/classic/tests/validations.test.ts +283 -0
- package/src/v4/classic/tests/void.test.ts +12 -0
- package/src/v4/core/api.ts +1594 -0
- package/src/v4/core/checks.ts +1283 -0
- package/src/v4/core/config.ts +15 -0
- package/src/v4/core/core.ts +134 -0
- package/src/v4/core/doc.ts +44 -0
- package/src/v4/core/errors.ts +426 -0
- package/src/v4/core/function.ts +176 -0
- package/src/v4/core/index.ts +15 -0
- package/src/v4/core/json-schema.ts +143 -0
- package/src/v4/core/parse.ts +94 -0
- package/src/v4/core/regexes.ts +135 -0
- package/src/v4/core/registries.ts +96 -0
- package/src/v4/core/schemas.ts +3842 -0
- package/src/v4/core/standard-schema.ts +64 -0
- package/src/v4/core/tests/index.test.ts +46 -0
- package/src/v4/core/tests/locales/be.test.ts +124 -0
- package/src/v4/core/tests/locales/en.test.ts +22 -0
- package/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/src/v4/core/to-json-schema.ts +977 -0
- package/src/v4/core/util.ts +775 -0
- package/src/v4/core/versions.ts +5 -0
- package/src/v4/core/zsf.ts +323 -0
- package/src/v4/index.ts +4 -0
- package/src/v4/locales/ar.ts +125 -0
- package/src/v4/locales/az.ts +121 -0
- package/src/v4/locales/be.ts +184 -0
- package/src/v4/locales/ca.ts +127 -0
- package/src/v4/locales/cs.ts +142 -0
- package/src/v4/locales/de.ts +124 -0
- package/src/v4/locales/en.ts +127 -0
- package/src/v4/locales/eo.ts +125 -0
- package/src/v4/locales/es.ts +125 -0
- package/src/v4/locales/fa.ts +134 -0
- package/src/v4/locales/fi.ts +131 -0
- package/src/v4/locales/fr-CA.ts +126 -0
- package/src/v4/locales/fr.ts +124 -0
- package/src/v4/locales/he.ts +125 -0
- package/src/v4/locales/hu.ts +126 -0
- package/src/v4/locales/id.ts +125 -0
- package/src/v4/locales/index.ts +39 -0
- package/src/v4/locales/it.ts +125 -0
- package/src/v4/locales/ja.ts +122 -0
- package/src/v4/locales/kh.ts +126 -0
- package/src/v4/locales/ko.ts +131 -0
- package/src/v4/locales/mk.ts +127 -0
- package/src/v4/locales/ms.ts +124 -0
- package/src/v4/locales/nl.ts +126 -0
- package/src/v4/locales/no.ts +124 -0
- package/src/v4/locales/ota.ts +125 -0
- package/src/v4/locales/pl.ts +126 -0
- package/src/v4/locales/ps.ts +133 -0
- package/src/v4/locales/pt.ts +123 -0
- package/src/v4/locales/ru.ts +184 -0
- package/src/v4/locales/sl.ts +126 -0
- package/src/v4/locales/sv.ts +127 -0
- package/src/v4/locales/ta.ts +125 -0
- package/src/v4/locales/th.ts +126 -0
- package/src/v4/locales/tr.ts +121 -0
- package/src/v4/locales/ua.ts +126 -0
- package/src/v4/locales/ur.ts +126 -0
- package/src/v4/locales/vi.ts +125 -0
- package/src/v4/locales/zh-CN.ts +123 -0
- package/src/v4/locales/zh-TW.ts +125 -0
- package/src/v4/mini/checks.ts +32 -0
- package/src/v4/mini/coerce.ts +22 -0
- package/src/v4/mini/external.ts +40 -0
- package/src/v4/mini/index.ts +3 -0
- package/src/v4/mini/iso.ts +62 -0
- package/src/v4/mini/parse.ts +1 -0
- package/src/v4/mini/schemas.ts +1579 -0
- package/src/v4/mini/tests/assignability.test.ts +129 -0
- package/src/v4/mini/tests/brand.test.ts +51 -0
- package/src/v4/mini/tests/checks.test.ts +144 -0
- package/src/v4/mini/tests/computed.test.ts +36 -0
- package/src/v4/mini/tests/error.test.ts +22 -0
- package/src/v4/mini/tests/functions.test.ts +43 -0
- package/src/v4/mini/tests/index.test.ts +871 -0
- package/src/v4/mini/tests/number.test.ts +95 -0
- package/src/v4/mini/tests/object.test.ts +185 -0
- package/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/src/v4/mini/tests/string.test.ts +299 -0
- package/src/v4-mini/index.ts +1 -0
- package/v3/ZodError.cjs +138 -0
- package/v3/ZodError.d.cts +164 -0
- package/v3/ZodError.d.ts +164 -0
- package/v3/ZodError.js +133 -0
- package/v3/errors.cjs +17 -0
- package/v3/errors.d.cts +5 -0
- package/v3/errors.d.ts +5 -0
- package/v3/errors.js +9 -0
- package/v3/external.cjs +22 -0
- package/v3/external.d.cts +6 -0
- package/v3/external.d.ts +6 -0
- package/v3/external.js +6 -0
- package/v3/helpers/enumUtil.cjs +2 -0
- package/v3/helpers/enumUtil.d.cts +8 -0
- package/v3/helpers/enumUtil.d.ts +8 -0
- package/v3/helpers/enumUtil.js +1 -0
- package/v3/helpers/errorUtil.cjs +9 -0
- package/v3/helpers/errorUtil.d.cts +9 -0
- package/v3/helpers/errorUtil.d.ts +9 -0
- package/v3/helpers/errorUtil.js +6 -0
- package/v3/helpers/parseUtil.cjs +124 -0
- package/v3/helpers/parseUtil.d.cts +78 -0
- package/v3/helpers/parseUtil.d.ts +78 -0
- package/v3/helpers/parseUtil.js +109 -0
- package/v3/helpers/partialUtil.cjs +2 -0
- package/v3/helpers/partialUtil.d.cts +8 -0
- package/v3/helpers/partialUtil.d.ts +8 -0
- package/v3/helpers/partialUtil.js +1 -0
- package/v3/helpers/typeAliases.cjs +2 -0
- package/v3/helpers/typeAliases.d.cts +2 -0
- package/v3/helpers/typeAliases.d.ts +2 -0
- package/v3/helpers/typeAliases.js +1 -0
- package/v3/helpers/util.cjs +137 -0
- package/v3/helpers/util.d.cts +85 -0
- package/v3/helpers/util.d.ts +85 -0
- package/v3/helpers/util.js +133 -0
- package/{dist/commonjs/index.js → v3/index.cjs} +2 -2
- package/v3/index.d.cts +4 -0
- package/v3/index.js +4 -0
- package/v3/locales/en.cjs +111 -0
- package/v3/locales/en.d.cts +3 -0
- package/v3/locales/en.d.ts +3 -0
- package/v3/locales/en.js +109 -0
- package/v3/standard-schema.cjs +2 -0
- package/v3/standard-schema.d.cts +102 -0
- package/v3/standard-schema.d.ts +102 -0
- package/v3/standard-schema.js +1 -0
- package/v3/types.cjs +3775 -0
- package/v3/types.d.cts +1031 -0
- package/v3/types.d.ts +1031 -0
- package/v3/types.js +3693 -0
- package/{dist/commonjs/checks.js → v4/classic/checks.cjs} +29 -29
- package/{dist/esm/checks.d.ts → v4/classic/checks.d.cts} +1 -1
- package/{dist/commonjs → v4/classic}/checks.d.ts +1 -1
- package/{dist/esm → v4/classic}/checks.js +1 -1
- package/{dist/commonjs/coerce.js → v4/classic/coerce.cjs} +2 -2
- package/v4/classic/coerce.d.cts +17 -0
- package/v4/classic/coerce.d.ts +17 -0
- package/{dist/esm → v4/classic}/coerce.js +1 -1
- package/{dist/commonjs/compat.js → v4/classic/compat.cjs} +5 -11
- package/{dist/esm/compat.d.ts → v4/classic/compat.d.cts} +4 -6
- package/{dist/commonjs → v4/classic}/compat.d.ts +3 -5
- package/{dist/esm → v4/classic}/compat.js +2 -8
- package/v4/classic/errors.cjs +67 -0
- package/{dist/commonjs/errors.d.ts → v4/classic/errors.d.cts} +8 -7
- package/{dist/esm → v4/classic}/errors.d.ts +8 -7
- package/v4/classic/errors.js +41 -0
- package/v4/classic/external.cjs +70 -0
- package/v4/classic/external.d.cts +13 -0
- package/v4/classic/external.d.ts +13 -0
- package/v4/classic/external.js +18 -0
- package/v4/classic/index.cjs +33 -0
- package/v4/classic/index.d.cts +4 -0
- package/{dist/commonjs/iso.js → v4/classic/iso.cjs} +2 -2
- package/{dist/esm/iso.d.ts → v4/classic/iso.d.cts} +2 -2
- package/{dist/commonjs → v4/classic}/iso.d.ts +1 -1
- package/{dist/esm → v4/classic}/iso.js +1 -1
- package/{dist/commonjs/parse.js → v4/classic/parse.cjs} +7 -9
- package/{dist/commonjs/parse.d.ts → v4/classic/parse.d.cts} +10 -4
- package/{dist/esm → v4/classic}/parse.d.ts +10 -4
- package/v4/classic/parse.js +6 -0
- package/{dist/commonjs/schemas.js → v4/classic/schemas.cjs} +167 -138
- package/{dist/esm/schemas.d.ts → v4/classic/schemas.d.cts} +176 -196
- package/{dist/commonjs → v4/classic}/schemas.d.ts +175 -195
- package/{dist/esm → v4/classic}/schemas.js +128 -102
- package/v4/core/api.cjs +1039 -0
- package/v4/core/api.d.cts +284 -0
- package/v4/core/api.d.ts +284 -0
- package/v4/core/api.js +906 -0
- package/v4/core/checks.cjs +591 -0
- package/v4/core/checks.d.cts +278 -0
- package/v4/core/checks.d.ts +278 -0
- package/v4/core/checks.js +565 -0
- package/v4/core/core.cjs +67 -0
- package/v4/core/core.d.cts +49 -0
- package/v4/core/core.d.ts +49 -0
- package/v4/core/core.js +61 -0
- package/v4/core/doc.cjs +39 -0
- package/v4/core/doc.d.cts +14 -0
- package/v4/core/doc.d.ts +14 -0
- package/v4/core/doc.js +35 -0
- package/v4/core/errors.cjs +226 -0
- package/v4/core/errors.d.cts +210 -0
- package/v4/core/errors.d.ts +210 -0
- package/v4/core/errors.js +195 -0
- package/v4/core/function.cjs +102 -0
- package/v4/core/function.d.cts +52 -0
- package/v4/core/function.d.ts +52 -0
- package/v4/core/function.js +75 -0
- package/v4/core/index.cjs +44 -0
- package/v4/core/index.d.cts +15 -0
- package/v4/core/index.d.ts +15 -0
- package/v4/core/index.js +15 -0
- package/v4/core/json-schema.cjs +2 -0
- package/v4/core/json-schema.d.cts +87 -0
- package/v4/core/json-schema.d.ts +87 -0
- package/v4/core/json-schema.js +1 -0
- package/v4/core/parse.cjs +87 -0
- package/v4/core/parse.d.cts +25 -0
- package/v4/core/parse.d.ts +25 -0
- package/v4/core/parse.js +57 -0
- package/v4/core/regexes.cjs +103 -0
- package/v4/core/regexes.d.cts +61 -0
- package/v4/core/regexes.d.ts +61 -0
- package/v4/core/regexes.js +95 -0
- package/v4/core/registries.cjs +56 -0
- package/v4/core/registries.d.cts +35 -0
- package/v4/core/registries.d.ts +35 -0
- package/v4/core/registries.js +51 -0
- package/v4/core/schemas.cjs +1748 -0
- package/v4/core/schemas.d.cts +1041 -0
- package/v4/core/schemas.d.ts +1041 -0
- package/v4/core/schemas.js +1717 -0
- package/v4/core/standard-schema.cjs +2 -0
- package/v4/core/standard-schema.d.cts +55 -0
- package/v4/core/standard-schema.d.ts +55 -0
- package/v4/core/standard-schema.js +1 -0
- package/v4/core/to-json-schema.cjs +854 -0
- package/v4/core/to-json-schema.d.cts +88 -0
- package/v4/core/to-json-schema.d.ts +88 -0
- package/v4/core/to-json-schema.js +849 -0
- package/v4/core/util.cjs +539 -0
- package/v4/core/util.d.cts +183 -0
- package/v4/core/util.d.ts +183 -0
- package/v4/core/util.js +493 -0
- package/v4/core/versions.cjs +8 -0
- package/v4/core/versions.d.cts +5 -0
- package/v4/core/versions.d.ts +5 -0
- package/v4/core/versions.js +5 -0
- package/v4/index.cjs +22 -0
- package/v4/index.d.cts +3 -0
- package/v4/index.d.ts +3 -0
- package/v4/index.js +3 -0
- package/v4/locales/ar.cjs +142 -0
- package/v4/locales/ar.d.cts +4 -0
- package/v4/locales/ar.d.ts +4 -0
- package/v4/locales/ar.js +116 -0
- package/v4/locales/az.cjs +141 -0
- package/v4/locales/az.d.cts +4 -0
- package/v4/locales/az.d.ts +4 -0
- package/v4/locales/az.js +115 -0
- package/v4/locales/be.cjs +190 -0
- package/v4/locales/be.d.cts +4 -0
- package/v4/locales/be.d.ts +4 -0
- package/v4/locales/be.js +164 -0
- package/v4/locales/ca.cjs +144 -0
- package/v4/locales/ca.d.cts +4 -0
- package/v4/locales/ca.d.ts +4 -0
- package/v4/locales/ca.js +118 -0
- package/v4/locales/cs.cjs +161 -0
- package/v4/locales/cs.d.cts +4 -0
- package/v4/locales/cs.d.ts +4 -0
- package/v4/locales/cs.js +135 -0
- package/v4/locales/de.cjs +142 -0
- package/v4/locales/de.d.cts +4 -0
- package/v4/locales/de.d.ts +4 -0
- package/v4/locales/de.js +116 -0
- package/v4/locales/en.cjs +145 -0
- package/v4/locales/en.d.cts +5 -0
- package/v4/locales/en.d.ts +5 -0
- package/v4/locales/en.js +117 -0
- package/v4/locales/eo.cjs +144 -0
- package/v4/locales/eo.d.cts +5 -0
- package/v4/locales/eo.d.ts +5 -0
- package/v4/locales/eo.js +116 -0
- package/v4/locales/es.cjs +143 -0
- package/v4/locales/es.d.cts +4 -0
- package/v4/locales/es.d.ts +4 -0
- package/v4/locales/es.js +117 -0
- package/v4/locales/fa.cjs +148 -0
- package/v4/locales/fa.d.cts +4 -0
- package/v4/locales/fa.d.ts +4 -0
- package/v4/locales/fa.js +122 -0
- package/v4/locales/fi.cjs +148 -0
- package/v4/locales/fi.d.cts +4 -0
- package/v4/locales/fi.d.ts +4 -0
- package/v4/locales/fi.js +122 -0
- package/v4/locales/fr-CA.cjs +143 -0
- package/v4/locales/fr-CA.d.cts +4 -0
- package/v4/locales/fr-CA.d.ts +4 -0
- package/v4/locales/fr-CA.js +117 -0
- package/v4/locales/fr.cjs +142 -0
- package/v4/locales/fr.d.cts +4 -0
- package/v4/locales/fr.d.ts +4 -0
- package/v4/locales/fr.js +116 -0
- package/v4/locales/he.cjs +143 -0
- package/v4/locales/he.d.cts +4 -0
- package/v4/locales/he.d.ts +4 -0
- package/v4/locales/he.js +117 -0
- package/v4/locales/hu.cjs +143 -0
- package/v4/locales/hu.d.cts +4 -0
- package/v4/locales/hu.d.ts +4 -0
- package/v4/locales/hu.js +117 -0
- package/v4/locales/id.cjs +142 -0
- package/v4/locales/id.d.cts +4 -0
- package/v4/locales/id.d.ts +4 -0
- package/v4/locales/id.js +116 -0
- package/v4/locales/index.cjs +84 -0
- package/v4/locales/index.d.cts +39 -0
- package/v4/locales/index.d.ts +39 -0
- package/v4/locales/index.js +39 -0
- package/v4/locales/it.cjs +143 -0
- package/v4/locales/it.d.cts +4 -0
- package/v4/locales/it.d.ts +4 -0
- package/v4/locales/it.js +117 -0
- package/v4/locales/ja.cjs +141 -0
- package/v4/locales/ja.d.cts +4 -0
- package/v4/locales/ja.d.ts +4 -0
- package/v4/locales/ja.js +115 -0
- package/v4/locales/kh.cjs +143 -0
- package/v4/locales/kh.d.cts +4 -0
- package/v4/locales/kh.d.ts +4 -0
- package/v4/locales/kh.js +117 -0
- package/v4/locales/ko.cjs +147 -0
- package/v4/locales/ko.d.cts +4 -0
- package/v4/locales/ko.d.ts +4 -0
- package/v4/locales/ko.js +121 -0
- package/v4/locales/mk.cjs +144 -0
- package/v4/locales/mk.d.cts +4 -0
- package/v4/locales/mk.d.ts +4 -0
- package/v4/locales/mk.js +118 -0
- package/v4/locales/ms.cjs +142 -0
- package/v4/locales/ms.d.cts +4 -0
- package/v4/locales/ms.d.ts +4 -0
- package/v4/locales/ms.js +116 -0
- package/v4/locales/nl.cjs +143 -0
- package/v4/locales/nl.d.cts +4 -0
- package/v4/locales/nl.d.ts +4 -0
- package/v4/locales/nl.js +117 -0
- package/v4/locales/no.cjs +142 -0
- package/v4/locales/no.d.cts +4 -0
- package/v4/locales/no.d.ts +4 -0
- package/v4/locales/no.js +116 -0
- package/v4/locales/ota.cjs +143 -0
- package/v4/locales/ota.d.cts +4 -0
- package/v4/locales/ota.d.ts +4 -0
- package/v4/locales/ota.js +117 -0
- package/v4/locales/pl.cjs +143 -0
- package/v4/locales/pl.d.cts +4 -0
- package/v4/locales/pl.d.ts +4 -0
- package/v4/locales/pl.js +117 -0
- package/v4/locales/ps.cjs +148 -0
- package/v4/locales/ps.d.cts +4 -0
- package/v4/locales/ps.d.ts +4 -0
- package/v4/locales/ps.js +122 -0
- package/v4/locales/pt.cjs +142 -0
- package/v4/locales/pt.d.cts +4 -0
- package/v4/locales/pt.d.ts +4 -0
- package/v4/locales/pt.js +116 -0
- package/v4/locales/ru.cjs +190 -0
- package/v4/locales/ru.d.cts +4 -0
- package/v4/locales/ru.d.ts +4 -0
- package/v4/locales/ru.js +164 -0
- package/v4/locales/sl.cjs +143 -0
- package/v4/locales/sl.d.cts +4 -0
- package/v4/locales/sl.d.ts +4 -0
- package/v4/locales/sl.js +117 -0
- package/v4/locales/sv.cjs +144 -0
- package/v4/locales/sv.d.cts +4 -0
- package/v4/locales/sv.d.ts +4 -0
- package/v4/locales/sv.js +118 -0
- package/v4/locales/ta.cjs +143 -0
- package/v4/locales/ta.d.cts +4 -0
- package/v4/locales/ta.d.ts +4 -0
- package/v4/locales/ta.js +117 -0
- package/v4/locales/th.cjs +143 -0
- package/v4/locales/th.d.cts +4 -0
- package/v4/locales/th.d.ts +4 -0
- package/v4/locales/th.js +117 -0
- package/v4/locales/tr.cjs +143 -0
- package/v4/locales/tr.d.cts +5 -0
- package/v4/locales/tr.d.ts +5 -0
- package/v4/locales/tr.js +115 -0
- package/v4/locales/ua.cjs +143 -0
- package/v4/locales/ua.d.cts +4 -0
- package/v4/locales/ua.d.ts +4 -0
- package/v4/locales/ua.js +117 -0
- package/v4/locales/ur.cjs +143 -0
- package/v4/locales/ur.d.cts +4 -0
- package/v4/locales/ur.d.ts +4 -0
- package/v4/locales/ur.js +117 -0
- package/v4/locales/vi.cjs +142 -0
- package/v4/locales/vi.d.cts +4 -0
- package/v4/locales/vi.d.ts +4 -0
- package/v4/locales/vi.js +116 -0
- package/v4/locales/zh-CN.cjs +142 -0
- package/v4/locales/zh-CN.d.cts +4 -0
- package/v4/locales/zh-CN.d.ts +4 -0
- package/v4/locales/zh-CN.js +116 -0
- package/v4/locales/zh-TW.cjs +143 -0
- package/v4/locales/zh-TW.d.cts +4 -0
- package/v4/locales/zh-TW.d.ts +4 -0
- package/v4/locales/zh-TW.js +117 -0
- package/v4/mini/checks.cjs +34 -0
- package/v4/mini/checks.d.cts +1 -0
- package/v4/mini/checks.d.ts +1 -0
- package/v4/mini/checks.js +1 -0
- package/{dist/commonjs/errors.js → v4/mini/coerce.cjs} +21 -25
- package/v4/mini/coerce.d.cts +7 -0
- package/v4/mini/coerce.d.ts +7 -0
- package/v4/mini/coerce.js +17 -0
- package/v4/mini/external.cjs +62 -0
- package/v4/mini/external.d.cts +11 -0
- package/v4/mini/external.d.ts +11 -0
- package/v4/mini/external.js +13 -0
- package/v4/mini/index.cjs +32 -0
- package/v4/mini/index.d.cts +3 -0
- package/v4/mini/index.d.ts +3 -0
- package/v4/mini/index.js +3 -0
- package/v4/mini/iso.cjs +60 -0
- package/v4/mini/iso.d.cts +22 -0
- package/v4/mini/iso.d.ts +22 -0
- package/v4/mini/iso.js +30 -0
- package/v4/mini/parse.cjs +8 -0
- package/v4/mini/parse.d.cts +1 -0
- package/v4/mini/parse.d.ts +1 -0
- package/v4/mini/parse.js +1 -0
- package/v4/mini/schemas.cjs +839 -0
- package/v4/mini/schemas.d.cts +356 -0
- package/v4/mini/schemas.d.ts +356 -0
- package/v4/mini/schemas.js +732 -0
- package/v4-mini/index.cjs +17 -0
- package/v4-mini/index.d.cts +1 -0
- package/v4-mini/index.d.ts +1 -0
- package/v4-mini/index.js +1 -0
- package/dist/commonjs/coerce.d.ts +0 -17
- package/dist/commonjs/external.d.ts +0 -8
- package/dist/commonjs/external.js +0 -58
- package/dist/commonjs/package.json +0 -3
- package/dist/esm/coerce.d.ts +0 -17
- package/dist/esm/errors.js +0 -24
- package/dist/esm/external.d.ts +0 -8
- package/dist/esm/external.js +0 -14
- package/dist/esm/package.json +0 -3
- package/dist/esm/parse.js +0 -8
- package/src/coerce.ts +0 -27
- package/src/errors.ts +0 -50
- package/src/external.ts +0 -30
- package/{dist/esm → v3}/index.d.ts +1 -1
- /package/{dist/commonjs → v4/classic}/index.d.ts +0 -0
- /package/{dist/esm → v4/classic}/index.js +0 -0
package/v3/ZodError.d.ts
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { Primitive } from "./helpers/typeAliases.js";
|
|
2
|
+
import { util, type ZodParsedType } from "./helpers/util.js";
|
|
3
|
+
import type { TypeOf, ZodType } from "./index.js";
|
|
4
|
+
type allKeys<T> = T extends any ? keyof T : never;
|
|
5
|
+
export type inferFlattenedErrors<T extends ZodType<any, any, any>, U = string> = typeToFlattenedError<TypeOf<T>, U>;
|
|
6
|
+
export type typeToFlattenedError<T, U = string> = {
|
|
7
|
+
formErrors: U[];
|
|
8
|
+
fieldErrors: {
|
|
9
|
+
[P in allKeys<T>]?: U[];
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const ZodIssueCode: {
|
|
13
|
+
custom: "custom";
|
|
14
|
+
invalid_type: "invalid_type";
|
|
15
|
+
unrecognized_keys: "unrecognized_keys";
|
|
16
|
+
too_big: "too_big";
|
|
17
|
+
too_small: "too_small";
|
|
18
|
+
not_multiple_of: "not_multiple_of";
|
|
19
|
+
invalid_union: "invalid_union";
|
|
20
|
+
invalid_literal: "invalid_literal";
|
|
21
|
+
invalid_union_discriminator: "invalid_union_discriminator";
|
|
22
|
+
invalid_enum_value: "invalid_enum_value";
|
|
23
|
+
invalid_arguments: "invalid_arguments";
|
|
24
|
+
invalid_return_type: "invalid_return_type";
|
|
25
|
+
invalid_date: "invalid_date";
|
|
26
|
+
invalid_string: "invalid_string";
|
|
27
|
+
invalid_intersection_types: "invalid_intersection_types";
|
|
28
|
+
not_finite: "not_finite";
|
|
29
|
+
};
|
|
30
|
+
export type ZodIssueCode = keyof typeof ZodIssueCode;
|
|
31
|
+
export type ZodIssueBase = {
|
|
32
|
+
path: (string | number)[];
|
|
33
|
+
message?: string | undefined;
|
|
34
|
+
};
|
|
35
|
+
export interface ZodInvalidTypeIssue extends ZodIssueBase {
|
|
36
|
+
code: typeof ZodIssueCode.invalid_type;
|
|
37
|
+
expected: ZodParsedType;
|
|
38
|
+
received: ZodParsedType;
|
|
39
|
+
}
|
|
40
|
+
export interface ZodInvalidLiteralIssue extends ZodIssueBase {
|
|
41
|
+
code: typeof ZodIssueCode.invalid_literal;
|
|
42
|
+
expected: unknown;
|
|
43
|
+
received: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface ZodUnrecognizedKeysIssue extends ZodIssueBase {
|
|
46
|
+
code: typeof ZodIssueCode.unrecognized_keys;
|
|
47
|
+
keys: string[];
|
|
48
|
+
}
|
|
49
|
+
export interface ZodInvalidUnionIssue extends ZodIssueBase {
|
|
50
|
+
code: typeof ZodIssueCode.invalid_union;
|
|
51
|
+
unionErrors: ZodError[];
|
|
52
|
+
}
|
|
53
|
+
export interface ZodInvalidUnionDiscriminatorIssue extends ZodIssueBase {
|
|
54
|
+
code: typeof ZodIssueCode.invalid_union_discriminator;
|
|
55
|
+
options: Primitive[];
|
|
56
|
+
}
|
|
57
|
+
export interface ZodInvalidEnumValueIssue extends ZodIssueBase {
|
|
58
|
+
received: string | number;
|
|
59
|
+
code: typeof ZodIssueCode.invalid_enum_value;
|
|
60
|
+
options: (string | number)[];
|
|
61
|
+
}
|
|
62
|
+
export interface ZodInvalidArgumentsIssue extends ZodIssueBase {
|
|
63
|
+
code: typeof ZodIssueCode.invalid_arguments;
|
|
64
|
+
argumentsError: ZodError;
|
|
65
|
+
}
|
|
66
|
+
export interface ZodInvalidReturnTypeIssue extends ZodIssueBase {
|
|
67
|
+
code: typeof ZodIssueCode.invalid_return_type;
|
|
68
|
+
returnTypeError: ZodError;
|
|
69
|
+
}
|
|
70
|
+
export interface ZodInvalidDateIssue extends ZodIssueBase {
|
|
71
|
+
code: typeof ZodIssueCode.invalid_date;
|
|
72
|
+
}
|
|
73
|
+
export type StringValidation = "email" | "url" | "emoji" | "uuid" | "nanoid" | "regex" | "cuid" | "cuid2" | "ulid" | "datetime" | "date" | "time" | "duration" | "ip" | "cidr" | "base64" | "jwt" | "base64url" | {
|
|
74
|
+
includes: string;
|
|
75
|
+
position?: number | undefined;
|
|
76
|
+
} | {
|
|
77
|
+
startsWith: string;
|
|
78
|
+
} | {
|
|
79
|
+
endsWith: string;
|
|
80
|
+
};
|
|
81
|
+
export interface ZodInvalidStringIssue extends ZodIssueBase {
|
|
82
|
+
code: typeof ZodIssueCode.invalid_string;
|
|
83
|
+
validation: StringValidation;
|
|
84
|
+
}
|
|
85
|
+
export interface ZodTooSmallIssue extends ZodIssueBase {
|
|
86
|
+
code: typeof ZodIssueCode.too_small;
|
|
87
|
+
minimum: number | bigint;
|
|
88
|
+
inclusive: boolean;
|
|
89
|
+
exact?: boolean;
|
|
90
|
+
type: "array" | "string" | "number" | "set" | "date" | "bigint";
|
|
91
|
+
}
|
|
92
|
+
export interface ZodTooBigIssue extends ZodIssueBase {
|
|
93
|
+
code: typeof ZodIssueCode.too_big;
|
|
94
|
+
maximum: number | bigint;
|
|
95
|
+
inclusive: boolean;
|
|
96
|
+
exact?: boolean;
|
|
97
|
+
type: "array" | "string" | "number" | "set" | "date" | "bigint";
|
|
98
|
+
}
|
|
99
|
+
export interface ZodInvalidIntersectionTypesIssue extends ZodIssueBase {
|
|
100
|
+
code: typeof ZodIssueCode.invalid_intersection_types;
|
|
101
|
+
}
|
|
102
|
+
export interface ZodNotMultipleOfIssue extends ZodIssueBase {
|
|
103
|
+
code: typeof ZodIssueCode.not_multiple_of;
|
|
104
|
+
multipleOf: number | bigint;
|
|
105
|
+
}
|
|
106
|
+
export interface ZodNotFiniteIssue extends ZodIssueBase {
|
|
107
|
+
code: typeof ZodIssueCode.not_finite;
|
|
108
|
+
}
|
|
109
|
+
export interface ZodCustomIssue extends ZodIssueBase {
|
|
110
|
+
code: typeof ZodIssueCode.custom;
|
|
111
|
+
params?: {
|
|
112
|
+
[k: string]: any;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export type DenormalizedError = {
|
|
116
|
+
[k: string]: DenormalizedError | string[];
|
|
117
|
+
};
|
|
118
|
+
export type ZodIssueOptionalMessage = ZodInvalidTypeIssue | ZodInvalidLiteralIssue | ZodUnrecognizedKeysIssue | ZodInvalidUnionIssue | ZodInvalidUnionDiscriminatorIssue | ZodInvalidEnumValueIssue | ZodInvalidArgumentsIssue | ZodInvalidReturnTypeIssue | ZodInvalidDateIssue | ZodInvalidStringIssue | ZodTooSmallIssue | ZodTooBigIssue | ZodInvalidIntersectionTypesIssue | ZodNotMultipleOfIssue | ZodNotFiniteIssue | ZodCustomIssue;
|
|
119
|
+
export type ZodIssue = ZodIssueOptionalMessage & {
|
|
120
|
+
fatal?: boolean | undefined;
|
|
121
|
+
message: string;
|
|
122
|
+
};
|
|
123
|
+
export declare const quotelessJson: (obj: any) => string;
|
|
124
|
+
type recursiveZodFormattedError<T> = T extends [any, ...any[]] ? {
|
|
125
|
+
[K in keyof T]?: ZodFormattedError<T[K]>;
|
|
126
|
+
} : T extends any[] ? {
|
|
127
|
+
[k: number]: ZodFormattedError<T[number]>;
|
|
128
|
+
} : T extends object ? {
|
|
129
|
+
[K in keyof T]?: ZodFormattedError<T[K]>;
|
|
130
|
+
} : unknown;
|
|
131
|
+
export type ZodFormattedError<T, U = string> = {
|
|
132
|
+
_errors: U[];
|
|
133
|
+
} & recursiveZodFormattedError<NonNullable<T>>;
|
|
134
|
+
export type inferFormattedError<T extends ZodType<any, any, any>, U = string> = ZodFormattedError<TypeOf<T>, U>;
|
|
135
|
+
export declare class ZodError<T = any> extends Error {
|
|
136
|
+
issues: ZodIssue[];
|
|
137
|
+
get errors(): ZodIssue[];
|
|
138
|
+
constructor(issues: ZodIssue[]);
|
|
139
|
+
format(): ZodFormattedError<T>;
|
|
140
|
+
format<U>(mapper: (issue: ZodIssue) => U): ZodFormattedError<T, U>;
|
|
141
|
+
static create: (issues: ZodIssue[]) => ZodError<any>;
|
|
142
|
+
static assert(value: unknown): asserts value is ZodError;
|
|
143
|
+
toString(): string;
|
|
144
|
+
get message(): string;
|
|
145
|
+
get isEmpty(): boolean;
|
|
146
|
+
addIssue: (sub: ZodIssue) => void;
|
|
147
|
+
addIssues: (subs?: ZodIssue[]) => void;
|
|
148
|
+
flatten(): typeToFlattenedError<T>;
|
|
149
|
+
flatten<U>(mapper?: (issue: ZodIssue) => U): typeToFlattenedError<T, U>;
|
|
150
|
+
get formErrors(): typeToFlattenedError<T, string>;
|
|
151
|
+
}
|
|
152
|
+
type stripPath<T extends object> = T extends any ? util.OmitKeys<T, "path"> : never;
|
|
153
|
+
export type IssueData = stripPath<ZodIssueOptionalMessage> & {
|
|
154
|
+
path?: (string | number)[];
|
|
155
|
+
fatal?: boolean | undefined;
|
|
156
|
+
};
|
|
157
|
+
export type ErrorMapCtx = {
|
|
158
|
+
defaultError: string;
|
|
159
|
+
data: any;
|
|
160
|
+
};
|
|
161
|
+
export type ZodErrorMap = (issue: ZodIssueOptionalMessage, _ctx: ErrorMapCtx) => {
|
|
162
|
+
message: string;
|
|
163
|
+
};
|
|
164
|
+
export {};
|
package/v3/ZodError.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { util } from "./helpers/util.js";
|
|
2
|
+
export const ZodIssueCode = util.arrayToEnum([
|
|
3
|
+
"invalid_type",
|
|
4
|
+
"invalid_literal",
|
|
5
|
+
"custom",
|
|
6
|
+
"invalid_union",
|
|
7
|
+
"invalid_union_discriminator",
|
|
8
|
+
"invalid_enum_value",
|
|
9
|
+
"unrecognized_keys",
|
|
10
|
+
"invalid_arguments",
|
|
11
|
+
"invalid_return_type",
|
|
12
|
+
"invalid_date",
|
|
13
|
+
"invalid_string",
|
|
14
|
+
"too_small",
|
|
15
|
+
"too_big",
|
|
16
|
+
"invalid_intersection_types",
|
|
17
|
+
"not_multiple_of",
|
|
18
|
+
"not_finite",
|
|
19
|
+
]);
|
|
20
|
+
export const quotelessJson = (obj) => {
|
|
21
|
+
const json = JSON.stringify(obj, null, 2);
|
|
22
|
+
return json.replace(/"([^"]+)":/g, "$1:");
|
|
23
|
+
};
|
|
24
|
+
export class ZodError extends Error {
|
|
25
|
+
get errors() {
|
|
26
|
+
return this.issues;
|
|
27
|
+
}
|
|
28
|
+
constructor(issues) {
|
|
29
|
+
super();
|
|
30
|
+
this.issues = [];
|
|
31
|
+
this.addIssue = (sub) => {
|
|
32
|
+
this.issues = [...this.issues, sub];
|
|
33
|
+
};
|
|
34
|
+
this.addIssues = (subs = []) => {
|
|
35
|
+
this.issues = [...this.issues, ...subs];
|
|
36
|
+
};
|
|
37
|
+
const actualProto = new.target.prototype;
|
|
38
|
+
if (Object.setPrototypeOf) {
|
|
39
|
+
// eslint-disable-next-line ban/ban
|
|
40
|
+
Object.setPrototypeOf(this, actualProto);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.__proto__ = actualProto;
|
|
44
|
+
}
|
|
45
|
+
this.name = "ZodError";
|
|
46
|
+
this.issues = issues;
|
|
47
|
+
}
|
|
48
|
+
format(_mapper) {
|
|
49
|
+
const mapper = _mapper ||
|
|
50
|
+
function (issue) {
|
|
51
|
+
return issue.message;
|
|
52
|
+
};
|
|
53
|
+
const fieldErrors = { _errors: [] };
|
|
54
|
+
const processError = (error) => {
|
|
55
|
+
for (const issue of error.issues) {
|
|
56
|
+
if (issue.code === "invalid_union") {
|
|
57
|
+
issue.unionErrors.map(processError);
|
|
58
|
+
}
|
|
59
|
+
else if (issue.code === "invalid_return_type") {
|
|
60
|
+
processError(issue.returnTypeError);
|
|
61
|
+
}
|
|
62
|
+
else if (issue.code === "invalid_arguments") {
|
|
63
|
+
processError(issue.argumentsError);
|
|
64
|
+
}
|
|
65
|
+
else if (issue.path.length === 0) {
|
|
66
|
+
fieldErrors._errors.push(mapper(issue));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
let curr = fieldErrors;
|
|
70
|
+
let i = 0;
|
|
71
|
+
while (i < issue.path.length) {
|
|
72
|
+
const el = issue.path[i];
|
|
73
|
+
const terminal = i === issue.path.length - 1;
|
|
74
|
+
if (!terminal) {
|
|
75
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
76
|
+
// if (typeof el === "string") {
|
|
77
|
+
// curr[el] = curr[el] || { _errors: [] };
|
|
78
|
+
// } else if (typeof el === "number") {
|
|
79
|
+
// const errorArray: any = [];
|
|
80
|
+
// errorArray._errors = [];
|
|
81
|
+
// curr[el] = curr[el] || errorArray;
|
|
82
|
+
// }
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
86
|
+
curr[el]._errors.push(mapper(issue));
|
|
87
|
+
}
|
|
88
|
+
curr = curr[el];
|
|
89
|
+
i++;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
processError(this);
|
|
95
|
+
return fieldErrors;
|
|
96
|
+
}
|
|
97
|
+
static assert(value) {
|
|
98
|
+
if (!(value instanceof ZodError)) {
|
|
99
|
+
throw new Error(`Not a ZodError: ${value}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
toString() {
|
|
103
|
+
return this.message;
|
|
104
|
+
}
|
|
105
|
+
get message() {
|
|
106
|
+
return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
|
|
107
|
+
}
|
|
108
|
+
get isEmpty() {
|
|
109
|
+
return this.issues.length === 0;
|
|
110
|
+
}
|
|
111
|
+
flatten(mapper = (issue) => issue.message) {
|
|
112
|
+
const fieldErrors = {};
|
|
113
|
+
const formErrors = [];
|
|
114
|
+
for (const sub of this.issues) {
|
|
115
|
+
if (sub.path.length > 0) {
|
|
116
|
+
const firstEl = sub.path[0];
|
|
117
|
+
fieldErrors[firstEl] = fieldErrors[firstEl] || [];
|
|
118
|
+
fieldErrors[firstEl].push(mapper(sub));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
formErrors.push(mapper(sub));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return { formErrors, fieldErrors };
|
|
125
|
+
}
|
|
126
|
+
get formErrors() {
|
|
127
|
+
return this.flatten();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
ZodError.create = (issues) => {
|
|
131
|
+
const error = new ZodError(issues);
|
|
132
|
+
return error;
|
|
133
|
+
};
|
package/v3/errors.cjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultErrorMap = void 0;
|
|
7
|
+
exports.setErrorMap = setErrorMap;
|
|
8
|
+
exports.getErrorMap = getErrorMap;
|
|
9
|
+
const en_js_1 = __importDefault(require("./locales/en.cjs"));
|
|
10
|
+
exports.defaultErrorMap = en_js_1.default;
|
|
11
|
+
let overrideErrorMap = en_js_1.default;
|
|
12
|
+
function setErrorMap(map) {
|
|
13
|
+
overrideErrorMap = map;
|
|
14
|
+
}
|
|
15
|
+
function getErrorMap() {
|
|
16
|
+
return overrideErrorMap;
|
|
17
|
+
}
|
package/v3/errors.d.cts
ADDED
package/v3/errors.d.ts
ADDED
package/v3/errors.js
ADDED
package/v3/external.cjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./errors.cjs"), exports);
|
|
18
|
+
__exportStar(require("./helpers/parseUtil.cjs"), exports);
|
|
19
|
+
__exportStar(require("./helpers/typeAliases.cjs"), exports);
|
|
20
|
+
__exportStar(require("./helpers/util.cjs"), exports);
|
|
21
|
+
__exportStar(require("./types.cjs"), exports);
|
|
22
|
+
__exportStar(require("./ZodError.cjs"), exports);
|
package/v3/external.d.ts
ADDED
package/v3/external.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare namespace enumUtil {
|
|
2
|
+
type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
|
|
3
|
+
type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
|
|
4
|
+
type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
|
|
5
|
+
type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
|
|
6
|
+
export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;
|
|
7
|
+
export {};
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare namespace enumUtil {
|
|
2
|
+
type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
|
|
3
|
+
type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
|
|
4
|
+
type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
|
|
5
|
+
type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
|
|
6
|
+
export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;
|
|
7
|
+
export {};
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorUtil = void 0;
|
|
4
|
+
var errorUtil;
|
|
5
|
+
(function (errorUtil) {
|
|
6
|
+
errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
|
|
7
|
+
// biome-ignore lint:
|
|
8
|
+
errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
|
|
9
|
+
})(errorUtil || (exports.errorUtil = errorUtil = {}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var errorUtil;
|
|
2
|
+
(function (errorUtil) {
|
|
3
|
+
errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
|
|
4
|
+
// biome-ignore lint:
|
|
5
|
+
errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
|
|
6
|
+
})(errorUtil || (errorUtil = {}));
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.EMPTY_PATH = exports.makeIssue = void 0;
|
|
7
|
+
exports.addIssueToContext = addIssueToContext;
|
|
8
|
+
const errors_js_1 = require("../errors.cjs");
|
|
9
|
+
const en_js_1 = __importDefault(require("../locales/en.cjs"));
|
|
10
|
+
const makeIssue = (params) => {
|
|
11
|
+
const { data, path, errorMaps, issueData } = params;
|
|
12
|
+
const fullPath = [...path, ...(issueData.path || [])];
|
|
13
|
+
const fullIssue = {
|
|
14
|
+
...issueData,
|
|
15
|
+
path: fullPath,
|
|
16
|
+
};
|
|
17
|
+
if (issueData.message !== undefined) {
|
|
18
|
+
return {
|
|
19
|
+
...issueData,
|
|
20
|
+
path: fullPath,
|
|
21
|
+
message: issueData.message,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
let errorMessage = "";
|
|
25
|
+
const maps = errorMaps
|
|
26
|
+
.filter((m) => !!m)
|
|
27
|
+
.slice()
|
|
28
|
+
.reverse();
|
|
29
|
+
for (const map of maps) {
|
|
30
|
+
errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
...issueData,
|
|
34
|
+
path: fullPath,
|
|
35
|
+
message: errorMessage,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
exports.makeIssue = makeIssue;
|
|
39
|
+
exports.EMPTY_PATH = [];
|
|
40
|
+
function addIssueToContext(ctx, issueData) {
|
|
41
|
+
const overrideMap = (0, errors_js_1.getErrorMap)();
|
|
42
|
+
const issue = (0, exports.makeIssue)({
|
|
43
|
+
issueData: issueData,
|
|
44
|
+
data: ctx.data,
|
|
45
|
+
path: ctx.path,
|
|
46
|
+
errorMaps: [
|
|
47
|
+
ctx.common.contextualErrorMap, // contextual error map is first priority
|
|
48
|
+
ctx.schemaErrorMap, // then schema-bound map if available
|
|
49
|
+
overrideMap, // then global override map
|
|
50
|
+
overrideMap === en_js_1.default ? undefined : en_js_1.default, // then global default map
|
|
51
|
+
].filter((x) => !!x),
|
|
52
|
+
});
|
|
53
|
+
ctx.common.issues.push(issue);
|
|
54
|
+
}
|
|
55
|
+
class ParseStatus {
|
|
56
|
+
constructor() {
|
|
57
|
+
this.value = "valid";
|
|
58
|
+
}
|
|
59
|
+
dirty() {
|
|
60
|
+
if (this.value === "valid")
|
|
61
|
+
this.value = "dirty";
|
|
62
|
+
}
|
|
63
|
+
abort() {
|
|
64
|
+
if (this.value !== "aborted")
|
|
65
|
+
this.value = "aborted";
|
|
66
|
+
}
|
|
67
|
+
static mergeArray(status, results) {
|
|
68
|
+
const arrayValue = [];
|
|
69
|
+
for (const s of results) {
|
|
70
|
+
if (s.status === "aborted")
|
|
71
|
+
return exports.INVALID;
|
|
72
|
+
if (s.status === "dirty")
|
|
73
|
+
status.dirty();
|
|
74
|
+
arrayValue.push(s.value);
|
|
75
|
+
}
|
|
76
|
+
return { status: status.value, value: arrayValue };
|
|
77
|
+
}
|
|
78
|
+
static async mergeObjectAsync(status, pairs) {
|
|
79
|
+
const syncPairs = [];
|
|
80
|
+
for (const pair of pairs) {
|
|
81
|
+
const key = await pair.key;
|
|
82
|
+
const value = await pair.value;
|
|
83
|
+
syncPairs.push({
|
|
84
|
+
key,
|
|
85
|
+
value,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return ParseStatus.mergeObjectSync(status, syncPairs);
|
|
89
|
+
}
|
|
90
|
+
static mergeObjectSync(status, pairs) {
|
|
91
|
+
const finalObject = {};
|
|
92
|
+
for (const pair of pairs) {
|
|
93
|
+
const { key, value } = pair;
|
|
94
|
+
if (key.status === "aborted")
|
|
95
|
+
return exports.INVALID;
|
|
96
|
+
if (value.status === "aborted")
|
|
97
|
+
return exports.INVALID;
|
|
98
|
+
if (key.status === "dirty")
|
|
99
|
+
status.dirty();
|
|
100
|
+
if (value.status === "dirty")
|
|
101
|
+
status.dirty();
|
|
102
|
+
if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
|
|
103
|
+
finalObject[key.value] = value.value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { status: status.value, value: finalObject };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.ParseStatus = ParseStatus;
|
|
110
|
+
exports.INVALID = Object.freeze({
|
|
111
|
+
status: "aborted",
|
|
112
|
+
});
|
|
113
|
+
const DIRTY = (value) => ({ status: "dirty", value });
|
|
114
|
+
exports.DIRTY = DIRTY;
|
|
115
|
+
const OK = (value) => ({ status: "valid", value });
|
|
116
|
+
exports.OK = OK;
|
|
117
|
+
const isAborted = (x) => x.status === "aborted";
|
|
118
|
+
exports.isAborted = isAborted;
|
|
119
|
+
const isDirty = (x) => x.status === "dirty";
|
|
120
|
+
exports.isDirty = isDirty;
|
|
121
|
+
const isValid = (x) => x.status === "valid";
|
|
122
|
+
exports.isValid = isValid;
|
|
123
|
+
const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
|
|
124
|
+
exports.isAsync = isAsync;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { IssueData, ZodErrorMap, ZodIssue } from "../ZodError.cjs";
|
|
2
|
+
import type { ZodParsedType } from "./util.cjs";
|
|
3
|
+
export declare const makeIssue: (params: {
|
|
4
|
+
data: any;
|
|
5
|
+
path: (string | number)[];
|
|
6
|
+
errorMaps: ZodErrorMap[];
|
|
7
|
+
issueData: IssueData;
|
|
8
|
+
}) => ZodIssue;
|
|
9
|
+
export type ParseParams = {
|
|
10
|
+
path: (string | number)[];
|
|
11
|
+
errorMap: ZodErrorMap;
|
|
12
|
+
async: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type ParsePathComponent = string | number;
|
|
15
|
+
export type ParsePath = ParsePathComponent[];
|
|
16
|
+
export declare const EMPTY_PATH: ParsePath;
|
|
17
|
+
export interface ParseContext {
|
|
18
|
+
readonly common: {
|
|
19
|
+
readonly issues: ZodIssue[];
|
|
20
|
+
readonly contextualErrorMap?: ZodErrorMap | undefined;
|
|
21
|
+
readonly async: boolean;
|
|
22
|
+
};
|
|
23
|
+
readonly path: ParsePath;
|
|
24
|
+
readonly schemaErrorMap?: ZodErrorMap | undefined;
|
|
25
|
+
readonly parent: ParseContext | null;
|
|
26
|
+
readonly data: any;
|
|
27
|
+
readonly parsedType: ZodParsedType;
|
|
28
|
+
}
|
|
29
|
+
export type ParseInput = {
|
|
30
|
+
data: any;
|
|
31
|
+
path: (string | number)[];
|
|
32
|
+
parent: ParseContext;
|
|
33
|
+
};
|
|
34
|
+
export declare function addIssueToContext(ctx: ParseContext, issueData: IssueData): void;
|
|
35
|
+
export type ObjectPair = {
|
|
36
|
+
key: SyncParseReturnType<any>;
|
|
37
|
+
value: SyncParseReturnType<any>;
|
|
38
|
+
};
|
|
39
|
+
export declare class ParseStatus {
|
|
40
|
+
value: "aborted" | "dirty" | "valid";
|
|
41
|
+
dirty(): void;
|
|
42
|
+
abort(): void;
|
|
43
|
+
static mergeArray(status: ParseStatus, results: SyncParseReturnType<any>[]): SyncParseReturnType;
|
|
44
|
+
static mergeObjectAsync(status: ParseStatus, pairs: {
|
|
45
|
+
key: ParseReturnType<any>;
|
|
46
|
+
value: ParseReturnType<any>;
|
|
47
|
+
}[]): Promise<SyncParseReturnType<any>>;
|
|
48
|
+
static mergeObjectSync(status: ParseStatus, pairs: {
|
|
49
|
+
key: SyncParseReturnType<any>;
|
|
50
|
+
value: SyncParseReturnType<any>;
|
|
51
|
+
alwaysSet?: boolean;
|
|
52
|
+
}[]): SyncParseReturnType;
|
|
53
|
+
}
|
|
54
|
+
export interface ParseResult {
|
|
55
|
+
status: "aborted" | "dirty" | "valid";
|
|
56
|
+
data: any;
|
|
57
|
+
}
|
|
58
|
+
export type INVALID = {
|
|
59
|
+
status: "aborted";
|
|
60
|
+
};
|
|
61
|
+
export declare const INVALID: INVALID;
|
|
62
|
+
export type DIRTY<T> = {
|
|
63
|
+
status: "dirty";
|
|
64
|
+
value: T;
|
|
65
|
+
};
|
|
66
|
+
export declare const DIRTY: <T>(value: T) => DIRTY<T>;
|
|
67
|
+
export type OK<T> = {
|
|
68
|
+
status: "valid";
|
|
69
|
+
value: T;
|
|
70
|
+
};
|
|
71
|
+
export declare const OK: <T>(value: T) => OK<T>;
|
|
72
|
+
export type SyncParseReturnType<T = any> = OK<T> | DIRTY<T> | INVALID;
|
|
73
|
+
export type AsyncParseReturnType<T> = Promise<SyncParseReturnType<T>>;
|
|
74
|
+
export type ParseReturnType<T> = SyncParseReturnType<T> | AsyncParseReturnType<T>;
|
|
75
|
+
export declare const isAborted: (x: ParseReturnType<any>) => x is INVALID;
|
|
76
|
+
export declare const isDirty: <T>(x: ParseReturnType<T>) => x is OK<T> | DIRTY<T>;
|
|
77
|
+
export declare const isValid: <T>(x: ParseReturnType<T>) => x is OK<T>;
|
|
78
|
+
export declare const isAsync: <T>(x: ParseReturnType<T>) => x is AsyncParseReturnType<T>;
|