@sinclair/typebox 0.32.0-dev-16 → 0.32.0-dev-18
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 +60 -6
- package/build/import/errors/errors.d.mts +3 -0
- package/build/import/errors/errors.mjs +28 -3
- package/build/import/errors/function.d.mts +3 -0
- package/build/import/errors/function.mjs +4 -0
- package/build/import/index.mjs +9 -0
- package/build/import/system/policy.d.mts +10 -0
- package/build/import/system/policy.mjs +13 -0
- package/build/import/system/system.d.mts +3 -0
- package/build/import/system/system.mjs +9 -0
- package/build/import/type/any/any.d.mts +1 -0
- package/build/import/type/any/any.mjs +1 -0
- package/build/import/type/array/array.d.mts +7 -0
- package/build/import/type/array/array.mjs +1 -0
- package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
- package/build/import/type/async-iterator/async-iterator.mjs +1 -0
- package/build/import/type/awaited/awaited.d.mts +7 -6
- package/build/import/type/awaited/awaited.mjs +23 -13
- package/build/import/type/bigint/bigint.d.mts +1 -0
- package/build/import/type/bigint/bigint.mjs +1 -0
- package/build/import/type/boolean/boolean.d.mts +1 -0
- package/build/import/type/boolean/boolean.mjs +1 -0
- package/build/import/type/clone/type.d.mts +2 -0
- package/build/import/type/clone/type.mjs +2 -0
- package/build/import/type/clone/value.d.mts +1 -0
- package/build/import/type/clone/value.mjs +2 -0
- package/build/import/type/composite/composite.d.mts +1 -0
- package/build/import/type/composite/composite.mjs +1 -0
- package/build/import/type/const/const.d.mts +2 -1
- package/build/import/type/const/const.mjs +5 -1
- package/build/import/type/constructor/constructor.d.mts +1 -0
- package/build/import/type/constructor/constructor.mjs +1 -0
- package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
- package/build/import/type/constructor-parameters/constructor-parameters.mjs +1 -0
- package/build/import/type/date/date.d.mts +6 -0
- package/build/import/type/date/date.mjs +1 -0
- package/build/import/type/deref/deref.d.mts +1 -0
- package/build/import/type/deref/deref.mjs +18 -0
- package/build/import/type/enum/enum.d.mts +1 -0
- package/build/import/type/enum/enum.mjs +1 -0
- package/build/import/type/exclude/exclude-from-mapped-result.mjs +3 -0
- package/build/import/type/exclude/exclude.d.mts +2 -0
- package/build/import/type/exclude/exclude.mjs +3 -0
- package/build/import/type/extends/extends-check.mjs +173 -1
- package/build/import/type/extends/extends-from-mapped-key.mjs +4 -0
- package/build/import/type/extends/extends-from-mapped-result.mjs +3 -0
- package/build/import/type/extends/extends-undefined.d.mts +1 -0
- package/build/import/type/extends/extends-undefined.mjs +3 -0
- package/build/import/type/extends/extends.d.mts +3 -0
- package/build/import/type/extends/extends.mjs +7 -0
- package/build/import/type/extract/extract-from-mapped-result.mjs +3 -0
- package/build/import/type/extract/extract.d.mts +2 -0
- package/build/import/type/extract/extract.mjs +3 -0
- package/build/import/type/function/function.d.mts +1 -0
- package/build/import/type/function/function.mjs +1 -0
- package/build/import/type/guard/type.d.mts +46 -0
- package/build/import/type/guard/type.mjs +84 -1
- package/build/import/type/guard/value.d.mts +14 -0
- package/build/import/type/guard/value.mjs +14 -0
- package/build/import/type/helpers/helpers.d.mts +1 -0
- package/build/import/type/helpers/helpers.mjs +1 -0
- package/build/import/type/indexed/index.d.mts +0 -1
- package/build/import/type/indexed/index.mjs +0 -1
- package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +10 -3
- package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
- package/build/import/type/indexed/indexed-property-keys.mjs +9 -0
- package/build/import/type/indexed/indexed.d.mts +40 -4
- package/build/import/type/indexed/indexed.mjs +84 -5
- package/build/import/type/instance-type/instance-type.d.mts +1 -0
- package/build/import/type/instance-type/instance-type.mjs +1 -0
- package/build/import/type/integer/integer.d.mts +1 -0
- package/build/import/type/integer/integer.mjs +1 -0
- package/build/import/type/intersect/intersect-create.mjs +8 -0
- package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
- package/build/import/type/intersect/intersect-evaluated.mjs +9 -0
- package/build/import/type/intersect/intersect.d.mts +1 -0
- package/build/import/type/intersect/intersect.mjs +5 -0
- package/build/import/type/intrinsic/capitalize.d.mts +1 -0
- package/build/import/type/intrinsic/capitalize.mjs +1 -0
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -0
- package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
- package/build/import/type/intrinsic/intrinsic.mjs +16 -1
- package/build/import/type/intrinsic/lowercase.d.mts +1 -0
- package/build/import/type/intrinsic/lowercase.mjs +1 -0
- package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
- package/build/import/type/intrinsic/uncapitalize.mjs +1 -0
- package/build/import/type/intrinsic/uppercase.d.mts +1 -0
- package/build/import/type/intrinsic/uppercase.mjs +1 -0
- package/build/import/type/iterator/iterator.d.mts +1 -0
- package/build/import/type/iterator/iterator.mjs +1 -0
- package/build/import/type/keyof/keyof-from-mapped-result.mjs +3 -0
- package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
- package/build/import/type/keyof/keyof-property-keys.mjs +20 -0
- package/build/import/type/keyof/keyof.d.mts +2 -0
- package/build/import/type/keyof/keyof.mjs +6 -0
- package/build/import/type/literal/literal.d.mts +1 -0
- package/build/import/type/literal/literal.mjs +1 -0
- package/build/import/type/mapped/mapped-key.mjs +1 -0
- package/build/import/type/mapped/mapped-result.mjs +1 -0
- package/build/import/type/mapped/mapped.d.mts +2 -0
- package/build/import/type/mapped/mapped.mjs +19 -1
- package/build/import/type/modifiers/modifiers.mjs +10 -0
- package/build/import/type/never/never.d.mts +1 -0
- package/build/import/type/never/never.mjs +1 -0
- package/build/import/type/not/not.d.mts +1 -0
- package/build/import/type/not/not.mjs +1 -0
- package/build/import/type/null/null.d.mts +1 -0
- package/build/import/type/null/null.mjs +1 -0
- package/build/import/type/number/number.d.mts +1 -0
- package/build/import/type/number/number.mjs +1 -0
- package/build/import/type/object/object.d.mts +5 -0
- package/build/import/type/object/object.mjs +6 -0
- package/build/import/type/omit/omit-from-mapped-key.mjs +4 -0
- package/build/import/type/omit/omit.d.mts +3 -0
- package/build/import/type/omit/omit.mjs +12 -0
- package/build/import/type/operators/operators.d.mts +8 -0
- package/build/import/type/operators/operators.mjs +15 -0
- package/build/import/type/optional/optional.d.mts +1 -0
- package/build/import/type/optional/optional.mjs +1 -0
- package/build/import/type/parameters/parameters.d.mts +1 -0
- package/build/import/type/parameters/parameters.mjs +1 -0
- package/build/import/type/partial/partial-from-mapped-result.mjs +3 -0
- package/build/import/type/partial/partial.d.mts +2 -0
- package/build/import/type/partial/partial.mjs +9 -0
- package/build/import/type/pick/pick-from-mapped-key.mjs +4 -0
- package/build/import/type/pick/pick.d.mts +3 -0
- package/build/import/type/pick/pick.mjs +7 -0
- package/build/import/type/promise/promise.d.mts +1 -0
- package/build/import/type/promise/promise.mjs +1 -0
- package/build/import/type/readonly/readonly.d.mts +1 -0
- package/build/import/type/readonly/readonly.mjs +1 -0
- package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
- package/build/import/type/readonly-optional/readonly-optional.mjs +1 -0
- package/build/import/type/record/record.d.mts +11 -9
- package/build/import/type/record/record.mjs +53 -28
- package/build/import/type/recursive/recursive.d.mts +1 -0
- package/build/import/type/recursive/recursive.mjs +3 -0
- package/build/import/type/ref/ref.d.mts +2 -0
- package/build/import/type/ref/ref.mjs +1 -0
- package/build/import/type/regexp/regexp.d.mts +2 -0
- package/build/import/type/regexp/regexp.mjs +1 -0
- package/build/import/type/registry/format.d.mts +6 -0
- package/build/import/type/registry/format.mjs +7 -0
- package/build/import/type/registry/type.d.mts +6 -0
- package/build/import/type/registry/type.mjs +7 -0
- package/build/import/type/required/required-from-mapped-result.mjs +3 -0
- package/build/import/type/required/required.d.mts +2 -0
- package/build/import/type/required/required.mjs +9 -0
- package/build/import/type/rest/rest.d.mts +1 -0
- package/build/import/type/rest/rest.mjs +5 -0
- package/build/import/type/return-type/return-type.d.mts +1 -0
- package/build/import/type/return-type/return-type.mjs +1 -0
- package/build/import/type/schema/schema.d.mts +7 -0
- package/build/import/type/static/static.d.mts +3 -0
- package/build/import/type/strict/strict.d.mts +1 -0
- package/build/import/type/strict/strict.mjs +1 -0
- package/build/import/type/string/string.d.mts +7 -0
- package/build/import/type/string/string.mjs +1 -0
- package/build/import/type/symbol/symbol.d.mts +1 -0
- package/build/import/type/symbol/symbol.mjs +1 -0
- package/build/import/type/symbols/symbols.d.mts +5 -0
- package/build/import/type/symbols/symbols.mjs +5 -0
- package/build/import/type/template-literal/finite.mjs +10 -0
- package/build/import/type/template-literal/generate.mjs +10 -0
- package/build/import/type/template-literal/parser.d.mts +2 -0
- package/build/import/type/template-literal/parser.mjs +17 -0
- package/build/import/type/template-literal/pattern.mjs +11 -0
- package/build/import/type/template-literal/syntax.d.mts +1 -0
- package/build/import/type/template-literal/syntax.mjs +8 -0
- package/build/import/type/template-literal/template-literal.d.mts +2 -0
- package/build/import/type/template-literal/template-literal.mjs +2 -0
- package/build/import/type/template-literal/union.d.mts +1 -0
- package/build/import/type/template-literal/union.mjs +4 -0
- package/build/import/type/transform/transform.d.mts +1 -0
- package/build/import/type/transform/transform.mjs +9 -0
- package/build/import/type/tuple/tuple.d.mts +1 -0
- package/build/import/type/tuple/tuple.mjs +3 -0
- package/build/import/type/type/index.d.mts +1 -0
- package/build/import/type/type/index.mjs +7 -0
- package/build/import/type/type/javascript.d.mts +19 -0
- package/build/import/type/type/javascript.mjs +18 -0
- package/build/import/type/type/json.d.mts +64 -3
- package/build/import/type/type/json.mjs +55 -1
- package/build/import/type/type/type.mjs +3 -0
- package/build/import/type/uint8array/uint8array.d.mts +1 -0
- package/build/import/type/uint8array/uint8array.mjs +1 -0
- package/build/import/type/undefined/undefined.d.mts +1 -0
- package/build/import/type/undefined/undefined.mjs +1 -0
- package/build/import/type/union/union-evaluated.d.mts +1 -0
- package/build/import/type/union/union-evaluated.mjs +10 -0
- package/build/import/type/union/union.d.mts +1 -0
- package/build/import/type/union/union.mjs +2 -0
- package/build/import/type/unknown/unknown.d.mts +1 -0
- package/build/import/type/unknown/unknown.mjs +1 -0
- package/build/import/type/unsafe/unsafe.d.mts +1 -0
- package/build/import/type/unsafe/unsafe.mjs +1 -0
- package/build/import/type/void/void.d.mts +1 -0
- package/build/import/type/void/void.mjs +1 -0
- package/build/import/value/cast/cast.d.mts +2 -0
- package/build/import/value/cast/cast.mjs +28 -0
- package/build/import/value/check/check.d.mts +2 -0
- package/build/import/value/check/check.mjs +19 -1
- package/build/import/value/clean/clean.d.mts +2 -0
- package/build/import/value/clean/clean.mjs +12 -1
- package/build/import/value/clone/clone.d.mts +1 -0
- package/build/import/value/clone/clone.mjs +7 -0
- package/build/import/value/convert/convert.d.mts +2 -0
- package/build/import/value/convert/convert.mjs +30 -1
- package/build/import/value/create/create.d.mts +2 -0
- package/build/import/value/create/create.mjs +17 -0
- package/build/import/value/default/default.d.mts +2 -0
- package/build/import/value/default/default.mjs +19 -0
- package/build/import/value/delta/delta.mjs +15 -0
- package/build/import/value/deref/deref.d.mts +1 -0
- package/build/import/value/deref/deref.mjs +1 -0
- package/build/import/value/equal/equal.d.mts +1 -0
- package/build/import/value/equal/equal.mjs +7 -0
- package/build/import/value/guard/guard.d.mts +20 -0
- package/build/import/value/guard/guard.mjs +30 -0
- package/build/import/value/hash/hash.d.mts +1 -0
- package/build/import/value/hash/hash.mjs +19 -0
- package/build/import/value/index.mjs +12 -0
- package/build/import/value/mutate/mutate.d.mts +1 -0
- package/build/import/value/mutate/mutate.mjs +11 -0
- package/build/import/value/pointer/pointer.d.mts +5 -0
- package/build/import/value/pointer/pointer.mjs +18 -0
- package/build/import/value/transform/decode.d.mts +5 -0
- package/build/import/value/transform/decode.mjs +23 -0
- package/build/import/value/transform/encode.d.mts +6 -0
- package/build/import/value/transform/encode.mjs +25 -0
- package/build/import/value/transform/has.d.mts +1 -0
- package/build/import/value/transform/has.mjs +16 -0
- package/build/import/value/value/value.d.mts +24 -0
- package/build/import/value/value/value.mjs +15 -0
- package/build/require/compiler/compiler.d.ts +9 -0
- package/build/require/compiler/compiler.js +61 -6
- package/build/require/compiler/index.js +1 -0
- package/build/require/errors/errors.d.ts +3 -0
- package/build/require/errors/errors.js +29 -3
- package/build/require/errors/function.d.ts +3 -0
- package/build/require/errors/function.js +5 -0
- package/build/require/errors/index.js +1 -0
- package/build/require/index.js +10 -0
- package/build/require/system/index.js +1 -0
- package/build/require/system/policy.d.ts +10 -0
- package/build/require/system/policy.js +14 -0
- package/build/require/system/system.d.ts +3 -0
- package/build/require/system/system.js +10 -0
- package/build/require/type/any/any.d.ts +1 -0
- package/build/require/type/any/any.js +2 -0
- package/build/require/type/any/index.js +1 -0
- package/build/require/type/array/array.d.ts +7 -0
- package/build/require/type/array/array.js +2 -0
- package/build/require/type/array/index.js +1 -0
- package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
- package/build/require/type/async-iterator/async-iterator.js +2 -0
- package/build/require/type/async-iterator/index.js +1 -0
- package/build/require/type/awaited/awaited.d.ts +7 -6
- package/build/require/type/awaited/awaited.js +25 -15
- package/build/require/type/awaited/index.js +1 -0
- package/build/require/type/bigint/bigint.d.ts +1 -0
- package/build/require/type/bigint/bigint.js +2 -0
- package/build/require/type/bigint/index.js +1 -0
- package/build/require/type/boolean/boolean.d.ts +1 -0
- package/build/require/type/boolean/boolean.js +2 -0
- package/build/require/type/boolean/index.js +1 -0
- package/build/require/type/clone/index.js +1 -0
- package/build/require/type/clone/type.d.ts +2 -0
- package/build/require/type/clone/type.js +3 -0
- package/build/require/type/clone/value.d.ts +1 -0
- package/build/require/type/clone/value.js +3 -0
- package/build/require/type/composite/composite.d.ts +1 -0
- package/build/require/type/composite/composite.js +2 -0
- package/build/require/type/composite/index.js +1 -0
- package/build/require/type/const/const.d.ts +2 -1
- package/build/require/type/const/const.js +6 -1
- package/build/require/type/const/index.js +1 -0
- package/build/require/type/constructor/constructor.d.ts +1 -0
- package/build/require/type/constructor/constructor.js +2 -0
- package/build/require/type/constructor/index.js +1 -0
- package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
- package/build/require/type/constructor-parameters/constructor-parameters.js +2 -0
- package/build/require/type/constructor-parameters/index.js +1 -0
- package/build/require/type/date/date.d.ts +6 -0
- package/build/require/type/date/date.js +2 -0
- package/build/require/type/date/index.js +1 -0
- package/build/require/type/deref/deref.d.ts +1 -0
- package/build/require/type/deref/deref.js +19 -0
- package/build/require/type/deref/index.js +1 -0
- package/build/require/type/discard/discard.js +1 -0
- package/build/require/type/discard/index.js +1 -0
- package/build/require/type/enum/enum.d.ts +1 -0
- package/build/require/type/enum/enum.js +2 -0
- package/build/require/type/enum/index.js +1 -0
- package/build/require/type/exclude/exclude-from-mapped-result.js +4 -0
- package/build/require/type/exclude/exclude.d.ts +2 -0
- package/build/require/type/exclude/exclude.js +4 -0
- package/build/require/type/exclude/index.js +1 -0
- package/build/require/type/extends/extends-check.js +174 -1
- package/build/require/type/extends/extends-from-mapped-key.js +5 -0
- package/build/require/type/extends/extends-from-mapped-result.js +4 -0
- package/build/require/type/extends/extends-undefined.d.ts +1 -0
- package/build/require/type/extends/extends-undefined.js +4 -0
- package/build/require/type/extends/extends.d.ts +3 -0
- package/build/require/type/extends/extends.js +8 -0
- package/build/require/type/extends/index.js +1 -0
- package/build/require/type/extract/extract-from-mapped-result.js +4 -0
- package/build/require/type/extract/extract.d.ts +2 -0
- package/build/require/type/extract/extract.js +4 -0
- package/build/require/type/extract/index.js +1 -0
- package/build/require/type/function/function.d.ts +1 -0
- package/build/require/type/function/function.js +2 -0
- package/build/require/type/function/index.js +1 -0
- package/build/require/type/guard/index.js +1 -0
- package/build/require/type/guard/type.d.ts +46 -0
- package/build/require/type/guard/type.js +85 -1
- package/build/require/type/guard/value.d.ts +14 -0
- package/build/require/type/guard/value.js +15 -0
- package/build/require/type/helpers/helpers.d.ts +1 -0
- package/build/require/type/helpers/helpers.js +2 -0
- package/build/require/type/helpers/index.js +1 -0
- package/build/require/type/index.js +1 -0
- package/build/require/type/indexed/index.d.ts +0 -1
- package/build/require/type/indexed/index.js +1 -1
- package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
- package/build/require/type/indexed/indexed-from-mapped-key.js +11 -3
- package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
- package/build/require/type/indexed/indexed-property-keys.js +10 -0
- package/build/require/type/indexed/indexed.d.ts +40 -4
- package/build/require/type/indexed/indexed.js +84 -4
- package/build/require/type/instance-type/index.js +1 -0
- package/build/require/type/instance-type/instance-type.d.ts +1 -0
- package/build/require/type/instance-type/instance-type.js +2 -0
- package/build/require/type/integer/index.js +1 -0
- package/build/require/type/integer/integer.d.ts +1 -0
- package/build/require/type/integer/integer.js +2 -0
- package/build/require/type/intersect/index.js +1 -0
- package/build/require/type/intersect/intersect-create.js +9 -0
- package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
- package/build/require/type/intersect/intersect-evaluated.js +10 -0
- package/build/require/type/intersect/intersect-type.js +1 -0
- package/build/require/type/intersect/intersect.d.ts +1 -0
- package/build/require/type/intersect/intersect.js +6 -0
- package/build/require/type/intrinsic/capitalize.d.ts +1 -0
- package/build/require/type/intrinsic/capitalize.js +2 -0
- package/build/require/type/intrinsic/index.js +1 -0
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +5 -0
- package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
- package/build/require/type/intrinsic/intrinsic.js +17 -1
- package/build/require/type/intrinsic/lowercase.d.ts +1 -0
- package/build/require/type/intrinsic/lowercase.js +2 -0
- package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
- package/build/require/type/intrinsic/uncapitalize.js +2 -0
- package/build/require/type/intrinsic/uppercase.d.ts +1 -0
- package/build/require/type/intrinsic/uppercase.js +2 -0
- package/build/require/type/iterator/index.js +1 -0
- package/build/require/type/iterator/iterator.d.ts +1 -0
- package/build/require/type/iterator/iterator.js +2 -0
- package/build/require/type/keyof/index.js +1 -0
- package/build/require/type/keyof/keyof-from-mapped-result.js +4 -0
- package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
- package/build/require/type/keyof/keyof-property-keys.js +21 -0
- package/build/require/type/keyof/keyof.d.ts +2 -0
- package/build/require/type/keyof/keyof.js +7 -0
- package/build/require/type/literal/index.js +1 -0
- package/build/require/type/literal/literal.d.ts +1 -0
- package/build/require/type/literal/literal.js +2 -0
- package/build/require/type/mapped/index.js +1 -0
- package/build/require/type/mapped/mapped-key.js +2 -0
- package/build/require/type/mapped/mapped-result.js +2 -0
- package/build/require/type/mapped/mapped.d.ts +2 -0
- package/build/require/type/mapped/mapped.js +20 -1
- package/build/require/type/modifiers/index.js +1 -0
- package/build/require/type/modifiers/modifiers.js +11 -0
- package/build/require/type/never/index.js +1 -0
- package/build/require/type/never/never.d.ts +1 -0
- package/build/require/type/never/never.js +2 -0
- package/build/require/type/not/index.js +1 -0
- package/build/require/type/not/not.d.ts +1 -0
- package/build/require/type/not/not.js +2 -0
- package/build/require/type/null/index.js +1 -0
- package/build/require/type/null/null.d.ts +1 -0
- package/build/require/type/null/null.js +2 -0
- package/build/require/type/number/index.js +1 -0
- package/build/require/type/number/number.d.ts +1 -0
- package/build/require/type/number/number.js +2 -0
- package/build/require/type/object/index.js +1 -0
- package/build/require/type/object/object.d.ts +5 -0
- package/build/require/type/object/object.js +7 -0
- package/build/require/type/omit/index.js +1 -0
- package/build/require/type/omit/omit-from-mapped-key.js +5 -0
- package/build/require/type/omit/omit.d.ts +3 -0
- package/build/require/type/omit/omit.js +13 -0
- package/build/require/type/operators/index.js +1 -0
- package/build/require/type/operators/operators.d.ts +8 -0
- package/build/require/type/operators/operators.js +16 -0
- package/build/require/type/optional/index.js +1 -0
- package/build/require/type/optional/optional.d.ts +1 -0
- package/build/require/type/optional/optional.js +2 -0
- package/build/require/type/parameters/index.js +1 -0
- package/build/require/type/parameters/parameters.d.ts +1 -0
- package/build/require/type/parameters/parameters.js +2 -0
- package/build/require/type/partial/index.js +1 -0
- package/build/require/type/partial/partial-from-mapped-result.js +4 -0
- package/build/require/type/partial/partial.d.ts +2 -0
- package/build/require/type/partial/partial.js +10 -0
- package/build/require/type/patterns/index.js +1 -0
- package/build/require/type/patterns/patterns.js +1 -0
- package/build/require/type/pick/index.js +1 -0
- package/build/require/type/pick/pick-from-mapped-key.js +5 -0
- package/build/require/type/pick/pick.d.ts +3 -0
- package/build/require/type/pick/pick.js +8 -0
- package/build/require/type/promise/index.js +1 -0
- package/build/require/type/promise/promise.d.ts +1 -0
- package/build/require/type/promise/promise.js +2 -0
- package/build/require/type/readonly/index.js +1 -0
- package/build/require/type/readonly/readonly.d.ts +1 -0
- package/build/require/type/readonly/readonly.js +2 -0
- package/build/require/type/readonly-optional/index.js +1 -0
- package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
- package/build/require/type/readonly-optional/readonly-optional.js +2 -0
- package/build/require/type/record/index.js +1 -0
- package/build/require/type/record/record.d.ts +11 -9
- package/build/require/type/record/record.js +54 -28
- package/build/require/type/recursive/index.js +1 -0
- package/build/require/type/recursive/recursive.d.ts +1 -0
- package/build/require/type/recursive/recursive.js +4 -0
- package/build/require/type/ref/index.js +1 -0
- package/build/require/type/ref/ref.d.ts +2 -0
- package/build/require/type/ref/ref.js +2 -0
- package/build/require/type/regexp/index.js +1 -0
- package/build/require/type/regexp/regexp.d.ts +2 -0
- package/build/require/type/regexp/regexp.js +2 -0
- package/build/require/type/registry/format.d.ts +6 -0
- package/build/require/type/registry/format.js +8 -0
- package/build/require/type/registry/index.js +1 -0
- package/build/require/type/registry/type.d.ts +6 -0
- package/build/require/type/registry/type.js +8 -0
- package/build/require/type/required/index.js +1 -0
- package/build/require/type/required/required-from-mapped-result.js +4 -0
- package/build/require/type/required/required.d.ts +2 -0
- package/build/require/type/required/required.js +10 -0
- package/build/require/type/rest/index.js +1 -0
- package/build/require/type/rest/rest.d.ts +1 -0
- package/build/require/type/rest/rest.js +6 -0
- package/build/require/type/return-type/index.js +1 -0
- package/build/require/type/return-type/return-type.d.ts +1 -0
- package/build/require/type/return-type/return-type.js +2 -0
- package/build/require/type/schema/anyschema.js +1 -0
- package/build/require/type/schema/index.js +1 -0
- package/build/require/type/schema/schema.d.ts +7 -0
- package/build/require/type/schema/schema.js +1 -0
- package/build/require/type/static/index.js +1 -0
- package/build/require/type/static/static.d.ts +3 -0
- package/build/require/type/static/static.js +1 -0
- package/build/require/type/strict/index.js +1 -0
- package/build/require/type/strict/strict.d.ts +1 -0
- package/build/require/type/strict/strict.js +2 -0
- package/build/require/type/string/index.js +1 -0
- package/build/require/type/string/string.d.ts +7 -0
- package/build/require/type/string/string.js +2 -0
- package/build/require/type/symbol/index.js +1 -0
- package/build/require/type/symbol/symbol.d.ts +1 -0
- package/build/require/type/symbol/symbol.js +2 -0
- package/build/require/type/symbols/index.js +1 -0
- package/build/require/type/symbols/symbols.d.ts +5 -0
- package/build/require/type/symbols/symbols.js +6 -0
- package/build/require/type/template-literal/finite.js +11 -0
- package/build/require/type/template-literal/generate.js +11 -0
- package/build/require/type/template-literal/index.js +1 -0
- package/build/require/type/template-literal/parser.d.ts +2 -0
- package/build/require/type/template-literal/parser.js +18 -0
- package/build/require/type/template-literal/pattern.js +12 -0
- package/build/require/type/template-literal/syntax.d.ts +1 -0
- package/build/require/type/template-literal/syntax.js +9 -0
- package/build/require/type/template-literal/template-literal.d.ts +2 -0
- package/build/require/type/template-literal/template-literal.js +3 -0
- package/build/require/type/template-literal/union.d.ts +1 -0
- package/build/require/type/template-literal/union.js +5 -0
- package/build/require/type/transform/index.js +1 -0
- package/build/require/type/transform/transform.d.ts +1 -0
- package/build/require/type/transform/transform.js +10 -0
- package/build/require/type/tuple/index.js +1 -0
- package/build/require/type/tuple/tuple.d.ts +1 -0
- package/build/require/type/tuple/tuple.js +4 -0
- package/build/require/type/type/index.d.ts +1 -0
- package/build/require/type/type/index.js +8 -0
- package/build/require/type/type/javascript.d.ts +19 -0
- package/build/require/type/type/javascript.js +19 -0
- package/build/require/type/type/json.d.ts +64 -3
- package/build/require/type/type/json.js +56 -1
- package/build/require/type/type/type.js +4 -0
- package/build/require/type/uint8array/index.js +1 -0
- package/build/require/type/uint8array/uint8array.d.ts +1 -0
- package/build/require/type/uint8array/uint8array.js +2 -0
- package/build/require/type/undefined/index.js +1 -0
- package/build/require/type/undefined/undefined.d.ts +1 -0
- package/build/require/type/undefined/undefined.js +2 -0
- package/build/require/type/union/index.js +1 -0
- package/build/require/type/union/union-create.js +1 -0
- package/build/require/type/union/union-evaluated.d.ts +1 -0
- package/build/require/type/union/union-evaluated.js +11 -0
- package/build/require/type/union/union-type.js +1 -0
- package/build/require/type/union/union.d.ts +1 -0
- package/build/require/type/union/union.js +3 -0
- package/build/require/type/unknown/index.js +1 -0
- package/build/require/type/unknown/unknown.d.ts +1 -0
- package/build/require/type/unknown/unknown.js +2 -0
- package/build/require/type/unsafe/index.js +1 -0
- package/build/require/type/unsafe/unsafe.d.ts +1 -0
- package/build/require/type/unsafe/unsafe.js +2 -0
- package/build/require/type/void/index.js +1 -0
- package/build/require/type/void/void.d.ts +1 -0
- package/build/require/type/void/void.js +2 -0
- package/build/require/value/cast/cast.d.ts +2 -0
- package/build/require/value/cast/cast.js +29 -0
- package/build/require/value/cast/index.js +1 -0
- package/build/require/value/check/check.d.ts +2 -0
- package/build/require/value/check/check.js +20 -1
- package/build/require/value/check/index.js +1 -0
- package/build/require/value/clean/clean.d.ts +2 -0
- package/build/require/value/clean/clean.js +13 -1
- package/build/require/value/clean/index.js +1 -0
- package/build/require/value/clone/clone.d.ts +1 -0
- package/build/require/value/clone/clone.js +8 -0
- package/build/require/value/clone/index.js +1 -0
- package/build/require/value/convert/convert.d.ts +2 -0
- package/build/require/value/convert/convert.js +31 -1
- package/build/require/value/convert/index.js +1 -0
- package/build/require/value/create/create.d.ts +2 -0
- package/build/require/value/create/create.js +18 -0
- package/build/require/value/create/index.js +1 -0
- package/build/require/value/default/default.d.ts +2 -0
- package/build/require/value/default/default.js +20 -0
- package/build/require/value/default/index.js +1 -0
- package/build/require/value/delta/delta.js +16 -0
- package/build/require/value/delta/index.js +1 -0
- package/build/require/value/deref/deref.d.ts +1 -0
- package/build/require/value/deref/deref.js +2 -0
- package/build/require/value/deref/index.js +1 -0
- package/build/require/value/equal/equal.d.ts +1 -0
- package/build/require/value/equal/equal.js +8 -0
- package/build/require/value/equal/index.js +1 -0
- package/build/require/value/guard/guard.d.ts +20 -0
- package/build/require/value/guard/guard.js +31 -0
- package/build/require/value/guard/index.js +1 -0
- package/build/require/value/hash/hash.d.ts +1 -0
- package/build/require/value/hash/hash.js +20 -0
- package/build/require/value/hash/index.js +1 -0
- package/build/require/value/index.js +13 -0
- package/build/require/value/mutate/index.js +1 -0
- package/build/require/value/mutate/mutate.d.ts +1 -0
- package/build/require/value/mutate/mutate.js +12 -0
- package/build/require/value/pointer/index.js +1 -0
- package/build/require/value/pointer/pointer.d.ts +5 -0
- package/build/require/value/pointer/pointer.js +19 -0
- package/build/require/value/transform/decode.d.ts +5 -0
- package/build/require/value/transform/decode.js +24 -0
- package/build/require/value/transform/encode.d.ts +6 -0
- package/build/require/value/transform/encode.js +26 -0
- package/build/require/value/transform/has.d.ts +1 -0
- package/build/require/value/transform/has.js +17 -0
- package/build/require/value/transform/index.js +1 -0
- package/build/require/value/value/index.js +1 -0
- package/build/require/value/value/value.d.ts +24 -0
- package/build/require/value/value/value.js +16 -0
- package/license +3 -1
- package/package.json +1 -1
- package/readme.md +4 -5
- package/build/import/type/indexed/indexed-result.d.mts +0 -33
- package/build/import/type/indexed/indexed-result.mjs +0 -65
- package/build/require/type/indexed/indexed-result.d.ts +0 -33
- package/build/require/type/indexed/indexed-result.js +0 -69
|
@@ -37,57 +37,103 @@ import type { TDate } from '../date/index.mjs';
|
|
|
37
37
|
import type { TThis } from '../recursive/index.mjs';
|
|
38
38
|
export declare class TypeGuardUnknownTypeError extends Error {
|
|
39
39
|
}
|
|
40
|
+
/** Returns true if this value has a Readonly symbol */
|
|
40
41
|
export declare function TReadonly<T extends TSchema>(value: T): value is TReadonly<T>;
|
|
42
|
+
/** Returns true if this value has a Optional symbol */
|
|
41
43
|
export declare function TOptional<T extends TSchema>(value: T): value is TOptional<T>;
|
|
44
|
+
/** Returns true if the given value is TAny */
|
|
42
45
|
export declare function TAny(value: unknown): value is TAny;
|
|
46
|
+
/** Returns true if the given value is TArray */
|
|
43
47
|
export declare function TArray(value: unknown): value is TArray;
|
|
48
|
+
/** Returns true if the given value is TAsyncIterator */
|
|
44
49
|
export declare function TAsyncIterator(value: unknown): value is TAsyncIterator;
|
|
50
|
+
/** Returns true if the given value is TBigInt */
|
|
45
51
|
export declare function TBigInt(value: unknown): value is TBigInt;
|
|
52
|
+
/** Returns true if the given value is TBoolean */
|
|
46
53
|
export declare function TBoolean(value: unknown): value is TBoolean;
|
|
54
|
+
/** Returns true if the given value is TConstructor */
|
|
47
55
|
export declare function TConstructor(value: unknown): value is TConstructor;
|
|
56
|
+
/** Returns true if the given value is TDate */
|
|
48
57
|
export declare function TDate(value: unknown): value is TDate;
|
|
58
|
+
/** Returns true if the given value is TFunction */
|
|
49
59
|
export declare function TFunction(value: unknown): value is TFunction;
|
|
60
|
+
/** Returns true if the given value is TInteger */
|
|
50
61
|
export declare function TInteger(value: unknown): value is TInteger;
|
|
62
|
+
/** Returns true if the given schema is TProperties */
|
|
51
63
|
export declare function TProperties(value: unknown): value is TProperties;
|
|
64
|
+
/** Returns true if the given value is TIntersect */
|
|
52
65
|
export declare function TIntersect(value: unknown): value is TIntersect;
|
|
66
|
+
/** Returns true if the given value is TIterator */
|
|
53
67
|
export declare function TIterator(value: unknown): value is TIterator;
|
|
68
|
+
/** Returns true if the given value is a TKind with the given name. */
|
|
54
69
|
export declare function TKindOf<T extends string>(value: unknown, kind: T): value is Record<PropertyKey, unknown> & {
|
|
55
70
|
[Kind]: T;
|
|
56
71
|
};
|
|
72
|
+
/** Returns true if the given value is TLiteral<string> */
|
|
57
73
|
export declare function TLiteralString(value: unknown): value is TLiteral<string>;
|
|
74
|
+
/** Returns true if the given value is TLiteral<number> */
|
|
58
75
|
export declare function TLiteralNumber(value: unknown): value is TLiteral<number>;
|
|
76
|
+
/** Returns true if the given value is TLiteral<boolean> */
|
|
59
77
|
export declare function TLiteralBoolean(value: unknown): value is TLiteral<boolean>;
|
|
78
|
+
/** Returns true if the given value is TLiteral */
|
|
60
79
|
export declare function TLiteral(value: unknown): value is TLiteral;
|
|
80
|
+
/** Returns true if the given value is a TLiteralValue */
|
|
61
81
|
export declare function TLiteralValue(value: unknown): value is TLiteralValue;
|
|
82
|
+
/** Returns true if the given value is a TMappedKey */
|
|
62
83
|
export declare function TMappedKey(value: unknown): value is TMappedKey;
|
|
84
|
+
/** Returns true if the given value is TMappedResult */
|
|
63
85
|
export declare function TMappedResult(value: unknown): value is TMappedResult;
|
|
86
|
+
/** Returns true if the given value is TNever */
|
|
64
87
|
export declare function TNever(value: unknown): value is TNever;
|
|
88
|
+
/** Returns true if the given value is TNot */
|
|
65
89
|
export declare function TNot(value: unknown): value is TNot;
|
|
90
|
+
/** Returns true if the given value is TNull */
|
|
66
91
|
export declare function TNull(value: unknown): value is TNull;
|
|
92
|
+
/** Returns true if the given value is TNumber */
|
|
67
93
|
export declare function TNumber(value: unknown): value is TNumber;
|
|
94
|
+
/** Returns true if the given value is TObject */
|
|
68
95
|
export declare function TObject(value: unknown): value is TObject;
|
|
96
|
+
/** Returns true if the given value is TPromise */
|
|
69
97
|
export declare function TPromise(value: unknown): value is TPromise;
|
|
98
|
+
/** Returns true if the given value is TRecord */
|
|
70
99
|
export declare function TRecord(value: unknown): value is TRecord;
|
|
100
|
+
/** Returns true if this value is TRecursive */
|
|
71
101
|
export declare function TRecursive(value: unknown): value is {
|
|
72
102
|
[Hint]: 'Recursive';
|
|
73
103
|
};
|
|
104
|
+
/** Returns true if the given value is TRef */
|
|
74
105
|
export declare function TRef(value: unknown): value is TRef;
|
|
106
|
+
/** Returns true if the given value is TString */
|
|
75
107
|
export declare function TString(value: unknown): value is TString;
|
|
108
|
+
/** Returns true if the given value is TSymbol */
|
|
76
109
|
export declare function TSymbol(value: unknown): value is TSymbol;
|
|
110
|
+
/** Returns true if the given value is TTemplateLiteral */
|
|
77
111
|
export declare function TTemplateLiteral(value: unknown): value is TTemplateLiteral<TTemplateLiteralKind[]>;
|
|
112
|
+
/** Returns true if the given value is TThis */
|
|
78
113
|
export declare function TThis(value: unknown): value is TThis;
|
|
114
|
+
/** Returns true of this value is TTransform */
|
|
79
115
|
export declare function TTransform(value: unknown): value is {
|
|
80
116
|
[TransformKind]: TransformOptions;
|
|
81
117
|
};
|
|
118
|
+
/** Returns true if the given value is TTuple */
|
|
82
119
|
export declare function TTuple(value: unknown): value is TTuple;
|
|
120
|
+
/** Returns true if the given value is TUndefined */
|
|
83
121
|
export declare function TUndefined(value: unknown): value is TUndefined;
|
|
122
|
+
/** Returns true if the given value is TUnion<Literal<string | number>[]> */
|
|
84
123
|
export declare function TUnionLiteral(value: unknown): value is TUnion<TLiteral[]>;
|
|
124
|
+
/** Returns true if the given value is TUnion */
|
|
85
125
|
export declare function TUnion(value: unknown): value is TUnion;
|
|
126
|
+
/** Returns true if the given value is TUint8Array */
|
|
86
127
|
export declare function TUint8Array(value: unknown): value is TUint8Array;
|
|
128
|
+
/** Returns true if the given value is TUnknown */
|
|
87
129
|
export declare function TUnknown(value: unknown): value is TUnknown;
|
|
130
|
+
/** Returns true if the given value is a raw TUnsafe */
|
|
88
131
|
export declare function TUnsafe(value: unknown): value is TUnsafe<unknown>;
|
|
132
|
+
/** Returns true if the given value is TVoid */
|
|
89
133
|
export declare function TVoid(value: unknown): value is TVoid;
|
|
134
|
+
/** Returns true if the given value is TKind */
|
|
90
135
|
export declare function TKind(value: unknown): value is Record<PropertyKey, unknown> & {
|
|
91
136
|
[Kind]: string;
|
|
92
137
|
};
|
|
138
|
+
/** Returns true if the given value is TSchema */
|
|
93
139
|
export declare function TSchema(value: unknown): value is TSchema;
|
|
@@ -80,16 +80,27 @@ function IsOptionalFormat(value) {
|
|
|
80
80
|
function IsOptionalSchema(value) {
|
|
81
81
|
return ValueGuard.IsUndefined(value) || TSchema(value);
|
|
82
82
|
}
|
|
83
|
+
// ------------------------------------------------------------------
|
|
84
|
+
// Modifiers
|
|
85
|
+
// ------------------------------------------------------------------
|
|
86
|
+
/** Returns true if this value has a Readonly symbol */
|
|
83
87
|
export function TReadonly(value) {
|
|
84
88
|
return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';
|
|
85
89
|
}
|
|
90
|
+
/** Returns true if this value has a Optional symbol */
|
|
86
91
|
export function TOptional(value) {
|
|
87
92
|
return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';
|
|
88
93
|
}
|
|
94
|
+
// ------------------------------------------------------------------
|
|
95
|
+
// Types
|
|
96
|
+
// ------------------------------------------------------------------
|
|
97
|
+
/** Returns true if the given value is TAny */
|
|
89
98
|
export function TAny(value) {
|
|
99
|
+
// prettier-ignore
|
|
90
100
|
return (TKindOf(value, 'Any') &&
|
|
91
101
|
IsOptionalString(value.$id));
|
|
92
102
|
}
|
|
103
|
+
/** Returns true if the given value is TArray */
|
|
93
104
|
export function TArray(value) {
|
|
94
105
|
return (TKindOf(value, 'Array') &&
|
|
95
106
|
value.type === 'array' &&
|
|
@@ -102,13 +113,17 @@ export function TArray(value) {
|
|
|
102
113
|
IsOptionalNumber(value.minContains) &&
|
|
103
114
|
IsOptionalNumber(value.maxContains));
|
|
104
115
|
}
|
|
116
|
+
/** Returns true if the given value is TAsyncIterator */
|
|
105
117
|
export function TAsyncIterator(value) {
|
|
118
|
+
// prettier-ignore
|
|
106
119
|
return (TKindOf(value, 'AsyncIterator') &&
|
|
107
120
|
value.type === 'AsyncIterator' &&
|
|
108
121
|
IsOptionalString(value.$id) &&
|
|
109
122
|
TSchema(value.items));
|
|
110
123
|
}
|
|
124
|
+
/** Returns true if the given value is TBigInt */
|
|
111
125
|
export function TBigInt(value) {
|
|
126
|
+
// prettier-ignore
|
|
112
127
|
return (TKindOf(value, 'BigInt') &&
|
|
113
128
|
value.type === 'bigint' &&
|
|
114
129
|
IsOptionalString(value.$id) &&
|
|
@@ -118,12 +133,16 @@ export function TBigInt(value) {
|
|
|
118
133
|
IsOptionalBigInt(value.minimum) &&
|
|
119
134
|
IsOptionalBigInt(value.multipleOf));
|
|
120
135
|
}
|
|
136
|
+
/** Returns true if the given value is TBoolean */
|
|
121
137
|
export function TBoolean(value) {
|
|
138
|
+
// prettier-ignore
|
|
122
139
|
return (TKindOf(value, 'Boolean') &&
|
|
123
140
|
value.type === 'boolean' &&
|
|
124
141
|
IsOptionalString(value.$id));
|
|
125
142
|
}
|
|
143
|
+
/** Returns true if the given value is TConstructor */
|
|
126
144
|
export function TConstructor(value) {
|
|
145
|
+
// prettier-ignore
|
|
127
146
|
return (TKindOf(value, 'Constructor') &&
|
|
128
147
|
value.type === 'Constructor' &&
|
|
129
148
|
IsOptionalString(value.$id) &&
|
|
@@ -131,6 +150,7 @@ export function TConstructor(value) {
|
|
|
131
150
|
value.parameters.every(schema => TSchema(schema)) &&
|
|
132
151
|
TSchema(value.returns));
|
|
133
152
|
}
|
|
153
|
+
/** Returns true if the given value is TDate */
|
|
134
154
|
export function TDate(value) {
|
|
135
155
|
return (TKindOf(value, 'Date') &&
|
|
136
156
|
value.type === 'Date' &&
|
|
@@ -141,7 +161,9 @@ export function TDate(value) {
|
|
|
141
161
|
IsOptionalNumber(value.minimumTimestamp) &&
|
|
142
162
|
IsOptionalNumber(value.multipleOfTimestamp));
|
|
143
163
|
}
|
|
164
|
+
/** Returns true if the given value is TFunction */
|
|
144
165
|
export function TFunction(value) {
|
|
166
|
+
// prettier-ignore
|
|
145
167
|
return (TKindOf(value, 'Function') &&
|
|
146
168
|
value.type === 'Function' &&
|
|
147
169
|
IsOptionalString(value.$id) &&
|
|
@@ -149,6 +171,7 @@ export function TFunction(value) {
|
|
|
149
171
|
value.parameters.every(schema => TSchema(schema)) &&
|
|
150
172
|
TSchema(value.returns));
|
|
151
173
|
}
|
|
174
|
+
/** Returns true if the given value is TInteger */
|
|
152
175
|
export function TInteger(value) {
|
|
153
176
|
return (TKindOf(value, 'Integer') &&
|
|
154
177
|
value.type === 'integer' &&
|
|
@@ -159,11 +182,15 @@ export function TInteger(value) {
|
|
|
159
182
|
IsOptionalNumber(value.minimum) &&
|
|
160
183
|
IsOptionalNumber(value.multipleOf));
|
|
161
184
|
}
|
|
185
|
+
/** Returns true if the given schema is TProperties */
|
|
162
186
|
export function TProperties(value) {
|
|
187
|
+
// prettier-ignore
|
|
163
188
|
return (ValueGuard.IsObject(value) &&
|
|
164
189
|
Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
|
|
165
190
|
}
|
|
191
|
+
/** Returns true if the given value is TIntersect */
|
|
166
192
|
export function TIntersect(value) {
|
|
193
|
+
// prettier-ignore
|
|
167
194
|
return (TKindOf(value, 'Intersect') &&
|
|
168
195
|
(ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&
|
|
169
196
|
ValueGuard.IsArray(value.allOf) &&
|
|
@@ -172,54 +199,74 @@ export function TIntersect(value) {
|
|
|
172
199
|
(IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&
|
|
173
200
|
IsOptionalString(value.$id));
|
|
174
201
|
}
|
|
202
|
+
/** Returns true if the given value is TIterator */
|
|
175
203
|
export function TIterator(value) {
|
|
204
|
+
// prettier-ignore
|
|
176
205
|
return (TKindOf(value, 'Iterator') &&
|
|
177
206
|
value.type === 'Iterator' &&
|
|
178
207
|
IsOptionalString(value.$id) &&
|
|
179
208
|
TSchema(value.items));
|
|
180
209
|
}
|
|
210
|
+
/** Returns true if the given value is a TKind with the given name. */
|
|
181
211
|
export function TKindOf(value, kind) {
|
|
182
212
|
return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;
|
|
183
213
|
}
|
|
214
|
+
/** Returns true if the given value is TLiteral<string> */
|
|
184
215
|
export function TLiteralString(value) {
|
|
185
216
|
return TLiteral(value) && ValueGuard.IsString(value.const);
|
|
186
217
|
}
|
|
218
|
+
/** Returns true if the given value is TLiteral<number> */
|
|
187
219
|
export function TLiteralNumber(value) {
|
|
188
220
|
return TLiteral(value) && ValueGuard.IsNumber(value.const);
|
|
189
221
|
}
|
|
222
|
+
/** Returns true if the given value is TLiteral<boolean> */
|
|
190
223
|
export function TLiteralBoolean(value) {
|
|
191
224
|
return TLiteral(value) && ValueGuard.IsBoolean(value.const);
|
|
192
225
|
}
|
|
226
|
+
/** Returns true if the given value is TLiteral */
|
|
193
227
|
export function TLiteral(value) {
|
|
228
|
+
// prettier-ignore
|
|
194
229
|
return (TKindOf(value, 'Literal') &&
|
|
195
230
|
IsOptionalString(value.$id) && TLiteralValue(value.const));
|
|
196
231
|
}
|
|
232
|
+
/** Returns true if the given value is a TLiteralValue */
|
|
197
233
|
export function TLiteralValue(value) {
|
|
198
234
|
return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);
|
|
199
235
|
}
|
|
236
|
+
/** Returns true if the given value is a TMappedKey */
|
|
200
237
|
export function TMappedKey(value) {
|
|
238
|
+
// prettier-ignore
|
|
201
239
|
return (TKindOf(value, 'MappedKey') &&
|
|
202
240
|
ValueGuard.IsArray(value.keys) &&
|
|
203
241
|
value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
|
|
204
242
|
}
|
|
243
|
+
/** Returns true if the given value is TMappedResult */
|
|
205
244
|
export function TMappedResult(value) {
|
|
245
|
+
// prettier-ignore
|
|
206
246
|
return (TKindOf(value, 'MappedResult') &&
|
|
207
247
|
TProperties(value.properties));
|
|
208
248
|
}
|
|
249
|
+
/** Returns true if the given value is TNever */
|
|
209
250
|
export function TNever(value) {
|
|
251
|
+
// prettier-ignore
|
|
210
252
|
return (TKindOf(value, 'Never') &&
|
|
211
253
|
ValueGuard.IsObject(value.not) &&
|
|
212
254
|
Object.getOwnPropertyNames(value.not).length === 0);
|
|
213
255
|
}
|
|
256
|
+
/** Returns true if the given value is TNot */
|
|
214
257
|
export function TNot(value) {
|
|
258
|
+
// prettier-ignore
|
|
215
259
|
return (TKindOf(value, 'Not') &&
|
|
216
260
|
TSchema(value.not));
|
|
217
261
|
}
|
|
262
|
+
/** Returns true if the given value is TNull */
|
|
218
263
|
export function TNull(value) {
|
|
264
|
+
// prettier-ignore
|
|
219
265
|
return (TKindOf(value, 'Null') &&
|
|
220
266
|
value.type === 'null' &&
|
|
221
267
|
IsOptionalString(value.$id));
|
|
222
268
|
}
|
|
269
|
+
/** Returns true if the given value is TNumber */
|
|
223
270
|
export function TNumber(value) {
|
|
224
271
|
return (TKindOf(value, 'Number') &&
|
|
225
272
|
value.type === 'number' &&
|
|
@@ -230,7 +277,9 @@ export function TNumber(value) {
|
|
|
230
277
|
IsOptionalNumber(value.minimum) &&
|
|
231
278
|
IsOptionalNumber(value.multipleOf));
|
|
232
279
|
}
|
|
280
|
+
/** Returns true if the given value is TObject */
|
|
233
281
|
export function TObject(value) {
|
|
282
|
+
// prettier-ignore
|
|
234
283
|
return (TKindOf(value, 'Object') &&
|
|
235
284
|
value.type === 'object' &&
|
|
236
285
|
IsOptionalString(value.$id) &&
|
|
@@ -239,13 +288,17 @@ export function TObject(value) {
|
|
|
239
288
|
IsOptionalNumber(value.minProperties) &&
|
|
240
289
|
IsOptionalNumber(value.maxProperties));
|
|
241
290
|
}
|
|
291
|
+
/** Returns true if the given value is TPromise */
|
|
242
292
|
export function TPromise(value) {
|
|
293
|
+
// prettier-ignore
|
|
243
294
|
return (TKindOf(value, 'Promise') &&
|
|
244
295
|
value.type === 'Promise' &&
|
|
245
296
|
IsOptionalString(value.$id) &&
|
|
246
297
|
TSchema(value.item));
|
|
247
298
|
}
|
|
299
|
+
/** Returns true if the given value is TRecord */
|
|
248
300
|
export function TRecord(value) {
|
|
301
|
+
// prettier-ignore
|
|
249
302
|
return (TKindOf(value, 'Record') &&
|
|
250
303
|
value.type === 'object' &&
|
|
251
304
|
IsOptionalString(value.$id) &&
|
|
@@ -259,15 +312,20 @@ export function TRecord(value) {
|
|
|
259
312
|
TSchema(schema.patternProperties[keys[0]]));
|
|
260
313
|
})(value));
|
|
261
314
|
}
|
|
315
|
+
/** Returns true if this value is TRecursive */
|
|
262
316
|
export function TRecursive(value) {
|
|
263
317
|
return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';
|
|
264
318
|
}
|
|
319
|
+
/** Returns true if the given value is TRef */
|
|
265
320
|
export function TRef(value) {
|
|
321
|
+
// prettier-ignore
|
|
266
322
|
return (TKindOf(value, 'Ref') &&
|
|
267
323
|
IsOptionalString(value.$id) &&
|
|
268
324
|
ValueGuard.IsString(value.$ref));
|
|
269
325
|
}
|
|
326
|
+
/** Returns true if the given value is TString */
|
|
270
327
|
export function TString(value) {
|
|
328
|
+
// prettier-ignore
|
|
271
329
|
return (TKindOf(value, 'String') &&
|
|
272
330
|
value.type === 'string' &&
|
|
273
331
|
IsOptionalString(value.$id) &&
|
|
@@ -276,76 +334,101 @@ export function TString(value) {
|
|
|
276
334
|
IsOptionalPattern(value.pattern) &&
|
|
277
335
|
IsOptionalFormat(value.format));
|
|
278
336
|
}
|
|
337
|
+
/** Returns true if the given value is TSymbol */
|
|
279
338
|
export function TSymbol(value) {
|
|
339
|
+
// prettier-ignore
|
|
280
340
|
return (TKindOf(value, 'Symbol') &&
|
|
281
341
|
value.type === 'symbol' &&
|
|
282
342
|
IsOptionalString(value.$id));
|
|
283
343
|
}
|
|
344
|
+
/** Returns true if the given value is TTemplateLiteral */
|
|
284
345
|
export function TTemplateLiteral(value) {
|
|
346
|
+
// prettier-ignore
|
|
285
347
|
return (TKindOf(value, 'TemplateLiteral') &&
|
|
286
348
|
value.type === 'string' &&
|
|
287
349
|
ValueGuard.IsString(value.pattern) &&
|
|
288
350
|
value.pattern[0] === '^' &&
|
|
289
351
|
value.pattern[value.pattern.length - 1] === '$');
|
|
290
352
|
}
|
|
353
|
+
/** Returns true if the given value is TThis */
|
|
291
354
|
export function TThis(value) {
|
|
355
|
+
// prettier-ignore
|
|
292
356
|
return (TKindOf(value, 'This') &&
|
|
293
357
|
IsOptionalString(value.$id) &&
|
|
294
358
|
ValueGuard.IsString(value.$ref));
|
|
295
359
|
}
|
|
360
|
+
/** Returns true of this value is TTransform */
|
|
296
361
|
export function TTransform(value) {
|
|
297
362
|
return ValueGuard.IsObject(value) && TransformKind in value;
|
|
298
363
|
}
|
|
364
|
+
/** Returns true if the given value is TTuple */
|
|
299
365
|
export function TTuple(value) {
|
|
366
|
+
// prettier-ignore
|
|
300
367
|
return (TKindOf(value, 'Tuple') &&
|
|
301
368
|
value.type === 'array' &&
|
|
302
369
|
IsOptionalString(value.$id) &&
|
|
303
370
|
ValueGuard.IsNumber(value.minItems) &&
|
|
304
371
|
ValueGuard.IsNumber(value.maxItems) &&
|
|
305
372
|
value.minItems === value.maxItems &&
|
|
306
|
-
((
|
|
373
|
+
(( // empty
|
|
374
|
+
ValueGuard.IsUndefined(value.items) &&
|
|
307
375
|
ValueGuard.IsUndefined(value.additionalItems) &&
|
|
308
376
|
value.minItems === 0) || (ValueGuard.IsArray(value.items) &&
|
|
309
377
|
value.items.every(schema => TSchema(schema)))));
|
|
310
378
|
}
|
|
379
|
+
/** Returns true if the given value is TUndefined */
|
|
311
380
|
export function TUndefined(value) {
|
|
381
|
+
// prettier-ignore
|
|
312
382
|
return (TKindOf(value, 'Undefined') &&
|
|
313
383
|
value.type === 'undefined' &&
|
|
314
384
|
IsOptionalString(value.$id));
|
|
315
385
|
}
|
|
386
|
+
/** Returns true if the given value is TUnion<Literal<string | number>[]> */
|
|
316
387
|
export function TUnionLiteral(value) {
|
|
317
388
|
return TUnion(value) && value.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
|
|
318
389
|
}
|
|
390
|
+
/** Returns true if the given value is TUnion */
|
|
319
391
|
export function TUnion(value) {
|
|
392
|
+
// prettier-ignore
|
|
320
393
|
return (TKindOf(value, 'Union') &&
|
|
321
394
|
IsOptionalString(value.$id) &&
|
|
322
395
|
ValueGuard.IsObject(value) &&
|
|
323
396
|
ValueGuard.IsArray(value.anyOf) &&
|
|
324
397
|
value.anyOf.every(schema => TSchema(schema)));
|
|
325
398
|
}
|
|
399
|
+
/** Returns true if the given value is TUint8Array */
|
|
326
400
|
export function TUint8Array(value) {
|
|
401
|
+
// prettier-ignore
|
|
327
402
|
return (TKindOf(value, 'Uint8Array') &&
|
|
328
403
|
value.type === 'Uint8Array' &&
|
|
329
404
|
IsOptionalString(value.$id) &&
|
|
330
405
|
IsOptionalNumber(value.minByteLength) &&
|
|
331
406
|
IsOptionalNumber(value.maxByteLength));
|
|
332
407
|
}
|
|
408
|
+
/** Returns true if the given value is TUnknown */
|
|
333
409
|
export function TUnknown(value) {
|
|
410
|
+
// prettier-ignore
|
|
334
411
|
return (TKindOf(value, 'Unknown') &&
|
|
335
412
|
IsOptionalString(value.$id));
|
|
336
413
|
}
|
|
414
|
+
/** Returns true if the given value is a raw TUnsafe */
|
|
337
415
|
export function TUnsafe(value) {
|
|
338
416
|
return TKindOf(value, 'Unsafe');
|
|
339
417
|
}
|
|
418
|
+
/** Returns true if the given value is TVoid */
|
|
340
419
|
export function TVoid(value) {
|
|
420
|
+
// prettier-ignore
|
|
341
421
|
return (TKindOf(value, 'Void') &&
|
|
342
422
|
value.type === 'void' &&
|
|
343
423
|
IsOptionalString(value.$id));
|
|
344
424
|
}
|
|
425
|
+
/** Returns true if the given value is TKind */
|
|
345
426
|
export function TKind(value) {
|
|
346
427
|
return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
|
|
347
428
|
}
|
|
429
|
+
/** Returns true if the given value is TSchema */
|
|
348
430
|
export function TSchema(value) {
|
|
431
|
+
// prettier-ignore
|
|
349
432
|
return (ValueGuard.IsObject(value)) && (TAny(value) ||
|
|
350
433
|
TArray(value) ||
|
|
351
434
|
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,56 @@
|
|
|
1
|
+
/** Returns true if this value is an async iterator */
|
|
1
2
|
export function IsAsyncIterator(value) {
|
|
2
3
|
return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
|
|
3
4
|
}
|
|
5
|
+
/** Returns true if this value is an array */
|
|
4
6
|
export function IsArray(value) {
|
|
5
7
|
return Array.isArray(value);
|
|
6
8
|
}
|
|
9
|
+
/** Returns true if this value is bigint */
|
|
7
10
|
export function IsBigInt(value) {
|
|
8
11
|
return typeof value === 'bigint';
|
|
9
12
|
}
|
|
13
|
+
/** Returns true if this value is a boolean */
|
|
10
14
|
export function IsBoolean(value) {
|
|
11
15
|
return typeof value === 'boolean';
|
|
12
16
|
}
|
|
17
|
+
/** Returns true if this value is a Date object */
|
|
13
18
|
export function IsDate(value) {
|
|
14
19
|
return value instanceof globalThis.Date;
|
|
15
20
|
}
|
|
21
|
+
/** Returns true if this value is a function */
|
|
16
22
|
export function IsFunction(value) {
|
|
17
23
|
return typeof value === 'function';
|
|
18
24
|
}
|
|
25
|
+
/** Returns true if this value is an iterator */
|
|
19
26
|
export function IsIterator(value) {
|
|
20
27
|
return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
|
|
21
28
|
}
|
|
29
|
+
/** Returns true if this value is null */
|
|
22
30
|
export function IsNull(value) {
|
|
23
31
|
return value === null;
|
|
24
32
|
}
|
|
33
|
+
/** Returns true if this value is number */
|
|
25
34
|
export function IsNumber(value) {
|
|
26
35
|
return typeof value === 'number';
|
|
27
36
|
}
|
|
37
|
+
/** Returns true if this value is an object */
|
|
28
38
|
export function IsObject(value) {
|
|
29
39
|
return typeof value === 'object' && value !== null;
|
|
30
40
|
}
|
|
41
|
+
/** Returns true if this value is string */
|
|
31
42
|
export function IsString(value) {
|
|
32
43
|
return typeof value === 'string';
|
|
33
44
|
}
|
|
45
|
+
/** Returns true if this value is symbol */
|
|
34
46
|
export function IsSymbol(value) {
|
|
35
47
|
return typeof value === 'symbol';
|
|
36
48
|
}
|
|
49
|
+
/** Returns true if this value is a Uint8Array */
|
|
37
50
|
export function IsUint8Array(value) {
|
|
38
51
|
return value instanceof globalThis.Uint8Array;
|
|
39
52
|
}
|
|
53
|
+
/** Returns true if this value is undefined */
|
|
40
54
|
export function IsUndefined(value) {
|
|
41
55
|
return value === undefined;
|
|
42
56
|
}
|
|
@@ -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,10 +1,10 @@
|
|
|
1
1
|
import type { TSchema, SchemaOptions } from '../schema/index.mjs';
|
|
2
2
|
import { type TProperties } from '../object/index.mjs';
|
|
3
|
-
import { type
|
|
3
|
+
import { type TIndex } from './indexed.mjs';
|
|
4
4
|
import { type TMappedResult, type TMappedKey } from '../mapped/index.mjs';
|
|
5
5
|
import { Evaluate } from '../helpers/index.mjs';
|
|
6
6
|
type MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey> = {
|
|
7
|
-
[_ in K]:
|
|
7
|
+
[_ in K]: TIndex<T, [K]>;
|
|
8
8
|
};
|
|
9
9
|
declare function MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey>(T: T, K: K, options: SchemaOptions): MappedIndexPropertyKey<T, K>;
|
|
10
10
|
type MappedIndexPropertyKeys<T extends TSchema, K extends PropertyKey[]> = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? MappedIndexPropertyKey<T, L> & MappedIndexPropertyKeys<T, R> : {});
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Index } from './indexed.mjs';
|
|
2
2
|
import { MappedResult } from '../mapped/index.mjs';
|
|
3
|
+
// prettier-ignore
|
|
3
4
|
function MappedIndexPropertyKey(T, K, options) {
|
|
4
|
-
|
|
5
|
+
// todo: propogate options into index result. This type looks like it
|
|
6
|
+
// could use a clean up, possibly inlining it into indexed.ts to
|
|
7
|
+
// bring it inline with other mapping types.
|
|
8
|
+
return { [K]: Index(T, [K], options) };
|
|
5
9
|
}
|
|
10
|
+
// prettier-ignore
|
|
6
11
|
function MappedIndexPropertyKeys(T, K, options) {
|
|
7
12
|
const [L, ...R] = K;
|
|
8
13
|
return (K.length > 0
|
|
9
|
-
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) }
|
|
14
|
+
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) } // TS 5.4-dev
|
|
10
15
|
: {});
|
|
11
16
|
}
|
|
17
|
+
// prettier-ignore
|
|
12
18
|
function MappedIndexProperties(T, K, options) {
|
|
13
19
|
return MappedIndexPropertyKeys(T, K.keys, options);
|
|
14
20
|
}
|
|
21
|
+
// prettier-ignore
|
|
15
22
|
export function IndexFromMappedKey(T, K, options) {
|
|
16
23
|
const P = MappedIndexProperties(T, K, options);
|
|
17
24
|
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 {};
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { TemplateLiteralParseExact, IsTemplateLiteralFinite, TemplateLiteralToUnion } from '../template-literal/index.mjs';
|
|
2
|
+
// ------------------------------------------------------------------
|
|
3
|
+
// TypeGuard
|
|
4
|
+
// ------------------------------------------------------------------
|
|
5
|
+
// prettier-ignore
|
|
2
6
|
import { TTemplateLiteral as IsTemplateLiteralType, TUnionLiteral as IsUnionLiteralType, TUnion as IsUnionType, TLiteral as IsLiteralType, TNumber as IsNumberType, TInteger as IsIntegerType } from '../guard/type.mjs';
|
|
7
|
+
// prettier-ignore
|
|
3
8
|
function FromTemplateLiteral(T) {
|
|
4
9
|
const E = TemplateLiteralParseExact(T.pattern);
|
|
5
10
|
const F = IsTemplateLiteralFinite(E);
|
|
@@ -10,15 +15,19 @@ function FromTemplateLiteral(T) {
|
|
|
10
15
|
: []
|
|
11
16
|
: []);
|
|
12
17
|
}
|
|
18
|
+
// prettier-ignore
|
|
13
19
|
function FromUnion(T) {
|
|
14
20
|
const [L, ...R] = T;
|
|
15
21
|
return (T.length > 0
|
|
16
22
|
? [...IndexPropertyKeys(L), ...FromUnion(R)]
|
|
17
23
|
: []);
|
|
18
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
19
26
|
function FromLiteral(T) {
|
|
20
27
|
return ([T.toString()]);
|
|
21
28
|
}
|
|
29
|
+
/** Returns a tuple of PropertyKeys derived from the given TSchema */
|
|
30
|
+
// prettier-ignore
|
|
22
31
|
export function IndexPropertyKeys(T) {
|
|
23
32
|
return [...new Set((IsTemplateLiteralType(T) ? FromTemplateLiteral(T) :
|
|
24
33
|
IsUnionType(T) ? FromUnion(T.anyOf) :
|