zod-aot 0.20.4 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/core/extract/extractors/union.d.ts.map +1 -1
- package/dist/core/extract/extractors/union.js +33 -12
- package/dist/core/extract/extractors/union.js.map +1 -1
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +10 -4
- package/dist/unplugin/index.js.map +1 -1
- package/dist/unplugin/rsbuild.d.ts +3 -0
- package/dist/unplugin/rsbuild.d.ts.map +1 -0
- package/dist/unplugin/rsbuild.js +3 -0
- package/dist/unplugin/rsbuild.js.map +1 -0
- package/package.json +10 -4
- package/dist/core/codegen/fast-check/array.d.ts +0 -4
- package/dist/core/codegen/fast-check/array.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/array.js +0 -28
- package/dist/core/codegen/fast-check/array.js.map +0 -1
- package/dist/core/codegen/fast-check/bigint.d.ts +0 -3
- package/dist/core/codegen/fast-check/bigint.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/bigint.js +0 -19
- package/dist/core/codegen/fast-check/bigint.js.map +0 -1
- package/dist/core/codegen/fast-check/discriminated-union.d.ts +0 -4
- package/dist/core/codegen/fast-check/discriminated-union.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/discriminated-union.js +0 -13
- package/dist/core/codegen/fast-check/discriminated-union.js.map +0 -1
- package/dist/core/codegen/fast-check/enum.d.ts +0 -4
- package/dist/core/codegen/fast-check/enum.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/enum.js +0 -12
- package/dist/core/codegen/fast-check/enum.js.map +0 -1
- package/dist/core/codegen/fast-check/index.d.ts +0 -16
- package/dist/core/codegen/fast-check/index.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/index.js +0 -118
- package/dist/core/codegen/fast-check/index.js.map +0 -1
- package/dist/core/codegen/fast-check/intersection.d.ts +0 -4
- package/dist/core/codegen/fast-check/intersection.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/intersection.js +0 -10
- package/dist/core/codegen/fast-check/intersection.js.map +0 -1
- package/dist/core/codegen/fast-check/literal.d.ts +0 -3
- package/dist/core/codegen/fast-check/literal.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/literal.js +0 -8
- package/dist/core/codegen/fast-check/literal.js.map +0 -1
- package/dist/core/codegen/fast-check/nullable.d.ts +0 -4
- package/dist/core/codegen/fast-check/nullable.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/nullable.js +0 -7
- package/dist/core/codegen/fast-check/nullable.js.map +0 -1
- package/dist/core/codegen/fast-check/number.d.ts +0 -3
- package/dist/core/codegen/fast-check/number.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/number.js +0 -51
- package/dist/core/codegen/fast-check/number.js.map +0 -1
- package/dist/core/codegen/fast-check/object.d.ts +0 -4
- package/dist/core/codegen/fast-check/object.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/object.js +0 -13
- package/dist/core/codegen/fast-check/object.js.map +0 -1
- package/dist/core/codegen/fast-check/optional.d.ts +0 -4
- package/dist/core/codegen/fast-check/optional.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/optional.js +0 -7
- package/dist/core/codegen/fast-check/optional.js.map +0 -1
- package/dist/core/codegen/fast-check/pipe.d.ts +0 -4
- package/dist/core/codegen/fast-check/pipe.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/pipe.js +0 -14
- package/dist/core/codegen/fast-check/pipe.js.map +0 -1
- package/dist/core/codegen/fast-check/readonly.d.ts +0 -4
- package/dist/core/codegen/fast-check/readonly.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/readonly.js +0 -4
- package/dist/core/codegen/fast-check/readonly.js.map +0 -1
- package/dist/core/codegen/fast-check/record.d.ts +0 -4
- package/dist/core/codegen/fast-check/record.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/record.js +0 -18
- package/dist/core/codegen/fast-check/record.js.map +0 -1
- package/dist/core/codegen/fast-check/string.d.ts +0 -4
- package/dist/core/codegen/fast-check/string.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/string.js +0 -62
- package/dist/core/codegen/fast-check/string.js.map +0 -1
- package/dist/core/codegen/fast-check/tuple.d.ts +0 -4
- package/dist/core/codegen/fast-check/tuple.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/tuple.js +0 -32
- package/dist/core/codegen/fast-check/tuple.js.map +0 -1
- package/dist/core/codegen/fast-check/union.d.ts +0 -4
- package/dist/core/codegen/fast-check/union.d.ts.map +0 -1
- package/dist/core/codegen/fast-check/union.js +0 -12
- package/dist/core/codegen/fast-check/union.js.map +0 -1
- package/dist/core/codegen/fast-path/array.d.ts +0 -4
- package/dist/core/codegen/fast-path/array.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/array.js +0 -32
- package/dist/core/codegen/fast-path/array.js.map +0 -1
- package/dist/core/codegen/fast-path/bigint.d.ts +0 -4
- package/dist/core/codegen/fast-path/bigint.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/bigint.js +0 -22
- package/dist/core/codegen/fast-path/bigint.js.map +0 -1
- package/dist/core/codegen/fast-path/discriminated-union.d.ts +0 -4
- package/dist/core/codegen/fast-path/discriminated-union.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/discriminated-union.js +0 -13
- package/dist/core/codegen/fast-path/discriminated-union.js.map +0 -1
- package/dist/core/codegen/fast-path/enum.d.ts +0 -4
- package/dist/core/codegen/fast-path/enum.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/enum.js +0 -13
- package/dist/core/codegen/fast-path/enum.js.map +0 -1
- package/dist/core/codegen/fast-path/index.d.ts +0 -17
- package/dist/core/codegen/fast-path/index.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/index.js +0 -108
- package/dist/core/codegen/fast-path/index.js.map +0 -1
- package/dist/core/codegen/fast-path/intersection.d.ts +0 -4
- package/dist/core/codegen/fast-path/intersection.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/intersection.js +0 -10
- package/dist/core/codegen/fast-path/intersection.js.map +0 -1
- package/dist/core/codegen/fast-path/literal.d.ts +0 -4
- package/dist/core/codegen/fast-path/literal.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/literal.js +0 -9
- package/dist/core/codegen/fast-path/literal.js.map +0 -1
- package/dist/core/codegen/fast-path/nullable.d.ts +0 -4
- package/dist/core/codegen/fast-path/nullable.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/nullable.js +0 -7
- package/dist/core/codegen/fast-path/nullable.js.map +0 -1
- package/dist/core/codegen/fast-path/number.d.ts +0 -4
- package/dist/core/codegen/fast-path/number.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/number.js +0 -57
- package/dist/core/codegen/fast-path/number.js.map +0 -1
- package/dist/core/codegen/fast-path/object.d.ts +0 -4
- package/dist/core/codegen/fast-path/object.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/object.js +0 -17
- package/dist/core/codegen/fast-path/object.js.map +0 -1
- package/dist/core/codegen/fast-path/optional.d.ts +0 -4
- package/dist/core/codegen/fast-path/optional.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/optional.js +0 -7
- package/dist/core/codegen/fast-path/optional.js.map +0 -1
- package/dist/core/codegen/fast-path/pipe.d.ts +0 -4
- package/dist/core/codegen/fast-path/pipe.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/pipe.js +0 -14
- package/dist/core/codegen/fast-path/pipe.js.map +0 -1
- package/dist/core/codegen/fast-path/readonly.d.ts +0 -4
- package/dist/core/codegen/fast-path/readonly.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/readonly.js +0 -4
- package/dist/core/codegen/fast-path/readonly.js.map +0 -1
- package/dist/core/codegen/fast-path/record.d.ts +0 -4
- package/dist/core/codegen/fast-path/record.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/record.js +0 -19
- package/dist/core/codegen/fast-path/record.js.map +0 -1
- package/dist/core/codegen/fast-path/string.d.ts +0 -4
- package/dist/core/codegen/fast-path/string.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/string.js +0 -64
- package/dist/core/codegen/fast-path/string.js.map +0 -1
- package/dist/core/codegen/fast-path/tuple.d.ts +0 -4
- package/dist/core/codegen/fast-path/tuple.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/tuple.js +0 -33
- package/dist/core/codegen/fast-path/tuple.js.map +0 -1
- package/dist/core/codegen/fast-path/union.d.ts +0 -4
- package/dist/core/codegen/fast-path/union.d.ts.map +0 -1
- package/dist/core/codegen/fast-path/union.js +0 -12
- package/dist/core/codegen/fast-path/union.js.map +0 -1
- package/dist/core/codegen/generators/any.d.ts +0 -2
- package/dist/core/codegen/generators/any.d.ts.map +0 -1
- package/dist/core/codegen/generators/any.js +0 -4
- package/dist/core/codegen/generators/any.js.map +0 -1
- package/dist/core/codegen/generators/array.d.ts +0 -6
- package/dist/core/codegen/generators/array.d.ts.map +0 -1
- package/dist/core/codegen/generators/array.js +0 -41
- package/dist/core/codegen/generators/array.js.map +0 -1
- package/dist/core/codegen/generators/bigint.d.ts +0 -6
- package/dist/core/codegen/generators/bigint.d.ts.map +0 -1
- package/dist/core/codegen/generators/bigint.js +0 -56
- package/dist/core/codegen/generators/bigint.js.map +0 -1
- package/dist/core/codegen/generators/boolean.d.ts +0 -5
- package/dist/core/codegen/generators/boolean.d.ts.map +0 -1
- package/dist/core/codegen/generators/boolean.js +0 -14
- package/dist/core/codegen/generators/boolean.js.map +0 -1
- package/dist/core/codegen/generators/catch.d.ts +0 -6
- package/dist/core/codegen/generators/catch.d.ts.map +0 -1
- package/dist/core/codegen/generators/catch.js +0 -11
- package/dist/core/codegen/generators/catch.js.map +0 -1
- package/dist/core/codegen/generators/date.d.ts +0 -5
- package/dist/core/codegen/generators/date.d.ts.map +0 -1
- package/dist/core/codegen/generators/date.js +0 -52
- package/dist/core/codegen/generators/date.js.map +0 -1
- package/dist/core/codegen/generators/default.d.ts +0 -6
- package/dist/core/codegen/generators/default.d.ts.map +0 -1
- package/dist/core/codegen/generators/default.js +0 -10
- package/dist/core/codegen/generators/default.js.map +0 -1
- package/dist/core/codegen/generators/discriminated-union.d.ts +0 -6
- package/dist/core/codegen/generators/discriminated-union.d.ts.map +0 -1
- package/dist/core/codegen/generators/discriminated-union.js +0 -25
- package/dist/core/codegen/generators/discriminated-union.js.map +0 -1
- package/dist/core/codegen/generators/effect.d.ts +0 -17
- package/dist/core/codegen/generators/effect.d.ts.map +0 -1
- package/dist/core/codegen/generators/effect.js +0 -32
- package/dist/core/codegen/generators/effect.js.map +0 -1
- package/dist/core/codegen/generators/enum.d.ts +0 -6
- package/dist/core/codegen/generators/enum.d.ts.map +0 -1
- package/dist/core/codegen/generators/enum.js +0 -21
- package/dist/core/codegen/generators/enum.js.map +0 -1
- package/dist/core/codegen/generators/fallback.d.ts +0 -3
- package/dist/core/codegen/generators/fallback.d.ts.map +0 -1
- package/dist/core/codegen/generators/fallback.js +0 -23
- package/dist/core/codegen/generators/fallback.js.map +0 -1
- package/dist/core/codegen/generators/index.d.ts +0 -4
- package/dist/core/codegen/generators/index.d.ts.map +0 -1
- package/dist/core/codegen/generators/index.js +0 -104
- package/dist/core/codegen/generators/index.js.map +0 -1
- package/dist/core/codegen/generators/intersection.d.ts +0 -6
- package/dist/core/codegen/generators/intersection.d.ts.map +0 -1
- package/dist/core/codegen/generators/intersection.js +0 -4
- package/dist/core/codegen/generators/intersection.js.map +0 -1
- package/dist/core/codegen/generators/literal.d.ts +0 -5
- package/dist/core/codegen/generators/literal.d.ts.map +0 -1
- package/dist/core/codegen/generators/literal.js +0 -37
- package/dist/core/codegen/generators/literal.js.map +0 -1
- package/dist/core/codegen/generators/map.d.ts +0 -6
- package/dist/core/codegen/generators/map.d.ts.map +0 -1
- package/dist/core/codegen/generators/map.js +0 -19
- package/dist/core/codegen/generators/map.js.map +0 -1
- package/dist/core/codegen/generators/nan.d.ts +0 -2
- package/dist/core/codegen/generators/nan.d.ts.map +0 -1
- package/dist/core/codegen/generators/nan.js +0 -9
- package/dist/core/codegen/generators/nan.js.map +0 -1
- package/dist/core/codegen/generators/never.d.ts +0 -2
- package/dist/core/codegen/generators/never.d.ts.map +0 -1
- package/dist/core/codegen/generators/never.js +0 -7
- package/dist/core/codegen/generators/never.js.map +0 -1
- package/dist/core/codegen/generators/null.d.ts +0 -2
- package/dist/core/codegen/generators/null.d.ts.map +0 -1
- package/dist/core/codegen/generators/null.js +0 -9
- package/dist/core/codegen/generators/null.js.map +0 -1
- package/dist/core/codegen/generators/nullable.d.ts +0 -6
- package/dist/core/codegen/generators/nullable.d.ts.map +0 -1
- package/dist/core/codegen/generators/nullable.js +0 -9
- package/dist/core/codegen/generators/nullable.js.map +0 -1
- package/dist/core/codegen/generators/number.d.ts +0 -6
- package/dist/core/codegen/generators/number.d.ts.map +0 -1
- package/dist/core/codegen/generators/number.js +0 -97
- package/dist/core/codegen/generators/number.js.map +0 -1
- package/dist/core/codegen/generators/object.d.ts +0 -6
- package/dist/core/codegen/generators/object.d.ts.map +0 -1
- package/dist/core/codegen/generators/object.js +0 -18
- package/dist/core/codegen/generators/object.js.map +0 -1
- package/dist/core/codegen/generators/optional.d.ts +0 -6
- package/dist/core/codegen/generators/optional.d.ts.map +0 -1
- package/dist/core/codegen/generators/optional.js +0 -9
- package/dist/core/codegen/generators/optional.js.map +0 -1
- package/dist/core/codegen/generators/pipe.d.ts +0 -6
- package/dist/core/codegen/generators/pipe.d.ts.map +0 -1
- package/dist/core/codegen/generators/pipe.js +0 -5
- package/dist/core/codegen/generators/pipe.js.map +0 -1
- package/dist/core/codegen/generators/readonly.d.ts +0 -6
- package/dist/core/codegen/generators/readonly.d.ts.map +0 -1
- package/dist/core/codegen/generators/readonly.js +0 -4
- package/dist/core/codegen/generators/readonly.js.map +0 -1
- package/dist/core/codegen/generators/record.d.ts +0 -6
- package/dist/core/codegen/generators/record.d.ts.map +0 -1
- package/dist/core/codegen/generators/record.js +0 -28
- package/dist/core/codegen/generators/record.js.map +0 -1
- package/dist/core/codegen/generators/recursive-ref.d.ts +0 -3
- package/dist/core/codegen/generators/recursive-ref.d.ts.map +0 -1
- package/dist/core/codegen/generators/recursive-ref.js +0 -20
- package/dist/core/codegen/generators/recursive-ref.js.map +0 -1
- package/dist/core/codegen/generators/set.d.ts +0 -6
- package/dist/core/codegen/generators/set.d.ts.map +0 -1
- package/dist/core/codegen/generators/set.js +0 -39
- package/dist/core/codegen/generators/set.js.map +0 -1
- package/dist/core/codegen/generators/string.d.ts +0 -6
- package/dist/core/codegen/generators/string.d.ts.map +0 -1
- package/dist/core/codegen/generators/string.js +0 -97
- package/dist/core/codegen/generators/string.js.map +0 -1
- package/dist/core/codegen/generators/symbol.d.ts +0 -2
- package/dist/core/codegen/generators/symbol.d.ts.map +0 -1
- package/dist/core/codegen/generators/symbol.js +0 -9
- package/dist/core/codegen/generators/symbol.js.map +0 -1
- package/dist/core/codegen/generators/template-literal.d.ts +0 -6
- package/dist/core/codegen/generators/template-literal.d.ts.map +0 -1
- package/dist/core/codegen/generators/template-literal.js +0 -13
- package/dist/core/codegen/generators/template-literal.js.map +0 -1
- package/dist/core/codegen/generators/tuple.d.ts +0 -6
- package/dist/core/codegen/generators/tuple.d.ts.map +0 -1
- package/dist/core/codegen/generators/tuple.js +0 -33
- package/dist/core/codegen/generators/tuple.js.map +0 -1
- package/dist/core/codegen/generators/undefined.d.ts +0 -2
- package/dist/core/codegen/generators/undefined.d.ts.map +0 -1
- package/dist/core/codegen/generators/undefined.js +0 -9
- package/dist/core/codegen/generators/undefined.js.map +0 -1
- package/dist/core/codegen/generators/union.d.ts +0 -6
- package/dist/core/codegen/generators/union.d.ts.map +0 -1
- package/dist/core/codegen/generators/union.js +0 -33
- package/dist/core/codegen/generators/union.js.map +0 -1
- package/dist/core/codegen/generators/unknown.d.ts +0 -2
- package/dist/core/codegen/generators/unknown.d.ts.map +0 -1
- package/dist/core/codegen/generators/unknown.js +0 -4
- package/dist/core/codegen/generators/unknown.js.map +0 -1
- package/dist/core/codegen/generators/void.d.ts +0 -2
- package/dist/core/codegen/generators/void.d.ts.map +0 -1
- package/dist/core/codegen/generators/void.js +0 -9
- package/dist/core/codegen/generators/void.js.map +0 -1
- package/dist/core/codegen/slow-path/any.d.ts +0 -4
- package/dist/core/codegen/slow-path/any.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/any.js +0 -4
- package/dist/core/codegen/slow-path/any.js.map +0 -1
- package/dist/core/codegen/slow-path/array.d.ts +0 -6
- package/dist/core/codegen/slow-path/array.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/array.js +0 -49
- package/dist/core/codegen/slow-path/array.js.map +0 -1
- package/dist/core/codegen/slow-path/bigint.d.ts +0 -4
- package/dist/core/codegen/slow-path/bigint.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/bigint.js +0 -56
- package/dist/core/codegen/slow-path/bigint.js.map +0 -1
- package/dist/core/codegen/slow-path/boolean.d.ts +0 -4
- package/dist/core/codegen/slow-path/boolean.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/boolean.js +0 -14
- package/dist/core/codegen/slow-path/boolean.js.map +0 -1
- package/dist/core/codegen/slow-path/catch.d.ts +0 -6
- package/dist/core/codegen/slow-path/catch.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/catch.js +0 -11
- package/dist/core/codegen/slow-path/catch.js.map +0 -1
- package/dist/core/codegen/slow-path/date.d.ts +0 -4
- package/dist/core/codegen/slow-path/date.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/date.js +0 -52
- package/dist/core/codegen/slow-path/date.js.map +0 -1
- package/dist/core/codegen/slow-path/default.d.ts +0 -6
- package/dist/core/codegen/slow-path/default.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/default.js +0 -10
- package/dist/core/codegen/slow-path/default.js.map +0 -1
- package/dist/core/codegen/slow-path/discriminated-union.d.ts +0 -6
- package/dist/core/codegen/slow-path/discriminated-union.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/discriminated-union.js +0 -25
- package/dist/core/codegen/slow-path/discriminated-union.js.map +0 -1
- package/dist/core/codegen/slow-path/effect.d.ts +0 -17
- package/dist/core/codegen/slow-path/effect.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/effect.js +0 -32
- package/dist/core/codegen/slow-path/effect.js.map +0 -1
- package/dist/core/codegen/slow-path/enum.d.ts +0 -4
- package/dist/core/codegen/slow-path/enum.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/enum.js +0 -20
- package/dist/core/codegen/slow-path/enum.js.map +0 -1
- package/dist/core/codegen/slow-path/fallback.d.ts +0 -4
- package/dist/core/codegen/slow-path/fallback.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/fallback.js +0 -23
- package/dist/core/codegen/slow-path/fallback.js.map +0 -1
- package/dist/core/codegen/slow-path/index.d.ts +0 -5
- package/dist/core/codegen/slow-path/index.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/index.js +0 -110
- package/dist/core/codegen/slow-path/index.js.map +0 -1
- package/dist/core/codegen/slow-path/intersection.d.ts +0 -6
- package/dist/core/codegen/slow-path/intersection.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/intersection.js +0 -4
- package/dist/core/codegen/slow-path/intersection.js.map +0 -1
- package/dist/core/codegen/slow-path/literal.d.ts +0 -4
- package/dist/core/codegen/slow-path/literal.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/literal.js +0 -37
- package/dist/core/codegen/slow-path/literal.js.map +0 -1
- package/dist/core/codegen/slow-path/map.d.ts +0 -6
- package/dist/core/codegen/slow-path/map.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/map.js +0 -18
- package/dist/core/codegen/slow-path/map.js.map +0 -1
- package/dist/core/codegen/slow-path/nan.d.ts +0 -4
- package/dist/core/codegen/slow-path/nan.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/nan.js +0 -9
- package/dist/core/codegen/slow-path/nan.js.map +0 -1
- package/dist/core/codegen/slow-path/never.d.ts +0 -4
- package/dist/core/codegen/slow-path/never.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/never.js +0 -7
- package/dist/core/codegen/slow-path/never.js.map +0 -1
- package/dist/core/codegen/slow-path/null.d.ts +0 -4
- package/dist/core/codegen/slow-path/null.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/null.js +0 -9
- package/dist/core/codegen/slow-path/null.js.map +0 -1
- package/dist/core/codegen/slow-path/nullable.d.ts +0 -6
- package/dist/core/codegen/slow-path/nullable.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/nullable.js +0 -9
- package/dist/core/codegen/slow-path/nullable.js.map +0 -1
- package/dist/core/codegen/slow-path/number.d.ts +0 -4
- package/dist/core/codegen/slow-path/number.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/number.js +0 -101
- package/dist/core/codegen/slow-path/number.js.map +0 -1
- package/dist/core/codegen/slow-path/object.d.ts +0 -6
- package/dist/core/codegen/slow-path/object.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/object.js +0 -29
- package/dist/core/codegen/slow-path/object.js.map +0 -1
- package/dist/core/codegen/slow-path/optional.d.ts +0 -6
- package/dist/core/codegen/slow-path/optional.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/optional.js +0 -9
- package/dist/core/codegen/slow-path/optional.js.map +0 -1
- package/dist/core/codegen/slow-path/pipe.d.ts +0 -6
- package/dist/core/codegen/slow-path/pipe.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/pipe.js +0 -5
- package/dist/core/codegen/slow-path/pipe.js.map +0 -1
- package/dist/core/codegen/slow-path/readonly.d.ts +0 -6
- package/dist/core/codegen/slow-path/readonly.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/readonly.js +0 -4
- package/dist/core/codegen/slow-path/readonly.js.map +0 -1
- package/dist/core/codegen/slow-path/record.d.ts +0 -6
- package/dist/core/codegen/slow-path/record.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/record.js +0 -32
- package/dist/core/codegen/slow-path/record.js.map +0 -1
- package/dist/core/codegen/slow-path/recursive-ref.d.ts +0 -4
- package/dist/core/codegen/slow-path/recursive-ref.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/recursive-ref.js +0 -20
- package/dist/core/codegen/slow-path/recursive-ref.js.map +0 -1
- package/dist/core/codegen/slow-path/set.d.ts +0 -6
- package/dist/core/codegen/slow-path/set.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/set.js +0 -38
- package/dist/core/codegen/slow-path/set.js.map +0 -1
- package/dist/core/codegen/slow-path/string.d.ts +0 -4
- package/dist/core/codegen/slow-path/string.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/string.js +0 -97
- package/dist/core/codegen/slow-path/string.js.map +0 -1
- package/dist/core/codegen/slow-path/symbol.d.ts +0 -4
- package/dist/core/codegen/slow-path/symbol.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/symbol.js +0 -9
- package/dist/core/codegen/slow-path/symbol.js.map +0 -1
- package/dist/core/codegen/slow-path/template-literal.d.ts +0 -4
- package/dist/core/codegen/slow-path/template-literal.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/template-literal.js +0 -11
- package/dist/core/codegen/slow-path/template-literal.js.map +0 -1
- package/dist/core/codegen/slow-path/tuple.d.ts +0 -6
- package/dist/core/codegen/slow-path/tuple.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/tuple.js +0 -37
- package/dist/core/codegen/slow-path/tuple.js.map +0 -1
- package/dist/core/codegen/slow-path/undefined.d.ts +0 -4
- package/dist/core/codegen/slow-path/undefined.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/undefined.js +0 -9
- package/dist/core/codegen/slow-path/undefined.js.map +0 -1
- package/dist/core/codegen/slow-path/union.d.ts +0 -6
- package/dist/core/codegen/slow-path/union.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/union.js +0 -33
- package/dist/core/codegen/slow-path/union.js.map +0 -1
- package/dist/core/codegen/slow-path/unknown.d.ts +0 -4
- package/dist/core/codegen/slow-path/unknown.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/unknown.js +0 -4
- package/dist/core/codegen/slow-path/unknown.js.map +0 -1
- package/dist/core/codegen/slow-path/void.d.ts +0 -4
- package/dist/core/codegen/slow-path/void.d.ts.map +0 -1
- package/dist/core/codegen/slow-path/void.js +0 -9
- package/dist/core/codegen/slow-path/void.js.map +0 -1
- package/dist/core/codegen/warm-path.d.ts +0 -13
- package/dist/core/codegen/warm-path.d.ts.map +0 -1
- package/dist/core/codegen/warm-path.js +0 -57
- package/dist/core/codegen/warm-path.js.map +0 -1
- package/dist/core/extract/extractors/primitives.d.ts +0 -19
- package/dist/core/extract/extractors/primitives.d.ts.map +0 -1
- package/dist/core/extract/extractors/primitives.js +0 -53
- package/dist/core/extract/extractors/primitives.js.map +0 -1
package/README.md
CHANGED
|
@@ -150,6 +150,7 @@ npx zod-aot generate src/ --watch
|
|
|
150
150
|
| Rollup | `import zodAot from "zod-aot/rollup"` |
|
|
151
151
|
| Rolldown | `import zodAot from "zod-aot/rolldown"` |
|
|
152
152
|
| rspack | `import zodAot from "zod-aot/rspack"` |
|
|
153
|
+
| rsbuild | `import zodAot from "zod-aot/rsbuild"` |
|
|
153
154
|
| Bun | `import zodAot from "zod-aot/bun"` |
|
|
154
155
|
| Farm | `import zodAot from "zod-aot/farm"` |
|
|
155
156
|
|
|
@@ -180,9 +181,10 @@ wrapper, issue factories like `__zaTS`/`__zaIT`, and well-known regexes for
|
|
|
180
181
|
On bundlers that support virtual modules — **Vite, Rollup, Rolldown, esbuild,
|
|
181
182
|
Farm, Bun** — the plugin imports these helpers from
|
|
182
183
|
`virtual:zod-aot/runtime`, so the bundler emits a single bundle-wide copy
|
|
183
|
-
regardless of how many files reference them. webpack
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
regardless of how many files reference them. webpack, rspack, and rsbuild
|
|
185
|
+
reject the `virtual:` URI scheme at the resolver layer, so they import the same
|
|
186
|
+
runtime module through a bare-specifier alias (`__zod-aot-runtime__`) instead —
|
|
187
|
+
still a single deduplicated copy per bundle.
|
|
186
188
|
|
|
187
189
|
The result: a 5-file project with 10 schemas all using `z.email()` and
|
|
188
190
|
`z.uuid()` produces a bundle where each shared regex appears exactly **once**.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAa,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../../src/core/extract/extractors/union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAa,MAAM,aAAa,CAAC;AAgBvE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ,CA+BzE"}
|
|
@@ -1,21 +1,42 @@
|
|
|
1
|
+
// The concrete discriminant values a single union option matches. zod's discriminatedUnion
|
|
2
|
+
// accepts either a `literal` (one or more values) or an `enum` (all its members) as the
|
|
3
|
+
// discriminator field. Return null for anything we cannot fully enumerate — the caller then
|
|
4
|
+
// degrades to a plain union rather than silently omitting the option from the O(1) switch.
|
|
5
|
+
function discriminatorValues(field) {
|
|
6
|
+
const def = field?._zod?.def;
|
|
7
|
+
if (!def)
|
|
8
|
+
return null;
|
|
9
|
+
if (def.type === "literal")
|
|
10
|
+
return def.values;
|
|
11
|
+
if (def.type === "enum")
|
|
12
|
+
return Object.values(def.entries);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
1
15
|
export function extractUnion(def, ctx) {
|
|
2
16
|
if (def.discriminator) {
|
|
3
|
-
const options = def.options.map((opt, i) => ctx.visit(opt, `._zod.def.options[${i}]`));
|
|
4
17
|
const mapping = {};
|
|
18
|
+
let fullyMapped = true;
|
|
5
19
|
for (let i = 0; i < def.options.length; i++) {
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
const optDef = def.options[i]._zod.def;
|
|
21
|
+
const values = optDef.type === "object" && optDef.shape
|
|
22
|
+
? discriminatorValues(optDef.shape[def.discriminator])
|
|
23
|
+
: null;
|
|
24
|
+
// An option whose discriminant we cannot enumerate (e.g. a non-literal/enum field, or a
|
|
25
|
+
// missing discriminator key) would be dropped from the generated switch, producing a
|
|
26
|
+
// validator that wrongly rejects that option's inputs. Fall back to a plain union, which
|
|
27
|
+
// tries every option and is always correct, instead of miscompiling.
|
|
28
|
+
if (!values) {
|
|
29
|
+
fullyMapped = false;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
for (const v of values) {
|
|
33
|
+
mapping[String(v)] = i;
|
|
16
34
|
}
|
|
17
35
|
}
|
|
18
|
-
|
|
36
|
+
if (fullyMapped) {
|
|
37
|
+
const options = def.options.map((opt, i) => ctx.visit(opt, `._zod.def.options[${i}]`));
|
|
38
|
+
return { type: "discriminatedUnion", discriminator: def.discriminator, options, mapping };
|
|
39
|
+
}
|
|
19
40
|
}
|
|
20
41
|
return {
|
|
21
42
|
type: "union",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/union.ts"],"names":[],"mappings":"AAGA,MAAM,
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/union.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,wFAAwF;AACxF,4FAA4F;AAC5F,2FAA2F;AAC3F,SAAS,mBAAmB,CAC1B,KAA4B;IAE5B,MAAM,GAAG,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAqB;IAC7D,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YACtD,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK;gBACtC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC;YACX,wFAAwF;YACxF,qFAAqF;YACrF,yFAAyF;YACzF,qEAAqE;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,WAAW,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;YACvF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;KAChF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAoCtD,eAAO,MAAM,QAAQ,+EA2DpB,CAAC;AAEF,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/unplugin/index.js
CHANGED
|
@@ -5,8 +5,9 @@ import { loadVirtual, RESOLVED_RUNTIME_ID, resolveVirtualId, VIRTUAL_RUNTIME_ID,
|
|
|
5
5
|
/**
|
|
6
6
|
* Frameworks whose resolveId/load hooks receive any import specifier, including
|
|
7
7
|
* `virtual:` URIs and bare specifiers, so lean-mode cross-file dedup works.
|
|
8
|
-
* webpack / rspack reject the `virtual:` URI scheme but accept bare
|
|
9
|
-
* so they use WP_RUNTIME_ID (`__zod-aot-runtime__`) instead of
|
|
8
|
+
* webpack / rspack / rsbuild reject the `virtual:` URI scheme but accept bare
|
|
9
|
+
* specifiers, so they use WP_RUNTIME_ID (`__zod-aot-runtime__`) instead of
|
|
10
|
+
* VIRTUAL_RUNTIME_ID.
|
|
10
11
|
*/
|
|
11
12
|
const VIRTUAL_MODULE_FRAMEWORKS = new Set([
|
|
12
13
|
"vite",
|
|
@@ -17,9 +18,14 @@ const VIRTUAL_MODULE_FRAMEWORKS = new Set([
|
|
|
17
18
|
"bun",
|
|
18
19
|
"rspack",
|
|
19
20
|
"webpack",
|
|
21
|
+
"rsbuild",
|
|
20
22
|
]);
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Frameworks that need the bare-specifier runtime ID instead of `virtual:`.
|
|
25
|
+
* rsbuild is included because it wraps the rspack plugin internally, inheriting
|
|
26
|
+
* rspack's rejection of the `virtual:` URI scheme.
|
|
27
|
+
*/
|
|
28
|
+
const WP_FRAMEWORKS = new Set(["rspack", "webpack", "rsbuild"]);
|
|
23
29
|
export const unplugin = createUnplugin((options, meta) => {
|
|
24
30
|
const stats = new BuildStatsAccumulator();
|
|
25
31
|
const cache = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsbuild.d.ts","sourceRoot":"","sources":["../../src/unplugin/rsbuild.ts"],"names":[],"mappings":";AAEA,wBAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsbuild.js","sourceRoot":"","sources":["../../src/unplugin/rsbuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAe,QAAQ,CAAC,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod-aot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Compile Zod schemas into zero-overhead validation functions at build time",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -86,20 +86,26 @@
|
|
|
86
86
|
"source": "./src/unplugin/farm.ts",
|
|
87
87
|
"import": "./dist/unplugin/farm.js",
|
|
88
88
|
"default": "./dist/unplugin/farm.js"
|
|
89
|
+
},
|
|
90
|
+
"./rsbuild": {
|
|
91
|
+
"types": "./dist/unplugin/rsbuild.d.ts",
|
|
92
|
+
"source": "./src/unplugin/rsbuild.ts",
|
|
93
|
+
"import": "./dist/unplugin/rsbuild.js",
|
|
94
|
+
"default": "./dist/unplugin/rsbuild.js"
|
|
89
95
|
}
|
|
90
96
|
},
|
|
91
97
|
"dependencies": {
|
|
92
|
-
"acorn": "^8.
|
|
98
|
+
"acorn": "^8.17.0",
|
|
93
99
|
"get-tsconfig": "^4.14.0",
|
|
94
100
|
"jiti": "^2.7.0",
|
|
95
101
|
"picomatch": "^4.0.4",
|
|
96
|
-
"unplugin": "^3.
|
|
102
|
+
"unplugin": "^3.3.0"
|
|
97
103
|
},
|
|
98
104
|
"peerDependencies": {
|
|
99
105
|
"zod": "^4.0.0"
|
|
100
106
|
},
|
|
101
107
|
"devDependencies": {
|
|
102
|
-
"@types/node": "^
|
|
108
|
+
"@types/node": "^26.0.0",
|
|
103
109
|
"@types/picomatch": "^4.0.3",
|
|
104
110
|
"typescript": "^6.0.3",
|
|
105
111
|
"zod": "^4.0.0"
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ArrayIR } from "../../types.js";
|
|
2
|
-
import type { CodeGenContext, GenerateFastCheckFn } from "../context.js";
|
|
3
|
-
export declare function fastCheckArray(ir: ArrayIR, x: string, ctx: CodeGenContext, generateFn: GenerateFastCheckFn): string | null;
|
|
4
|
-
//# sourceMappingURL=array.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzE,wBAAgB,cAAc,CAC5B,EAAE,EAAE,OAAO,EACX,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,mBAAmB,GAC9B,MAAM,GAAG,IAAI,CA2Bf"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { checkPriority } from "../context.js";
|
|
2
|
-
export function fastCheckArray(ir, x, ctx, generateFn) {
|
|
3
|
-
const parts = [`Array.isArray(${x})`];
|
|
4
|
-
// Size checks
|
|
5
|
-
for (const check of [...ir.checks].sort(checkPriority)) {
|
|
6
|
-
switch (check.kind) {
|
|
7
|
-
case "min_length":
|
|
8
|
-
parts.push(`${x}.length>=${check.minimum}`);
|
|
9
|
-
break;
|
|
10
|
-
case "max_length":
|
|
11
|
-
parts.push(`${x}.length<=${check.maximum}`);
|
|
12
|
-
break;
|
|
13
|
-
case "length_equals":
|
|
14
|
-
parts.push(`${x}.length===${check.length}`);
|
|
15
|
-
break;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
// Element validation via .every()
|
|
19
|
-
const elemVar = `__fe_${ctx.counter++}`;
|
|
20
|
-
const elemCheck = generateFn(ir.element, elemVar, ctx);
|
|
21
|
-
if (elemCheck === null)
|
|
22
|
-
return null;
|
|
23
|
-
if (elemCheck !== "true") {
|
|
24
|
-
parts.push(`${x}.every(${elemVar}=>${elemCheck})`);
|
|
25
|
-
}
|
|
26
|
-
return parts.join("&&");
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=array.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/array.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,cAAc,CAC5B,EAAW,EACX,CAAS,EACT,GAAmB,EACnB,UAA+B;IAE/B,MAAM,KAAK,GAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEhD,cAAc;IACd,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACvD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,YAAY;gBACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,eAAe;gBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5C,MAAM;QACV,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,KAAK,SAAS,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBtE"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { checkPriority } from "../context.js";
|
|
2
|
-
export function fastCheckBigInt(ir, x) {
|
|
3
|
-
const parts = [`typeof ${x}==="bigint"`];
|
|
4
|
-
for (const check of [...ir.checks].sort(checkPriority)) {
|
|
5
|
-
switch (check.kind) {
|
|
6
|
-
case "bigint_greater_than":
|
|
7
|
-
parts.push(check.inclusive ? `${x}>=${check.value}n` : `${x}>${check.value}n`);
|
|
8
|
-
break;
|
|
9
|
-
case "bigint_less_than":
|
|
10
|
-
parts.push(check.inclusive ? `${x}<=${check.value}n` : `${x}<${check.value}n`);
|
|
11
|
-
break;
|
|
12
|
-
case "bigint_multiple_of":
|
|
13
|
-
parts.push(`${x}%${check.value}n===0n`);
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return parts.join("&&");
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=bigint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/bigint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,eAAe,CAAC,EAAY,EAAE,CAAS;IACrD,MAAM,KAAK,GAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACvD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,qBAAqB;gBACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/E,MAAM;YACR,KAAK,kBAAkB;gBACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/E,MAAM;YACR,KAAK,oBAAoB;gBACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;gBACxC,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { DiscriminatedUnionIR } from "../../types.js";
|
|
2
|
-
import type { CodeGenContext, GenerateFastCheckFn } from "../context.js";
|
|
3
|
-
export declare function fastCheckDiscriminatedUnion(ir: DiscriminatedUnionIR, x: string, ctx: CodeGenContext, generateFn: GenerateFastCheckFn): string | null;
|
|
4
|
-
//# sourceMappingURL=discriminated-union.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discriminated-union.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/discriminated-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzE,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,oBAAoB,EACxB,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,mBAAmB,GAC9B,MAAM,GAAG,IAAI,CAUf"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function fastCheckDiscriminatedUnion(ir, x, ctx, generateFn) {
|
|
2
|
-
// Generate checks for each branch, keyed by discriminator value
|
|
3
|
-
const branchChecks = [];
|
|
4
|
-
for (const option of ir.options) {
|
|
5
|
-
const check = generateFn(option, x, ctx);
|
|
6
|
-
if (check === null)
|
|
7
|
-
return null;
|
|
8
|
-
branchChecks.push(`(${check})`);
|
|
9
|
-
}
|
|
10
|
-
// Combine as || chain, wrapped for precedence safety
|
|
11
|
-
return `(${branchChecks.join("||")})`;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=discriminated-union.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discriminated-union.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/discriminated-union.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,2BAA2B,CACzC,EAAwB,EACxB,CAAS,EACT,GAAmB,EACnB,UAA+B;IAE/B,gEAAgE;IAChE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,qDAAqD;IACrD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAShF"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ENUM_INLINE_THRESHOLD, escapeString } from "../context.js";
|
|
2
|
-
export function fastCheckEnum(ir, x, ctx) {
|
|
3
|
-
if (ir.values.length <= ENUM_INLINE_THRESHOLD) {
|
|
4
|
-
// Inline equality checks for small enums, wrapped in parens for precedence safety
|
|
5
|
-
return `(${ir.values.map((v) => `${x}===${escapeString(v)}`).join("||")})`;
|
|
6
|
-
}
|
|
7
|
-
// Use Set for larger enums
|
|
8
|
-
const setVar = `__enumSet_${ctx.counter++}`;
|
|
9
|
-
ctx.preamble.push(`var ${setVar}=new Set(${JSON.stringify(ir.values)});`);
|
|
10
|
-
return `${setVar}.has(${x})`;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=enum.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/enum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,CAAS,EAAE,GAAmB;IACtE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC9C,kFAAkF;QAClF,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7E,CAAC;IACD,2BAA2B;IAC3B,MAAM,MAAM,GAAG,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,MAAM,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;AAC/B,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fast Path generator: produces a boolean expression string for eligible schemas.
|
|
3
|
-
* When the expression evaluates to `true` at runtime, the input is valid and
|
|
4
|
-
* safeParse can return success immediately without allocating an issues array.
|
|
5
|
-
*
|
|
6
|
-
* Returns `null` if the schema is not eligible for Fast Path (contains coerce,
|
|
7
|
-
* default, catch, date, set/map, transform, refine, or other non-pure constructs).
|
|
8
|
-
*/
|
|
9
|
-
import type { SchemaIR } from "../../types.js";
|
|
10
|
-
import type { CodeGenContext } from "../context.js";
|
|
11
|
-
/**
|
|
12
|
-
* Generate a boolean expression string that validates `inputExpr` against the schema.
|
|
13
|
-
* Returns `null` if the schema (or any nested part) is not eligible for fast checking.
|
|
14
|
-
*/
|
|
15
|
-
export declare function generateFastCheck(ir: SchemaIR, inputExpr: string, ctx: CodeGenContext): string | null;
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAmBpD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,GAClB,MAAM,GAAG,IAAI,CA6Ff"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fast Path generator: produces a boolean expression string for eligible schemas.
|
|
3
|
-
* When the expression evaluates to `true` at runtime, the input is valid and
|
|
4
|
-
* safeParse can return success immediately without allocating an issues array.
|
|
5
|
-
*
|
|
6
|
-
* Returns `null` if the schema is not eligible for Fast Path (contains coerce,
|
|
7
|
-
* default, catch, date, set/map, transform, refine, or other non-pure constructs).
|
|
8
|
-
*/
|
|
9
|
-
import { escapeString } from "../context.js";
|
|
10
|
-
import { fastCheckArray } from "./array.js";
|
|
11
|
-
import { fastCheckBigInt } from "./bigint.js";
|
|
12
|
-
import { fastCheckDiscriminatedUnion } from "./discriminated-union.js";
|
|
13
|
-
import { fastCheckEnum } from "./enum.js";
|
|
14
|
-
import { fastCheckIntersection } from "./intersection.js";
|
|
15
|
-
import { fastCheckLiteral } from "./literal.js";
|
|
16
|
-
import { fastCheckNullable } from "./nullable.js";
|
|
17
|
-
import { fastCheckNumber } from "./number.js";
|
|
18
|
-
import { fastCheckObject } from "./object.js";
|
|
19
|
-
import { fastCheckOptional } from "./optional.js";
|
|
20
|
-
import { fastCheckPipe } from "./pipe.js";
|
|
21
|
-
import { fastCheckReadonly } from "./readonly.js";
|
|
22
|
-
import { fastCheckRecord } from "./record.js";
|
|
23
|
-
import { fastCheckString } from "./string.js";
|
|
24
|
-
import { fastCheckTuple } from "./tuple.js";
|
|
25
|
-
import { fastCheckUnion } from "./union.js";
|
|
26
|
-
/**
|
|
27
|
-
* Generate a boolean expression string that validates `inputExpr` against the schema.
|
|
28
|
-
* Returns `null` if the schema (or any nested part) is not eligible for fast checking.
|
|
29
|
-
*/
|
|
30
|
-
export function generateFastCheck(ir, inputExpr, ctx) {
|
|
31
|
-
switch (ir.type) {
|
|
32
|
-
// ── Trivially eligible ──────────────────────────────────────────────
|
|
33
|
-
case "any":
|
|
34
|
-
case "unknown":
|
|
35
|
-
return "true";
|
|
36
|
-
// ── NOT ELIGIBLE ────────────────────────────────────────────────────
|
|
37
|
-
case "fallback":
|
|
38
|
-
case "default":
|
|
39
|
-
case "catch":
|
|
40
|
-
case "date":
|
|
41
|
-
case "set":
|
|
42
|
-
case "map":
|
|
43
|
-
return null;
|
|
44
|
-
// ── Primitives with coerce check ────────────────────────────────────
|
|
45
|
-
case "string":
|
|
46
|
-
if (ir.coerce)
|
|
47
|
-
return null;
|
|
48
|
-
return fastCheckString(ir, inputExpr, ctx);
|
|
49
|
-
case "number":
|
|
50
|
-
if (ir.coerce)
|
|
51
|
-
return null;
|
|
52
|
-
return fastCheckNumber(ir, inputExpr);
|
|
53
|
-
case "boolean":
|
|
54
|
-
if (ir.coerce)
|
|
55
|
-
return null;
|
|
56
|
-
return `typeof ${inputExpr}==="boolean"`;
|
|
57
|
-
case "bigint":
|
|
58
|
-
if (ir.coerce)
|
|
59
|
-
return null;
|
|
60
|
-
return fastCheckBigInt(ir, inputExpr);
|
|
61
|
-
// ── Simple type checks ──────────────────────────────────────────────
|
|
62
|
-
case "null":
|
|
63
|
-
return `${inputExpr}===null`;
|
|
64
|
-
case "undefined":
|
|
65
|
-
return `${inputExpr}===undefined`;
|
|
66
|
-
case "symbol":
|
|
67
|
-
return `typeof ${inputExpr}==="symbol"`;
|
|
68
|
-
case "void":
|
|
69
|
-
return `${inputExpr}===undefined`;
|
|
70
|
-
case "nan":
|
|
71
|
-
return `typeof ${inputExpr}==="number"&&Number.isNaN(${inputExpr})`;
|
|
72
|
-
case "never":
|
|
73
|
-
return "false";
|
|
74
|
-
// ── Literal ─────────────────────────────────────────────────────────
|
|
75
|
-
case "literal":
|
|
76
|
-
return fastCheckLiteral(ir, inputExpr);
|
|
77
|
-
// ── Enum ────────────────────────────────────────────────────────────
|
|
78
|
-
case "enum":
|
|
79
|
-
return fastCheckEnum(ir, inputExpr, ctx);
|
|
80
|
-
// ── Template literal ────────────────────────────────────────────────
|
|
81
|
-
case "templateLiteral": {
|
|
82
|
-
const regexVar = `__re_tl_${ctx.counter++}`;
|
|
83
|
-
ctx.preamble.push(`var ${regexVar}=new RegExp(${escapeString(ir.pattern)});`);
|
|
84
|
-
return `typeof ${inputExpr}==="string"&&${regexVar}.test(${inputExpr})`;
|
|
85
|
-
}
|
|
86
|
-
// ── Containers ──────────────────────────────────────────────────────
|
|
87
|
-
case "object":
|
|
88
|
-
return fastCheckObject(ir, inputExpr, ctx, generateFastCheck);
|
|
89
|
-
case "array":
|
|
90
|
-
return fastCheckArray(ir, inputExpr, ctx, generateFastCheck);
|
|
91
|
-
case "tuple":
|
|
92
|
-
return fastCheckTuple(ir, inputExpr, ctx, generateFastCheck);
|
|
93
|
-
case "record":
|
|
94
|
-
return fastCheckRecord(ir, inputExpr, ctx, generateFastCheck);
|
|
95
|
-
// ── Modifiers ───────────────────────────────────────────────────────
|
|
96
|
-
case "optional":
|
|
97
|
-
return fastCheckOptional(ir, inputExpr, ctx, generateFastCheck);
|
|
98
|
-
case "nullable":
|
|
99
|
-
return fastCheckNullable(ir, inputExpr, ctx, generateFastCheck);
|
|
100
|
-
case "readonly":
|
|
101
|
-
return fastCheckReadonly(ir, inputExpr, ctx, generateFastCheck);
|
|
102
|
-
case "pipe":
|
|
103
|
-
return fastCheckPipe(ir, inputExpr, ctx, generateFastCheck);
|
|
104
|
-
// ── Unions & Intersections ──────────────────────────────────────────
|
|
105
|
-
case "union":
|
|
106
|
-
return fastCheckUnion(ir, inputExpr, ctx, generateFastCheck);
|
|
107
|
-
case "discriminatedUnion":
|
|
108
|
-
return fastCheckDiscriminatedUnion(ir, inputExpr, ctx, generateFastCheck);
|
|
109
|
-
case "intersection":
|
|
110
|
-
return fastCheckIntersection(ir, inputExpr, ctx, generateFastCheck);
|
|
111
|
-
// ── recursiveRef ────────────────────────────────────────────────────
|
|
112
|
-
case "recursiveRef":
|
|
113
|
-
// recursiveRef needs auxiliary function generation, handled separately
|
|
114
|
-
// For now, mark as ineligible; Step 2 will add support
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { IntersectionIR } from "../../types.js";
|
|
2
|
-
import type { CodeGenContext, GenerateFastCheckFn } from "../context.js";
|
|
3
|
-
export declare function fastCheckIntersection(ir: IntersectionIR, x: string, ctx: CodeGenContext, generateFn: GenerateFastCheckFn): string | null;
|
|
4
|
-
//# sourceMappingURL=intersection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/intersection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,cAAc,EAClB,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,mBAAmB,GAC9B,MAAM,GAAG,IAAI,CAMf"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function fastCheckIntersection(ir, x, ctx, generateFn) {
|
|
2
|
-
const left = generateFn(ir.left, x, ctx);
|
|
3
|
-
if (left === null)
|
|
4
|
-
return null;
|
|
5
|
-
const right = generateFn(ir.right, x, ctx);
|
|
6
|
-
if (right === null)
|
|
7
|
-
return null;
|
|
8
|
-
return left === "true" ? right : right === "true" ? left : `${left}&&${right}`;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=intersection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/intersection.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qBAAqB,CACnC,EAAkB,EAClB,CAAS,EACT,GAAmB,EACnB,UAA+B;IAE/B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;AACjF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/literal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export function fastCheckLiteral(ir, x) {
|
|
2
|
-
if (ir.values.length === 1) {
|
|
3
|
-
return `${x}===${JSON.stringify(ir.values[0])}`;
|
|
4
|
-
}
|
|
5
|
-
// Wrap in parens — || has lower precedence than && in parent expressions
|
|
6
|
-
return `(${ir.values.map((v) => `${x}===${JSON.stringify(v)}`).join("||")})`;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=literal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/literal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,EAAa,EAAE,CAAS;IACvD,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,yEAAyE;IACzE,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/E,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { NullableIR } from "../../types.js";
|
|
2
|
-
import type { CodeGenContext, GenerateFastCheckFn } from "../context.js";
|
|
3
|
-
export declare function fastCheckNullable(ir: NullableIR, x: string, ctx: CodeGenContext, generateFn: GenerateFastCheckFn): string | null;
|
|
4
|
-
//# sourceMappingURL=nullable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nullable.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/nullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzE,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,UAAU,EACd,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,mBAAmB,GAC9B,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/nullable.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAC/B,EAAc,EACd,CAAS,EACT,GAAmB,EACnB,UAA+B;IAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/fast-check/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkDtE"}
|