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":"effect.js","
|
|
1
|
+
{"version":3,"file":"effect.js","names":[],"sources":["../../../../src/core/codegen/schemas/effect.ts"],"sourcesContent":["import type {\n RefineEffectCheckIR,\n SuperRefineEffectCheckIR,\n TransformEffectIR,\n} from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport {\n emitEffectCallable,\n emitRuntimeHelper,\n extendStaticPath,\n extendStaticPathIndex,\n} from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { ZC_SR_DECL, ZC_SR_OK_DECL, ZC_SR_RUN_DECL } from \"../issue-decls.js\";\n\n/**\n * Generate code for a TransformEffectIR node.\n * Validates the inner schema, then applies the transform function and writes back the result.\n */\nexport function slowEffect(ir: TransformEffectIR, g: SlowGen): string {\n const beforeVar = g.temp(\"ib\");\n const innerCode = g.visit(ir.inner);\n // A transform is `inner.transform(fn)` = a pipe(inner, transform): zod's\n // handlePipeResult aborts when `inner` produces any issue. Inside a union the\n // option must therefore count as aborted even if `inner`'s only issue is a\n // non-aborting `custom`/check-level code (mirrors slowPipe's abort branch).\n const abortBranch = g.aborted ? `else{${g.aborted}=true;}` : \"\";\n\n return `${emit`\n var ${beforeVar}=${g.issues}.length;\n ${innerCode}\n if(${g.issues}.length===${beforeVar}){\n ${g.output}=${emitEffectCallable(g.ctx, ir)}(${g.output});\n }${abortBranch}\n `}\\n`;\n}\n\n/**\n * Generate code for a RefineEffectCheckIR (inline refine function call).\n * Called from string/number/object check loops when a refine_effect is encountered.\n *\n * @param check - The refine effect check IR\n * @param expr - The expression to validate (may differ from g.input, e.g. objVar in object generators)\n * @param g - SlowGen context (provides path, issues)\n */\nexport function refineCheck(check: RefineEffectCheckIR, expr: string, g: SlowGen): string {\n // Custom issues are created by the refine check instance, so only the\n // refine's own message applies (never the schema-level error). With no\n // message baked in, __zcFin applies the locale default (\"Invalid input\").\n const messageProp =\n check.message === undefined ? \"\" : `,message:${JSON.stringify(check.message)}`;\n // `.refine(fn, { path })` reports against a member of the refined value, so\n // the configured segments extend this node's path.\n const path = (check.path ?? []).reduce<string>(\n (acc, segment) =>\n typeof segment === \"number\"\n ? extendStaticPathIndex(acc, segment)\n : extendStaticPath(acc, segment),\n g.path,\n );\n return emit`\n if(!${emitEffectCallable(g.ctx, check)}(${expr})){\n ${g.issues}.push({code:\"custom\",path:${path}${messageProp},input:${expr}});\n }`;\n}\n\n/**\n * Declare the shared invoker both superRefine helpers call. It is module-local\n * rather than an imported helper (lean mode declares it in the runtime module\n * beside them), so inline mode must place it in the preamble itself.\n */\nfunction emitSuperRefineRunner(ctx: SlowGen[\"ctx\"]): void {\n if (ctx.mode !== \"lean\" && !ctx.preamble.includes(ZC_SR_RUN_DECL)) {\n ctx.preamble.push(ZC_SR_RUN_DECL);\n }\n}\n\n/**\n * Fast-path test for a SuperRefineEffectCheckIR: a boolean term reporting that\n * the callback added no issue and left the value alone (see ZC_SR_OK_DECL).\n */\nexport function superRefineFastTest(\n check: SuperRefineEffectCheckIR,\n expr: string,\n g: FastGen,\n): string {\n emitSuperRefineRunner(g.ctx);\n const ok = emitRuntimeHelper(g.ctx, \"__zcSrOk\", ZC_SR_OK_DECL);\n return `${ok}(${emitEffectCallable(g.ctx, check)},${expr})`;\n}\n\n/**\n * Generate code for a SuperRefineEffectCheckIR: call the payload-taking\n * callback with a synthesized `{ value, issues }` and merge what it collected.\n * zod's own wrapper installs `addIssue` and normalizes the result, so the\n * issues are zod's — the helper only reprojects them onto this node's path and\n * strips the internal bookkeeping zod deletes before they become visible.\n *\n * The payload's `value` is writable public API, so it is written back to the\n * output slot the way an overwrite effect is. This walk is always the eager one\n * (the node reports as mutating, see hasMutation), so the write-back lands on\n * every parse that reaches it — not only on failures.\n */\nexport function superRefineCheck(\n check: SuperRefineEffectCheckIR,\n expr: string,\n g: SlowGen,\n): string {\n emitSuperRefineRunner(g.ctx);\n const helper = emitRuntimeHelper(g.ctx, \"__zcSr\", ZC_SR_DECL);\n const fn = emitEffectCallable(g.ctx, check);\n const p = g.temp(\"sp\");\n let code = `var ${p}=${helper}(${fn},${expr},${g.path},${g.issues});${g.output}=${p}.value;`;\n // Inside a union option, an aborting issue must mark the option aborted so\n // pruning matches zod (see ZC_SR_DECL); elsewhere the flag is unobserved.\n if (g.aborted) code += `if(${p}.aborted){${g.aborted}=true;}`;\n return code;\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,WAAW,IAAuB,GAAoB;CACpE,MAAM,YAAY,EAAE,KAAK,IAAI;CAC7B,MAAM,YAAY,EAAE,MAAM,GAAG,KAAK;CAKlC,MAAM,cAAc,EAAE,UAAU,QAAQ,EAAE,QAAQ,WAAW;CAE7D,OAAO,GAAG,IAAI;UACN,UAAU,GAAG,EAAE,OAAO;MAC1B,UAAU;SACP,EAAE,OAAO,YAAY,UAAU;QAChC,EAAE,OAAO,GAAG,mBAAmB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO;OACvD,YAAY;IACf;AACJ;;;;;;;;;AAUA,SAAgB,YAAY,OAA4B,MAAc,GAAoB;CAIxF,MAAM,cACJ,MAAM,YAAY,KAAA,IAAY,KAAK,YAAY,KAAK,UAAU,MAAM,OAAO;CAG7E,MAAM,QAAQ,MAAM,QAAQ,CAAC,EAAA,CAAG,QAC7B,KAAK,YACJ,OAAO,YAAY,WACf,sBAAsB,KAAK,OAAO,IAClC,iBAAiB,KAAK,OAAO,GACnC,EAAE,IACJ;CACA,OAAO,IAAI;UACH,mBAAmB,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK;QAC3C,EAAE,OAAO,4BAA4B,OAAO,YAAY,SAAS,KAAK;;AAE9E;;;;;;AAOA,SAAS,sBAAsB,KAA2B;CACxD,IAAI,IAAI,SAAS,UAAU,CAAC,IAAI,SAAS,SAAA,+GAAuB,GAC9D,IAAI,SAAS,KAAK,cAAc;AAEpC;;;;;AAMA,SAAgB,oBACd,OACA,MACA,GACQ;CACR,sBAAsB,EAAE,GAAG;CAE3B,OAAO,GADI,kBAAkB,EAAE,KAAK,YAAY,aACrC,EAAE,GAAG,mBAAmB,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK;AAC3D;;;;;;;;;;;;;AAcA,SAAgB,iBACd,OACA,MACA,GACQ;CACR,sBAAsB,EAAE,GAAG;CAC3B,MAAM,SAAS,kBAAkB,EAAE,KAAK,UAAU,UAAU;CAC5D,MAAM,KAAK,mBAAmB,EAAE,KAAK,KAAK;CAC1C,MAAM,IAAI,EAAE,KAAK,IAAI;CACrB,IAAI,OAAO,OAAO,EAAE,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE;CAGpF,IAAI,EAAE,SAAS,QAAQ,MAAM,EAAE,YAAY,EAAE,QAAQ;CACrD,OAAO;AACT"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { EnumIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/enum.d.ts
|
|
4
|
+
declare function slowEnum(ir: EnumIR, g: SlowGen): string;
|
|
5
|
+
declare function fastEnum(ir: EnumIR, g: FastGen): string;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { fastEnum, slowEnum };
|
|
5
8
|
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","
|
|
1
|
+
{"version":3,"file":"enum.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/enum.ts"],"mappings":";;;iBAMgB,SAAS,IAAI,QAAQ,GAAG;iBAmBxB,SAAS,IAAI,QAAQ,GAAG"}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
import { emitSet,
|
|
1
|
+
import { emitSet, escapeString } from "../context.js";
|
|
2
2
|
import { emit } from "../emit.js";
|
|
3
3
|
import { invalidValue } from "../emit-issue.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return `${emit `
|
|
10
|
-
if(${condition}){
|
|
4
|
+
//#region src/core/codegen/schemas/enum.ts
|
|
5
|
+
function slowEnum(ir, g) {
|
|
6
|
+
const valuesExpr = JSON.stringify(ir.values);
|
|
7
|
+
if (ir.values.length <= 5) return `${emit`
|
|
8
|
+
if(${ir.values.map((v) => `${g.input}!==${escapeString(v)}`).join("&&")}){
|
|
11
9
|
${invalidValue(g, valuesExpr)}
|
|
12
10
|
}
|
|
13
11
|
`}\n`;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return `${emit `
|
|
17
|
-
if(!${setVar}.has(${g.input})){
|
|
12
|
+
return `${emit`
|
|
13
|
+
if(!${g.set("enum", ir.values)}.has(${g.input})){
|
|
18
14
|
${invalidValue(g, valuesExpr)}
|
|
19
15
|
}
|
|
20
16
|
`}\n`;
|
|
21
17
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join("||")})`;
|
|
27
|
-
}
|
|
28
|
-
// Use Set for larger enums. Routed through emitSet so the fast check and the
|
|
29
|
-
// slow walk share one declaration instead of emitting the value list twice.
|
|
30
|
-
return `${emitSet(g.ctx, "enum", ir.values)}.has(${x})`;
|
|
18
|
+
function fastEnum(ir, g) {
|
|
19
|
+
const x = g.input;
|
|
20
|
+
if (ir.values.length <= 5) return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join("||")})`;
|
|
21
|
+
return `${emitSet(g.ctx, "enum", ir.values)}.has(${x})`;
|
|
31
22
|
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { fastEnum, slowEnum };
|
|
25
|
+
|
|
32
26
|
//# sourceMappingURL=enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","
|
|
1
|
+
{"version":3,"file":"enum.js","names":[],"sources":["../../../../src/core/codegen/schemas/enum.ts"],"sourcesContent":["import type { EnumIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { emitSet, ENUM_INLINE_THRESHOLD, escapeString } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidValue } from \"../emit-issue.js\";\n\nexport function slowEnum(ir: EnumIR, g: SlowGen): string {\n const valuesExpr = JSON.stringify(ir.values);\n if (ir.values.length <= ENUM_INLINE_THRESHOLD) {\n // Inline equality checks for small enums (avoids Set allocation in preamble)\n const condition = ir.values.map((v) => `${g.input}!==${escapeString(v)}`).join(\"&&\");\n return `${emit`\n if(${condition}){\n ${invalidValue(g, valuesExpr)}\n }\n `}\\n`;\n }\n const setVar = g.set(\"enum\", ir.values);\n return `${emit`\n if(!${setVar}.has(${g.input})){\n ${invalidValue(g, valuesExpr)}\n }\n `}\\n`;\n}\n\nexport function fastEnum(ir: EnumIR, g: FastGen): string {\n const x = g.input;\n if (ir.values.length <= ENUM_INLINE_THRESHOLD) {\n // Inline equality checks for small enums, wrapped in parens for precedence safety\n return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join(\"||\")})`;\n }\n // Use Set for larger enums. Routed through emitSet so the fast check and the\n // slow walk share one declaration instead of emitting the value list twice.\n return `${emitSet(g.ctx, \"enum\", ir.values)}.has(${x})`;\n}\n"],"mappings":";;;;AAMA,SAAgB,SAAS,IAAY,GAAoB;CACvD,MAAM,aAAa,KAAK,UAAU,GAAG,MAAM;CAC3C,IAAI,GAAG,OAAO,UAAA,GAGZ,OAAO,GAAG,IAAI;WADI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,IAEhE,EAAE;UACX,aAAa,GAAG,UAAU,EAAE;;MAEhC;CAGJ,OAAO,GAAG,IAAI;UADC,EAAE,IAAI,QAAQ,GAAG,MAEnB,EAAE,OAAO,EAAE,MAAM;QACxB,aAAa,GAAG,UAAU,EAAE;;IAEhC;AACJ;AAEA,SAAgB,SAAS,IAAY,GAAoB;CACvD,MAAM,IAAI,EAAE;CACZ,IAAI,GAAG,OAAO,UAAA,GAEZ,OAAO,IAAI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;CAI1E,OAAO,GAAG,QAAQ,EAAE,KAAK,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE;AACvD"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { FallbackIR } from "../../types.js";
|
|
2
|
+
import { SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/fallback.d.ts
|
|
4
|
+
declare function slowFallback(ir: FallbackIR, g: SlowGen): string;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { slowFallback };
|
|
4
7
|
//# sourceMappingURL=fallback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.d.ts","
|
|
1
|
+
{"version":3,"file":"fallback.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/fallback.ts"],"mappings":";;;iBAKgB,aAAa,IAAI,YAAY,GAAG"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { emitRfDelegate } from "../context.js";
|
|
2
2
|
import { emit } from "../emit.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const jVar = `__rf_j${idx}`;
|
|
13
|
-
return `${emit `
|
|
3
|
+
//#region src/core/codegen/schemas/fallback.ts
|
|
4
|
+
function slowFallback(ir, g) {
|
|
5
|
+
if (ir.refIndex !== void 0) {
|
|
6
|
+
const idx = ir.refIndex;
|
|
7
|
+
const delegate = emitRfDelegate(g.ctx, idx);
|
|
8
|
+
const rVar = `__rf_r${idx}`;
|
|
9
|
+
const iVar = `__rf_i${idx}`;
|
|
10
|
+
const jVar = `__rf_j${idx}`;
|
|
11
|
+
return `${emit`
|
|
14
12
|
var ${rVar}=${delegate}(${g.input});
|
|
15
13
|
if(!${rVar}.success){
|
|
16
14
|
var ${iVar}=${rVar}.error.issues;
|
|
@@ -22,7 +20,10 @@ export function slowFallback(ir, g) {
|
|
|
22
20
|
${g.output}=${rVar}.data;
|
|
23
21
|
}
|
|
24
22
|
`}\n`;
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
}
|
|
24
|
+
return `${g.issues}.push({code:"custom",path:${g.path},message:"Fallback schema: ${ir.reason}"});\n`;
|
|
27
25
|
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { slowFallback };
|
|
28
|
+
|
|
28
29
|
//# sourceMappingURL=fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","
|
|
1
|
+
{"version":3,"file":"fallback.js","names":[],"sources":["../../../../src/core/codegen/schemas/fallback.ts"],"sourcesContent":["import type { FallbackIR } from \"../../types.js\";\nimport type { SlowGen } from \"../context.js\";\nimport { emitRfDelegate } from \"../context.js\";\nimport { emit } from \"../emit.js\";\n\nexport function slowFallback(ir: FallbackIR, g: SlowGen): string {\n if (ir.refIndex !== undefined) {\n const idx = ir.refIndex;\n // Captured pre-__zcMkv (emitRfDelegate): a per-parse `__rf[N].safeParse`\n // read resolves to the compiled validator itself when CSE/dedup or an\n // identifier schemaExpr makes the entry alias the mutated schema object.\n const delegate = emitRfDelegate(g.ctx, idx);\n const rVar = `__rf_r${idx}`;\n const iVar = `__rf_i${idx}`;\n const jVar = `__rf_j${idx}`;\n return `${emit`\n var ${rVar}=${delegate}(${g.input});\n if(!${rVar}.success){\n var ${iVar}=${rVar}.error.issues;\n for(var ${jVar}=0;${jVar}<${iVar}.length;${jVar}++){\n ${g.issues}.push({...${iVar}[${jVar}],\n path:${g.path}.concat(${iVar}[${jVar}].path)});\n }\n }else{\n ${g.output}=${rVar}.data;\n }\n `}\\n`;\n }\n return `${g.issues}.push({code:\"custom\",path:${g.path},message:\"Fallback schema: ${ir.reason}\"});\\n`;\n}\n"],"mappings":";;;AAKA,SAAgB,aAAa,IAAgB,GAAoB;CAC/D,IAAI,GAAG,aAAa,KAAA,GAAW;EAC7B,MAAM,MAAM,GAAG;EAIf,MAAM,WAAW,eAAe,EAAE,KAAK,GAAG;EAC1C,MAAM,OAAO,SAAS;EACtB,MAAM,OAAO,SAAS;EACtB,MAAM,OAAO,SAAS;EACtB,OAAO,GAAG,IAAI;YACN,KAAK,GAAG,SAAS,GAAG,EAAE,MAAM;YAC5B,KAAK;cACH,KAAK,GAAG,KAAK;kBACT,KAAK,KAAK,KAAK,GAAG,KAAK,UAAU,KAAK;YAC5C,EAAE,OAAO,YAAY,KAAK,GAAG,KAAK;mBAC3B,EAAE,KAAK,UAAU,KAAK,GAAG,KAAK;;;UAGvC,EAAE,OAAO,GAAG,KAAK;;MAErB;CACJ;CACA,OAAO,GAAG,EAAE,OAAO,4BAA4B,EAAE,KAAK,6BAA6B,GAAG,OAAO;AAC/F"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { FileIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/file.d.ts
|
|
4
|
+
declare function slowFile(ir: FileIR, g: SlowGen): string;
|
|
5
|
+
declare function fastFile(ir: FileIR, g: FastGen): string | null;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { fastFile, slowFile };
|
|
5
8
|
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","
|
|
1
|
+
{"version":3,"file":"file.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/file.ts"],"mappings":";;;iBAMgB,SAAS,IAAI,QAAQ,GAAG;iBA8CxB,SAAS,IAAI,QAAQ,GAAG"}
|
|
@@ -1,76 +1,70 @@
|
|
|
1
1
|
import { emitSet, escapeString } from "../context.js";
|
|
2
2
|
import { emit } from "../emit.js";
|
|
3
3
|
import { invalidType, invalidValue, tooBig, tooSmall } from "../emit-issue.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
//#region src/core/codegen/schemas/file.ts
|
|
5
|
+
function slowFile(ir, g) {
|
|
6
|
+
let code = emit`
|
|
6
7
|
if(!(${g.input} instanceof File)){
|
|
7
8
|
${invalidType(g, "file")}
|
|
8
9
|
}else{`;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
case "min_size":
|
|
13
|
-
code += emit `
|
|
10
|
+
if (ir.checks) for (const check of ir.checks) switch (check.kind) {
|
|
11
|
+
case "min_size":
|
|
12
|
+
code += emit`
|
|
14
13
|
if(${g.input}.size<${check.minimum}){
|
|
15
14
|
${tooSmall(g, check.minimum, "file", true, { message: check.message })}
|
|
16
15
|
}`;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
break;
|
|
17
|
+
case "max_size":
|
|
18
|
+
code += emit`
|
|
20
19
|
if(${g.input}.size>${check.maximum}){
|
|
21
20
|
${tooBig(g, check.maximum, "file", true, { message: check.message })}
|
|
22
21
|
}`;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (check.mime.length === 1) {
|
|
29
|
-
code += emit `
|
|
22
|
+
break;
|
|
23
|
+
case "mime_type": {
|
|
24
|
+
if (check.mime.length === 0) break;
|
|
25
|
+
const mimeValuesExpr = JSON.stringify(check.mime);
|
|
26
|
+
if (check.mime.length === 1) code += emit`
|
|
30
27
|
if(${g.input}.type!==${escapeString(check.mime[0])}){
|
|
31
|
-
${invalidValue(g, mimeValuesExpr, {
|
|
28
|
+
${invalidValue(g, mimeValuesExpr, {
|
|
29
|
+
message: check.message,
|
|
30
|
+
useTypeMsg: false
|
|
31
|
+
})}
|
|
32
32
|
}`;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
code += emit `
|
|
33
|
+
else {
|
|
34
|
+
const setVar = g.set("mime", check.mime);
|
|
35
|
+
code += emit`
|
|
37
36
|
if(!${setVar}.has(${g.input}.type)){
|
|
38
|
-
${invalidValue(g, mimeValuesExpr, {
|
|
37
|
+
${invalidValue(g, mimeValuesExpr, {
|
|
38
|
+
message: check.message,
|
|
39
|
+
useTypeMsg: false
|
|
40
|
+
})}
|
|
39
41
|
}`;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
code += emit `}`;
|
|
47
|
-
return `${code}\n`;
|
|
42
|
+
}
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
code += emit`}`;
|
|
47
|
+
return `${code}\n`;
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
parts.push(`${emitSet(g.ctx, "mime", check.mime)}.has(${x}.type)`);
|
|
69
|
-
}
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return parts.join("&&");
|
|
49
|
+
function fastFile(ir, g) {
|
|
50
|
+
const x = g.input;
|
|
51
|
+
const parts = [`${x} instanceof File`];
|
|
52
|
+
if (ir.checks) for (const check of ir.checks) switch (check.kind) {
|
|
53
|
+
case "min_size":
|
|
54
|
+
parts.push(`${x}.size>=${check.minimum}`);
|
|
55
|
+
break;
|
|
56
|
+
case "max_size":
|
|
57
|
+
parts.push(`${x}.size<=${check.maximum}`);
|
|
58
|
+
break;
|
|
59
|
+
case "mime_type":
|
|
60
|
+
if (check.mime.length === 0) break;
|
|
61
|
+
if (check.mime.length === 1) parts.push(`${x}.type===${escapeString(check.mime[0])}`);
|
|
62
|
+
else parts.push(`${emitSet(g.ctx, "mime", check.mime)}.has(${x}.type)`);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
return parts.join("&&");
|
|
75
66
|
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { fastFile, slowFile };
|
|
69
|
+
|
|
76
70
|
//# sourceMappingURL=file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","
|
|
1
|
+
{"version":3,"file":"file.js","names":[],"sources":["../../../../src/core/codegen/schemas/file.ts"],"sourcesContent":["import type { FileIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { emitSet, escapeString } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidType, invalidValue, tooBig, tooSmall } from \"../emit-issue.js\";\n\nexport function slowFile(ir: FileIR, g: SlowGen): string {\n let code = emit`\n if(!(${g.input} instanceof File)){\n ${invalidType(g, \"file\")}\n }else{`;\n\n if (ir.checks) {\n for (const check of ir.checks) {\n switch (check.kind) {\n case \"min_size\":\n code += emit`\n if(${g.input}.size<${check.minimum}){\n ${tooSmall(g, check.minimum, \"file\", true, { message: check.message })}\n }`;\n break;\n case \"max_size\":\n code += emit`\n if(${g.input}.size>${check.maximum}){\n ${tooBig(g, check.maximum, \"file\", true, { message: check.message })}\n }`;\n break;\n case \"mime_type\": {\n if (check.mime.length === 0) break;\n const mimeValuesExpr = JSON.stringify(check.mime);\n if (check.mime.length === 1) {\n code += emit`\n if(${g.input}.type!==${escapeString(check.mime[0] as string)}){\n ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}\n }`;\n } else {\n const setVar = g.set(\"mime\", check.mime);\n code += emit`\n if(!${setVar}.has(${g.input}.type)){\n ${invalidValue(g, mimeValuesExpr, { message: check.message, useTypeMsg: false })}\n }`;\n }\n break;\n }\n }\n }\n }\n\n code += emit`}`;\n return `${code}\\n`;\n}\n\nexport function fastFile(ir: FileIR, g: FastGen): string | null {\n const x = g.input;\n const parts: string[] = [`${x} instanceof File`];\n\n if (ir.checks) {\n for (const check of ir.checks) {\n switch (check.kind) {\n case \"min_size\":\n parts.push(`${x}.size>=${check.minimum}`);\n break;\n case \"max_size\":\n parts.push(`${x}.size<=${check.maximum}`);\n break;\n case \"mime_type\":\n if (check.mime.length === 0) break;\n if (check.mime.length === 1) {\n parts.push(`${x}.type===${escapeString(check.mime[0] as string)}`);\n } else {\n parts.push(`${emitSet(g.ctx, \"mime\", check.mime)}.has(${x}.type)`);\n }\n break;\n }\n }\n }\n\n return parts.join(\"&&\");\n}\n"],"mappings":";;;;AAMA,SAAgB,SAAS,IAAY,GAAoB;CACvD,IAAI,OAAO,IAAI;WACN,EAAE,MAAM;QACX,YAAY,GAAG,MAAM,EAAE;;CAG7B,IAAI,GAAG,QACL,KAAK,MAAM,SAAS,GAAG,QACrB,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,QAAQ,IAAI;iBACL,EAAE,MAAM,QAAQ,MAAM,QAAQ;gBAC/B,SAAS,GAAG,MAAM,SAAS,QAAQ,MAAM,EAAE,SAAS,MAAM,QAAQ,CAAC,EAAE;;GAE3E;EACF,KAAK;GACH,QAAQ,IAAI;iBACL,EAAE,MAAM,QAAQ,MAAM,QAAQ;gBAC/B,OAAO,GAAG,MAAM,SAAS,QAAQ,MAAM,EAAE,SAAS,MAAM,QAAQ,CAAC,EAAE;;GAEzE;EACF,KAAK,aAAa;GAChB,IAAI,MAAM,KAAK,WAAW,GAAG;GAC7B,MAAM,iBAAiB,KAAK,UAAU,MAAM,IAAI;GAChD,IAAI,MAAM,KAAK,WAAW,GACxB,QAAQ,IAAI;mBACL,EAAE,MAAM,UAAU,aAAa,MAAM,KAAK,EAAY,EAAE;kBACzD,aAAa,GAAG,gBAAgB;IAAE,SAAS,MAAM;IAAS,YAAY;GAAM,CAAC,EAAE;;QAEhF;IACL,MAAM,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;IACvC,QAAQ,IAAI;oBACJ,OAAO,OAAO,EAAE,MAAM;kBACxB,aAAa,GAAG,gBAAgB;KAAE,SAAS,MAAM;KAAS,YAAY;IAAM,CAAC,EAAE;;GAEvF;GACA;EACF;CACF;CAIJ,QAAQ,IAAI;CACZ,OAAO,GAAG,KAAK;AACjB;AAEA,SAAgB,SAAS,IAAY,GAA2B;CAC9D,MAAM,IAAI,EAAE;CACZ,MAAM,QAAkB,CAAC,GAAG,EAAE,iBAAiB;CAE/C,IAAI,GAAG,QACL,KAAK,MAAM,SAAS,GAAG,QACrB,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,MAAM,KAAK,GAAG,EAAE,SAAS,MAAM,SAAS;GACxC;EACF,KAAK;GACH,MAAM,KAAK,GAAG,EAAE,SAAS,MAAM,SAAS;GACxC;EACF,KAAK;GACH,IAAI,MAAM,KAAK,WAAW,GAAG;GAC7B,IAAI,MAAM,KAAK,WAAW,GACxB,MAAM,KAAK,GAAG,EAAE,UAAU,aAAa,MAAM,KAAK,EAAY,GAAG;QAEjE,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,QAAQ,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO;GAEnE;CACJ;CAIJ,OAAO,MAAM,KAAK,IAAI;AACxB"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { IntersectionIR, SchemaIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/intersection.d.ts
|
|
4
|
+
declare function slowIntersection(ir: SchemaIR & {
|
|
5
|
+
type: "intersection";
|
|
5
6
|
}, g: SlowGen): string;
|
|
6
|
-
|
|
7
|
+
declare function fastIntersection(ir: IntersectionIR, g: FastGen): string | null;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { fastIntersection, slowIntersection };
|
|
7
10
|
//# sourceMappingURL=intersection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.d.ts","
|
|
1
|
+
{"version":3,"file":"intersection.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/intersection.ts"],"mappings":";;;iBAIgB,iBAAiB,IAAI;EAAa;GAAwB,GAAG;iBAI7D,iBAAiB,IAAI,gBAAgB,GAAG"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { orderByRuntimeCost } from "../fast-size.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
//#region src/core/codegen/schemas/intersection.ts
|
|
3
|
+
function slowIntersection(ir, g) {
|
|
4
|
+
return `${g.visit(ir.left)}${g.visit(ir.right, {
|
|
5
|
+
input: g.output,
|
|
6
|
+
output: g.output
|
|
7
|
+
})}`;
|
|
4
8
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const right = g.visit(second);
|
|
13
|
-
if (right === null)
|
|
14
|
-
return null;
|
|
15
|
-
return left === "true" ? right : right === "true" ? left : `${left}&&${right}`;
|
|
9
|
+
function fastIntersection(ir, g) {
|
|
10
|
+
const [first, second] = orderByRuntimeCost([ir.left, ir.right], (side) => side, g.ctx);
|
|
11
|
+
const left = g.visit(first);
|
|
12
|
+
if (left === null) return null;
|
|
13
|
+
const right = g.visit(second);
|
|
14
|
+
if (right === null) return null;
|
|
15
|
+
return left === "true" ? right : right === "true" ? left : `${left}&&${right}`;
|
|
16
16
|
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { fastIntersection, slowIntersection };
|
|
19
|
+
|
|
17
20
|
//# sourceMappingURL=intersection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.js","
|
|
1
|
+
{"version":3,"file":"intersection.js","names":[],"sources":["../../../../src/core/codegen/schemas/intersection.ts"],"sourcesContent":["import type { IntersectionIR, SchemaIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { orderByRuntimeCost } from \"../fast-size.js\";\n\nexport function slowIntersection(ir: SchemaIR & { type: \"intersection\" }, g: SlowGen): string {\n return `${g.visit(ir.left)}${g.visit(ir.right, { input: g.output, output: g.output })}`;\n}\n\nexport function fastIntersection(ir: IntersectionIR, g: FastGen): string | null {\n // Both sides must hold, so the conjunction is order-independent — emit the\n // cheaper side first so a reject decides on it (see estimateRuntimeCost).\n const [first, second] = orderByRuntimeCost([ir.left, ir.right], (side) => side, g.ctx) as [\n SchemaIR,\n SchemaIR,\n ];\n const left = g.visit(first);\n if (left === null) return null;\n const right = g.visit(second);\n if (right === null) return null;\n return left === \"true\" ? right : right === \"true\" ? left : `${left}&&${right}`;\n}\n"],"mappings":";;AAIA,SAAgB,iBAAiB,IAAyC,GAAoB;CAC5F,OAAO,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,MAAM,GAAG,OAAO;EAAE,OAAO,EAAE;EAAQ,QAAQ,EAAE;CAAO,CAAC;AACtF;AAEA,SAAgB,iBAAiB,IAAoB,GAA2B;CAG9E,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,SAAS,MAAM,EAAE,GAAG;CAIrF,MAAM,OAAO,EAAE,MAAM,KAAK;CAC1B,IAAI,SAAS,MAAM,OAAO;CAC1B,MAAM,QAAQ,EAAE,MAAM,MAAM;CAC5B,IAAI,UAAU,MAAM,OAAO;CAC3B,OAAO,SAAS,SAAS,QAAQ,UAAU,SAAS,OAAO,GAAG,KAAK,IAAI;AACzE"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { LiteralIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/literal.d.ts
|
|
4
|
+
declare function slowLiteral(ir: LiteralIR, g: SlowGen): string;
|
|
5
|
+
declare function fastLiteral(ir: LiteralIR, g: FastGen): string;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { fastLiteral, slowLiteral };
|
|
5
8
|
//# sourceMappingURL=literal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal.d.ts","
|
|
1
|
+
{"version":3,"file":"literal.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/literal.ts"],"mappings":";;;iBAsBgB,YAAY,IAAI,WAAW,GAAG;iBAkB9B,YAAY,IAAI,WAAW,GAAG"}
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import { literalToJs } from "../context.js";
|
|
2
2
|
import { emit } from "../emit.js";
|
|
3
3
|
import { invalidValue } from "../emit-issue.js";
|
|
4
|
+
//#region src/core/codegen/schemas/literal.ts
|
|
4
5
|
/** `[v1,v2,...]` source for the invalid_value issue's `values` field. */
|
|
5
6
|
function valuesJs(values) {
|
|
6
|
-
|
|
7
|
+
return `[${values.map(literalToJs).join(",")}]`;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
* Equality test `x === value`, except for the literal NaN value: `NaN === NaN`
|
|
11
|
+
* is false under `===`, but zod accepts NaN against `z.literal(NaN)` by value, so
|
|
12
|
+
* a NaN literal compares via `Number.isNaN`. (Infinity/-Infinity compare fine
|
|
13
|
+
* under `===` once literalToJs emits them as the right expression.)
|
|
14
|
+
*/
|
|
14
15
|
function literalEq(x, v) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return `${x}===${literalToJs(v)}`;
|
|
16
|
+
if (typeof v === "number" && Number.isNaN(v)) return `Number.isNaN(${x})`;
|
|
17
|
+
return `${x}===${literalToJs(v)}`;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return emit `
|
|
19
|
+
function slowLiteral(ir, g) {
|
|
20
|
+
if (ir.values.length === 1) return emit`
|
|
22
21
|
if(!(${literalEq(g.input, ir.values[0])})){
|
|
23
22
|
${invalidValue(g, valuesJs(ir.values))}
|
|
24
23
|
}
|
|
25
24
|
`;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return emit `
|
|
29
|
-
if(!(${valueChecks})){
|
|
25
|
+
return emit`
|
|
26
|
+
if(!(${ir.values.map((v) => literalEq(g.input, v)).join("||")})){
|
|
30
27
|
${invalidValue(g, valuesJs(ir.values))}
|
|
31
28
|
}
|
|
32
29
|
`;
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
// Wrap in parens — || has lower precedence than && in parent expressions
|
|
40
|
-
return `(${ir.values.map((v) => literalEq(x, v)).join("||")})`;
|
|
31
|
+
function fastLiteral(ir, g) {
|
|
32
|
+
const x = g.input;
|
|
33
|
+
if (ir.values.length === 1) return literalEq(x, ir.values[0]);
|
|
34
|
+
return `(${ir.values.map((v) => literalEq(x, v)).join("||")})`;
|
|
41
35
|
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { fastLiteral, slowLiteral };
|
|
38
|
+
|
|
42
39
|
//# sourceMappingURL=literal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal.js","
|
|
1
|
+
{"version":3,"file":"literal.js","names":[],"sources":["../../../../src/core/codegen/schemas/literal.ts"],"sourcesContent":["import type { LiteralIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\nimport { literalToJs } from \"../context.js\";\nimport { emit } from \"../emit.js\";\nimport { invalidValue } from \"../emit-issue.js\";\n\n/** `[v1,v2,...]` source for the invalid_value issue's `values` field. */\nfunction valuesJs(values: LiteralIR[\"values\"]): string {\n return `[${values.map(literalToJs).join(\",\")}]`;\n}\n\n/**\n * Equality test `x === value`, except for the literal NaN value: `NaN === NaN`\n * is false under `===`, but zod accepts NaN against `z.literal(NaN)` by value, so\n * a NaN literal compares via `Number.isNaN`. (Infinity/-Infinity compare fine\n * under `===` once literalToJs emits them as the right expression.)\n */\nfunction literalEq(x: string, v: LiteralIR[\"values\"][number]): string {\n if (typeof v === \"number\" && Number.isNaN(v)) return `Number.isNaN(${x})`;\n return `${x}===${literalToJs(v)}`;\n}\n\nexport function slowLiteral(ir: LiteralIR, g: SlowGen): string {\n if (ir.values.length === 1) {\n return emit`\n if(!(${literalEq(g.input, ir.values[0])})){\n ${invalidValue(g, valuesJs(ir.values))}\n }\n `;\n }\n\n const valueChecks = ir.values.map((v) => literalEq(g.input, v)).join(\"||\");\n\n return emit`\n if(!(${valueChecks})){\n ${invalidValue(g, valuesJs(ir.values))}\n }\n `;\n}\n\nexport function fastLiteral(ir: LiteralIR, g: FastGen): string {\n const x = g.input;\n if (ir.values.length === 1) {\n return literalEq(x, ir.values[0]);\n }\n // Wrap in parens — || has lower precedence than && in parent expressions\n return `(${ir.values.map((v) => literalEq(x, v)).join(\"||\")})`;\n}\n"],"mappings":";;;;;AAOA,SAAS,SAAS,QAAqC;CACrD,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/C;;;;;;;AAQA,SAAS,UAAU,GAAW,GAAwC;CACpE,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,CAAC,GAAG,OAAO,gBAAgB,EAAE;CACvE,OAAO,GAAG,EAAE,KAAK,YAAY,CAAC;AAChC;AAEA,SAAgB,YAAY,IAAe,GAAoB;CAC7D,IAAI,GAAG,OAAO,WAAW,GACvB,OAAO,IAAI;aACF,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE;UACpC,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE;;;CAO7C,OAAO,IAAI;WAFS,GAAG,OAAO,KAAK,MAAM,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAGlD,EAAE;QACf,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE;;;AAG7C;AAEA,SAAgB,YAAY,IAAe,GAAoB;CAC7D,MAAM,IAAI,EAAE;CACZ,IAAI,GAAG,OAAO,WAAW,GACvB,OAAO,UAAU,GAAG,GAAG,OAAO,EAAE;CAGlC,OAAO,IAAI,GAAG,OAAO,KAAK,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC9D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { MapIR, SchemaIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/map.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Map entries report through zod's `handleMapResult`, which branches on the
|
|
5
6
|
* RUNTIME type of the key rather than on the key schema:
|
|
@@ -17,8 +18,10 @@ import type { FastGen, SlowGen } from "../context.js";
|
|
|
17
18
|
* to both the type test and the prefix, and a mutating key schema (`.trim()`)
|
|
18
19
|
* would otherwise have rewritten it by then.
|
|
19
20
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
declare function slowMap(ir: SchemaIR & {
|
|
22
|
+
type: "map";
|
|
22
23
|
}, g: SlowGen): string;
|
|
23
|
-
|
|
24
|
+
declare function fastMap(ir: MapIR, g: FastGen): string | null;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { fastMap, slowMap };
|
|
24
27
|
//# sourceMappingURL=map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","
|
|
1
|
+
{"version":3,"file":"map.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/map.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;iBAwBgB,QAAQ,IAAI;EAAa;GAAe,GAAG;iBA+D3C,QAAQ,IAAI,OAAO,GAAG"}
|