@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,3 +1,30 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
1
28
|
import * as ValueGuard from './value.mjs';
|
|
2
29
|
import { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';
|
|
3
30
|
export class TypeGuardUnknownTypeError extends Error {
|
|
@@ -80,16 +107,27 @@ function IsOptionalFormat(value) {
|
|
|
80
107
|
function IsOptionalSchema(value) {
|
|
81
108
|
return ValueGuard.IsUndefined(value) || TSchema(value);
|
|
82
109
|
}
|
|
110
|
+
// ------------------------------------------------------------------
|
|
111
|
+
// Modifiers
|
|
112
|
+
// ------------------------------------------------------------------
|
|
113
|
+
/** Returns true if this value has a Readonly symbol */
|
|
83
114
|
export function TReadonly(value) {
|
|
84
115
|
return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';
|
|
85
116
|
}
|
|
117
|
+
/** Returns true if this value has a Optional symbol */
|
|
86
118
|
export function TOptional(value) {
|
|
87
119
|
return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';
|
|
88
120
|
}
|
|
121
|
+
// ------------------------------------------------------------------
|
|
122
|
+
// Types
|
|
123
|
+
// ------------------------------------------------------------------
|
|
124
|
+
/** Returns true if the given value is TAny */
|
|
89
125
|
export function TAny(value) {
|
|
126
|
+
// prettier-ignore
|
|
90
127
|
return (TKindOf(value, 'Any') &&
|
|
91
128
|
IsOptionalString(value.$id));
|
|
92
129
|
}
|
|
130
|
+
/** Returns true if the given value is TArray */
|
|
93
131
|
export function TArray(value) {
|
|
94
132
|
return (TKindOf(value, 'Array') &&
|
|
95
133
|
value.type === 'array' &&
|
|
@@ -102,13 +140,17 @@ export function TArray(value) {
|
|
|
102
140
|
IsOptionalNumber(value.minContains) &&
|
|
103
141
|
IsOptionalNumber(value.maxContains));
|
|
104
142
|
}
|
|
143
|
+
/** Returns true if the given value is TAsyncIterator */
|
|
105
144
|
export function TAsyncIterator(value) {
|
|
145
|
+
// prettier-ignore
|
|
106
146
|
return (TKindOf(value, 'AsyncIterator') &&
|
|
107
147
|
value.type === 'AsyncIterator' &&
|
|
108
148
|
IsOptionalString(value.$id) &&
|
|
109
149
|
TSchema(value.items));
|
|
110
150
|
}
|
|
151
|
+
/** Returns true if the given value is TBigInt */
|
|
111
152
|
export function TBigInt(value) {
|
|
153
|
+
// prettier-ignore
|
|
112
154
|
return (TKindOf(value, 'BigInt') &&
|
|
113
155
|
value.type === 'bigint' &&
|
|
114
156
|
IsOptionalString(value.$id) &&
|
|
@@ -118,12 +160,16 @@ export function TBigInt(value) {
|
|
|
118
160
|
IsOptionalBigInt(value.minimum) &&
|
|
119
161
|
IsOptionalBigInt(value.multipleOf));
|
|
120
162
|
}
|
|
163
|
+
/** Returns true if the given value is TBoolean */
|
|
121
164
|
export function TBoolean(value) {
|
|
165
|
+
// prettier-ignore
|
|
122
166
|
return (TKindOf(value, 'Boolean') &&
|
|
123
167
|
value.type === 'boolean' &&
|
|
124
168
|
IsOptionalString(value.$id));
|
|
125
169
|
}
|
|
170
|
+
/** Returns true if the given value is TConstructor */
|
|
126
171
|
export function TConstructor(value) {
|
|
172
|
+
// prettier-ignore
|
|
127
173
|
return (TKindOf(value, 'Constructor') &&
|
|
128
174
|
value.type === 'Constructor' &&
|
|
129
175
|
IsOptionalString(value.$id) &&
|
|
@@ -131,6 +177,7 @@ export function TConstructor(value) {
|
|
|
131
177
|
value.parameters.every(schema => TSchema(schema)) &&
|
|
132
178
|
TSchema(value.returns));
|
|
133
179
|
}
|
|
180
|
+
/** Returns true if the given value is TDate */
|
|
134
181
|
export function TDate(value) {
|
|
135
182
|
return (TKindOf(value, 'Date') &&
|
|
136
183
|
value.type === 'Date' &&
|
|
@@ -141,7 +188,9 @@ export function TDate(value) {
|
|
|
141
188
|
IsOptionalNumber(value.minimumTimestamp) &&
|
|
142
189
|
IsOptionalNumber(value.multipleOfTimestamp));
|
|
143
190
|
}
|
|
191
|
+
/** Returns true if the given value is TFunction */
|
|
144
192
|
export function TFunction(value) {
|
|
193
|
+
// prettier-ignore
|
|
145
194
|
return (TKindOf(value, 'Function') &&
|
|
146
195
|
value.type === 'Function' &&
|
|
147
196
|
IsOptionalString(value.$id) &&
|
|
@@ -149,6 +198,7 @@ export function TFunction(value) {
|
|
|
149
198
|
value.parameters.every(schema => TSchema(schema)) &&
|
|
150
199
|
TSchema(value.returns));
|
|
151
200
|
}
|
|
201
|
+
/** Returns true if the given value is TInteger */
|
|
152
202
|
export function TInteger(value) {
|
|
153
203
|
return (TKindOf(value, 'Integer') &&
|
|
154
204
|
value.type === 'integer' &&
|
|
@@ -159,11 +209,15 @@ export function TInteger(value) {
|
|
|
159
209
|
IsOptionalNumber(value.minimum) &&
|
|
160
210
|
IsOptionalNumber(value.multipleOf));
|
|
161
211
|
}
|
|
212
|
+
/** Returns true if the given schema is TProperties */
|
|
162
213
|
export function TProperties(value) {
|
|
214
|
+
// prettier-ignore
|
|
163
215
|
return (ValueGuard.IsObject(value) &&
|
|
164
216
|
Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
|
|
165
217
|
}
|
|
218
|
+
/** Returns true if the given value is TIntersect */
|
|
166
219
|
export function TIntersect(value) {
|
|
220
|
+
// prettier-ignore
|
|
167
221
|
return (TKindOf(value, 'Intersect') &&
|
|
168
222
|
(ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&
|
|
169
223
|
ValueGuard.IsArray(value.allOf) &&
|
|
@@ -172,54 +226,74 @@ export function TIntersect(value) {
|
|
|
172
226
|
(IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&
|
|
173
227
|
IsOptionalString(value.$id));
|
|
174
228
|
}
|
|
229
|
+
/** Returns true if the given value is TIterator */
|
|
175
230
|
export function TIterator(value) {
|
|
231
|
+
// prettier-ignore
|
|
176
232
|
return (TKindOf(value, 'Iterator') &&
|
|
177
233
|
value.type === 'Iterator' &&
|
|
178
234
|
IsOptionalString(value.$id) &&
|
|
179
235
|
TSchema(value.items));
|
|
180
236
|
}
|
|
237
|
+
/** Returns true if the given value is a TKind with the given name. */
|
|
181
238
|
export function TKindOf(value, kind) {
|
|
182
239
|
return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;
|
|
183
240
|
}
|
|
241
|
+
/** Returns true if the given value is TLiteral<string> */
|
|
184
242
|
export function TLiteralString(value) {
|
|
185
243
|
return TLiteral(value) && ValueGuard.IsString(value.const);
|
|
186
244
|
}
|
|
245
|
+
/** Returns true if the given value is TLiteral<number> */
|
|
187
246
|
export function TLiteralNumber(value) {
|
|
188
247
|
return TLiteral(value) && ValueGuard.IsNumber(value.const);
|
|
189
248
|
}
|
|
249
|
+
/** Returns true if the given value is TLiteral<boolean> */
|
|
190
250
|
export function TLiteralBoolean(value) {
|
|
191
251
|
return TLiteral(value) && ValueGuard.IsBoolean(value.const);
|
|
192
252
|
}
|
|
253
|
+
/** Returns true if the given value is TLiteral */
|
|
193
254
|
export function TLiteral(value) {
|
|
255
|
+
// prettier-ignore
|
|
194
256
|
return (TKindOf(value, 'Literal') &&
|
|
195
257
|
IsOptionalString(value.$id) && TLiteralValue(value.const));
|
|
196
258
|
}
|
|
259
|
+
/** Returns true if the given value is a TLiteralValue */
|
|
197
260
|
export function TLiteralValue(value) {
|
|
198
261
|
return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);
|
|
199
262
|
}
|
|
263
|
+
/** Returns true if the given value is a TMappedKey */
|
|
200
264
|
export function TMappedKey(value) {
|
|
265
|
+
// prettier-ignore
|
|
201
266
|
return (TKindOf(value, 'MappedKey') &&
|
|
202
267
|
ValueGuard.IsArray(value.keys) &&
|
|
203
268
|
value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
|
|
204
269
|
}
|
|
270
|
+
/** Returns true if the given value is TMappedResult */
|
|
205
271
|
export function TMappedResult(value) {
|
|
272
|
+
// prettier-ignore
|
|
206
273
|
return (TKindOf(value, 'MappedResult') &&
|
|
207
274
|
TProperties(value.properties));
|
|
208
275
|
}
|
|
276
|
+
/** Returns true if the given value is TNever */
|
|
209
277
|
export function TNever(value) {
|
|
278
|
+
// prettier-ignore
|
|
210
279
|
return (TKindOf(value, 'Never') &&
|
|
211
280
|
ValueGuard.IsObject(value.not) &&
|
|
212
281
|
Object.getOwnPropertyNames(value.not).length === 0);
|
|
213
282
|
}
|
|
283
|
+
/** Returns true if the given value is TNot */
|
|
214
284
|
export function TNot(value) {
|
|
285
|
+
// prettier-ignore
|
|
215
286
|
return (TKindOf(value, 'Not') &&
|
|
216
287
|
TSchema(value.not));
|
|
217
288
|
}
|
|
289
|
+
/** Returns true if the given value is TNull */
|
|
218
290
|
export function TNull(value) {
|
|
291
|
+
// prettier-ignore
|
|
219
292
|
return (TKindOf(value, 'Null') &&
|
|
220
293
|
value.type === 'null' &&
|
|
221
294
|
IsOptionalString(value.$id));
|
|
222
295
|
}
|
|
296
|
+
/** Returns true if the given value is TNumber */
|
|
223
297
|
export function TNumber(value) {
|
|
224
298
|
return (TKindOf(value, 'Number') &&
|
|
225
299
|
value.type === 'number' &&
|
|
@@ -230,7 +304,9 @@ export function TNumber(value) {
|
|
|
230
304
|
IsOptionalNumber(value.minimum) &&
|
|
231
305
|
IsOptionalNumber(value.multipleOf));
|
|
232
306
|
}
|
|
307
|
+
/** Returns true if the given value is TObject */
|
|
233
308
|
export function TObject(value) {
|
|
309
|
+
// prettier-ignore
|
|
234
310
|
return (TKindOf(value, 'Object') &&
|
|
235
311
|
value.type === 'object' &&
|
|
236
312
|
IsOptionalString(value.$id) &&
|
|
@@ -239,13 +315,17 @@ export function TObject(value) {
|
|
|
239
315
|
IsOptionalNumber(value.minProperties) &&
|
|
240
316
|
IsOptionalNumber(value.maxProperties));
|
|
241
317
|
}
|
|
318
|
+
/** Returns true if the given value is TPromise */
|
|
242
319
|
export function TPromise(value) {
|
|
320
|
+
// prettier-ignore
|
|
243
321
|
return (TKindOf(value, 'Promise') &&
|
|
244
322
|
value.type === 'Promise' &&
|
|
245
323
|
IsOptionalString(value.$id) &&
|
|
246
324
|
TSchema(value.item));
|
|
247
325
|
}
|
|
326
|
+
/** Returns true if the given value is TRecord */
|
|
248
327
|
export function TRecord(value) {
|
|
328
|
+
// prettier-ignore
|
|
249
329
|
return (TKindOf(value, 'Record') &&
|
|
250
330
|
value.type === 'object' &&
|
|
251
331
|
IsOptionalString(value.$id) &&
|
|
@@ -259,15 +339,20 @@ export function TRecord(value) {
|
|
|
259
339
|
TSchema(schema.patternProperties[keys[0]]));
|
|
260
340
|
})(value));
|
|
261
341
|
}
|
|
342
|
+
/** Returns true if this value is TRecursive */
|
|
262
343
|
export function TRecursive(value) {
|
|
263
344
|
return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';
|
|
264
345
|
}
|
|
346
|
+
/** Returns true if the given value is TRef */
|
|
265
347
|
export function TRef(value) {
|
|
348
|
+
// prettier-ignore
|
|
266
349
|
return (TKindOf(value, 'Ref') &&
|
|
267
350
|
IsOptionalString(value.$id) &&
|
|
268
351
|
ValueGuard.IsString(value.$ref));
|
|
269
352
|
}
|
|
353
|
+
/** Returns true if the given value is TString */
|
|
270
354
|
export function TString(value) {
|
|
355
|
+
// prettier-ignore
|
|
271
356
|
return (TKindOf(value, 'String') &&
|
|
272
357
|
value.type === 'string' &&
|
|
273
358
|
IsOptionalString(value.$id) &&
|
|
@@ -276,76 +361,101 @@ export function TString(value) {
|
|
|
276
361
|
IsOptionalPattern(value.pattern) &&
|
|
277
362
|
IsOptionalFormat(value.format));
|
|
278
363
|
}
|
|
364
|
+
/** Returns true if the given value is TSymbol */
|
|
279
365
|
export function TSymbol(value) {
|
|
366
|
+
// prettier-ignore
|
|
280
367
|
return (TKindOf(value, 'Symbol') &&
|
|
281
368
|
value.type === 'symbol' &&
|
|
282
369
|
IsOptionalString(value.$id));
|
|
283
370
|
}
|
|
371
|
+
/** Returns true if the given value is TTemplateLiteral */
|
|
284
372
|
export function TTemplateLiteral(value) {
|
|
373
|
+
// prettier-ignore
|
|
285
374
|
return (TKindOf(value, 'TemplateLiteral') &&
|
|
286
375
|
value.type === 'string' &&
|
|
287
376
|
ValueGuard.IsString(value.pattern) &&
|
|
288
377
|
value.pattern[0] === '^' &&
|
|
289
378
|
value.pattern[value.pattern.length - 1] === '$');
|
|
290
379
|
}
|
|
380
|
+
/** Returns true if the given value is TThis */
|
|
291
381
|
export function TThis(value) {
|
|
382
|
+
// prettier-ignore
|
|
292
383
|
return (TKindOf(value, 'This') &&
|
|
293
384
|
IsOptionalString(value.$id) &&
|
|
294
385
|
ValueGuard.IsString(value.$ref));
|
|
295
386
|
}
|
|
387
|
+
/** Returns true of this value is TTransform */
|
|
296
388
|
export function TTransform(value) {
|
|
297
389
|
return ValueGuard.IsObject(value) && TransformKind in value;
|
|
298
390
|
}
|
|
391
|
+
/** Returns true if the given value is TTuple */
|
|
299
392
|
export function TTuple(value) {
|
|
393
|
+
// prettier-ignore
|
|
300
394
|
return (TKindOf(value, 'Tuple') &&
|
|
301
395
|
value.type === 'array' &&
|
|
302
396
|
IsOptionalString(value.$id) &&
|
|
303
397
|
ValueGuard.IsNumber(value.minItems) &&
|
|
304
398
|
ValueGuard.IsNumber(value.maxItems) &&
|
|
305
399
|
value.minItems === value.maxItems &&
|
|
306
|
-
((
|
|
400
|
+
(( // empty
|
|
401
|
+
ValueGuard.IsUndefined(value.items) &&
|
|
307
402
|
ValueGuard.IsUndefined(value.additionalItems) &&
|
|
308
403
|
value.minItems === 0) || (ValueGuard.IsArray(value.items) &&
|
|
309
404
|
value.items.every(schema => TSchema(schema)))));
|
|
310
405
|
}
|
|
406
|
+
/** Returns true if the given value is TUndefined */
|
|
311
407
|
export function TUndefined(value) {
|
|
408
|
+
// prettier-ignore
|
|
312
409
|
return (TKindOf(value, 'Undefined') &&
|
|
313
410
|
value.type === 'undefined' &&
|
|
314
411
|
IsOptionalString(value.$id));
|
|
315
412
|
}
|
|
413
|
+
/** Returns true if the given value is TUnion<Literal<string | number>[]> */
|
|
316
414
|
export function TUnionLiteral(value) {
|
|
317
415
|
return TUnion(value) && value.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
|
|
318
416
|
}
|
|
417
|
+
/** Returns true if the given value is TUnion */
|
|
319
418
|
export function TUnion(value) {
|
|
419
|
+
// prettier-ignore
|
|
320
420
|
return (TKindOf(value, 'Union') &&
|
|
321
421
|
IsOptionalString(value.$id) &&
|
|
322
422
|
ValueGuard.IsObject(value) &&
|
|
323
423
|
ValueGuard.IsArray(value.anyOf) &&
|
|
324
424
|
value.anyOf.every(schema => TSchema(schema)));
|
|
325
425
|
}
|
|
426
|
+
/** Returns true if the given value is TUint8Array */
|
|
326
427
|
export function TUint8Array(value) {
|
|
428
|
+
// prettier-ignore
|
|
327
429
|
return (TKindOf(value, 'Uint8Array') &&
|
|
328
430
|
value.type === 'Uint8Array' &&
|
|
329
431
|
IsOptionalString(value.$id) &&
|
|
330
432
|
IsOptionalNumber(value.minByteLength) &&
|
|
331
433
|
IsOptionalNumber(value.maxByteLength));
|
|
332
434
|
}
|
|
435
|
+
/** Returns true if the given value is TUnknown */
|
|
333
436
|
export function TUnknown(value) {
|
|
437
|
+
// prettier-ignore
|
|
334
438
|
return (TKindOf(value, 'Unknown') &&
|
|
335
439
|
IsOptionalString(value.$id));
|
|
336
440
|
}
|
|
441
|
+
/** Returns true if the given value is a raw TUnsafe */
|
|
337
442
|
export function TUnsafe(value) {
|
|
338
443
|
return TKindOf(value, 'Unsafe');
|
|
339
444
|
}
|
|
445
|
+
/** Returns true if the given value is TVoid */
|
|
340
446
|
export function TVoid(value) {
|
|
447
|
+
// prettier-ignore
|
|
341
448
|
return (TKindOf(value, 'Void') &&
|
|
342
449
|
value.type === 'void' &&
|
|
343
450
|
IsOptionalString(value.$id));
|
|
344
451
|
}
|
|
452
|
+
/** Returns true if the given value is TKind */
|
|
345
453
|
export function TKind(value) {
|
|
346
454
|
return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
|
|
347
455
|
}
|
|
456
|
+
/** Returns true if the given value is TSchema */
|
|
348
457
|
export function TSchema(value) {
|
|
458
|
+
// prettier-ignore
|
|
349
459
|
return (ValueGuard.IsObject(value)) && (TAny(value) ||
|
|
350
460
|
TArray(value) ||
|
|
351
461
|
TBoolean(value) ||
|
|
@@ -1,14 +1,28 @@
|
|
|
1
|
+
/** Returns true if this value is an async iterator */
|
|
1
2
|
export declare function IsAsyncIterator(value: unknown): value is AsyncIterableIterator<unknown>;
|
|
3
|
+
/** Returns true if this value is an array */
|
|
2
4
|
export declare function IsArray(value: unknown): value is unknown[];
|
|
5
|
+
/** Returns true if this value is bigint */
|
|
3
6
|
export declare function IsBigInt(value: unknown): value is bigint;
|
|
7
|
+
/** Returns true if this value is a boolean */
|
|
4
8
|
export declare function IsBoolean(value: unknown): value is boolean;
|
|
9
|
+
/** Returns true if this value is a Date object */
|
|
5
10
|
export declare function IsDate(value: unknown): value is Date;
|
|
11
|
+
/** Returns true if this value is a function */
|
|
6
12
|
export declare function IsFunction(value: unknown): value is Function;
|
|
13
|
+
/** Returns true if this value is an iterator */
|
|
7
14
|
export declare function IsIterator(value: unknown): value is IterableIterator<unknown>;
|
|
15
|
+
/** Returns true if this value is null */
|
|
8
16
|
export declare function IsNull(value: unknown): value is null;
|
|
17
|
+
/** Returns true if this value is number */
|
|
9
18
|
export declare function IsNumber(value: unknown): value is number;
|
|
19
|
+
/** Returns true if this value is an object */
|
|
10
20
|
export declare function IsObject(value: unknown): value is Record<PropertyKey, unknown>;
|
|
21
|
+
/** Returns true if this value is string */
|
|
11
22
|
export declare function IsString(value: unknown): value is string;
|
|
23
|
+
/** Returns true if this value is symbol */
|
|
12
24
|
export declare function IsSymbol(value: unknown): value is symbol;
|
|
25
|
+
/** Returns true if this value is a Uint8Array */
|
|
13
26
|
export declare function IsUint8Array(value: unknown): value is Uint8Array;
|
|
27
|
+
/** Returns true if this value is undefined */
|
|
14
28
|
export declare function IsUndefined(value: unknown): value is undefined;
|
|
@@ -1,42 +1,83 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
28
|
+
/** Returns true if this value is an async iterator */
|
|
1
29
|
export function IsAsyncIterator(value) {
|
|
2
30
|
return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
|
|
3
31
|
}
|
|
32
|
+
/** Returns true if this value is an array */
|
|
4
33
|
export function IsArray(value) {
|
|
5
34
|
return Array.isArray(value);
|
|
6
35
|
}
|
|
36
|
+
/** Returns true if this value is bigint */
|
|
7
37
|
export function IsBigInt(value) {
|
|
8
38
|
return typeof value === 'bigint';
|
|
9
39
|
}
|
|
40
|
+
/** Returns true if this value is a boolean */
|
|
10
41
|
export function IsBoolean(value) {
|
|
11
42
|
return typeof value === 'boolean';
|
|
12
43
|
}
|
|
44
|
+
/** Returns true if this value is a Date object */
|
|
13
45
|
export function IsDate(value) {
|
|
14
46
|
return value instanceof globalThis.Date;
|
|
15
47
|
}
|
|
48
|
+
/** Returns true if this value is a function */
|
|
16
49
|
export function IsFunction(value) {
|
|
17
50
|
return typeof value === 'function';
|
|
18
51
|
}
|
|
52
|
+
/** Returns true if this value is an iterator */
|
|
19
53
|
export function IsIterator(value) {
|
|
20
54
|
return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
|
|
21
55
|
}
|
|
56
|
+
/** Returns true if this value is null */
|
|
22
57
|
export function IsNull(value) {
|
|
23
58
|
return value === null;
|
|
24
59
|
}
|
|
60
|
+
/** Returns true if this value is number */
|
|
25
61
|
export function IsNumber(value) {
|
|
26
62
|
return typeof value === 'number';
|
|
27
63
|
}
|
|
64
|
+
/** Returns true if this value is an object */
|
|
28
65
|
export function IsObject(value) {
|
|
29
66
|
return typeof value === 'object' && value !== null;
|
|
30
67
|
}
|
|
68
|
+
/** Returns true if this value is string */
|
|
31
69
|
export function IsString(value) {
|
|
32
70
|
return typeof value === 'string';
|
|
33
71
|
}
|
|
72
|
+
/** Returns true if this value is symbol */
|
|
34
73
|
export function IsSymbol(value) {
|
|
35
74
|
return typeof value === 'symbol';
|
|
36
75
|
}
|
|
76
|
+
/** Returns true if this value is a Uint8Array */
|
|
37
77
|
export function IsUint8Array(value) {
|
|
38
78
|
return value instanceof globalThis.Uint8Array;
|
|
39
79
|
}
|
|
80
|
+
/** Returns true if this value is undefined */
|
|
40
81
|
export function IsUndefined(value) {
|
|
41
82
|
return value === undefined;
|
|
42
83
|
}
|
|
@@ -34,6 +34,7 @@ type IncrementTake<T extends keyof IncrementBase> = IncrementBase[T];
|
|
|
34
34
|
type IncrementStep<T extends string> = T extends IncrementBase['m'] ? IncrementBase['t'] : T extends `${infer L extends keyof IncrementBase}${infer R}` ? L extends IncrementBase['m'] ? `${IncrementTake<L>}${IncrementStep<R>}` : `${IncrementTake<L>}${R}` : never;
|
|
35
35
|
type IncrementReverse<T extends string> = T extends `${infer L}${infer R}` ? `${IncrementReverse<R>}${L}` : T;
|
|
36
36
|
export type Increment<T extends string> = IncrementReverse<IncrementStep<IncrementReverse<T>>>;
|
|
37
|
+
/** Increments the given string value + 1 */
|
|
37
38
|
export declare function Increment<T extends string>(T: T): Increment<T>;
|
|
38
39
|
export type AssertProperties<T> = T extends TProperties ? T : TProperties;
|
|
39
40
|
export type AssertRest<T, E extends TSchema[] = TSchema[]> = T extends E ? T : [];
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
28
|
+
/** Increments the given string value + 1 */
|
|
1
29
|
export function Increment(T) {
|
|
2
30
|
return (parseInt(T) + 1).toString();
|
|
3
31
|
}
|
|
@@ -1 +1,28 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
1
28
|
export * from './helpers.mjs';
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
1
28
|
export * from './any/index.mjs';
|
|
2
29
|
export * from './array/index.mjs';
|
|
3
30
|
export * from './async-iterator/index.mjs';
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
1
28
|
export * from './indexed-from-mapped-key.mjs';
|
|
2
29
|
export * from './indexed-property-keys.mjs';
|
|
3
30
|
export * from './indexed-result.mjs';
|
|
@@ -1,17 +1,51 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
@sinclair/typebox/type
|
|
4
|
+
|
|
5
|
+
The MIT License (MIT)
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
25
|
+
THE SOFTWARE.
|
|
26
|
+
|
|
27
|
+
---------------------------------------------------------------------------*/
|
|
1
28
|
import { IndexResult } from './indexed-result.mjs';
|
|
2
29
|
import { MappedResult } from '../mapped/index.mjs';
|
|
30
|
+
// prettier-ignore
|
|
3
31
|
function MappedIndexPropertyKey(T, K, options) {
|
|
32
|
+
// todo: propogate options into index result. This type looks like it
|
|
33
|
+
// could use a clean up, possibly inlining it into indexed.ts to
|
|
34
|
+
// bring it inline with other mapping types.
|
|
4
35
|
return { [K]: IndexResult(T, [K], options) };
|
|
5
36
|
}
|
|
37
|
+
// prettier-ignore
|
|
6
38
|
function MappedIndexPropertyKeys(T, K, options) {
|
|
7
39
|
const [L, ...R] = K;
|
|
8
40
|
return (K.length > 0
|
|
9
|
-
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) }
|
|
41
|
+
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) } // TS 5.4-dev
|
|
10
42
|
: {});
|
|
11
43
|
}
|
|
44
|
+
// prettier-ignore
|
|
12
45
|
function MappedIndexProperties(T, K, options) {
|
|
13
46
|
return MappedIndexPropertyKeys(T, K.keys, options);
|
|
14
47
|
}
|
|
48
|
+
// prettier-ignore
|
|
15
49
|
export function IndexFromMappedKey(T, K, options) {
|
|
16
50
|
const P = MappedIndexProperties(T, K, options);
|
|
17
51
|
return MappedResult(P);
|
|
@@ -12,5 +12,6 @@ type FromLiteral<T extends TLiteralValue> = (T extends PropertyKey ? [`${T}`] :
|
|
|
12
12
|
declare function FromLiteral<T extends TLiteralValue>(T: T): FromLiteral<T>;
|
|
13
13
|
export type TIndexPropertyKeys<T extends TSchema> = (T extends TTemplateLiteral ? FromTemplateLiteral<T> : T extends TUnion<infer S> ? FromUnion<S> : T extends TLiteral<infer S> ? FromLiteral<S> : T extends TNumber ? ['[number]'] : T extends TInteger ? ['[number]'] : [
|
|
14
14
|
]);
|
|
15
|
+
/** Returns a tuple of PropertyKeys derived from the given TSchema */
|
|
15
16
|
export declare function IndexPropertyKeys<T extends TSchema>(T: T): TIndexPropertyKeys<T>;
|
|
16
17
|
export {};
|