zod-compiler 0.1.1 → 1.0.1
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 +33 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +142 -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 +166 -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 +14 -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 -674
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -2553
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +24 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +129 -0
- package/dist/loader.js.map +1 -0
- package/dist/static-filter.d.ts +7 -0
- package/dist/static-filter.d.ts.map +1 -0
- package/dist/static-filter.js +396 -0
- package/dist/static-filter.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 +102 -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 +292 -0
- package/dist/unplugin/transform.js.map +1 -0
- package/dist/unplugin/types.d.ts +67 -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 -2539
- package/dist/standalone.d.ts +0 -386
- package/dist/standalone.js +0 -540
- package/dist/standalone.mjs +0 -531
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"farm.js","sourceRoot":"","sources":["../../src/unplugin/farm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ZodCompilerPluginOptions } from "./types.js";
|
|
2
|
+
export declare const unplugin: import("unplugin").UnpluginInstance<ZodCompilerPluginOptions | undefined, boolean>;
|
|
3
|
+
export type { ZodCompilerPluginOptions } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAiC3D,eAAO,MAAM,QAAQ,oFAoFpB,CAAC;AAEF,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { createUnplugin } from "unplugin";
|
|
2
|
+
import { invalidateModuleCache } from "#src/loader.js";
|
|
3
|
+
import { log, shouldTransform, transformCode } from "./transform.js";
|
|
4
|
+
import { BuildStatsAccumulator } from "./types.js";
|
|
5
|
+
import { loadVirtual, RESOLVED_RUNTIME_ID, resolveVirtualId, VIRTUAL_RUNTIME_ID, WP_RUNTIME_ID, } from "./virtual.js";
|
|
6
|
+
/**
|
|
7
|
+
* Frameworks whose resolveId/load hooks receive any import specifier, including
|
|
8
|
+
* `virtual:` URIs and bare specifiers, so lean-mode cross-file dedup works.
|
|
9
|
+
* webpack / rspack reject the `virtual:` URI scheme but accept bare specifiers,
|
|
10
|
+
* so they use WP_RUNTIME_ID (`__zod-compiler-runtime__`) instead of VIRTUAL_RUNTIME_ID.
|
|
11
|
+
*/
|
|
12
|
+
const VIRTUAL_MODULE_FRAMEWORKS = new Set([
|
|
13
|
+
"vite",
|
|
14
|
+
"rollup",
|
|
15
|
+
"rolldown",
|
|
16
|
+
"esbuild",
|
|
17
|
+
"farm",
|
|
18
|
+
"bun",
|
|
19
|
+
"rspack",
|
|
20
|
+
"webpack",
|
|
21
|
+
]);
|
|
22
|
+
/** Frameworks that need the bare-specifier runtime ID instead of `virtual:`. */
|
|
23
|
+
const WP_FRAMEWORKS = new Set(["rspack", "webpack"]);
|
|
24
|
+
/** File extensions whose changes can affect a schema module graph. */
|
|
25
|
+
const SOURCE_LIKE = /\.([cm]?[jt]sx?|json)$/;
|
|
26
|
+
export const unplugin = createUnplugin((options, meta) => {
|
|
27
|
+
const stats = new BuildStatsAccumulator();
|
|
28
|
+
// Transform results keyed by id, validated by content: bundlers re-run
|
|
29
|
+
// transform for the same file (multiple environments, watch rebuilds) —
|
|
30
|
+
// identical content returns the cached result, changed content recomputes.
|
|
31
|
+
const cache = new Map();
|
|
32
|
+
const verbose = options?.verbose === true;
|
|
33
|
+
const mode = VIRTUAL_MODULE_FRAMEWORKS.has(meta.framework) ? "lean" : "inline";
|
|
34
|
+
const runtimeId = WP_FRAMEWORKS.has(meta.framework) ? WP_RUNTIME_ID : VIRTUAL_RUNTIME_ID;
|
|
35
|
+
const apply = options?.apply ?? "build";
|
|
36
|
+
return {
|
|
37
|
+
name: "zod-compiler",
|
|
38
|
+
enforce: "pre",
|
|
39
|
+
// Vite only: skip dev server / vitest by default so they don't pay
|
|
40
|
+
// build-time AOT cost — compile() falls back to Zod at dev time.
|
|
41
|
+
// Other bundlers ignore this field.
|
|
42
|
+
vite: apply === "all" ? {} : { apply },
|
|
43
|
+
resolveId(id) {
|
|
44
|
+
return resolveVirtualId(id);
|
|
45
|
+
},
|
|
46
|
+
loadInclude(id) {
|
|
47
|
+
return id === RESOLVED_RUNTIME_ID;
|
|
48
|
+
},
|
|
49
|
+
load(id) {
|
|
50
|
+
return loadVirtual(id);
|
|
51
|
+
},
|
|
52
|
+
transformInclude(id) {
|
|
53
|
+
return shouldTransform(id, options);
|
|
54
|
+
},
|
|
55
|
+
async transform(code, id) {
|
|
56
|
+
const cached = cache.get(id);
|
|
57
|
+
if (cached && cached.code === code) {
|
|
58
|
+
return cached.result === null ? undefined : { code: cached.result, map: null };
|
|
59
|
+
}
|
|
60
|
+
if (cached) {
|
|
61
|
+
// Content changed but no watchChange fired (bundlers without the
|
|
62
|
+
// hook): drop stale module executions before re-discovering.
|
|
63
|
+
invalidateModuleCache();
|
|
64
|
+
}
|
|
65
|
+
const result = await transformCode(code, id, {
|
|
66
|
+
mode,
|
|
67
|
+
runtimeId,
|
|
68
|
+
verbose,
|
|
69
|
+
zodCompat: options?.zodCompat,
|
|
70
|
+
autoDiscover: options?.autoDiscover,
|
|
71
|
+
onBuildStats(s) {
|
|
72
|
+
stats.add(s);
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
cache.set(id, { code, result });
|
|
76
|
+
if (!result)
|
|
77
|
+
return;
|
|
78
|
+
return { code: result, map: null };
|
|
79
|
+
},
|
|
80
|
+
watchChange(id) {
|
|
81
|
+
if (!SOURCE_LIKE.test(id))
|
|
82
|
+
return;
|
|
83
|
+
if (id.includes("node_modules"))
|
|
84
|
+
return;
|
|
85
|
+
// The changed file may be a dependency of any schema file, so both
|
|
86
|
+
// the module cache (executions) and the transform result cache are
|
|
87
|
+
// invalidated wholesale. node_modules stay warm in the loader.
|
|
88
|
+
invalidateModuleCache();
|
|
89
|
+
cache.clear();
|
|
90
|
+
},
|
|
91
|
+
buildEnd() {
|
|
92
|
+
if (!verbose)
|
|
93
|
+
return;
|
|
94
|
+
if (stats.schemas === 0)
|
|
95
|
+
return;
|
|
96
|
+
log(`Build summary: ${stats.optimized}/${stats.schemas} schemas optimized across ${stats.files} file(s)` +
|
|
97
|
+
(stats.failed > 0 ? `, ${stats.failed} failed` : ""));
|
|
98
|
+
stats.reset();
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErD,sEAAsE;AACtE,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CACpC,CAAC,OAA6C,EAAE,IAAyB,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1C,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmD,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAgB,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC;IAExC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAc;QAEvB,mEAAmE;QACnE,iEAAiE;QACjE,oCAAoC;QACpC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;QAEtC,SAAS,CAAC,EAAU;YAClB,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,OAAO,EAAE,KAAK,mBAAmB,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,EAAU;YACb,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QAED,gBAAgB,CAAC,EAAU;YACzB,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACjF,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,iEAAiE;gBACjE,6DAA6D;gBAC7D,qBAAqB,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE;gBAC3C,IAAI;gBACJ,SAAS;gBACT,OAAO;gBACP,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,YAAY,EAAE,OAAO,EAAE,YAAY;gBACnC,YAAY,CAAC,CAAC;oBACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC;aACF,CAAC,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAClC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxC,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,qBAAqB,EAAE,CAAC;YACxB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,QAAQ;YACN,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;gBAAE,OAAO;YAChC,GAAG,CACD,kBAAkB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,6BAA6B,KAAK,CAAC,KAAK,UAAU;gBAClG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD,CAAC;YACF,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolldown.d.ts","sourceRoot":"","sources":["../../src/unplugin/rolldown.ts"],"names":[],"mappings":";AAEA,wBAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolldown.js","sourceRoot":"","sources":["../../src/unplugin/rolldown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/unplugin/rollup.ts"],"names":[],"mappings":";AAEA,wBAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/unplugin/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rspack.d.ts","sourceRoot":"","sources":["../../src/unplugin/rspack.ts"],"names":[],"mappings":";AAEA,wBAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rspack.js","sourceRoot":"","sources":["../../src/unplugin/rspack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CompiledSchemaInfo } from "#src/core/pipeline.js";
|
|
2
|
+
import type { TransformOptions, ZodCompilerPluginOptions } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Check if a file should be transformed by the plugin.
|
|
5
|
+
*/
|
|
6
|
+
export declare function shouldTransform(id: string, options?: ZodCompilerPluginOptions): boolean;
|
|
7
|
+
export declare function log(msg: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Transform source code by replacing compile() calls with optimized validators.
|
|
10
|
+
* Returns the transformed code or null if no transformation was needed.
|
|
11
|
+
*/
|
|
12
|
+
export declare function transformCode(code: string, id: string, options: TransformOptions): Promise<string | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Rewrite source code by replacing compile() calls with IIFE-wrapped optimized validators.
|
|
15
|
+
*/
|
|
16
|
+
export declare function rewriteSource(code: string, schemas: CompiledSchemaInfo[], options?: {
|
|
17
|
+
zodCompat?: boolean | undefined;
|
|
18
|
+
}): string;
|
|
19
|
+
/**
|
|
20
|
+
* Find the end position of a JavaScript expression starting at `start` using acorn.
|
|
21
|
+
* Returns the end offset, or -1 if the expression cannot be parsed.
|
|
22
|
+
*/
|
|
23
|
+
export declare function findExpressionEnd(code: string, start: number): number;
|
|
24
|
+
/**
|
|
25
|
+
* Rewrite source code by replacing plain Zod schema exports with IIFE-wrapped optimized validators.
|
|
26
|
+
* Used by autoDiscover mode (no compile() wrappers needed).
|
|
27
|
+
*/
|
|
28
|
+
export declare function rewriteSourceAutoDiscover(code: string, schemas: CompiledSchemaInfo[], options?: {
|
|
29
|
+
zodCompat?: boolean | undefined;
|
|
30
|
+
}): string;
|
|
31
|
+
/**
|
|
32
|
+
* Remove the `compile` binding from `import { compile, ... } from "zod-compiler"` statements.
|
|
33
|
+
* If `compile` is the only import, the entire import line is removed.
|
|
34
|
+
*/
|
|
35
|
+
export declare function removeCompileImport(code: string): string;
|
|
36
|
+
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAM7E;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAevF;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrC;AAOD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwHxB;AA8DD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CA2BR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAuBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { parseExpressionAt } from "acorn";
|
|
2
|
+
import picomatch from "picomatch";
|
|
3
|
+
import { FIN_DECL, generateIIFE, MK_VALIDATOR_DECL, ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION, } from "#src/core/iife.js";
|
|
4
|
+
import { aggregateUsedHelpers, compileSchemas, } from "#src/core/pipeline.js";
|
|
5
|
+
import { discoverSchemas } from "#src/discovery.js";
|
|
6
|
+
import { mayExportSchemas } from "#src/static-filter.js";
|
|
7
|
+
import { VIRTUAL_RUNTIME_ID } from "./virtual.js";
|
|
8
|
+
/** Matches a runtime (non-type-only) import from "zod". */
|
|
9
|
+
const HAS_RUNTIME_ZOD_IMPORT = /import\s+(?!type\s)[^;]*from\s+["']zod["']/;
|
|
10
|
+
/**
|
|
11
|
+
* Check if a file should be transformed by the plugin.
|
|
12
|
+
*/
|
|
13
|
+
export function shouldTransform(id, options) {
|
|
14
|
+
if (!/\.[cm]?[jt]sx?$/.test(id))
|
|
15
|
+
return false;
|
|
16
|
+
if (id.includes("node_modules"))
|
|
17
|
+
return false;
|
|
18
|
+
if (id.endsWith(".d.ts"))
|
|
19
|
+
return false;
|
|
20
|
+
if (id.endsWith(".compiled.ts") || id.endsWith(".compiled.js"))
|
|
21
|
+
return false;
|
|
22
|
+
if (options?.exclude?.some((pattern) => picomatch.isMatch(id, pattern, { contains: true })))
|
|
23
|
+
return false;
|
|
24
|
+
if (options?.include &&
|
|
25
|
+
!options.include.some((pattern) => picomatch.isMatch(id, pattern, { contains: true })))
|
|
26
|
+
return false;
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
export function log(msg) {
|
|
30
|
+
// biome-ignore lint/suspicious/noConsole: build output
|
|
31
|
+
console.log(`[zod-compiler] ${msg}`);
|
|
32
|
+
}
|
|
33
|
+
function warn(msg) {
|
|
34
|
+
// biome-ignore lint/suspicious/noConsole: build output
|
|
35
|
+
console.warn(`[zod-compiler] ${msg}`);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Transform source code by replacing compile() calls with optimized validators.
|
|
39
|
+
* Returns the transformed code or null if no transformation was needed.
|
|
40
|
+
*/
|
|
41
|
+
export async function transformCode(code, id, options) {
|
|
42
|
+
const verbose = options.verbose === true;
|
|
43
|
+
const autoDiscover = options.autoDiscover === true;
|
|
44
|
+
const mode = options.mode;
|
|
45
|
+
// Quick bail-out check
|
|
46
|
+
if (autoDiscover) {
|
|
47
|
+
// autoDiscover: any file with a runtime Zod import is a candidate.
|
|
48
|
+
// Skip `import type` — these files have no runtime schemas.
|
|
49
|
+
if (!HAS_RUNTIME_ZOD_IMPORT.test(code))
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Legacy mode: require compile() from zod-compiler. The word-boundary
|
|
54
|
+
// check matters: the package name itself contains the substring
|
|
55
|
+
// "compile", so a plain includes("compile") would match every import of
|
|
56
|
+
// "zod-compiler" — \bcompile\b does not match inside "zod-compiler"
|
|
57
|
+
// (no boundary between "e" and "r") but matches compile( / { compile }.
|
|
58
|
+
if (!code.includes("zod-compiler") || !/\bcompile\b/.test(code))
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
// Static pre-filter: skip files whose exports provably cannot be schemas
|
|
62
|
+
// (functions, components, constants, type-only modules) without executing
|
|
63
|
+
// them. Conservative — anything ambiguous stays a candidate.
|
|
64
|
+
if (!(await mayExportSchemas(code, id)))
|
|
65
|
+
return null;
|
|
66
|
+
// Discover schemas by executing the file. Module executions are cached in
|
|
67
|
+
// the shared loader; watch/HMR changes invalidate via invalidateModuleCache().
|
|
68
|
+
let schemas;
|
|
69
|
+
try {
|
|
70
|
+
schemas = await discoverSchemas(id, { autoDiscover });
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
74
|
+
// In autoDiscover mode, files that can't be loaded (JSX components,
|
|
75
|
+
// unresolved path aliases, etc.) are expected — warn and skip.
|
|
76
|
+
if (autoDiscover) {
|
|
77
|
+
if (verbose) {
|
|
78
|
+
warn(`Skipping ${id}: ${msg}`);
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`[zod-compiler] Failed to load schemas from ${id}: ${msg}`);
|
|
83
|
+
}
|
|
84
|
+
if (schemas.length === 0)
|
|
85
|
+
return null;
|
|
86
|
+
// Lean mode (Vite/Rollup/etc.) uses virtual:zod-compiler/runtime imports for cross-file dedup.
|
|
87
|
+
// Inline mode (webpack/rspack) emits self-contained file-level helpers.
|
|
88
|
+
let failedCount = 0;
|
|
89
|
+
const compiled = compileSchemas(schemas, {
|
|
90
|
+
mode,
|
|
91
|
+
onError(exportName, error) {
|
|
92
|
+
failedCount++;
|
|
93
|
+
warn(`Failed to compile "${exportName}" in ${id}: ${error.message}. Keeping original${autoDiscover ? "" : " compile()"} call.`);
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
if (verbose) {
|
|
97
|
+
if (autoDiscover) {
|
|
98
|
+
log(`Auto-discovering: ${id} (${schemas.length} Zod export${schemas.length > 1 ? "s" : ""} found)`);
|
|
99
|
+
}
|
|
100
|
+
for (const s of compiled) {
|
|
101
|
+
const rfCount = s.refEntries.length;
|
|
102
|
+
const rfSuffix = rfCount > 0 ? ` (${rfCount} ref${rfCount > 1 ? "s" : ""})` : "";
|
|
103
|
+
log(` ✓ ${s.exportName}${rfSuffix}`);
|
|
104
|
+
}
|
|
105
|
+
if (failedCount > 0) {
|
|
106
|
+
log(` ✗ ${failedCount} schema(s) failed`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (compiled.length === 0)
|
|
110
|
+
return null;
|
|
111
|
+
// Report build stats only when at least one schema was compiled
|
|
112
|
+
options.onBuildStats?.({
|
|
113
|
+
files: 1,
|
|
114
|
+
schemas: schemas.length,
|
|
115
|
+
optimized: compiled.length,
|
|
116
|
+
failed: failedCount,
|
|
117
|
+
});
|
|
118
|
+
// __mkv and __fin are always needed (they wrap every IIFE).
|
|
119
|
+
const usedHelpers = aggregateUsedHelpers(compiled);
|
|
120
|
+
usedHelpers.add("__mkv");
|
|
121
|
+
usedHelpers.add("__fin");
|
|
122
|
+
// Two-pass rewrite: separate compile() schemas from autoDiscover schemas
|
|
123
|
+
if (autoDiscover) {
|
|
124
|
+
// Detect compile() schemas by checking source code patterns
|
|
125
|
+
const compileExportNames = new Set();
|
|
126
|
+
for (const s of compiled) {
|
|
127
|
+
const pattern = new RegExp(`\\b${s.exportName}\\s*=\\s*compile[\\s<(]`);
|
|
128
|
+
if (pattern.test(code)) {
|
|
129
|
+
compileExportNames.add(s.exportName);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const compileSchemaInfos = compiled.filter((s) => compileExportNames.has(s.exportName));
|
|
133
|
+
const autoDiscoverSchemaInfos = compiled.filter((s) => !compileExportNames.has(s.exportName));
|
|
134
|
+
let result = code;
|
|
135
|
+
// Pass 1: rewrite compile() schemas with existing function
|
|
136
|
+
if (compileSchemaInfos.length > 0) {
|
|
137
|
+
result = rewriteSource(result, compileSchemaInfos, { zodCompat: options.zodCompat });
|
|
138
|
+
}
|
|
139
|
+
// Pass 2: rewrite autoDiscover schemas with new function
|
|
140
|
+
if (autoDiscoverSchemaInfos.length > 0) {
|
|
141
|
+
result = rewriteSourceAutoDiscover(result, autoDiscoverSchemaInfos, {
|
|
142
|
+
zodCompat: options.zodCompat,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return injectRuntime(result, usedHelpers, mode, options.runtimeId);
|
|
146
|
+
}
|
|
147
|
+
return injectRuntime(rewriteSource(code, compiled, { zodCompat: options.zodCompat }), usedHelpers, mode, options.runtimeId);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Prepend the runtime helpers required by the rewritten source.
|
|
151
|
+
*
|
|
152
|
+
* Lean mode emits a single `import { ... } from "<runtimeId>";` line —
|
|
153
|
+
* bundlers whose resolveId hook intercepts the specifier dedup helpers across
|
|
154
|
+
* every transformed file into one shared virtual module.
|
|
155
|
+
*
|
|
156
|
+
* Inline mode prepends file-level `function __mkv` / `function __fin`
|
|
157
|
+
* declarations directly so the file is self-contained.
|
|
158
|
+
*
|
|
159
|
+
* Idempotent: if the file already contains the relevant marker (re-run during
|
|
160
|
+
* watch/HMR), we skip re-injection.
|
|
161
|
+
*/
|
|
162
|
+
function injectRuntime(code, usedHelpers, mode, runtimeId = VIRTUAL_RUNTIME_ID) {
|
|
163
|
+
if (mode === "lean") {
|
|
164
|
+
if (usedHelpers.size === 0)
|
|
165
|
+
return code;
|
|
166
|
+
if (code.includes(runtimeId))
|
|
167
|
+
return code;
|
|
168
|
+
const names = [...usedHelpers].sort().join(", ");
|
|
169
|
+
return `import { ${names} } from "${runtimeId}";\n${code}`;
|
|
170
|
+
}
|
|
171
|
+
// Inline mode (CLI emitter, and any bundler not in VIRTUAL_MODULE_FRAMEWORKS):
|
|
172
|
+
// ship file-level helper declarations instead of a virtual import.
|
|
173
|
+
// Codegen emits per-IIFE issue literals + per-IIFE `__re_*` decls,
|
|
174
|
+
// so we only need __mkv / __fin (plus __msg via the zod config import).
|
|
175
|
+
if (!code.includes("__mkv"))
|
|
176
|
+
return code;
|
|
177
|
+
const prefix = [];
|
|
178
|
+
if (!code.includes("__zodCompilerConfig")) {
|
|
179
|
+
prefix.push(ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION);
|
|
180
|
+
}
|
|
181
|
+
if (!code.includes("function __mkv(")) {
|
|
182
|
+
prefix.push(MK_VALIDATOR_DECL);
|
|
183
|
+
}
|
|
184
|
+
if (!code.includes("function __fin(")) {
|
|
185
|
+
prefix.push(FIN_DECL);
|
|
186
|
+
}
|
|
187
|
+
return prefix.length > 0 ? [...prefix, code].join("\n") : code;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Find the matching closing parenthesis for a compile() call,
|
|
191
|
+
* handling nested parentheses like compile(z.object({...})).
|
|
192
|
+
* Returns the index of the closing ')' or -1 if not found.
|
|
193
|
+
*/
|
|
194
|
+
function findMatchingParen(code, openIndex) {
|
|
195
|
+
let depth = 1;
|
|
196
|
+
for (let i = openIndex + 1; i < code.length; i++) {
|
|
197
|
+
if (code[i] === "(")
|
|
198
|
+
depth++;
|
|
199
|
+
else if (code[i] === ")") {
|
|
200
|
+
depth--;
|
|
201
|
+
if (depth === 0)
|
|
202
|
+
return i;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return -1;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Rewrite source code by replacing compile() calls with IIFE-wrapped optimized validators.
|
|
209
|
+
*/
|
|
210
|
+
export function rewriteSource(code, schemas, options) {
|
|
211
|
+
let result = code;
|
|
212
|
+
for (const schema of schemas) {
|
|
213
|
+
// Match: <exportName> = compile<...>( with word boundary to prevent substring matches
|
|
214
|
+
const prefixPattern = new RegExp(`(\\b${schema.exportName}\\s*=\\s*)compile\\s*(?:<[^>]*(?:<[^>]*>[^>]*)?>)?\\s*\\(`);
|
|
215
|
+
const match = prefixPattern.exec(result);
|
|
216
|
+
if (!match)
|
|
217
|
+
continue;
|
|
218
|
+
// Find the matching closing paren (handles nested parens)
|
|
219
|
+
const openParenIndex = match.index + match[0].length - 1;
|
|
220
|
+
const closeParenIndex = findMatchingParen(result, openParenIndex);
|
|
221
|
+
if (closeParenIndex === -1)
|
|
222
|
+
continue;
|
|
223
|
+
const schemaArgName = result
|
|
224
|
+
.slice(openParenIndex + 1, closeParenIndex)
|
|
225
|
+
.trim()
|
|
226
|
+
.replace(/,\s*$/, "");
|
|
227
|
+
const prefix = match[1] ?? "";
|
|
228
|
+
const fullMatch = result.slice(match.index, closeParenIndex + 1);
|
|
229
|
+
const replacement = prefix + generateIIFE(schemaArgName, schema, options);
|
|
230
|
+
result = result.replace(fullMatch, replacement);
|
|
231
|
+
}
|
|
232
|
+
return removeCompileImport(result);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Find the end position of a JavaScript expression starting at `start` using acorn.
|
|
236
|
+
* Returns the end offset, or -1 if the expression cannot be parsed.
|
|
237
|
+
*/
|
|
238
|
+
export function findExpressionEnd(code, start) {
|
|
239
|
+
try {
|
|
240
|
+
const node = parseExpressionAt(code, start, {
|
|
241
|
+
ecmaVersion: "latest",
|
|
242
|
+
sourceType: "module",
|
|
243
|
+
});
|
|
244
|
+
return node.end;
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return -1;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Rewrite source code by replacing plain Zod schema exports with IIFE-wrapped optimized validators.
|
|
252
|
+
* Used by autoDiscover mode (no compile() wrappers needed).
|
|
253
|
+
*/
|
|
254
|
+
export function rewriteSourceAutoDiscover(code, schemas, options) {
|
|
255
|
+
let result = code;
|
|
256
|
+
for (const schema of schemas) {
|
|
257
|
+
const escapedName = schema.exportName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
258
|
+
// Match: export? (const|let|var) ExportName[: TypeAnnotation] = <expr>
|
|
259
|
+
const assignPattern = new RegExp(`((?:export\\s+)?(?:const|let|var)\\s+${escapedName}(?:\\s*:[^=]*)?\\s*=\\s*)`);
|
|
260
|
+
const match = assignPattern.exec(result);
|
|
261
|
+
if (!match)
|
|
262
|
+
continue;
|
|
263
|
+
const rhsStart = match.index + match[0].length;
|
|
264
|
+
const rhsEnd = findExpressionEnd(result, rhsStart);
|
|
265
|
+
if (rhsEnd === -1)
|
|
266
|
+
continue;
|
|
267
|
+
const originalExpr = result.slice(rhsStart, rhsEnd).trim();
|
|
268
|
+
const prefix = match[1] ?? "";
|
|
269
|
+
const iife = generateIIFE(originalExpr, schema, options);
|
|
270
|
+
result = result.slice(0, match.index) + prefix + iife + result.slice(rhsEnd);
|
|
271
|
+
}
|
|
272
|
+
return result;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Remove the `compile` binding from `import { compile, ... } from "zod-compiler"` statements.
|
|
276
|
+
* If `compile` is the only import, the entire import line is removed.
|
|
277
|
+
*/
|
|
278
|
+
export function removeCompileImport(code) {
|
|
279
|
+
// Match: import { ... } from "zod-compiler" or 'zod-compiler'
|
|
280
|
+
const importPattern = /import\s*\{([^}]*)\}\s*from\s*["']zod-compiler["'];?/g;
|
|
281
|
+
return code.replace(importPattern, (_match, imports) => {
|
|
282
|
+
const names = imports
|
|
283
|
+
.split(",")
|
|
284
|
+
.map((n) => n.trim())
|
|
285
|
+
.filter(Boolean);
|
|
286
|
+
const remaining = names.filter((n) => n !== "compile");
|
|
287
|
+
if (remaining.length === 0)
|
|
288
|
+
return "";
|
|
289
|
+
return `import { ${remaining.join(", ")} } from "zod-compiler";`;
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { CodegenMode } from "#src/core/codegen/context.js";
|
|
2
|
+
export interface TransformOptions {
|
|
3
|
+
mode: CodegenMode;
|
|
4
|
+
runtimeId?: string;
|
|
5
|
+
zodCompat?: boolean | undefined;
|
|
6
|
+
verbose?: boolean | undefined;
|
|
7
|
+
autoDiscover?: boolean | undefined;
|
|
8
|
+
onBuildStats?: (stats: BuildStats) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface BuildStats {
|
|
11
|
+
files: number;
|
|
12
|
+
schemas: number;
|
|
13
|
+
optimized: number;
|
|
14
|
+
failed: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class BuildStatsAccumulator implements BuildStats {
|
|
17
|
+
files: number;
|
|
18
|
+
schemas: number;
|
|
19
|
+
optimized: number;
|
|
20
|
+
failed: number;
|
|
21
|
+
add(s: BuildStats): void;
|
|
22
|
+
reset(): void;
|
|
23
|
+
}
|
|
24
|
+
export interface ZodCompilerPluginOptions {
|
|
25
|
+
/** Glob patterns to include (default: ["**\/*.ts", "**\/*.tsx"]) */
|
|
26
|
+
include?: string[];
|
|
27
|
+
/** Glob patterns to exclude (default: ["node_modules/**", "**\/*.d.ts"]) */
|
|
28
|
+
exclude?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Enable Zod-compatible output using Object.create.
|
|
31
|
+
* When true (default), the compiled validator inherits from the original Zod schema,
|
|
32
|
+
* making it compatible with libraries like @hono/zod-validator and tRPC.
|
|
33
|
+
* When false, produces a minimal plain object for smaller bundle size.
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
zodCompat?: boolean | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Enable verbose logging during build.
|
|
39
|
+
* Logs per-schema compilation status and a build summary.
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
verbose?: boolean | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Auto-detect all exported Zod schemas without requiring compile() wrappers.
|
|
45
|
+
* When enabled, the plugin scans exports for Zod schemas (via `_zod.def` detection)
|
|
46
|
+
* and compiles them at build time. No `import { compile } from "zod-compiler"` needed.
|
|
47
|
+
*
|
|
48
|
+
* **Note:** Files with runtime Zod imports are executed at build time via `loadSourceFile()`.
|
|
49
|
+
* Use `include` to limit scope if your project has schema files with side effects.
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
autoDiscover?: boolean | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* **Vite only** (other bundlers ignore this option): when the plugin runs.
|
|
55
|
+
*
|
|
56
|
+
* Defaults to `"build"` so dev servers and Vitest don't pay build-time AOT
|
|
57
|
+
* compilation cost — `compile()` transparently falls back to Zod's runtime
|
|
58
|
+
* validation in dev, so behavior stays correct.
|
|
59
|
+
*
|
|
60
|
+
* Set `"all"` to also compile during dev/test (e.g. to exercise compiled
|
|
61
|
+
* output parity in Vitest — note Vitest runs Vite in serve mode, so the
|
|
62
|
+
* default disables the plugin there), or `"serve"` for dev-only.
|
|
63
|
+
* @default "build"
|
|
64
|
+
*/
|
|
65
|
+
apply?: "build" | "serve" | "all" | undefined;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAsB,YAAW,UAAU;IACtD,KAAK,SAAK;IACV,OAAO,SAAK;IACZ,SAAS,SAAK;IACd,MAAM,SAAK;IAEX,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAOxB,KAAK,IAAI,IAAI;CAMd;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;CAC/C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class BuildStatsAccumulator {
|
|
2
|
+
files = 0;
|
|
3
|
+
schemas = 0;
|
|
4
|
+
optimized = 0;
|
|
5
|
+
failed = 0;
|
|
6
|
+
add(s) {
|
|
7
|
+
this.files += s.files;
|
|
8
|
+
this.schemas += s.schemas;
|
|
9
|
+
this.optimized += s.optimized;
|
|
10
|
+
this.failed += s.failed;
|
|
11
|
+
}
|
|
12
|
+
reset() {
|
|
13
|
+
this.files = 0;
|
|
14
|
+
this.schemas = 0;
|
|
15
|
+
this.optimized = 0;
|
|
16
|
+
this.failed = 0;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,qBAAqB;IAChC,KAAK,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,CAAC;IACZ,SAAS,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,CAAC,CAAC;IAEX,GAAG,CAAC,CAAa;QACf,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual module "virtual:zod-compiler/runtime".
|
|
3
|
+
*
|
|
4
|
+
* Hosts shared helpers and well-known regexes so that lean-mode generated code
|
|
5
|
+
* (emitted by the unplugin transform) can `import { __mkv, __zaTS, __zaReEmail }`
|
|
6
|
+
* instead of inlining these declarations per IIFE.
|
|
7
|
+
*
|
|
8
|
+
* Bundlers tree-shake unused exports during minification, so the virtual module
|
|
9
|
+
* never bloats the final bundle with helpers that no schema actually references.
|
|
10
|
+
*
|
|
11
|
+
* The virtual module is rebuilt on each plugin instantiation but its content is
|
|
12
|
+
* static (no per-build state), so caching the source string is safe.
|
|
13
|
+
*/
|
|
14
|
+
/** Public virtual module ID used by Vite / Rollup / esbuild and other `virtual:`-compatible bundlers. */
|
|
15
|
+
export declare const VIRTUAL_RUNTIME_ID = "virtual:zod-compiler/runtime";
|
|
16
|
+
/** Bare-specifier alias for webpack/rspack, which reject the `virtual:` URI scheme. */
|
|
17
|
+
export declare const WP_RUNTIME_ID = "__zod-compiler-runtime__";
|
|
18
|
+
/** Resolved id (Rollup convention: leading null byte hides the module from other plugins). */
|
|
19
|
+
export declare const RESOLVED_RUNTIME_ID = "\0zod-compiler-runtime";
|
|
20
|
+
export declare function resolveVirtualId(id: string): string | null;
|
|
21
|
+
export declare function loadVirtual(id: string): string | null;
|
|
22
|
+
/** Names of all helpers exported by the virtual module. */
|
|
23
|
+
export declare const ALL_HELPER_NAMES: readonly string[];
|
|
24
|
+
//# sourceMappingURL=virtual.d.ts.map
|