zod-compiler 1.23.0 → 1.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/dist/cli/commands/check.d.ts +10 -7
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +125 -148
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +22 -19
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +102 -133
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/watch.d.ts +17 -15
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +126 -154
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/emitter.d.ts +19 -16
- package/dist/cli/emitter.d.ts.map +1 -1
- package/dist/cli/emitter.js +55 -71
- package/dist/cli/emitter.js.map +1 -1
- package/dist/cli/errors.d.ts +4 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js +6 -2
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/index.d.ts +1 -3
- package/dist/cli/index.js +147 -160
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/logger.d.ts +18 -15
- package/dist/cli/logger.d.ts.map +1 -1
- package/dist/cli/logger.js +38 -37
- package/dist/cli/logger.js.map +1 -1
- package/dist/core/codegen/build-path.d.ts +7 -41
- package/dist/core/codegen/build-path.d.ts.map +1 -1
- package/dist/core/codegen/build-path.js +481 -570
- package/dist/core/codegen/build-path.js.map +1 -1
- package/dist/core/codegen/context.d.ts +256 -253
- package/dist/core/codegen/context.d.ts.map +1 -1
- package/dist/core/codegen/context.js +363 -437
- package/dist/core/codegen/context.js.map +1 -1
- package/dist/core/codegen/dedupe.d.ts +22 -56
- package/dist/core/codegen/dedupe.d.ts.map +1 -1
- package/dist/core/codegen/dedupe.js +150 -242
- package/dist/core/codegen/dedupe.js.map +1 -1
- package/dist/core/codegen/emit-issue.d.ts +44 -68
- package/dist/core/codegen/emit-issue.d.ts.map +1 -1
- package/dist/core/codegen/emit-issue.js +76 -108
- package/dist/core/codegen/emit-issue.js.map +1 -1
- package/dist/core/codegen/emit.d.ts +4 -1
- package/dist/core/codegen/emit.d.ts.map +1 -1
- package/dist/core/codegen/emit.js +16 -13
- package/dist/core/codegen/emit.js.map +1 -1
- package/dist/core/codegen/fast-path.d.ts +7 -12
- package/dist/core/codegen/fast-path.d.ts.map +1 -1
- package/dist/core/codegen/fast-path.js +116 -145
- package/dist/core/codegen/fast-path.js.map +1 -1
- package/dist/core/codegen/fast-size.d.ts +12 -26
- package/dist/core/codegen/fast-size.d.ts.map +1 -1
- package/dist/core/codegen/fast-size.js +169 -244
- package/dist/core/codegen/fast-size.js.map +1 -1
- package/dist/core/codegen/index.d.ts +25 -23
- package/dist/core/codegen/index.d.ts.map +1 -1
- package/dist/core/codegen/index.js +239 -405
- package/dist/core/codegen/index.js.map +1 -1
- package/dist/core/codegen/issue-decls.d.ts +15 -12
- package/dist/core/codegen/issue-decls.d.ts.map +1 -1
- package/dist/core/codegen/issue-decls.js +131 -162
- package/dist/core/codegen/issue-decls.js.map +1 -1
- package/dist/core/codegen/regex-unroll.d.ts +4 -1
- package/dist/core/codegen/regex-unroll.d.ts.map +1 -1
- package/dist/core/codegen/regex-unroll.js +173 -197
- package/dist/core/codegen/regex-unroll.js.map +1 -1
- package/dist/core/codegen/schemas/any.d.ts +7 -4
- package/dist/core/codegen/schemas/any.d.ts.map +1 -1
- package/dist/core/codegen/schemas/any.js +8 -4
- package/dist/core/codegen/schemas/any.js.map +1 -1
- package/dist/core/codegen/schemas/array.d.ts +8 -5
- package/dist/core/codegen/schemas/array.d.ts.map +1 -1
- package/dist/core/codegen/schemas/array.js +77 -95
- package/dist/core/codegen/schemas/array.js.map +1 -1
- package/dist/core/codegen/schemas/bigint.d.ts +7 -4
- package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
- package/dist/core/codegen/schemas/bigint.js +44 -56
- package/dist/core/codegen/schemas/bigint.js.map +1 -1
- package/dist/core/codegen/schemas/boolean.d.ts +7 -4
- package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
- package/dist/core/codegen/schemas/boolean.js +12 -11
- package/dist/core/codegen/schemas/boolean.js.map +1 -1
- package/dist/core/codegen/schemas/catch.d.ts +8 -5
- package/dist/core/codegen/schemas/catch.d.ts.map +1 -1
- package/dist/core/codegen/schemas/catch.js +23 -23
- package/dist/core/codegen/schemas/catch.js.map +1 -1
- package/dist/core/codegen/schemas/date.d.ts +7 -4
- package/dist/core/codegen/schemas/date.d.ts.map +1 -1
- package/dist/core/codegen/schemas/date.js +49 -68
- package/dist/core/codegen/schemas/date.js.map +1 -1
- package/dist/core/codegen/schemas/default.d.ts +9 -6
- package/dist/core/codegen/schemas/default.d.ts.map +1 -1
- package/dist/core/codegen/schemas/default.js +29 -27
- package/dist/core/codegen/schemas/default.js.map +1 -1
- package/dist/core/codegen/schemas/discriminated-union.d.ts +12 -10
- package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
- package/dist/core/codegen/schemas/discriminated-union.js +153 -178
- package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
- package/dist/core/codegen/schemas/effect.d.ts +9 -6
- package/dist/core/codegen/schemas/effect.d.ts.map +1 -1
- package/dist/core/codegen/schemas/effect.js +54 -67
- package/dist/core/codegen/schemas/effect.js.map +1 -1
- package/dist/core/codegen/schemas/enum.d.ts +7 -4
- package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
- package/dist/core/codegen/schemas/enum.js +15 -21
- package/dist/core/codegen/schemas/enum.js.map +1 -1
- package/dist/core/codegen/schemas/fallback.d.ts +6 -3
- package/dist/core/codegen/schemas/fallback.d.ts.map +1 -1
- package/dist/core/codegen/schemas/fallback.js +14 -13
- package/dist/core/codegen/schemas/fallback.js.map +1 -1
- package/dist/core/codegen/schemas/file.d.ts +7 -4
- package/dist/core/codegen/schemas/file.d.ts.map +1 -1
- package/dist/core/codegen/schemas/file.js +51 -57
- package/dist/core/codegen/schemas/file.js.map +1 -1
- package/dist/core/codegen/schemas/intersection.d.ts +8 -5
- package/dist/core/codegen/schemas/intersection.d.ts.map +1 -1
- package/dist/core/codegen/schemas/intersection.js +16 -13
- package/dist/core/codegen/schemas/intersection.js.map +1 -1
- package/dist/core/codegen/schemas/literal.d.ts +7 -4
- package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
- package/dist/core/codegen/schemas/literal.js +20 -23
- package/dist/core/codegen/schemas/literal.js.map +1 -1
- package/dist/core/codegen/schemas/map.d.ts +8 -5
- package/dist/core/codegen/schemas/map.d.ts.map +1 -1
- package/dist/core/codegen/schemas/map.js +61 -67
- package/dist/core/codegen/schemas/map.js.map +1 -1
- package/dist/core/codegen/schemas/nan.d.ts +7 -4
- package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
- package/dist/core/codegen/schemas/nan.js +8 -4
- package/dist/core/codegen/schemas/nan.js.map +1 -1
- package/dist/core/codegen/schemas/never.d.ts +7 -4
- package/dist/core/codegen/schemas/never.d.ts.map +1 -1
- package/dist/core/codegen/schemas/never.js +8 -4
- package/dist/core/codegen/schemas/never.js.map +1 -1
- package/dist/core/codegen/schemas/null.d.ts +7 -4
- package/dist/core/codegen/schemas/null.d.ts.map +1 -1
- package/dist/core/codegen/schemas/null.js +8 -4
- package/dist/core/codegen/schemas/null.js.map +1 -1
- package/dist/core/codegen/schemas/nullable.d.ts +8 -5
- package/dist/core/codegen/schemas/nullable.d.ts.map +1 -1
- package/dist/core/codegen/schemas/nullable.js +8 -5
- package/dist/core/codegen/schemas/nullable.js.map +1 -1
- package/dist/core/codegen/schemas/number.d.ts +7 -4
- package/dist/core/codegen/schemas/number.d.ts.map +1 -1
- package/dist/core/codegen/schemas/number.js +120 -176
- package/dist/core/codegen/schemas/number.js.map +1 -1
- package/dist/core/codegen/schemas/object.d.ts +8 -5
- package/dist/core/codegen/schemas/object.d.ts.map +1 -1
- package/dist/core/codegen/schemas/object.js +144 -231
- package/dist/core/codegen/schemas/object.js.map +1 -1
- package/dist/core/codegen/schemas/optional.d.ts +9 -6
- package/dist/core/codegen/schemas/optional.d.ts.map +1 -1
- package/dist/core/codegen/schemas/optional.js +23 -31
- package/dist/core/codegen/schemas/optional.js.map +1 -1
- package/dist/core/codegen/schemas/pipe.d.ts +8 -5
- package/dist/core/codegen/schemas/pipe.d.ts.map +1 -1
- package/dist/core/codegen/schemas/pipe.js +20 -27
- package/dist/core/codegen/schemas/pipe.js.map +1 -1
- package/dist/core/codegen/schemas/readonly.d.ts +8 -5
- package/dist/core/codegen/schemas/readonly.d.ts.map +1 -1
- package/dist/core/codegen/schemas/readonly.js +8 -5
- package/dist/core/codegen/schemas/readonly.js.map +1 -1
- package/dist/core/codegen/schemas/record.d.ts +8 -5
- package/dist/core/codegen/schemas/record.d.ts.map +1 -1
- package/dist/core/codegen/schemas/record.js +52 -65
- package/dist/core/codegen/schemas/record.js.map +1 -1
- package/dist/core/codegen/schemas/recursive-ref.d.ts +9 -6
- package/dist/core/codegen/schemas/recursive-ref.d.ts.map +1 -1
- package/dist/core/codegen/schemas/recursive-ref.js +44 -44
- package/dist/core/codegen/schemas/recursive-ref.js.map +1 -1
- package/dist/core/codegen/schemas/set.d.ts +8 -5
- package/dist/core/codegen/schemas/set.d.ts.map +1 -1
- package/dist/core/codegen/schemas/set.js +61 -73
- package/dist/core/codegen/schemas/set.js.map +1 -1
- package/dist/core/codegen/schemas/string-bool.d.ts +6 -3
- package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
- package/dist/core/codegen/schemas/string-bool.js +22 -23
- package/dist/core/codegen/schemas/string-bool.js.map +1 -1
- package/dist/core/codegen/schemas/string.d.ts +8 -5
- package/dist/core/codegen/schemas/string.d.ts.map +1 -1
- package/dist/core/codegen/schemas/string.js +168 -207
- package/dist/core/codegen/schemas/string.js.map +1 -1
- package/dist/core/codegen/schemas/symbol.d.ts +7 -4
- package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
- package/dist/core/codegen/schemas/symbol.js +8 -4
- package/dist/core/codegen/schemas/symbol.js.map +1 -1
- package/dist/core/codegen/schemas/template-literal.d.ts +7 -4
- package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
- package/dist/core/codegen/schemas/template-literal.js +12 -13
- package/dist/core/codegen/schemas/template-literal.js.map +1 -1
- package/dist/core/codegen/schemas/tuple.d.ts +8 -5
- package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
- package/dist/core/codegen/schemas/tuple.js +84 -94
- package/dist/core/codegen/schemas/tuple.js.map +1 -1
- package/dist/core/codegen/schemas/undefined.d.ts +7 -4
- package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
- package/dist/core/codegen/schemas/undefined.js +8 -4
- package/dist/core/codegen/schemas/undefined.js.map +1 -1
- package/dist/core/codegen/schemas/union.d.ts +8 -5
- package/dist/core/codegen/schemas/union.d.ts.map +1 -1
- package/dist/core/codegen/schemas/union.js +49 -69
- package/dist/core/codegen/schemas/union.js.map +1 -1
- package/dist/core/codegen/schemas/unknown.d.ts +7 -4
- package/dist/core/codegen/schemas/unknown.d.ts.map +1 -1
- package/dist/core/codegen/schemas/unknown.js +8 -4
- package/dist/core/codegen/schemas/unknown.js.map +1 -1
- package/dist/core/codegen/schemas/void.d.ts +7 -4
- package/dist/core/codegen/schemas/void.d.ts.map +1 -1
- package/dist/core/codegen/schemas/void.js +8 -4
- package/dist/core/codegen/schemas/void.js.map +1 -1
- package/dist/core/codegen/slow-path.d.ts +7 -4
- package/dist/core/codegen/slow-path.d.ts.map +1 -1
- package/dist/core/codegen/slow-path.js +71 -96
- package/dist/core/codegen/slow-path.js.map +1 -1
- package/dist/core/codegen/well-known-regex.d.ts +22 -19
- package/dist/core/codegen/well-known-regex.d.ts.map +1 -1
- package/dist/core/codegen/well-known-regex.js +127 -96
- package/dist/core/codegen/well-known-regex.js.map +1 -1
- package/dist/core/compile.d.ts +7 -4
- package/dist/core/compile.d.ts.map +1 -1
- package/dist/core/compile.js +48 -48
- package/dist/core/compile.js.map +1 -1
- package/dist/core/diagnostic.d.ts +38 -39
- package/dist/core/diagnostic.d.ts.map +1 -1
- package/dist/core/diagnostic.js +140 -164
- package/dist/core/diagnostic.js.map +1 -1
- package/dist/core/extract/checks.d.ts +18 -15
- package/dist/core/extract/checks.d.ts.map +1 -1
- package/dist/core/extract/checks.js +318 -311
- package/dist/core/extract/checks.js.map +1 -1
- package/dist/core/extract/effects.d.ts +13 -10
- package/dist/core/extract/effects.d.ts.map +1 -1
- package/dist/core/extract/effects.js +153 -222
- package/dist/core/extract/effects.js.map +1 -1
- package/dist/core/extract/extractors/any.d.ts +5 -2
- package/dist/core/extract/extractors/any.d.ts.map +1 -1
- package/dist/core/extract/extractors/any.js +5 -1
- package/dist/core/extract/extractors/any.js.map +1 -1
- package/dist/core/extract/extractors/array.d.ts +6 -3
- package/dist/core/extract/extractors/array.d.ts.map +1 -1
- package/dist/core/extract/extractors/array.js +25 -20
- package/dist/core/extract/extractors/array.js.map +1 -1
- package/dist/core/extract/extractors/bigint.d.ts +6 -3
- package/dist/core/extract/extractors/bigint.d.ts.map +1 -1
- package/dist/core/extract/extractors/bigint.js +66 -64
- package/dist/core/extract/extractors/bigint.js.map +1 -1
- package/dist/core/extract/extractors/boolean.d.ts +5 -2
- package/dist/core/extract/extractors/boolean.d.ts.map +1 -1
- package/dist/core/extract/extractors/boolean.js +7 -3
- package/dist/core/extract/extractors/boolean.js.map +1 -1
- package/dist/core/extract/extractors/catch.d.ts +6 -3
- package/dist/core/extract/extractors/catch.d.ts.map +1 -1
- package/dist/core/extract/extractors/catch.js +26 -17
- package/dist/core/extract/extractors/catch.js.map +1 -1
- package/dist/core/extract/extractors/date.d.ts +6 -3
- package/dist/core/extract/extractors/date.d.ts.map +1 -1
- package/dist/core/extract/extractors/date.js +42 -46
- package/dist/core/extract/extractors/date.js.map +1 -1
- package/dist/core/extract/extractors/default.d.ts +6 -3
- package/dist/core/extract/extractors/default.d.ts.map +1 -1
- package/dist/core/extract/extractors/default.js +20 -14
- package/dist/core/extract/extractors/default.js.map +1 -1
- package/dist/core/extract/extractors/enum.d.ts +5 -2
- package/dist/core/extract/extractors/enum.d.ts.map +1 -1
- package/dist/core/extract/extractors/enum.js +12 -13
- package/dist/core/extract/extractors/enum.js.map +1 -1
- package/dist/core/extract/extractors/file.d.ts +6 -3
- package/dist/core/extract/extractors/file.d.ts.map +1 -1
- package/dist/core/extract/extractors/file.js +34 -28
- package/dist/core/extract/extractors/file.js.map +1 -1
- package/dist/core/extract/extractors/intersection.d.ts +5 -2
- package/dist/core/extract/extractors/intersection.d.ts.map +1 -1
- package/dist/core/extract/extractors/intersection.js +13 -11
- package/dist/core/extract/extractors/intersection.js.map +1 -1
- package/dist/core/extract/extractors/lazy.d.ts +6 -3
- package/dist/core/extract/extractors/lazy.d.ts.map +1 -1
- package/dist/core/extract/extractors/lazy.js +21 -30
- package/dist/core/extract/extractors/lazy.js.map +1 -1
- package/dist/core/extract/extractors/literal.d.ts +5 -2
- package/dist/core/extract/extractors/literal.d.ts.map +1 -1
- package/dist/core/extract/extractors/literal.js +8 -1
- package/dist/core/extract/extractors/literal.js.map +1 -1
- package/dist/core/extract/extractors/map.d.ts +6 -3
- package/dist/core/extract/extractors/map.d.ts.map +1 -1
- package/dist/core/extract/extractors/map.js +10 -4
- package/dist/core/extract/extractors/map.js.map +1 -1
- package/dist/core/extract/extractors/nan.d.ts +5 -2
- package/dist/core/extract/extractors/nan.d.ts.map +1 -1
- package/dist/core/extract/extractors/nan.js +5 -1
- package/dist/core/extract/extractors/nan.js.map +1 -1
- package/dist/core/extract/extractors/never.d.ts +5 -2
- package/dist/core/extract/extractors/never.d.ts.map +1 -1
- package/dist/core/extract/extractors/never.js +5 -1
- package/dist/core/extract/extractors/never.js.map +1 -1
- package/dist/core/extract/extractors/null.d.ts +5 -2
- package/dist/core/extract/extractors/null.d.ts.map +1 -1
- package/dist/core/extract/extractors/null.js +5 -1
- package/dist/core/extract/extractors/null.js.map +1 -1
- package/dist/core/extract/extractors/nullable.d.ts +5 -2
- package/dist/core/extract/extractors/nullable.d.ts.map +1 -1
- package/dist/core/extract/extractors/nullable.js +7 -3
- package/dist/core/extract/extractors/nullable.js.map +1 -1
- package/dist/core/extract/extractors/number.d.ts +6 -3
- package/dist/core/extract/extractors/number.d.ts.map +1 -1
- package/dist/core/extract/extractors/number.js +35 -35
- package/dist/core/extract/extractors/number.js.map +1 -1
- package/dist/core/extract/extractors/object.d.ts +6 -3
- package/dist/core/extract/extractors/object.d.ts.map +1 -1
- package/dist/core/extract/extractors/object.js +49 -76
- package/dist/core/extract/extractors/object.js.map +1 -1
- package/dist/core/extract/extractors/optional.d.ts +5 -2
- package/dist/core/extract/extractors/optional.d.ts.map +1 -1
- package/dist/core/extract/extractors/optional.js +10 -12
- package/dist/core/extract/extractors/optional.js.map +1 -1
- package/dist/core/extract/extractors/pipe.d.ts +6 -3
- package/dist/core/extract/extractors/pipe.d.ts.map +1 -1
- package/dist/core/extract/extractors/pipe.js +40 -41
- package/dist/core/extract/extractors/pipe.js.map +1 -1
- package/dist/core/extract/extractors/readonly.d.ts +5 -2
- package/dist/core/extract/extractors/readonly.d.ts.map +1 -1
- package/dist/core/extract/extractors/readonly.js +10 -6
- package/dist/core/extract/extractors/readonly.js.map +1 -1
- package/dist/core/extract/extractors/record.d.ts +6 -3
- package/dist/core/extract/extractors/record.d.ts.map +1 -1
- package/dist/core/extract/extractors/record.js +24 -35
- package/dist/core/extract/extractors/record.js.map +1 -1
- package/dist/core/extract/extractors/set.d.ts +6 -3
- package/dist/core/extract/extractors/set.d.ts.map +1 -1
- package/dist/core/extract/extractors/set.js +36 -30
- package/dist/core/extract/extractors/set.js.map +1 -1
- package/dist/core/extract/extractors/string-bool.d.ts +7 -4
- package/dist/core/extract/extractors/string-bool.d.ts.map +1 -1
- package/dist/core/extract/extractors/string-bool.js +66 -84
- package/dist/core/extract/extractors/string-bool.js.map +1 -1
- package/dist/core/extract/extractors/string.d.ts +6 -3
- package/dist/core/extract/extractors/string.d.ts.map +1 -1
- package/dist/core/extract/extractors/string.js +34 -37
- package/dist/core/extract/extractors/string.js.map +1 -1
- package/dist/core/extract/extractors/symbol.d.ts +5 -2
- package/dist/core/extract/extractors/symbol.d.ts.map +1 -1
- package/dist/core/extract/extractors/symbol.js +5 -1
- package/dist/core/extract/extractors/symbol.js.map +1 -1
- package/dist/core/extract/extractors/template-literal.d.ts +6 -3
- package/dist/core/extract/extractors/template-literal.d.ts.map +1 -1
- package/dist/core/extract/extractors/template-literal.js +11 -6
- package/dist/core/extract/extractors/template-literal.js.map +1 -1
- package/dist/core/extract/extractors/tuple.d.ts +6 -3
- package/dist/core/extract/extractors/tuple.d.ts.map +1 -1
- package/dist/core/extract/extractors/tuple.js +10 -4
- package/dist/core/extract/extractors/tuple.js.map +1 -1
- package/dist/core/extract/extractors/undefined.d.ts +5 -2
- package/dist/core/extract/extractors/undefined.d.ts.map +1 -1
- package/dist/core/extract/extractors/undefined.js +5 -1
- package/dist/core/extract/extractors/undefined.js.map +1 -1
- package/dist/core/extract/extractors/union.d.ts +6 -3
- package/dist/core/extract/extractors/union.d.ts.map +1 -1
- package/dist/core/extract/extractors/union.js +38 -64
- package/dist/core/extract/extractors/union.js.map +1 -1
- package/dist/core/extract/extractors/unknown.d.ts +5 -2
- package/dist/core/extract/extractors/unknown.d.ts.map +1 -1
- package/dist/core/extract/extractors/unknown.js +5 -1
- package/dist/core/extract/extractors/unknown.js.map +1 -1
- package/dist/core/extract/extractors/void.d.ts +5 -2
- package/dist/core/extract/extractors/void.d.ts.map +1 -1
- package/dist/core/extract/extractors/void.js +5 -1
- package/dist/core/extract/extractors/void.js.map +1 -1
- package/dist/core/extract/fallback.d.ts +6 -3
- package/dist/core/extract/fallback.d.ts.map +1 -1
- package/dist/core/extract/fallback.js +21 -7
- package/dist/core/extract/fallback.js.map +1 -1
- package/dist/core/extract/index.d.ts +6 -4
- package/dist/core/extract/index.d.ts.map +1 -1
- package/dist/core/extract/index.js +15 -15
- package/dist/core/extract/index.js.map +1 -1
- package/dist/core/extract/registry.d.ts +39 -36
- package/dist/core/extract/registry.d.ts.map +1 -1
- package/dist/core/extract/registry.js +96 -123
- package/dist/core/extract/registry.js.map +1 -1
- package/dist/core/extract/types.d.ts +124 -120
- package/dist/core/extract/types.d.ts.map +1 -1
- package/dist/core/extract/types.js +0 -1
- package/dist/core/iife.d.ts +14 -15
- package/dist/core/iife.d.ts.map +1 -1
- package/dist/core/iife.js +182 -206
- package/dist/core/iife.js.map +1 -1
- package/dist/core/pipeline.d.ts +33 -30
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +67 -74
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/types.d.ts +430 -427
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -5
- package/dist/discovery.d.ts +8 -5
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +31 -32
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/jit.d.ts +15 -42
- package/dist/jit.d.ts.map +1 -1
- package/dist/jit.js +187 -216
- package/dist/jit.js.map +1 -1
- package/dist/loader.d.ts +14 -11
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +226 -258
- package/dist/loader.js.map +1 -1
- package/dist/static-filter.d.ts +4 -1
- package/dist/static-filter.d.ts.map +1 -1
- package/dist/static-filter.js +240 -367
- package/dist/static-filter.js.map +1 -1
- package/dist/swc.d.ts +38 -35
- package/dist/swc.d.ts.map +1 -1
- package/dist/swc.js +83 -76
- package/dist/swc.js.map +1 -1
- package/dist/unplugin/bun.d.ts +5 -2
- package/dist/unplugin/bun.d.ts.map +1 -1
- package/dist/unplugin/bun.js +5 -1
- package/dist/unplugin/bun.js.map +1 -1
- package/dist/unplugin/dep-graph.d.ts +10 -7
- package/dist/unplugin/dep-graph.d.ts.map +1 -1
- package/dist/unplugin/dep-graph.js +216 -252
- package/dist/unplugin/dep-graph.js.map +1 -1
- package/dist/unplugin/disk-cache.d.ts +121 -92
- package/dist/unplugin/disk-cache.d.ts.map +1 -1
- package/dist/unplugin/disk-cache.js +425 -444
- package/dist/unplugin/disk-cache.js.map +1 -1
- package/dist/unplugin/edits.d.ts +15 -12
- package/dist/unplugin/edits.d.ts.map +1 -1
- package/dist/unplugin/edits.js +24 -37
- package/dist/unplugin/edits.js.map +1 -1
- package/dist/unplugin/esbuild.d.ts +5 -2
- package/dist/unplugin/esbuild.d.ts.map +1 -1
- package/dist/unplugin/esbuild.js +5 -1
- package/dist/unplugin/esbuild.js.map +1 -1
- package/dist/unplugin/farm.d.ts +5 -2
- package/dist/unplugin/farm.d.ts.map +1 -1
- package/dist/unplugin/farm.js +5 -1
- package/dist/unplugin/farm.js.map +1 -1
- package/dist/unplugin/hoist-compile.d.ts +14 -42
- package/dist/unplugin/hoist-compile.d.ts.map +1 -1
- package/dist/unplugin/hoist-compile.js +67 -112
- package/dist/unplugin/hoist-compile.js.map +1 -1
- package/dist/unplugin/hoist.d.ts +56 -54
- package/dist/unplugin/hoist.d.ts.map +1 -1
- package/dist/unplugin/hoist.js +945 -1170
- package/dist/unplugin/hoist.js.map +1 -1
- package/dist/unplugin/index.d.ts +5 -3
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +175 -250
- package/dist/unplugin/index.js.map +1 -1
- package/dist/unplugin/rolldown.d.ts +5 -2
- package/dist/unplugin/rolldown.d.ts.map +1 -1
- package/dist/unplugin/rolldown.js +5 -1
- package/dist/unplugin/rolldown.js.map +1 -1
- package/dist/unplugin/rollup.d.ts +5 -2
- package/dist/unplugin/rollup.d.ts.map +1 -1
- package/dist/unplugin/rollup.js +5 -1
- package/dist/unplugin/rollup.js.map +1 -1
- package/dist/unplugin/rsbuild.d.ts +6 -3
- package/dist/unplugin/rsbuild.d.ts.map +1 -1
- package/dist/unplugin/rsbuild.js +15 -11
- package/dist/unplugin/rsbuild.js.map +1 -1
- package/dist/unplugin/rspack.d.ts +5 -2
- package/dist/unplugin/rspack.d.ts.map +1 -1
- package/dist/unplugin/rspack.js +5 -1
- package/dist/unplugin/rspack.js.map +1 -1
- package/dist/unplugin/transform.d.ts +30 -27
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +433 -620
- package/dist/unplugin/transform.js.map +1 -1
- package/dist/unplugin/types.d.ts +189 -184
- package/dist/unplugin/types.d.ts.map +1 -1
- package/dist/unplugin/types.js +22 -18
- package/dist/unplugin/types.js.map +1 -1
- package/dist/unplugin/virtual.d.ts +11 -8
- package/dist/unplugin/virtual.d.ts.map +1 -1
- package/dist/unplugin/virtual.js +65 -83
- package/dist/unplugin/virtual.js.map +1 -1
- package/dist/unplugin/vite.d.ts +5 -2
- package/dist/unplugin/vite.d.ts.map +1 -1
- package/dist/unplugin/vite.js +5 -1
- package/dist/unplugin/vite.js.map +1 -1
- package/dist/unplugin/webpack.d.ts +5 -2
- package/dist/unplugin/webpack.d.ts.map +1 -1
- package/dist/unplugin/webpack.js +5 -1
- package/dist/unplugin/webpack.js.map +1 -1
- package/package.json +23 -14
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/core/extract/types.js.map +0 -1
- package/dist/core/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-filter.js","sourceRoot":"","sources":["../src/static-filter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAuB9B,4EAA4E;AAC5E,IAAI,kBAA6C,CAAC;AAElD,SAAS,cAAc;IACrB,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAC5D,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,CACnF,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IACnE,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI;YACZ,QAAQ;YACR,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YACjC,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpC,qEAAqE;YACrE,6DAA6D;YAC7D,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,uEAAuE;QACvE,6CAA6C;QAC7C,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAUD,SAAS,cAAc,CAAC,OAAgB;IACtC,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,+DAA+D;IAC/D,wEAAwE;IACxE,yCAAyC;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,SAAS,gBAAgB,CAAC,IAAgB;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACpC,iEAAiE;gBACjE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/E,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,wEAAwE;QACxE,qEAAqE;QACrE,kDAAkD;QAClD,IAAI,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC5E,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAClC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3B,mEAAmE;oBACnE,kCAAkC;oBAClC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI;oBAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEvE,SAAS,iBAAiB,CAAC,IAAY,EAAE,UAAmB,EAAE,IAAiB;QAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,WAAW,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QAC5D,OAAO,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,SAAS,aAAa,CACpB,IAAgB,EAChB,UAAmB,EACnB,IAAiB,EACjB,YAA+B;QAE/B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC;YACf,KAAK,iBAAiB,CAAC;YACvB,KAAK,yBAAyB,CAAC;YAC/B,KAAK,oBAAoB,CAAC;YAC1B,KAAK,iBAAiB,CAAC;YACvB,KAAK,iBAAiB,CAAC;YACvB,KAAK,kBAAkB,CAAC;YACxB,KAAK,kBAAkB;gBACrB,OAAO,MAAM,CAAC;YAChB,KAAK,kBAAkB,CAAC;YACxB,KAAK,iBAAiB;gBACpB,mEAAmE;gBACnE,iEAAiE;gBACjE,gEAAgE;gBAChE,oEAAoE;gBACpE,IAAI,UAAU;oBAAE,OAAO,WAAW,CAAC;gBACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YACjF,KAAK,YAAY;gBACf,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACxD,KAAK,uBAAuB;gBAC1B,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,MAAM;oBAC9E,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,MAAM;oBACxE,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,WAAW,CAAC;YAClB,KAAK,mBAAmB;gBACtB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,MAAM;oBACxE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,MAAM;oBACpE,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,WAAW,CAAC;YAClB,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAClF,CAAC;YACD,KAAK,sBAAsB;gBACzB,OAAO,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAC1F;gBACE,wEAAwE;gBACxE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,SAAS,iBAAiB,CAAC,IAAgB,EAAE,YAAqB;QAChE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,YAAY,GAAa,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC;YACxD,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO;gBAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,CAAC,KAAK,WAAW;oBACtE,OAAO,WAAW,CAAC;YACvB,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3C,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,CAAC,KAAK,WAAW;oBAAE,OAAO,WAAW,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,sEAAsE;QACtE,8DAA8D;QAC9D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAED,SAAS,0BAA0B,CAAC,IAAyB;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACzB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,WAAW;oBAAE,OAAO,WAAW,CAAC;YACrF,CAAC;iBAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,oEAAoE;gBACpE,kEAAkE;gBAClE,mCAAmC;gBACnC,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,gBAAgB,CAAC,IAAe;QACvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,qBAAqB,CAAC;YAC3B,KAAK,kBAAkB;gBACrB,oEAAoE;gBACpE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD,KAAK,qBAAqB;gBACxB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,qBAAqB;gBACxB,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,KAAK,gBAAgB;gBACnB,OAAO,MAAM,CAAC;YAChB;gBACE,kEAAkE;gBAClE,8DAA8D;gBAC9D,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,CAAC;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAgB;QACzC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS;gBACZ,oCAAoC;gBACpC,OAAO,MAAM,CAAC;YAChB,KAAK,sBAAsB;gBACzB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,WAAW;wBAAE,OAAO,WAAW,CAAC;gBACjE,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,gBAAgB;gBACnB,IAAI,gBAAgB,CAAC,IAAI,CAAC;oBAAE,OAAO,MAAM,CAAC;gBAC1C,kDAAkD;gBAClD,sDAAsD;gBACtD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD;gBACE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAgB;IAI7C,MAAM,OAAO,GAAmC,EAAE,CAAC;IACnD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,OAAO,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,iEAAiE;AACjE,SAAS,cAAc,CAAC,MAAoC;IAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7E,CAAC;IACD,MAAM,QAAQ,GACZ,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;QACvD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;QACtB,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC;IAEb,kBAAkB;IAClB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5E,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC1F,CAAC;IACD,oEAAoE;IACpE,oCAAoC;IACpC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5E,CAAC;IACD,yBAAyB;IACzB,IACE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;QACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;QACtC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;QACvB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;QAC5C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EACzC,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7E,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,IAAgB;IACxC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;QACpC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB;QAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,YAAY;QACxC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;QACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,SAAS;QACrC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CACzC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,OAAgB,EAAE,QAAqB;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,KAAK,GAAc,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAEvC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC1D,2CAA2C;YAC3C,IAAI,GAAG,KAAK,UAAU,IAAI,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI;gBAClF,SAAS;YACX,IACE,GAAG,KAAK,KAAK;gBACb,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,kBAAkB,CAAC;gBACrF,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI;gBAE3B,SAAS;YACX,IAAI,GAAG,KAAK,OAAO;gBAAE,SAAS;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvC,IACE,MAAM,CAAC,MAAM,CAAC,KAAK,YAAY;gBAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,EAC7D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"static-filter.js","names":[],"sources":["../src/static-filter.ts"],"sourcesContent":["import path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type {\n AnyNode,\n AssignmentExpression,\n Expression,\n Program,\n Statement,\n VariableDeclaration,\n} from \"acorn\";\nimport { parse } from \"acorn\";\nimport type { Jiti } from \"jiti\";\n\n/**\n * Static pre-filter: decide whether a source file could export Zod schemas\n * WITHOUT executing it.\n *\n * Discovery executes candidate files (and, transitively, their whole import\n * graph) to scan exports. In autoDiscover mode most files that import zod\n * only export functions, components, or constants — executing them is pure\n * waste. This filter transpiles the single file (no dependencies) with\n * jiti's transform and inspects the top-level exports of the resulting\n * CommonJS with acorn.\n *\n * Conservative by construction: it returns false (\"skip\") only when every\n * export is statically provable as a non-schema (function, class, arrow,\n * literal, ...). Anything unrecognized — call expressions, re-exports,\n * `export *`, dynamic patterns, transpile/parse failures — keeps the file a\n * candidate, so a filter miss costs one execution, never a schema.\n */\n\ntype Classification = \"safe\" | \"candidate\";\n\n/** Lazily created jiti instance used only for single-file transpilation. */\nlet transformerPromise: Promise<Jiti> | undefined;\n\nfunction getTransformer(): Promise<Jiti> {\n transformerPromise ??= import(\"jiti\").then(({ createJiti }) =>\n createJiti(pathToFileURL(path.resolve(\"__zod-compiler-static-filter__.mjs\")).href),\n );\n return transformerPromise;\n}\n\n/**\n * Check whether a file's exports could include Zod schemas (or compile()\n * results) without executing the file. `filename` selects the TS/JSX\n * transforms; the file does not need to exist on disk.\n */\nexport async function mayExportSchemas(code: string, filename: string): Promise<boolean> {\n let transpiled: string;\n try {\n const jiti = await getTransformer();\n transpiled = jiti.transform({\n source: code,\n filename,\n ts: /\\.[cm]?tsx?$/.test(filename),\n jsx: /\\.[cm]?[jt]sx$/.test(filename),\n // async mode keeps top-level await and emits `await jitiImport(...)`\n // instead of failing — statements stay top-level either way.\n async: true,\n });\n } catch {\n return true;\n }\n // jiti reports parse failures by embedding an error marker in the output\n // instead of throwing. We can't analyze such files — keep them candidates\n // so the real loader surfaces (or tolerates) the failure exactly as before.\n if (transpiled.includes(\"__JITI_ERROR__\")) return true;\n\n let program: Program;\n try {\n // Module mode: the CJS output has no import/export statements, but may\n // contain top-level await (async transform).\n program = parse(transpiled, { ecmaVersion: \"latest\", sourceType: \"module\" });\n } catch {\n return true;\n }\n\n return analyzeProgram(program);\n}\n\n/** Where an assignment target sends its value, in discovery terms. */\ntype ExportTarget =\n | { kind: \"named\"; name: string }\n | { kind: \"default\" }\n | { kind: \"local\"; name: string }\n | { kind: \"ignored\" }\n | { kind: \"unknown\" };\n\nfunction analyzeProgram(program: Program): boolean {\n // Pass 1: top-level bindings for identifier resolution, plus the set of\n // identifier nodes that are \"expected\" (declaration ids and exports-chain\n // participants). Pass 2 counts every OTHER reference: a name referenced\n // outside its declaration/export may be mutated after creation\n // (defineProperty, member writes, helper calls), so object/array values\n // it names cannot be proven schema-free.\n const safeDecls = new Set<string>();\n const varInits = new Map<string, Expression | null>();\n const expectedNodes = new Set<object>();\n\n function recordChainNodes(expr: Expression): void {\n let node = expr;\n let hasExportTarget = false;\n while (node.type === \"AssignmentExpression\" && node.operator === \"=\") {\n if (node.left.type === \"Identifier\") {\n // Assignment LHS identifiers rebind — they never read the value.\n expectedNodes.add(node.left);\n } else if (node.left.type === \"MemberExpression\" && mentionsExports(node.left)) {\n hasExportTarget = true;\n }\n node = node.right;\n }\n // The bare-identifier value of an export chain (`exports.f = f`) is the\n // export itself; in a plain local chain (`alias = obj`) it is a real\n // aliasing reference and must count toward taint.\n if (hasExportTarget && node.type === \"Identifier\") expectedNodes.add(node);\n }\n\n for (const stmt of program.body) {\n if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n safeDecls.add(stmt.id.name);\n expectedNodes.add(stmt.id);\n } else if (stmt.type === \"VariableDeclaration\") {\n for (const decl of stmt.declarations) {\n if (decl.id.type === \"Identifier\") {\n expectedNodes.add(decl.id);\n // The init may be an `exports.X = value` chain — resolution should\n // see the final value expression.\n varInits.set(decl.id.name, decl.init ? unwrapAssignmentChain(decl.init).value : null);\n }\n if (decl.init) recordChainNodes(decl.init);\n }\n } else if (stmt.type === \"ExpressionStatement\") {\n recordChainNodes(stmt.expression);\n }\n }\n\n const referencedNames = collectReferencedNames(program, expectedNodes);\n\n function resolveIdentifier(name: string, defaultish: boolean, seen: Set<string>): Classification {\n if (seen.has(name)) return \"candidate\";\n seen.add(name);\n if (safeDecls.has(name)) return \"safe\";\n const init = varInits.get(name);\n if (init === undefined || init === null) return \"candidate\";\n return classifyValue(init, defaultish, seen, [name]);\n }\n\n /**\n * Could this expression evaluate to a Zod schema (an object carrying\n * `_zod.def` or the compile() marker)? `bindingNames` are the local\n * aliases of the value — a mutable container (object/array) is only safe\n * when none of its aliases are referenced elsewhere in the file.\n */\n function classifyValue(\n node: Expression,\n defaultish: boolean,\n seen: Set<string>,\n bindingNames: readonly string[],\n ): Classification {\n switch (node.type) {\n case \"Literal\":\n case \"TemplateLiteral\":\n case \"ArrowFunctionExpression\":\n case \"FunctionExpression\":\n case \"ClassExpression\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"BinaryExpression\":\n return \"safe\";\n case \"ObjectExpression\":\n case \"ArrayExpression\":\n // Discovery unwraps the properties of a default export object (and\n // arrays are objects), so containers are candidates there. Named\n // export containers are never unwrapped — but a container whose\n // alias is referenced elsewhere may be mutated into a schema shape.\n if (defaultish) return \"candidate\";\n return bindingNames.some((n) => referencedNames.has(n)) ? \"candidate\" : \"safe\";\n case \"Identifier\":\n return resolveIdentifier(node.name, defaultish, seen);\n case \"ConditionalExpression\":\n return classifyValue(node.consequent, defaultish, seen, bindingNames) === \"safe\" &&\n classifyValue(node.alternate, defaultish, seen, bindingNames) === \"safe\"\n ? \"safe\"\n : \"candidate\";\n case \"LogicalExpression\":\n return classifyValue(node.left, defaultish, seen, bindingNames) === \"safe\" &&\n classifyValue(node.right, defaultish, seen, bindingNames) === \"safe\"\n ? \"safe\"\n : \"candidate\";\n case \"SequenceExpression\": {\n const last = node.expressions[node.expressions.length - 1];\n return last ? classifyValue(last, defaultish, seen, bindingNames) : \"candidate\";\n }\n case \"AssignmentExpression\":\n return classifyValue(unwrapAssignmentChain(node).value, defaultish, seen, bindingNames);\n default:\n // CallExpression, NewExpression, MemberExpression, AwaitExpression, ...\n return \"candidate\";\n }\n }\n\n /** Process one assignment chain: classify the value for each export target. */\n function processAssignment(expr: Expression, declaredName?: string): Classification {\n const { targets, value } = unwrapAssignmentChain(expr);\n const bindingNames: string[] = declaredName ? [declaredName] : [];\n const exportTargets: ExportTarget[] = [];\n for (const target of targets) {\n const exportTarget = exportTargetOf(target);\n if (exportTarget.kind === \"unknown\") return \"candidate\";\n if (exportTarget.kind === \"local\") bindingNames.push(exportTarget.name);\n exportTargets.push(exportTarget);\n }\n for (const exportTarget of exportTargets) {\n if (exportTarget.kind === \"named\") {\n if (classifyValue(value, false, new Set(), bindingNames) === \"candidate\")\n return \"candidate\";\n } else if (exportTarget.kind === \"default\") {\n if (classifyValue(value, true, new Set(), bindingNames) === \"candidate\") return \"candidate\";\n }\n }\n // Catch-all: the value itself may reference exports in a shape we did\n // not positively classify (e.g. `exports.a = fn(exports.b)`).\n return mentionsExports(value) ? \"candidate\" : \"safe\";\n }\n\n function processVariableDeclaration(stmt: VariableDeclaration): Classification {\n for (const decl of stmt.declarations) {\n if (!decl.init) continue;\n if (decl.id.type === \"Identifier\") {\n if (processAssignment(decl.init, decl.id.name) === \"candidate\") return \"candidate\";\n } else if (mentionsExports(decl.init)) {\n // Destructuring declarators don't export by themselves (babel emits\n // separate `exports.x = x` statements), but be paranoid about any\n // exports reference hiding inside.\n return \"candidate\";\n }\n }\n return \"safe\";\n }\n\n function processStatement(stmt: Statement): Classification {\n switch (stmt.type) {\n case \"FunctionDeclaration\":\n case \"ClassDeclaration\":\n // Bodies that touch exports (hand-written CJS patterns) are opaque.\n return mentionsExports(stmt) ? \"candidate\" : \"safe\";\n case \"VariableDeclaration\":\n return processVariableDeclaration(stmt);\n case \"ExpressionStatement\":\n return processExpression(stmt.expression);\n case \"EmptyStatement\":\n return \"safe\";\n default:\n // if/try/for/... — babel never emits exports there for ESM input,\n // but hand-written CJS might (`if (x) module.exports = ...`).\n return mentionsExports(stmt) ? \"candidate\" : \"safe\";\n }\n }\n\n function processExpression(expr: Expression): Classification {\n switch (expr.type) {\n case \"Literal\":\n // Directive prologue (\"use strict\")\n return \"safe\";\n case \"AssignmentExpression\":\n return processAssignment(expr);\n case \"SequenceExpression\": {\n for (const sub of expr.expressions) {\n if (processExpression(sub) === \"candidate\") return \"candidate\";\n }\n return \"safe\";\n }\n case \"CallExpression\":\n if (isEsModuleMarker(expr)) return \"safe\";\n // Other exports-touching calls: re-export getters\n // (Object.defineProperty), `export *` loops, helpers.\n return mentionsExports(expr) ? \"candidate\" : \"safe\";\n default:\n return mentionsExports(expr) ? \"candidate\" : \"safe\";\n }\n }\n\n for (const stmt of program.body) {\n // The CJS output of jiti's transform contains no module declarations,\n // but if one ever appears, treat the file as a candidate.\n if (!isStatement(stmt)) return true;\n if (processStatement(stmt) === \"candidate\") return true;\n }\n return false;\n}\n\nfunction isStatement(node: AnyNode): node is Statement {\n return !node.type.startsWith(\"Import\") && !node.type.startsWith(\"Export\");\n}\n\n/**\n * Unwrap `a = b = c = value` into its assignment targets and final value.\n * Non-assignment expressions return zero targets and themselves as value.\n */\nfunction unwrapAssignmentChain(expr: Expression): {\n targets: AssignmentExpression[\"left\"][];\n value: Expression;\n} {\n const targets: AssignmentExpression[\"left\"][] = [];\n let value = expr;\n while (value.type === \"AssignmentExpression\" && value.operator === \"=\") {\n targets.push(value.left);\n value = value.right;\n }\n return { targets, value };\n}\n\n/** Classify an assignment target by what discovery would see. */\nfunction exportTargetOf(target: AssignmentExpression[\"left\"]): ExportTarget {\n if (target.type === \"Identifier\") {\n if (target.name === \"exports\" || target.name === \"module\") return { kind: \"unknown\" };\n return { kind: \"local\", name: target.name };\n }\n if (target.type !== \"MemberExpression\") {\n return mentionsExports(target) ? { kind: \"unknown\" } : { kind: \"ignored\" };\n }\n const propName =\n !target.computed && target.property.type === \"Identifier\"\n ? target.property.name\n : target.computed && target.property.type === \"Literal\"\n ? String(target.property.value)\n : null;\n\n // exports.X = ...\n if (target.object.type === \"Identifier\" && target.object.name === \"exports\") {\n if (propName === null) return { kind: \"unknown\" };\n return propName === \"default\" ? { kind: \"default\" } : { kind: \"named\", name: propName };\n }\n // module.exports = ... behaves like a default export after interop:\n // discovery unwraps its properties.\n if (target.object.type === \"Identifier\" && target.object.name === \"module\") {\n return propName === \"exports\" ? { kind: \"default\" } : { kind: \"unknown\" };\n }\n // module.exports.X = ...\n if (\n target.object.type === \"MemberExpression\" &&\n target.object.object.type === \"Identifier\" &&\n target.object.object.name === \"module\" &&\n !target.object.computed &&\n target.object.property.type === \"Identifier\" &&\n target.object.property.name === \"exports\"\n ) {\n if (propName === null) return { kind: \"unknown\" };\n return propName === \"default\" ? { kind: \"default\" } : { kind: \"named\", name: propName };\n }\n return mentionsExports(target) ? { kind: \"unknown\" } : { kind: \"ignored\" };\n}\n\n/** Object.defineProperty(exports, \"__esModule\", { value: true }) */\nfunction isEsModuleMarker(expr: Expression): boolean {\n return (\n expr.type === \"CallExpression\" &&\n expr.callee.type === \"MemberExpression\" &&\n expr.callee.object.type === \"Identifier\" &&\n expr.callee.object.name === \"Object\" &&\n !expr.callee.computed &&\n expr.callee.property.type === \"Identifier\" &&\n expr.callee.property.name === \"defineProperty\" &&\n expr.arguments[0]?.type === \"Identifier\" &&\n expr.arguments[0].name === \"exports\" &&\n expr.arguments[1]?.type === \"Literal\" &&\n expr.arguments[1].value === \"__esModule\"\n );\n}\n\n/**\n * Collect every identifier name used in a reference position, excluding the\n * `expected` nodes (declaration ids and exports-chain participants).\n * Non-reference positions — non-computed member properties, non-computed\n * object/class keys, labels — are skipped. Over-counting (e.g. shadowed\n * names in nested scopes, function params) only makes the filter more\n * conservative, never less safe.\n */\nfunction collectReferencedNames(program: Program, expected: Set<object>): Set<string> {\n const names = new Set<string>();\n const stack: unknown[] = [program];\n while (stack.length > 0) {\n const node = stack.pop();\n if (Array.isArray(node)) {\n for (const item of node) stack.push(item);\n continue;\n }\n if (typeof node !== \"object\" || node === null) continue;\n const record = node as Record<string, unknown>;\n const type = record[\"type\"];\n if (typeof type !== \"string\") continue;\n\n if (type === \"Identifier\") {\n if (!expected.has(node)) names.add(record[\"name\"] as string);\n continue;\n }\n\n for (const [key, value] of Object.entries(record)) {\n if (typeof value !== \"object\" || value === null) continue;\n // Skip non-reference identifier positions.\n if (key === \"property\" && type === \"MemberExpression\" && record[\"computed\"] !== true)\n continue;\n if (\n key === \"key\" &&\n (type === \"Property\" || type === \"PropertyDefinition\" || type === \"MethodDefinition\") &&\n record[\"computed\"] !== true\n )\n continue;\n if (key === \"label\") continue;\n stack.push(value);\n }\n }\n return names;\n}\n\n/** Deep-walk an acorn node for any reference to `exports` or `module`. */\nfunction mentionsExports(root: object): boolean {\n const stack: unknown[] = [root];\n while (stack.length > 0) {\n const node = stack.pop();\n if (Array.isArray(node)) {\n for (const item of node) stack.push(item);\n continue;\n }\n if (typeof node !== \"object\" || node === null) continue;\n const record = node as Record<string, unknown>;\n if (typeof record[\"type\"] === \"string\") {\n if (\n record[\"type\"] === \"Identifier\" &&\n (record[\"name\"] === \"exports\" || record[\"name\"] === \"module\")\n ) {\n return true;\n }\n }\n for (const value of Object.values(record)) {\n if (typeof value === \"object\" && value !== null) stack.push(value);\n }\n }\n return false;\n}\n"],"mappings":"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"}
|
package/dist/swc.d.ts
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ZodCompilerPluginOptions } from "./unplugin/types.js";
|
|
2
|
+
//#region src/swc.d.ts
|
|
2
3
|
/**
|
|
3
4
|
* Minimal @swc/core option shape. zod-compiler keeps @swc/core optional so
|
|
4
5
|
* non-SWC users do not install a native dependency just by using the package.
|
|
5
6
|
* `inputSourceMap` matches @swc/core: a JSON string or a boolean — swc does
|
|
6
7
|
* not accept map objects.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
interface SwcOptions {
|
|
10
|
+
filename?: string | undefined;
|
|
11
|
+
inputSourceMap?: boolean | string | undefined;
|
|
12
|
+
sourceMaps?: boolean | "inline" | undefined;
|
|
13
|
+
[key: string]: unknown;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
interface SwcOutput {
|
|
16
|
+
code: string;
|
|
17
|
+
map?: string | undefined;
|
|
18
|
+
[key: string]: unknown;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
interface SwcCoreLike {
|
|
21
|
+
transform(code: string, options?: SwcOptions): Promise<SwcOutput>;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Plugin options that make sense for a transformer host. `apply` is Vite
|
|
@@ -26,35 +27,37 @@ export interface SwcCoreLike {
|
|
|
26
27
|
* content themselves. `include`/`exclude` are honored: files they reject
|
|
27
28
|
* pass through to SWC without the zod-compiler step.
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
type ZodCompilerSwcOptions = Omit<ZodCompilerPluginOptions, "apply" | "cache" | "codegenMode"> & {
|
|
31
|
+
/**
|
|
32
|
+
* SWC is a transformer, not a bundler plugin host, so inline is the safe
|
|
33
|
+
* default. Lean mode may emit virtual runtime imports that SWC cannot resolve
|
|
34
|
+
* unless another tool handles them after SWC.
|
|
35
|
+
*/
|
|
36
|
+
codegenMode?: "inline" | "lean" | undefined;
|
|
36
37
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
interface SwcBridgeDefaults {
|
|
39
|
+
/** Options passed through to @swc/core.transform. */
|
|
40
|
+
swc?: SwcOptions | undefined;
|
|
41
|
+
/** zod-compiler options. Defaults match the build plugins except codegenMode is "inline". */
|
|
42
|
+
zodCompiler?: ZodCompilerSwcOptions | undefined;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
interface SwcBridgeTransformOptions extends SwcBridgeDefaults {
|
|
45
|
+
/** Absolute or project-relative filename for schema discovery and SWC config resolution. */
|
|
46
|
+
filename: string;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
interface SwcBridge {
|
|
49
|
+
transform(code: string, options: SwcBridgeTransformOptions): Promise<SwcOutput>;
|
|
50
|
+
transformFile(filename: string, options?: SwcBridgeDefaults): Promise<SwcOutput>;
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
declare function transform(code: string, options: SwcBridgeTransformOptions): Promise<SwcOutput>;
|
|
53
|
+
declare function transformFile(filename: string, options?: SwcBridgeDefaults): Promise<SwcOutput>;
|
|
54
|
+
declare function createSwcCompiler(defaults?: SwcBridgeDefaults): SwcBridge;
|
|
54
55
|
/**
|
|
55
56
|
* Test seam for the SWC bridge. It is exported because it is also useful for
|
|
56
57
|
* custom hosts that already own a @swc/core-compatible transform function.
|
|
57
58
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
declare function transformWithSwc(swc: SwcCoreLike, code: string, options: SwcBridgeTransformOptions): Promise<SwcOutput>;
|
|
60
|
+
declare function zodCompiler(defaults?: SwcBridgeDefaults): SwcBridge;
|
|
61
|
+
//#endregion
|
|
62
|
+
export { SwcBridge, SwcBridgeDefaults, SwcBridgeTransformOptions, SwcCoreLike, SwcOptions, SwcOutput, ZodCompilerSwcOptions, createSwcCompiler, zodCompiler as default, transform, transformFile, transformWithSwc };
|
|
60
63
|
//# sourceMappingURL=swc.d.ts.map
|
package/dist/swc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swc.d.ts","
|
|
1
|
+
{"version":3,"file":"swc.d.ts","names":[],"sources":["../src/swc.ts"],"mappings":";;;;;;;;UAYiB;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA;GACC;;UAGc;EACf,UAAU,cAAc,UAAU,aAAa,QAAQ;;;;;;;;;KAU7C,wBAAwB,KAClC;;;;;;EAQA;;UAGe;;EAEf,MAAM;;EAEN,cAAc;;UAGC,kCAAkC;;EAEjD;;UAGe;EACf,UAAU,cAAc,SAAS,4BAA4B,QAAQ;EACrE,cAAc,kBAAkB,UAAU,oBAAoB,QAAQ;;iBAoFlD,UACpB,cACA,SAAS,4BACR,QAAQ;iBAIW,cACpB,kBACA,UAAU,oBACT,QAAQ;iBAKK,kBAAkB,WAAW,oBAAoB;;;;;iBAgB3C,iBACpB,KAAK,aACL,cACA,SAAS,4BACR,QAAQ;iBAIa,YAAY,WAAW,oBAAoB"}
|
package/dist/swc.js
CHANGED
|
@@ -1,97 +1,104 @@
|
|
|
1
|
-
import fs from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
1
|
import { invalidateModuleCache } from "./loader.js";
|
|
4
2
|
import { shouldTransform, transformCodeWithMap } from "./unplugin/transform.js";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import fs from "node:fs/promises";
|
|
5
|
+
//#region src/swc.ts
|
|
5
6
|
function toTransformOptions(options) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
const output = options?.output ?? "schema";
|
|
8
|
+
return {
|
|
9
|
+
mode: options?.codegenMode ?? "inline",
|
|
10
|
+
verbose: options?.verbose,
|
|
11
|
+
zodCompat: output === "schema" || output === "compact",
|
|
12
|
+
compact: output === "compact",
|
|
13
|
+
autoDiscover: (options?.schemas ?? "auto") === "auto",
|
|
14
|
+
hoist: options?.hoist
|
|
15
|
+
};
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
* Per-call options win key-by-key over factory defaults. The merge is
|
|
19
|
+
* shallow: a per-call `swc.jsc` replaces the default `jsc` wholesale rather
|
|
20
|
+
* than deep-merging parser/target settings.
|
|
21
|
+
*/
|
|
21
22
|
function mergeOptions(defaults, options) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
return {
|
|
24
|
+
filename: options.filename,
|
|
25
|
+
swc: {
|
|
26
|
+
...defaults?.swc,
|
|
27
|
+
...options.swc
|
|
28
|
+
},
|
|
29
|
+
zodCompiler: {
|
|
30
|
+
...defaults?.zodCompiler,
|
|
31
|
+
...options.zodCompiler
|
|
32
|
+
}
|
|
33
|
+
};
|
|
27
34
|
}
|
|
28
35
|
async function loadSwc() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
+
try {
|
|
37
|
+
return await import("@swc/core");
|
|
38
|
+
} catch (error) {
|
|
39
|
+
const cause = error instanceof Error ? `: ${error.message}` : "";
|
|
40
|
+
throw new Error(`zod-compiler/swc requires @swc/core to be installed by the consuming project${cause}`);
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const lastSeenCode = new Map();
|
|
44
|
+
* Last content seen per filename. Discovery executes schema files from DISK
|
|
45
|
+
* through a module cache that outlives transform calls, so when a host (dev
|
|
46
|
+
* server, watch-mode test runner) re-transforms a file with new content, the
|
|
47
|
+
* stale executions must be dropped or the compiled validators keep
|
|
48
|
+
* reflecting the old schema. Same content-diff scheme as the unplugin
|
|
49
|
+
* transform hook; tracked for every file fed to the bridge — an excluded
|
|
50
|
+
* file can still be a dependency a schema file executed.
|
|
51
|
+
*/
|
|
52
|
+
const lastSeenCode = /* @__PURE__ */ new Map();
|
|
47
53
|
function invalidateOnContentChange(filename, code) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
lastSeenCode.set(key, code);
|
|
54
|
+
const key = path.resolve(filename);
|
|
55
|
+
const previous = lastSeenCode.get(key);
|
|
56
|
+
if (previous !== void 0 && previous !== code) invalidateModuleCache();
|
|
57
|
+
lastSeenCode.set(key, code);
|
|
54
58
|
}
|
|
55
59
|
async function transformWith(swc, code, options) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (zodResult?.map && swcOptions.inputSourceMap === undefined) {
|
|
65
|
-
swcOptions.inputSourceMap = JSON.stringify(zodResult.map);
|
|
66
|
-
}
|
|
67
|
-
return swc.transform(zodResult?.code ?? code, swcOptions);
|
|
60
|
+
invalidateOnContentChange(options.filename, code);
|
|
61
|
+
const zodResult = shouldTransform(options.filename, options.zodCompiler) ? await transformCodeWithMap(code, options.filename, toTransformOptions(options.zodCompiler)) : null;
|
|
62
|
+
const swcOptions = {
|
|
63
|
+
...options.swc,
|
|
64
|
+
filename: options.swc?.filename ?? options.filename
|
|
65
|
+
};
|
|
66
|
+
if (zodResult?.map && swcOptions.inputSourceMap === void 0) swcOptions.inputSourceMap = JSON.stringify(zodResult.map);
|
|
67
|
+
return swc.transform(zodResult?.code ?? code, swcOptions);
|
|
68
68
|
}
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
async function transform(code, options) {
|
|
70
|
+
return transformWith(await loadSwc(), code, options);
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
async function transformFile(filename, options) {
|
|
73
|
+
return transform(await fs.readFile(filename, "utf8"), {
|
|
74
|
+
...options,
|
|
75
|
+
filename
|
|
76
|
+
});
|
|
75
77
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
function createSwcCompiler(defaults) {
|
|
79
|
+
return {
|
|
80
|
+
transform(code, options) {
|
|
81
|
+
return transform(code, mergeOptions(defaults, options));
|
|
82
|
+
},
|
|
83
|
+
async transformFile(filename, options) {
|
|
84
|
+
return transform(await fs.readFile(filename, "utf8"), mergeOptions(defaults, {
|
|
85
|
+
...options,
|
|
86
|
+
filename
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
86
90
|
}
|
|
87
91
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
* Test seam for the SWC bridge. It is exported because it is also useful for
|
|
93
|
+
* custom hosts that already own a @swc/core-compatible transform function.
|
|
94
|
+
*/
|
|
95
|
+
async function transformWithSwc(swc, code, options) {
|
|
96
|
+
return transformWith(swc, code, options);
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
|
|
98
|
+
function zodCompiler(defaults) {
|
|
99
|
+
return createSwcCompiler(defaults);
|
|
96
100
|
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { createSwcCompiler, zodCompiler as default, transform, transformFile, transformWithSwc };
|
|
103
|
+
|
|
97
104
|
//# sourceMappingURL=swc.js.map
|
package/dist/swc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swc.js","
|
|
1
|
+
{"version":3,"file":"swc.js","names":[],"sources":["../src/swc.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { invalidateModuleCache } from \"./loader.js\";\nimport { shouldTransform, transformCodeWithMap } from \"./unplugin/transform.js\";\nimport type { TransformOptions, ZodCompilerPluginOptions } from \"./unplugin/types.js\";\n\n/**\n * Minimal @swc/core option shape. zod-compiler keeps @swc/core optional so\n * non-SWC users do not install a native dependency just by using the package.\n * `inputSourceMap` matches @swc/core: a JSON string or a boolean — swc does\n * not accept map objects.\n */\nexport interface SwcOptions {\n filename?: string | undefined;\n inputSourceMap?: boolean | string | undefined;\n sourceMaps?: boolean | \"inline\" | undefined;\n [key: string]: unknown;\n}\n\nexport interface SwcOutput {\n code: string;\n map?: string | undefined;\n [key: string]: unknown;\n}\n\nexport interface SwcCoreLike {\n transform(code: string, options?: SwcOptions): Promise<SwcOutput>;\n}\n\n/**\n * Plugin options that make sense for a transformer host. `apply` is Vite\n * lifecycle and `cache` is the bundler disk cache — the bridge keeps no\n * persistent cache, so hosts that need one must key transform results on\n * content themselves. `include`/`exclude` are honored: files they reject\n * pass through to SWC without the zod-compiler step.\n */\nexport type ZodCompilerSwcOptions = Omit<\n ZodCompilerPluginOptions,\n \"apply\" | \"cache\" | \"codegenMode\"\n> & {\n /**\n * SWC is a transformer, not a bundler plugin host, so inline is the safe\n * default. Lean mode may emit virtual runtime imports that SWC cannot resolve\n * unless another tool handles them after SWC.\n */\n codegenMode?: \"inline\" | \"lean\" | undefined;\n};\n\nexport interface SwcBridgeDefaults {\n /** Options passed through to @swc/core.transform. */\n swc?: SwcOptions | undefined;\n /** zod-compiler options. Defaults match the build plugins except codegenMode is \"inline\". */\n zodCompiler?: ZodCompilerSwcOptions | undefined;\n}\n\nexport interface SwcBridgeTransformOptions extends SwcBridgeDefaults {\n /** Absolute or project-relative filename for schema discovery and SWC config resolution. */\n filename: string;\n}\n\nexport interface SwcBridge {\n transform(code: string, options: SwcBridgeTransformOptions): Promise<SwcOutput>;\n transformFile(filename: string, options?: SwcBridgeDefaults): Promise<SwcOutput>;\n}\n\nfunction toTransformOptions(options?: ZodCompilerSwcOptions): TransformOptions {\n const output = options?.output ?? \"schema\";\n return {\n mode: options?.codegenMode ?? \"inline\",\n verbose: options?.verbose,\n zodCompat: output === \"schema\" || output === \"compact\",\n compact: output === \"compact\",\n autoDiscover: (options?.schemas ?? \"auto\") === \"auto\",\n hoist: options?.hoist,\n };\n}\n\n/**\n * Per-call options win key-by-key over factory defaults. The merge is\n * shallow: a per-call `swc.jsc` replaces the default `jsc` wholesale rather\n * than deep-merging parser/target settings.\n */\nfunction mergeOptions(\n defaults: SwcBridgeDefaults | undefined,\n options: SwcBridgeTransformOptions,\n): SwcBridgeTransformOptions {\n return {\n filename: options.filename,\n swc: { ...defaults?.swc, ...options.swc },\n zodCompiler: { ...defaults?.zodCompiler, ...options.zodCompiler },\n };\n}\n\nasync function loadSwc(): Promise<SwcCoreLike> {\n try {\n return (await import(\"@swc/core\")) as unknown as SwcCoreLike;\n } catch (error) {\n const cause = error instanceof Error ? `: ${error.message}` : \"\";\n throw new Error(\n `zod-compiler/swc requires @swc/core to be installed by the consuming project${cause}`,\n );\n }\n}\n\n/**\n * Last content seen per filename. Discovery executes schema files from DISK\n * through a module cache that outlives transform calls, so when a host (dev\n * server, watch-mode test runner) re-transforms a file with new content, the\n * stale executions must be dropped or the compiled validators keep\n * reflecting the old schema. Same content-diff scheme as the unplugin\n * transform hook; tracked for every file fed to the bridge — an excluded\n * file can still be a dependency a schema file executed.\n */\nconst lastSeenCode = new Map<string, string>();\n\nfunction invalidateOnContentChange(filename: string, code: string): void {\n const key = path.resolve(filename);\n const previous = lastSeenCode.get(key);\n if (previous !== undefined && previous !== code) {\n invalidateModuleCache();\n }\n lastSeenCode.set(key, code);\n}\n\nasync function transformWith(\n swc: SwcCoreLike,\n code: string,\n options: SwcBridgeTransformOptions,\n): Promise<SwcOutput> {\n invalidateOnContentChange(options.filename, code);\n\n const zodResult = shouldTransform(options.filename, options.zodCompiler)\n ? await transformCodeWithMap(code, options.filename, toTransformOptions(options.zodCompiler))\n : null;\n\n const swcOptions: SwcOptions = {\n ...options.swc,\n filename: options.swc?.filename ?? options.filename,\n };\n if (zodResult?.map && swcOptions.inputSourceMap === undefined) {\n swcOptions.inputSourceMap = JSON.stringify(zodResult.map);\n }\n\n return swc.transform(zodResult?.code ?? code, swcOptions);\n}\n\nexport async function transform(\n code: string,\n options: SwcBridgeTransformOptions,\n): Promise<SwcOutput> {\n return transformWith(await loadSwc(), code, options);\n}\n\nexport async function transformFile(\n filename: string,\n options?: SwcBridgeDefaults,\n): Promise<SwcOutput> {\n const code = await fs.readFile(filename, \"utf8\");\n return transform(code, { ...options, filename });\n}\n\nexport function createSwcCompiler(defaults?: SwcBridgeDefaults): SwcBridge {\n return {\n transform(code, options) {\n return transform(code, mergeOptions(defaults, options));\n },\n async transformFile(filename, options) {\n const code = await fs.readFile(filename, \"utf8\");\n return transform(code, mergeOptions(defaults, { ...options, filename }));\n },\n };\n}\n\n/**\n * Test seam for the SWC bridge. It is exported because it is also useful for\n * custom hosts that already own a @swc/core-compatible transform function.\n */\nexport async function transformWithSwc(\n swc: SwcCoreLike,\n code: string,\n options: SwcBridgeTransformOptions,\n): Promise<SwcOutput> {\n return transformWith(swc, code, options);\n}\n\nexport default function zodCompiler(defaults?: SwcBridgeDefaults): SwcBridge {\n return createSwcCompiler(defaults);\n}\n"],"mappings":";;;;;AAiEA,SAAS,mBAAmB,SAAmD;CAC7E,MAAM,SAAS,SAAS,UAAU;CAClC,OAAO;EACL,MAAM,SAAS,eAAe;EAC9B,SAAS,SAAS;EAClB,WAAW,WAAW,YAAY,WAAW;EAC7C,SAAS,WAAW;EACpB,eAAe,SAAS,WAAW,YAAY;EAC/C,OAAO,SAAS;CAClB;AACF;;;;;;AAOA,SAAS,aACP,UACA,SAC2B;CAC3B,OAAO;EACL,UAAU,QAAQ;EAClB,KAAK;GAAE,GAAG,UAAU;GAAK,GAAG,QAAQ;EAAI;EACxC,aAAa;GAAE,GAAG,UAAU;GAAa,GAAG,QAAQ;EAAY;CAClE;AACF;AAEA,eAAe,UAAgC;CAC7C,IAAI;EACF,OAAQ,MAAM,OAAO;CACvB,SAAS,OAAO;EACd,MAAM,QAAQ,iBAAiB,QAAQ,KAAK,MAAM,YAAY;EAC9D,MAAM,IAAI,MACR,+EAA+E,OACjF;CACF;AACF;;;;;;;;;;AAWA,MAAM,+BAAe,IAAI,IAAoB;AAE7C,SAAS,0BAA0B,UAAkB,MAAoB;CACvE,MAAM,MAAM,KAAK,QAAQ,QAAQ;CACjC,MAAM,WAAW,aAAa,IAAI,GAAG;CACrC,IAAI,aAAa,KAAA,KAAa,aAAa,MACzC,sBAAsB;CAExB,aAAa,IAAI,KAAK,IAAI;AAC5B;AAEA,eAAe,cACb,KACA,MACA,SACoB;CACpB,0BAA0B,QAAQ,UAAU,IAAI;CAEhD,MAAM,YAAY,gBAAgB,QAAQ,UAAU,QAAQ,WAAW,IACnE,MAAM,qBAAqB,MAAM,QAAQ,UAAU,mBAAmB,QAAQ,WAAW,CAAC,IAC1F;CAEJ,MAAM,aAAyB;EAC7B,GAAG,QAAQ;EACX,UAAU,QAAQ,KAAK,YAAY,QAAQ;CAC7C;CACA,IAAI,WAAW,OAAO,WAAW,mBAAmB,KAAA,GAClD,WAAW,iBAAiB,KAAK,UAAU,UAAU,GAAG;CAG1D,OAAO,IAAI,UAAU,WAAW,QAAQ,MAAM,UAAU;AAC1D;AAEA,eAAsB,UACpB,MACA,SACoB;CACpB,OAAO,cAAc,MAAM,QAAQ,GAAG,MAAM,OAAO;AACrD;AAEA,eAAsB,cACpB,UACA,SACoB;CAEpB,OAAO,UAAU,MADE,GAAG,SAAS,UAAU,MAAM,GACxB;EAAE,GAAG;EAAS;CAAS,CAAC;AACjD;AAEA,SAAgB,kBAAkB,UAAyC;CACzE,OAAO;EACL,UAAU,MAAM,SAAS;GACvB,OAAO,UAAU,MAAM,aAAa,UAAU,OAAO,CAAC;EACxD;EACA,MAAM,cAAc,UAAU,SAAS;GAErC,OAAO,UAAU,MADE,GAAG,SAAS,UAAU,MAAM,GACxB,aAAa,UAAU;IAAE,GAAG;IAAS;GAAS,CAAC,CAAC;EACzE;CACF;AACF;;;;;AAMA,eAAsB,iBACpB,KACA,MACA,SACoB;CACpB,OAAO,cAAc,KAAK,MAAM,OAAO;AACzC;AAEA,SAAwB,YAAY,UAAyC;CAC3E,OAAO,kBAAkB,QAAQ;AACnC"}
|
package/dist/unplugin/bun.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ZodCompilerPluginOptions } from "./types.js";
|
|
2
|
+
//#region src/unplugin/bun.d.ts
|
|
3
|
+
declare const _default: (options?: ZodCompilerPluginOptions | undefined) => Bun.BunPlugin;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { _default as default };
|
|
3
6
|
//# sourceMappingURL=bun.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.d.ts","
|
|
1
|
+
{"version":3,"file":"bun.d.ts","names":[],"sources":["../../src/unplugin/bun.ts"],"mappings":""}
|
package/dist/unplugin/bun.js
CHANGED
package/dist/unplugin/bun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","
|
|
1
|
+
{"version":3,"file":"bun.js","names":[],"sources":["../../src/unplugin/bun.ts"],"sourcesContent":["import { unplugin } from \"./index.js\";\n\nexport default unplugin.bun;\n"],"mappings":";;AAEA,IAAA,cAAe,SAAS"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/unplugin/dep-graph.d.ts
|
|
1
2
|
/**
|
|
2
3
|
* Static per-file dependency graphs for disk-cache invalidation.
|
|
3
4
|
*
|
|
@@ -36,17 +37,19 @@
|
|
|
36
37
|
* crawl would be pure waste (and incomplete is the COMMON outcome on
|
|
37
38
|
* large graphs — one dynamic import anywhere poisons the whole closure).
|
|
38
39
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
interface StaticDeps {
|
|
41
|
+
/** Absolute real paths of first-party files reachable from the entry. */
|
|
42
|
+
deps: string[];
|
|
43
|
+
/** False when the graph could not be fully analyzed — use the superset. */
|
|
44
|
+
complete: boolean;
|
|
44
45
|
}
|
|
45
46
|
/** Reset the per-process dep-graph memos (watch-mode file changes). */
|
|
46
|
-
|
|
47
|
+
declare function resetDepGraphMemo(): void;
|
|
47
48
|
/**
|
|
48
49
|
* Compute the static first-party dependency closure of `entryFile`.
|
|
49
50
|
* The entry itself is excluded (its content is part of the cache key).
|
|
50
51
|
*/
|
|
51
|
-
|
|
52
|
+
declare function collectStaticDeps(entryFile: string): StaticDeps;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { StaticDeps, collectStaticDeps, resetDepGraphMemo };
|
|
52
55
|
//# sourceMappingURL=dep-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dep-graph.d.ts","
|
|
1
|
+
{"version":3,"file":"dep-graph.d.ts","names":[],"sources":["../../src/unplugin/dep-graph.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4CiB;;EAEf;;EAEA;;;iBA0Cc;;;;;iBAsMA,kBAAkB,oBAAoB"}
|