@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
|
@@ -16,7 +16,7 @@ type FromTemplateLiteralKeyFinite<K extends TTemplateLiteral, T extends TSchema,
|
|
|
16
16
|
[_ in I]: T;
|
|
17
17
|
}>>>);
|
|
18
18
|
type FromTemplateLiteralKey<K extends TTemplateLiteral, T extends TSchema> = IsTemplateLiteralFinite<K> extends false ? FromTemplateLiteralKeyInfinite<K, T> : FromTemplateLiteralKeyFinite<K, T>;
|
|
19
|
-
declare function FromTemplateLiteralKey<K extends TTemplateLiteral, T extends TSchema>(K: K, T: T): FromTemplateLiteralKey<K, T>;
|
|
19
|
+
declare function FromTemplateLiteralKey<K extends TTemplateLiteral, T extends TSchema>(K: K, T: T, options: ObjectOptions): FromTemplateLiteralKey<K, T>;
|
|
20
20
|
type FromEnumKey<K extends Record<string, string | number>, T extends TSchema> = Ensure<TObject<{
|
|
21
21
|
[_ in K[keyof K]]: T;
|
|
22
22
|
}>>;
|
|
@@ -28,26 +28,28 @@ type FromUnionKeyLiteralNumber<K extends TLiteral<number>, T extends TSchema> =
|
|
|
28
28
|
};
|
|
29
29
|
type FromUnionKeyRest<K extends TSchema[], T extends TSchema> = K extends [infer L extends TSchema, ...infer R extends TSchema[]] ? (L extends TUnion<infer S> ? FromUnionKeyRest<S, T> & FromUnionKeyRest<R, T> : L extends TLiteral<string> ? FromUnionKeyLiteralString<L, T> & FromUnionKeyRest<R, T> : L extends TLiteral<number> ? FromUnionKeyLiteralNumber<L, T> & FromUnionKeyRest<R, T> : {}) : {};
|
|
30
30
|
type FromUnionKey<K extends TSchema[], T extends TSchema, P extends TProperties = FromUnionKeyRest<K, T>> = (Ensure<TObject<P>>);
|
|
31
|
-
declare function FromUnionKey<K extends TSchema[], T extends TSchema>(K: K, T: T): FromUnionKey<K, T>;
|
|
31
|
+
declare function FromUnionKey<K extends TSchema[], T extends TSchema>(K: K, T: T, options: ObjectOptions): FromUnionKey<K, T>;
|
|
32
32
|
type FromLiteralKey<K extends TLiteralValue, T extends TSchema> = (Ensure<TObject<{
|
|
33
33
|
[_ in Assert<K, PropertyKey>]: T;
|
|
34
34
|
}>>);
|
|
35
|
-
declare function FromLiteralKey<K extends TLiteralValue, T extends TSchema>(K: K, T: T): FromLiteralKey<K, T>;
|
|
35
|
+
declare function FromLiteralKey<K extends TLiteralValue, T extends TSchema>(K: K, T: T, options: ObjectOptions): FromLiteralKey<K, T>;
|
|
36
36
|
type FromStringKey<_ extends TString, T extends TSchema> = (Ensure<TRecord<TString, T>>);
|
|
37
|
-
declare function FromStringKey<K extends TString, T extends TSchema>(K: K, T: T): FromStringKey<K, T>;
|
|
37
|
+
declare function FromStringKey<K extends TString, T extends TSchema>(K: K, T: T, options: ObjectOptions): FromStringKey<K, T>;
|
|
38
38
|
type FromIntegerKey<_ extends TSchema, T extends TSchema> = (Ensure<TRecord<TNumber, T>>);
|
|
39
|
-
declare function FromIntegerKey<K extends TInteger, T extends TSchema>(_: K, T: T): FromIntegerKey<K, T>;
|
|
39
|
+
declare function FromIntegerKey<K extends TInteger, T extends TSchema>(_: K, T: T, options: ObjectOptions): FromIntegerKey<K, T>;
|
|
40
40
|
type FromNumberKey<_ extends TSchema, T extends TSchema> = (Ensure<TRecord<TNumber, T>>);
|
|
41
|
-
declare function FromNumberKey<K extends TNumber, T extends TSchema>(_: K, T: T): FromIntegerKey<K, T>;
|
|
42
|
-
|
|
41
|
+
declare function FromNumberKey<K extends TNumber, T extends TSchema>(_: K, T: T, options: ObjectOptions): FromIntegerKey<K, T>;
|
|
42
|
+
type RecordStatic<K extends TSchema, T extends TSchema, P extends unknown[]> = (Record<Assert<Static<K>, PropertyKey>, Static<T, P>>);
|
|
43
43
|
export interface TRecord<K extends TSchema = TSchema, T extends TSchema = TSchema> extends TSchema {
|
|
44
44
|
[Kind]: 'Record';
|
|
45
|
-
static:
|
|
45
|
+
static: RecordStatic<K, T, this['params']>;
|
|
46
46
|
type: 'object';
|
|
47
47
|
patternProperties: {
|
|
48
48
|
[pattern: string]: T;
|
|
49
49
|
};
|
|
50
50
|
additionalProperties: TAdditionalProperties;
|
|
51
51
|
}
|
|
52
|
-
export
|
|
52
|
+
export type TRecordOrObject<K extends TSchema, T extends TSchema> = K extends TTemplateLiteral ? FromTemplateLiteralKey<K, T> : K extends TEnum<infer S> ? FromEnumKey<S, T> : K extends TUnion<infer S> ? FromUnionKey<S, T> : K extends TLiteral<infer S> ? FromLiteralKey<S, T> : K extends TInteger ? FromIntegerKey<K, T> : K extends TNumber ? FromNumberKey<K, T> : K extends TString ? FromStringKey<K, T> : TNever;
|
|
53
|
+
/** `[Json]` Creates a Record type */
|
|
54
|
+
export declare function Record<K extends TSchema, T extends TSchema>(K: K, T: T, options?: ObjectOptions): TRecordOrObject<K, T>;
|
|
53
55
|
export {};
|
|
@@ -7,45 +7,70 @@ import { IndexPropertyKeys } from '../indexed/index.mjs';
|
|
|
7
7
|
import { Kind, Hint } from '../symbols/index.mjs';
|
|
8
8
|
import { CloneType } from '../clone/type.mjs';
|
|
9
9
|
import { IsUndefined } from '../guard/value.mjs';
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// TypeGuard
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// prettier-ignore
|
|
10
14
|
import { TInteger as IsIntegerType, TLiteral as IsLiteralType, TNumber as IsNumberType, TString as IsStringType, TTemplateLiteral as IsTemplateLiteralType, TUnion as IsUnionType, } from '../guard/type.mjs';
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
// ------------------------------------------------------------------
|
|
16
|
+
// RecordCreateFromPattern
|
|
17
|
+
// ------------------------------------------------------------------
|
|
18
|
+
// prettier-ignore
|
|
19
|
+
function RecordCreateFromPattern(pattern, T, options) {
|
|
20
|
+
return {
|
|
21
|
+
...options,
|
|
22
|
+
[Kind]: 'Record',
|
|
23
|
+
type: 'object',
|
|
24
|
+
patternProperties: { [pattern]: CloneType(T) }
|
|
25
|
+
};
|
|
13
26
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
27
|
+
// ------------------------------------------------------------------
|
|
28
|
+
// RecordCreateFromKeys
|
|
29
|
+
// ------------------------------------------------------------------
|
|
30
|
+
// prettier-ignore
|
|
31
|
+
function RecordCreateFromKeys(K, T, options) {
|
|
32
|
+
const P = K.reduce((Acc, K) => ({ ...Acc, [K]: CloneType(T) }), {});
|
|
33
|
+
return Object(P, { ...options, [Hint]: 'Record' });
|
|
17
34
|
}
|
|
18
|
-
|
|
35
|
+
// prettier-ignore
|
|
36
|
+
function FromTemplateLiteralKey(K, T, options) {
|
|
19
37
|
const expression = TemplateLiteralParseExact(K.pattern);
|
|
20
38
|
return (IsTemplateLiteralFinite(expression)
|
|
21
|
-
?
|
|
22
|
-
:
|
|
39
|
+
? RecordCreateFromKeys(IndexPropertyKeys(K), T, options)
|
|
40
|
+
: RecordCreateFromPattern(K.pattern, T, options));
|
|
23
41
|
}
|
|
24
|
-
|
|
25
|
-
|
|
42
|
+
// prettier-ignore
|
|
43
|
+
function FromUnionKey(K, T, options) {
|
|
44
|
+
return RecordCreateFromKeys(IndexPropertyKeys(Union(K)), T, options);
|
|
26
45
|
}
|
|
27
|
-
|
|
28
|
-
|
|
46
|
+
// prettier-ignore
|
|
47
|
+
function FromLiteralKey(K, T, options) {
|
|
48
|
+
return RecordCreateFromKeys([K.toString()], T, options);
|
|
29
49
|
}
|
|
30
|
-
|
|
50
|
+
// prettier-ignore
|
|
51
|
+
function FromStringKey(K, T, options) {
|
|
31
52
|
const pattern = IsUndefined(K.pattern) ? PatternStringExact : K.pattern;
|
|
32
|
-
return
|
|
53
|
+
return RecordCreateFromPattern(pattern, T, options);
|
|
33
54
|
}
|
|
34
|
-
|
|
35
|
-
|
|
55
|
+
// prettier-ignore
|
|
56
|
+
function FromIntegerKey(_, T, options) {
|
|
57
|
+
return RecordCreateFromPattern(PatternNumberExact, T, options);
|
|
36
58
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
function RecordResolve(K, T) {
|
|
41
|
-
return (IsUnionType(K) ? FromUnionKey(K.anyOf, T) :
|
|
42
|
-
IsTemplateLiteralType(K) ? FromTemplateLiteralKey(K, T) :
|
|
43
|
-
IsLiteralType(K) ? FromLiteralKey(K.const, T) :
|
|
44
|
-
IsStringType(K) ? FromStringKey(K, T) :
|
|
45
|
-
IsIntegerType(K) ? FromIntegerKey(K, T) :
|
|
46
|
-
IsNumberType(K) ? FromNumberKey(K, T) :
|
|
47
|
-
Never());
|
|
59
|
+
// prettier-ignore
|
|
60
|
+
function FromNumberKey(_, T, options) {
|
|
61
|
+
return RecordCreateFromPattern(PatternNumberExact, T, options);
|
|
48
62
|
}
|
|
63
|
+
// ------------------------------------------------------------------
|
|
64
|
+
// TRecordOrObject
|
|
65
|
+
// ------------------------------------------------------------------
|
|
66
|
+
/** `[Json]` Creates a Record type */
|
|
49
67
|
export function Record(K, T, options = {}) {
|
|
50
|
-
|
|
68
|
+
// prettier-ignore
|
|
69
|
+
return (IsUnionType(K) ? FromUnionKey(K.anyOf, T, options) :
|
|
70
|
+
IsTemplateLiteralType(K) ? FromTemplateLiteralKey(K, T, options) :
|
|
71
|
+
IsLiteralType(K) ? FromLiteralKey(K.const, T, options) :
|
|
72
|
+
IsStringType(K) ? FromStringKey(K, T, options) :
|
|
73
|
+
IsIntegerType(K) ? FromIntegerKey(K, T, options) :
|
|
74
|
+
IsNumberType(K) ? FromNumberKey(K, T, options) :
|
|
75
|
+
Never(options));
|
|
51
76
|
}
|
|
@@ -11,5 +11,6 @@ export interface TRecursive<T extends TSchema> extends TSchema {
|
|
|
11
11
|
[Hint]: 'Recursive';
|
|
12
12
|
static: RecursiveStatic<T>;
|
|
13
13
|
}
|
|
14
|
+
/** `[Json]` Creates a Recursive type */
|
|
14
15
|
export declare function Recursive<T extends TSchema>(callback: (thisType: TThis) => T, options?: SchemaOptions): TRecursive<T>;
|
|
15
16
|
export {};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { CloneType } from '../clone/type.mjs';
|
|
2
2
|
import { IsUndefined } from '../guard/value.mjs';
|
|
3
3
|
import { Kind, Hint } from '../symbols/index.mjs';
|
|
4
|
+
// Auto Tracked For Recursive Types without ID's
|
|
4
5
|
let Ordinal = 0;
|
|
6
|
+
/** `[Json]` Creates a Recursive type */
|
|
5
7
|
export function Recursive(callback, options = {}) {
|
|
6
8
|
if (IsUndefined(options.$id))
|
|
7
9
|
options.$id = `T${Ordinal++}`;
|
|
8
10
|
const thisType = callback({ [Kind]: 'This', $ref: `${options.$id}` });
|
|
9
11
|
thisType.$id = options.$id;
|
|
12
|
+
// prettier-ignore
|
|
10
13
|
return CloneType({ ...options, [Hint]: 'Recursive', ...thisType });
|
|
11
14
|
}
|
|
@@ -6,5 +6,7 @@ export interface TRef<T extends TSchema = TSchema> extends TSchema {
|
|
|
6
6
|
static: Static<T, this['params']>;
|
|
7
7
|
$ref: string;
|
|
8
8
|
}
|
|
9
|
+
/** `[Json]` Creates a Ref type. The referenced type must contain a $id */
|
|
9
10
|
export declare function Ref<T extends TSchema>(schema: T, options?: SchemaOptions): TRef<T>;
|
|
11
|
+
/** `[Json]` Creates a Ref type. */
|
|
10
12
|
export declare function Ref<T extends TSchema>($ref: string, options?: SchemaOptions): TRef<T>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Kind } from '../symbols/index.mjs';
|
|
2
2
|
import { IsString, IsUndefined } from '../guard/value.mjs';
|
|
3
|
+
/** `[Json]` Creates a Ref type. */
|
|
3
4
|
export function Ref(unresolved, options = {}) {
|
|
4
5
|
if (IsString(unresolved))
|
|
5
6
|
return { ...options, [Kind]: 'Ref', $ref: unresolved };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { SchemaOptions } from '../schema/index.mjs';
|
|
2
2
|
import type { TString } from '../string/index.mjs';
|
|
3
3
|
export type TRegExp = TString;
|
|
4
|
+
/** `[JavaScript]` Creates a String type from a Regular Expression pattern */
|
|
4
5
|
export declare function RegExp(pattern: string, options?: SchemaOptions): TRegExp;
|
|
6
|
+
/** `[JavaScript]` Creates a String type from a Regular Expression */
|
|
5
7
|
export declare function RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IsString } from '../guard/value.mjs';
|
|
2
2
|
import { Kind } from '../symbols/index.mjs';
|
|
3
|
+
/** `[JavaScript]` Creates a String type */
|
|
3
4
|
export function RegExp(unresolved, options = {}) {
|
|
4
5
|
const pattern = IsString(unresolved) ? unresolved : unresolved.source;
|
|
5
6
|
return { ...options, [Kind]: 'String', type: 'string', pattern };
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
export type FormatRegistryValidationFunction = (value: string) => boolean;
|
|
2
|
+
/** Returns the entries in this registry */
|
|
2
3
|
export declare function Entries(): Map<string, FormatRegistryValidationFunction>;
|
|
4
|
+
/** Clears all user defined string formats */
|
|
3
5
|
export declare function Clear(): void;
|
|
6
|
+
/** Deletes a registered format */
|
|
4
7
|
export declare function Delete(format: string): boolean;
|
|
8
|
+
/** Returns true if the user defined string format exists */
|
|
5
9
|
export declare function Has(format: string): boolean;
|
|
10
|
+
/** Sets a validation function for a user defined string format */
|
|
6
11
|
export declare function Set(format: string, func: FormatRegistryValidationFunction): void;
|
|
12
|
+
/** Gets a validation function for a user defined string format */
|
|
7
13
|
export declare function Get(format: string): FormatRegistryValidationFunction | undefined;
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
+
/** A registry for user defined string formats */
|
|
1
2
|
const map = new Map();
|
|
3
|
+
/** Returns the entries in this registry */
|
|
2
4
|
export function Entries() {
|
|
3
5
|
return new Map(map);
|
|
4
6
|
}
|
|
7
|
+
/** Clears all user defined string formats */
|
|
5
8
|
export function Clear() {
|
|
6
9
|
return map.clear();
|
|
7
10
|
}
|
|
11
|
+
/** Deletes a registered format */
|
|
8
12
|
export function Delete(format) {
|
|
9
13
|
return map.delete(format);
|
|
10
14
|
}
|
|
15
|
+
/** Returns true if the user defined string format exists */
|
|
11
16
|
export function Has(format) {
|
|
12
17
|
return map.has(format);
|
|
13
18
|
}
|
|
19
|
+
/** Sets a validation function for a user defined string format */
|
|
14
20
|
export function Set(format, func) {
|
|
15
21
|
map.set(format, func);
|
|
16
22
|
}
|
|
23
|
+
/** Gets a validation function for a user defined string format */
|
|
17
24
|
export function Get(format) {
|
|
18
25
|
return map.get(format);
|
|
19
26
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
export type TypeRegistryValidationFunction<TSchema> = (schema: TSchema, value: unknown) => boolean;
|
|
2
|
+
/** Returns the entries in this registry */
|
|
2
3
|
export declare function Entries(): Map<string, TypeRegistryValidationFunction<any>>;
|
|
4
|
+
/** Clears all user defined types */
|
|
3
5
|
export declare function Clear(): void;
|
|
6
|
+
/** Deletes a registered type */
|
|
4
7
|
export declare function Delete(kind: string): boolean;
|
|
8
|
+
/** Returns true if this registry contains this kind */
|
|
5
9
|
export declare function Has(kind: string): boolean;
|
|
10
|
+
/** Sets a validation function for a user defined type */
|
|
6
11
|
export declare function Set<TSchema = unknown>(kind: string, func: TypeRegistryValidationFunction<TSchema>): void;
|
|
12
|
+
/** Gets a custom validation function for a user defined type */
|
|
7
13
|
export declare function Get(kind: string): TypeRegistryValidationFunction<any> | undefined;
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
+
/** A registry for user defined types */
|
|
1
2
|
const map = new Map();
|
|
3
|
+
/** Returns the entries in this registry */
|
|
2
4
|
export function Entries() {
|
|
3
5
|
return new Map(map);
|
|
4
6
|
}
|
|
7
|
+
/** Clears all user defined types */
|
|
5
8
|
export function Clear() {
|
|
6
9
|
return map.clear();
|
|
7
10
|
}
|
|
11
|
+
/** Deletes a registered type */
|
|
8
12
|
export function Delete(kind) {
|
|
9
13
|
return map.delete(kind);
|
|
10
14
|
}
|
|
15
|
+
/** Returns true if this registry contains this kind */
|
|
11
16
|
export function Has(kind) {
|
|
12
17
|
return map.has(kind);
|
|
13
18
|
}
|
|
19
|
+
/** Sets a validation function for a user defined type */
|
|
14
20
|
export function Set(kind, func) {
|
|
15
21
|
map.set(kind, func);
|
|
16
22
|
}
|
|
23
|
+
/** Gets a custom validation function for a user defined type */
|
|
17
24
|
export function Get(kind) {
|
|
18
25
|
return map.get(kind);
|
|
19
26
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { MappedResult } from '../mapped/index.mjs';
|
|
2
2
|
import { Required } from './required.mjs';
|
|
3
|
+
// prettier-ignore
|
|
3
4
|
function FromProperties(K, options) {
|
|
4
5
|
return globalThis.Object.getOwnPropertyNames(K).reduce((Acc, K2) => {
|
|
5
6
|
return { ...Acc, [K2]: Required(K[K2], options) };
|
|
6
7
|
}, {});
|
|
7
8
|
}
|
|
9
|
+
// prettier-ignore
|
|
8
10
|
function FromMappedResult(K, options) {
|
|
9
11
|
return FromProperties(K.properties, options);
|
|
10
12
|
}
|
|
13
|
+
// prettier-ignore
|
|
11
14
|
export function RequiredFromMappedResult(T, options) {
|
|
12
15
|
const P = FromMappedResult(T, options);
|
|
13
16
|
return MappedResult(P);
|
|
@@ -20,6 +20,8 @@ declare function FromProperties<T extends TProperties>(T: T): TProperties;
|
|
|
20
20
|
type RequiredResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<RequiredResolve<S>> : T extends TIntersect<infer S> ? TIntersect<FromIntersect<S>> : T extends TUnion<infer S> ? TUnion<FromUnion<S>> : T extends TObject<infer S> ? TObject<FromProperties<S>> : TObject<{}>);
|
|
21
21
|
declare function RequiredResolve<T extends TSchema>(T: T): RequiredResolve<T>;
|
|
22
22
|
export type TRequired<T extends TSchema> = RequiredResolve<T>;
|
|
23
|
+
/** `[Json]` Constructs a type where all properties are required */
|
|
23
24
|
export declare function Required<T extends TMappedResult>(T: T, options?: SchemaOptions): TRequiredFromMappedResult<T>;
|
|
25
|
+
/** `[Json]` Constructs a type where all properties are required */
|
|
24
26
|
export declare function Required<T extends TSchema>(T: T, options?: SchemaOptions): TRequired<T>;
|
|
25
27
|
export {};
|
|
@@ -5,30 +5,39 @@ import { OptionalKind, TransformKind } from '../symbols/index.mjs';
|
|
|
5
5
|
import { CloneType } from '../clone/type.mjs';
|
|
6
6
|
import { Discard } from '../discard/index.mjs';
|
|
7
7
|
import { RequiredFromMappedResult } from './required-from-mapped-result.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// TypeGuard
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// prettier-ignore
|
|
8
12
|
import { TMappedResult as IsMappedResultType, TIntersect as IsIntersectType, TUnion as IsUnionType, TObject as IsObjectType } from '../guard/type.mjs';
|
|
13
|
+
// prettier-ignore
|
|
9
14
|
function FromIntersect(T) {
|
|
10
15
|
const [L, ...R] = T;
|
|
11
16
|
return (T.length > 0
|
|
12
17
|
? [RequiredResolve(L), ...FromIntersect(R)]
|
|
13
18
|
: []);
|
|
14
19
|
}
|
|
20
|
+
// prettier-ignore
|
|
15
21
|
function FromUnion(T) {
|
|
16
22
|
const [L, ...R] = T;
|
|
17
23
|
return (T.length > 0
|
|
18
24
|
? [RequiredResolve(L), ...FromUnion(R)]
|
|
19
25
|
: []);
|
|
20
26
|
}
|
|
27
|
+
// prettier-ignore
|
|
21
28
|
function FromProperties(T) {
|
|
22
29
|
return globalThis.Object.getOwnPropertyNames(T).reduce((Acc, K) => {
|
|
23
30
|
return { ...Acc, [K]: Discard(T[K], [OptionalKind]) };
|
|
24
31
|
}, {});
|
|
25
32
|
}
|
|
33
|
+
// prettier-ignore
|
|
26
34
|
function RequiredResolve(T) {
|
|
27
35
|
return (IsIntersectType(T) ? Intersect(FromIntersect(T.allOf)) :
|
|
28
36
|
IsUnionType(T) ? Union(FromUnion(T.anyOf)) :
|
|
29
37
|
IsObjectType(T) ? Object(FromProperties(T.properties)) :
|
|
30
38
|
Object({}));
|
|
31
39
|
}
|
|
40
|
+
/** `[Json]` Constructs a type where all properties are required */
|
|
32
41
|
export function Required(T, options = {}) {
|
|
33
42
|
if (IsMappedResultType(T)) {
|
|
34
43
|
return RequiredFromMappedResult(T, options);
|
|
@@ -6,4 +6,5 @@ export type RestResolve<T extends TSchema> = T extends TIntersect<infer S> ? [..
|
|
|
6
6
|
];
|
|
7
7
|
export declare function RestResolve<T extends TSchema>(T: T): RestResolve<T>;
|
|
8
8
|
export type TRest<T extends TSchema> = RestResolve<T>;
|
|
9
|
+
/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
|
|
9
10
|
export declare function Rest<T extends TSchema>(T: T): TRest<T>;
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { CloneRest } from '../clone/type.mjs';
|
|
2
|
+
// ------------------------------------------------------------------
|
|
3
|
+
// TypeGuard
|
|
4
|
+
// ------------------------------------------------------------------
|
|
5
|
+
// prettier-ignore
|
|
2
6
|
import { TIntersect as IsIntersectType, TUnion as IsUnionType, TTuple as IsTupleType } from '../guard/type.mjs';
|
|
3
7
|
export function RestResolve(T) {
|
|
4
8
|
return (IsIntersectType(T) ? [...T.allOf] : IsUnionType(T) ? [...T.anyOf] : IsTupleType(T) ? [...(T.items ?? [])] : []);
|
|
5
9
|
}
|
|
10
|
+
/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
|
|
6
11
|
export function Rest(T) {
|
|
7
12
|
return CloneRest(RestResolve(T));
|
|
8
13
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SchemaOptions } from '../schema/index.mjs';
|
|
2
2
|
import type { TFunction } from '../function/index.mjs';
|
|
3
3
|
export type TReturnType<T extends TFunction> = T['returns'];
|
|
4
|
+
/** `[JavaScript]` Extracts the ReturnType from the given Function type */
|
|
4
5
|
export declare function ReturnType<T extends TFunction<any[], any>>(schema: T, options?: SchemaOptions): TReturnType<T>;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { Kind, Hint, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';
|
|
2
2
|
export interface SchemaOptions {
|
|
3
3
|
$schema?: string;
|
|
4
|
+
/** Id for this schema */
|
|
4
5
|
$id?: string;
|
|
6
|
+
/** Title of this schema */
|
|
5
7
|
title?: string;
|
|
8
|
+
/** Description of this schema */
|
|
6
9
|
description?: string;
|
|
10
|
+
/** Default value for this schema */
|
|
7
11
|
default?: any;
|
|
12
|
+
/** Example values matching this schema */
|
|
8
13
|
examples?: any;
|
|
14
|
+
/** Optional annotation for readOnly */
|
|
9
15
|
readOnly?: boolean;
|
|
16
|
+
/** Optional annotation for writeOnly */
|
|
10
17
|
writeOnly?: boolean;
|
|
11
18
|
[prop: string]: any;
|
|
12
19
|
}
|
|
@@ -24,8 +24,11 @@ export type DecodeProperties<T extends TProperties> = {
|
|
|
24
24
|
};
|
|
25
25
|
export type DecodeRest<T extends TSchema[]> = T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [DecodeType<L>, ...DecodeRest<R>] : [];
|
|
26
26
|
export type DecodeType<T extends TSchema> = (T extends TOptional<infer S extends TSchema> ? TOptional<DecodeType<S>> : T extends TReadonly<infer S extends TSchema> ? TReadonly<DecodeType<S>> : T extends TTransform<infer _, infer R> ? TUnsafe<R> : T extends TArray<infer S extends TSchema> ? TArray<DecodeType<S>> : T extends TAsyncIterator<infer S extends TSchema> ? TAsyncIterator<DecodeType<S>> : T extends TConstructor<infer P extends TSchema[], infer R extends TSchema> ? TConstructor<DecodeRest<P>, DecodeType<R>> : T extends TEnum<infer S> ? TEnum<S> : T extends TFunction<infer P extends TSchema[], infer R extends TSchema> ? TFunction<DecodeRest<P>, DecodeType<R>> : T extends TIntersect<infer S extends TSchema[]> ? TIntersect<DecodeRest<S>> : T extends TIterator<infer S extends TSchema> ? TIterator<DecodeType<S>> : T extends TNot<infer S extends TSchema> ? TNot<DecodeType<S>> : T extends TObject<infer S> ? TObject<Evaluate<DecodeProperties<S>>> : T extends TPromise<infer S extends TSchema> ? TPromise<DecodeType<S>> : T extends TRecord<infer K, infer S> ? TRecord<K, DecodeType<S>> : T extends TRecursive<infer S extends TSchema> ? TRecursive<DecodeType<S>> : T extends TRef<infer S extends TSchema> ? TRef<DecodeType<S>> : T extends TTuple<infer S extends TSchema[]> ? TTuple<DecodeRest<S>> : T extends TUnion<infer S extends TSchema[]> ? TUnion<DecodeRest<S>> : T);
|
|
27
|
+
/** Creates an decoded static type from a TypeBox type */
|
|
27
28
|
export type StaticDecode<T extends TSchema, P extends unknown[] = []> = Static<DecodeType<T>, P>;
|
|
29
|
+
/** Creates an encoded static type from a TypeBox type */
|
|
28
30
|
export type StaticEncode<T extends TSchema, P extends unknown[] = []> = Static<T, P>;
|
|
31
|
+
/** Creates a static type from a TypeBox type */
|
|
29
32
|
export type Static<T extends TSchema, P extends unknown[] = []> = (T & {
|
|
30
33
|
params: P;
|
|
31
34
|
})['static'];
|
|
@@ -3,11 +3,17 @@ import { Kind } from '../symbols/index.mjs';
|
|
|
3
3
|
export type StringFormatOption = 'date-time' | 'time' | 'date' | 'email' | 'idn-email' | 'hostname' | 'idn-hostname' | 'ipv4' | 'ipv6' | 'uri' | 'uri-reference' | 'iri' | 'uuid' | 'iri-reference' | 'uri-template' | 'json-pointer' | 'relative-json-pointer' | 'regex' | ({} & string);
|
|
4
4
|
export type StringContentEncodingOption = '7bit' | '8bit' | 'binary' | 'quoted-printable' | 'base64' | ({} & string);
|
|
5
5
|
export interface StringOptions extends SchemaOptions {
|
|
6
|
+
/** The maximum string length */
|
|
6
7
|
maxLength?: number;
|
|
8
|
+
/** The minimum string length */
|
|
7
9
|
minLength?: number;
|
|
10
|
+
/** A regular expression pattern this string should match */
|
|
8
11
|
pattern?: string;
|
|
12
|
+
/** A format this string should match */
|
|
9
13
|
format?: StringFormatOption;
|
|
14
|
+
/** The content encoding for this string */
|
|
10
15
|
contentEncoding?: StringContentEncodingOption;
|
|
16
|
+
/** The content media type for this string */
|
|
11
17
|
contentMediaType?: string;
|
|
12
18
|
}
|
|
13
19
|
export interface TString extends TSchema, StringOptions {
|
|
@@ -15,4 +21,5 @@ export interface TString extends TSchema, StringOptions {
|
|
|
15
21
|
static: string;
|
|
16
22
|
type: 'string';
|
|
17
23
|
}
|
|
24
|
+
/** `[Json]` Creates a String type */
|
|
18
25
|
export declare function String(options?: StringOptions): TString;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
/** Symbol key applied to transform types */
|
|
1
2
|
export declare const TransformKind: unique symbol;
|
|
3
|
+
/** Symbol key applied to readonly types */
|
|
2
4
|
export declare const ReadonlyKind: unique symbol;
|
|
5
|
+
/** Symbol key applied to optional types */
|
|
3
6
|
export declare const OptionalKind: unique symbol;
|
|
7
|
+
/** Symbol key applied to types */
|
|
4
8
|
export declare const Hint: unique symbol;
|
|
9
|
+
/** Symbol key applied to types */
|
|
5
10
|
export declare const Kind: unique symbol;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
/** Symbol key applied to transform types */
|
|
1
2
|
export const TransformKind = Symbol.for('TypeBox.Transform');
|
|
3
|
+
/** Symbol key applied to readonly types */
|
|
2
4
|
export const ReadonlyKind = Symbol.for('TypeBox.Readonly');
|
|
5
|
+
/** Symbol key applied to optional types */
|
|
3
6
|
export const OptionalKind = Symbol.for('TypeBox.Optional');
|
|
7
|
+
/** Symbol key applied to types */
|
|
4
8
|
export const Hint = Symbol.for('TypeBox.Hint');
|
|
9
|
+
/** Symbol key applied to types */
|
|
5
10
|
export const Kind = Symbol.for('TypeBox.Kind');
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
// ------------------------------------------------------------------
|
|
2
|
+
// TemplateLiteralFiniteError
|
|
3
|
+
// ------------------------------------------------------------------
|
|
1
4
|
export class TemplateLiteralFiniteError extends Error {
|
|
2
5
|
}
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
// IsTemplateLiteralFiniteCheck
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// prettier-ignore
|
|
3
10
|
function IsNumberExpression(expression) {
|
|
4
11
|
return (expression.type === 'or' &&
|
|
5
12
|
expression.expr.length === 2 &&
|
|
@@ -8,6 +15,7 @@ function IsNumberExpression(expression) {
|
|
|
8
15
|
expression.expr[1].type === 'const' &&
|
|
9
16
|
expression.expr[1].const === '[1-9][0-9]*');
|
|
10
17
|
}
|
|
18
|
+
// prettier-ignore
|
|
11
19
|
function IsBooleanExpression(expression) {
|
|
12
20
|
return (expression.type === 'or' &&
|
|
13
21
|
expression.expr.length === 2 &&
|
|
@@ -16,9 +24,11 @@ function IsBooleanExpression(expression) {
|
|
|
16
24
|
expression.expr[1].type === 'const' &&
|
|
17
25
|
expression.expr[1].const === 'false');
|
|
18
26
|
}
|
|
27
|
+
// prettier-ignore
|
|
19
28
|
function IsStringExpression(expression) {
|
|
20
29
|
return expression.type === 'const' && expression.const === '.*';
|
|
21
30
|
}
|
|
31
|
+
// prettier-ignore
|
|
22
32
|
export function IsTemplateLiteralFinite(expression) {
|
|
23
33
|
return (IsBooleanExpression(expression) ? true :
|
|
24
34
|
IsNumberExpression(expression) || IsStringExpression(expression) ? false :
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// ------------------------------------------------------------------
|
|
2
|
+
// GenerateFromExpression
|
|
3
|
+
// ------------------------------------------------------------------
|
|
4
|
+
// prettier-ignore
|
|
1
5
|
function* GenerateReduce(buffer) {
|
|
2
6
|
if (buffer.length === 1)
|
|
3
7
|
return yield* buffer[0];
|
|
@@ -7,16 +11,22 @@ function* GenerateReduce(buffer) {
|
|
|
7
11
|
}
|
|
8
12
|
}
|
|
9
13
|
}
|
|
14
|
+
// prettier-ignore
|
|
10
15
|
function* GenerateAnd(expression) {
|
|
11
16
|
return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralGenerate(expr)]));
|
|
12
17
|
}
|
|
18
|
+
// prettier-ignore
|
|
13
19
|
function* GenerateOr(expression) {
|
|
14
20
|
for (const expr of expression.expr)
|
|
15
21
|
yield* TemplateLiteralGenerate(expr);
|
|
16
22
|
}
|
|
23
|
+
// prettier-ignore
|
|
17
24
|
function* GenerateConst(expression) {
|
|
18
25
|
return yield expression.const;
|
|
19
26
|
}
|
|
27
|
+
// ------------------------------------------------------------------
|
|
28
|
+
// TemplateLiteralGenerateError
|
|
29
|
+
// ------------------------------------------------------------------
|
|
20
30
|
export class TemplateLiteralGenerateError extends Error {
|
|
21
31
|
}
|
|
22
32
|
export function* TemplateLiteralGenerate(expression) {
|
|
@@ -13,5 +13,7 @@ export type ExpressionOr = {
|
|
|
13
13
|
type: 'or';
|
|
14
14
|
expr: Expression[];
|
|
15
15
|
};
|
|
16
|
+
/** Parses a pattern and returns an expression tree */
|
|
16
17
|
export declare function TemplateLiteralParse(pattern: string): Expression;
|
|
18
|
+
/** Parses a pattern and strips forward and trailing ^ and $ */
|
|
17
19
|
export declare function TemplateLiteralParseExact(pattern: string): Expression;
|