@sinclair/typebox 0.32.0-dev-15 → 0.32.0-dev-17
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/build/import/compiler/compiler.d.mts +9 -0
- package/build/import/compiler/compiler.mjs +87 -6
- package/build/import/compiler/index.mjs +27 -0
- package/build/import/errors/errors.d.mts +3 -0
- package/build/import/errors/errors.mjs +55 -3
- package/build/import/errors/function.d.mts +3 -0
- package/build/import/errors/function.mjs +31 -0
- package/build/import/errors/index.mjs +27 -0
- package/build/import/index.d.mts +2 -2
- package/build/import/index.mjs +38 -2
- package/build/import/system/index.mjs +27 -0
- package/build/import/system/policy.d.mts +10 -0
- package/build/import/system/policy.mjs +40 -0
- package/build/import/system/system.d.mts +3 -0
- package/build/import/system/system.mjs +36 -0
- package/build/import/type/any/any.d.mts +1 -0
- package/build/import/type/any/any.mjs +28 -0
- package/build/import/type/any/index.mjs +27 -0
- package/build/import/type/array/array.d.mts +8 -1
- package/build/import/type/array/array.mjs +28 -0
- package/build/import/type/array/index.mjs +27 -0
- package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
- package/build/import/type/async-iterator/async-iterator.mjs +28 -0
- package/build/import/type/async-iterator/index.mjs +27 -0
- package/build/import/type/awaited/awaited.d.mts +1 -0
- package/build/import/type/awaited/awaited.mjs +37 -0
- package/build/import/type/awaited/index.mjs +27 -0
- package/build/import/type/bigint/bigint.d.mts +1 -0
- package/build/import/type/bigint/bigint.mjs +28 -0
- package/build/import/type/bigint/index.mjs +27 -0
- package/build/import/type/boolean/boolean.d.mts +1 -0
- package/build/import/type/boolean/boolean.mjs +28 -0
- package/build/import/type/boolean/index.mjs +27 -0
- package/build/import/type/clone/index.mjs +27 -0
- package/build/import/type/clone/type.d.mts +2 -0
- package/build/import/type/clone/type.mjs +29 -0
- package/build/import/type/clone/value.d.mts +1 -0
- package/build/import/type/clone/value.mjs +29 -0
- package/build/import/type/composite/composite.d.mts +1 -0
- package/build/import/type/composite/composite.mjs +28 -0
- package/build/import/type/composite/index.mjs +27 -0
- package/build/import/type/const/const.d.mts +2 -1
- package/build/import/type/const/const.mjs +32 -1
- package/build/import/type/const/index.mjs +27 -0
- package/build/import/type/constructor/constructor.d.mts +5 -4
- package/build/import/type/constructor/constructor.mjs +28 -0
- package/build/import/type/constructor/index.mjs +27 -0
- package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
- package/build/import/type/constructor-parameters/constructor-parameters.mjs +28 -0
- package/build/import/type/constructor-parameters/index.mjs +27 -0
- package/build/import/type/date/date.d.mts +6 -0
- package/build/import/type/date/date.mjs +28 -0
- package/build/import/type/date/index.mjs +27 -0
- package/build/import/type/deref/deref.d.mts +1 -0
- package/build/import/type/deref/deref.mjs +45 -0
- package/build/import/type/deref/index.mjs +27 -0
- package/build/import/type/discard/discard.mjs +27 -0
- package/build/import/type/discard/index.mjs +27 -0
- package/build/import/type/enum/enum.d.mts +1 -0
- package/build/import/type/enum/enum.mjs +28 -0
- package/build/import/type/enum/index.mjs +27 -0
- package/build/import/type/exclude/exclude-from-mapped-result.mjs +30 -0
- package/build/import/type/exclude/exclude.d.mts +5 -3
- package/build/import/type/exclude/exclude.mjs +30 -0
- package/build/import/type/exclude/index.mjs +27 -0
- package/build/import/type/extends/extends-check.mjs +200 -1
- package/build/import/type/extends/extends-from-mapped-key.mjs +31 -0
- package/build/import/type/extends/extends-from-mapped-result.mjs +30 -0
- package/build/import/type/extends/extends-undefined.d.mts +1 -0
- package/build/import/type/extends/extends-undefined.mjs +30 -0
- package/build/import/type/extends/extends.d.mts +3 -0
- package/build/import/type/extends/extends.mjs +35 -1
- package/build/import/type/extends/index.mjs +27 -0
- package/build/import/type/extract/extract-from-mapped-result.mjs +30 -0
- package/build/import/type/extract/extract.d.mts +5 -3
- package/build/import/type/extract/extract.mjs +30 -0
- package/build/import/type/extract/index.mjs +27 -0
- package/build/import/type/function/function.d.mts +5 -4
- package/build/import/type/function/function.mjs +28 -0
- package/build/import/type/function/index.mjs +27 -0
- package/build/import/type/guard/index.mjs +27 -0
- package/build/import/type/guard/type.d.mts +46 -0
- package/build/import/type/guard/type.mjs +111 -1
- package/build/import/type/guard/value.d.mts +14 -0
- package/build/import/type/guard/value.mjs +41 -0
- package/build/import/type/helpers/helpers.d.mts +1 -0
- package/build/import/type/helpers/helpers.mjs +28 -0
- package/build/import/type/helpers/index.mjs +27 -0
- package/build/import/type/index.mjs +27 -0
- package/build/import/type/indexed/index.mjs +27 -0
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +35 -1
- package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
- package/build/import/type/indexed/indexed-property-keys.mjs +36 -0
- package/build/import/type/indexed/indexed-result.d.mts +6 -6
- package/build/import/type/indexed/indexed-result.mjs +49 -7
- package/build/import/type/indexed/indexed.d.mts +3 -0
- package/build/import/type/indexed/indexed.mjs +34 -1
- package/build/import/type/instance-type/index.mjs +27 -0
- package/build/import/type/instance-type/instance-type.d.mts +1 -0
- package/build/import/type/instance-type/instance-type.mjs +28 -0
- package/build/import/type/integer/index.mjs +27 -0
- package/build/import/type/integer/integer.d.mts +1 -0
- package/build/import/type/integer/integer.mjs +28 -0
- package/build/import/type/intersect/index.d.mts +2 -0
- package/build/import/type/intersect/index.mjs +29 -0
- package/build/import/type/intersect/intersect-create.d.mts +3 -0
- package/build/import/type/intersect/intersect-create.mjs +47 -0
- package/build/import/type/intersect/intersect-evaluated.d.mts +17 -0
- package/build/import/type/intersect/intersect-evaluated.mjs +71 -0
- package/build/import/type/intersect/intersect-type.d.mts +15 -0
- package/build/import/type/intersect/intersect-type.mjs +28 -0
- package/build/import/type/intersect/intersect.d.mts +5 -20
- package/build/import/type/intersect/intersect.mjs +37 -17
- package/build/import/type/intrinsic/capitalize.d.mts +1 -0
- package/build/import/type/intrinsic/capitalize.mjs +28 -0
- package/build/import/type/intrinsic/index.mjs +27 -0
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +31 -0
- package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
- package/build/import/type/intrinsic/intrinsic.mjs +43 -1
- package/build/import/type/intrinsic/lowercase.d.mts +1 -0
- package/build/import/type/intrinsic/lowercase.mjs +28 -0
- package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
- package/build/import/type/intrinsic/uncapitalize.mjs +28 -0
- package/build/import/type/intrinsic/uppercase.d.mts +1 -0
- package/build/import/type/intrinsic/uppercase.mjs +28 -0
- package/build/import/type/iterator/index.mjs +27 -0
- package/build/import/type/iterator/iterator.d.mts +1 -0
- package/build/import/type/iterator/iterator.mjs +28 -0
- package/build/import/type/keyof/index.mjs +27 -0
- package/build/import/type/keyof/keyof-from-mapped-result.mjs +30 -0
- package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
- package/build/import/type/keyof/keyof-property-keys.mjs +47 -0
- package/build/import/type/keyof/keyof.d.mts +4 -2
- package/build/import/type/keyof/keyof.mjs +35 -2
- package/build/import/type/literal/index.mjs +27 -0
- package/build/import/type/literal/literal.d.mts +1 -0
- package/build/import/type/literal/literal.mjs +28 -0
- package/build/import/type/mapped/index.mjs +27 -0
- package/build/import/type/mapped/mapped-key.mjs +28 -0
- package/build/import/type/mapped/mapped-result.mjs +28 -0
- package/build/import/type/mapped/mapped.d.mts +2 -0
- package/build/import/type/mapped/mapped.mjs +47 -3
- package/build/import/type/modifiers/index.mjs +27 -0
- package/build/import/type/modifiers/modifiers.mjs +37 -0
- package/build/import/type/never/index.mjs +27 -0
- package/build/import/type/never/never.d.mts +1 -0
- package/build/import/type/never/never.mjs +28 -0
- package/build/import/type/not/index.mjs +27 -0
- package/build/import/type/not/not.d.mts +1 -0
- package/build/import/type/not/not.mjs +28 -0
- package/build/import/type/null/index.mjs +27 -0
- package/build/import/type/null/null.d.mts +1 -0
- package/build/import/type/null/null.mjs +28 -0
- package/build/import/type/number/index.mjs +27 -0
- package/build/import/type/number/number.d.mts +1 -0
- package/build/import/type/number/number.mjs +28 -0
- package/build/import/type/object/index.mjs +27 -0
- package/build/import/type/object/object.d.mts +10 -5
- package/build/import/type/object/object.mjs +33 -0
- package/build/import/type/omit/index.mjs +27 -0
- package/build/import/type/omit/omit-from-mapped-key.mjs +31 -0
- package/build/import/type/omit/omit.d.mts +3 -0
- package/build/import/type/omit/omit.mjs +39 -0
- package/build/import/type/operators/index.mjs +27 -0
- package/build/import/type/operators/operators.d.mts +8 -0
- package/build/import/type/operators/operators.mjs +42 -0
- package/build/import/type/optional/index.mjs +27 -0
- package/build/import/type/optional/optional.d.mts +1 -0
- package/build/import/type/optional/optional.mjs +28 -0
- package/build/import/type/parameters/index.mjs +27 -0
- package/build/import/type/parameters/parameters.d.mts +1 -0
- package/build/import/type/parameters/parameters.mjs +28 -0
- package/build/import/type/partial/index.mjs +27 -0
- package/build/import/type/partial/partial-from-mapped-result.mjs +30 -0
- package/build/import/type/partial/partial.d.mts +2 -0
- package/build/import/type/partial/partial.mjs +36 -0
- package/build/import/type/patterns/index.mjs +27 -0
- package/build/import/type/patterns/patterns.mjs +27 -0
- package/build/import/type/pick/index.mjs +27 -0
- package/build/import/type/pick/pick-from-mapped-key.mjs +31 -0
- package/build/import/type/pick/pick.d.mts +3 -0
- package/build/import/type/pick/pick.mjs +34 -0
- package/build/import/type/promise/index.mjs +27 -0
- package/build/import/type/promise/promise.d.mts +1 -0
- package/build/import/type/promise/promise.mjs +28 -0
- package/build/import/type/readonly/index.mjs +27 -0
- package/build/import/type/readonly/readonly.d.mts +1 -0
- package/build/import/type/readonly/readonly.mjs +28 -0
- package/build/import/type/readonly-optional/index.mjs +27 -0
- package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
- package/build/import/type/readonly-optional/readonly-optional.mjs +28 -0
- package/build/import/type/record/index.mjs +27 -0
- package/build/import/type/record/record.d.mts +1 -1
- package/build/import/type/record/record.mjs +49 -1
- package/build/import/type/recursive/index.mjs +27 -0
- package/build/import/type/recursive/recursive.d.mts +4 -2
- package/build/import/type/recursive/recursive.mjs +31 -5
- package/build/import/type/ref/index.mjs +27 -0
- package/build/import/type/ref/ref.d.mts +2 -0
- package/build/import/type/ref/ref.mjs +28 -0
- package/build/import/type/regexp/index.mjs +27 -0
- package/build/import/type/regexp/regexp.d.mts +2 -0
- package/build/import/type/regexp/regexp.mjs +28 -0
- package/build/import/type/registry/format.d.mts +6 -0
- package/build/import/type/registry/format.mjs +34 -0
- package/build/import/type/registry/index.mjs +27 -0
- package/build/import/type/registry/type.d.mts +6 -0
- package/build/import/type/registry/type.mjs +34 -0
- package/build/import/type/required/index.mjs +27 -0
- package/build/import/type/required/required-from-mapped-result.mjs +30 -0
- package/build/import/type/required/required.d.mts +2 -0
- package/build/import/type/required/required.mjs +36 -0
- package/build/import/type/rest/index.mjs +27 -0
- package/build/import/type/rest/rest.d.mts +1 -0
- package/build/import/type/rest/rest.mjs +32 -0
- package/build/import/type/return-type/index.mjs +27 -0
- package/build/import/type/return-type/return-type.d.mts +1 -0
- package/build/import/type/return-type/return-type.mjs +28 -0
- package/build/import/type/schema/anyschema.mjs +27 -0
- package/build/import/type/schema/index.mjs +27 -0
- package/build/import/type/schema/schema.d.mts +7 -0
- package/build/import/type/schema/schema.mjs +27 -0
- package/build/import/type/static/index.mjs +27 -0
- package/build/import/type/static/static.d.mts +3 -0
- package/build/import/type/static/static.mjs +27 -0
- package/build/import/type/strict/index.mjs +27 -0
- package/build/import/type/strict/strict.d.mts +1 -0
- package/build/import/type/strict/strict.mjs +28 -0
- package/build/import/type/string/index.mjs +27 -0
- package/build/import/type/string/string.d.mts +7 -0
- package/build/import/type/string/string.mjs +28 -0
- package/build/import/type/symbol/index.mjs +27 -0
- package/build/import/type/symbol/symbol.d.mts +1 -0
- package/build/import/type/symbol/symbol.mjs +28 -0
- package/build/import/type/symbols/index.mjs +27 -0
- package/build/import/type/symbols/symbols.d.mts +5 -0
- package/build/import/type/symbols/symbols.mjs +32 -0
- package/build/import/type/template-literal/finite.mjs +37 -0
- package/build/import/type/template-literal/generate.mjs +37 -0
- package/build/import/type/template-literal/index.mjs +27 -0
- package/build/import/type/template-literal/parser.d.mts +2 -0
- package/build/import/type/template-literal/parser.mjs +44 -0
- package/build/import/type/template-literal/pattern.mjs +38 -0
- package/build/import/type/template-literal/syntax.d.mts +5 -4
- package/build/import/type/template-literal/syntax.mjs +35 -0
- package/build/import/type/template-literal/template-literal.d.mts +6 -4
- package/build/import/type/template-literal/template-literal.mjs +29 -0
- package/build/import/type/template-literal/union.d.mts +1 -0
- package/build/import/type/template-literal/union.mjs +31 -0
- package/build/import/type/transform/index.mjs +27 -0
- package/build/import/type/transform/transform.d.mts +4 -2
- package/build/import/type/transform/transform.mjs +37 -1
- package/build/import/type/tuple/index.mjs +27 -0
- package/build/import/type/tuple/tuple.d.mts +4 -3
- package/build/import/type/tuple/tuple.mjs +30 -0
- package/build/import/type/type/index.d.mts +1 -0
- package/build/import/type/type/index.mjs +34 -0
- package/build/import/type/type/javascript.d.mts +19 -0
- package/build/import/type/type/javascript.mjs +45 -0
- package/build/import/type/type/json.d.mts +66 -5
- package/build/import/type/type/json.mjs +82 -1
- package/build/import/type/type/type.mjs +30 -0
- package/build/import/type/uint8array/index.mjs +27 -0
- package/build/import/type/uint8array/uint8array.d.mts +1 -0
- package/build/import/type/uint8array/uint8array.mjs +28 -0
- package/build/import/type/undefined/index.mjs +27 -0
- package/build/import/type/undefined/undefined.d.mts +1 -0
- package/build/import/type/undefined/undefined.mjs +28 -0
- package/build/import/type/union/index.d.mts +2 -0
- package/build/import/type/union/index.mjs +29 -0
- package/build/import/type/union/union-create.d.mts +3 -0
- package/build/import/type/union/union-create.mjs +32 -0
- package/build/import/type/union/union-evaluated.d.mts +17 -0
- package/build/import/type/union/union-evaluated.mjs +68 -0
- package/build/import/type/union/union-type.d.mts +12 -0
- package/build/import/type/union/union-type.mjs +28 -0
- package/build/import/type/union/union.d.mts +4 -13
- package/build/import/type/union/union.mjs +32 -10
- package/build/import/type/unknown/index.mjs +27 -0
- package/build/import/type/unknown/unknown.d.mts +1 -0
- package/build/import/type/unknown/unknown.mjs +28 -0
- package/build/import/type/unsafe/index.mjs +27 -0
- package/build/import/type/unsafe/unsafe.d.mts +1 -0
- package/build/import/type/unsafe/unsafe.mjs +28 -0
- package/build/import/type/void/index.mjs +27 -0
- package/build/import/type/void/void.d.mts +1 -0
- package/build/import/type/void/void.mjs +28 -0
- package/build/import/value/cast/cast.d.mts +2 -0
- package/build/import/value/cast/cast.mjs +55 -0
- package/build/import/value/cast/index.mjs +27 -0
- package/build/import/value/check/check.d.mts +2 -0
- package/build/import/value/check/check.mjs +46 -1
- package/build/import/value/check/index.mjs +27 -0
- package/build/import/value/clean/clean.d.mts +2 -0
- package/build/import/value/clean/clean.mjs +39 -1
- package/build/import/value/clean/index.mjs +27 -0
- package/build/import/value/clone/clone.d.mts +1 -0
- package/build/import/value/clone/clone.mjs +34 -0
- package/build/import/value/clone/index.mjs +27 -0
- package/build/import/value/convert/convert.d.mts +2 -0
- package/build/import/value/convert/convert.mjs +57 -1
- package/build/import/value/convert/index.mjs +27 -0
- package/build/import/value/create/create.d.mts +2 -0
- package/build/import/value/create/create.mjs +44 -0
- package/build/import/value/create/index.mjs +27 -0
- package/build/import/value/default/default.d.mts +2 -0
- package/build/import/value/default/default.mjs +46 -0
- package/build/import/value/default/index.mjs +27 -0
- package/build/import/value/delta/delta.d.mts +1 -1
- package/build/import/value/delta/delta.mjs +42 -0
- package/build/import/value/delta/index.mjs +27 -0
- package/build/import/value/deref/deref.d.mts +1 -0
- package/build/import/value/deref/deref.mjs +28 -0
- package/build/import/value/deref/index.mjs +27 -0
- package/build/import/value/equal/equal.d.mts +1 -0
- package/build/import/value/equal/equal.mjs +34 -0
- package/build/import/value/equal/index.mjs +27 -0
- package/build/import/value/guard/guard.d.mts +20 -0
- package/build/import/value/guard/guard.mjs +57 -0
- package/build/import/value/guard/index.mjs +27 -0
- package/build/import/value/hash/hash.d.mts +1 -0
- package/build/import/value/hash/hash.mjs +46 -0
- package/build/import/value/hash/index.mjs +27 -0
- package/build/import/value/index.mjs +39 -0
- package/build/import/value/mutate/index.mjs +27 -0
- package/build/import/value/mutate/mutate.d.mts +1 -0
- package/build/import/value/mutate/mutate.mjs +38 -0
- package/build/import/value/pointer/index.mjs +27 -0
- package/build/import/value/pointer/pointer.d.mts +5 -0
- package/build/import/value/pointer/pointer.mjs +45 -0
- package/build/import/value/transform/decode.d.mts +5 -0
- package/build/import/value/transform/decode.mjs +50 -0
- package/build/import/value/transform/encode.d.mts +6 -0
- package/build/import/value/transform/encode.mjs +52 -0
- package/build/import/value/transform/has.d.mts +1 -0
- package/build/import/value/transform/has.mjs +43 -0
- package/build/import/value/transform/index.mjs +27 -0
- package/build/import/value/value/index.mjs +27 -0
- package/build/import/value/value/value.d.mts +24 -0
- package/build/import/value/value/value.mjs +42 -0
- package/build/require/compiler/compiler.d.ts +9 -0
- package/build/require/compiler/compiler.js +87 -6
- package/build/require/compiler/index.js +27 -0
- package/build/require/errors/errors.d.ts +3 -0
- package/build/require/errors/errors.js +55 -3
- package/build/require/errors/function.d.ts +3 -0
- package/build/require/errors/function.js +31 -0
- package/build/require/errors/index.js +27 -0
- package/build/require/index.d.ts +2 -2
- package/build/require/index.js +41 -2
- package/build/require/system/index.js +27 -0
- package/build/require/system/policy.d.ts +10 -0
- package/build/require/system/policy.js +40 -0
- package/build/require/system/system.d.ts +3 -0
- package/build/require/system/system.js +36 -0
- package/build/require/type/any/any.d.ts +1 -0
- package/build/require/type/any/any.js +28 -0
- package/build/require/type/any/index.js +27 -0
- package/build/require/type/array/array.d.ts +8 -1
- package/build/require/type/array/array.js +28 -0
- package/build/require/type/array/index.js +27 -0
- package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
- package/build/require/type/async-iterator/async-iterator.js +28 -0
- package/build/require/type/async-iterator/index.js +27 -0
- package/build/require/type/awaited/awaited.d.ts +1 -0
- package/build/require/type/awaited/awaited.js +37 -0
- package/build/require/type/awaited/index.js +27 -0
- package/build/require/type/bigint/bigint.d.ts +1 -0
- package/build/require/type/bigint/bigint.js +28 -0
- package/build/require/type/bigint/index.js +27 -0
- package/build/require/type/boolean/boolean.d.ts +1 -0
- package/build/require/type/boolean/boolean.js +28 -0
- package/build/require/type/boolean/index.js +27 -0
- package/build/require/type/clone/index.js +27 -0
- package/build/require/type/clone/type.d.ts +2 -0
- package/build/require/type/clone/type.js +29 -0
- package/build/require/type/clone/value.d.ts +1 -0
- package/build/require/type/clone/value.js +29 -0
- package/build/require/type/composite/composite.d.ts +1 -0
- package/build/require/type/composite/composite.js +28 -0
- package/build/require/type/composite/index.js +27 -0
- package/build/require/type/const/const.d.ts +2 -1
- package/build/require/type/const/const.js +32 -1
- package/build/require/type/const/index.js +27 -0
- package/build/require/type/constructor/constructor.d.ts +5 -4
- package/build/require/type/constructor/constructor.js +28 -0
- package/build/require/type/constructor/index.js +27 -0
- package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
- package/build/require/type/constructor-parameters/constructor-parameters.js +28 -0
- package/build/require/type/constructor-parameters/index.js +27 -0
- package/build/require/type/date/date.d.ts +6 -0
- package/build/require/type/date/date.js +28 -0
- package/build/require/type/date/index.js +27 -0
- package/build/require/type/deref/deref.d.ts +1 -0
- package/build/require/type/deref/deref.js +45 -0
- package/build/require/type/deref/index.js +27 -0
- package/build/require/type/discard/discard.js +27 -0
- package/build/require/type/discard/index.js +27 -0
- package/build/require/type/enum/enum.d.ts +1 -0
- package/build/require/type/enum/enum.js +28 -0
- package/build/require/type/enum/index.js +27 -0
- package/build/require/type/exclude/exclude-from-mapped-result.js +30 -0
- package/build/require/type/exclude/exclude.d.ts +5 -3
- package/build/require/type/exclude/exclude.js +30 -0
- package/build/require/type/exclude/index.js +27 -0
- package/build/require/type/extends/extends-check.js +200 -1
- package/build/require/type/extends/extends-from-mapped-key.js +31 -0
- package/build/require/type/extends/extends-from-mapped-result.js +30 -0
- package/build/require/type/extends/extends-undefined.d.ts +1 -0
- package/build/require/type/extends/extends-undefined.js +30 -0
- package/build/require/type/extends/extends.d.ts +3 -0
- package/build/require/type/extends/extends.js +39 -5
- package/build/require/type/extends/index.js +27 -0
- package/build/require/type/extract/extract-from-mapped-result.js +30 -0
- package/build/require/type/extract/extract.d.ts +5 -3
- package/build/require/type/extract/extract.js +30 -0
- package/build/require/type/extract/index.js +27 -0
- package/build/require/type/function/function.d.ts +5 -4
- package/build/require/type/function/function.js +28 -0
- package/build/require/type/function/index.js +27 -0
- package/build/require/type/guard/index.js +27 -0
- package/build/require/type/guard/type.d.ts +46 -0
- package/build/require/type/guard/type.js +111 -1
- package/build/require/type/guard/value.d.ts +14 -0
- package/build/require/type/guard/value.js +41 -0
- package/build/require/type/helpers/helpers.d.ts +1 -0
- package/build/require/type/helpers/helpers.js +28 -0
- package/build/require/type/helpers/index.js +27 -0
- package/build/require/type/index.js +27 -0
- package/build/require/type/indexed/index.js +27 -0
- package/build/require/type/indexed/indexed-from-mapped-key.js +35 -1
- package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
- package/build/require/type/indexed/indexed-property-keys.js +36 -0
- package/build/require/type/indexed/indexed-result.d.ts +6 -6
- package/build/require/type/indexed/indexed-result.js +46 -4
- package/build/require/type/indexed/indexed.d.ts +3 -0
- package/build/require/type/indexed/indexed.js +37 -4
- package/build/require/type/instance-type/index.js +27 -0
- package/build/require/type/instance-type/instance-type.d.ts +1 -0
- package/build/require/type/instance-type/instance-type.js +28 -0
- package/build/require/type/integer/index.js +27 -0
- package/build/require/type/integer/integer.d.ts +1 -0
- package/build/require/type/integer/integer.js +28 -0
- package/build/require/type/intersect/index.d.ts +2 -0
- package/build/require/type/intersect/index.js +29 -0
- package/build/require/type/intersect/intersect-create.d.ts +3 -0
- package/build/require/type/intersect/intersect-create.js +51 -0
- package/build/require/type/intersect/intersect-evaluated.d.ts +17 -0
- package/build/require/type/intersect/intersect-evaluated.js +75 -0
- package/build/require/type/intersect/intersect-type.d.ts +15 -0
- package/build/require/type/intersect/intersect-type.js +30 -0
- package/build/require/type/intersect/intersect.d.ts +5 -20
- package/build/require/type/intersect/intersect.js +37 -18
- package/build/require/type/intrinsic/capitalize.d.ts +1 -0
- package/build/require/type/intrinsic/capitalize.js +28 -0
- package/build/require/type/intrinsic/index.js +27 -0
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +31 -0
- package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
- package/build/require/type/intrinsic/intrinsic.js +43 -1
- package/build/require/type/intrinsic/lowercase.d.ts +1 -0
- package/build/require/type/intrinsic/lowercase.js +28 -0
- package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
- package/build/require/type/intrinsic/uncapitalize.js +28 -0
- package/build/require/type/intrinsic/uppercase.d.ts +1 -0
- package/build/require/type/intrinsic/uppercase.js +28 -0
- package/build/require/type/iterator/index.js +27 -0
- package/build/require/type/iterator/iterator.d.ts +1 -0
- package/build/require/type/iterator/iterator.js +28 -0
- package/build/require/type/keyof/index.js +27 -0
- package/build/require/type/keyof/keyof-from-mapped-result.js +30 -0
- package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
- package/build/require/type/keyof/keyof-property-keys.js +47 -0
- package/build/require/type/keyof/keyof.d.ts +4 -2
- package/build/require/type/keyof/keyof.js +34 -1
- package/build/require/type/literal/index.js +27 -0
- package/build/require/type/literal/literal.d.ts +1 -0
- package/build/require/type/literal/literal.js +28 -0
- package/build/require/type/mapped/index.js +27 -0
- package/build/require/type/mapped/mapped-key.js +28 -0
- package/build/require/type/mapped/mapped-result.js +28 -0
- package/build/require/type/mapped/mapped.d.ts +2 -0
- package/build/require/type/mapped/mapped.js +63 -19
- package/build/require/type/modifiers/index.js +27 -0
- package/build/require/type/modifiers/modifiers.js +37 -0
- package/build/require/type/never/index.js +27 -0
- package/build/require/type/never/never.d.ts +1 -0
- package/build/require/type/never/never.js +28 -0
- package/build/require/type/not/index.js +27 -0
- package/build/require/type/not/not.d.ts +1 -0
- package/build/require/type/not/not.js +28 -0
- package/build/require/type/null/index.js +27 -0
- package/build/require/type/null/null.d.ts +1 -0
- package/build/require/type/null/null.js +28 -0
- package/build/require/type/number/index.js +27 -0
- package/build/require/type/number/number.d.ts +1 -0
- package/build/require/type/number/number.js +28 -0
- package/build/require/type/object/index.js +27 -0
- package/build/require/type/object/object.d.ts +10 -5
- package/build/require/type/object/object.js +33 -0
- package/build/require/type/omit/index.js +27 -0
- package/build/require/type/omit/omit-from-mapped-key.js +31 -0
- package/build/require/type/omit/omit.d.ts +3 -0
- package/build/require/type/omit/omit.js +39 -0
- package/build/require/type/operators/index.js +27 -0
- package/build/require/type/operators/operators.d.ts +8 -0
- package/build/require/type/operators/operators.js +42 -0
- package/build/require/type/optional/index.js +27 -0
- package/build/require/type/optional/optional.d.ts +1 -0
- package/build/require/type/optional/optional.js +28 -0
- package/build/require/type/parameters/index.js +27 -0
- package/build/require/type/parameters/parameters.d.ts +1 -0
- package/build/require/type/parameters/parameters.js +28 -0
- package/build/require/type/partial/index.js +27 -0
- package/build/require/type/partial/partial-from-mapped-result.js +30 -0
- package/build/require/type/partial/partial.d.ts +2 -0
- package/build/require/type/partial/partial.js +36 -0
- package/build/require/type/patterns/index.js +27 -0
- package/build/require/type/patterns/patterns.js +27 -0
- package/build/require/type/pick/index.js +27 -0
- package/build/require/type/pick/pick-from-mapped-key.js +31 -0
- package/build/require/type/pick/pick.d.ts +3 -0
- package/build/require/type/pick/pick.js +34 -0
- package/build/require/type/promise/index.js +27 -0
- package/build/require/type/promise/promise.d.ts +1 -0
- package/build/require/type/promise/promise.js +28 -0
- package/build/require/type/readonly/index.js +27 -0
- package/build/require/type/readonly/readonly.d.ts +1 -0
- package/build/require/type/readonly/readonly.js +28 -0
- package/build/require/type/readonly-optional/index.js +27 -0
- package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
- package/build/require/type/readonly-optional/readonly-optional.js +28 -0
- package/build/require/type/record/index.js +27 -0
- package/build/require/type/record/record.d.ts +1 -1
- package/build/require/type/record/record.js +49 -2
- package/build/require/type/recursive/index.js +27 -0
- package/build/require/type/recursive/recursive.d.ts +4 -2
- package/build/require/type/recursive/recursive.js +31 -5
- package/build/require/type/ref/index.js +27 -0
- package/build/require/type/ref/ref.d.ts +2 -0
- package/build/require/type/ref/ref.js +28 -0
- package/build/require/type/regexp/index.js +27 -0
- package/build/require/type/regexp/regexp.d.ts +2 -0
- package/build/require/type/regexp/regexp.js +28 -0
- package/build/require/type/registry/format.d.ts +6 -0
- package/build/require/type/registry/format.js +34 -0
- package/build/require/type/registry/index.js +27 -0
- package/build/require/type/registry/type.d.ts +6 -0
- package/build/require/type/registry/type.js +34 -0
- package/build/require/type/required/index.js +27 -0
- package/build/require/type/required/required-from-mapped-result.js +30 -0
- package/build/require/type/required/required.d.ts +2 -0
- package/build/require/type/required/required.js +36 -0
- package/build/require/type/rest/index.js +27 -0
- package/build/require/type/rest/rest.d.ts +1 -0
- package/build/require/type/rest/rest.js +32 -0
- package/build/require/type/return-type/index.js +27 -0
- package/build/require/type/return-type/return-type.d.ts +1 -0
- package/build/require/type/return-type/return-type.js +28 -0
- package/build/require/type/schema/anyschema.js +27 -0
- package/build/require/type/schema/index.js +27 -0
- package/build/require/type/schema/schema.d.ts +7 -0
- package/build/require/type/schema/schema.js +27 -0
- package/build/require/type/static/index.js +27 -0
- package/build/require/type/static/static.d.ts +3 -0
- package/build/require/type/static/static.js +27 -0
- package/build/require/type/strict/index.js +27 -0
- package/build/require/type/strict/strict.d.ts +1 -0
- package/build/require/type/strict/strict.js +28 -0
- package/build/require/type/string/index.js +27 -0
- package/build/require/type/string/string.d.ts +7 -0
- package/build/require/type/string/string.js +28 -0
- package/build/require/type/symbol/index.js +27 -0
- package/build/require/type/symbol/symbol.d.ts +1 -0
- package/build/require/type/symbol/symbol.js +28 -0
- package/build/require/type/symbols/index.js +27 -0
- package/build/require/type/symbols/symbols.d.ts +5 -0
- package/build/require/type/symbols/symbols.js +32 -0
- package/build/require/type/template-literal/finite.js +37 -0
- package/build/require/type/template-literal/generate.js +37 -0
- package/build/require/type/template-literal/index.js +27 -0
- package/build/require/type/template-literal/parser.d.ts +2 -0
- package/build/require/type/template-literal/parser.js +44 -0
- package/build/require/type/template-literal/pattern.js +38 -0
- package/build/require/type/template-literal/syntax.d.ts +5 -4
- package/build/require/type/template-literal/syntax.js +35 -0
- package/build/require/type/template-literal/template-literal.d.ts +6 -4
- package/build/require/type/template-literal/template-literal.js +29 -0
- package/build/require/type/template-literal/union.d.ts +1 -0
- package/build/require/type/template-literal/union.js +31 -0
- package/build/require/type/transform/index.js +27 -0
- package/build/require/type/transform/transform.d.ts +4 -2
- package/build/require/type/transform/transform.js +40 -4
- package/build/require/type/tuple/index.js +27 -0
- package/build/require/type/tuple/tuple.d.ts +4 -3
- package/build/require/type/tuple/tuple.js +30 -0
- package/build/require/type/type/index.d.ts +1 -0
- package/build/require/type/type/index.js +34 -0
- package/build/require/type/type/javascript.d.ts +19 -0
- package/build/require/type/type/javascript.js +45 -0
- package/build/require/type/type/json.d.ts +66 -5
- package/build/require/type/type/json.js +82 -1
- package/build/require/type/type/type.js +30 -0
- package/build/require/type/uint8array/index.js +27 -0
- package/build/require/type/uint8array/uint8array.d.ts +1 -0
- package/build/require/type/uint8array/uint8array.js +28 -0
- package/build/require/type/undefined/index.js +27 -0
- package/build/require/type/undefined/undefined.d.ts +1 -0
- package/build/require/type/undefined/undefined.js +28 -0
- package/build/require/type/union/index.d.ts +2 -0
- package/build/require/type/union/index.js +29 -0
- package/build/require/type/union/union-create.d.ts +3 -0
- package/build/require/type/union/union-create.js +36 -0
- package/build/require/type/union/union-evaluated.d.ts +17 -0
- package/build/require/type/union/union-evaluated.js +72 -0
- package/build/require/type/union/union-type.d.ts +12 -0
- package/build/require/type/union/union-type.js +30 -0
- package/build/require/type/union/union.d.ts +4 -13
- package/build/require/type/union/union.js +32 -11
- package/build/require/type/unknown/index.js +27 -0
- package/build/require/type/unknown/unknown.d.ts +1 -0
- package/build/require/type/unknown/unknown.js +28 -0
- package/build/require/type/unsafe/index.js +27 -0
- package/build/require/type/unsafe/unsafe.d.ts +1 -0
- package/build/require/type/unsafe/unsafe.js +28 -0
- package/build/require/type/void/index.js +27 -0
- package/build/require/type/void/void.d.ts +1 -0
- package/build/require/type/void/void.js +28 -0
- package/build/require/value/cast/cast.d.ts +2 -0
- package/build/require/value/cast/cast.js +55 -0
- package/build/require/value/cast/index.js +27 -0
- package/build/require/value/check/check.d.ts +2 -0
- package/build/require/value/check/check.js +46 -1
- package/build/require/value/check/index.js +27 -0
- package/build/require/value/clean/clean.d.ts +2 -0
- package/build/require/value/clean/clean.js +39 -1
- package/build/require/value/clean/index.js +27 -0
- package/build/require/value/clone/clone.d.ts +1 -0
- package/build/require/value/clone/clone.js +34 -0
- package/build/require/value/clone/index.js +27 -0
- package/build/require/value/convert/convert.d.ts +2 -0
- package/build/require/value/convert/convert.js +57 -1
- package/build/require/value/convert/index.js +27 -0
- package/build/require/value/create/create.d.ts +2 -0
- package/build/require/value/create/create.js +44 -0
- package/build/require/value/create/index.js +27 -0
- package/build/require/value/default/default.d.ts +2 -0
- package/build/require/value/default/default.js +46 -0
- package/build/require/value/default/index.js +27 -0
- package/build/require/value/delta/delta.d.ts +1 -1
- package/build/require/value/delta/delta.js +42 -0
- package/build/require/value/delta/index.js +27 -0
- package/build/require/value/deref/deref.d.ts +1 -0
- package/build/require/value/deref/deref.js +28 -0
- package/build/require/value/deref/index.js +27 -0
- package/build/require/value/equal/equal.d.ts +1 -0
- package/build/require/value/equal/equal.js +34 -0
- package/build/require/value/equal/index.js +27 -0
- package/build/require/value/guard/guard.d.ts +20 -0
- package/build/require/value/guard/guard.js +57 -0
- package/build/require/value/guard/index.js +27 -0
- package/build/require/value/hash/hash.d.ts +1 -0
- package/build/require/value/hash/hash.js +46 -0
- package/build/require/value/hash/index.js +27 -0
- package/build/require/value/index.js +39 -0
- package/build/require/value/mutate/index.js +27 -0
- package/build/require/value/mutate/mutate.d.ts +1 -0
- package/build/require/value/mutate/mutate.js +38 -0
- package/build/require/value/pointer/index.js +27 -0
- package/build/require/value/pointer/pointer.d.ts +5 -0
- package/build/require/value/pointer/pointer.js +45 -0
- package/build/require/value/transform/decode.d.ts +5 -0
- package/build/require/value/transform/decode.js +50 -0
- package/build/require/value/transform/encode.d.ts +6 -0
- package/build/require/value/transform/encode.js +52 -0
- package/build/require/value/transform/has.d.ts +1 -0
- package/build/require/value/transform/has.js +43 -0
- package/build/require/value/transform/index.js +27 -0
- package/build/require/value/value/index.js +27 -0
- package/build/require/value/value/value.d.ts +24 -0
- package/build/require/value/value/value.js +42 -0
- package/package.json +1 -1
- package/readme.md +27 -20
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/type
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
2
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
30
|
exports.ExtendsCheck = exports.ExtendsResult = exports.ExtendsResolverError = void 0;
|
|
4
31
|
const index_1 = require("../any/index");
|
|
@@ -19,12 +46,24 @@ var ExtendsResult;
|
|
|
19
46
|
ExtendsResult[ExtendsResult["True"] = 1] = "True";
|
|
20
47
|
ExtendsResult[ExtendsResult["False"] = 2] = "False";
|
|
21
48
|
})(ExtendsResult || (exports.ExtendsResult = ExtendsResult = {}));
|
|
49
|
+
// ------------------------------------------------------------------
|
|
50
|
+
// IntoBooleanResult
|
|
51
|
+
// ------------------------------------------------------------------
|
|
52
|
+
// prettier-ignore
|
|
22
53
|
function IntoBooleanResult(result) {
|
|
23
54
|
return result === ExtendsResult.False ? result : ExtendsResult.True;
|
|
24
55
|
}
|
|
56
|
+
// ------------------------------------------------------------------
|
|
57
|
+
// Throw
|
|
58
|
+
// ------------------------------------------------------------------
|
|
59
|
+
// prettier-ignore
|
|
25
60
|
function Throw(message) {
|
|
26
61
|
throw new ExtendsResolverError(message);
|
|
27
62
|
}
|
|
63
|
+
// ------------------------------------------------------------------
|
|
64
|
+
// StructuralRight
|
|
65
|
+
// ------------------------------------------------------------------
|
|
66
|
+
// prettier-ignore
|
|
28
67
|
function IsStructuralRight(right) {
|
|
29
68
|
return (index_9.TypeGuard.TNever(right) ||
|
|
30
69
|
index_9.TypeGuard.TIntersect(right) ||
|
|
@@ -32,6 +71,7 @@ function IsStructuralRight(right) {
|
|
|
32
71
|
index_9.TypeGuard.TUnknown(right) ||
|
|
33
72
|
index_9.TypeGuard.TAny(right));
|
|
34
73
|
}
|
|
74
|
+
// prettier-ignore
|
|
35
75
|
function StructuralRight(left, right) {
|
|
36
76
|
return (index_9.TypeGuard.TNever(right) ? TNeverRight(left, right) :
|
|
37
77
|
index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
|
|
@@ -40,9 +80,14 @@ function StructuralRight(left, right) {
|
|
|
40
80
|
index_9.TypeGuard.TAny(right) ? TAnyRight(left, right) :
|
|
41
81
|
Throw('StructuralRight'));
|
|
42
82
|
}
|
|
83
|
+
// ------------------------------------------------------------------
|
|
84
|
+
// Any
|
|
85
|
+
// ------------------------------------------------------------------
|
|
86
|
+
// prettier-ignore
|
|
43
87
|
function TAnyRight(left, right) {
|
|
44
88
|
return ExtendsResult.True;
|
|
45
89
|
}
|
|
90
|
+
// prettier-ignore
|
|
46
91
|
function TAny(left, right) {
|
|
47
92
|
return (index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
|
|
48
93
|
(index_9.TypeGuard.TUnion(right) && right.anyOf.some((schema) => index_9.TypeGuard.TAny(schema) || index_9.TypeGuard.TUnknown(schema))) ? ExtendsResult.True :
|
|
@@ -51,23 +96,36 @@ function TAny(left, right) {
|
|
|
51
96
|
index_9.TypeGuard.TAny(right) ? ExtendsResult.True :
|
|
52
97
|
ExtendsResult.Union);
|
|
53
98
|
}
|
|
99
|
+
// ------------------------------------------------------------------
|
|
100
|
+
// Array
|
|
101
|
+
// ------------------------------------------------------------------
|
|
102
|
+
// prettier-ignore
|
|
54
103
|
function TArrayRight(left, right) {
|
|
55
104
|
return (index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
|
|
56
105
|
index_9.TypeGuard.TAny(left) ? ExtendsResult.Union :
|
|
57
106
|
index_9.TypeGuard.TNever(left) ? ExtendsResult.True :
|
|
58
107
|
ExtendsResult.False);
|
|
59
108
|
}
|
|
109
|
+
// prettier-ignore
|
|
60
110
|
function TArray(left, right) {
|
|
61
111
|
return (index_9.TypeGuard.TObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :
|
|
62
112
|
IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
63
113
|
!index_9.TypeGuard.TArray(right) ? ExtendsResult.False :
|
|
64
114
|
IntoBooleanResult(Visit(left.items, right.items)));
|
|
65
115
|
}
|
|
116
|
+
// ------------------------------------------------------------------
|
|
117
|
+
// AsyncIterator
|
|
118
|
+
// ------------------------------------------------------------------
|
|
119
|
+
// prettier-ignore
|
|
66
120
|
function TAsyncIterator(left, right) {
|
|
67
121
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
68
122
|
!index_9.TypeGuard.TAsyncIterator(right) ? ExtendsResult.False :
|
|
69
123
|
IntoBooleanResult(Visit(left.items, right.items)));
|
|
70
124
|
}
|
|
125
|
+
// ------------------------------------------------------------------
|
|
126
|
+
// BigInt
|
|
127
|
+
// ------------------------------------------------------------------
|
|
128
|
+
// prettier-ignore
|
|
71
129
|
function TBigInt(left, right) {
|
|
72
130
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
73
131
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -75,11 +133,16 @@ function TBigInt(left, right) {
|
|
|
75
133
|
index_9.TypeGuard.TBigInt(right) ? ExtendsResult.True :
|
|
76
134
|
ExtendsResult.False);
|
|
77
135
|
}
|
|
136
|
+
// ------------------------------------------------------------------
|
|
137
|
+
// Boolean
|
|
138
|
+
// ------------------------------------------------------------------
|
|
139
|
+
// prettier-ignore
|
|
78
140
|
function TBooleanRight(left, right) {
|
|
79
141
|
return (index_9.TypeGuard.TLiteralBoolean(left) ? ExtendsResult.True :
|
|
80
142
|
index_9.TypeGuard.TBoolean(left) ? ExtendsResult.True :
|
|
81
143
|
ExtendsResult.False);
|
|
82
144
|
}
|
|
145
|
+
// prettier-ignore
|
|
83
146
|
function TBoolean(left, right) {
|
|
84
147
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
85
148
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -87,6 +150,10 @@ function TBoolean(left, right) {
|
|
|
87
150
|
index_9.TypeGuard.TBoolean(right) ? ExtendsResult.True :
|
|
88
151
|
ExtendsResult.False);
|
|
89
152
|
}
|
|
153
|
+
// ------------------------------------------------------------------
|
|
154
|
+
// Constructor
|
|
155
|
+
// ------------------------------------------------------------------
|
|
156
|
+
// prettier-ignore
|
|
90
157
|
function TConstructor(left, right) {
|
|
91
158
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
92
159
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -95,6 +162,10 @@ function TConstructor(left, right) {
|
|
|
95
162
|
(!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :
|
|
96
163
|
IntoBooleanResult(Visit(left.returns, right.returns)));
|
|
97
164
|
}
|
|
165
|
+
// ------------------------------------------------------------------
|
|
166
|
+
// Date
|
|
167
|
+
// ------------------------------------------------------------------
|
|
168
|
+
// prettier-ignore
|
|
98
169
|
function TDate(left, right) {
|
|
99
170
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
100
171
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -102,6 +173,10 @@ function TDate(left, right) {
|
|
|
102
173
|
index_9.TypeGuard.TDate(right) ? ExtendsResult.True :
|
|
103
174
|
ExtendsResult.False);
|
|
104
175
|
}
|
|
176
|
+
// ------------------------------------------------------------------
|
|
177
|
+
// Function
|
|
178
|
+
// ------------------------------------------------------------------
|
|
179
|
+
// prettier-ignore
|
|
105
180
|
function TFunction(left, right) {
|
|
106
181
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
107
182
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -110,11 +185,16 @@ function TFunction(left, right) {
|
|
|
110
185
|
(!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :
|
|
111
186
|
IntoBooleanResult(Visit(left.returns, right.returns)));
|
|
112
187
|
}
|
|
188
|
+
// ------------------------------------------------------------------
|
|
189
|
+
// Integer
|
|
190
|
+
// ------------------------------------------------------------------
|
|
191
|
+
// prettier-ignore
|
|
113
192
|
function TIntegerRight(left, right) {
|
|
114
193
|
return (index_9.TypeGuard.TLiteral(left) && index_9.ValueGuard.IsNumber(left.const) ? ExtendsResult.True :
|
|
115
194
|
index_9.TypeGuard.TNumber(left) || index_9.TypeGuard.TInteger(left) ? ExtendsResult.True :
|
|
116
195
|
ExtendsResult.False);
|
|
117
196
|
}
|
|
197
|
+
// prettier-ignore
|
|
118
198
|
function TInteger(left, right) {
|
|
119
199
|
return (index_9.TypeGuard.TInteger(right) || index_9.TypeGuard.TNumber(right) ? ExtendsResult.True :
|
|
120
200
|
IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
@@ -122,21 +202,34 @@ function TInteger(left, right) {
|
|
|
122
202
|
index_9.TypeGuard.TRecord(right) ? TRecordRight(left, right) :
|
|
123
203
|
ExtendsResult.False);
|
|
124
204
|
}
|
|
205
|
+
// ------------------------------------------------------------------
|
|
206
|
+
// Intersect
|
|
207
|
+
// ------------------------------------------------------------------
|
|
208
|
+
// prettier-ignore
|
|
125
209
|
function TIntersectRight(left, right) {
|
|
126
210
|
return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True)
|
|
127
211
|
? ExtendsResult.True
|
|
128
212
|
: ExtendsResult.False;
|
|
129
213
|
}
|
|
214
|
+
// prettier-ignore
|
|
130
215
|
function TIntersect(left, right) {
|
|
131
216
|
return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True)
|
|
132
217
|
? ExtendsResult.True
|
|
133
218
|
: ExtendsResult.False;
|
|
134
219
|
}
|
|
220
|
+
// ------------------------------------------------------------------
|
|
221
|
+
// Iterator
|
|
222
|
+
// ------------------------------------------------------------------
|
|
223
|
+
// prettier-ignore
|
|
135
224
|
function TIterator(left, right) {
|
|
136
225
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
137
226
|
!index_9.TypeGuard.TIterator(right) ? ExtendsResult.False :
|
|
138
227
|
IntoBooleanResult(Visit(left.items, right.items)));
|
|
139
228
|
}
|
|
229
|
+
// ------------------------------------------------------------------
|
|
230
|
+
// Literal
|
|
231
|
+
// ------------------------------------------------------------------
|
|
232
|
+
// prettier-ignore
|
|
140
233
|
function TLiteral(left, right) {
|
|
141
234
|
return (index_9.TypeGuard.TLiteral(right) && right.const === left.const ? ExtendsResult.True :
|
|
142
235
|
IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
@@ -148,12 +241,21 @@ function TLiteral(left, right) {
|
|
|
148
241
|
index_9.TypeGuard.TBoolean(right) ? TBooleanRight(left, right) :
|
|
149
242
|
ExtendsResult.False);
|
|
150
243
|
}
|
|
244
|
+
// ------------------------------------------------------------------
|
|
245
|
+
// Never
|
|
246
|
+
// ------------------------------------------------------------------
|
|
247
|
+
// prettier-ignore
|
|
151
248
|
function TNeverRight(left, right) {
|
|
152
249
|
return ExtendsResult.False;
|
|
153
250
|
}
|
|
251
|
+
// prettier-ignore
|
|
154
252
|
function TNever(left, right) {
|
|
155
253
|
return ExtendsResult.True;
|
|
156
254
|
}
|
|
255
|
+
// ------------------------------------------------------------------
|
|
256
|
+
// Not
|
|
257
|
+
// ------------------------------------------------------------------
|
|
258
|
+
// prettier-ignore
|
|
157
259
|
function UnwrapTNot(schema) {
|
|
158
260
|
let [current, depth] = [schema, 0];
|
|
159
261
|
while (true) {
|
|
@@ -164,11 +266,20 @@ function UnwrapTNot(schema) {
|
|
|
164
266
|
}
|
|
165
267
|
return depth % 2 === 0 ? current : (0, index_5.Unknown)();
|
|
166
268
|
}
|
|
269
|
+
// prettier-ignore
|
|
167
270
|
function TNot(left, right) {
|
|
271
|
+
// TypeScript has no concept of negated types, and attempts to correctly check the negated
|
|
272
|
+
// type at runtime would put TypeBox at odds with TypeScripts ability to statically infer
|
|
273
|
+
// the type. Instead we unwrap to either unknown or T and continue evaluating.
|
|
274
|
+
// prettier-ignore
|
|
168
275
|
return (index_9.TypeGuard.TNot(left) ? Visit(UnwrapTNot(left), right) :
|
|
169
276
|
index_9.TypeGuard.TNot(right) ? Visit(left, UnwrapTNot(right)) :
|
|
170
277
|
Throw('Invalid fallthrough for Not'));
|
|
171
278
|
}
|
|
279
|
+
// ------------------------------------------------------------------
|
|
280
|
+
// Null
|
|
281
|
+
// ------------------------------------------------------------------
|
|
282
|
+
// prettier-ignore
|
|
172
283
|
function TNull(left, right) {
|
|
173
284
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
174
285
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -176,11 +287,16 @@ function TNull(left, right) {
|
|
|
176
287
|
index_9.TypeGuard.TNull(right) ? ExtendsResult.True :
|
|
177
288
|
ExtendsResult.False);
|
|
178
289
|
}
|
|
290
|
+
// ------------------------------------------------------------------
|
|
291
|
+
// Number
|
|
292
|
+
// ------------------------------------------------------------------
|
|
293
|
+
// prettier-ignore
|
|
179
294
|
function TNumberRight(left, right) {
|
|
180
295
|
return (index_9.TypeGuard.TLiteralNumber(left) ? ExtendsResult.True :
|
|
181
296
|
index_9.TypeGuard.TNumber(left) || index_9.TypeGuard.TInteger(left) ? ExtendsResult.True :
|
|
182
297
|
ExtendsResult.False);
|
|
183
298
|
}
|
|
299
|
+
// prettier-ignore
|
|
184
300
|
function TNumber(left, right) {
|
|
185
301
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
186
302
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -188,52 +304,72 @@ function TNumber(left, right) {
|
|
|
188
304
|
index_9.TypeGuard.TInteger(right) || index_9.TypeGuard.TNumber(right) ? ExtendsResult.True :
|
|
189
305
|
ExtendsResult.False);
|
|
190
306
|
}
|
|
307
|
+
// ------------------------------------------------------------------
|
|
308
|
+
// Object
|
|
309
|
+
// ------------------------------------------------------------------
|
|
310
|
+
// prettier-ignore
|
|
191
311
|
function IsObjectPropertyCount(schema, count) {
|
|
192
312
|
return Object.getOwnPropertyNames(schema.properties).length === count;
|
|
193
313
|
}
|
|
314
|
+
// prettier-ignore
|
|
194
315
|
function IsObjectStringLike(schema) {
|
|
195
316
|
return IsObjectArrayLike(schema);
|
|
196
317
|
}
|
|
318
|
+
// prettier-ignore
|
|
197
319
|
function IsObjectSymbolLike(schema) {
|
|
198
320
|
return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && index_9.TypeGuard.TUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((index_9.TypeGuard.TString(schema.properties.description.anyOf[0]) &&
|
|
199
321
|
index_9.TypeGuard.TUndefined(schema.properties.description.anyOf[1])) || (index_9.TypeGuard.TString(schema.properties.description.anyOf[1]) &&
|
|
200
322
|
index_9.TypeGuard.TUndefined(schema.properties.description.anyOf[0]))));
|
|
201
323
|
}
|
|
324
|
+
// prettier-ignore
|
|
202
325
|
function IsObjectNumberLike(schema) {
|
|
203
326
|
return IsObjectPropertyCount(schema, 0);
|
|
204
327
|
}
|
|
328
|
+
// prettier-ignore
|
|
205
329
|
function IsObjectBooleanLike(schema) {
|
|
206
330
|
return IsObjectPropertyCount(schema, 0);
|
|
207
331
|
}
|
|
332
|
+
// prettier-ignore
|
|
208
333
|
function IsObjectBigIntLike(schema) {
|
|
209
334
|
return IsObjectPropertyCount(schema, 0);
|
|
210
335
|
}
|
|
336
|
+
// prettier-ignore
|
|
211
337
|
function IsObjectDateLike(schema) {
|
|
212
338
|
return IsObjectPropertyCount(schema, 0);
|
|
213
339
|
}
|
|
340
|
+
// prettier-ignore
|
|
214
341
|
function IsObjectUint8ArrayLike(schema) {
|
|
215
342
|
return IsObjectArrayLike(schema);
|
|
216
343
|
}
|
|
344
|
+
// prettier-ignore
|
|
217
345
|
function IsObjectFunctionLike(schema) {
|
|
218
346
|
const length = (0, index_3.Number)();
|
|
219
347
|
return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);
|
|
220
348
|
}
|
|
349
|
+
// prettier-ignore
|
|
221
350
|
function IsObjectConstructorLike(schema) {
|
|
222
351
|
return IsObjectPropertyCount(schema, 0);
|
|
223
352
|
}
|
|
353
|
+
// prettier-ignore
|
|
224
354
|
function IsObjectArrayLike(schema) {
|
|
225
355
|
const length = (0, index_3.Number)();
|
|
226
356
|
return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);
|
|
227
357
|
}
|
|
358
|
+
// prettier-ignore
|
|
228
359
|
function IsObjectPromiseLike(schema) {
|
|
229
360
|
const then = (0, index_2.Function)([(0, index_1.Any)()], (0, index_1.Any)());
|
|
230
361
|
return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(Visit(schema.properties['then'], then)) === ExtendsResult.True);
|
|
231
362
|
}
|
|
363
|
+
// ------------------------------------------------------------------
|
|
364
|
+
// Property
|
|
365
|
+
// ------------------------------------------------------------------
|
|
366
|
+
// prettier-ignore
|
|
232
367
|
function Property(left, right) {
|
|
233
368
|
return (Visit(left, right) === ExtendsResult.False ? ExtendsResult.False :
|
|
234
369
|
index_9.TypeGuard.TOptional(left) && !index_9.TypeGuard.TOptional(right) ? ExtendsResult.False :
|
|
235
370
|
ExtendsResult.True);
|
|
236
371
|
}
|
|
372
|
+
// prettier-ignore
|
|
237
373
|
function TObjectRight(left, right) {
|
|
238
374
|
return (index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
|
|
239
375
|
index_9.TypeGuard.TAny(left) ? ExtendsResult.Union : (index_9.TypeGuard.TNever(left) ||
|
|
@@ -252,6 +388,8 @@ function TObjectRight(left, right) {
|
|
|
252
388
|
(index_9.TypeGuard.TConstructor(left) && IsObjectConstructorLike(right)) ||
|
|
253
389
|
(index_9.TypeGuard.TFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True :
|
|
254
390
|
(index_9.TypeGuard.TRecord(left) && index_9.TypeGuard.TString(RecordKey(left))) ? (() => {
|
|
391
|
+
// When expressing a Record with literal key values, the Record is converted into a Object with
|
|
392
|
+
// the Hint assigned as `Record`. This is used to invert the extends logic.
|
|
255
393
|
return right[index_8.Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False;
|
|
256
394
|
})() :
|
|
257
395
|
(index_9.TypeGuard.TRecord(left) && index_9.TypeGuard.TNumber(RecordKey(left))) ? (() => {
|
|
@@ -259,6 +397,7 @@ function TObjectRight(left, right) {
|
|
|
259
397
|
})() :
|
|
260
398
|
ExtendsResult.False);
|
|
261
399
|
}
|
|
400
|
+
// prettier-ignore
|
|
262
401
|
function TObject(left, right) {
|
|
263
402
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
264
403
|
index_9.TypeGuard.TRecord(right) ? TRecordRight(left, right) :
|
|
@@ -278,22 +417,32 @@ function TObject(left, right) {
|
|
|
278
417
|
return ExtendsResult.True;
|
|
279
418
|
})());
|
|
280
419
|
}
|
|
420
|
+
// ------------------------------------------------------------------
|
|
421
|
+
// Promise
|
|
422
|
+
// ------------------------------------------------------------------
|
|
423
|
+
// prettier-ignore
|
|
281
424
|
function TPromise(left, right) {
|
|
282
425
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
283
426
|
index_9.TypeGuard.TObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True :
|
|
284
427
|
!index_9.TypeGuard.TPromise(right) ? ExtendsResult.False :
|
|
285
428
|
IntoBooleanResult(Visit(left.item, right.item)));
|
|
286
429
|
}
|
|
430
|
+
// ------------------------------------------------------------------
|
|
431
|
+
// Record
|
|
432
|
+
// ------------------------------------------------------------------
|
|
433
|
+
// prettier-ignore
|
|
287
434
|
function RecordKey(schema) {
|
|
288
435
|
return (index_7.PatternNumberExact in schema.patternProperties ? (0, index_3.Number)() :
|
|
289
436
|
index_7.PatternStringExact in schema.patternProperties ? (0, index_4.String)() :
|
|
290
437
|
Throw('Unknown record key pattern'));
|
|
291
438
|
}
|
|
439
|
+
// prettier-ignore
|
|
292
440
|
function RecordValue(schema) {
|
|
293
441
|
return (index_7.PatternNumberExact in schema.patternProperties ? schema.patternProperties[index_7.PatternNumberExact] :
|
|
294
442
|
index_7.PatternStringExact in schema.patternProperties ? schema.patternProperties[index_7.PatternStringExact] :
|
|
295
443
|
Throw('Unable to get record value schema'));
|
|
296
444
|
}
|
|
445
|
+
// prettier-ignore
|
|
297
446
|
function TRecordRight(left, right) {
|
|
298
447
|
const [Key, Value] = [RecordKey(right), RecordValue(right)];
|
|
299
448
|
return ((index_9.TypeGuard.TLiteralString(left) && index_9.TypeGuard.TNumber(Key) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True :
|
|
@@ -310,17 +459,23 @@ function TRecordRight(left, right) {
|
|
|
310
459
|
})() :
|
|
311
460
|
ExtendsResult.False);
|
|
312
461
|
}
|
|
462
|
+
// prettier-ignore
|
|
313
463
|
function TRecord(left, right) {
|
|
314
464
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
315
465
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
316
466
|
!index_9.TypeGuard.TRecord(right) ? ExtendsResult.False :
|
|
317
467
|
Visit(RecordValue(left), RecordValue(right)));
|
|
318
468
|
}
|
|
469
|
+
// ------------------------------------------------------------------
|
|
470
|
+
// String
|
|
471
|
+
// ------------------------------------------------------------------
|
|
472
|
+
// prettier-ignore
|
|
319
473
|
function TStringRight(left, right) {
|
|
320
474
|
return (index_9.TypeGuard.TLiteral(left) && index_9.ValueGuard.IsString(left.const) ? ExtendsResult.True :
|
|
321
475
|
index_9.TypeGuard.TString(left) ? ExtendsResult.True :
|
|
322
476
|
ExtendsResult.False);
|
|
323
477
|
}
|
|
478
|
+
// prettier-ignore
|
|
324
479
|
function TString(left, right) {
|
|
325
480
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
326
481
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -328,6 +483,10 @@ function TString(left, right) {
|
|
|
328
483
|
index_9.TypeGuard.TString(right) ? ExtendsResult.True :
|
|
329
484
|
ExtendsResult.False);
|
|
330
485
|
}
|
|
486
|
+
// ------------------------------------------------------------------
|
|
487
|
+
// Symbol
|
|
488
|
+
// ------------------------------------------------------------------
|
|
489
|
+
// prettier-ignore
|
|
331
490
|
function TSymbol(left, right) {
|
|
332
491
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
333
492
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -335,22 +494,35 @@ function TSymbol(left, right) {
|
|
|
335
494
|
index_9.TypeGuard.TSymbol(right) ? ExtendsResult.True :
|
|
336
495
|
ExtendsResult.False);
|
|
337
496
|
}
|
|
497
|
+
// ------------------------------------------------------------------
|
|
498
|
+
// TemplateLiteral
|
|
499
|
+
// ------------------------------------------------------------------
|
|
500
|
+
// prettier-ignore
|
|
338
501
|
function TTemplateLiteral(left, right) {
|
|
502
|
+
// TemplateLiteral types are resolved to either unions for finite expressions or string
|
|
503
|
+
// for infinite expressions. Here we call to TemplateLiteralResolver to resolve for
|
|
504
|
+
// either type and continue evaluating.
|
|
339
505
|
return (index_9.TypeGuard.TTemplateLiteral(left) ? Visit((0, index_6.TemplateLiteralToUnion)(left), right) :
|
|
340
506
|
index_9.TypeGuard.TTemplateLiteral(right) ? Visit(left, (0, index_6.TemplateLiteralToUnion)(right)) :
|
|
341
507
|
Throw('Invalid fallthrough for TemplateLiteral'));
|
|
342
508
|
}
|
|
509
|
+
// ------------------------------------------------------------------
|
|
510
|
+
// Tuple
|
|
511
|
+
// ------------------------------------------------------------------
|
|
512
|
+
// prettier-ignore
|
|
343
513
|
function IsArrayOfTuple(left, right) {
|
|
344
514
|
return (index_9.TypeGuard.TArray(right) &&
|
|
345
515
|
left.items !== undefined &&
|
|
346
516
|
left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True));
|
|
347
517
|
}
|
|
518
|
+
// prettier-ignore
|
|
348
519
|
function TTupleRight(left, right) {
|
|
349
520
|
return (index_9.TypeGuard.TNever(left) ? ExtendsResult.True :
|
|
350
521
|
index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
|
|
351
522
|
index_9.TypeGuard.TAny(left) ? ExtendsResult.Union :
|
|
352
523
|
ExtendsResult.False);
|
|
353
524
|
}
|
|
525
|
+
// prettier-ignore
|
|
354
526
|
function TTuple(left, right) {
|
|
355
527
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
356
528
|
index_9.TypeGuard.TObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :
|
|
@@ -361,6 +533,10 @@ function TTuple(left, right) {
|
|
|
361
533
|
left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True :
|
|
362
534
|
ExtendsResult.False);
|
|
363
535
|
}
|
|
536
|
+
// ------------------------------------------------------------------
|
|
537
|
+
// Uint8Array
|
|
538
|
+
// ------------------------------------------------------------------
|
|
539
|
+
// prettier-ignore
|
|
364
540
|
function TUint8Array(left, right) {
|
|
365
541
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
366
542
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -368,6 +544,10 @@ function TUint8Array(left, right) {
|
|
|
368
544
|
index_9.TypeGuard.TUint8Array(right) ? ExtendsResult.True :
|
|
369
545
|
ExtendsResult.False);
|
|
370
546
|
}
|
|
547
|
+
// ------------------------------------------------------------------
|
|
548
|
+
// Undefined
|
|
549
|
+
// ------------------------------------------------------------------
|
|
550
|
+
// prettier-ignore
|
|
371
551
|
function TUndefined(left, right) {
|
|
372
552
|
return (IsStructuralRight(right) ? StructuralRight(left, right) :
|
|
373
553
|
index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
|
|
@@ -376,19 +556,29 @@ function TUndefined(left, right) {
|
|
|
376
556
|
index_9.TypeGuard.TUndefined(right) ? ExtendsResult.True :
|
|
377
557
|
ExtendsResult.False);
|
|
378
558
|
}
|
|
559
|
+
// ------------------------------------------------------------------
|
|
560
|
+
// Union
|
|
561
|
+
// ------------------------------------------------------------------
|
|
562
|
+
// prettier-ignore
|
|
379
563
|
function TUnionRight(left, right) {
|
|
380
564
|
return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True)
|
|
381
565
|
? ExtendsResult.True
|
|
382
566
|
: ExtendsResult.False;
|
|
383
567
|
}
|
|
568
|
+
// prettier-ignore
|
|
384
569
|
function TUnion(left, right) {
|
|
385
570
|
return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True)
|
|
386
571
|
? ExtendsResult.True
|
|
387
572
|
: ExtendsResult.False;
|
|
388
573
|
}
|
|
574
|
+
// ------------------------------------------------------------------
|
|
575
|
+
// Unknown
|
|
576
|
+
// ------------------------------------------------------------------
|
|
577
|
+
// prettier-ignore
|
|
389
578
|
function TUnknownRight(left, right) {
|
|
390
579
|
return ExtendsResult.True;
|
|
391
580
|
}
|
|
581
|
+
// prettier-ignore
|
|
392
582
|
function TUnknown(left, right) {
|
|
393
583
|
return (index_9.TypeGuard.TNever(right) ? TNeverRight(left, right) :
|
|
394
584
|
index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
|
|
@@ -404,11 +594,16 @@ function TUnknown(left, right) {
|
|
|
404
594
|
index_9.TypeGuard.TUnknown(right) ? ExtendsResult.True :
|
|
405
595
|
ExtendsResult.False);
|
|
406
596
|
}
|
|
597
|
+
// ------------------------------------------------------------------
|
|
598
|
+
// Void
|
|
599
|
+
// ------------------------------------------------------------------
|
|
600
|
+
// prettier-ignore
|
|
407
601
|
function VoidRight(left, right) {
|
|
408
602
|
return (index_9.TypeGuard.TUndefined(left) ? ExtendsResult.True :
|
|
409
603
|
index_9.TypeGuard.TUndefined(left) ? ExtendsResult.True :
|
|
410
604
|
ExtendsResult.False);
|
|
411
605
|
}
|
|
606
|
+
// prettier-ignore
|
|
412
607
|
function TVoid(left, right) {
|
|
413
608
|
return (index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
|
|
414
609
|
index_9.TypeGuard.TUnion(right) ? TUnionRight(left, right) :
|
|
@@ -418,9 +613,13 @@ function TVoid(left, right) {
|
|
|
418
613
|
index_9.TypeGuard.TVoid(right) ? ExtendsResult.True :
|
|
419
614
|
ExtendsResult.False);
|
|
420
615
|
}
|
|
616
|
+
// prettier-ignore
|
|
421
617
|
function Visit(left, right) {
|
|
422
|
-
return (
|
|
618
|
+
return (
|
|
619
|
+
// resolvable
|
|
620
|
+
(index_9.TypeGuard.TTemplateLiteral(left) || index_9.TypeGuard.TTemplateLiteral(right)) ? TTemplateLiteral(left, right) :
|
|
423
621
|
(index_9.TypeGuard.TNot(left) || index_9.TypeGuard.TNot(right)) ? TNot(left, right) :
|
|
622
|
+
// standard
|
|
424
623
|
index_9.TypeGuard.TAny(left) ? TAny(left, right) :
|
|
425
624
|
index_9.TypeGuard.TArray(left) ? TArray(left, right) :
|
|
426
625
|
index_9.TypeGuard.TBigInt(left) ? TBigInt(left, right) :
|
|
@@ -1,23 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/type
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
2
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
30
|
exports.ExtendsFromMappedKey = void 0;
|
|
4
31
|
const index_1 = require("../mapped/index");
|
|
5
32
|
const index_2 = require("../literal/index");
|
|
6
33
|
const extends_1 = require("./extends");
|
|
34
|
+
// prettier-ignore
|
|
7
35
|
function FromPropertyKey(K, U, L, R, options) {
|
|
8
36
|
return {
|
|
9
37
|
[K]: (0, extends_1.Extends)((0, index_2.Literal)(K), U, L, R, options)
|
|
10
38
|
};
|
|
11
39
|
}
|
|
40
|
+
// prettier-ignore
|
|
12
41
|
function FromPropertyKeys(K, U, L, R, options) {
|
|
13
42
|
const [LK, ...RK] = K;
|
|
14
43
|
return (K.length > 0
|
|
15
44
|
? { ...FromPropertyKey(LK, U, L, R, options), ...FromPropertyKeys(RK, U, L, R, options) }
|
|
16
45
|
: {});
|
|
17
46
|
}
|
|
47
|
+
// prettier-ignore
|
|
18
48
|
function FromMappedKey(K, U, L, R, options) {
|
|
19
49
|
return FromPropertyKeys(K.keys, U, L, R, options);
|
|
20
50
|
}
|
|
51
|
+
// prettier-ignore
|
|
21
52
|
function ExtendsFromMappedKey(T, U, L, R, options) {
|
|
22
53
|
const P = FromMappedKey(T, U, L, R, options);
|
|
23
54
|
return (0, index_1.MappedResult)(P);
|
|
@@ -1,16 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/type
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
2
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
30
|
exports.ExtendsFromMappedResult = void 0;
|
|
4
31
|
const index_1 = require("../mapped/index");
|
|
5
32
|
const extends_1 = require("./extends");
|
|
33
|
+
// prettier-ignore
|
|
6
34
|
function FromProperties(K, U, L, R, options) {
|
|
7
35
|
return globalThis.Object.getOwnPropertyNames(K).reduce((Acc, K2) => {
|
|
8
36
|
return { ...Acc, [K2]: (0, extends_1.Extends)(K[K2], U, L, R, options) };
|
|
9
37
|
}, {});
|
|
10
38
|
}
|
|
39
|
+
// prettier-ignore
|
|
11
40
|
function FromMappedResult(K, U, L, R, options) {
|
|
12
41
|
return FromProperties(K.properties, U, L, R, options);
|
|
13
42
|
}
|
|
43
|
+
// prettier-ignore
|
|
14
44
|
function ExtendsFromMappedResult(T, U, L, R, options) {
|
|
15
45
|
const P = FromMappedResult(T, U, L, R, options);
|
|
16
46
|
return (0, index_1.MappedResult)(P);
|