zod-compiler 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +381 -28
- package/dist/cli/commands/check.d.ts +9 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +150 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +34 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +135 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +33 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +163 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/emitter.d.ts +21 -0
- package/dist/cli/emitter.d.ts.map +1 -0
- package/dist/cli/emitter.js +64 -0
- package/dist/cli/emitter.js.map +1 -0
- package/dist/cli/errors.d.ts +2 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +4 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +181 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/logger.d.ts +18 -0
- package/dist/cli/logger.d.ts.map +1 -0
- package/dist/cli/logger.js +46 -0
- package/dist/cli/logger.js.map +1 -0
- package/dist/core/codegen/context.d.ts +138 -0
- package/dist/core/codegen/context.d.ts.map +1 -0
- package/dist/core/codegen/context.js +213 -0
- package/dist/core/codegen/context.js.map +1 -0
- package/dist/core/codegen/emit-issue.d.ts +74 -0
- package/dist/core/codegen/emit-issue.d.ts.map +1 -0
- package/dist/core/codegen/emit-issue.js +116 -0
- package/dist/core/codegen/emit-issue.js.map +1 -0
- package/dist/core/codegen/emit.d.ts +8 -0
- package/dist/core/codegen/emit.d.ts.map +1 -0
- package/dist/core/codegen/emit.js +16 -0
- package/dist/core/codegen/emit.js.map +1 -0
- package/dist/core/codegen/fast-path.d.ts +17 -0
- package/dist/core/codegen/fast-path.d.ts.map +1 -0
- package/dist/core/codegen/fast-path.js +114 -0
- package/dist/core/codegen/fast-path.js.map +1 -0
- package/dist/core/codegen/index.d.ts +19 -0
- package/dist/core/codegen/index.d.ts.map +1 -0
- package/dist/core/codegen/index.js +54 -0
- package/dist/core/codegen/index.js.map +1 -0
- package/dist/core/codegen/issue-decls.d.ts +37 -0
- package/dist/core/codegen/issue-decls.d.ts.map +1 -0
- package/dist/core/codegen/issue-decls.js +47 -0
- package/dist/core/codegen/issue-decls.js.map +1 -0
- package/dist/core/codegen/schemas/any.d.ts +5 -0
- package/dist/core/codegen/schemas/any.d.ts.map +1 -0
- package/dist/core/codegen/schemas/any.js +7 -0
- package/dist/core/codegen/schemas/any.js.map +1 -0
- package/dist/core/codegen/schemas/array.d.ts +7 -0
- package/dist/core/codegen/schemas/array.d.ts.map +1 -0
- package/dist/core/codegen/schemas/array.js +86 -0
- package/dist/core/codegen/schemas/array.js.map +1 -0
- package/dist/core/codegen/schemas/bigint.d.ts +5 -0
- package/dist/core/codegen/schemas/bigint.d.ts.map +1 -0
- package/dist/core/codegen/schemas/bigint.js +80 -0
- package/dist/core/codegen/schemas/bigint.js.map +1 -0
- package/dist/core/codegen/schemas/boolean.d.ts +5 -0
- package/dist/core/codegen/schemas/boolean.d.ts.map +1 -0
- package/dist/core/codegen/schemas/boolean.js +20 -0
- package/dist/core/codegen/schemas/boolean.js.map +1 -0
- package/dist/core/codegen/schemas/catch.d.ts +7 -0
- package/dist/core/codegen/schemas/catch.d.ts.map +1 -0
- package/dist/core/codegen/schemas/catch.js +26 -0
- package/dist/core/codegen/schemas/catch.js.map +1 -0
- package/dist/core/codegen/schemas/date.d.ts +5 -0
- package/dist/core/codegen/schemas/date.d.ts.map +1 -0
- package/dist/core/codegen/schemas/date.js +79 -0
- package/dist/core/codegen/schemas/date.js.map +1 -0
- package/dist/core/codegen/schemas/default.d.ts +5 -0
- package/dist/core/codegen/schemas/default.d.ts.map +1 -0
- package/dist/core/codegen/schemas/default.js +17 -0
- package/dist/core/codegen/schemas/default.js.map +1 -0
- package/dist/core/codegen/schemas/discriminated-union.d.ts +7 -0
- package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -0
- package/dist/core/codegen/schemas/discriminated-union.js +45 -0
- package/dist/core/codegen/schemas/discriminated-union.js.map +1 -0
- package/dist/core/codegen/schemas/effect.d.ts +17 -0
- package/dist/core/codegen/schemas/effect.d.ts.map +1 -0
- package/dist/core/codegen/schemas/effect.js +35 -0
- package/dist/core/codegen/schemas/effect.js.map +1 -0
- package/dist/core/codegen/schemas/enum.d.ts +5 -0
- package/dist/core/codegen/schemas/enum.d.ts.map +1 -0
- package/dist/core/codegen/schemas/enum.js +33 -0
- package/dist/core/codegen/schemas/enum.js.map +1 -0
- package/dist/core/codegen/schemas/fallback.d.ts +4 -0
- package/dist/core/codegen/schemas/fallback.d.ts.map +1 -0
- package/dist/core/codegen/schemas/fallback.js +23 -0
- package/dist/core/codegen/schemas/fallback.js.map +1 -0
- package/dist/core/codegen/schemas/file.d.ts +5 -0
- package/dist/core/codegen/schemas/file.d.ts.map +1 -0
- package/dist/core/codegen/schemas/file.js +78 -0
- package/dist/core/codegen/schemas/file.js.map +1 -0
- package/dist/core/codegen/schemas/intersection.d.ts +7 -0
- package/dist/core/codegen/schemas/intersection.d.ts.map +1 -0
- package/dist/core/codegen/schemas/intersection.js +13 -0
- package/dist/core/codegen/schemas/intersection.js.map +1 -0
- package/dist/core/codegen/schemas/literal.d.ts +5 -0
- package/dist/core/codegen/schemas/literal.d.ts.map +1 -0
- package/dist/core/codegen/schemas/literal.js +31 -0
- package/dist/core/codegen/schemas/literal.js.map +1 -0
- package/dist/core/codegen/schemas/map.d.ts +7 -0
- package/dist/core/codegen/schemas/map.d.ts.map +1 -0
- package/dist/core/codegen/schemas/map.js +46 -0
- package/dist/core/codegen/schemas/map.js.map +1 -0
- package/dist/core/codegen/schemas/nan.d.ts +5 -0
- package/dist/core/codegen/schemas/nan.d.ts.map +1 -0
- package/dist/core/codegen/schemas/nan.js +13 -0
- package/dist/core/codegen/schemas/nan.js.map +1 -0
- package/dist/core/codegen/schemas/never.d.ts +5 -0
- package/dist/core/codegen/schemas/never.d.ts.map +1 -0
- package/dist/core/codegen/schemas/never.js +11 -0
- package/dist/core/codegen/schemas/never.js.map +1 -0
- package/dist/core/codegen/schemas/null.d.ts +5 -0
- package/dist/core/codegen/schemas/null.d.ts.map +1 -0
- package/dist/core/codegen/schemas/null.js +13 -0
- package/dist/core/codegen/schemas/null.js.map +1 -0
- package/dist/core/codegen/schemas/nullable.d.ts +7 -0
- package/dist/core/codegen/schemas/nullable.d.ts.map +1 -0
- package/dist/core/codegen/schemas/nullable.js +15 -0
- package/dist/core/codegen/schemas/nullable.js.map +1 -0
- package/dist/core/codegen/schemas/number.d.ts +5 -0
- package/dist/core/codegen/schemas/number.d.ts.map +1 -0
- package/dist/core/codegen/schemas/number.js +186 -0
- package/dist/core/codegen/schemas/number.js.map +1 -0
- package/dist/core/codegen/schemas/object.d.ts +7 -0
- package/dist/core/codegen/schemas/object.d.ts.map +1 -0
- package/dist/core/codegen/schemas/object.js +65 -0
- package/dist/core/codegen/schemas/object.js.map +1 -0
- package/dist/core/codegen/schemas/optional.d.ts +7 -0
- package/dist/core/codegen/schemas/optional.d.ts.map +1 -0
- package/dist/core/codegen/schemas/optional.js +15 -0
- package/dist/core/codegen/schemas/optional.js.map +1 -0
- package/dist/core/codegen/schemas/pipe.d.ts +7 -0
- package/dist/core/codegen/schemas/pipe.d.ts.map +1 -0
- package/dist/core/codegen/schemas/pipe.js +18 -0
- package/dist/core/codegen/schemas/pipe.js.map +1 -0
- package/dist/core/codegen/schemas/readonly.d.ts +7 -0
- package/dist/core/codegen/schemas/readonly.d.ts.map +1 -0
- package/dist/core/codegen/schemas/readonly.js +7 -0
- package/dist/core/codegen/schemas/readonly.js.map +1 -0
- package/dist/core/codegen/schemas/record.d.ts +7 -0
- package/dist/core/codegen/schemas/record.d.ts.map +1 -0
- package/dist/core/codegen/schemas/record.js +53 -0
- package/dist/core/codegen/schemas/record.js.map +1 -0
- package/dist/core/codegen/schemas/recursive-ref.d.ts +5 -0
- package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -0
- package/dist/core/codegen/schemas/recursive-ref.js +24 -0
- package/dist/core/codegen/schemas/recursive-ref.js.map +1 -0
- package/dist/core/codegen/schemas/set.d.ts +7 -0
- package/dist/core/codegen/schemas/set.d.ts.map +1 -0
- package/dist/core/codegen/schemas/set.js +88 -0
- package/dist/core/codegen/schemas/set.js.map +1 -0
- package/dist/core/codegen/schemas/string-bool.d.ts +4 -0
- package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -0
- package/dist/core/codegen/schemas/string-bool.js +39 -0
- package/dist/core/codegen/schemas/string-bool.js.map +1 -0
- package/dist/core/codegen/schemas/string.d.ts +5 -0
- package/dist/core/codegen/schemas/string.d.ts.map +1 -0
- package/dist/core/codegen/schemas/string.js +226 -0
- package/dist/core/codegen/schemas/string.js.map +1 -0
- package/dist/core/codegen/schemas/symbol.d.ts +5 -0
- package/dist/core/codegen/schemas/symbol.d.ts.map +1 -0
- package/dist/core/codegen/schemas/symbol.js +13 -0
- package/dist/core/codegen/schemas/symbol.js.map +1 -0
- package/dist/core/codegen/schemas/template-literal.d.ts +5 -0
- package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -0
- package/dist/core/codegen/schemas/template-literal.js +16 -0
- package/dist/core/codegen/schemas/template-literal.js.map +1 -0
- package/dist/core/codegen/schemas/tuple.d.ts +15 -0
- package/dist/core/codegen/schemas/tuple.d.ts.map +1 -0
- package/dist/core/codegen/schemas/tuple.js +111 -0
- package/dist/core/codegen/schemas/tuple.js.map +1 -0
- package/dist/core/codegen/schemas/undefined.d.ts +5 -0
- package/dist/core/codegen/schemas/undefined.d.ts.map +1 -0
- package/dist/core/codegen/schemas/undefined.js +13 -0
- package/dist/core/codegen/schemas/undefined.js.map +1 -0
- package/dist/core/codegen/schemas/union.d.ts +7 -0
- package/dist/core/codegen/schemas/union.d.ts.map +1 -0
- package/dist/core/codegen/schemas/union.js +95 -0
- package/dist/core/codegen/schemas/union.js.map +1 -0
- package/dist/core/codegen/schemas/unknown.d.ts +5 -0
- package/dist/core/codegen/schemas/unknown.d.ts.map +1 -0
- package/dist/core/codegen/schemas/unknown.js +7 -0
- package/dist/core/codegen/schemas/unknown.js.map +1 -0
- package/dist/core/codegen/schemas/void.d.ts +5 -0
- package/dist/core/codegen/schemas/void.d.ts.map +1 -0
- package/dist/core/codegen/schemas/void.js +13 -0
- package/dist/core/codegen/schemas/void.js.map +1 -0
- package/dist/core/codegen/slow-path.d.ts +5 -0
- package/dist/core/codegen/slow-path.d.ts.map +1 -0
- package/dist/core/codegen/slow-path.js +113 -0
- package/dist/core/codegen/slow-path.js.map +1 -0
- package/dist/core/codegen/well-known-regex.d.ts +27 -0
- package/dist/core/codegen/well-known-regex.d.ts.map +1 -0
- package/dist/core/codegen/well-known-regex.js +51 -0
- package/dist/core/codegen/well-known-regex.js.map +1 -0
- package/dist/core/compile.d.ts +19 -0
- package/dist/core/compile.d.ts.map +1 -0
- package/dist/core/compile.js +37 -0
- package/dist/core/compile.js.map +1 -0
- package/dist/core/diagnostic.d.ts +46 -0
- package/dist/core/diagnostic.d.ts.map +1 -0
- package/dist/core/diagnostic.js +174 -0
- package/dist/core/diagnostic.js.map +1 -0
- package/dist/core/extract/checks.d.ts +35 -0
- package/dist/core/extract/checks.d.ts.map +1 -0
- package/dist/core/extract/checks.js +249 -0
- package/dist/core/extract/checks.js.map +1 -0
- package/dist/core/extract/effects.d.ts +12 -0
- package/dist/core/extract/effects.d.ts.map +1 -0
- package/dist/core/extract/effects.js +204 -0
- package/dist/core/extract/effects.js.map +1 -0
- package/dist/core/extract/extractors/any.d.ts +3 -0
- package/dist/core/extract/extractors/any.d.ts.map +1 -0
- package/dist/core/extract/extractors/any.js +2 -0
- package/dist/core/extract/extractors/any.js.map +1 -0
- package/dist/core/extract/extractors/array.d.ts +4 -0
- package/dist/core/extract/extractors/array.d.ts.map +1 -0
- package/dist/core/extract/extractors/array.js +19 -0
- package/dist/core/extract/extractors/array.js.map +1 -0
- package/dist/core/extract/extractors/bigint.d.ts +4 -0
- package/dist/core/extract/extractors/bigint.d.ts.map +1 -0
- package/dist/core/extract/extractors/bigint.js +70 -0
- package/dist/core/extract/extractors/bigint.js.map +1 -0
- package/dist/core/extract/extractors/boolean.d.ts +3 -0
- package/dist/core/extract/extractors/boolean.d.ts.map +1 -0
- package/dist/core/extract/extractors/boolean.js +5 -0
- package/dist/core/extract/extractors/boolean.js.map +1 -0
- package/dist/core/extract/extractors/catch.d.ts +11 -0
- package/dist/core/extract/extractors/catch.d.ts.map +1 -0
- package/dist/core/extract/extractors/catch.js +20 -0
- package/dist/core/extract/extractors/catch.js.map +1 -0
- package/dist/core/extract/extractors/date.d.ts +4 -0
- package/dist/core/extract/extractors/date.d.ts.map +1 -0
- package/dist/core/extract/extractors/date.js +49 -0
- package/dist/core/extract/extractors/date.js.map +1 -0
- package/dist/core/extract/extractors/default.d.ts +4 -0
- package/dist/core/extract/extractors/default.d.ts.map +1 -0
- package/dist/core/extract/extractors/default.js +11 -0
- package/dist/core/extract/extractors/default.js.map +1 -0
- package/dist/core/extract/extractors/enum.d.ts +3 -0
- package/dist/core/extract/extractors/enum.d.ts.map +1 -0
- package/dist/core/extract/extractors/enum.js +15 -0
- package/dist/core/extract/extractors/enum.js.map +1 -0
- package/dist/core/extract/extractors/file.d.ts +4 -0
- package/dist/core/extract/extractors/file.d.ts.map +1 -0
- package/dist/core/extract/extractors/file.js +24 -0
- package/dist/core/extract/extractors/file.js.map +1 -0
- package/dist/core/extract/extractors/index.d.ts +32 -0
- package/dist/core/extract/extractors/index.d.ts.map +1 -0
- package/dist/core/extract/extractors/index.js +32 -0
- package/dist/core/extract/extractors/index.js.map +1 -0
- package/dist/core/extract/extractors/intersection.d.ts +3 -0
- package/dist/core/extract/extractors/intersection.d.ts.map +1 -0
- package/dist/core/extract/extractors/intersection.js +14 -0
- package/dist/core/extract/extractors/intersection.js.map +1 -0
- package/dist/core/extract/extractors/lazy.d.ts +4 -0
- package/dist/core/extract/extractors/lazy.d.ts.map +1 -0
- package/dist/core/extract/extractors/lazy.js +23 -0
- package/dist/core/extract/extractors/lazy.js.map +1 -0
- package/dist/core/extract/extractors/literal.d.ts +3 -0
- package/dist/core/extract/extractors/literal.d.ts.map +1 -0
- package/dist/core/extract/extractors/literal.js +2 -0
- package/dist/core/extract/extractors/literal.js.map +1 -0
- package/dist/core/extract/extractors/map.d.ts +4 -0
- package/dist/core/extract/extractors/map.d.ts.map +1 -0
- package/dist/core/extract/extractors/map.js +6 -0
- package/dist/core/extract/extractors/map.js.map +1 -0
- package/dist/core/extract/extractors/nan.d.ts +3 -0
- package/dist/core/extract/extractors/nan.d.ts.map +1 -0
- package/dist/core/extract/extractors/nan.js +2 -0
- package/dist/core/extract/extractors/nan.js.map +1 -0
- package/dist/core/extract/extractors/never.d.ts +3 -0
- package/dist/core/extract/extractors/never.d.ts.map +1 -0
- package/dist/core/extract/extractors/never.js +2 -0
- package/dist/core/extract/extractors/never.js.map +1 -0
- package/dist/core/extract/extractors/null.d.ts +3 -0
- package/dist/core/extract/extractors/null.d.ts.map +1 -0
- package/dist/core/extract/extractors/null.js +2 -0
- package/dist/core/extract/extractors/null.js.map +1 -0
- package/dist/core/extract/extractors/nullable.d.ts +3 -0
- package/dist/core/extract/extractors/nullable.d.ts.map +1 -0
- package/dist/core/extract/extractors/nullable.js +5 -0
- package/dist/core/extract/extractors/nullable.js.map +1 -0
- package/dist/core/extract/extractors/number.d.ts +4 -0
- package/dist/core/extract/extractors/number.d.ts.map +1 -0
- package/dist/core/extract/extractors/number.js +38 -0
- package/dist/core/extract/extractors/number.js.map +1 -0
- package/dist/core/extract/extractors/object.d.ts +4 -0
- package/dist/core/extract/extractors/object.d.ts.map +1 -0
- package/dist/core/extract/extractors/object.js +43 -0
- package/dist/core/extract/extractors/object.js.map +1 -0
- package/dist/core/extract/extractors/optional.d.ts +3 -0
- package/dist/core/extract/extractors/optional.d.ts.map +1 -0
- package/dist/core/extract/extractors/optional.js +14 -0
- package/dist/core/extract/extractors/optional.js.map +1 -0
- package/dist/core/extract/extractors/pipe.d.ts +4 -0
- package/dist/core/extract/extractors/pipe.d.ts.map +1 -0
- package/dist/core/extract/extractors/pipe.js +31 -0
- package/dist/core/extract/extractors/pipe.js.map +1 -0
- package/dist/core/extract/extractors/readonly.d.ts +9 -0
- package/dist/core/extract/extractors/readonly.d.ts.map +1 -0
- package/dist/core/extract/extractors/readonly.js +8 -0
- package/dist/core/extract/extractors/readonly.js.map +1 -0
- package/dist/core/extract/extractors/record.d.ts +4 -0
- package/dist/core/extract/extractors/record.d.ts.map +1 -0
- package/dist/core/extract/extractors/record.js +39 -0
- package/dist/core/extract/extractors/record.js.map +1 -0
- package/dist/core/extract/extractors/set.d.ts +4 -0
- package/dist/core/extract/extractors/set.d.ts.map +1 -0
- package/dist/core/extract/extractors/set.js +33 -0
- package/dist/core/extract/extractors/set.js.map +1 -0
- package/dist/core/extract/extractors/string-bool.d.ts +10 -0
- package/dist/core/extract/extractors/string-bool.d.ts.map +1 -0
- package/dist/core/extract/extractors/string-bool.js +92 -0
- package/dist/core/extract/extractors/string-bool.js.map +1 -0
- package/dist/core/extract/extractors/string.d.ts +4 -0
- package/dist/core/extract/extractors/string.d.ts.map +1 -0
- package/dist/core/extract/extractors/string.js +41 -0
- package/dist/core/extract/extractors/string.js.map +1 -0
- package/dist/core/extract/extractors/symbol.d.ts +3 -0
- package/dist/core/extract/extractors/symbol.d.ts.map +1 -0
- package/dist/core/extract/extractors/symbol.js +2 -0
- package/dist/core/extract/extractors/symbol.js.map +1 -0
- package/dist/core/extract/extractors/template-literal.d.ts +4 -0
- package/dist/core/extract/extractors/template-literal.d.ts.map +1 -0
- package/dist/core/extract/extractors/template-literal.js +8 -0
- package/dist/core/extract/extractors/template-literal.js.map +1 -0
- package/dist/core/extract/extractors/tuple.d.ts +4 -0
- package/dist/core/extract/extractors/tuple.d.ts.map +1 -0
- package/dist/core/extract/extractors/tuple.js +6 -0
- package/dist/core/extract/extractors/tuple.js.map +1 -0
- package/dist/core/extract/extractors/undefined.d.ts +3 -0
- package/dist/core/extract/extractors/undefined.d.ts.map +1 -0
- package/dist/core/extract/extractors/undefined.js +2 -0
- package/dist/core/extract/extractors/undefined.js.map +1 -0
- package/dist/core/extract/extractors/union.d.ts +4 -0
- package/dist/core/extract/extractors/union.d.ts.map +1 -0
- package/dist/core/extract/extractors/union.js +44 -0
- package/dist/core/extract/extractors/union.js.map +1 -0
- package/dist/core/extract/extractors/unknown.d.ts +3 -0
- package/dist/core/extract/extractors/unknown.d.ts.map +1 -0
- package/dist/core/extract/extractors/unknown.js +2 -0
- package/dist/core/extract/extractors/unknown.js.map +1 -0
- package/dist/core/extract/extractors/void.d.ts +3 -0
- package/dist/core/extract/extractors/void.d.ts.map +1 -0
- package/dist/core/extract/extractors/void.js +2 -0
- package/dist/core/extract/extractors/void.js.map +1 -0
- package/dist/core/extract/fallback.d.ts +4 -0
- package/dist/core/extract/fallback.d.ts.map +1 -0
- package/dist/core/extract/fallback.js +9 -0
- package/dist/core/extract/fallback.js.map +1 -0
- package/dist/core/extract/index.d.ts +11 -0
- package/dist/core/extract/index.d.ts.map +1 -0
- package/dist/core/extract/index.js +11 -0
- package/dist/core/extract/index.js.map +1 -0
- package/dist/core/extract/registry.d.ts +59 -0
- package/dist/core/extract/registry.d.ts.map +1 -0
- package/dist/core/extract/registry.js +152 -0
- package/dist/core/extract/registry.js.map +1 -0
- package/dist/core/extract/types.d.ts +114 -0
- package/dist/core/extract/types.d.ts.map +1 -0
- package/dist/core/extract/types.js +2 -0
- package/dist/core/extract/types.js.map +1 -0
- package/dist/core/iife.d.ts +38 -0
- package/dist/core/iife.d.ts.map +1 -0
- package/dist/core/iife.js +59 -0
- package/dist/core/iife.js.map +1 -0
- package/dist/core/pipeline.d.ts +26 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +42 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/types.d.ts +352 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/discovery.d.ts +15 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +40 -0
- package/dist/discovery.js.map +1 -0
- package/dist/index.d.ts +4 -670
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -2550
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +12 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +76 -0
- package/dist/loader.js.map +1 -0
- package/dist/unplugin/bun.d.ts +3 -0
- package/dist/unplugin/bun.d.ts.map +1 -0
- package/dist/unplugin/bun.js +3 -0
- package/dist/unplugin/bun.js.map +1 -0
- package/dist/unplugin/esbuild.d.ts +3 -0
- package/dist/unplugin/esbuild.d.ts.map +1 -0
- package/dist/unplugin/esbuild.js +3 -0
- package/dist/unplugin/esbuild.js.map +1 -0
- package/dist/unplugin/farm.d.ts +3 -0
- package/dist/unplugin/farm.d.ts.map +1 -0
- package/dist/unplugin/farm.js +3 -0
- package/dist/unplugin/farm.js.map +1 -0
- package/dist/unplugin/index.d.ts +4 -0
- package/dist/unplugin/index.d.ts.map +1 -0
- package/dist/unplugin/index.js +75 -0
- package/dist/unplugin/index.js.map +1 -0
- package/dist/unplugin/rolldown.d.ts +3 -0
- package/dist/unplugin/rolldown.d.ts.map +1 -0
- package/dist/unplugin/rolldown.js +3 -0
- package/dist/unplugin/rolldown.js.map +1 -0
- package/dist/unplugin/rollup.d.ts +3 -0
- package/dist/unplugin/rollup.d.ts.map +1 -0
- package/dist/unplugin/rollup.js +3 -0
- package/dist/unplugin/rollup.js.map +1 -0
- package/dist/unplugin/rspack.d.ts +3 -0
- package/dist/unplugin/rspack.d.ts.map +1 -0
- package/dist/unplugin/rspack.js +3 -0
- package/dist/unplugin/rspack.js.map +1 -0
- package/dist/unplugin/transform.d.ts +36 -0
- package/dist/unplugin/transform.d.ts.map +1 -0
- package/dist/unplugin/transform.js +285 -0
- package/dist/unplugin/transform.js.map +1 -0
- package/dist/unplugin/types.d.ts +54 -0
- package/dist/unplugin/types.d.ts.map +1 -0
- package/dist/unplugin/types.js +19 -0
- package/dist/unplugin/types.js.map +1 -0
- package/dist/unplugin/virtual.d.ts +24 -0
- package/dist/unplugin/virtual.d.ts.map +1 -0
- package/dist/unplugin/virtual.js +62 -0
- package/dist/unplugin/virtual.js.map +1 -0
- package/dist/unplugin/vite.d.ts +3 -0
- package/dist/unplugin/vite.d.ts.map +1 -0
- package/dist/unplugin/vite.js +3 -0
- package/dist/unplugin/vite.js.map +1 -0
- package/dist/unplugin/webpack.d.ts +3 -0
- package/dist/unplugin/webpack.d.ts.map +1 -0
- package/dist/unplugin/webpack.js +3 -0
- package/dist/unplugin/webpack.js.map +1 -0
- package/package.json +110 -51
- package/dist/index.mjs +0 -2536
- package/dist/standalone.d.ts +0 -294
- package/dist/standalone.js +0 -523
- package/dist/standalone.mjs +0 -514
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { extractAny } from "./any.js";
|
|
2
|
+
export { extractArray } from "./array.js";
|
|
3
|
+
export { extractBigint } from "./bigint.js";
|
|
4
|
+
export { extractBoolean } from "./boolean.js";
|
|
5
|
+
export { extractCatch } from "./catch.js";
|
|
6
|
+
export { extractDate } from "./date.js";
|
|
7
|
+
export { extractDefault } from "./default.js";
|
|
8
|
+
export { extractEnum } from "./enum.js";
|
|
9
|
+
export { extractIntersection } from "./intersection.js";
|
|
10
|
+
export { extractLazy } from "./lazy.js";
|
|
11
|
+
export { extractLiteral } from "./literal.js";
|
|
12
|
+
export { extractMap } from "./map.js";
|
|
13
|
+
export { extractNan } from "./nan.js";
|
|
14
|
+
export { extractNever } from "./never.js";
|
|
15
|
+
export { extractNull } from "./null.js";
|
|
16
|
+
export { extractNullable } from "./nullable.js";
|
|
17
|
+
export { extractNumber } from "./number.js";
|
|
18
|
+
export { extractObject } from "./object.js";
|
|
19
|
+
export { extractOptional } from "./optional.js";
|
|
20
|
+
export { extractPipe } from "./pipe.js";
|
|
21
|
+
export { extractReadonly } from "./readonly.js";
|
|
22
|
+
export { extractRecord } from "./record.js";
|
|
23
|
+
export { extractSet } from "./set.js";
|
|
24
|
+
export { extractString } from "./string.js";
|
|
25
|
+
export { extractSymbol } from "./symbol.js";
|
|
26
|
+
export { extractTemplateLiteral } from "./template-literal.js";
|
|
27
|
+
export { extractTuple } from "./tuple.js";
|
|
28
|
+
export { extractUndefined } from "./undefined.js";
|
|
29
|
+
export { extractUnion } from "./union.js";
|
|
30
|
+
export { extractUnknown } from "./unknown.js";
|
|
31
|
+
export { extractVoid } from "./void.js";
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intersection.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/intersection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,EAAE,SAWjC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { hasMutation } from "../../codegen/context.js";
|
|
2
|
+
export const extractIntersection = (def, ctx) => {
|
|
3
|
+
const left = ctx.visit(def.left, "._zod.def.left");
|
|
4
|
+
const right = ctx.visit(def.right, "._zod.def.right");
|
|
5
|
+
// Zod validates both sides on the ORIGINAL input and MERGES the results,
|
|
6
|
+
// throwing on unmergable conflicts. The compiled generator runs the sides
|
|
7
|
+
// sequentially on the same value — equivalent only when neither side
|
|
8
|
+
// rewrites it. Mutating sides (coerce, trim, defaults, ...) delegate to Zod.
|
|
9
|
+
if (hasMutation(left) || hasMutation(right)) {
|
|
10
|
+
return ctx.fallback("unsupported");
|
|
11
|
+
}
|
|
12
|
+
return { type: "intersection", left, right };
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=intersection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intersection.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/intersection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,MAAM,CAAC,MAAM,mBAAmB,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACtD,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,6EAA6E;IAC7E,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,aAAa,CAAC;AAE/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CAqB1E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function extractLazy(_def, ctx) {
|
|
2
|
+
const schema = ctx.schema;
|
|
3
|
+
const innerSchema = schema._zod.innerType;
|
|
4
|
+
if (!innerSchema) {
|
|
5
|
+
return ctx.fallback("lazy");
|
|
6
|
+
}
|
|
7
|
+
// Cycle detected: the resolved schema is already being extracted.
|
|
8
|
+
if (ctx.visiting.has(innerSchema)) {
|
|
9
|
+
// recursiveRef codegen re-invokes the ROOT safeParse function, so it is
|
|
10
|
+
// only correct when the cycle target IS the root schema's resolution
|
|
11
|
+
// (a directly self-recursive lazy at the top). A cycle back to an inner
|
|
12
|
+
// node (recursive schema nested in a wrapper, mutual recursion) would
|
|
13
|
+
// validate against the wrong shape — delegate to Zod.
|
|
14
|
+
const root = ctx.visiting.values().next().value;
|
|
15
|
+
const rootResolved = root?._zod?.def?.type === "lazy" ? root._zod.innerType : root;
|
|
16
|
+
if (rootResolved === innerSchema) {
|
|
17
|
+
return { type: "recursiveRef" };
|
|
18
|
+
}
|
|
19
|
+
return ctx.fallback("lazy");
|
|
20
|
+
}
|
|
21
|
+
return ctx.visit(innerSchema, "._zod.innerType");
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=lazy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/lazy.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,GAAqB;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAmB,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,kEAAkE;IAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,sDAAsD;QACtD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAA8B,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/literal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,SAA8D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/literal.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CAIvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/map.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,GAAqB;IAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAClE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nan.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/nan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,UAAU,EAAE,SAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nan.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/nan.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAc,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"never.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/never.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,YAAY,EAAE,SAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"never.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/never.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAc,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/null.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,SAAoC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/null.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullable.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/nullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,SAG5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/nullable.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC;CACvD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAW5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CA6B1E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { extractChecks, resolveCheckMessage } from "../checks.js";
|
|
2
|
+
/** Check kinds the number codegen knows how to emit. Anything else → fallback. */
|
|
3
|
+
const NUMBER_CHECK_KINDS = new Set([
|
|
4
|
+
"greater_than",
|
|
5
|
+
"less_than",
|
|
6
|
+
"multiple_of",
|
|
7
|
+
"number_format",
|
|
8
|
+
"refine_effect",
|
|
9
|
+
]);
|
|
10
|
+
export function extractNumber(def, ctx) {
|
|
11
|
+
const coerce = def.coerce ? { coerce: true } : {};
|
|
12
|
+
const allChecks = [];
|
|
13
|
+
// Number format schemas (z.int(), z.int32(), ...): the schema def doubles as
|
|
14
|
+
// its own check def. Schema-level custom error applies to the format issue.
|
|
15
|
+
if (def.check === "number_format" && def.format) {
|
|
16
|
+
const resolved = resolveCheckMessage(def.error);
|
|
17
|
+
if (resolved.kind === "dynamic")
|
|
18
|
+
return ctx.fallback("refine");
|
|
19
|
+
allChecks.push({
|
|
20
|
+
kind: "number_format",
|
|
21
|
+
format: def.format,
|
|
22
|
+
...(resolved.kind === "static" ? { message: resolved.message } : {}),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Appended checks (.min(), .refine(), ... — also present on format schemas
|
|
26
|
+
// like z.int().refine(fn), which previously lost them entirely).
|
|
27
|
+
if (def.checks && def.checks.length > 0) {
|
|
28
|
+
const { checkIRs, hasFallback } = extractChecks(def.checks);
|
|
29
|
+
if (hasFallback)
|
|
30
|
+
return ctx.fallback("refine");
|
|
31
|
+
allChecks.push(...checkIRs);
|
|
32
|
+
}
|
|
33
|
+
if (allChecks.some((c) => !NUMBER_CHECK_KINDS.has(c.kind))) {
|
|
34
|
+
return ctx.fallback("unsupported");
|
|
35
|
+
}
|
|
36
|
+
return { type: "number", checks: allChecks, ...coerce };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/number.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGlE,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,cAAc;IACd,WAAW;IACX,aAAa;IACb,eAAe;IACf,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAqB;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,GAAG,CAAC,MAAgE;YAC5E,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,WAAW;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CAyC1E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { extractChecks } from "../checks.js";
|
|
2
|
+
export function extractObject(def, ctx) {
|
|
3
|
+
// Unknown-key policies the compiled object can't reproduce:
|
|
4
|
+
// - z.strictObject (catchall: never) rejects unknown keys
|
|
5
|
+
// - .catchall(schema) validates unknown keys against a schema
|
|
6
|
+
// z.looseObject (catchall: unknown/any) matches compiled pass-through behavior.
|
|
7
|
+
const catchallType = def.catchall?._zod?.def?.type;
|
|
8
|
+
if (def.catchall && catchallType !== "unknown" && catchallType !== "any") {
|
|
9
|
+
return ctx.fallback("unsupported");
|
|
10
|
+
}
|
|
11
|
+
const properties = {};
|
|
12
|
+
// Fallback props whose zod schema is optional-out: mirror zod's
|
|
13
|
+
// handlePropertyResult, which suppresses issues for ABSENT keys (this is
|
|
14
|
+
// how z.exactOptional() accepts missing keys while rejecting explicit
|
|
15
|
+
// undefined). Compiled optional/default IRs already handle absence.
|
|
16
|
+
const suppressAbsentKeys = [];
|
|
17
|
+
for (const [key, value] of Object.entries(def.shape)) {
|
|
18
|
+
const propIR = ctx.visit(value, `.shape[${JSON.stringify(key)}]`);
|
|
19
|
+
properties[key] = propIR;
|
|
20
|
+
if (propIR.type === "fallback" && value._zod.optout === "optional") {
|
|
21
|
+
suppressAbsentKeys.push(key);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const suppress = suppressAbsentKeys.length > 0 ? { suppressAbsentKeys } : {};
|
|
25
|
+
if (def.checks && def.checks.length > 0) {
|
|
26
|
+
const { checkIRs, hasFallback } = extractChecks(def.checks);
|
|
27
|
+
if (hasFallback)
|
|
28
|
+
return ctx.fallback("refine");
|
|
29
|
+
// Object codegen only supports refine effects; anything else (overwrite,
|
|
30
|
+
// exotic .check() entries) must not be dropped.
|
|
31
|
+
if (checkIRs.some((c) => c.kind !== "refine_effect")) {
|
|
32
|
+
return ctx.fallback("unsupported");
|
|
33
|
+
}
|
|
34
|
+
const refineChecks = checkIRs.filter((c) => {
|
|
35
|
+
return c.kind === "refine_effect";
|
|
36
|
+
});
|
|
37
|
+
if (refineChecks.length > 0) {
|
|
38
|
+
return { type: "object", properties, checks: refineChecks, ...suppress };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { type: "object", properties, ...suppress };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAqB;IAC9D,4DAA4D;IAC5D,0DAA0D;IAC1D,8DAA8D;IAC9D,gFAAgF;IAChF,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;IACnD,IAAI,GAAG,CAAC,QAAQ,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QACzE,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,gEAAgE;IAChE,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7E,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,WAAW;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/C,yEAAyE;QACzE,gDAAgD;QAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE;YACnE,OAAO,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/optional.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,SAY7B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const extractOptional = (def, ctx) => {
|
|
2
|
+
// z.exactOptional() shares def.type "optional" but rejects explicit
|
|
3
|
+
// `undefined` (only a missing key is allowed) — compiled optionals accept
|
|
4
|
+
// undefined, so delegate to Zod. Detectable only via constructor traits.
|
|
5
|
+
const traits = ctx.schema?._zod?.traits;
|
|
6
|
+
if (traits?.has("$ZodExactOptional")) {
|
|
7
|
+
return ctx.fallback("unsupported");
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
type: "optional",
|
|
11
|
+
inner: ctx.visit(def.innerType, "._zod.def.innerType"),
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=optional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/optional.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACrD,oEAAoE;IACpE,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,MAAM,GAAI,GAAG,CAAC,MAAgC,EAAE,IAAI,EAAE,MAAM,CAAC;IACnE,IAAI,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG5D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CA4BxE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { tryCompileEffect } from "../effects.js";
|
|
2
|
+
import { extractStringBool, isStringBoolCodec } from "./string-bool.js";
|
|
3
|
+
export function extractPipe(def, ctx) {
|
|
4
|
+
// Detect stringbool Codec (string→boolean with transform + reverseTransform)
|
|
5
|
+
if (isStringBoolCodec(def)) {
|
|
6
|
+
const ir = extractStringBool(def, ctx);
|
|
7
|
+
if (ir)
|
|
8
|
+
return ir;
|
|
9
|
+
// Probing failed — fall back to Zod
|
|
10
|
+
return ctx.fallback("transform");
|
|
11
|
+
}
|
|
12
|
+
// Other Codecs (z.codec): the decode transform lives on the pipe def itself.
|
|
13
|
+
// Compiling in/out as a plain pipe would validate the untransformed value
|
|
14
|
+
// against the output schema — delegate to Zod.
|
|
15
|
+
if (def.transform !== undefined) {
|
|
16
|
+
return ctx.fallback("transform");
|
|
17
|
+
}
|
|
18
|
+
const outDef = def.out?._zod?.def;
|
|
19
|
+
if (outDef && outDef.type === "transform") {
|
|
20
|
+
const source = tryCompileEffect(outDef.transform);
|
|
21
|
+
if (source) {
|
|
22
|
+
const inIR = ctx.visit(def.in, "._zod.def.in");
|
|
23
|
+
return { type: "effect", effectKind: "transform", source, inner: inIR };
|
|
24
|
+
}
|
|
25
|
+
return ctx.fallback("transform");
|
|
26
|
+
}
|
|
27
|
+
const inIR = ctx.visit(def.in, "._zod.def.in");
|
|
28
|
+
const outIR = ctx.visit(def.out, "._zod.def.out");
|
|
29
|
+
return { type: "pipe", in: inIR, out: outIR };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/pipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,GAAqB;IAC5D,6EAA6E;IAC7E,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAClB,oCAAoC;QACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;IAClC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Extractor } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* z.readonly() freezes the parse OUTPUT in Zod. Compiled validators return
|
|
4
|
+
* the caller's input object as-is, so emitting Object.freeze would freeze the
|
|
5
|
+
* caller's own data — an observable side effect Zod never has. Delegate to
|
|
6
|
+
* Zod, which freezes its rebuilt output instead.
|
|
7
|
+
*/
|
|
8
|
+
export declare const extractReadonly: Extractor;
|
|
9
|
+
//# sourceMappingURL=readonly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/readonly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAsD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* z.readonly() freezes the parse OUTPUT in Zod. Compiled validators return
|
|
3
|
+
* the caller's input object as-is, so emitting Object.freeze would freeze the
|
|
4
|
+
* caller's own data — an observable side effect Zod never has. Delegate to
|
|
5
|
+
* Zod, which freezes its rebuilt output instead.
|
|
6
|
+
*/
|
|
7
|
+
export const extractReadonly = (_def, ctx) => ctx.fallback("unsupported");
|
|
8
|
+
//# sourceMappingURL=readonly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/readonly.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CAsB1E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export function extractRecord(def, ctx) {
|
|
2
|
+
if (!def.valueType) {
|
|
3
|
+
return ctx.fallback("unsupported");
|
|
4
|
+
}
|
|
5
|
+
// Exhaustive-key records: when the key schema exposes a finite value set
|
|
6
|
+
// (z.record(z.enum(...))), Zod requires EVERY key to be present and rejects
|
|
7
|
+
// unrecognized keys. Compiled records only iterate input keys — delegate to
|
|
8
|
+
// Zod. z.partialRecord() clears `_zod.values`, so it still compiles.
|
|
9
|
+
const keyValues = def.keyType?._zod?.values;
|
|
10
|
+
if (keyValues !== undefined && keyValues.size > 0) {
|
|
11
|
+
return ctx.fallback("unsupported");
|
|
12
|
+
}
|
|
13
|
+
const keyType = ctx.visit(def.keyType, "._zod.def.keyType");
|
|
14
|
+
const valueType = ctx.visit(def.valueType, "._zod.def.valueType");
|
|
15
|
+
// Object keys are strings at runtime. Zod coerces/validates numeric-string
|
|
16
|
+
// keys for z.record(z.number(), ...) — the compiled key check would run
|
|
17
|
+
// typeof on the string key and reject everything. Only string-shaped key
|
|
18
|
+
// schemas compile; everything else delegates to Zod.
|
|
19
|
+
if (!isStringShapedKey(keyType)) {
|
|
20
|
+
return ctx.fallback("unsupported");
|
|
21
|
+
}
|
|
22
|
+
return { type: "record", keyType, valueType };
|
|
23
|
+
}
|
|
24
|
+
function isStringShapedKey(ir) {
|
|
25
|
+
switch (ir.type) {
|
|
26
|
+
case "string":
|
|
27
|
+
case "templateLiteral":
|
|
28
|
+
return true;
|
|
29
|
+
case "enum":
|
|
30
|
+
return ir.values.every((v) => typeof v === "string");
|
|
31
|
+
case "literal":
|
|
32
|
+
return ir.values.every((v) => typeof v === "string");
|
|
33
|
+
case "union":
|
|
34
|
+
return ir.options.every(isStringShapedKey);
|
|
35
|
+
default:
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/record.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAqB;IAC9D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;IAC5C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAClE,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,qDAAqD;IACrD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAY;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,iBAAiB;YACpB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QACvD,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QACvD,KAAK,OAAO;YACV,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CAwBvE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { hasUncompilableModifiers, resolveCheckMessage } from "../checks.js";
|
|
2
|
+
export function extractSet(def, ctx) {
|
|
3
|
+
const valueType = ctx.visit(def.valueType, "._zod.def.valueType");
|
|
4
|
+
const setChecks = [];
|
|
5
|
+
if (def.checks) {
|
|
6
|
+
for (const check of def.checks) {
|
|
7
|
+
const checkDef = check._zod?.def;
|
|
8
|
+
if (!checkDef)
|
|
9
|
+
continue;
|
|
10
|
+
if (hasUncompilableModifiers(checkDef))
|
|
11
|
+
return ctx.fallback("refine");
|
|
12
|
+
const resolved = resolveCheckMessage(checkDef.error);
|
|
13
|
+
if (resolved.kind === "dynamic")
|
|
14
|
+
return ctx.fallback("refine");
|
|
15
|
+
const message = resolved.kind === "static" ? { message: resolved.message } : {};
|
|
16
|
+
if (checkDef.check === "min_size") {
|
|
17
|
+
setChecks.push({ kind: "min_size", minimum: checkDef.minimum, ...message });
|
|
18
|
+
}
|
|
19
|
+
else if (checkDef.check === "max_size") {
|
|
20
|
+
setChecks.push({ kind: "max_size", maximum: checkDef.maximum, ...message });
|
|
21
|
+
}
|
|
22
|
+
else if (checkDef.check === "size_equals") {
|
|
23
|
+
setChecks.push({ kind: "size_equals", size: checkDef.size, ...message });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Unknown check (custom refine, overwrite, ...) — never drop silently.
|
|
27
|
+
return ctx.fallback("refine");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return { type: "set", valueType, ...(setChecks.length > 0 ? { checks: setChecks } : {}) };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG7E,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,GAAqB;IAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;YACjC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,wBAAwB,CAAC,QAAQ,CAAC;gBAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StringBoolIR } from "../../types.js";
|
|
2
|
+
import type { ExtractorContext, ZodDef } from "../types.js";
|
|
3
|
+
/** Detect whether a pipe def is a Codec with string→boolean (i.e. stringbool). */
|
|
4
|
+
export declare function isStringBoolCodec(def: ZodDef): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Extract a StringBoolIR by probing the live schema with known test values.
|
|
7
|
+
* Falls back if the discovered values don't fully cover the schema's accepted set.
|
|
8
|
+
*/
|
|
9
|
+
export declare function extractStringBool(_def: ZodDef, ctx: ExtractorContext): StringBoolIR | null;
|
|
10
|
+
//# sourceMappingURL=string-bool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-bool.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/string-bool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsB5D,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CA8D1F"}
|