zod 3.25.0 → 3.25.3
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/dist/commonjs/index.d.ts +3 -0
- package/dist/commonjs/index.js +22 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/v3/ZodError.d.ts +164 -0
- package/dist/commonjs/v3/ZodError.js +137 -0
- package/dist/commonjs/v3/benchmarks/datetime.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/datetime.js +54 -0
- package/dist/commonjs/v3/benchmarks/discriminatedUnion.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/discriminatedUnion.js +79 -0
- package/dist/commonjs/v3/benchmarks/index.d.ts +1 -0
- package/dist/commonjs/v3/benchmarks/index.js +59 -0
- package/dist/commonjs/v3/benchmarks/ipv4.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/ipv4.js +54 -0
- package/dist/commonjs/v3/benchmarks/object.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/object.js +70 -0
- package/dist/commonjs/v3/benchmarks/primitives.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/primitives.js +159 -0
- package/dist/commonjs/v3/benchmarks/realworld.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/realworld.js +56 -0
- package/dist/commonjs/v3/benchmarks/string.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/string.js +55 -0
- package/dist/commonjs/v3/benchmarks/union.d.ts +5 -0
- package/dist/commonjs/v3/benchmarks/union.js +79 -0
- package/dist/commonjs/v3/errors.d.ts +5 -0
- package/dist/commonjs/v3/errors.js +17 -0
- package/dist/commonjs/v3/external.d.ts +6 -0
- package/dist/commonjs/v3/external.js +22 -0
- package/dist/commonjs/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/commonjs/v3/helpers/enumUtil.js +2 -0
- package/dist/commonjs/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/commonjs/v3/helpers/errorUtil.js +9 -0
- package/dist/commonjs/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/commonjs/v3/helpers/parseUtil.js +124 -0
- package/dist/commonjs/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/commonjs/v3/helpers/partialUtil.js +2 -0
- package/dist/commonjs/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/commonjs/v3/helpers/typeAliases.js +2 -0
- package/dist/commonjs/v3/helpers/util.d.ts +85 -0
- package/dist/commonjs/v3/helpers/util.js +137 -0
- package/dist/commonjs/v3/index.d.ts +4 -0
- package/dist/commonjs/v3/index.js +43 -0
- package/dist/commonjs/v3/locales/en.d.ts +3 -0
- package/dist/commonjs/v3/locales/en.js +109 -0
- package/dist/commonjs/v3/standard-schema.d.ts +102 -0
- package/dist/commonjs/v3/standard-schema.js +2 -0
- package/dist/commonjs/v3/tests/Mocker.d.ts +17 -0
- package/dist/commonjs/v3/tests/Mocker.js +57 -0
- package/dist/commonjs/v3/tests/language-server.source.d.ts +70 -0
- package/dist/commonjs/v3/tests/language-server.source.js +81 -0
- package/dist/commonjs/v3/types.d.ts +1031 -0
- package/dist/commonjs/v3/types.js +3795 -0
- package/dist/commonjs/v4/classic/checks.d.ts +1 -0
- package/dist/commonjs/v4/classic/checks.js +32 -0
- package/dist/commonjs/v4/classic/coerce.d.ts +17 -0
- package/dist/commonjs/v4/classic/coerce.js +57 -0
- package/dist/commonjs/v4/classic/compat.d.ts +48 -0
- package/dist/commonjs/v4/classic/compat.js +73 -0
- package/dist/commonjs/v4/classic/errors.d.ts +30 -0
- package/dist/commonjs/v4/classic/errors.js +76 -0
- package/dist/commonjs/v4/classic/external.d.ts +8 -0
- package/dist/commonjs/v4/classic/external.js +68 -0
- package/dist/commonjs/v4/classic/index.d.ts +4 -0
- package/dist/commonjs/v4/classic/index.js +43 -0
- package/dist/commonjs/v4/classic/iso.d.ts +22 -0
- package/dist/commonjs/v4/classic/iso.js +70 -0
- package/dist/commonjs/v4/classic/parse.d.ts +23 -0
- package/dist/commonjs/v4/classic/parse.js +42 -0
- package/dist/commonjs/v4/classic/schemas.d.ts +653 -0
- package/dist/commonjs/v4/classic/schemas.js +1123 -0
- package/dist/commonjs/v4/core/api.d.ts +273 -0
- package/dist/commonjs/v4/core/api.js +1004 -0
- package/dist/commonjs/v4/core/checks.d.ts +277 -0
- package/dist/commonjs/v4/core/checks.js +571 -0
- package/dist/commonjs/v4/core/config.d.ts +9 -0
- package/dist/commonjs/v4/core/config.js +10 -0
- package/dist/commonjs/v4/core/core.d.ts +43 -0
- package/dist/commonjs/v4/core/core.js +59 -0
- package/dist/commonjs/v4/core/doc.d.ts +14 -0
- package/dist/commonjs/v4/core/doc.js +40 -0
- package/dist/commonjs/v4/core/errors.d.ts +204 -0
- package/dist/commonjs/v4/core/errors.js +203 -0
- package/dist/commonjs/v4/core/function.d.ts +35 -0
- package/dist/commonjs/v4/core/function.js +107 -0
- package/dist/commonjs/v4/core/index.d.ts +15 -0
- package/dist/commonjs/v4/core/index.js +54 -0
- package/dist/commonjs/v4/core/json-schema.d.ts +100 -0
- package/dist/commonjs/v4/core/json-schema.js +2 -0
- package/dist/commonjs/v4/core/parse.d.ts +25 -0
- package/dist/commonjs/v4/core/parse.js +97 -0
- package/dist/commonjs/v4/core/regexes.d.ts +62 -0
- package/dist/commonjs/v4/core/regexes.js +101 -0
- package/dist/commonjs/v4/core/registries.d.ts +32 -0
- package/dist/commonjs/v4/core/registries.js +47 -0
- package/dist/commonjs/v4/core/schemas.d.ts +975 -0
- package/dist/commonjs/v4/core/schemas.js +1781 -0
- package/dist/commonjs/v4/core/standard-schema.d.ts +55 -0
- package/dist/commonjs/v4/core/standard-schema.js +2 -0
- package/dist/commonjs/v4/core/to-json-schema.d.ts +84 -0
- package/dist/commonjs/v4/core/to-json-schema.js +670 -0
- package/dist/commonjs/v4/core/util.d.ts +186 -0
- package/dist/commonjs/v4/core/util.js +515 -0
- package/dist/commonjs/v4/core/versions.d.ts +5 -0
- package/dist/commonjs/v4/core/versions.js +8 -0
- package/dist/commonjs/v4/core/zsf.d.ts +91 -0
- package/dist/commonjs/v4/core/zsf.js +172 -0
- package/dist/commonjs/v4/index.d.ts +3 -0
- package/dist/commonjs/v4/index.js +22 -0
- package/dist/commonjs/v4/locales/ar.d.ts +7 -0
- package/dist/commonjs/v4/locales/ar.js +153 -0
- package/dist/commonjs/v4/locales/az.d.ts +7 -0
- package/dist/commonjs/v4/locales/az.js +152 -0
- package/dist/commonjs/v4/locales/be.d.ts +7 -0
- package/dist/commonjs/v4/locales/be.js +201 -0
- package/dist/commonjs/v4/locales/ca.d.ts +7 -0
- package/dist/commonjs/v4/locales/ca.js +155 -0
- package/dist/commonjs/v4/locales/cs.d.ts +7 -0
- package/dist/commonjs/v4/locales/cs.js +172 -0
- package/dist/commonjs/v4/locales/de.d.ts +7 -0
- package/dist/commonjs/v4/locales/de.js +153 -0
- package/dist/commonjs/v4/locales/en.d.ts +7 -0
- package/dist/commonjs/v4/locales/en.js +155 -0
- package/dist/commonjs/v4/locales/es.d.ts +7 -0
- package/dist/commonjs/v4/locales/es.js +154 -0
- package/dist/commonjs/v4/locales/fa.d.ts +7 -0
- package/dist/commonjs/v4/locales/fa.js +159 -0
- package/dist/commonjs/v4/locales/fi.d.ts +7 -0
- package/dist/commonjs/v4/locales/fi.js +159 -0
- package/dist/commonjs/v4/locales/fr.d.ts +7 -0
- package/dist/commonjs/v4/locales/fr.js +153 -0
- package/dist/commonjs/v4/locales/frCA.d.ts +7 -0
- package/dist/commonjs/v4/locales/frCA.js +154 -0
- package/dist/commonjs/v4/locales/he.d.ts +7 -0
- package/dist/commonjs/v4/locales/he.js +154 -0
- package/dist/commonjs/v4/locales/hu.d.ts +7 -0
- package/dist/commonjs/v4/locales/hu.js +154 -0
- package/dist/commonjs/v4/locales/id.d.ts +7 -0
- package/dist/commonjs/v4/locales/id.js +153 -0
- package/dist/commonjs/v4/locales/index.d.ts +34 -0
- package/dist/commonjs/v4/locales/index.js +74 -0
- package/dist/commonjs/v4/locales/it.d.ts +7 -0
- package/dist/commonjs/v4/locales/it.js +154 -0
- package/dist/commonjs/v4/locales/ja.d.ts +7 -0
- package/dist/commonjs/v4/locales/ja.js +152 -0
- package/dist/commonjs/v4/locales/ko.d.ts +7 -0
- package/dist/commonjs/v4/locales/ko.js +158 -0
- package/dist/commonjs/v4/locales/mk.d.ts +7 -0
- package/dist/commonjs/v4/locales/mk.js +155 -0
- package/dist/commonjs/v4/locales/ms.d.ts +7 -0
- package/dist/commonjs/v4/locales/ms.js +153 -0
- package/dist/commonjs/v4/locales/no.d.ts +7 -0
- package/dist/commonjs/v4/locales/no.js +153 -0
- package/dist/commonjs/v4/locales/ota.d.ts +7 -0
- package/dist/commonjs/v4/locales/ota.js +154 -0
- package/dist/commonjs/v4/locales/pl.d.ts +7 -0
- package/dist/commonjs/v4/locales/pl.js +154 -0
- package/dist/commonjs/v4/locales/pt.d.ts +7 -0
- package/dist/commonjs/v4/locales/pt.js +153 -0
- package/dist/commonjs/v4/locales/ru.d.ts +7 -0
- package/dist/commonjs/v4/locales/ru.js +201 -0
- package/dist/commonjs/v4/locales/sl.d.ts +7 -0
- package/dist/commonjs/v4/locales/sl.js +154 -0
- package/dist/commonjs/v4/locales/ta.d.ts +7 -0
- package/dist/commonjs/v4/locales/ta.js +154 -0
- package/dist/commonjs/v4/locales/th.d.ts +7 -0
- package/dist/commonjs/v4/locales/th.js +154 -0
- package/dist/commonjs/v4/locales/tr.d.ts +7 -0
- package/dist/commonjs/v4/locales/tr.js +152 -0
- package/dist/commonjs/v4/locales/ua.d.ts +7 -0
- package/dist/commonjs/v4/locales/ua.js +154 -0
- package/dist/commonjs/v4/locales/ur.d.ts +7 -0
- package/dist/commonjs/v4/locales/ur.js +154 -0
- package/dist/commonjs/v4/locales/vi.d.ts +7 -0
- package/dist/commonjs/v4/locales/vi.js +153 -0
- package/dist/commonjs/v4/locales/zh-CN.d.ts +7 -0
- package/dist/commonjs/v4/locales/zh-CN.js +153 -0
- package/dist/commonjs/v4/locales/zh-tw.d.ts +7 -0
- package/dist/commonjs/v4/locales/zh-tw.js +154 -0
- package/dist/commonjs/v4/mini/checks.d.ts +1 -0
- package/dist/commonjs/v4/mini/checks.js +34 -0
- package/dist/commonjs/v4/mini/coerce.d.ts +7 -0
- package/dist/commonjs/v4/mini/coerce.js +57 -0
- package/dist/commonjs/v4/mini/external.d.ts +7 -0
- package/dist/commonjs/v4/mini/external.js +61 -0
- package/dist/commonjs/v4/mini/index.d.ts +3 -0
- package/dist/commonjs/v4/mini/index.js +42 -0
- package/dist/commonjs/v4/mini/iso.d.ts +22 -0
- package/dist/commonjs/v4/mini/iso.js +70 -0
- package/dist/commonjs/v4/mini/parse.d.ts +1 -0
- package/dist/commonjs/v4/mini/parse.js +8 -0
- package/dist/commonjs/v4/mini/schemas.d.ts +405 -0
- package/dist/commonjs/v4/mini/schemas.js +852 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/v3/ZodError.d.ts +164 -0
- package/dist/esm/v3/ZodError.js +132 -0
- package/dist/esm/v3/benchmarks/datetime.d.ts +5 -0
- package/dist/esm/v3/benchmarks/datetime.js +49 -0
- package/dist/esm/v3/benchmarks/discriminatedUnion.d.ts +5 -0
- package/dist/esm/v3/benchmarks/discriminatedUnion.js +74 -0
- package/dist/esm/v3/benchmarks/index.d.ts +1 -0
- package/dist/esm/v3/benchmarks/index.js +54 -0
- package/dist/esm/v3/benchmarks/ipv4.d.ts +5 -0
- package/dist/esm/v3/benchmarks/ipv4.js +49 -0
- package/dist/esm/v3/benchmarks/object.d.ts +5 -0
- package/dist/esm/v3/benchmarks/object.js +65 -0
- package/dist/esm/v3/benchmarks/primitives.d.ts +5 -0
- package/dist/esm/v3/benchmarks/primitives.js +154 -0
- package/dist/esm/v3/benchmarks/realworld.d.ts +5 -0
- package/dist/esm/v3/benchmarks/realworld.js +51 -0
- package/dist/esm/v3/benchmarks/string.d.ts +5 -0
- package/dist/esm/v3/benchmarks/string.js +50 -0
- package/dist/esm/v3/benchmarks/union.d.ts +5 -0
- package/dist/esm/v3/benchmarks/union.js +74 -0
- package/dist/esm/v3/errors.d.ts +5 -0
- package/dist/esm/v3/errors.js +9 -0
- package/dist/esm/v3/external.d.ts +6 -0
- package/dist/esm/v3/external.js +6 -0
- package/dist/esm/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/esm/v3/helpers/enumUtil.js +1 -0
- package/dist/esm/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/esm/v3/helpers/errorUtil.js +6 -0
- package/dist/esm/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/esm/v3/helpers/parseUtil.js +109 -0
- package/dist/esm/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/esm/v3/helpers/partialUtil.js +1 -0
- package/dist/esm/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/esm/v3/helpers/typeAliases.js +1 -0
- package/dist/esm/v3/helpers/util.d.ts +85 -0
- package/dist/esm/v3/helpers/util.js +133 -0
- package/dist/esm/v3/index.d.ts +4 -0
- package/dist/esm/v3/index.js +4 -0
- package/dist/esm/v3/locales/en.d.ts +3 -0
- package/dist/esm/v3/locales/en.js +107 -0
- package/dist/esm/v3/standard-schema.d.ts +102 -0
- package/dist/esm/v3/standard-schema.js +1 -0
- package/dist/esm/v3/tests/Mocker.d.ts +17 -0
- package/dist/esm/v3/tests/Mocker.js +53 -0
- package/dist/esm/v3/tests/language-server.source.d.ts +70 -0
- package/dist/esm/v3/tests/language-server.source.js +45 -0
- package/dist/esm/v3/types.d.ts +1031 -0
- package/dist/esm/v3/types.js +3713 -0
- package/dist/esm/v4/classic/checks.d.ts +1 -0
- package/dist/esm/v4/classic/checks.js +1 -0
- package/dist/esm/v4/classic/coerce.d.ts +17 -0
- package/dist/esm/v4/classic/coerce.js +17 -0
- package/dist/esm/v4/classic/compat.d.ts +48 -0
- package/dist/esm/v4/classic/compat.js +33 -0
- package/dist/esm/v4/classic/errors.d.ts +30 -0
- package/dist/esm/v4/classic/errors.js +40 -0
- package/dist/esm/v4/classic/external.d.ts +8 -0
- package/dist/esm/v4/classic/external.js +11 -0
- package/dist/esm/v4/classic/index.d.ts +4 -0
- package/dist/esm/v4/classic/index.js +4 -0
- package/dist/esm/v4/classic/iso.d.ts +22 -0
- package/dist/esm/v4/classic/iso.js +30 -0
- package/dist/esm/v4/classic/parse.d.ts +23 -0
- package/dist/esm/v4/classic/parse.js +6 -0
- package/dist/esm/v4/classic/schemas.d.ts +653 -0
- package/dist/esm/v4/classic/schemas.js +1012 -0
- package/dist/esm/v4/core/api.d.ts +273 -0
- package/dist/esm/v4/core/api.js +867 -0
- package/dist/esm/v4/core/checks.d.ts +277 -0
- package/dist/esm/v4/core/checks.js +535 -0
- package/dist/esm/v4/core/config.d.ts +9 -0
- package/dist/esm/v4/core/config.js +6 -0
- package/dist/esm/v4/core/core.d.ts +43 -0
- package/dist/esm/v4/core/core.js +53 -0
- package/dist/esm/v4/core/doc.d.ts +14 -0
- package/dist/esm/v4/core/doc.js +36 -0
- package/dist/esm/v4/core/errors.d.ts +204 -0
- package/dist/esm/v4/core/errors.js +195 -0
- package/dist/esm/v4/core/function.d.ts +35 -0
- package/dist/esm/v4/core/function.js +70 -0
- package/dist/esm/v4/core/index.d.ts +15 -0
- package/dist/esm/v4/core/index.js +15 -0
- package/dist/esm/v4/core/json-schema.d.ts +100 -0
- package/dist/esm/v4/core/json-schema.js +1 -0
- package/dist/esm/v4/core/parse.d.ts +25 -0
- package/dist/esm/v4/core/parse.js +57 -0
- package/dist/esm/v4/core/regexes.d.ts +62 -0
- package/dist/esm/v4/core/regexes.js +93 -0
- package/dist/esm/v4/core/registries.d.ts +32 -0
- package/dist/esm/v4/core/registries.js +42 -0
- package/dist/esm/v4/core/schemas.d.ts +975 -0
- package/dist/esm/v4/core/schemas.js +1740 -0
- package/dist/esm/v4/core/standard-schema.d.ts +55 -0
- package/dist/esm/v4/core/standard-schema.js +1 -0
- package/dist/esm/v4/core/to-json-schema.d.ts +84 -0
- package/dist/esm/v4/core/to-json-schema.js +665 -0
- package/dist/esm/v4/core/util.d.ts +186 -0
- package/dist/esm/v4/core/util.js +469 -0
- package/dist/esm/v4/core/versions.d.ts +5 -0
- package/dist/esm/v4/core/versions.js +5 -0
- package/dist/esm/v4/core/zsf.d.ts +91 -0
- package/dist/esm/v4/core/zsf.js +171 -0
- package/dist/esm/v4/index.d.ts +3 -0
- package/dist/esm/v4/index.js +3 -0
- package/dist/esm/v4/locales/ar.d.ts +7 -0
- package/dist/esm/v4/locales/ar.js +115 -0
- package/dist/esm/v4/locales/az.d.ts +7 -0
- package/dist/esm/v4/locales/az.js +114 -0
- package/dist/esm/v4/locales/be.d.ts +7 -0
- package/dist/esm/v4/locales/be.js +163 -0
- package/dist/esm/v4/locales/ca.d.ts +7 -0
- package/dist/esm/v4/locales/ca.js +117 -0
- package/dist/esm/v4/locales/cs.d.ts +7 -0
- package/dist/esm/v4/locales/cs.js +134 -0
- package/dist/esm/v4/locales/de.d.ts +7 -0
- package/dist/esm/v4/locales/de.js +115 -0
- package/dist/esm/v4/locales/en.d.ts +7 -0
- package/dist/esm/v4/locales/en.js +117 -0
- package/dist/esm/v4/locales/es.d.ts +7 -0
- package/dist/esm/v4/locales/es.js +116 -0
- package/dist/esm/v4/locales/fa.d.ts +7 -0
- package/dist/esm/v4/locales/fa.js +121 -0
- package/dist/esm/v4/locales/fi.d.ts +7 -0
- package/dist/esm/v4/locales/fi.js +121 -0
- package/dist/esm/v4/locales/fr.d.ts +7 -0
- package/dist/esm/v4/locales/fr.js +115 -0
- package/dist/esm/v4/locales/frCA.d.ts +7 -0
- package/dist/esm/v4/locales/frCA.js +116 -0
- package/dist/esm/v4/locales/he.d.ts +7 -0
- package/dist/esm/v4/locales/he.js +116 -0
- package/dist/esm/v4/locales/hu.d.ts +7 -0
- package/dist/esm/v4/locales/hu.js +116 -0
- package/dist/esm/v4/locales/id.d.ts +7 -0
- package/dist/esm/v4/locales/id.js +115 -0
- package/dist/esm/v4/locales/index.d.ts +34 -0
- package/dist/esm/v4/locales/index.js +34 -0
- package/dist/esm/v4/locales/it.d.ts +7 -0
- package/dist/esm/v4/locales/it.js +116 -0
- package/dist/esm/v4/locales/ja.d.ts +7 -0
- package/dist/esm/v4/locales/ja.js +114 -0
- package/dist/esm/v4/locales/ko.d.ts +7 -0
- package/dist/esm/v4/locales/ko.js +120 -0
- package/dist/esm/v4/locales/mk.d.ts +7 -0
- package/dist/esm/v4/locales/mk.js +117 -0
- package/dist/esm/v4/locales/ms.d.ts +7 -0
- package/dist/esm/v4/locales/ms.js +115 -0
- package/dist/esm/v4/locales/no.d.ts +7 -0
- package/dist/esm/v4/locales/no.js +115 -0
- package/dist/esm/v4/locales/ota.d.ts +7 -0
- package/dist/esm/v4/locales/ota.js +116 -0
- package/dist/esm/v4/locales/pl.d.ts +7 -0
- package/dist/esm/v4/locales/pl.js +116 -0
- package/dist/esm/v4/locales/pt.d.ts +7 -0
- package/dist/esm/v4/locales/pt.js +115 -0
- package/dist/esm/v4/locales/ru.d.ts +7 -0
- package/dist/esm/v4/locales/ru.js +163 -0
- package/dist/esm/v4/locales/sl.d.ts +7 -0
- package/dist/esm/v4/locales/sl.js +116 -0
- package/dist/esm/v4/locales/ta.d.ts +7 -0
- package/dist/esm/v4/locales/ta.js +116 -0
- package/dist/esm/v4/locales/th.d.ts +7 -0
- package/dist/esm/v4/locales/th.js +116 -0
- package/dist/esm/v4/locales/tr.d.ts +7 -0
- package/dist/esm/v4/locales/tr.js +114 -0
- package/dist/esm/v4/locales/ua.d.ts +7 -0
- package/dist/esm/v4/locales/ua.js +116 -0
- package/dist/esm/v4/locales/ur.d.ts +7 -0
- package/dist/esm/v4/locales/ur.js +116 -0
- package/dist/esm/v4/locales/vi.d.ts +7 -0
- package/dist/esm/v4/locales/vi.js +115 -0
- package/dist/esm/v4/locales/zh-CN.d.ts +7 -0
- package/dist/esm/v4/locales/zh-CN.js +115 -0
- package/dist/esm/v4/locales/zh-tw.d.ts +7 -0
- package/dist/esm/v4/locales/zh-tw.js +116 -0
- package/dist/esm/v4/mini/checks.d.ts +1 -0
- package/dist/esm/v4/mini/checks.js +1 -0
- package/dist/esm/v4/mini/coerce.d.ts +7 -0
- package/dist/esm/v4/mini/coerce.js +17 -0
- package/dist/esm/v4/mini/external.d.ts +7 -0
- package/dist/esm/v4/mini/external.js +7 -0
- package/dist/esm/v4/mini/index.d.ts +3 -0
- package/dist/esm/v4/mini/index.js +3 -0
- package/dist/esm/v4/mini/iso.d.ts +22 -0
- package/dist/esm/v4/mini/iso.js +30 -0
- package/dist/esm/v4/mini/parse.d.ts +1 -0
- package/dist/esm/v4/mini/parse.js +1 -0
- package/dist/esm/v4/mini/schemas.d.ts +405 -0
- package/dist/esm/v4/mini/schemas.js +738 -0
- package/package.json +1 -1
- package/src/v4/core/schemas.ts +0 -2
- package/src/v4/core/to-json-schema.ts +1 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type * as checks from "./checks.js";
|
|
2
|
+
import type { $ZodConfig } from "./core.js";
|
|
3
|
+
import type * as errors from "./errors.js";
|
|
4
|
+
import type * as schemas from "./schemas.js";
|
|
5
|
+
export type JSONType = string | number | boolean | null | JSONType[] | {
|
|
6
|
+
[key: string]: JSONType;
|
|
7
|
+
};
|
|
8
|
+
export type JWTAlgorithm = "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | "PS256" | "PS384" | "PS512";
|
|
9
|
+
export type IPVersion = "v4" | "v6";
|
|
10
|
+
export type MimeTypes = "application/json" | "application/xml" | "application/x-www-form-urlencoded" | "application/javascript" | "application/pdf" | "application/zip" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/octet-stream" | "application/graphql" | "text/html" | "text/plain" | "text/css" | "text/javascript" | "text/csv" | "image/png" | "image/jpeg" | "image/gif" | "image/svg+xml" | "image/webp" | "audio/mpeg" | "audio/ogg" | "audio/wav" | "audio/webm" | "video/mp4" | "video/webm" | "video/ogg" | "font/woff" | "font/woff2" | "font/ttf" | "font/otf" | "multipart/form-data" | (string & {});
|
|
11
|
+
export type ParsedTypes = "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" | "file" | "date" | "array" | "map" | "set" | "nan" | "null" | "promise";
|
|
12
|
+
export type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false;
|
|
13
|
+
export type AssertNotEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? false : true;
|
|
14
|
+
export type AssertExtends<T, U> = T extends U ? T : never;
|
|
15
|
+
export type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
16
|
+
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
17
|
+
export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>;
|
|
18
|
+
export type MakePartial<T, K extends keyof T> = Omit<T, K> & InexactPartial<Pick<T, K>>;
|
|
19
|
+
export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
20
|
+
export type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>;
|
|
21
|
+
export type NoUndefined<T> = T extends undefined ? never : T;
|
|
22
|
+
export type Whatever = {} | undefined | null;
|
|
23
|
+
export type LoosePartial<T extends object> = InexactPartial<T> & {
|
|
24
|
+
[k: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
export type Mask<Keys extends PropertyKey> = {
|
|
27
|
+
[K in Keys]?: true;
|
|
28
|
+
};
|
|
29
|
+
export type Writeable<T> = {
|
|
30
|
+
-readonly [P in keyof T]: T[P];
|
|
31
|
+
} & {};
|
|
32
|
+
export type InexactPartial<T> = {
|
|
33
|
+
[P in keyof T]?: T[P] | undefined;
|
|
34
|
+
};
|
|
35
|
+
export type EmptyObject = Record<string, never>;
|
|
36
|
+
export type BuiltIn = (((...args: any[]) => any) | (new (...args: any[]) => any)) | {
|
|
37
|
+
readonly [Symbol.toStringTag]: string;
|
|
38
|
+
} | Date | Error | Generator | Promise<unknown> | RegExp;
|
|
39
|
+
export type MakeReadonly<T> = T extends Map<infer K, infer V> ? ReadonlyMap<K, V> : T extends Set<infer V> ? ReadonlySet<V> : T extends [infer Head, ...infer Tail] ? readonly [Head, ...Tail] : T extends Array<infer V> ? ReadonlyArray<V> : T extends BuiltIn ? T : Readonly<T>;
|
|
40
|
+
export type SomeObject = Record<PropertyKey, any>;
|
|
41
|
+
export type Identity<T> = T;
|
|
42
|
+
export type Flatten<T> = Identity<{
|
|
43
|
+
[k in keyof T]: T[k];
|
|
44
|
+
}>;
|
|
45
|
+
export type Mapped<T> = {
|
|
46
|
+
[k in keyof T]: T[k];
|
|
47
|
+
};
|
|
48
|
+
export type Prettify<T> = {
|
|
49
|
+
[K in keyof T]: T[K];
|
|
50
|
+
} & {};
|
|
51
|
+
export type NoNeverKeys<T> = {
|
|
52
|
+
[k in keyof T]: [T[k]] extends [never] ? never : k;
|
|
53
|
+
}[keyof T];
|
|
54
|
+
export type NoNever<T> = Identity<{
|
|
55
|
+
[k in NoNeverKeys<T>]: k extends keyof T ? T[k] : never;
|
|
56
|
+
}>;
|
|
57
|
+
export type Extend<A extends SomeObject, B extends SomeObject> = Flatten<keyof A & keyof B extends never ? A & B : {
|
|
58
|
+
[K in keyof A as K extends keyof B ? never : K]: A[K];
|
|
59
|
+
} & {
|
|
60
|
+
[K in keyof B]: B[K];
|
|
61
|
+
}>;
|
|
62
|
+
export type TupleItems = ReadonlyArray<schemas.$ZodType>;
|
|
63
|
+
export type AnyFunc = (...args: any[]) => any;
|
|
64
|
+
export type IsProp<T, K extends keyof T> = T[K] extends AnyFunc ? never : K;
|
|
65
|
+
export type MaybeAsync<T> = T | Promise<T>;
|
|
66
|
+
export type KeyOf<T> = keyof OmitIndexSignature<T>;
|
|
67
|
+
export type OmitIndexSignature<T> = {
|
|
68
|
+
[K in keyof T as string extends K ? never : K extends string ? K : never]: T[K];
|
|
69
|
+
};
|
|
70
|
+
export type ExtractIndexSignature<T> = {
|
|
71
|
+
[K in keyof T as string extends K ? K : K extends string ? never : K]: T[K];
|
|
72
|
+
};
|
|
73
|
+
export type Keys<T extends object> = keyof OmitIndexSignature<T>;
|
|
74
|
+
export type SchemaClass<T extends schemas.$ZodType> = {
|
|
75
|
+
new (def: T["_zod"]["def"]): T;
|
|
76
|
+
};
|
|
77
|
+
export type EnumValue = string | number;
|
|
78
|
+
export type EnumLike = Readonly<Record<string, EnumValue>>;
|
|
79
|
+
export type ToEnum<T extends EnumValue> = Flatten<{
|
|
80
|
+
[k in T]: k;
|
|
81
|
+
}>;
|
|
82
|
+
export type KeysEnum<T extends object> = ToEnum<Exclude<keyof T, symbol>>;
|
|
83
|
+
export type KeysArray<T extends object> = Flatten<(keyof T & string)[]>;
|
|
84
|
+
export type Literal = string | number | bigint | boolean | null | undefined;
|
|
85
|
+
export type LiteralArray = Array<Literal>;
|
|
86
|
+
export type Primitive = string | number | symbol | bigint | boolean | null | undefined;
|
|
87
|
+
export type PrimitiveArray = Array<Primitive>;
|
|
88
|
+
export type HasSize = {
|
|
89
|
+
size: number;
|
|
90
|
+
};
|
|
91
|
+
export type HasLength = {
|
|
92
|
+
length: number;
|
|
93
|
+
};
|
|
94
|
+
export type Numeric = number | bigint | Date;
|
|
95
|
+
export type SafeParseResult<T> = SafeParseSuccess<T> | SafeParseError<T>;
|
|
96
|
+
export type SafeParseSuccess<T> = {
|
|
97
|
+
success: true;
|
|
98
|
+
data: T;
|
|
99
|
+
error?: never;
|
|
100
|
+
};
|
|
101
|
+
export type SafeParseError<T> = {
|
|
102
|
+
success: false;
|
|
103
|
+
data?: never;
|
|
104
|
+
error: errors.$ZodError<T>;
|
|
105
|
+
};
|
|
106
|
+
export type DiscriminatorMapElement = {
|
|
107
|
+
values: Set<Primitive>;
|
|
108
|
+
maps: DiscriminatorMap[];
|
|
109
|
+
};
|
|
110
|
+
export type DiscriminatorMap = Map<PropertyKey, DiscriminatorMapElement>;
|
|
111
|
+
export type PrimitiveSet = Set<Primitive>;
|
|
112
|
+
export declare function assertEqual<A, B>(val: AssertEqual<A, B>): AssertEqual<A, B>;
|
|
113
|
+
export declare function assertNotEqual<A, B>(val: AssertNotEqual<A, B>): AssertNotEqual<A, B>;
|
|
114
|
+
export declare function assertIs<T>(_arg: T): void;
|
|
115
|
+
export declare function assertNever(_x: never): never;
|
|
116
|
+
export declare function assert<T>(_: any): asserts _ is T;
|
|
117
|
+
export declare function getValidEnumValues(obj: any): any;
|
|
118
|
+
export declare function joinValues<T extends Primitive[]>(array: T, separator?: string): string;
|
|
119
|
+
export declare function jsonStringifyReplacer(_: string, value: any): any;
|
|
120
|
+
export declare function cached<T>(getter: () => T): {
|
|
121
|
+
value: T;
|
|
122
|
+
};
|
|
123
|
+
export declare function nullish(input: any): boolean;
|
|
124
|
+
export declare function cleanRegex(source: string): string;
|
|
125
|
+
export declare function floatSafeRemainder(val: number, step: number): number;
|
|
126
|
+
export declare function defineLazy<T, K extends keyof T>(object: T, key: K, getter: () => T[K]): void;
|
|
127
|
+
export declare function assignProp<T extends object, K extends PropertyKey>(target: T, prop: K, value: K extends keyof T ? T[K] : any): void;
|
|
128
|
+
export declare function getElementAtPath(obj: any, path: (string | number)[] | null | undefined): any;
|
|
129
|
+
export declare function promiseAllObject<T extends object>(promisesObj: T): Promise<{
|
|
130
|
+
[k in keyof T]: Awaited<T[k]>;
|
|
131
|
+
}>;
|
|
132
|
+
export declare function randomString(length?: number): string;
|
|
133
|
+
export declare function esc(str: string): string;
|
|
134
|
+
export declare function isObject(data: any): data is Record<PropertyKey, unknown>;
|
|
135
|
+
export declare const allowsEval: {
|
|
136
|
+
value: boolean;
|
|
137
|
+
};
|
|
138
|
+
export declare function isPlainObject(data: any): data is Record<PropertyKey, unknown>;
|
|
139
|
+
export declare function numKeys(data: any): number;
|
|
140
|
+
export declare const getParsedType: (data: any) => ParsedTypes;
|
|
141
|
+
export declare const propertyKeyTypes: Set<string>;
|
|
142
|
+
export declare const primitiveTypes: Set<string>;
|
|
143
|
+
export declare function escapeRegex(str: string): string;
|
|
144
|
+
export declare function clone<T extends schemas.$ZodType>(inst: T, def?: T["_zod"]["def"], params?: {
|
|
145
|
+
parent: boolean;
|
|
146
|
+
}): T;
|
|
147
|
+
export type EmptyToNever<T> = keyof T extends never ? never : T;
|
|
148
|
+
export type Normalize<T> = T extends undefined ? never : T extends Record<any, any> ? Flatten<{
|
|
149
|
+
[k in keyof Omit<T, "error" | "message">]: T[k];
|
|
150
|
+
} & ("error" extends keyof T ? {
|
|
151
|
+
error?: Exclude<T["error"], string>;
|
|
152
|
+
} : unknown)> : never;
|
|
153
|
+
export declare function normalizeParams<T>(_params: T): Normalize<T>;
|
|
154
|
+
export declare function createTransparentProxy<T extends object>(getter: () => T): T;
|
|
155
|
+
export declare function stringifyPrimitive(value: any): string;
|
|
156
|
+
export declare function optionalKeys(shape: schemas.$ZodShape): string[];
|
|
157
|
+
export type CleanKey<T extends PropertyKey> = T extends `?${infer K}` ? K : T extends `${infer K}?` ? K : T;
|
|
158
|
+
export type ToCleanMap<T extends schemas.$ZodLooseShape> = {
|
|
159
|
+
[k in keyof T]: k extends `?${infer K}` ? K : k extends `${infer K}?` ? K : k;
|
|
160
|
+
};
|
|
161
|
+
export type FromCleanMap<T extends schemas.$ZodLooseShape> = {
|
|
162
|
+
[k in keyof T as k extends `?${infer K}` ? K : k extends `${infer K}?` ? K : k]: k;
|
|
163
|
+
};
|
|
164
|
+
export declare const NUMBER_FORMAT_RANGES: Record<checks.$ZodNumberFormats, [number, number]>;
|
|
165
|
+
export declare const BIGINT_FORMAT_RANGES: Record<checks.$ZodBigIntFormats, [bigint, bigint]>;
|
|
166
|
+
export declare function pick(schema: schemas.$ZodObject, mask: Record<string, unknown>): any;
|
|
167
|
+
export declare function omit(schema: schemas.$ZodObject, mask: object): any;
|
|
168
|
+
export declare function extend(schema: schemas.$ZodObject, shape: schemas.$ZodShape): any;
|
|
169
|
+
export declare function merge(a: schemas.$ZodObject, b: schemas.$ZodObject): any;
|
|
170
|
+
export declare function partial(Class: SchemaClass<schemas.$ZodOptional> | null, schema: schemas.$ZodObject, mask: object | undefined): any;
|
|
171
|
+
export declare function required(Class: SchemaClass<schemas.$ZodNonOptional>, schema: schemas.$ZodObject, mask: object | undefined): any;
|
|
172
|
+
export type Constructor<T, Def extends any[] = any[]> = new (...args: Def) => T;
|
|
173
|
+
export declare function aborted(x: schemas.ParsePayload, startIndex?: number): boolean;
|
|
174
|
+
export declare function prefixIssues(path: PropertyKey, issues: errors.$ZodRawIssue[]): errors.$ZodRawIssue[];
|
|
175
|
+
export declare function unwrapMessage(message: string | {
|
|
176
|
+
message: string;
|
|
177
|
+
} | undefined | null): string | undefined;
|
|
178
|
+
export declare function finalizeIssue(iss: errors.$ZodRawIssue, ctx: schemas.ParseContextInternal | undefined, config: $ZodConfig): errors.$ZodIssue;
|
|
179
|
+
export declare function getSizableOrigin(input: any): "set" | "map" | "file" | "unknown";
|
|
180
|
+
export declare function getLengthableOrigin(input: any): "array" | "string" | "unknown";
|
|
181
|
+
export declare function issue(_iss: string, input: any, inst: any): errors.$ZodRawIssue;
|
|
182
|
+
export declare function issue(_iss: errors.$ZodRawIssue): errors.$ZodRawIssue;
|
|
183
|
+
export declare function cleanEnum(obj: Record<string, EnumValue>): EnumValue[];
|
|
184
|
+
export declare abstract class Class {
|
|
185
|
+
constructor(..._args: any[]);
|
|
186
|
+
}
|
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
// functions
|
|
2
|
+
export function assertEqual(val) {
|
|
3
|
+
return val;
|
|
4
|
+
}
|
|
5
|
+
export function assertNotEqual(val) {
|
|
6
|
+
return val;
|
|
7
|
+
}
|
|
8
|
+
export function assertIs(_arg) { }
|
|
9
|
+
export function assertNever(_x) {
|
|
10
|
+
throw new Error();
|
|
11
|
+
}
|
|
12
|
+
export function assert(_) { }
|
|
13
|
+
export function getValidEnumValues(obj) {
|
|
14
|
+
const validKeys = Object.keys(obj).filter((k) => typeof obj[obj[k]] !== "number");
|
|
15
|
+
const filtered = {};
|
|
16
|
+
for (const k of validKeys) {
|
|
17
|
+
filtered[k] = obj[k];
|
|
18
|
+
}
|
|
19
|
+
return Object.values(filtered);
|
|
20
|
+
}
|
|
21
|
+
export function joinValues(array, separator = "|") {
|
|
22
|
+
return array.map((val) => stringifyPrimitive(val)).join(separator);
|
|
23
|
+
}
|
|
24
|
+
export function jsonStringifyReplacer(_, value) {
|
|
25
|
+
if (typeof value === "bigint")
|
|
26
|
+
return value.toString();
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
export function cached(getter) {
|
|
30
|
+
const set = false;
|
|
31
|
+
return {
|
|
32
|
+
get value() {
|
|
33
|
+
if (!set) {
|
|
34
|
+
const value = getter();
|
|
35
|
+
Object.defineProperty(this, "value", { value });
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
throw new Error("cached value already set");
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function nullish(input) {
|
|
43
|
+
return input === null || input === undefined;
|
|
44
|
+
}
|
|
45
|
+
export function cleanRegex(source) {
|
|
46
|
+
const start = source.startsWith("^") ? 1 : 0;
|
|
47
|
+
const end = source.endsWith("$") ? source.length - 1 : source.length;
|
|
48
|
+
return source.slice(start, end);
|
|
49
|
+
}
|
|
50
|
+
export function floatSafeRemainder(val, step) {
|
|
51
|
+
const valDecCount = (val.toString().split(".")[1] || "").length;
|
|
52
|
+
const stepDecCount = (step.toString().split(".")[1] || "").length;
|
|
53
|
+
const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
|
|
54
|
+
const valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
|
|
55
|
+
const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
|
|
56
|
+
return (valInt % stepInt) / 10 ** decCount;
|
|
57
|
+
}
|
|
58
|
+
export function defineLazy(object, key, getter) {
|
|
59
|
+
const set = false;
|
|
60
|
+
Object.defineProperty(object, key, {
|
|
61
|
+
get() {
|
|
62
|
+
if (!set) {
|
|
63
|
+
const value = getter();
|
|
64
|
+
object[key] = value;
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
throw new Error("cached value already set");
|
|
68
|
+
},
|
|
69
|
+
set(v) {
|
|
70
|
+
Object.defineProperty(object, key, {
|
|
71
|
+
value: v,
|
|
72
|
+
// configurable: true,
|
|
73
|
+
});
|
|
74
|
+
// object[key] = v;
|
|
75
|
+
},
|
|
76
|
+
configurable: true,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export function assignProp(target, prop, value) {
|
|
80
|
+
Object.defineProperty(target, prop, {
|
|
81
|
+
value,
|
|
82
|
+
writable: true,
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export function getElementAtPath(obj, path) {
|
|
88
|
+
if (!path)
|
|
89
|
+
return obj;
|
|
90
|
+
return path.reduce((acc, key) => acc?.[key], obj);
|
|
91
|
+
}
|
|
92
|
+
export function promiseAllObject(promisesObj) {
|
|
93
|
+
const keys = Object.keys(promisesObj);
|
|
94
|
+
const promises = keys.map((key) => promisesObj[key]);
|
|
95
|
+
return Promise.all(promises).then((results) => {
|
|
96
|
+
const resolvedObj = {};
|
|
97
|
+
for (let i = 0; i < keys.length; i++) {
|
|
98
|
+
resolvedObj[keys[i]] = results[i];
|
|
99
|
+
}
|
|
100
|
+
return resolvedObj;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
export function randomString(length = 10) {
|
|
104
|
+
const chars = "abcdefghijklmnopqrstuvwxyz";
|
|
105
|
+
let str = "";
|
|
106
|
+
for (let i = 0; i < length; i++) {
|
|
107
|
+
str += chars[Math.floor(Math.random() * chars.length)];
|
|
108
|
+
}
|
|
109
|
+
return str;
|
|
110
|
+
}
|
|
111
|
+
export function esc(str) {
|
|
112
|
+
return JSON.stringify(str);
|
|
113
|
+
}
|
|
114
|
+
export function isObject(data) {
|
|
115
|
+
return typeof data === "object" && data !== null;
|
|
116
|
+
}
|
|
117
|
+
export const allowsEval = cached(() => {
|
|
118
|
+
try {
|
|
119
|
+
const F = Function;
|
|
120
|
+
new F("");
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
catch (_) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
export function isPlainObject(data) {
|
|
128
|
+
return typeof data === "object" && data !== null && Object.getPrototypeOf(data) === Object.prototype;
|
|
129
|
+
}
|
|
130
|
+
export function numKeys(data) {
|
|
131
|
+
let keyCount = 0;
|
|
132
|
+
for (const key in data) {
|
|
133
|
+
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
|
134
|
+
keyCount++;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return keyCount;
|
|
138
|
+
}
|
|
139
|
+
export const getParsedType = (data) => {
|
|
140
|
+
const t = typeof data;
|
|
141
|
+
switch (t) {
|
|
142
|
+
case "undefined":
|
|
143
|
+
return "undefined";
|
|
144
|
+
case "string":
|
|
145
|
+
return "string";
|
|
146
|
+
case "number":
|
|
147
|
+
return Number.isNaN(data) ? "nan" : "number";
|
|
148
|
+
case "boolean":
|
|
149
|
+
return "boolean";
|
|
150
|
+
case "function":
|
|
151
|
+
return "function";
|
|
152
|
+
case "bigint":
|
|
153
|
+
return "bigint";
|
|
154
|
+
case "symbol":
|
|
155
|
+
return "symbol";
|
|
156
|
+
case "object":
|
|
157
|
+
if (Array.isArray(data)) {
|
|
158
|
+
return "array";
|
|
159
|
+
}
|
|
160
|
+
if (data === null) {
|
|
161
|
+
return "null";
|
|
162
|
+
}
|
|
163
|
+
if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
|
|
164
|
+
return "promise";
|
|
165
|
+
}
|
|
166
|
+
if (typeof Map !== "undefined" && data instanceof Map) {
|
|
167
|
+
return "map";
|
|
168
|
+
}
|
|
169
|
+
if (typeof Set !== "undefined" && data instanceof Set) {
|
|
170
|
+
return "set";
|
|
171
|
+
}
|
|
172
|
+
if (typeof Date !== "undefined" && data instanceof Date) {
|
|
173
|
+
return "date";
|
|
174
|
+
}
|
|
175
|
+
if (typeof File !== "undefined" && data instanceof File) {
|
|
176
|
+
return "file";
|
|
177
|
+
}
|
|
178
|
+
return "object";
|
|
179
|
+
default:
|
|
180
|
+
throw new Error(`Unknown data type: ${t}`);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
export const propertyKeyTypes = new Set(["string", "number", "symbol"]);
|
|
184
|
+
export const primitiveTypes = new Set(["string", "number", "bigint", "boolean", "symbol", "undefined"]);
|
|
185
|
+
export function escapeRegex(str) {
|
|
186
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
187
|
+
}
|
|
188
|
+
// zod-specific utils
|
|
189
|
+
export function clone(inst, def, params) {
|
|
190
|
+
const cl = new inst._zod.constr(def ?? inst._zod.def);
|
|
191
|
+
if (!def || params?.parent)
|
|
192
|
+
cl._zod.parent = inst;
|
|
193
|
+
return cl;
|
|
194
|
+
}
|
|
195
|
+
export function normalizeParams(_params) {
|
|
196
|
+
const params = _params;
|
|
197
|
+
if (!params)
|
|
198
|
+
return {};
|
|
199
|
+
if (typeof params === "string")
|
|
200
|
+
return { error: () => params };
|
|
201
|
+
if (params?.message !== undefined) {
|
|
202
|
+
if (params?.error !== undefined)
|
|
203
|
+
throw new Error("Cannot specify both `message` and `error` params");
|
|
204
|
+
params.error = params.message;
|
|
205
|
+
}
|
|
206
|
+
delete params.message;
|
|
207
|
+
if (typeof params.error === "string")
|
|
208
|
+
return { ...params, error: () => params.error };
|
|
209
|
+
return params;
|
|
210
|
+
}
|
|
211
|
+
export function createTransparentProxy(getter) {
|
|
212
|
+
let target;
|
|
213
|
+
return new Proxy({}, {
|
|
214
|
+
get(_, prop, receiver) {
|
|
215
|
+
target ?? (target = getter());
|
|
216
|
+
return Reflect.get(target, prop, receiver);
|
|
217
|
+
},
|
|
218
|
+
set(_, prop, value, receiver) {
|
|
219
|
+
target ?? (target = getter());
|
|
220
|
+
return Reflect.set(target, prop, value, receiver);
|
|
221
|
+
},
|
|
222
|
+
has(_, prop) {
|
|
223
|
+
target ?? (target = getter());
|
|
224
|
+
return Reflect.has(target, prop);
|
|
225
|
+
},
|
|
226
|
+
deleteProperty(_, prop) {
|
|
227
|
+
target ?? (target = getter());
|
|
228
|
+
return Reflect.deleteProperty(target, prop);
|
|
229
|
+
},
|
|
230
|
+
ownKeys(_) {
|
|
231
|
+
target ?? (target = getter());
|
|
232
|
+
return Reflect.ownKeys(target);
|
|
233
|
+
},
|
|
234
|
+
getOwnPropertyDescriptor(_, prop) {
|
|
235
|
+
target ?? (target = getter());
|
|
236
|
+
return Reflect.getOwnPropertyDescriptor(target, prop);
|
|
237
|
+
},
|
|
238
|
+
defineProperty(_, prop, descriptor) {
|
|
239
|
+
target ?? (target = getter());
|
|
240
|
+
return Reflect.defineProperty(target, prop, descriptor);
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
export function stringifyPrimitive(value) {
|
|
245
|
+
if (typeof value === "bigint")
|
|
246
|
+
return value.toString() + "n";
|
|
247
|
+
if (typeof value === "string")
|
|
248
|
+
return `"${value}"`;
|
|
249
|
+
return `${value}`;
|
|
250
|
+
}
|
|
251
|
+
export function optionalKeys(shape) {
|
|
252
|
+
return Object.keys(shape).filter((k) => {
|
|
253
|
+
return shape[k]._zod.optin === "optional";
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
export const NUMBER_FORMAT_RANGES = {
|
|
257
|
+
safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],
|
|
258
|
+
int32: [-2147483648, 2147483647],
|
|
259
|
+
uint32: [0, 4294967295],
|
|
260
|
+
float32: [-3.4028234663852886e38, 3.4028234663852886e38],
|
|
261
|
+
float64: [-Number.MAX_VALUE, Number.MAX_VALUE],
|
|
262
|
+
};
|
|
263
|
+
export const BIGINT_FORMAT_RANGES = {
|
|
264
|
+
int64: [/* @__PURE__*/ BigInt("-9223372036854775808"), /* @__PURE__*/ BigInt("9223372036854775807")],
|
|
265
|
+
uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt("18446744073709551615")],
|
|
266
|
+
};
|
|
267
|
+
export function pick(schema, mask) {
|
|
268
|
+
const newShape = {};
|
|
269
|
+
const currDef = schema._zod.def; //.shape;
|
|
270
|
+
for (const key in mask) {
|
|
271
|
+
if (!(key in currDef.shape)) {
|
|
272
|
+
throw new Error(`Unrecognized key: "${key}"`);
|
|
273
|
+
}
|
|
274
|
+
if (!mask[key])
|
|
275
|
+
continue;
|
|
276
|
+
// pick key
|
|
277
|
+
newShape[key] = currDef.shape[key];
|
|
278
|
+
}
|
|
279
|
+
return clone(schema, {
|
|
280
|
+
...schema._zod.def,
|
|
281
|
+
shape: newShape,
|
|
282
|
+
checks: [],
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
export function omit(schema, mask) {
|
|
286
|
+
const newShape = { ...schema._zod.def.shape };
|
|
287
|
+
const currDef = schema._zod.def; //.shape;
|
|
288
|
+
for (const key in mask) {
|
|
289
|
+
if (!(key in currDef.shape)) {
|
|
290
|
+
throw new Error(`Unrecognized key: "${key}"`);
|
|
291
|
+
}
|
|
292
|
+
if (!mask[key])
|
|
293
|
+
continue;
|
|
294
|
+
delete newShape[key];
|
|
295
|
+
}
|
|
296
|
+
return clone(schema, {
|
|
297
|
+
...schema._zod.def,
|
|
298
|
+
shape: newShape,
|
|
299
|
+
checks: [],
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
export function extend(schema, shape) {
|
|
303
|
+
const def = {
|
|
304
|
+
...schema._zod.def,
|
|
305
|
+
get shape() {
|
|
306
|
+
const _shape = { ...schema._zod.def.shape, ...shape };
|
|
307
|
+
assignProp(this, "shape", _shape); // self-caching
|
|
308
|
+
return _shape;
|
|
309
|
+
},
|
|
310
|
+
checks: [], // delete existing checks
|
|
311
|
+
};
|
|
312
|
+
return clone(schema, def);
|
|
313
|
+
}
|
|
314
|
+
export function merge(a, b) {
|
|
315
|
+
return clone(a, {
|
|
316
|
+
...a._zod.def,
|
|
317
|
+
get shape() {
|
|
318
|
+
const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };
|
|
319
|
+
assignProp(this, "shape", _shape); // self-caching
|
|
320
|
+
return _shape;
|
|
321
|
+
},
|
|
322
|
+
catchall: b._zod.def.catchall,
|
|
323
|
+
checks: [], // delete existing checks
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
export function partial(Class, schema, mask) {
|
|
327
|
+
const oldShape = schema._zod.def.shape;
|
|
328
|
+
const shape = { ...oldShape };
|
|
329
|
+
if (mask) {
|
|
330
|
+
for (const key in mask) {
|
|
331
|
+
if (!(key in oldShape)) {
|
|
332
|
+
throw new Error(`Unrecognized key: "${key}"`);
|
|
333
|
+
}
|
|
334
|
+
if (!mask[key])
|
|
335
|
+
continue;
|
|
336
|
+
shape[key] = Class
|
|
337
|
+
? new Class({
|
|
338
|
+
type: "optional",
|
|
339
|
+
innerType: oldShape[key],
|
|
340
|
+
})
|
|
341
|
+
: oldShape[key];
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
for (const key in oldShape) {
|
|
346
|
+
shape[key] = Class
|
|
347
|
+
? new Class({
|
|
348
|
+
type: "optional",
|
|
349
|
+
innerType: oldShape[key],
|
|
350
|
+
})
|
|
351
|
+
: oldShape[key];
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return clone(schema, {
|
|
355
|
+
...schema._zod.def,
|
|
356
|
+
shape,
|
|
357
|
+
checks: [],
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
export function required(Class, schema, mask) {
|
|
361
|
+
const oldShape = schema._zod.def.shape;
|
|
362
|
+
const shape = { ...oldShape };
|
|
363
|
+
if (mask) {
|
|
364
|
+
for (const key in mask) {
|
|
365
|
+
if (!(key in shape)) {
|
|
366
|
+
throw new Error(`Unrecognized key: "${key}"`);
|
|
367
|
+
}
|
|
368
|
+
if (!mask[key])
|
|
369
|
+
continue;
|
|
370
|
+
// overwrite with non-optional
|
|
371
|
+
shape[key] = new Class({
|
|
372
|
+
type: "nonoptional",
|
|
373
|
+
innerType: oldShape[key],
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
for (const key in oldShape) {
|
|
379
|
+
// overwrite with non-optional
|
|
380
|
+
shape[key] = new Class({
|
|
381
|
+
type: "nonoptional",
|
|
382
|
+
innerType: oldShape[key],
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return clone(schema, {
|
|
387
|
+
...schema._zod.def,
|
|
388
|
+
shape,
|
|
389
|
+
// optional: [],
|
|
390
|
+
checks: [],
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
export function aborted(x, startIndex = 0) {
|
|
394
|
+
for (let i = startIndex; i < x.issues.length; i++) {
|
|
395
|
+
if (x.issues[i].continue !== true)
|
|
396
|
+
return true;
|
|
397
|
+
}
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
export function prefixIssues(path, issues) {
|
|
401
|
+
return issues.map((iss) => {
|
|
402
|
+
var _a;
|
|
403
|
+
(_a = iss).path ?? (_a.path = []);
|
|
404
|
+
iss.path.unshift(path);
|
|
405
|
+
return iss;
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
export function unwrapMessage(message) {
|
|
409
|
+
return typeof message === "string" ? message : message?.message;
|
|
410
|
+
}
|
|
411
|
+
export function finalizeIssue(iss, ctx, config) {
|
|
412
|
+
const full = { ...iss, path: iss.path ?? [] };
|
|
413
|
+
// for backwards compatibility
|
|
414
|
+
if (!iss.message) {
|
|
415
|
+
const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??
|
|
416
|
+
unwrapMessage(ctx?.error?.(iss)) ??
|
|
417
|
+
unwrapMessage(config.customError?.(iss)) ??
|
|
418
|
+
unwrapMessage(config.localeError?.(iss)) ??
|
|
419
|
+
"Invalid input";
|
|
420
|
+
full.message = message;
|
|
421
|
+
}
|
|
422
|
+
// delete (full as any).def;
|
|
423
|
+
delete full.inst;
|
|
424
|
+
delete full.continue;
|
|
425
|
+
if (!ctx?.reportInput) {
|
|
426
|
+
delete full.input;
|
|
427
|
+
}
|
|
428
|
+
return full;
|
|
429
|
+
}
|
|
430
|
+
export function getSizableOrigin(input) {
|
|
431
|
+
if (input instanceof Set)
|
|
432
|
+
return "set";
|
|
433
|
+
if (input instanceof Map)
|
|
434
|
+
return "map";
|
|
435
|
+
if (input instanceof File)
|
|
436
|
+
return "file";
|
|
437
|
+
return "unknown";
|
|
438
|
+
}
|
|
439
|
+
export function getLengthableOrigin(input) {
|
|
440
|
+
if (Array.isArray(input))
|
|
441
|
+
return "array";
|
|
442
|
+
if (typeof input === "string")
|
|
443
|
+
return "string";
|
|
444
|
+
return "unknown";
|
|
445
|
+
}
|
|
446
|
+
export function issue(...args) {
|
|
447
|
+
const [iss, input, inst] = args;
|
|
448
|
+
if (typeof iss === "string") {
|
|
449
|
+
return {
|
|
450
|
+
message: iss,
|
|
451
|
+
code: "custom",
|
|
452
|
+
input,
|
|
453
|
+
inst,
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
return { ...iss };
|
|
457
|
+
}
|
|
458
|
+
export function cleanEnum(obj) {
|
|
459
|
+
return Object.entries(obj)
|
|
460
|
+
.filter(([k, _]) => {
|
|
461
|
+
// return true if NaN, meaning it's not a number, thus a string key
|
|
462
|
+
return Number.isNaN(Number.parseInt(k, 10));
|
|
463
|
+
})
|
|
464
|
+
.map((el) => el[1]);
|
|
465
|
+
}
|
|
466
|
+
// instanceof
|
|
467
|
+
export class Class {
|
|
468
|
+
constructor(..._args) { }
|
|
469
|
+
}
|