makecoder 1.0.25
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/LICENSE +21 -0
- package/README.md +281 -0
- package/claude/commands/dev/ultra-think.md +153 -0
- package/claude/commands/docs/generate-api-documentation.md +80 -0
- package/claude/commands/git/commit.md +63 -0
- package/claude/commands/git/status.md +39 -0
- package/claude/commands/setup/migrate-to-typescript.md +76 -0
- package/claude/commands/test/generate-test-cases.md +76 -0
- package/dist/cc.mjs +4654 -0
- package/dist/coder.js +201 -0
- package/dist/codex +0 -0
- package/dist/codex.exe +0 -0
- package/dist/codex.mjs +162 -0
- package/dist/gcli.mjs +3162 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/annotations-23.0.0.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.12-beta-searchableOptions.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.12-beta.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/config-1.4.3.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/jansi-2.4.1.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlin-logging-jvm-7.0.0.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlin-reflect-2.0.21.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlin-sdk-jvm-0.4.0.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlin-stdlib-2.1.20.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-coroutines-core-jvm-1.9.0.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-coroutines-slf4j-1.9.0.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-io-bytestring-jvm-0.5.4.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-io-core-jvm-0.5.4.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-serialization-core-jvm-1.8.1.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/kotlinx-serialization-json-jvm-1.8.1.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-client-cio-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-client-core-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-events-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-http-cio-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-http-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-io-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-network-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-network-tls-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-serialization-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-server-cio-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-server-core-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-server-sse-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-server-websockets-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-sse-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-utils-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-websocket-serialization-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/ktor-websockets-jvm-3.0.2.jar +0 -0
- package/dist/vendor/claude-code-jetbrains-plugin/lib/slf4j-api-2.0.16.jar +0 -0
- package/dist/vendor/ripgrep/COPYING +3 -0
- package/dist/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/dist/vendor/ripgrep/arm64-darwin/ripgrep.node +0 -0
- package/dist/vendor/ripgrep/arm64-linux/rg +0 -0
- package/dist/vendor/ripgrep/arm64-linux/ripgrep.node +0 -0
- package/dist/vendor/ripgrep/x64-darwin/rg +0 -0
- package/dist/vendor/ripgrep/x64-darwin/ripgrep.node +0 -0
- package/dist/vendor/ripgrep/x64-linux/rg +0 -0
- package/dist/vendor/ripgrep/x64-linux/ripgrep.node +0 -0
- package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/vendor/ripgrep/x64-win32/ripgrep.node +0 -0
- package/dist/zod/LICENSE +21 -0
- package/dist/zod/README.md +208 -0
- package/dist/zod/index.cjs +33 -0
- package/dist/zod/index.d.cts +4 -0
- package/dist/zod/index.d.ts +4 -0
- package/dist/zod/index.js +4 -0
- package/dist/zod/package.json +118 -0
- package/dist/zod/src/index.ts +4 -0
- package/dist/zod/src/v3/ZodError.ts +330 -0
- package/dist/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/dist/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/dist/zod/src/v3/benchmarks/index.ts +59 -0
- package/dist/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/dist/zod/src/v3/benchmarks/object.ts +69 -0
- package/dist/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/dist/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/dist/zod/src/v3/benchmarks/string.ts +55 -0
- package/dist/zod/src/v3/benchmarks/union.ts +80 -0
- package/dist/zod/src/v3/errors.ts +13 -0
- package/dist/zod/src/v3/external.ts +6 -0
- package/dist/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/dist/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/dist/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/dist/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/dist/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/dist/zod/src/v3/helpers/util.ts +224 -0
- package/dist/zod/src/v3/index.ts +4 -0
- package/dist/zod/src/v3/locales/en.ts +124 -0
- package/dist/zod/src/v3/standard-schema.ts +113 -0
- package/dist/zod/src/v3/tests/Mocker.ts +54 -0
- package/dist/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/dist/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/dist/zod/src/v3/tests/array.test.ts +71 -0
- package/dist/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/dist/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/dist/zod/src/v3/tests/base.test.ts +29 -0
- package/dist/zod/src/v3/tests/bigint.test.ts +55 -0
- package/dist/zod/src/v3/tests/branded.test.ts +53 -0
- package/dist/zod/src/v3/tests/catch.test.ts +220 -0
- package/dist/zod/src/v3/tests/coerce.test.ts +133 -0
- package/dist/zod/src/v3/tests/complex.test.ts +56 -0
- package/dist/zod/src/v3/tests/custom.test.ts +31 -0
- package/dist/zod/src/v3/tests/date.test.ts +32 -0
- package/dist/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/dist/zod/src/v3/tests/default.test.ts +112 -0
- package/dist/zod/src/v3/tests/description.test.ts +33 -0
- package/dist/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/dist/zod/src/v3/tests/enum.test.ts +80 -0
- package/dist/zod/src/v3/tests/error.test.ts +551 -0
- package/dist/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/dist/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/dist/zod/src/v3/tests/function.test.ts +257 -0
- package/dist/zod/src/v3/tests/generics.test.ts +48 -0
- package/dist/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/dist/zod/src/v3/tests/intersection.test.ts +110 -0
- package/dist/zod/src/v3/tests/language-server.source.ts +76 -0
- package/dist/zod/src/v3/tests/language-server.test.ts +207 -0
- package/dist/zod/src/v3/tests/literal.test.ts +36 -0
- package/dist/zod/src/v3/tests/map.test.ts +110 -0
- package/dist/zod/src/v3/tests/masking.test.ts +4 -0
- package/dist/zod/src/v3/tests/mocker.test.ts +19 -0
- package/dist/zod/src/v3/tests/nan.test.ts +21 -0
- package/dist/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/dist/zod/src/v3/tests/nullable.test.ts +42 -0
- package/dist/zod/src/v3/tests/number.test.ts +176 -0
- package/dist/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/dist/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/dist/zod/src/v3/tests/object.test.ts +434 -0
- package/dist/zod/src/v3/tests/optional.test.ts +42 -0
- package/dist/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/dist/zod/src/v3/tests/parser.test.ts +41 -0
- package/dist/zod/src/v3/tests/partials.test.ts +243 -0
- package/dist/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/dist/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/dist/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/dist/zod/src/v3/tests/primitive.test.ts +440 -0
- package/dist/zod/src/v3/tests/promise.test.ts +90 -0
- package/dist/zod/src/v3/tests/readonly.test.ts +194 -0
- package/dist/zod/src/v3/tests/record.test.ts +171 -0
- package/dist/zod/src/v3/tests/recursive.test.ts +197 -0
- package/dist/zod/src/v3/tests/refine.test.ts +313 -0
- package/dist/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/dist/zod/src/v3/tests/set.test.ts +142 -0
- package/dist/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/dist/zod/src/v3/tests/string.test.ts +916 -0
- package/dist/zod/src/v3/tests/transformer.test.ts +233 -0
- package/dist/zod/src/v3/tests/tuple.test.ts +90 -0
- package/dist/zod/src/v3/tests/unions.test.ts +57 -0
- package/dist/zod/src/v3/tests/validations.test.ts +133 -0
- package/dist/zod/src/v3/tests/void.test.ts +15 -0
- package/dist/zod/src/v3/types.ts +5136 -0
- package/dist/zod/src/v4/classic/checks.ts +30 -0
- package/dist/zod/src/v4/classic/coerce.ts +27 -0
- package/dist/zod/src/v4/classic/compat.ts +66 -0
- package/dist/zod/src/v4/classic/errors.ts +75 -0
- package/dist/zod/src/v4/classic/external.ts +50 -0
- package/dist/zod/src/v4/classic/index.ts +5 -0
- package/dist/zod/src/v4/classic/iso.ts +90 -0
- package/dist/zod/src/v4/classic/parse.ts +33 -0
- package/dist/zod/src/v4/classic/schemas.ts +2054 -0
- package/dist/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/dist/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/dist/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/dist/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/dist/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/dist/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/dist/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/dist/zod/src/v4/classic/tests/brand.test.ts +63 -0
- package/dist/zod/src/v4/classic/tests/catch.test.ts +252 -0
- package/dist/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/dist/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/dist/zod/src/v4/classic/tests/continuability.test.ts +352 -0
- package/dist/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/dist/zod/src/v4/classic/tests/date.test.ts +31 -0
- package/dist/zod/src/v4/classic/tests/datetime.test.ts +296 -0
- package/dist/zod/src/v4/classic/tests/default.test.ts +313 -0
- package/dist/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/dist/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/dist/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/dist/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
- package/dist/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/dist/zod/src/v4/classic/tests/file.test.ts +91 -0
- package/dist/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/dist/zod/src/v4/classic/tests/function.test.ts +268 -0
- package/dist/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/dist/zod/src/v4/classic/tests/index.test.ts +829 -0
- package/dist/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/dist/zod/src/v4/classic/tests/intersection.test.ts +171 -0
- package/dist/zod/src/v4/classic/tests/json.test.ts +108 -0
- package/dist/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/dist/zod/src/v4/classic/tests/literal.test.ts +92 -0
- package/dist/zod/src/v4/classic/tests/map.test.ts +196 -0
- package/dist/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/dist/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/dist/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/dist/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/dist/zod/src/v4/classic/tests/number.test.ts +247 -0
- package/dist/zod/src/v4/classic/tests/object.test.ts +563 -0
- package/dist/zod/src/v4/classic/tests/optional.test.ts +123 -0
- package/dist/zod/src/v4/classic/tests/partial.test.ts +147 -0
- package/dist/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/dist/zod/src/v4/classic/tests/pipe.test.ts +81 -0
- package/dist/zod/src/v4/classic/tests/prefault.test.ts +37 -0
- package/dist/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/dist/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/dist/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/dist/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/dist/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/dist/zod/src/v4/classic/tests/record.test.ts +342 -0
- package/dist/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/dist/zod/src/v4/classic/tests/refine.test.ts +532 -0
- package/dist/zod/src/v4/classic/tests/registries.test.ts +204 -0
- package/dist/zod/src/v4/classic/tests/set.test.ts +179 -0
- package/dist/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/dist/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/dist/zod/src/v4/classic/tests/string.test.ts +881 -0
- package/dist/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/dist/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/dist/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/dist/zod/src/v4/classic/tests/transform.test.ts +250 -0
- package/dist/zod/src/v4/classic/tests/tuple.test.ts +163 -0
- package/dist/zod/src/v4/classic/tests/union.test.ts +94 -0
- package/dist/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/dist/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/dist/zod/src/v4/core/api.ts +1594 -0
- package/dist/zod/src/v4/core/checks.ts +1283 -0
- package/dist/zod/src/v4/core/config.ts +15 -0
- package/dist/zod/src/v4/core/core.ts +134 -0
- package/dist/zod/src/v4/core/doc.ts +44 -0
- package/dist/zod/src/v4/core/errors.ts +424 -0
- package/dist/zod/src/v4/core/function.ts +176 -0
- package/dist/zod/src/v4/core/index.ts +15 -0
- package/dist/zod/src/v4/core/json-schema.ts +143 -0
- package/dist/zod/src/v4/core/parse.ts +94 -0
- package/dist/zod/src/v4/core/regexes.ts +135 -0
- package/dist/zod/src/v4/core/registries.ts +96 -0
- package/dist/zod/src/v4/core/schemas.ts +3842 -0
- package/dist/zod/src/v4/core/standard-schema.ts +64 -0
- package/dist/zod/src/v4/core/tests/index.test.ts +46 -0
- package/dist/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/dist/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/dist/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/dist/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/dist/zod/src/v4/core/to-json-schema.ts +977 -0
- package/dist/zod/src/v4/core/util.ts +775 -0
- package/dist/zod/src/v4/core/versions.ts +5 -0
- package/dist/zod/src/v4/core/zsf.ts +323 -0
- package/dist/zod/src/v4/index.ts +4 -0
- package/dist/zod/src/v4/locales/ar.ts +125 -0
- package/dist/zod/src/v4/locales/az.ts +121 -0
- package/dist/zod/src/v4/locales/be.ts +184 -0
- package/dist/zod/src/v4/locales/ca.ts +127 -0
- package/dist/zod/src/v4/locales/cs.ts +142 -0
- package/dist/zod/src/v4/locales/de.ts +124 -0
- package/dist/zod/src/v4/locales/en.ts +127 -0
- package/dist/zod/src/v4/locales/eo.ts +125 -0
- package/dist/zod/src/v4/locales/es.ts +125 -0
- package/dist/zod/src/v4/locales/fa.ts +134 -0
- package/dist/zod/src/v4/locales/fi.ts +131 -0
- package/dist/zod/src/v4/locales/fr-CA.ts +126 -0
- package/dist/zod/src/v4/locales/fr.ts +124 -0
- package/dist/zod/src/v4/locales/he.ts +125 -0
- package/dist/zod/src/v4/locales/hu.ts +126 -0
- package/dist/zod/src/v4/locales/id.ts +125 -0
- package/dist/zod/src/v4/locales/index.ts +39 -0
- package/dist/zod/src/v4/locales/it.ts +125 -0
- package/dist/zod/src/v4/locales/ja.ts +122 -0
- package/dist/zod/src/v4/locales/kh.ts +126 -0
- package/dist/zod/src/v4/locales/ko.ts +131 -0
- package/dist/zod/src/v4/locales/mk.ts +127 -0
- package/dist/zod/src/v4/locales/ms.ts +124 -0
- package/dist/zod/src/v4/locales/nl.ts +126 -0
- package/dist/zod/src/v4/locales/no.ts +124 -0
- package/dist/zod/src/v4/locales/ota.ts +125 -0
- package/dist/zod/src/v4/locales/pl.ts +126 -0
- package/dist/zod/src/v4/locales/ps.ts +133 -0
- package/dist/zod/src/v4/locales/pt.ts +123 -0
- package/dist/zod/src/v4/locales/ru.ts +184 -0
- package/dist/zod/src/v4/locales/sl.ts +126 -0
- package/dist/zod/src/v4/locales/sv.ts +127 -0
- package/dist/zod/src/v4/locales/ta.ts +125 -0
- package/dist/zod/src/v4/locales/th.ts +126 -0
- package/dist/zod/src/v4/locales/tr.ts +121 -0
- package/dist/zod/src/v4/locales/ua.ts +126 -0
- package/dist/zod/src/v4/locales/ur.ts +126 -0
- package/dist/zod/src/v4/locales/vi.ts +125 -0
- package/dist/zod/src/v4/locales/zh-CN.ts +123 -0
- package/dist/zod/src/v4/locales/zh-TW.ts +125 -0
- package/dist/zod/src/v4/mini/checks.ts +32 -0
- package/dist/zod/src/v4/mini/coerce.ts +22 -0
- package/dist/zod/src/v4/mini/external.ts +40 -0
- package/dist/zod/src/v4/mini/index.ts +3 -0
- package/dist/zod/src/v4/mini/iso.ts +62 -0
- package/dist/zod/src/v4/mini/parse.ts +1 -0
- package/dist/zod/src/v4/mini/schemas.ts +1579 -0
- package/dist/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/dist/zod/src/v4/mini/tests/brand.test.ts +51 -0
- package/dist/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/dist/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/dist/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/dist/zod/src/v4/mini/tests/functions.test.ts +43 -0
- package/dist/zod/src/v4/mini/tests/index.test.ts +871 -0
- package/dist/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/dist/zod/src/v4/mini/tests/object.test.ts +185 -0
- package/dist/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/dist/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/dist/zod/src/v4/mini/tests/string.test.ts +299 -0
- package/dist/zod/src/v4-mini/index.ts +1 -0
- package/dist/zod/v3/ZodError.cjs +138 -0
- package/dist/zod/v3/ZodError.d.cts +164 -0
- package/dist/zod/v3/ZodError.d.ts +164 -0
- package/dist/zod/v3/ZodError.js +133 -0
- package/dist/zod/v3/errors.cjs +17 -0
- package/dist/zod/v3/errors.d.cts +5 -0
- package/dist/zod/v3/errors.d.ts +5 -0
- package/dist/zod/v3/errors.js +9 -0
- package/dist/zod/v3/external.cjs +22 -0
- package/dist/zod/v3/external.d.cts +6 -0
- package/dist/zod/v3/external.d.ts +6 -0
- package/dist/zod/v3/external.js +6 -0
- package/dist/zod/v3/helpers/enumUtil.cjs +2 -0
- package/dist/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/dist/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/zod/v3/helpers/enumUtil.js +1 -0
- package/dist/zod/v3/helpers/errorUtil.cjs +9 -0
- package/dist/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/dist/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/zod/v3/helpers/errorUtil.js +6 -0
- package/dist/zod/v3/helpers/parseUtil.cjs +124 -0
- package/dist/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/dist/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/zod/v3/helpers/parseUtil.js +109 -0
- package/dist/zod/v3/helpers/partialUtil.cjs +2 -0
- package/dist/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/dist/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/zod/v3/helpers/partialUtil.js +1 -0
- package/dist/zod/v3/helpers/typeAliases.cjs +2 -0
- package/dist/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/dist/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/zod/v3/helpers/typeAliases.js +1 -0
- package/dist/zod/v3/helpers/util.cjs +137 -0
- package/dist/zod/v3/helpers/util.d.cts +85 -0
- package/dist/zod/v3/helpers/util.d.ts +85 -0
- package/dist/zod/v3/helpers/util.js +133 -0
- package/dist/zod/v3/index.cjs +33 -0
- package/dist/zod/v3/index.d.cts +4 -0
- package/dist/zod/v3/index.d.ts +4 -0
- package/dist/zod/v3/index.js +4 -0
- package/dist/zod/v3/locales/en.cjs +111 -0
- package/dist/zod/v3/locales/en.d.cts +3 -0
- package/dist/zod/v3/locales/en.d.ts +3 -0
- package/dist/zod/v3/locales/en.js +109 -0
- package/dist/zod/v3/standard-schema.cjs +2 -0
- package/dist/zod/v3/standard-schema.d.cts +102 -0
- package/dist/zod/v3/standard-schema.d.ts +102 -0
- package/dist/zod/v3/standard-schema.js +1 -0
- package/dist/zod/v3/types.cjs +3775 -0
- package/dist/zod/v3/types.d.cts +1031 -0
- package/dist/zod/v3/types.d.ts +1031 -0
- package/dist/zod/v3/types.js +3693 -0
- package/dist/zod/v4/classic/checks.cjs +32 -0
- package/dist/zod/v4/classic/checks.d.cts +1 -0
- package/dist/zod/v4/classic/checks.d.ts +1 -0
- package/dist/zod/v4/classic/checks.js +1 -0
- package/dist/zod/v4/classic/coerce.cjs +47 -0
- package/dist/zod/v4/classic/coerce.d.cts +17 -0
- package/dist/zod/v4/classic/coerce.d.ts +17 -0
- package/dist/zod/v4/classic/coerce.js +17 -0
- package/dist/zod/v4/classic/compat.cjs +57 -0
- package/dist/zod/v4/classic/compat.d.cts +46 -0
- package/dist/zod/v4/classic/compat.d.ts +46 -0
- package/dist/zod/v4/classic/compat.js +27 -0
- package/dist/zod/v4/classic/errors.cjs +67 -0
- package/dist/zod/v4/classic/errors.d.cts +30 -0
- package/dist/zod/v4/classic/errors.d.ts +30 -0
- package/dist/zod/v4/classic/errors.js +41 -0
- package/dist/zod/v4/classic/external.cjs +70 -0
- package/dist/zod/v4/classic/external.d.cts +13 -0
- package/dist/zod/v4/classic/external.d.ts +13 -0
- package/dist/zod/v4/classic/external.js +18 -0
- package/dist/zod/v4/classic/index.cjs +33 -0
- package/dist/zod/v4/classic/index.d.cts +4 -0
- package/dist/zod/v4/classic/index.d.ts +4 -0
- package/dist/zod/v4/classic/index.js +4 -0
- package/dist/zod/v4/classic/iso.cjs +60 -0
- package/dist/zod/v4/classic/iso.d.cts +22 -0
- package/dist/zod/v4/classic/iso.d.ts +22 -0
- package/dist/zod/v4/classic/iso.js +30 -0
- package/dist/zod/v4/classic/parse.cjs +32 -0
- package/dist/zod/v4/classic/parse.d.cts +23 -0
- package/dist/zod/v4/classic/parse.d.ts +23 -0
- package/dist/zod/v4/classic/parse.js +6 -0
- package/dist/zod/v4/classic/schemas.cjs +1109 -0
- package/dist/zod/v4/classic/schemas.d.cts +630 -0
- package/dist/zod/v4/classic/schemas.d.ts +630 -0
- package/dist/zod/v4/classic/schemas.js +1006 -0
- package/dist/zod/v4/core/api.cjs +1039 -0
- package/dist/zod/v4/core/api.d.cts +284 -0
- package/dist/zod/v4/core/api.d.ts +284 -0
- package/dist/zod/v4/core/api.js +906 -0
- package/dist/zod/v4/core/checks.cjs +591 -0
- package/dist/zod/v4/core/checks.d.cts +278 -0
- package/dist/zod/v4/core/checks.d.ts +278 -0
- package/dist/zod/v4/core/checks.js +565 -0
- package/dist/zod/v4/core/core.cjs +67 -0
- package/dist/zod/v4/core/core.d.cts +49 -0
- package/dist/zod/v4/core/core.d.ts +49 -0
- package/dist/zod/v4/core/core.js +61 -0
- package/dist/zod/v4/core/doc.cjs +39 -0
- package/dist/zod/v4/core/doc.d.cts +14 -0
- package/dist/zod/v4/core/doc.d.ts +14 -0
- package/dist/zod/v4/core/doc.js +35 -0
- package/dist/zod/v4/core/errors.cjs +226 -0
- package/dist/zod/v4/core/errors.d.cts +208 -0
- package/dist/zod/v4/core/errors.d.ts +208 -0
- package/dist/zod/v4/core/errors.js +195 -0
- package/dist/zod/v4/core/function.cjs +102 -0
- package/dist/zod/v4/core/function.d.cts +52 -0
- package/dist/zod/v4/core/function.d.ts +52 -0
- package/dist/zod/v4/core/function.js +75 -0
- package/dist/zod/v4/core/index.cjs +44 -0
- package/dist/zod/v4/core/index.d.cts +15 -0
- package/dist/zod/v4/core/index.d.ts +15 -0
- package/dist/zod/v4/core/index.js +15 -0
- package/dist/zod/v4/core/json-schema.cjs +2 -0
- package/dist/zod/v4/core/json-schema.d.cts +87 -0
- package/dist/zod/v4/core/json-schema.d.ts +87 -0
- package/dist/zod/v4/core/json-schema.js +1 -0
- package/dist/zod/v4/core/parse.cjs +87 -0
- package/dist/zod/v4/core/parse.d.cts +25 -0
- package/dist/zod/v4/core/parse.d.ts +25 -0
- package/dist/zod/v4/core/parse.js +57 -0
- package/dist/zod/v4/core/regexes.cjs +103 -0
- package/dist/zod/v4/core/regexes.d.cts +62 -0
- package/dist/zod/v4/core/regexes.d.ts +62 -0
- package/dist/zod/v4/core/regexes.js +95 -0
- package/dist/zod/v4/core/registries.cjs +56 -0
- package/dist/zod/v4/core/registries.d.cts +35 -0
- package/dist/zod/v4/core/registries.d.ts +35 -0
- package/dist/zod/v4/core/registries.js +51 -0
- package/dist/zod/v4/core/schemas.cjs +1748 -0
- package/dist/zod/v4/core/schemas.d.cts +1041 -0
- package/dist/zod/v4/core/schemas.d.ts +1041 -0
- package/dist/zod/v4/core/schemas.js +1717 -0
- package/dist/zod/v4/core/standard-schema.cjs +2 -0
- package/dist/zod/v4/core/standard-schema.d.cts +55 -0
- package/dist/zod/v4/core/standard-schema.d.ts +55 -0
- package/dist/zod/v4/core/standard-schema.js +1 -0
- package/dist/zod/v4/core/to-json-schema.cjs +854 -0
- package/dist/zod/v4/core/to-json-schema.d.cts +88 -0
- package/dist/zod/v4/core/to-json-schema.d.ts +88 -0
- package/dist/zod/v4/core/to-json-schema.js +849 -0
- package/dist/zod/v4/core/util.cjs +539 -0
- package/dist/zod/v4/core/util.d.cts +183 -0
- package/dist/zod/v4/core/util.d.ts +183 -0
- package/dist/zod/v4/core/util.js +493 -0
- package/dist/zod/v4/core/versions.cjs +8 -0
- package/dist/zod/v4/core/versions.d.cts +5 -0
- package/dist/zod/v4/core/versions.d.ts +5 -0
- package/dist/zod/v4/core/versions.js +5 -0
- package/dist/zod/v4/index.cjs +22 -0
- package/dist/zod/v4/index.d.cts +3 -0
- package/dist/zod/v4/index.d.ts +3 -0
- package/dist/zod/v4/index.js +3 -0
- package/dist/zod/v4/locales/ar.cjs +142 -0
- package/dist/zod/v4/locales/ar.d.cts +4 -0
- package/dist/zod/v4/locales/ar.d.ts +4 -0
- package/dist/zod/v4/locales/ar.js +116 -0
- package/dist/zod/v4/locales/az.cjs +141 -0
- package/dist/zod/v4/locales/az.d.cts +4 -0
- package/dist/zod/v4/locales/az.d.ts +4 -0
- package/dist/zod/v4/locales/az.js +115 -0
- package/dist/zod/v4/locales/be.cjs +190 -0
- package/dist/zod/v4/locales/be.d.cts +4 -0
- package/dist/zod/v4/locales/be.d.ts +4 -0
- package/dist/zod/v4/locales/be.js +164 -0
- package/dist/zod/v4/locales/ca.cjs +144 -0
- package/dist/zod/v4/locales/ca.d.cts +4 -0
- package/dist/zod/v4/locales/ca.d.ts +4 -0
- package/dist/zod/v4/locales/ca.js +118 -0
- package/dist/zod/v4/locales/cs.cjs +161 -0
- package/dist/zod/v4/locales/cs.d.cts +4 -0
- package/dist/zod/v4/locales/cs.d.ts +4 -0
- package/dist/zod/v4/locales/cs.js +135 -0
- package/dist/zod/v4/locales/de.cjs +142 -0
- package/dist/zod/v4/locales/de.d.cts +4 -0
- package/dist/zod/v4/locales/de.d.ts +4 -0
- package/dist/zod/v4/locales/de.js +116 -0
- package/dist/zod/v4/locales/en.cjs +145 -0
- package/dist/zod/v4/locales/en.d.cts +5 -0
- package/dist/zod/v4/locales/en.d.ts +5 -0
- package/dist/zod/v4/locales/en.js +117 -0
- package/dist/zod/v4/locales/eo.cjs +144 -0
- package/dist/zod/v4/locales/eo.d.cts +5 -0
- package/dist/zod/v4/locales/eo.d.ts +5 -0
- package/dist/zod/v4/locales/eo.js +116 -0
- package/dist/zod/v4/locales/es.cjs +143 -0
- package/dist/zod/v4/locales/es.d.cts +4 -0
- package/dist/zod/v4/locales/es.d.ts +4 -0
- package/dist/zod/v4/locales/es.js +117 -0
- package/dist/zod/v4/locales/fa.cjs +148 -0
- package/dist/zod/v4/locales/fa.d.cts +4 -0
- package/dist/zod/v4/locales/fa.d.ts +4 -0
- package/dist/zod/v4/locales/fa.js +122 -0
- package/dist/zod/v4/locales/fi.cjs +148 -0
- package/dist/zod/v4/locales/fi.d.cts +4 -0
- package/dist/zod/v4/locales/fi.d.ts +4 -0
- package/dist/zod/v4/locales/fi.js +122 -0
- package/dist/zod/v4/locales/fr-CA.cjs +143 -0
- package/dist/zod/v4/locales/fr-CA.d.cts +4 -0
- package/dist/zod/v4/locales/fr-CA.d.ts +4 -0
- package/dist/zod/v4/locales/fr-CA.js +117 -0
- package/dist/zod/v4/locales/fr.cjs +142 -0
- package/dist/zod/v4/locales/fr.d.cts +4 -0
- package/dist/zod/v4/locales/fr.d.ts +4 -0
- package/dist/zod/v4/locales/fr.js +116 -0
- package/dist/zod/v4/locales/he.cjs +143 -0
- package/dist/zod/v4/locales/he.d.cts +4 -0
- package/dist/zod/v4/locales/he.d.ts +4 -0
- package/dist/zod/v4/locales/he.js +117 -0
- package/dist/zod/v4/locales/hu.cjs +143 -0
- package/dist/zod/v4/locales/hu.d.cts +4 -0
- package/dist/zod/v4/locales/hu.d.ts +4 -0
- package/dist/zod/v4/locales/hu.js +117 -0
- package/dist/zod/v4/locales/id.cjs +142 -0
- package/dist/zod/v4/locales/id.d.cts +4 -0
- package/dist/zod/v4/locales/id.d.ts +4 -0
- package/dist/zod/v4/locales/id.js +116 -0
- package/dist/zod/v4/locales/index.cjs +84 -0
- package/dist/zod/v4/locales/index.d.cts +39 -0
- package/dist/zod/v4/locales/index.d.ts +39 -0
- package/dist/zod/v4/locales/index.js +39 -0
- package/dist/zod/v4/locales/it.cjs +143 -0
- package/dist/zod/v4/locales/it.d.cts +4 -0
- package/dist/zod/v4/locales/it.d.ts +4 -0
- package/dist/zod/v4/locales/it.js +117 -0
- package/dist/zod/v4/locales/ja.cjs +141 -0
- package/dist/zod/v4/locales/ja.d.cts +4 -0
- package/dist/zod/v4/locales/ja.d.ts +4 -0
- package/dist/zod/v4/locales/ja.js +115 -0
- package/dist/zod/v4/locales/kh.cjs +143 -0
- package/dist/zod/v4/locales/kh.d.cts +4 -0
- package/dist/zod/v4/locales/kh.d.ts +4 -0
- package/dist/zod/v4/locales/kh.js +117 -0
- package/dist/zod/v4/locales/ko.cjs +147 -0
- package/dist/zod/v4/locales/ko.d.cts +4 -0
- package/dist/zod/v4/locales/ko.d.ts +4 -0
- package/dist/zod/v4/locales/ko.js +121 -0
- package/dist/zod/v4/locales/mk.cjs +144 -0
- package/dist/zod/v4/locales/mk.d.cts +4 -0
- package/dist/zod/v4/locales/mk.d.ts +4 -0
- package/dist/zod/v4/locales/mk.js +118 -0
- package/dist/zod/v4/locales/ms.cjs +142 -0
- package/dist/zod/v4/locales/ms.d.cts +4 -0
- package/dist/zod/v4/locales/ms.d.ts +4 -0
- package/dist/zod/v4/locales/ms.js +116 -0
- package/dist/zod/v4/locales/nl.cjs +143 -0
- package/dist/zod/v4/locales/nl.d.cts +4 -0
- package/dist/zod/v4/locales/nl.d.ts +4 -0
- package/dist/zod/v4/locales/nl.js +117 -0
- package/dist/zod/v4/locales/no.cjs +142 -0
- package/dist/zod/v4/locales/no.d.cts +4 -0
- package/dist/zod/v4/locales/no.d.ts +4 -0
- package/dist/zod/v4/locales/no.js +116 -0
- package/dist/zod/v4/locales/ota.cjs +143 -0
- package/dist/zod/v4/locales/ota.d.cts +4 -0
- package/dist/zod/v4/locales/ota.d.ts +4 -0
- package/dist/zod/v4/locales/ota.js +117 -0
- package/dist/zod/v4/locales/pl.cjs +143 -0
- package/dist/zod/v4/locales/pl.d.cts +4 -0
- package/dist/zod/v4/locales/pl.d.ts +4 -0
- package/dist/zod/v4/locales/pl.js +117 -0
- package/dist/zod/v4/locales/ps.cjs +148 -0
- package/dist/zod/v4/locales/ps.d.cts +4 -0
- package/dist/zod/v4/locales/ps.d.ts +4 -0
- package/dist/zod/v4/locales/ps.js +122 -0
- package/dist/zod/v4/locales/pt.cjs +142 -0
- package/dist/zod/v4/locales/pt.d.cts +4 -0
- package/dist/zod/v4/locales/pt.d.ts +4 -0
- package/dist/zod/v4/locales/pt.js +116 -0
- package/dist/zod/v4/locales/ru.cjs +190 -0
- package/dist/zod/v4/locales/ru.d.cts +4 -0
- package/dist/zod/v4/locales/ru.d.ts +4 -0
- package/dist/zod/v4/locales/ru.js +164 -0
- package/dist/zod/v4/locales/sl.cjs +143 -0
- package/dist/zod/v4/locales/sl.d.cts +4 -0
- package/dist/zod/v4/locales/sl.d.ts +4 -0
- package/dist/zod/v4/locales/sl.js +117 -0
- package/dist/zod/v4/locales/sv.cjs +144 -0
- package/dist/zod/v4/locales/sv.d.cts +4 -0
- package/dist/zod/v4/locales/sv.d.ts +4 -0
- package/dist/zod/v4/locales/sv.js +118 -0
- package/dist/zod/v4/locales/ta.cjs +143 -0
- package/dist/zod/v4/locales/ta.d.cts +4 -0
- package/dist/zod/v4/locales/ta.d.ts +4 -0
- package/dist/zod/v4/locales/ta.js +117 -0
- package/dist/zod/v4/locales/th.cjs +143 -0
- package/dist/zod/v4/locales/th.d.cts +4 -0
- package/dist/zod/v4/locales/th.d.ts +4 -0
- package/dist/zod/v4/locales/th.js +117 -0
- package/dist/zod/v4/locales/tr.cjs +143 -0
- package/dist/zod/v4/locales/tr.d.cts +5 -0
- package/dist/zod/v4/locales/tr.d.ts +5 -0
- package/dist/zod/v4/locales/tr.js +115 -0
- package/dist/zod/v4/locales/ua.cjs +143 -0
- package/dist/zod/v4/locales/ua.d.cts +4 -0
- package/dist/zod/v4/locales/ua.d.ts +4 -0
- package/dist/zod/v4/locales/ua.js +117 -0
- package/dist/zod/v4/locales/ur.cjs +143 -0
- package/dist/zod/v4/locales/ur.d.cts +4 -0
- package/dist/zod/v4/locales/ur.d.ts +4 -0
- package/dist/zod/v4/locales/ur.js +117 -0
- package/dist/zod/v4/locales/vi.cjs +142 -0
- package/dist/zod/v4/locales/vi.d.cts +4 -0
- package/dist/zod/v4/locales/vi.d.ts +4 -0
- package/dist/zod/v4/locales/vi.js +116 -0
- package/dist/zod/v4/locales/zh-CN.cjs +142 -0
- package/dist/zod/v4/locales/zh-CN.d.cts +4 -0
- package/dist/zod/v4/locales/zh-CN.d.ts +4 -0
- package/dist/zod/v4/locales/zh-CN.js +116 -0
- package/dist/zod/v4/locales/zh-TW.cjs +143 -0
- package/dist/zod/v4/locales/zh-TW.d.cts +4 -0
- package/dist/zod/v4/locales/zh-TW.d.ts +4 -0
- package/dist/zod/v4/locales/zh-TW.js +117 -0
- package/dist/zod/v4/mini/checks.cjs +34 -0
- package/dist/zod/v4/mini/checks.d.cts +1 -0
- package/dist/zod/v4/mini/checks.d.ts +1 -0
- package/dist/zod/v4/mini/checks.js +1 -0
- package/dist/zod/v4/mini/coerce.cjs +47 -0
- package/dist/zod/v4/mini/coerce.d.cts +7 -0
- package/dist/zod/v4/mini/coerce.d.ts +7 -0
- package/dist/zod/v4/mini/coerce.js +17 -0
- package/dist/zod/v4/mini/external.cjs +62 -0
- package/dist/zod/v4/mini/external.d.cts +11 -0
- package/dist/zod/v4/mini/external.d.ts +11 -0
- package/dist/zod/v4/mini/external.js +13 -0
- package/dist/zod/v4/mini/index.cjs +32 -0
- package/dist/zod/v4/mini/index.d.cts +3 -0
- package/dist/zod/v4/mini/index.d.ts +3 -0
- package/dist/zod/v4/mini/index.js +3 -0
- package/dist/zod/v4/mini/iso.cjs +60 -0
- package/dist/zod/v4/mini/iso.d.cts +22 -0
- package/dist/zod/v4/mini/iso.d.ts +22 -0
- package/dist/zod/v4/mini/iso.js +30 -0
- package/dist/zod/v4/mini/parse.cjs +8 -0
- package/dist/zod/v4/mini/parse.d.cts +1 -0
- package/dist/zod/v4/mini/parse.d.ts +1 -0
- package/dist/zod/v4/mini/parse.js +1 -0
- package/dist/zod/v4/mini/schemas.cjs +839 -0
- package/dist/zod/v4/mini/schemas.d.cts +356 -0
- package/dist/zod/v4/mini/schemas.d.ts +356 -0
- package/dist/zod/v4/mini/schemas.js +732 -0
- package/dist/zod/v4-mini/index.cjs +17 -0
- package/dist/zod/v4-mini/index.d.cts +1 -0
- package/dist/zod/v4-mini/index.d.ts +1 -0
- package/dist/zod/v4-mini/index.js +1 -0
- package/package.json +42 -0
- package/scripts/postinstall.js +75 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
export namespace util {
|
|
2
|
+
type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false;
|
|
3
|
+
|
|
4
|
+
export type isAny<T> = 0 extends 1 & T ? true : false;
|
|
5
|
+
export const assertEqual = <A, B>(_: AssertEqual<A, B>): void => {};
|
|
6
|
+
export function assertIs<T>(_arg: T): void {}
|
|
7
|
+
export function assertNever(_x: never): never {
|
|
8
|
+
throw new Error();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
12
|
+
export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>;
|
|
13
|
+
export type MakePartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
14
|
+
export type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>;
|
|
15
|
+
export type InexactPartial<T> = { [k in keyof T]?: T[k] | undefined };
|
|
16
|
+
export const arrayToEnum = <T extends string, U extends [T, ...T[]]>(items: U): { [k in U[number]]: k } => {
|
|
17
|
+
const obj: any = {};
|
|
18
|
+
for (const item of items) {
|
|
19
|
+
obj[item] = item;
|
|
20
|
+
}
|
|
21
|
+
return obj;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const getValidEnumValues = (obj: any): any[] => {
|
|
25
|
+
const validKeys = objectKeys(obj).filter((k: any) => typeof obj[obj[k]] !== "number");
|
|
26
|
+
const filtered: any = {};
|
|
27
|
+
for (const k of validKeys) {
|
|
28
|
+
filtered[k] = obj[k];
|
|
29
|
+
}
|
|
30
|
+
return objectValues(filtered);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const objectValues = (obj: any): any[] => {
|
|
34
|
+
return objectKeys(obj).map(function (e) {
|
|
35
|
+
return obj[e];
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const objectKeys: ObjectConstructor["keys"] =
|
|
40
|
+
typeof Object.keys === "function" // eslint-disable-line ban/ban
|
|
41
|
+
? (obj: any) => Object.keys(obj) // eslint-disable-line ban/ban
|
|
42
|
+
: (object: any) => {
|
|
43
|
+
const keys = [];
|
|
44
|
+
for (const key in object) {
|
|
45
|
+
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
|
46
|
+
keys.push(key);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return keys;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const find = <T>(arr: T[], checker: (arg: T) => any): T | undefined => {
|
|
53
|
+
for (const item of arr) {
|
|
54
|
+
if (checker(item)) return item;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type identity<T> = objectUtil.identity<T>;
|
|
60
|
+
export type flatten<T> = objectUtil.flatten<T>;
|
|
61
|
+
|
|
62
|
+
export type noUndefined<T> = T extends undefined ? never : T;
|
|
63
|
+
|
|
64
|
+
export const isInteger: NumberConstructor["isInteger"] =
|
|
65
|
+
typeof Number.isInteger === "function"
|
|
66
|
+
? (val) => Number.isInteger(val) // eslint-disable-line ban/ban
|
|
67
|
+
: (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val;
|
|
68
|
+
|
|
69
|
+
export function joinValues<T extends any[]>(array: T, separator = " | "): string {
|
|
70
|
+
return array.map((val) => (typeof val === "string" ? `'${val}'` : val)).join(separator);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export const jsonStringifyReplacer = (_: string, value: any): any => {
|
|
74
|
+
if (typeof value === "bigint") {
|
|
75
|
+
return value.toString();
|
|
76
|
+
}
|
|
77
|
+
return value;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export namespace objectUtil {
|
|
82
|
+
export type MergeShapes<U, V> =
|
|
83
|
+
// fast path when there is no keys overlap
|
|
84
|
+
keyof U & keyof V extends never
|
|
85
|
+
? U & V
|
|
86
|
+
: {
|
|
87
|
+
[k in Exclude<keyof U, keyof V>]: U[k];
|
|
88
|
+
} & V;
|
|
89
|
+
|
|
90
|
+
type optionalKeys<T extends object> = {
|
|
91
|
+
[k in keyof T]: undefined extends T[k] ? k : never;
|
|
92
|
+
}[keyof T];
|
|
93
|
+
type requiredKeys<T extends object> = {
|
|
94
|
+
[k in keyof T]: undefined extends T[k] ? never : k;
|
|
95
|
+
}[keyof T];
|
|
96
|
+
export type addQuestionMarks<T extends object, _O = any> = {
|
|
97
|
+
[K in requiredKeys<T>]: T[K];
|
|
98
|
+
} & {
|
|
99
|
+
[K in optionalKeys<T>]?: T[K];
|
|
100
|
+
} & { [k in keyof T]?: unknown };
|
|
101
|
+
|
|
102
|
+
export type identity<T> = T;
|
|
103
|
+
export type flatten<T> = identity<{ [k in keyof T]: T[k] }>;
|
|
104
|
+
|
|
105
|
+
export type noNeverKeys<T> = {
|
|
106
|
+
[k in keyof T]: [T[k]] extends [never] ? never : k;
|
|
107
|
+
}[keyof T];
|
|
108
|
+
|
|
109
|
+
export type noNever<T> = identity<{
|
|
110
|
+
[k in noNeverKeys<T>]: k extends keyof T ? T[k] : never;
|
|
111
|
+
}>;
|
|
112
|
+
|
|
113
|
+
export const mergeShapes = <U, T>(first: U, second: T): T & U => {
|
|
114
|
+
return {
|
|
115
|
+
...first,
|
|
116
|
+
...second, // second overwrites first
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export type extendShape<A extends object, B extends object> = keyof A & keyof B extends never // fast path when there is no keys overlap
|
|
121
|
+
? A & B
|
|
122
|
+
: {
|
|
123
|
+
[K in keyof A as K extends keyof B ? never : K]: A[K];
|
|
124
|
+
} & {
|
|
125
|
+
[K in keyof B]: B[K];
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export const ZodParsedType: {
|
|
130
|
+
string: "string";
|
|
131
|
+
nan: "nan";
|
|
132
|
+
number: "number";
|
|
133
|
+
integer: "integer";
|
|
134
|
+
float: "float";
|
|
135
|
+
boolean: "boolean";
|
|
136
|
+
date: "date";
|
|
137
|
+
bigint: "bigint";
|
|
138
|
+
symbol: "symbol";
|
|
139
|
+
function: "function";
|
|
140
|
+
undefined: "undefined";
|
|
141
|
+
null: "null";
|
|
142
|
+
array: "array";
|
|
143
|
+
object: "object";
|
|
144
|
+
unknown: "unknown";
|
|
145
|
+
promise: "promise";
|
|
146
|
+
void: "void";
|
|
147
|
+
never: "never";
|
|
148
|
+
map: "map";
|
|
149
|
+
set: "set";
|
|
150
|
+
} = util.arrayToEnum([
|
|
151
|
+
"string",
|
|
152
|
+
"nan",
|
|
153
|
+
"number",
|
|
154
|
+
"integer",
|
|
155
|
+
"float",
|
|
156
|
+
"boolean",
|
|
157
|
+
"date",
|
|
158
|
+
"bigint",
|
|
159
|
+
"symbol",
|
|
160
|
+
"function",
|
|
161
|
+
"undefined",
|
|
162
|
+
"null",
|
|
163
|
+
"array",
|
|
164
|
+
"object",
|
|
165
|
+
"unknown",
|
|
166
|
+
"promise",
|
|
167
|
+
"void",
|
|
168
|
+
"never",
|
|
169
|
+
"map",
|
|
170
|
+
"set",
|
|
171
|
+
]);
|
|
172
|
+
|
|
173
|
+
export type ZodParsedType = keyof typeof ZodParsedType;
|
|
174
|
+
|
|
175
|
+
export const getParsedType = (data: any): ZodParsedType => {
|
|
176
|
+
const t = typeof data;
|
|
177
|
+
|
|
178
|
+
switch (t) {
|
|
179
|
+
case "undefined":
|
|
180
|
+
return ZodParsedType.undefined;
|
|
181
|
+
|
|
182
|
+
case "string":
|
|
183
|
+
return ZodParsedType.string;
|
|
184
|
+
|
|
185
|
+
case "number":
|
|
186
|
+
return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
|
|
187
|
+
|
|
188
|
+
case "boolean":
|
|
189
|
+
return ZodParsedType.boolean;
|
|
190
|
+
|
|
191
|
+
case "function":
|
|
192
|
+
return ZodParsedType.function;
|
|
193
|
+
|
|
194
|
+
case "bigint":
|
|
195
|
+
return ZodParsedType.bigint;
|
|
196
|
+
|
|
197
|
+
case "symbol":
|
|
198
|
+
return ZodParsedType.symbol;
|
|
199
|
+
|
|
200
|
+
case "object":
|
|
201
|
+
if (Array.isArray(data)) {
|
|
202
|
+
return ZodParsedType.array;
|
|
203
|
+
}
|
|
204
|
+
if (data === null) {
|
|
205
|
+
return ZodParsedType.null;
|
|
206
|
+
}
|
|
207
|
+
if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
|
|
208
|
+
return ZodParsedType.promise;
|
|
209
|
+
}
|
|
210
|
+
if (typeof Map !== "undefined" && data instanceof Map) {
|
|
211
|
+
return ZodParsedType.map;
|
|
212
|
+
}
|
|
213
|
+
if (typeof Set !== "undefined" && data instanceof Set) {
|
|
214
|
+
return ZodParsedType.set;
|
|
215
|
+
}
|
|
216
|
+
if (typeof Date !== "undefined" && data instanceof Date) {
|
|
217
|
+
return ZodParsedType.date;
|
|
218
|
+
}
|
|
219
|
+
return ZodParsedType.object;
|
|
220
|
+
|
|
221
|
+
default:
|
|
222
|
+
return ZodParsedType.unknown;
|
|
223
|
+
}
|
|
224
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { type ZodErrorMap, ZodIssueCode } from "../ZodError.js";
|
|
2
|
+
import { util, ZodParsedType } from "../helpers/util.js";
|
|
3
|
+
|
|
4
|
+
const errorMap: ZodErrorMap = (issue, _ctx) => {
|
|
5
|
+
let message: string;
|
|
6
|
+
switch (issue.code) {
|
|
7
|
+
case ZodIssueCode.invalid_type:
|
|
8
|
+
if (issue.received === ZodParsedType.undefined) {
|
|
9
|
+
message = "Required";
|
|
10
|
+
} else {
|
|
11
|
+
message = `Expected ${issue.expected}, received ${issue.received}`;
|
|
12
|
+
}
|
|
13
|
+
break;
|
|
14
|
+
case ZodIssueCode.invalid_literal:
|
|
15
|
+
message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
|
|
16
|
+
break;
|
|
17
|
+
case ZodIssueCode.unrecognized_keys:
|
|
18
|
+
message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
|
|
19
|
+
break;
|
|
20
|
+
case ZodIssueCode.invalid_union:
|
|
21
|
+
message = `Invalid input`;
|
|
22
|
+
break;
|
|
23
|
+
case ZodIssueCode.invalid_union_discriminator:
|
|
24
|
+
message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
|
|
25
|
+
break;
|
|
26
|
+
case ZodIssueCode.invalid_enum_value:
|
|
27
|
+
message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
|
|
28
|
+
break;
|
|
29
|
+
case ZodIssueCode.invalid_arguments:
|
|
30
|
+
message = `Invalid function arguments`;
|
|
31
|
+
break;
|
|
32
|
+
case ZodIssueCode.invalid_return_type:
|
|
33
|
+
message = `Invalid function return type`;
|
|
34
|
+
break;
|
|
35
|
+
case ZodIssueCode.invalid_date:
|
|
36
|
+
message = `Invalid date`;
|
|
37
|
+
break;
|
|
38
|
+
case ZodIssueCode.invalid_string:
|
|
39
|
+
if (typeof issue.validation === "object") {
|
|
40
|
+
if ("includes" in issue.validation) {
|
|
41
|
+
message = `Invalid input: must include "${issue.validation.includes}"`;
|
|
42
|
+
|
|
43
|
+
if (typeof issue.validation.position === "number") {
|
|
44
|
+
message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
|
|
45
|
+
}
|
|
46
|
+
} else if ("startsWith" in issue.validation) {
|
|
47
|
+
message = `Invalid input: must start with "${issue.validation.startsWith}"`;
|
|
48
|
+
} else if ("endsWith" in issue.validation) {
|
|
49
|
+
message = `Invalid input: must end with "${issue.validation.endsWith}"`;
|
|
50
|
+
} else {
|
|
51
|
+
util.assertNever(issue.validation);
|
|
52
|
+
}
|
|
53
|
+
} else if (issue.validation !== "regex") {
|
|
54
|
+
message = `Invalid ${issue.validation}`;
|
|
55
|
+
} else {
|
|
56
|
+
message = "Invalid";
|
|
57
|
+
}
|
|
58
|
+
break;
|
|
59
|
+
case ZodIssueCode.too_small:
|
|
60
|
+
if (issue.type === "array")
|
|
61
|
+
message = `Array must contain ${
|
|
62
|
+
issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`
|
|
63
|
+
} ${issue.minimum} element(s)`;
|
|
64
|
+
else if (issue.type === "string")
|
|
65
|
+
message = `String must contain ${
|
|
66
|
+
issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`
|
|
67
|
+
} ${issue.minimum} character(s)`;
|
|
68
|
+
else if (issue.type === "number")
|
|
69
|
+
message = `Number must be ${
|
|
70
|
+
issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `
|
|
71
|
+
}${issue.minimum}`;
|
|
72
|
+
else if (issue.type === "bigint")
|
|
73
|
+
message = `Number must be ${
|
|
74
|
+
issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `
|
|
75
|
+
}${issue.minimum}`;
|
|
76
|
+
else if (issue.type === "date")
|
|
77
|
+
message = `Date must be ${
|
|
78
|
+
issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `
|
|
79
|
+
}${new Date(Number(issue.minimum))}`;
|
|
80
|
+
else message = "Invalid input";
|
|
81
|
+
break;
|
|
82
|
+
case ZodIssueCode.too_big:
|
|
83
|
+
if (issue.type === "array")
|
|
84
|
+
message = `Array must contain ${
|
|
85
|
+
issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`
|
|
86
|
+
} ${issue.maximum} element(s)`;
|
|
87
|
+
else if (issue.type === "string")
|
|
88
|
+
message = `String must contain ${
|
|
89
|
+
issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`
|
|
90
|
+
} ${issue.maximum} character(s)`;
|
|
91
|
+
else if (issue.type === "number")
|
|
92
|
+
message = `Number must be ${
|
|
93
|
+
issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`
|
|
94
|
+
} ${issue.maximum}`;
|
|
95
|
+
else if (issue.type === "bigint")
|
|
96
|
+
message = `BigInt must be ${
|
|
97
|
+
issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`
|
|
98
|
+
} ${issue.maximum}`;
|
|
99
|
+
else if (issue.type === "date")
|
|
100
|
+
message = `Date must be ${
|
|
101
|
+
issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`
|
|
102
|
+
} ${new Date(Number(issue.maximum))}`;
|
|
103
|
+
else message = "Invalid input";
|
|
104
|
+
break;
|
|
105
|
+
case ZodIssueCode.custom:
|
|
106
|
+
message = `Invalid input`;
|
|
107
|
+
break;
|
|
108
|
+
case ZodIssueCode.invalid_intersection_types:
|
|
109
|
+
message = `Intersection results could not be merged`;
|
|
110
|
+
break;
|
|
111
|
+
case ZodIssueCode.not_multiple_of:
|
|
112
|
+
message = `Number must be a multiple of ${issue.multipleOf}`;
|
|
113
|
+
break;
|
|
114
|
+
case ZodIssueCode.not_finite:
|
|
115
|
+
message = "Number must be finite";
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
message = _ctx.defaultError;
|
|
119
|
+
util.assertNever(issue);
|
|
120
|
+
}
|
|
121
|
+
return { message };
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export default errorMap;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Standard Schema interface.
|
|
3
|
+
*/
|
|
4
|
+
export type StandardSchemaV1<Input = unknown, Output = Input> = {
|
|
5
|
+
/**
|
|
6
|
+
* The Standard Schema properties.
|
|
7
|
+
*/
|
|
8
|
+
readonly "~standard": StandardSchemaV1.Props<Input, Output>;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export declare namespace StandardSchemaV1 {
|
|
12
|
+
/**
|
|
13
|
+
* The Standard Schema properties interface.
|
|
14
|
+
*/
|
|
15
|
+
export interface Props<Input = unknown, Output = Input> {
|
|
16
|
+
/**
|
|
17
|
+
* The version number of the standard.
|
|
18
|
+
*/
|
|
19
|
+
readonly version: 1;
|
|
20
|
+
/**
|
|
21
|
+
* The vendor name of the schema library.
|
|
22
|
+
*/
|
|
23
|
+
readonly vendor: string;
|
|
24
|
+
/**
|
|
25
|
+
* Validates unknown input values.
|
|
26
|
+
*/
|
|
27
|
+
readonly validate: (value: unknown) => Result<Output> | Promise<Result<Output>>;
|
|
28
|
+
/**
|
|
29
|
+
* Inferred types associated with the schema.
|
|
30
|
+
*/
|
|
31
|
+
readonly types?: Types<Input, Output> | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The result interface of the validate function.
|
|
36
|
+
*/
|
|
37
|
+
export type Result<Output> = SuccessResult<Output> | FailureResult;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The result interface if validation succeeds.
|
|
41
|
+
*/
|
|
42
|
+
export interface SuccessResult<Output> {
|
|
43
|
+
/**
|
|
44
|
+
* The typed output value.
|
|
45
|
+
*/
|
|
46
|
+
readonly value: Output;
|
|
47
|
+
/**
|
|
48
|
+
* The non-existent issues.
|
|
49
|
+
*/
|
|
50
|
+
readonly issues?: undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The result interface if validation fails.
|
|
55
|
+
*/
|
|
56
|
+
export interface FailureResult {
|
|
57
|
+
/**
|
|
58
|
+
* The issues of failed validation.
|
|
59
|
+
*/
|
|
60
|
+
readonly issues: ReadonlyArray<Issue>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The issue interface of the failure output.
|
|
65
|
+
*/
|
|
66
|
+
export interface Issue {
|
|
67
|
+
/**
|
|
68
|
+
* The error message of the issue.
|
|
69
|
+
*/
|
|
70
|
+
readonly message: string;
|
|
71
|
+
/**
|
|
72
|
+
* The path of the issue, if any.
|
|
73
|
+
*/
|
|
74
|
+
readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The path segment interface of the issue.
|
|
79
|
+
*/
|
|
80
|
+
export interface PathSegment {
|
|
81
|
+
/**
|
|
82
|
+
* The key representing a path segment.
|
|
83
|
+
*/
|
|
84
|
+
readonly key: PropertyKey;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The Standard Schema types interface.
|
|
89
|
+
*/
|
|
90
|
+
export interface Types<Input = unknown, Output = Input> {
|
|
91
|
+
/**
|
|
92
|
+
* The input type of the schema.
|
|
93
|
+
*/
|
|
94
|
+
readonly input: Input;
|
|
95
|
+
/**
|
|
96
|
+
* The output type of the schema.
|
|
97
|
+
*/
|
|
98
|
+
readonly output: Output;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Infers the input type of a Standard Schema.
|
|
103
|
+
*/
|
|
104
|
+
export type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["input"];
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Infers the output type of a Standard Schema.
|
|
108
|
+
*/
|
|
109
|
+
export type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"];
|
|
110
|
+
|
|
111
|
+
// biome-ignore lint/complexity/noUselessEmptyExport: needed for granular visibility control of TS namespace
|
|
112
|
+
export {};
|
|
113
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function getRandomInt(max: number) {
|
|
2
|
+
return Math.floor(Math.random() * Math.floor(max));
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
const testSymbol = Symbol("test");
|
|
6
|
+
|
|
7
|
+
export class Mocker {
|
|
8
|
+
pick = (...args: any[]): any => {
|
|
9
|
+
return args[getRandomInt(args.length)];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
get string(): string {
|
|
13
|
+
return Math.random().toString(36).substring(7);
|
|
14
|
+
}
|
|
15
|
+
get number(): number {
|
|
16
|
+
return Math.random() * 100;
|
|
17
|
+
}
|
|
18
|
+
get bigint(): bigint {
|
|
19
|
+
return BigInt(Math.floor(Math.random() * 10000));
|
|
20
|
+
}
|
|
21
|
+
get boolean(): boolean {
|
|
22
|
+
return Math.random() < 0.5;
|
|
23
|
+
}
|
|
24
|
+
get date(): Date {
|
|
25
|
+
return new Date(Math.floor(Date.now() * Math.random()));
|
|
26
|
+
}
|
|
27
|
+
get symbol(): symbol {
|
|
28
|
+
return testSymbol;
|
|
29
|
+
}
|
|
30
|
+
get null(): null {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
get undefined(): undefined {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
get stringOptional(): string | undefined {
|
|
37
|
+
return this.pick(this.string, this.undefined);
|
|
38
|
+
}
|
|
39
|
+
get stringNullable(): string | null {
|
|
40
|
+
return this.pick(this.string, this.null);
|
|
41
|
+
}
|
|
42
|
+
get numberOptional(): number | undefined {
|
|
43
|
+
return this.pick(this.number, this.undefined);
|
|
44
|
+
}
|
|
45
|
+
get numberNullable(): number | null {
|
|
46
|
+
return this.pick(this.number, this.null);
|
|
47
|
+
}
|
|
48
|
+
get booleanOptional(): boolean | undefined {
|
|
49
|
+
return this.pick(this.boolean, this.undefined);
|
|
50
|
+
}
|
|
51
|
+
get booleanNullable(): boolean | null {
|
|
52
|
+
return this.pick(this.boolean, this.null);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// @ts-ignore TS6133
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
|
|
4
|
+
import * as z from "zod/v3";
|
|
5
|
+
import { util } from "../helpers/util.js";
|
|
6
|
+
|
|
7
|
+
const Test = z.object({
|
|
8
|
+
f1: z.number(),
|
|
9
|
+
f2: z.string().optional(),
|
|
10
|
+
f3: z.string().nullable(),
|
|
11
|
+
f4: z.array(z.object({ t: z.union([z.string(), z.boolean()]) })),
|
|
12
|
+
});
|
|
13
|
+
type TestFlattenedErrors = z.inferFlattenedErrors<typeof Test, { message: string; code: number }>;
|
|
14
|
+
type TestFormErrors = z.inferFlattenedErrors<typeof Test>;
|
|
15
|
+
|
|
16
|
+
test("default flattened errors type inference", () => {
|
|
17
|
+
type TestTypeErrors = {
|
|
18
|
+
formErrors: string[];
|
|
19
|
+
fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
|
|
23
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string }>, TestTypeErrors>(false);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test("custom flattened errors type inference", () => {
|
|
27
|
+
type ErrorType = { message: string; code: number };
|
|
28
|
+
type TestTypeErrors = {
|
|
29
|
+
formErrors: ErrorType[];
|
|
30
|
+
fieldErrors: {
|
|
31
|
+
[P in keyof z.TypeOf<typeof Test>]?: ErrorType[] | undefined;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(false);
|
|
36
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string; code: number }>, TestTypeErrors>(true);
|
|
37
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test, { message: string }>, TestTypeErrors>(false);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test("form errors type inference", () => {
|
|
41
|
+
type TestTypeErrors = {
|
|
42
|
+
formErrors: string[];
|
|
43
|
+
fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test(".flatten() type assertion", () => {
|
|
50
|
+
const parsed = Test.safeParse({}) as z.SafeParseError<void>;
|
|
51
|
+
const validFlattenedErrors: TestFlattenedErrors = parsed.error.flatten(() => ({ message: "", code: 0 }));
|
|
52
|
+
// @ts-expect-error should fail assertion between `TestFlattenedErrors` and unmapped `flatten()`.
|
|
53
|
+
const invalidFlattenedErrors: TestFlattenedErrors = parsed.error.flatten();
|
|
54
|
+
const validFormErrors: TestFormErrors = parsed.error.flatten();
|
|
55
|
+
// @ts-expect-error should fail assertion between `TestFormErrors` and mapped `flatten()`.
|
|
56
|
+
const invalidFormErrors: TestFormErrors = parsed.error.flatten(() => ({
|
|
57
|
+
message: "string",
|
|
58
|
+
code: 0,
|
|
59
|
+
}));
|
|
60
|
+
|
|
61
|
+
[validFlattenedErrors, invalidFlattenedErrors, validFormErrors, invalidFormErrors];
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test(".formErrors type assertion", () => {
|
|
65
|
+
const parsed = Test.safeParse({}) as z.SafeParseError<void>;
|
|
66
|
+
const validFormErrors: TestFormErrors = parsed.error.formErrors;
|
|
67
|
+
// @ts-expect-error should fail assertion between `TestFlattenedErrors` and `.formErrors`.
|
|
68
|
+
const invalidFlattenedErrors: TestFlattenedErrors = parsed.error.formErrors;
|
|
69
|
+
|
|
70
|
+
[validFormErrors, invalidFlattenedErrors];
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test("all errors", () => {
|
|
74
|
+
const propertySchema = z.string();
|
|
75
|
+
const schema = z
|
|
76
|
+
.object({
|
|
77
|
+
a: propertySchema,
|
|
78
|
+
b: propertySchema,
|
|
79
|
+
})
|
|
80
|
+
.refine(
|
|
81
|
+
(val) => {
|
|
82
|
+
return val.a === val.b;
|
|
83
|
+
},
|
|
84
|
+
{ message: "Must be equal" }
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
schema.parse({
|
|
89
|
+
a: "asdf",
|
|
90
|
+
b: "qwer",
|
|
91
|
+
});
|
|
92
|
+
} catch (error) {
|
|
93
|
+
if (error instanceof z.ZodError) {
|
|
94
|
+
expect(error.flatten()).toEqual({
|
|
95
|
+
formErrors: ["Must be equal"],
|
|
96
|
+
fieldErrors: {},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
try {
|
|
102
|
+
schema.parse({
|
|
103
|
+
a: null,
|
|
104
|
+
b: null,
|
|
105
|
+
});
|
|
106
|
+
} catch (_error) {
|
|
107
|
+
const error = _error as z.ZodError;
|
|
108
|
+
expect(error.flatten()).toEqual({
|
|
109
|
+
formErrors: [],
|
|
110
|
+
fieldErrors: {
|
|
111
|
+
a: ["Expected string, received null"],
|
|
112
|
+
b: ["Expected string, received null"],
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
expect(error.flatten((iss) => iss.message.toUpperCase())).toEqual({
|
|
117
|
+
formErrors: [],
|
|
118
|
+
fieldErrors: {
|
|
119
|
+
a: ["EXPECTED STRING, RECEIVED NULL"],
|
|
120
|
+
b: ["EXPECTED STRING, RECEIVED NULL"],
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
// Test identity
|
|
124
|
+
|
|
125
|
+
expect(error.flatten((i: z.ZodIssue) => i)).toEqual({
|
|
126
|
+
formErrors: [],
|
|
127
|
+
fieldErrors: {
|
|
128
|
+
a: [
|
|
129
|
+
{
|
|
130
|
+
code: "invalid_type",
|
|
131
|
+
expected: "string",
|
|
132
|
+
message: "Expected string, received null",
|
|
133
|
+
path: ["a"],
|
|
134
|
+
received: "null",
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
b: [
|
|
138
|
+
{
|
|
139
|
+
code: "invalid_type",
|
|
140
|
+
expected: "string",
|
|
141
|
+
message: "Expected string, received null",
|
|
142
|
+
path: ["b"],
|
|
143
|
+
received: "null",
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
// Test mapping
|
|
149
|
+
expect(error.flatten((i: z.ZodIssue) => i.message.length)).toEqual({
|
|
150
|
+
formErrors: [],
|
|
151
|
+
fieldErrors: {
|
|
152
|
+
a: ["Expected string, received null".length],
|
|
153
|
+
b: ["Expected string, received null".length],
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @ts-ignore TS6133
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
|
|
4
|
+
import * as z from "zod/v3";
|
|
5
|
+
import { util } from "../helpers/util.js";
|
|
6
|
+
|
|
7
|
+
test("check any inference", () => {
|
|
8
|
+
const t1 = z.any();
|
|
9
|
+
t1.optional();
|
|
10
|
+
t1.nullable();
|
|
11
|
+
type t1 = z.infer<typeof t1>;
|
|
12
|
+
util.assertEqual<t1, any>(true);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test("check unknown inference", () => {
|
|
16
|
+
const t1 = z.unknown();
|
|
17
|
+
t1.optional();
|
|
18
|
+
t1.nullable();
|
|
19
|
+
type t1 = z.infer<typeof t1>;
|
|
20
|
+
util.assertEqual<t1, unknown>(true);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test("check never inference", () => {
|
|
24
|
+
const t1 = z.never();
|
|
25
|
+
expect(() => t1.parse(undefined)).toThrow();
|
|
26
|
+
expect(() => t1.parse("asdf")).toThrow();
|
|
27
|
+
expect(() => t1.parse(null)).toThrow();
|
|
28
|
+
});
|