@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
4
|
if (k2 === undefined) k2 = k;
|
|
4
5
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -16,5 +17,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
18
|
__exportStar(require("./indexed-from-mapped-key"), exports);
|
|
18
19
|
__exportStar(require("./indexed-property-keys"), exports);
|
|
19
|
-
__exportStar(require("./indexed-result"), exports);
|
|
20
20
|
__exportStar(require("./indexed"), exports);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import { type TProperties } from '../object/index';
|
|
3
|
-
import { type
|
|
3
|
+
import { type TIndex } from './indexed';
|
|
4
4
|
import { type TMappedResult, type TMappedKey } from '../mapped/index';
|
|
5
5
|
import { Evaluate } from '../helpers/index';
|
|
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,20 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IndexFromMappedKey = void 0;
|
|
4
|
-
const
|
|
5
|
+
const indexed_1 = require("./indexed");
|
|
5
6
|
const index_1 = require("../mapped/index");
|
|
7
|
+
// prettier-ignore
|
|
6
8
|
function MappedIndexPropertyKey(T, K, options) {
|
|
7
|
-
|
|
9
|
+
// todo: propogate options into index result. This type looks like it
|
|
10
|
+
// could use a clean up, possibly inlining it into indexed.ts to
|
|
11
|
+
// bring it inline with other mapping types.
|
|
12
|
+
return { [K]: (0, indexed_1.Index)(T, [K], options) };
|
|
8
13
|
}
|
|
14
|
+
// prettier-ignore
|
|
9
15
|
function MappedIndexPropertyKeys(T, K, options) {
|
|
10
16
|
const [L, ...R] = K;
|
|
11
17
|
return (K.length > 0
|
|
12
|
-
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) }
|
|
18
|
+
? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) } // TS 5.4-dev
|
|
13
19
|
: {});
|
|
14
20
|
}
|
|
21
|
+
// prettier-ignore
|
|
15
22
|
function MappedIndexProperties(T, K, options) {
|
|
16
23
|
return MappedIndexPropertyKeys(T, K.keys, options);
|
|
17
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
18
26
|
function IndexFromMappedKey(T, K, options) {
|
|
19
27
|
const P = MappedIndexProperties(T, K, options);
|
|
20
28
|
return (0, index_1.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,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IndexPropertyKeys = void 0;
|
|
4
5
|
const index_1 = require("../template-literal/index");
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
// TypeGuard
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// prettier-ignore
|
|
5
10
|
const type_1 = require("../guard/type");
|
|
11
|
+
// prettier-ignore
|
|
6
12
|
function FromTemplateLiteral(T) {
|
|
7
13
|
const E = (0, index_1.TemplateLiteralParseExact)(T.pattern);
|
|
8
14
|
const F = (0, index_1.IsTemplateLiteralFinite)(E);
|
|
@@ -13,15 +19,19 @@ function FromTemplateLiteral(T) {
|
|
|
13
19
|
: []
|
|
14
20
|
: []);
|
|
15
21
|
}
|
|
22
|
+
// prettier-ignore
|
|
16
23
|
function FromUnion(T) {
|
|
17
24
|
const [L, ...R] = T;
|
|
18
25
|
return (T.length > 0
|
|
19
26
|
? [...IndexPropertyKeys(L), ...FromUnion(R)]
|
|
20
27
|
: []);
|
|
21
28
|
}
|
|
29
|
+
// prettier-ignore
|
|
22
30
|
function FromLiteral(T) {
|
|
23
31
|
return ([T.toString()]);
|
|
24
32
|
}
|
|
33
|
+
/** Returns a tuple of PropertyKeys derived from the given TSchema */
|
|
34
|
+
// prettier-ignore
|
|
25
35
|
function IndexPropertyKeys(T) {
|
|
26
36
|
return [...new Set(((0, type_1.TTemplateLiteral)(T) ? FromTemplateLiteral(T) :
|
|
27
37
|
(0, type_1.TUnion)(T) ? FromUnion(T.anyOf) :
|
|
@@ -1,9 +1,45 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type
|
|
1
|
+
import { type TSchema, SchemaOptions } from '../schema/index';
|
|
2
|
+
import { type TObject, type TProperties } from '../object/index';
|
|
3
|
+
import { type Assert } from '../helpers/index';
|
|
4
|
+
import { type TNever } from '../never/index';
|
|
5
|
+
import { type TRecursive } from '../recursive/index';
|
|
6
|
+
import { type TIntersect } from '../intersect/index';
|
|
7
|
+
import { type TMappedKey } from '../mapped/index';
|
|
8
|
+
import { type TUnion } from '../union/index';
|
|
9
|
+
import { type TTuple } from '../tuple/index';
|
|
10
|
+
import { type TArray } from '../array/index';
|
|
11
|
+
import { IntersectEvaluated } from '../intersect/index';
|
|
12
|
+
import { UnionEvaluated } from '../union/index';
|
|
3
13
|
import { type TIndexPropertyKeys } from './indexed-property-keys';
|
|
4
14
|
import { type TIndexFromMappedKey } from './indexed-from-mapped-key';
|
|
5
|
-
|
|
6
|
-
|
|
15
|
+
type FromRest<T extends TSchema[], K extends PropertyKey> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [FromKey<L, K>, ...FromRest<R, K>] : []);
|
|
16
|
+
declare function FromRest<T extends TSchema[], K extends PropertyKey>(T: [...T], K: K): FromRest<T, K>;
|
|
17
|
+
type FromIntersectRest<T extends TSchema[]> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TNever ? [...FromIntersectRest<R>] : [L, ...FromIntersectRest<R>] : []);
|
|
18
|
+
declare function FromIntersectRest<T extends TSchema[]>(T: [...T]): FromIntersectRest<T>;
|
|
19
|
+
type FromIntersect<T extends TSchema[], K extends PropertyKey> = (IntersectEvaluated<FromIntersectRest<FromRest<T, K>>>);
|
|
20
|
+
declare function FromIntersect<T extends TSchema[], K extends PropertyKey>(T: [...T], K: K): FromIntersect<T, K>;
|
|
21
|
+
type FromUnionRest<T extends TSchema[], S = T> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TNever ? [] : FromUnionRest<R, S> : S);
|
|
22
|
+
declare function FromUnionRest<T extends TSchema[]>(T: [...T], S?: [...T]): FromUnionRest<T>;
|
|
23
|
+
type FromUnion<T extends TSchema[], K extends PropertyKey> = (UnionEvaluated<FromUnionRest<FromRest<T, K>>>);
|
|
24
|
+
declare function FromUnion<T extends TSchema[], K extends PropertyKey>(T: [...T], K: K): FromUnion<T, K>;
|
|
25
|
+
type FromTuple<T extends TSchema[], K extends PropertyKey> = (K extends keyof T ? T[K] : K extends '[number]' ? UnionEvaluated<T> : TNever);
|
|
26
|
+
declare function FromTuple<T extends TSchema[], K extends PropertyKey>(T: [...T], K: K): FromTuple<T, K>;
|
|
27
|
+
type FromArray<T extends TSchema, K extends PropertyKey> = (K extends '[number]' ? T : TNever);
|
|
28
|
+
declare function FromArray<T extends TSchema, K extends PropertyKey>(T: T, K: K): FromArray<T, K>;
|
|
29
|
+
type AssertPropertyKey<T> = Assert<T, string | number>;
|
|
30
|
+
type FromProperty<T extends TProperties, K extends PropertyKey> = (K extends keyof T ? T[K] : `${AssertPropertyKey<K>}` extends `${AssertPropertyKey<keyof T>}` ? T[AssertPropertyKey<K>] : TNever);
|
|
31
|
+
declare function FromProperty<T extends TProperties, K extends PropertyKey>(T: T, K: K): FromProperty<T, K>;
|
|
32
|
+
type FromKey<T extends TSchema, K extends PropertyKey> = (T extends TRecursive<infer S> ? FromKey<S, K> : T extends TIntersect<infer S> ? FromIntersect<S, K> : T extends TUnion<infer S> ? FromUnion<S, K> : T extends TTuple<infer S> ? FromTuple<S, K> : T extends TArray<infer S> ? FromArray<S, K> : T extends TObject<infer S> ? FromProperty<S, K> : TNever);
|
|
33
|
+
declare function FromKey<T extends TSchema, K extends PropertyKey>(T: T, K: K): FromKey<T, K>;
|
|
34
|
+
type FromKeys<T extends TSchema, K extends PropertyKey[]> = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? [FromKey<T, L>, ...FromKeys<T, R>] : []);
|
|
35
|
+
declare function FromKeys<T extends TSchema, K extends PropertyKey[]>(T: T, K: [...K]): FromKeys<T, K>;
|
|
36
|
+
type FromSchema<T extends TSchema, K extends PropertyKey[]> = (UnionEvaluated<FromKeys<T, K>>);
|
|
37
|
+
declare function FromSchema<T extends TSchema, K extends PropertyKey[]>(T: T, K: [...K]): FromSchema<T, K>;
|
|
38
|
+
export type TIndex<T extends TSchema, K extends PropertyKey[]> = (FromSchema<T, K>);
|
|
39
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
7
40
|
export declare function Index<T extends TSchema, K extends TMappedKey>(T: T, K: K, options?: SchemaOptions): TIndexFromMappedKey<T, K>;
|
|
41
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
8
42
|
export declare function Index<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TIndex<T, I>;
|
|
43
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
9
44
|
export declare function Index<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TIndex<T, K>;
|
|
45
|
+
export {};
|
|
@@ -1,14 +1,94 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Index = void 0;
|
|
4
|
-
const
|
|
5
|
+
const index_1 = require("../never/index");
|
|
6
|
+
const index_2 = require("../intersect/index");
|
|
7
|
+
const index_3 = require("../union/index");
|
|
8
|
+
const type_1 = require("../clone/type");
|
|
5
9
|
const indexed_property_keys_1 = require("./indexed-property-keys");
|
|
6
10
|
const indexed_from_mapped_key_1 = require("./indexed-from-mapped-key");
|
|
7
|
-
|
|
11
|
+
// ------------------------------------------------------------------
|
|
12
|
+
// TypeGuard
|
|
13
|
+
// ------------------------------------------------------------------
|
|
14
|
+
// prettier-ignore
|
|
8
15
|
const type_2 = require("../guard/type");
|
|
16
|
+
// prettier-ignore
|
|
17
|
+
function FromRest(T, K) {
|
|
18
|
+
const [L, ...R] = T;
|
|
19
|
+
return (T.length > 0
|
|
20
|
+
? [FromKey(L, K), ...FromRest(R, K)]
|
|
21
|
+
: []);
|
|
22
|
+
}
|
|
23
|
+
// prettier-ignore
|
|
24
|
+
function FromIntersectRest(T) {
|
|
25
|
+
const [L, ...R] = T;
|
|
26
|
+
return (T.length > 0
|
|
27
|
+
? (0, type_2.TNever)(L)
|
|
28
|
+
? [...FromIntersectRest(R)]
|
|
29
|
+
: [L, ...FromIntersectRest(R)]
|
|
30
|
+
: []);
|
|
31
|
+
}
|
|
32
|
+
// prettier-ignore
|
|
33
|
+
function FromIntersect(T, K) {
|
|
34
|
+
return ((0, index_2.IntersectEvaluated)(FromIntersectRest(FromRest(T, K))));
|
|
35
|
+
}
|
|
36
|
+
// prettier-ignore
|
|
37
|
+
function FromUnionRest(T, S = T) {
|
|
38
|
+
const [L, ...R] = T;
|
|
39
|
+
return (T.length > 0
|
|
40
|
+
? (0, type_2.TNever)(L)
|
|
41
|
+
? []
|
|
42
|
+
: FromUnionRest(R, S)
|
|
43
|
+
: S);
|
|
44
|
+
}
|
|
45
|
+
// prettier-ignore
|
|
46
|
+
function FromUnion(T, K) {
|
|
47
|
+
return ((0, index_3.UnionEvaluated)(FromUnionRest(FromRest(T, K))));
|
|
48
|
+
}
|
|
49
|
+
// prettier-ignore
|
|
50
|
+
function FromTuple(T, K) {
|
|
51
|
+
return (K in T ? T[K] :
|
|
52
|
+
K === '[number]' ? (0, index_3.UnionEvaluated)(T) :
|
|
53
|
+
(0, index_1.Never)());
|
|
54
|
+
}
|
|
55
|
+
// prettier-ignore
|
|
56
|
+
function FromArray(T, K) {
|
|
57
|
+
return (K === '[number]'
|
|
58
|
+
? T
|
|
59
|
+
: (0, index_1.Never)());
|
|
60
|
+
}
|
|
61
|
+
// prettier-ignore
|
|
62
|
+
function FromProperty(T, K) {
|
|
63
|
+
return (K in T
|
|
64
|
+
? T[K]
|
|
65
|
+
: (0, index_1.Never)());
|
|
66
|
+
}
|
|
67
|
+
// prettier-ignore
|
|
68
|
+
function FromKey(T, K) {
|
|
69
|
+
return ((0, type_2.TIntersect)(T) ? FromIntersect(T.allOf, K) :
|
|
70
|
+
(0, type_2.TUnion)(T) ? FromUnion(T.anyOf, K) :
|
|
71
|
+
(0, type_2.TTuple)(T) ? FromTuple(T.items ?? [], K) :
|
|
72
|
+
(0, type_2.TArray)(T) ? FromArray(T.items, K) :
|
|
73
|
+
(0, type_2.TObject)(T) ? FromProperty(T.properties, K) :
|
|
74
|
+
(0, index_1.Never)());
|
|
75
|
+
}
|
|
76
|
+
// prettier-ignore
|
|
77
|
+
function FromKeys(T, K) {
|
|
78
|
+
const [L, ...R] = K;
|
|
79
|
+
return (K.length > 0
|
|
80
|
+
? [FromKey(T, L), ...FromKeys(T, R)]
|
|
81
|
+
: []);
|
|
82
|
+
}
|
|
83
|
+
// prettier-ignore
|
|
84
|
+
function FromSchema(T, K) {
|
|
85
|
+
return ((0, index_3.UnionEvaluated)(FromKeys(T, K)));
|
|
86
|
+
}
|
|
87
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
9
88
|
function Index(T, K, options = {}) {
|
|
89
|
+
// prettier-ignore
|
|
10
90
|
return ((0, type_2.TMappedKey)(K) ? (0, type_1.CloneType)((0, indexed_from_mapped_key_1.IndexFromMappedKey)(T, K, options)) :
|
|
11
|
-
(0, type_2.TSchema)(K) ? (0,
|
|
12
|
-
(0,
|
|
91
|
+
(0, type_2.TSchema)(K) ? (0, type_1.CloneType)(FromSchema(T, (0, indexed_property_keys_1.IndexPropertyKeys)(K)), options) :
|
|
92
|
+
(0, type_1.CloneType)(FromSchema(T, K), options));
|
|
13
93
|
}
|
|
14
94
|
exports.Index = Index;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import type { TConstructor } from '../constructor/index';
|
|
3
3
|
export type TInstanceType<T extends TConstructor<TSchema[], TSchema>> = T['returns'];
|
|
4
|
+
/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
|
|
4
5
|
export declare function InstanceType<T extends TConstructor<any[], any>>(schema: T, options?: SchemaOptions): TInstanceType<T>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.InstanceType = void 0;
|
|
4
5
|
const type_1 = require("../clone/type");
|
|
6
|
+
/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
|
|
5
7
|
function InstanceType(schema, options = {}) {
|
|
6
8
|
return (0, type_1.CloneType)(schema.returns, options);
|
|
7
9
|
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IntersectCreate = void 0;
|
|
4
5
|
const index_1 = require("../symbols/index");
|
|
5
6
|
const type_1 = require("../clone/type");
|
|
7
|
+
// ------------------------------------------------------------------
|
|
8
|
+
// TypeGuard
|
|
9
|
+
// ------------------------------------------------------------------
|
|
10
|
+
// prettier-ignore
|
|
6
11
|
const type_2 = require("../guard/type");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// IntersectCreate
|
|
14
|
+
// ------------------------------------------------------------------
|
|
15
|
+
// prettier-ignore
|
|
7
16
|
function IntersectCreate(T, options) {
|
|
8
17
|
const allObjects = T.every((schema) => (0, type_2.TObject)(schema));
|
|
9
18
|
const clonedUnevaluatedProperties = (0, type_2.TSchema)(options.unevaluatedProperties)
|
|
@@ -12,5 +12,6 @@ declare function RemoveOptionalFromType<T extends TSchema>(T: T): RemoveOptional
|
|
|
12
12
|
type ResolveIntersect<T extends TSchema[]> = (IsIntersectOptional<T> extends true ? TOptional<TIntersect<RemoveOptionalFromRest<T>>> : TIntersect<RemoveOptionalFromRest<T>>);
|
|
13
13
|
declare function ResolveIntersect<T extends TSchema[]>(T: [...T], options: SchemaOptions): ResolveIntersect<T>;
|
|
14
14
|
export type IntersectEvaluated<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : ResolveIntersect<T>);
|
|
15
|
+
/** `[Json]` Creates an evaluated Intersect type */
|
|
15
16
|
export declare function IntersectEvaluated<T extends TSchema[], R = IntersectEvaluated<T>>(T: [...T], options?: IntersectOptions): R;
|
|
16
17
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IntersectEvaluated = void 0;
|
|
4
5
|
const index_1 = require("../symbols/index");
|
|
@@ -7,7 +8,12 @@ const index_2 = require("../discard/index");
|
|
|
7
8
|
const index_3 = require("../never/index");
|
|
8
9
|
const index_4 = require("../optional/index");
|
|
9
10
|
const intersect_create_1 = require("./intersect-create");
|
|
11
|
+
// ------------------------------------------------------------------
|
|
12
|
+
// TypeGuard
|
|
13
|
+
// ------------------------------------------------------------------
|
|
14
|
+
// prettier-ignore
|
|
10
15
|
const type_2 = require("../guard/type");
|
|
16
|
+
// prettier-ignore
|
|
11
17
|
function IsIntersectOptional(T) {
|
|
12
18
|
const [L, ...R] = T;
|
|
13
19
|
return (T.length > 0
|
|
@@ -16,17 +22,21 @@ function IsIntersectOptional(T) {
|
|
|
16
22
|
: false
|
|
17
23
|
: true);
|
|
18
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
19
26
|
function RemoveOptionalFromRest(T) {
|
|
20
27
|
return (T.map(T => RemoveOptionalFromType(T)));
|
|
21
28
|
}
|
|
29
|
+
// prettier-ignore
|
|
22
30
|
function RemoveOptionalFromType(T) {
|
|
23
31
|
return ((0, index_2.Discard)(T, [index_1.OptionalKind]));
|
|
24
32
|
}
|
|
33
|
+
// prettier-ignore
|
|
25
34
|
function ResolveIntersect(T, options) {
|
|
26
35
|
return (IsIntersectOptional(T)
|
|
27
36
|
? (0, index_4.Optional)((0, intersect_create_1.IntersectCreate)(RemoveOptionalFromRest(T), options))
|
|
28
37
|
: (0, intersect_create_1.IntersectCreate)(RemoveOptionalFromRest(T), options));
|
|
29
38
|
}
|
|
39
|
+
/** `[Json]` Creates an evaluated Intersect type */
|
|
30
40
|
function IntersectEvaluated(T, options = {}) {
|
|
31
41
|
if (T.length === 0)
|
|
32
42
|
return (0, index_3.Never)(options);
|
|
@@ -2,4 +2,5 @@ import type { TSchema } from '../schema/index';
|
|
|
2
2
|
import { type TNever } from '../never/index';
|
|
3
3
|
import { TIntersect, IntersectOptions } from './intersect-type';
|
|
4
4
|
export type Intersect<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : TIntersect<T>);
|
|
5
|
+
/** `[Json]` Creates an evaluated Intersect type */
|
|
5
6
|
export declare function Intersect<T extends TSchema[]>(T: [...T], options?: IntersectOptions): Intersect<T>;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Intersect = void 0;
|
|
4
5
|
const type_1 = require("../clone/type");
|
|
5
6
|
const index_1 = require("../never/index");
|
|
6
7
|
const intersect_create_1 = require("./intersect-create");
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// TypeGuard
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// prettier-ignore
|
|
7
12
|
const type_2 = require("../guard/type");
|
|
13
|
+
/** `[Json]` Creates an evaluated Intersect type */
|
|
8
14
|
function Intersect(T, options = {}) {
|
|
9
15
|
if (T.length === 0)
|
|
10
16
|
return (0, index_1.Never)(options);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import { TIntrinsic } from './intrinsic';
|
|
3
3
|
export type TCapitalize<T extends TSchema> = TIntrinsic<T, 'Capitalize'>;
|
|
4
|
+
/** `[Json]` Intrinsic function to Capitalize LiteralString types */
|
|
4
5
|
export declare function Capitalize<T extends TSchema>(T: T, options?: SchemaOptions): TCapitalize<T>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Capitalize = void 0;
|
|
4
5
|
const intrinsic_1 = require("./intrinsic");
|
|
6
|
+
/** `[Json]` Intrinsic function to Capitalize LiteralString types */
|
|
5
7
|
function Capitalize(T, options = {}) {
|
|
6
8
|
return (0, intrinsic_1.Intrinsic)(T, 'Capitalize', options);
|
|
7
9
|
}
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IntrinsicFromMappedKey = void 0;
|
|
4
5
|
const index_1 = require("../mapped/index");
|
|
5
6
|
const intrinsic_1 = require("./intrinsic");
|
|
6
7
|
const index_2 = require("../literal/index");
|
|
8
|
+
// prettier-ignore
|
|
7
9
|
function MappedIntrinsicPropertyKey(K, M, options) {
|
|
8
10
|
return {
|
|
9
11
|
[K]: (0, intrinsic_1.Intrinsic)((0, index_2.Literal)(K), M, options)
|
|
10
12
|
};
|
|
11
13
|
}
|
|
14
|
+
// prettier-ignore
|
|
12
15
|
function MappedIntrinsicPropertyKeys(K, M, options) {
|
|
13
16
|
const [L, ...R] = K;
|
|
14
17
|
return (K.length > 0
|
|
15
18
|
? { ...MappedIntrinsicPropertyKey(L, M, options), ...MappedIntrinsicPropertyKeys(R, M, options) }
|
|
16
19
|
: {});
|
|
17
20
|
}
|
|
21
|
+
// prettier-ignore
|
|
18
22
|
function MappedIntrinsicProperties(T, M, options) {
|
|
19
23
|
return MappedIntrinsicPropertyKeys(T['keys'], M, options);
|
|
20
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
21
26
|
function IntrinsicFromMappedKey(T, M, options) {
|
|
22
27
|
const P = MappedIntrinsicProperties(T, M, options);
|
|
23
28
|
return (0, index_1.MappedResult)(P);
|
|
@@ -12,6 +12,8 @@ declare function FromLiteralValue(value: TLiteralValue, mode: IntrinsicMode): st
|
|
|
12
12
|
type FromRest<T extends TSchema[], M extends IntrinsicMode> = T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [TIntrinsic<L, M>, ...FromRest<R, M>] : [];
|
|
13
13
|
declare function FromRest<T extends TSchema[], M extends IntrinsicMode>(T: [...T], mode: M): FromRest<T, M>;
|
|
14
14
|
export type TIntrinsic<T extends TSchema, M extends IntrinsicMode> = T extends TMappedKey ? TIntrinsicFromMappedKey<T, M> : T extends TTemplateLiteral<infer S> ? TTemplateLiteral<FromTemplateLiteral<S, M>> : T extends TUnion<infer S> ? TUnion<FromRest<S, M>> : T extends TLiteral<infer S> ? TLiteral<FromLiteralValue<S, M>> : T;
|
|
15
|
+
/** Applies an intrinsic string manipulation to the given type. */
|
|
15
16
|
export declare function Intrinsic<T extends TMappedKey, M extends IntrinsicMode>(schema: T, mode: M, options?: SchemaOptions): TIntrinsicFromMappedKey<T, M>;
|
|
17
|
+
/** Applies an intrinsic string manipulation to the given type. */
|
|
16
18
|
export declare function Intrinsic<T extends TSchema, M extends IntrinsicMode>(schema: T, mode: M, options?: SchemaOptions): TIntrinsic<T, M>;
|
|
17
19
|
export {};
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Intrinsic = void 0;
|
|
4
5
|
const index_1 = require("../template-literal/index");
|
|
5
6
|
const intrinsic_from_mapped_key_1 = require("./intrinsic-from-mapped-key");
|
|
6
7
|
const index_2 = require("../literal/index");
|
|
7
8
|
const index_3 = require("../union/index");
|
|
9
|
+
// ------------------------------------------------------------------
|
|
10
|
+
// TypeGuard
|
|
11
|
+
// ------------------------------------------------------------------
|
|
12
|
+
// prettier-ignore
|
|
8
13
|
const type_1 = require("../guard/type");
|
|
14
|
+
// ------------------------------------------------------------------
|
|
15
|
+
// Apply
|
|
16
|
+
// ------------------------------------------------------------------
|
|
9
17
|
function ApplyUncapitalize(value) {
|
|
10
18
|
const [first, rest] = [value.slice(0, 1), value.slice(1)];
|
|
11
19
|
return [first.toLowerCase(), rest].join('');
|
|
@@ -21,6 +29,8 @@ function ApplyLowercase(value) {
|
|
|
21
29
|
return value.toLowerCase();
|
|
22
30
|
}
|
|
23
31
|
function FromTemplateLiteral(schema, mode, options) {
|
|
32
|
+
// note: template literals require special runtime handling as they are encoded in string patterns.
|
|
33
|
+
// This diverges from the mapped type which would otherwise map on the template literal kind.
|
|
24
34
|
const expression = (0, index_1.TemplateLiteralParseExact)(schema.pattern);
|
|
25
35
|
const finite = (0, index_1.IsTemplateLiteralFinite)(expression);
|
|
26
36
|
if (!finite)
|
|
@@ -31,6 +41,7 @@ function FromTemplateLiteral(schema, mode, options) {
|
|
|
31
41
|
const union = (0, index_3.Union)(mapped);
|
|
32
42
|
return (0, index_1.TemplateLiteral)([union], options);
|
|
33
43
|
}
|
|
44
|
+
// prettier-ignore
|
|
34
45
|
function FromLiteralValue(value, mode) {
|
|
35
46
|
return (typeof value === 'string' ? (mode === 'Uncapitalize' ? ApplyUncapitalize(value) :
|
|
36
47
|
mode === 'Capitalize' ? ApplyCapitalize(value) :
|
|
@@ -42,8 +53,13 @@ function FromRest(T, mode) {
|
|
|
42
53
|
const [L, ...R] = T;
|
|
43
54
|
return (T.length > 0 ? [Intrinsic(L, mode), ...FromRest(R, mode)] : []);
|
|
44
55
|
}
|
|
56
|
+
/** Applies an intrinsic string manipulation to the given type. */
|
|
45
57
|
function Intrinsic(schema, mode, options = {}) {
|
|
46
|
-
|
|
58
|
+
// prettier-ignore
|
|
59
|
+
return (
|
|
60
|
+
// Intrinsic-Mapped-Inference
|
|
61
|
+
(0, type_1.TMappedKey)(schema) ? (0, intrinsic_from_mapped_key_1.IntrinsicFromMappedKey)(schema, mode, options) :
|
|
62
|
+
// Standard-Inference
|
|
47
63
|
(0, type_1.TTemplateLiteral)(schema) ? FromTemplateLiteral(schema, mode, schema) :
|
|
48
64
|
(0, type_1.TUnion)(schema) ? (0, index_3.Union)(FromRest(schema.anyOf, mode), options) :
|
|
49
65
|
(0, type_1.TLiteral)(schema) ? (0, index_2.Literal)(FromLiteralValue(schema.const, mode), options) :
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import { TIntrinsic } from './intrinsic';
|
|
3
3
|
export type TLowercase<T extends TSchema> = TIntrinsic<T, 'Lowercase'>;
|
|
4
|
+
/** `[Json]` Intrinsic function to Lowercase LiteralString types */
|
|
4
5
|
export declare function Lowercase<T extends TSchema>(T: T, options?: SchemaOptions): TLowercase<T>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Lowercase = void 0;
|
|
4
5
|
const intrinsic_1 = require("./intrinsic");
|
|
6
|
+
/** `[Json]` Intrinsic function to Lowercase LiteralString types */
|
|
5
7
|
function Lowercase(T, options = {}) {
|
|
6
8
|
return (0, intrinsic_1.Intrinsic)(T, 'Lowercase', options);
|
|
7
9
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import { TIntrinsic } from './intrinsic';
|
|
3
3
|
export type TUncapitalize<T extends TSchema> = TIntrinsic<T, 'Uncapitalize'>;
|
|
4
|
+
/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
|
|
4
5
|
export declare function Uncapitalize<T extends TSchema>(T: T, options?: SchemaOptions): TUncapitalize<T>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Uncapitalize = void 0;
|
|
4
5
|
const intrinsic_1 = require("./intrinsic");
|
|
6
|
+
/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
|
|
5
7
|
function Uncapitalize(T, options = {}) {
|
|
6
8
|
return (0, intrinsic_1.Intrinsic)(T, 'Uncapitalize', options);
|
|
7
9
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import { TIntrinsic } from './intrinsic';
|
|
3
3
|
export type TUppercase<T extends TSchema> = TIntrinsic<T, 'Uppercase'>;
|
|
4
|
+
/** `[Json]` Intrinsic function to Uppercase LiteralString types */
|
|
4
5
|
export declare function Uppercase<T extends TSchema>(T: T, options?: SchemaOptions): TUppercase<T>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Uppercase = void 0;
|
|
4
5
|
const intrinsic_1 = require("./intrinsic");
|
|
6
|
+
/** `[Json]` Intrinsic function to Uppercase LiteralString types */
|
|
5
7
|
function Uppercase(T, options = {}) {
|
|
6
8
|
return (0, intrinsic_1.Intrinsic)(T, 'Uppercase', options);
|
|
7
9
|
}
|