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,231 +1,207 @@
|
|
|
1
|
+
//#region src/core/codegen/regex-unroll.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
3
|
+
* Bounded-repeat unrolling for `.test()` regexes.
|
|
4
|
+
*
|
|
5
|
+
* V8's irregexp compiles a counted quantifier (`[0-9a-fA-F]{12}`) into a
|
|
6
|
+
* backtrack-capable loop carrying a counter register, but compiles the same
|
|
7
|
+
* atom written out (`[0-9a-fA-F][0-9a-fA-F]…`) into straight-line matching
|
|
8
|
+
* code. Rewriting one into the other is purely structural — the language the
|
|
9
|
+
* pattern accepts is unchanged — and is worth a lot on exactly the string
|
|
10
|
+
* formats everyday schemas lean on:
|
|
11
|
+
*
|
|
12
|
+
* z.uuid() 3.1x z.guid() 3.4x z.ksuid() 2.7x
|
|
13
|
+
* z.xid() 2.2x z.ulid() 2.1x z.base64() 2.1x
|
|
14
|
+
* z.nanoid() 1.9x z.e164() 1.5x z.iso.date() 1.3x
|
|
15
|
+
*
|
|
16
|
+
* Measured on V8 13.x (node 24). The win starts at `{4}` (1.28x) and grows
|
|
17
|
+
* with the count (2.7x at `{64}`); `{2}`/`{3}` are a wash, which is what
|
|
18
|
+
* {@link MIN_REPEAT} encodes.
|
|
19
|
+
*
|
|
20
|
+
* The rewrite applies only to quantifiers whose atom is a SINGLE CHARACTER
|
|
21
|
+
* matcher — a character class, an escape, or a literal character. A group's
|
|
22
|
+
* repeat is left alone: unrolling it would duplicate capture groups and
|
|
23
|
+
* renumber every backreference after it. Anything the scanner cannot account
|
|
24
|
+
* for exactly makes the whole transform bail (`null`), leaving the original
|
|
25
|
+
* pattern in place.
|
|
26
|
+
*
|
|
27
|
+
* Callers must keep reporting the ORIGINAL source in issues — the rewritten
|
|
28
|
+
* regex's `toString()` would otherwise leak into `pattern:` and diverge from
|
|
29
|
+
* zod. See `emitRegexSourceString`.
|
|
30
|
+
*/
|
|
30
31
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
* Smallest mandatory repeat count worth unrolling. Below this the counter loop
|
|
33
|
+
* and the straight-line form measure the same (0.97-1.00x), so leaving the
|
|
34
|
+
* pattern untouched keeps generated output smaller for no speed cost.
|
|
35
|
+
*/
|
|
35
36
|
const MIN_REPEAT = 4;
|
|
36
37
|
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
* Largest repeat count unrolled. A `{500}` would expand to a pattern longer
|
|
39
|
+
* than anything it could save, so it keeps the counter loop.
|
|
40
|
+
*/
|
|
40
41
|
const MAX_REPEAT = 64;
|
|
41
42
|
/** Largest `max - min` optional tail expanded (`{6,14}` → 6 copies + 8 `?` copies). */
|
|
42
43
|
const MAX_OPTIONAL = 32;
|
|
43
44
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const GROWTH_BUDGET =
|
|
45
|
+
* Total characters the rewrite may add across a whole pattern. Once spent,
|
|
46
|
+
* later quantifiers are copied verbatim — the rewrite degrades gradually
|
|
47
|
+
* instead of failing, and emitted size stays bounded for hand-written patterns.
|
|
48
|
+
*/
|
|
49
|
+
const GROWTH_BUDGET = 2048;
|
|
49
50
|
/** Characters that begin something other than a literal single-character atom. */
|
|
50
|
-
const NON_ATOM = new Set([
|
|
51
|
+
const NON_ATOM = /* @__PURE__ */ new Set([
|
|
52
|
+
"^",
|
|
53
|
+
"$",
|
|
54
|
+
"|",
|
|
55
|
+
"(",
|
|
56
|
+
")",
|
|
57
|
+
"*",
|
|
58
|
+
"+",
|
|
59
|
+
"?"
|
|
60
|
+
]);
|
|
51
61
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// a fresh atom.
|
|
102
|
-
atomOffset = -1;
|
|
103
|
-
index = quantifier.end;
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
// Not a valid quantifier — an unescaped `{` is a literal in Annex B.
|
|
107
|
-
}
|
|
108
|
-
atomOffset = NON_ATOM.has(char) || isSurrogate(char) ? -1 : out.length;
|
|
109
|
-
out += char;
|
|
110
|
-
index += 1;
|
|
111
|
-
}
|
|
112
|
-
return changed ? out : null;
|
|
62
|
+
* Rewrite bounded repeats of single-character atoms into explicit repetition.
|
|
63
|
+
* Returns `null` when nothing changed or the pattern could not be scanned
|
|
64
|
+
* exactly (in which case the caller keeps the original source).
|
|
65
|
+
*/
|
|
66
|
+
function unrollRepeats(source) {
|
|
67
|
+
let out = "";
|
|
68
|
+
let index = 0;
|
|
69
|
+
/** Offset in `out` where the most recent atom starts, or -1 when the preceding construct is not a single-character atom. */
|
|
70
|
+
let atomOffset = -1;
|
|
71
|
+
let budget = GROWTH_BUDGET;
|
|
72
|
+
let changed = false;
|
|
73
|
+
while (index < source.length) {
|
|
74
|
+
const char = source[index];
|
|
75
|
+
if (char === "\\") {
|
|
76
|
+
const end = readEscape(source, index);
|
|
77
|
+
if (end === null) return null;
|
|
78
|
+
atomOffset = out.length;
|
|
79
|
+
out += source.slice(index, end);
|
|
80
|
+
index = end;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (char === "[") {
|
|
84
|
+
const end = readClass(source, index);
|
|
85
|
+
if (end === null) return null;
|
|
86
|
+
atomOffset = out.length;
|
|
87
|
+
out += source.slice(index, end);
|
|
88
|
+
index = end;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (char === "{") {
|
|
92
|
+
const quantifier = readQuantifier(source, index);
|
|
93
|
+
if (quantifier !== null) {
|
|
94
|
+
const expansion = source[quantifier.end] === "?" || atomOffset < 0 ? null : expand(out.slice(atomOffset), quantifier, budget);
|
|
95
|
+
if (expansion === null) out += source.slice(index, quantifier.end);
|
|
96
|
+
else {
|
|
97
|
+
budget -= expansion.length - (out.length - atomOffset);
|
|
98
|
+
out = out.slice(0, atomOffset) + expansion;
|
|
99
|
+
changed = true;
|
|
100
|
+
}
|
|
101
|
+
atomOffset = -1;
|
|
102
|
+
index = quantifier.end;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
atomOffset = NON_ATOM.has(char) || isSurrogate(char) ? -1 : out.length;
|
|
107
|
+
out += char;
|
|
108
|
+
index += 1;
|
|
109
|
+
}
|
|
110
|
+
return changed ? out : null;
|
|
113
111
|
}
|
|
114
112
|
/** Repeated-atom form of `atom{min,max}`, or null when it is not worth (or safe to) expand. */
|
|
115
113
|
function expand(atom, { min, max }, budget) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const tail = max === Infinity ? `${atom}*` : `${atom}?`.repeat(optional);
|
|
123
|
-
const expansion = mandatory + tail;
|
|
124
|
-
// `atom{min,max}` is being replaced by `expansion`; charge the difference.
|
|
125
|
-
if (expansion.length - atom.length > budget)
|
|
126
|
-
return null;
|
|
127
|
-
return expansion;
|
|
114
|
+
if (min < MIN_REPEAT || min > MAX_REPEAT) return null;
|
|
115
|
+
const optional = max === Infinity ? 0 : max - min;
|
|
116
|
+
if (optional > MAX_OPTIONAL) return null;
|
|
117
|
+
const expansion = atom.repeat(min) + (max === Infinity ? `${atom}*` : `${atom}?`.repeat(optional));
|
|
118
|
+
if (expansion.length - atom.length > budget) return null;
|
|
119
|
+
return expansion;
|
|
128
120
|
}
|
|
129
121
|
/** True for a lone UTF-16 surrogate code unit, which is never treated as its own atom. */
|
|
130
122
|
function isSurrogate(char) {
|
|
131
|
-
|
|
132
|
-
|
|
123
|
+
const code = char.charCodeAt(0);
|
|
124
|
+
return code >= 55296 && code <= 57343;
|
|
133
125
|
}
|
|
134
126
|
/**
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
127
|
+
* End offset (exclusive) of the escape sequence starting at `start`, or null
|
|
128
|
+
* when the sequence is not one whose extent is unambiguous.
|
|
129
|
+
*
|
|
130
|
+
* Everything here hinges on the caller only passing FLAG-LESS patterns, where
|
|
131
|
+
* Annex B's "identity escape" fallback makes several sequences mean something
|
|
132
|
+
* other than they would under `u`: `\p{L}` is the letter `p` followed by three
|
|
133
|
+
* literal characters, not a property escape, and `\uZZZZ` is `u` followed by
|
|
134
|
+
* four literal `Z`s. Consuming those as one atom would attach a following
|
|
135
|
+
* quantifier to the wrong character, so the well-formed fixed-width escapes
|
|
136
|
+
* are recognised exactly and every ambiguous form bails.
|
|
137
|
+
*/
|
|
146
138
|
function readEscape(source, start) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return after !== undefined && after >= "0" && after <= "9" ? null : start + 2;
|
|
159
|
-
}
|
|
160
|
-
if (next === "u")
|
|
161
|
-
return fixedWidth(source, start, 4, isHexDigit);
|
|
162
|
-
if (next === "x")
|
|
163
|
-
return fixedWidth(source, start, 2, isHexDigit);
|
|
164
|
-
if (next === "c")
|
|
165
|
-
return fixedWidth(source, start, 1, isAsciiLetter);
|
|
166
|
-
// Character-class escapes (`\d`, `\w`, `\s`), control escapes (`\n`, `\t`)
|
|
167
|
-
// and identity escapes (`\.`, `\\`, `\{`) are all one character wide.
|
|
168
|
-
return start + 2;
|
|
139
|
+
const next = source[start + 1];
|
|
140
|
+
if (next === void 0) return null;
|
|
141
|
+
if (next === "p" || next === "P" || next === "k") return null;
|
|
142
|
+
if (next >= "0" && next <= "9") {
|
|
143
|
+
const after = source[start + 2];
|
|
144
|
+
return after !== void 0 && after >= "0" && after <= "9" ? null : start + 2;
|
|
145
|
+
}
|
|
146
|
+
if (next === "u") return fixedWidth(source, start, 4, isHexDigit);
|
|
147
|
+
if (next === "x") return fixedWidth(source, start, 2, isHexDigit);
|
|
148
|
+
if (next === "c") return fixedWidth(source, start, 1, isAsciiLetter);
|
|
149
|
+
return start + 2;
|
|
169
150
|
}
|
|
170
151
|
/** End offset of `\<kind>` plus exactly `width` chars satisfying `valid`, or null. */
|
|
171
152
|
function fixedWidth(source, start, width, valid) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (!valid(source[index]))
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
return end;
|
|
153
|
+
const end = start + 2 + width;
|
|
154
|
+
if (end > source.length) return null;
|
|
155
|
+
for (let index = start + 2; index < end; index++) if (!valid(source[index])) return null;
|
|
156
|
+
return end;
|
|
180
157
|
}
|
|
181
158
|
function isHexDigit(char) {
|
|
182
|
-
|
|
159
|
+
return /[0-9a-fA-F]/.test(char);
|
|
183
160
|
}
|
|
184
161
|
function isAsciiLetter(char) {
|
|
185
|
-
|
|
162
|
+
return /[a-zA-Z]/.test(char);
|
|
186
163
|
}
|
|
187
164
|
/**
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
165
|
+
* End offset (exclusive) of the character class starting at `start`, or null
|
|
166
|
+
* when unterminated. The first unescaped `]` closes the class — `[]]` is an
|
|
167
|
+
* empty class followed by a literal `]`, not a class containing `]`.
|
|
168
|
+
*/
|
|
192
169
|
function readClass(source, start) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (char === "]")
|
|
208
|
-
return index + 1;
|
|
209
|
-
index += 1;
|
|
210
|
-
}
|
|
211
|
-
return null;
|
|
170
|
+
let index = start + 1;
|
|
171
|
+
if (source[index] === "^") index += 1;
|
|
172
|
+
while (index < source.length) {
|
|
173
|
+
const char = source[index];
|
|
174
|
+
if (char === "\\") {
|
|
175
|
+
const end = readEscape(source, index);
|
|
176
|
+
if (end === null) return null;
|
|
177
|
+
index = end;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
if (char === "]") return index + 1;
|
|
181
|
+
index += 1;
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
212
184
|
}
|
|
213
185
|
/**
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
186
|
+
* Parse `{n}`, `{n,}` or `{n,m}` at `start`. Returns null when the braces do
|
|
187
|
+
* not form a quantifier, which Annex B treats as literal `{` characters.
|
|
188
|
+
*/
|
|
217
189
|
function readQuantifier(source, start) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
190
|
+
const close = source.indexOf("}", start);
|
|
191
|
+
if (close === -1) return null;
|
|
192
|
+
const body = source.slice(start + 1, close);
|
|
193
|
+
const match = /^(\d+)(?:,(\d*))?$/.exec(body);
|
|
194
|
+
if (!match) return null;
|
|
195
|
+
const min = Number(match[1]);
|
|
196
|
+
const max = match[2] === void 0 ? min : match[2] === "" ? Infinity : Number(match[2]);
|
|
197
|
+
if (max < min) return null;
|
|
198
|
+
return {
|
|
199
|
+
end: close + 1,
|
|
200
|
+
max,
|
|
201
|
+
min
|
|
202
|
+
};
|
|
230
203
|
}
|
|
204
|
+
//#endregion
|
|
205
|
+
export { unrollRepeats };
|
|
206
|
+
|
|
231
207
|
//# sourceMappingURL=regex-unroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex-unroll.js","sourceRoot":"","sources":["../../../src/core/codegen/regex-unroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB;;;GAGG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,uFAAuF;AACvF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;;GAIG;AACH,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,kFAAkF;AAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,4HAA4H;IAC5H,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,aAAa,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAW,CAAC;QAErC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;YACxB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,KAAK,GAAG,GAAG,CAAC;YACZ,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;YACxB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,KAAK,GAAG,GAAG,CAAC;YACZ,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,SAAS;gBACb,+DAA+D;gBAC/D,8DAA8D;gBAC9D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,UAAU,GAAG,CAAC;oBAC9C,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;oBACvD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;oBAC3C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,uEAAuE;gBACvE,gBAAgB;gBAChB,UAAU,GAAG,CAAC,CAAC,CAAC;gBAChB,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,qEAAqE;QACvE,CAAC;QAED,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACvE,GAAG,IAAI,IAAI,CAAC;QACZ,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,+FAA+F;AAC/F,SAAS,MAAM,CACb,IAAY,EACZ,EAAE,GAAG,EAAE,GAAG,EAAgC,EAC1C,MAAc;IAEd,IAAI,GAAG,GAAG,UAAU,IAAI,GAAG,GAAG,UAAU;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IAClD,IAAI,QAAQ,GAAG,YAAY;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,2EAA2E;IAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0FAA0F;AAC1F,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,KAAa;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEpC,sEAAsE;IACtE,0EAA0E;IAC1E,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAE9D,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAErE,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO,KAAK,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,sFAAsF;AACtF,SAAS,UAAU,CACjB,MAAc,EACd,KAAa,EACb,KAAa,EACb,KAAgC;IAEhC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAW,CAAC;YAAE,OAAO,IAAI,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,KAAa;IAC9C,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;QAAE,KAAK,IAAI,CAAC,CAAC;IACtC,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,KAAK,GAAG,GAAG,CAAC;YACZ,SAAS;QACX,CAAC;QACD,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,MAAc,EACd,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,GAAG,GACP,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;IACzF,IAAI,GAAG,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"regex-unroll.js","names":[],"sources":["../../../src/core/codegen/regex-unroll.ts"],"sourcesContent":["/**\n * Bounded-repeat unrolling for `.test()` regexes.\n *\n * V8's irregexp compiles a counted quantifier (`[0-9a-fA-F]{12}`) into a\n * backtrack-capable loop carrying a counter register, but compiles the same\n * atom written out (`[0-9a-fA-F][0-9a-fA-F]…`) into straight-line matching\n * code. Rewriting one into the other is purely structural — the language the\n * pattern accepts is unchanged — and is worth a lot on exactly the string\n * formats everyday schemas lean on:\n *\n * z.uuid() 3.1x z.guid() 3.4x z.ksuid() 2.7x\n * z.xid() 2.2x z.ulid() 2.1x z.base64() 2.1x\n * z.nanoid() 1.9x z.e164() 1.5x z.iso.date() 1.3x\n *\n * Measured on V8 13.x (node 24). The win starts at `{4}` (1.28x) and grows\n * with the count (2.7x at `{64}`); `{2}`/`{3}` are a wash, which is what\n * {@link MIN_REPEAT} encodes.\n *\n * The rewrite applies only to quantifiers whose atom is a SINGLE CHARACTER\n * matcher — a character class, an escape, or a literal character. A group's\n * repeat is left alone: unrolling it would duplicate capture groups and\n * renumber every backreference after it. Anything the scanner cannot account\n * for exactly makes the whole transform bail (`null`), leaving the original\n * pattern in place.\n *\n * Callers must keep reporting the ORIGINAL source in issues — the rewritten\n * regex's `toString()` would otherwise leak into `pattern:` and diverge from\n * zod. See `emitRegexSourceString`.\n */\n\n/**\n * Smallest mandatory repeat count worth unrolling. Below this the counter loop\n * and the straight-line form measure the same (0.97-1.00x), so leaving the\n * pattern untouched keeps generated output smaller for no speed cost.\n */\nconst MIN_REPEAT = 4;\n\n/**\n * Largest repeat count unrolled. A `{500}` would expand to a pattern longer\n * than anything it could save, so it keeps the counter loop.\n */\nconst MAX_REPEAT = 64;\n\n/** Largest `max - min` optional tail expanded (`{6,14}` → 6 copies + 8 `?` copies). */\nconst MAX_OPTIONAL = 32;\n\n/**\n * Total characters the rewrite may add across a whole pattern. Once spent,\n * later quantifiers are copied verbatim — the rewrite degrades gradually\n * instead of failing, and emitted size stays bounded for hand-written patterns.\n */\nconst GROWTH_BUDGET = 2_048;\n\n/** Characters that begin something other than a literal single-character atom. */\nconst NON_ATOM = new Set([\"^\", \"$\", \"|\", \"(\", \")\", \"*\", \"+\", \"?\"]);\n\n/**\n * Rewrite bounded repeats of single-character atoms into explicit repetition.\n * Returns `null` when nothing changed or the pattern could not be scanned\n * exactly (in which case the caller keeps the original source).\n */\nexport function unrollRepeats(source: string): string | null {\n let out = \"\";\n let index = 0;\n /** Offset in `out` where the most recent atom starts, or -1 when the preceding construct is not a single-character atom. */\n let atomOffset = -1;\n let budget = GROWTH_BUDGET;\n let changed = false;\n\n while (index < source.length) {\n const char = source[index] as string;\n\n if (char === \"\\\\\") {\n const end = readEscape(source, index);\n if (end === null) return null;\n atomOffset = out.length;\n out += source.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"[\") {\n const end = readClass(source, index);\n if (end === null) return null;\n atomOffset = out.length;\n out += source.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"{\") {\n const quantifier = readQuantifier(source, index);\n if (quantifier !== null) {\n const expansion =\n // A lazy quantifier (`{n,m}?`) prefers the shortest match; the\n // unrolled form's `?` copies are greedy, so it is left alone.\n source[quantifier.end] === \"?\" || atomOffset < 0\n ? null\n : expand(out.slice(atomOffset), quantifier, budget);\n if (expansion === null) {\n out += source.slice(index, quantifier.end);\n } else {\n budget -= expansion.length - (out.length - atomOffset);\n out = out.slice(0, atomOffset) + expansion;\n changed = true;\n }\n // A quantifier cannot itself be quantified, so whatever follows starts\n // a fresh atom.\n atomOffset = -1;\n index = quantifier.end;\n continue;\n }\n // Not a valid quantifier — an unescaped `{` is a literal in Annex B.\n }\n\n atomOffset = NON_ATOM.has(char) || isSurrogate(char) ? -1 : out.length;\n out += char;\n index += 1;\n }\n\n return changed ? out : null;\n}\n\n/** Repeated-atom form of `atom{min,max}`, or null when it is not worth (or safe to) expand. */\nfunction expand(\n atom: string,\n { min, max }: { max: number; min: number },\n budget: number,\n): string | null {\n if (min < MIN_REPEAT || min > MAX_REPEAT) return null;\n const optional = max === Infinity ? 0 : max - min;\n if (optional > MAX_OPTIONAL) return null;\n const mandatory = atom.repeat(min);\n const tail = max === Infinity ? `${atom}*` : `${atom}?`.repeat(optional);\n const expansion = mandatory + tail;\n // `atom{min,max}` is being replaced by `expansion`; charge the difference.\n if (expansion.length - atom.length > budget) return null;\n return expansion;\n}\n\n/** True for a lone UTF-16 surrogate code unit, which is never treated as its own atom. */\nfunction isSurrogate(char: string): boolean {\n const code = char.charCodeAt(0);\n return code >= 0xd8_00 && code <= 0xdf_ff;\n}\n\n/**\n * End offset (exclusive) of the escape sequence starting at `start`, or null\n * when the sequence is not one whose extent is unambiguous.\n *\n * Everything here hinges on the caller only passing FLAG-LESS patterns, where\n * Annex B's \"identity escape\" fallback makes several sequences mean something\n * other than they would under `u`: `\\p{L}` is the letter `p` followed by three\n * literal characters, not a property escape, and `\\uZZZZ` is `u` followed by\n * four literal `Z`s. Consuming those as one atom would attach a following\n * quantifier to the wrong character, so the well-formed fixed-width escapes\n * are recognised exactly and every ambiguous form bails.\n */\nfunction readEscape(source: string, start: number): number | null {\n const next = source[start + 1];\n if (next === undefined) return null;\n\n // Property escapes and named backreferences read differently with and\n // without the `u` flag — never worth resolving for the sake of a rewrite.\n if (next === \"p\" || next === \"P\" || next === \"k\") return null;\n\n // `\\12` may be backreference 12 or backreference 1 followed by a literal 2,\n // depending on how many groups the pattern has.\n if (next >= \"0\" && next <= \"9\") {\n const after = source[start + 2];\n return after !== undefined && after >= \"0\" && after <= \"9\" ? null : start + 2;\n }\n\n if (next === \"u\") return fixedWidth(source, start, 4, isHexDigit);\n if (next === \"x\") return fixedWidth(source, start, 2, isHexDigit);\n if (next === \"c\") return fixedWidth(source, start, 1, isAsciiLetter);\n\n // Character-class escapes (`\\d`, `\\w`, `\\s`), control escapes (`\\n`, `\\t`)\n // and identity escapes (`\\.`, `\\\\`, `\\{`) are all one character wide.\n return start + 2;\n}\n\n/** End offset of `\\<kind>` plus exactly `width` chars satisfying `valid`, or null. */\nfunction fixedWidth(\n source: string,\n start: number,\n width: number,\n valid: (char: string) => boolean,\n): number | null {\n const end = start + 2 + width;\n if (end > source.length) return null;\n for (let index = start + 2; index < end; index++) {\n if (!valid(source[index] as string)) return null;\n }\n return end;\n}\n\nfunction isHexDigit(char: string): boolean {\n return /[0-9a-fA-F]/.test(char);\n}\n\nfunction isAsciiLetter(char: string): boolean {\n return /[a-zA-Z]/.test(char);\n}\n\n/**\n * End offset (exclusive) of the character class starting at `start`, or null\n * when unterminated. The first unescaped `]` closes the class — `[]]` is an\n * empty class followed by a literal `]`, not a class containing `]`.\n */\nfunction readClass(source: string, start: number): number | null {\n let index = start + 1;\n if (source[index] === \"^\") index += 1;\n while (index < source.length) {\n const char = source[index];\n if (char === \"\\\\\") {\n const end = readEscape(source, index);\n if (end === null) return null;\n index = end;\n continue;\n }\n // A `v`-mode nested class would need its own nesting rules; callers only\n // pass flag-less patterns, where `[` inside a class is a literal.\n if (char === \"]\") return index + 1;\n index += 1;\n }\n return null;\n}\n\n/**\n * Parse `{n}`, `{n,}` or `{n,m}` at `start`. Returns null when the braces do\n * not form a quantifier, which Annex B treats as literal `{` characters.\n */\nfunction readQuantifier(\n source: string,\n start: number,\n): { end: number; max: number; min: number } | null {\n const close = source.indexOf(\"}\", start);\n if (close === -1) return null;\n const body = source.slice(start + 1, close);\n const match = /^(\\d+)(?:,(\\d*))?$/.exec(body);\n if (!match) return null;\n const min = Number(match[1]);\n const max =\n match[2] === undefined ? min : match[2] === \"\" ? Infinity : Number(match[2] as string);\n if (max < min) return null;\n return { end: close + 1, max, min };\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { AnyIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/any.d.ts
|
|
4
|
+
declare function slowAny(_ir: AnyIR, _g: SlowGen): string;
|
|
5
|
+
declare function fastAny(_ir: AnyIR, _g: FastGen): string | null;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { fastAny, slowAny };
|
|
5
8
|
//# sourceMappingURL=any.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"any.d.ts","
|
|
1
|
+
{"version":3,"file":"any.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/any.ts"],"mappings":";;;iBAGgB,QAAQ,KAAK,OAAO,IAAI;iBAIxB,QAAQ,KAAK,OAAO,IAAI"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/core/codegen/schemas/any.ts
|
|
2
|
+
function slowAny(_ir, _g) {
|
|
3
|
+
return "";
|
|
3
4
|
}
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
function fastAny(_ir, _g) {
|
|
6
|
+
return "true";
|
|
6
7
|
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { fastAny, slowAny };
|
|
10
|
+
|
|
7
11
|
//# sourceMappingURL=any.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"any.js","
|
|
1
|
+
{"version":3,"file":"any.js","names":[],"sources":["../../../../src/core/codegen/schemas/any.ts"],"sourcesContent":["import type { AnyIR } from \"../../types.js\";\nimport type { FastGen, SlowGen } from \"../context.js\";\n\nexport function slowAny(_ir: AnyIR, _g: SlowGen): string {\n return \"\";\n}\n\nexport function fastAny(_ir: AnyIR, _g: FastGen): string | null {\n return \"true\";\n}\n"],"mappings":";AAGA,SAAgB,QAAQ,KAAY,IAAqB;CACvD,OAAO;AACT;AAEA,SAAgB,QAAQ,KAAY,IAA4B;CAC9D,OAAO;AACT"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { ArrayIR, SchemaIR } from "../../types.js";
|
|
2
|
+
import { FastGen, SlowGen } from "../context.js";
|
|
3
|
+
//#region src/core/codegen/schemas/array.d.ts
|
|
4
|
+
declare function slowArray(ir: SchemaIR & {
|
|
5
|
+
type: "array";
|
|
5
6
|
}, g: SlowGen): string;
|
|
6
|
-
|
|
7
|
+
declare function fastArray(ir: ArrayIR, g: FastGen): string | null;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { fastArray, slowArray };
|
|
7
10
|
//# sourceMappingURL=array.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","
|
|
1
|
+
{"version":3,"file":"array.d.ts","names":[],"sources":["../../../../src/core/codegen/schemas/array.ts"],"mappings":";;;iBAegB,UAAU,IAAI;EAAa;GAAiB,GAAG;iBA8E/C,UAAU,IAAI,SAAS,GAAG"}
|