@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,17 +1,25 @@
|
|
|
1
|
+
// ------------------------------------------------------------------
|
|
2
|
+
// TemplateLiteralParserError
|
|
3
|
+
// ------------------------------------------------------------------
|
|
1
4
|
export class TemplateLiteralParserError extends Error {
|
|
2
5
|
}
|
|
6
|
+
// prettier-ignore
|
|
3
7
|
function IsNonEscaped(pattern, index, char) {
|
|
4
8
|
return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;
|
|
5
9
|
}
|
|
10
|
+
// prettier-ignore
|
|
6
11
|
function IsOpenParen(pattern, index) {
|
|
7
12
|
return IsNonEscaped(pattern, index, '(');
|
|
8
13
|
}
|
|
14
|
+
// prettier-ignore
|
|
9
15
|
function IsCloseParen(pattern, index) {
|
|
10
16
|
return IsNonEscaped(pattern, index, ')');
|
|
11
17
|
}
|
|
18
|
+
// prettier-ignore
|
|
12
19
|
function IsSeparator(pattern, index) {
|
|
13
20
|
return IsNonEscaped(pattern, index, '|');
|
|
14
21
|
}
|
|
22
|
+
// prettier-ignore
|
|
15
23
|
function IsGroup(pattern) {
|
|
16
24
|
if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1)))
|
|
17
25
|
return false;
|
|
@@ -26,9 +34,11 @@ function IsGroup(pattern) {
|
|
|
26
34
|
}
|
|
27
35
|
return true;
|
|
28
36
|
}
|
|
37
|
+
// prettier-ignore
|
|
29
38
|
function InGroup(pattern) {
|
|
30
39
|
return pattern.slice(1, pattern.length - 1);
|
|
31
40
|
}
|
|
41
|
+
// prettier-ignore
|
|
32
42
|
function IsPrecedenceOr(pattern) {
|
|
33
43
|
let count = 0;
|
|
34
44
|
for (let index = 0; index < pattern.length; index++) {
|
|
@@ -41,6 +51,7 @@ function IsPrecedenceOr(pattern) {
|
|
|
41
51
|
}
|
|
42
52
|
return false;
|
|
43
53
|
}
|
|
54
|
+
// prettier-ignore
|
|
44
55
|
function IsPrecedenceAnd(pattern) {
|
|
45
56
|
for (let index = 0; index < pattern.length; index++) {
|
|
46
57
|
if (IsOpenParen(pattern, index))
|
|
@@ -48,6 +59,7 @@ function IsPrecedenceAnd(pattern) {
|
|
|
48
59
|
}
|
|
49
60
|
return false;
|
|
50
61
|
}
|
|
62
|
+
// prettier-ignore
|
|
51
63
|
function Or(pattern) {
|
|
52
64
|
let [count, start] = [0, 0];
|
|
53
65
|
const expressions = [];
|
|
@@ -72,6 +84,7 @@ function Or(pattern) {
|
|
|
72
84
|
return expressions[0];
|
|
73
85
|
return { type: 'or', expr: expressions };
|
|
74
86
|
}
|
|
87
|
+
// prettier-ignore
|
|
75
88
|
function And(pattern) {
|
|
76
89
|
function Group(value, index) {
|
|
77
90
|
if (!IsOpenParen(value, index))
|
|
@@ -114,12 +127,16 @@ function And(pattern) {
|
|
|
114
127
|
(expressions.length === 1) ? expressions[0] :
|
|
115
128
|
{ type: 'and', expr: expressions });
|
|
116
129
|
}
|
|
130
|
+
/** Parses a pattern and returns an expression tree */
|
|
131
|
+
// prettier-ignore
|
|
117
132
|
export function TemplateLiteralParse(pattern) {
|
|
118
133
|
return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) :
|
|
119
134
|
IsPrecedenceOr(pattern) ? Or(pattern) :
|
|
120
135
|
IsPrecedenceAnd(pattern) ? And(pattern) :
|
|
121
136
|
{ type: 'const', const: pattern });
|
|
122
137
|
}
|
|
138
|
+
/** Parses a pattern and strips forward and trailing ^ and $ */
|
|
139
|
+
// prettier-ignore
|
|
123
140
|
export function TemplateLiteralParseExact(pattern) {
|
|
124
141
|
return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));
|
|
125
142
|
}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { PatternNumber, PatternString, PatternBoolean } from '../patterns/index.mjs';
|
|
2
2
|
import { Kind } from '../symbols/index.mjs';
|
|
3
|
+
// ------------------------------------------------------------------
|
|
4
|
+
// TypeGuard
|
|
5
|
+
// ------------------------------------------------------------------
|
|
6
|
+
// prettier-ignore
|
|
3
7
|
import { TTemplateLiteral as IsTemplateLiteralType, TUnion as IsUnionType, TNumber as IsNumberType, TInteger as IsIntegerType, TBigInt as IsBigIntType, TString as IsStringType, TLiteral as IsLiteralType, TBoolean as IsBooleanType, } from '../guard/type.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// TemplateLiteralPatternError
|
|
10
|
+
// ------------------------------------------------------------------
|
|
4
11
|
export class TemplateLiteralPatternError extends Error {
|
|
5
12
|
}
|
|
13
|
+
// ------------------------------------------------------------------
|
|
14
|
+
// TemplateLiteralPattern
|
|
15
|
+
// ------------------------------------------------------------------
|
|
6
16
|
function Escape(value) {
|
|
7
17
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
8
18
|
}
|
|
19
|
+
// prettier-ignore
|
|
9
20
|
function Visit(schema, acc) {
|
|
10
21
|
return (IsTemplateLiteralType(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) :
|
|
11
22
|
IsUnionType(schema) ? `(${schema.anyOf.map((schema) => Visit(schema, acc)).join('|')})` :
|
|
@@ -15,5 +15,6 @@ type FromTerminal<T extends string> = T extends 'boolean' ? TBoolean : T extends
|
|
|
15
15
|
type FromString<T extends string> = T extends `{${infer L}}${infer R}` ? [FromTerminal<L>, ...FromString<R>] : T extends `${infer L}$${infer R}` ? [TLiteral<L>, ...FromString<R>] : T extends `${infer L}` ? [TLiteral<L>] : [
|
|
16
16
|
];
|
|
17
17
|
export type TemplateLiteralSyntax<T extends string> = (TTemplateLiteral<Assert<FromString<T>, TTemplateLiteralKind[]>>);
|
|
18
|
+
/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
|
|
18
19
|
export declare function TemplateLiteralSyntax(syntax: string): TTemplateLiteralKind[];
|
|
19
20
|
export {};
|
|
@@ -5,6 +5,10 @@ import { Number } from '../number/index.mjs';
|
|
|
5
5
|
import { String } from '../string/index.mjs';
|
|
6
6
|
import { Union } from '../union/index.mjs';
|
|
7
7
|
import { Never } from '../never/index.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// SyntaxParsers
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// prettier-ignore
|
|
8
12
|
function* FromUnion(syntax) {
|
|
9
13
|
const trim = syntax.trim().replace(/"|'/g, '');
|
|
10
14
|
return (trim === 'boolean' ? yield Boolean() :
|
|
@@ -18,6 +22,7 @@ function* FromUnion(syntax) {
|
|
|
18
22
|
Union(literals));
|
|
19
23
|
})());
|
|
20
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
21
26
|
function* FromTerminal(syntax) {
|
|
22
27
|
if (syntax[1] !== '{') {
|
|
23
28
|
const L = Literal('$');
|
|
@@ -33,6 +38,7 @@ function* FromTerminal(syntax) {
|
|
|
33
38
|
}
|
|
34
39
|
yield Literal(syntax);
|
|
35
40
|
}
|
|
41
|
+
// prettier-ignore
|
|
36
42
|
function* FromSyntax(syntax) {
|
|
37
43
|
for (let i = 0; i < syntax.length; i++) {
|
|
38
44
|
if (syntax[i] === '$') {
|
|
@@ -43,6 +49,8 @@ function* FromSyntax(syntax) {
|
|
|
43
49
|
}
|
|
44
50
|
yield Literal(syntax);
|
|
45
51
|
}
|
|
52
|
+
// prettier-ignore
|
|
53
|
+
/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
|
|
46
54
|
export function TemplateLiteralSyntax(syntax) {
|
|
47
55
|
return [...FromSyntax(syntax)];
|
|
48
56
|
}
|
|
@@ -23,6 +23,8 @@ export interface TTemplateLiteral<T extends TTemplateLiteralKind[] = TTemplateLi
|
|
|
23
23
|
type: 'string';
|
|
24
24
|
pattern: string;
|
|
25
25
|
}
|
|
26
|
+
/** `[Json]` Creates a TemplateLiteral type from template dsl string */
|
|
26
27
|
export declare function TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions): TemplateLiteralSyntax<T>;
|
|
28
|
+
/** `[Json]` Creates a TemplateLiteral type */
|
|
27
29
|
export declare function TemplateLiteral<T extends TTemplateLiteralKind[]>(kinds: [...T], options?: SchemaOptions): TTemplateLiteral<T>;
|
|
28
30
|
export {};
|
|
@@ -2,6 +2,8 @@ import { TemplateLiteralPattern } from './pattern.mjs';
|
|
|
2
2
|
import { TemplateLiteralSyntax } from './syntax.mjs';
|
|
3
3
|
import { IsString } from '../guard/value.mjs';
|
|
4
4
|
import { Kind } from '../symbols/index.mjs';
|
|
5
|
+
/** `[Json]` Creates a TemplateLiteral type */
|
|
6
|
+
// prettier-ignore
|
|
5
7
|
export function TemplateLiteral(unresolved, options = {}) {
|
|
6
8
|
const pattern = IsString(unresolved)
|
|
7
9
|
? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved))
|
|
@@ -3,4 +3,5 @@ import { type TUnion } from '../union/index.mjs';
|
|
|
3
3
|
import { type TLiteral } from '../literal/index.mjs';
|
|
4
4
|
import { type TString } from '../string/index.mjs';
|
|
5
5
|
import { type TNever } from '../never/index.mjs';
|
|
6
|
+
/** Resolves a template literal as a TUnion */
|
|
6
7
|
export declare function TemplateLiteralToUnion(template: TTemplateLiteral): TNever | TString | TUnion<TLiteral[]>;
|
|
@@ -4,6 +4,10 @@ import { String } from '../string/index.mjs';
|
|
|
4
4
|
import { TemplateLiteralGenerate } from './generate.mjs';
|
|
5
5
|
import { TemplateLiteralParseExact } from './parser.mjs';
|
|
6
6
|
import { IsTemplateLiteralFinite } from './finite.mjs';
|
|
7
|
+
// ------------------------------------------------------------------
|
|
8
|
+
// TemplateLiteralToUnion
|
|
9
|
+
// ------------------------------------------------------------------
|
|
10
|
+
/** Resolves a template literal as a TUnion */
|
|
7
11
|
export function TemplateLiteralToUnion(template) {
|
|
8
12
|
const expression = TemplateLiteralParseExact(template.pattern);
|
|
9
13
|
if (!IsTemplateLiteralFinite(expression))
|
|
@@ -25,5 +25,6 @@ export interface TTransform<I extends TSchema = TSchema, O extends unknown = unk
|
|
|
25
25
|
[TransformKind]: TransformOptions<I, O>;
|
|
26
26
|
[key: string]: any;
|
|
27
27
|
}
|
|
28
|
+
/** `[Json]` Creates a Transform type */
|
|
28
29
|
export declare function Transform<I extends TSchema>(schema: I): TransformDecodeBuilder<I>;
|
|
29
30
|
export {};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { CloneType } from '../clone/type.mjs';
|
|
2
2
|
import { TransformKind } from '../symbols/index.mjs';
|
|
3
|
+
// ------------------------------------------------------------------
|
|
4
|
+
// TypeGuard
|
|
5
|
+
// ------------------------------------------------------------------
|
|
6
|
+
// prettier-ignore
|
|
3
7
|
import { TTransform as IsTransform } from '../guard/type.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// TransformBuilders
|
|
10
|
+
// ------------------------------------------------------------------
|
|
4
11
|
export class TransformDecodeBuilder {
|
|
5
12
|
schema;
|
|
6
13
|
constructor(schema) {
|
|
@@ -10,6 +17,7 @@ export class TransformDecodeBuilder {
|
|
|
10
17
|
return new TransformEncodeBuilder(this.schema, decode);
|
|
11
18
|
}
|
|
12
19
|
}
|
|
20
|
+
// prettier-ignore
|
|
13
21
|
export class TransformEncodeBuilder {
|
|
14
22
|
schema;
|
|
15
23
|
decode;
|
|
@@ -32,6 +40,7 @@ export class TransformEncodeBuilder {
|
|
|
32
40
|
return (IsTransform(schema) ? this.EncodeTransform(encode, schema) : this.EncodeSchema(encode, schema));
|
|
33
41
|
}
|
|
34
42
|
}
|
|
43
|
+
/** `[Json]` Creates a Transform type */
|
|
35
44
|
export function Transform(schema) {
|
|
36
45
|
return new TransformDecodeBuilder(schema);
|
|
37
46
|
}
|
|
@@ -12,5 +12,6 @@ export interface TTuple<T extends TSchema[] = TSchema[]> extends TSchema {
|
|
|
12
12
|
minItems: number;
|
|
13
13
|
maxItems: number;
|
|
14
14
|
}
|
|
15
|
+
/** `[Json]` Creates a Tuple type */
|
|
15
16
|
export declare function Tuple<T extends TSchema[]>(items: [...T], options?: SchemaOptions): TTuple<T>;
|
|
16
17
|
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { CloneRest } from '../clone/type.mjs';
|
|
2
2
|
import { Kind } from '../symbols/index.mjs';
|
|
3
|
+
/** `[Json]` Creates a Tuple type */
|
|
3
4
|
export function Tuple(items, options = {}) {
|
|
5
|
+
// return TupleResolver.Resolve(T)
|
|
4
6
|
const [additionalItems, minItems, maxItems] = [false, items.length, items.length];
|
|
7
|
+
// prettier-ignore
|
|
5
8
|
return (items.length > 0 ?
|
|
6
9
|
{ ...options, [Kind]: 'Tuple', type: 'array', items: CloneRest(items), additionalItems, minItems, maxItems } :
|
|
7
10
|
{ ...options, [Kind]: 'Tuple', type: 'array', minItems, maxItems });
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { JsonTypeBuilder } from './json.mjs';
|
|
2
2
|
import { JavaScriptTypeBuilder } from './javascript.mjs';
|
|
3
|
+
/** JavaScript Type Builder with Static Resolution for TypeScript */
|
|
3
4
|
declare const Type: JavaScriptTypeBuilder;
|
|
4
5
|
export { JavaScriptTypeBuilder };
|
|
5
6
|
export { Type };
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
// ------------------------------------------------------------------
|
|
2
|
+
// JsonTypeBuilder
|
|
3
|
+
// ------------------------------------------------------------------
|
|
1
4
|
export { JsonTypeBuilder } from './json.mjs';
|
|
5
|
+
// ------------------------------------------------------------------
|
|
6
|
+
// JavaScriptTypeBuilder
|
|
7
|
+
// ------------------------------------------------------------------
|
|
2
8
|
import * as TypeBuilder from './type.mjs';
|
|
3
9
|
import { JavaScriptTypeBuilder } from './javascript.mjs';
|
|
10
|
+
/** JavaScript Type Builder with Static Resolution for TypeScript */
|
|
4
11
|
const Type = TypeBuilder;
|
|
5
12
|
export { JavaScriptTypeBuilder };
|
|
6
13
|
export { Type };
|
|
@@ -17,23 +17,42 @@ import { type TSymbol } from '../symbol/index.mjs';
|
|
|
17
17
|
import { type TUint8Array, type Uint8ArrayOptions } from '../uint8array/index.mjs';
|
|
18
18
|
import { type TUndefined } from '../undefined/index.mjs';
|
|
19
19
|
import { type TVoid } from '../void/index.mjs';
|
|
20
|
+
/** JavaScript Type Builder with Static Resolution for TypeScript */
|
|
20
21
|
export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
|
|
22
|
+
/** `[JavaScript]` Creates a AsyncIterator type */
|
|
21
23
|
AsyncIterator<T extends TSchema>(items: T, options?: SchemaOptions): TAsyncIterator<T>;
|
|
24
|
+
/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
|
|
22
25
|
Awaited<T extends TSchema>(schema: T, options?: SchemaOptions): TAwaited<T>;
|
|
26
|
+
/** `[JavaScript]` Creates a BigInt type */
|
|
23
27
|
BigInt(options?: BigIntOptions): TBigInt;
|
|
28
|
+
/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
|
|
24
29
|
ConstructorParameters<T extends TConstructor<TSchema[], TSchema>>(schema: T, options?: SchemaOptions): TConstructorParameters<T>;
|
|
30
|
+
/** `[JavaScript]` Creates a Constructor type */
|
|
25
31
|
Constructor<T extends TSchema[], U extends TSchema>(parameters: [...T], returns: U, options?: SchemaOptions): TConstructor<T, U>;
|
|
32
|
+
/** `[JavaScript]` Creates a Date type */
|
|
26
33
|
Date(options?: DateOptions): TDate;
|
|
34
|
+
/** `[JavaScript]` Creates a Function type */
|
|
27
35
|
Function<T extends TSchema[], U extends TSchema>(parameters: [...T], returns: U, options?: SchemaOptions): TFunction<T, U>;
|
|
36
|
+
/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
|
|
28
37
|
InstanceType<T extends TConstructor<any[], any>>(schema: T, options?: SchemaOptions): TInstanceType<T>;
|
|
38
|
+
/** `[JavaScript]` Creates an Iterator type */
|
|
29
39
|
Iterator<T extends TSchema>(items: T, options?: SchemaOptions): TIterator<T>;
|
|
40
|
+
/** `[JavaScript]` Extracts the Parameters from the given Function type */
|
|
30
41
|
Parameters<T extends TFunction<TSchema[], TSchema>>(schema: T, options?: SchemaOptions): TParameters<T>;
|
|
42
|
+
/** `[JavaScript]` Creates a Promise type */
|
|
31
43
|
Promise<T extends TSchema>(item: T, options?: SchemaOptions): TPromise<T>;
|
|
44
|
+
/** `[JavaScript]` Creates a String type from a Regular Expression pattern */
|
|
32
45
|
RegExp(pattern: string, options?: SchemaOptions): TRegExp;
|
|
46
|
+
/** `[JavaScript]` Creates a String type from a Regular Expression */
|
|
33
47
|
RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
|
|
48
|
+
/** `[JavaScript]` Extracts the ReturnType from the given Function type */
|
|
34
49
|
ReturnType<T extends TFunction<any[], any>>(schema: T, options?: SchemaOptions): TReturnType<T>;
|
|
50
|
+
/** `[JavaScript]` Creates a Symbol type */
|
|
35
51
|
Symbol(options?: SchemaOptions): TSymbol;
|
|
52
|
+
/** `[JavaScript]` Creates a Undefined type */
|
|
36
53
|
Undefined(options?: SchemaOptions): TUndefined;
|
|
54
|
+
/** `[JavaScript]` Creates a Uint8Array type */
|
|
37
55
|
Uint8Array(options?: Uint8ArrayOptions): TUint8Array;
|
|
56
|
+
/** `[JavaScript]` Creates a Void type */
|
|
38
57
|
Void(options?: SchemaOptions): TVoid;
|
|
39
58
|
}
|
|
@@ -16,55 +16,73 @@ import { Symbol } from '../symbol/index.mjs';
|
|
|
16
16
|
import { Uint8Array } from '../uint8array/index.mjs';
|
|
17
17
|
import { Undefined } from '../undefined/index.mjs';
|
|
18
18
|
import { Void } from '../void/index.mjs';
|
|
19
|
+
/** JavaScript Type Builder with Static Resolution for TypeScript */
|
|
19
20
|
export class JavaScriptTypeBuilder extends JsonTypeBuilder {
|
|
21
|
+
/** `[JavaScript]` Creates a AsyncIterator type */
|
|
20
22
|
AsyncIterator(items, options = {}) {
|
|
21
23
|
return AsyncIterator(items, options);
|
|
22
24
|
}
|
|
25
|
+
/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
|
|
23
26
|
Awaited(schema, options = {}) {
|
|
24
27
|
return Awaited(schema, options);
|
|
25
28
|
}
|
|
29
|
+
/** `[JavaScript]` Creates a BigInt type */
|
|
26
30
|
BigInt(options = {}) {
|
|
27
31
|
return BigInt(options);
|
|
28
32
|
}
|
|
33
|
+
/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
|
|
29
34
|
ConstructorParameters(schema, options = {}) {
|
|
30
35
|
return ConstructorParameters(schema, options);
|
|
31
36
|
}
|
|
37
|
+
/** `[JavaScript]` Creates a Constructor type */
|
|
32
38
|
Constructor(parameters, returns, options) {
|
|
33
39
|
return Constructor(parameters, returns, options);
|
|
34
40
|
}
|
|
41
|
+
/** `[JavaScript]` Creates a Date type */
|
|
35
42
|
Date(options = {}) {
|
|
36
43
|
return Date(options);
|
|
37
44
|
}
|
|
45
|
+
/** `[JavaScript]` Creates a Function type */
|
|
38
46
|
Function(parameters, returns, options) {
|
|
39
47
|
return FunctionType(parameters, returns, options);
|
|
40
48
|
}
|
|
49
|
+
/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
|
|
41
50
|
InstanceType(schema, options = {}) {
|
|
42
51
|
return InstanceType(schema, options);
|
|
43
52
|
}
|
|
53
|
+
/** `[JavaScript]` Creates an Iterator type */
|
|
44
54
|
Iterator(items, options = {}) {
|
|
45
55
|
return Iterator(items, options);
|
|
46
56
|
}
|
|
57
|
+
/** `[JavaScript]` Extracts the Parameters from the given Function type */
|
|
47
58
|
Parameters(schema, options = {}) {
|
|
48
59
|
return Parameters(schema, options);
|
|
49
60
|
}
|
|
61
|
+
/** `[JavaScript]` Creates a Promise type */
|
|
50
62
|
Promise(item, options = {}) {
|
|
51
63
|
return Promise(item, options);
|
|
52
64
|
}
|
|
65
|
+
/** `[JavaScript]` Creates a String type */
|
|
53
66
|
RegExp(unresolved, options = {}) {
|
|
54
67
|
return RegExp(unresolved, options);
|
|
55
68
|
}
|
|
69
|
+
/** `[JavaScript]` Extracts the ReturnType from the given Function type */
|
|
56
70
|
ReturnType(schema, options = {}) {
|
|
57
71
|
return ReturnType(schema, options);
|
|
58
72
|
}
|
|
73
|
+
/** `[JavaScript]` Creates a Symbol type */
|
|
59
74
|
Symbol(options) {
|
|
60
75
|
return Symbol(options);
|
|
61
76
|
}
|
|
77
|
+
/** `[JavaScript]` Creates a Undefined type */
|
|
62
78
|
Undefined(options = {}) {
|
|
63
79
|
return Undefined(options);
|
|
64
80
|
}
|
|
81
|
+
/** `[JavaScript]` Creates a Uint8Array type */
|
|
65
82
|
Uint8Array(options = {}) {
|
|
66
83
|
return Uint8Array(options);
|
|
67
84
|
}
|
|
85
|
+
/** `[JavaScript]` Creates a Void type */
|
|
68
86
|
Void(options = {}) {
|
|
69
87
|
return Void(options);
|
|
70
88
|
}
|
|
@@ -27,7 +27,7 @@ import { type TPartial, type TPartialFromMappedResult } from '../partial/index.m
|
|
|
27
27
|
import { type TPick, type TPickFromMappedKey } from '../pick/index.mjs';
|
|
28
28
|
import { type TReadonly } from '../readonly/index.mjs';
|
|
29
29
|
import { type TReadonlyOptional } from '../readonly-optional/index.mjs';
|
|
30
|
-
import { type
|
|
30
|
+
import { type TRecordOrObject } from '../record/index.mjs';
|
|
31
31
|
import { type TRecursive, type TThis } from '../recursive/index.mjs';
|
|
32
32
|
import { type TRef } from '../ref/index.mjs';
|
|
33
33
|
import { type TRequired, type TRequiredFromMappedResult } from '../required/index.mjs';
|
|
@@ -40,65 +40,126 @@ import { type TTuple } from '../tuple/index.mjs';
|
|
|
40
40
|
import { Union } from '../union/index.mjs';
|
|
41
41
|
import { type TUnknown } from '../unknown/index.mjs';
|
|
42
42
|
import { type TUnsafe, type UnsafeOptions } from '../unsafe/index.mjs';
|
|
43
|
+
/** Json Type Builder with Static Resolution for TypeScript */
|
|
43
44
|
export declare class JsonTypeBuilder {
|
|
45
|
+
/** `[Json]` Omits compositing symbols from this schema */
|
|
44
46
|
Strict<T extends TSchema>(schema: T): T;
|
|
47
|
+
/** `[Json]` Creates a Readonly and Optional property */
|
|
45
48
|
ReadonlyOptional<T extends TSchema>(schema: T): TReadonlyOptional<T>;
|
|
49
|
+
/** `[Json]` Creates a Readonly property */
|
|
46
50
|
Readonly<T extends TSchema>(schema: T): TReadonly<T>;
|
|
51
|
+
/** `[Json]` Creates an Optional property */
|
|
47
52
|
Optional<T extends TSchema>(schema: T): TOptional<T>;
|
|
53
|
+
/** `[Json]` Creates an Any type */
|
|
48
54
|
Any(options?: SchemaOptions): TAny;
|
|
55
|
+
/** `[Json]` Creates an Array type */
|
|
49
56
|
Array<T extends TSchema>(schema: T, options?: ArrayOptions): TArray<T>;
|
|
57
|
+
/** `[Json]` Creates a Boolean type */
|
|
50
58
|
Boolean(options?: SchemaOptions): TBoolean;
|
|
59
|
+
/** `[Json]` Intrinsic function to Capitalize LiteralString types */
|
|
51
60
|
Capitalize<T extends TSchema>(schema: T, options?: SchemaOptions): TCapitalize<T>;
|
|
61
|
+
/** `[Json]` Creates a Composite object type */
|
|
52
62
|
Composite<T extends TObject[]>(objects: [...T], options?: ObjectOptions): TComposite<T>;
|
|
53
|
-
|
|
63
|
+
/** `[JavaScript]` Creates a readonly const type from the given value. */
|
|
64
|
+
Const</* const (not supported in 4.0) */ T>(value: T, options?: SchemaOptions): TConst<T>;
|
|
65
|
+
/** `[Json]` Creates a dereferenced type */
|
|
54
66
|
Deref<T extends TSchema>(schema: T, references: TSchema[]): TDeref<T>;
|
|
67
|
+
/** `[Json]` Creates a Enum type */
|
|
55
68
|
Enum<V extends TEnumValue, T extends Record<TEnumKey, V>>(item: T, options?: SchemaOptions): TEnum<T>;
|
|
69
|
+
/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
|
|
56
70
|
Exclude<L extends TMappedResult, R extends TSchema>(unionType: L, excludedMembers: R, options?: SchemaOptions): TExcludeFromMappedResult<L, R>;
|
|
71
|
+
/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
|
|
57
72
|
Exclude<L extends TSchema, R extends TSchema>(unionType: L, excludedMembers: R, options?: SchemaOptions): TExclude<L, R>;
|
|
73
|
+
/** `[Json]` Creates a Conditional type */
|
|
58
74
|
Extends<L extends TMappedResult, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedResult<L, R, T, F>;
|
|
75
|
+
/** `[Json]` Creates a Conditional type */
|
|
59
76
|
Extends<L extends TMappedKey, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedKey<L, R, T, F>;
|
|
77
|
+
/** `[Json]` Creates a Conditional type */
|
|
60
78
|
Extends<L extends TSchema, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtends<L, R, T, F>;
|
|
79
|
+
/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
|
|
61
80
|
Extract<L extends TMappedResult, R extends TSchema>(type: L, union: R, options?: SchemaOptions): TExtractFromMappedResult<L, R>;
|
|
81
|
+
/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
|
|
62
82
|
Extract<L extends TSchema, R extends TSchema>(type: L, union: R, options?: SchemaOptions): TExtract<L, R>;
|
|
83
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
63
84
|
Index<T extends TSchema, K extends TMappedKey>(T: T, K: K, options?: SchemaOptions): TIndexFromMappedKey<T, K>;
|
|
85
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
64
86
|
Index<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TIndex<T, I>;
|
|
87
|
+
/** `[Json]` Returns an Indexed property type for the given keys */
|
|
65
88
|
Index<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TIndex<T, K>;
|
|
89
|
+
/** `[Json]` Creates an Integer type */
|
|
66
90
|
Integer(options?: IntegerOptions): TInteger;
|
|
91
|
+
/** `[Json]` Creates an Intersect type */
|
|
67
92
|
Intersect<T extends TSchema[]>(T: [...T], options?: IntersectOptions): Intersect<T>;
|
|
93
|
+
/** `[Json]` Creates a KeyOf type */
|
|
68
94
|
KeyOf<T extends TMappedResult>(schema: T, options?: SchemaOptions): TKeyOfFromMappedResult<T>;
|
|
95
|
+
/** `[Json]` Creates a KeyOf type */
|
|
69
96
|
KeyOf<T extends TSchema>(schema: T, options?: SchemaOptions): TKeyOf<T>;
|
|
97
|
+
/** `[Json]` Creates a Literal type */
|
|
70
98
|
Literal<T extends TLiteralValue>(value: T, options?: SchemaOptions): TLiteral<T>;
|
|
99
|
+
/** `[Json]` Intrinsic function to Lowercase LiteralString types */
|
|
71
100
|
Lowercase<T extends TSchema>(schema: T, options?: SchemaOptions): TLowercase<T>;
|
|
101
|
+
/** `[Json]` Creates a Mapped object type */
|
|
72
102
|
Mapped<K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>, F extends TMappedFunction<I> = TMappedFunction<I>, R extends TMapped<I, F> = TMapped<I, F>>(key: K, map: F, options?: ObjectOptions): R;
|
|
103
|
+
/** `[Json]` Creates a Mapped object type */
|
|
73
104
|
Mapped<K extends PropertyKey[], F extends TMappedFunction<K> = TMappedFunction<K>, R extends TMapped<K, F> = TMapped<K, F>>(key: [...K], map: F, options?: ObjectOptions): R;
|
|
105
|
+
/** `[Json]` Creates a Never type */
|
|
74
106
|
Never(options?: SchemaOptions): TNever;
|
|
107
|
+
/** `[Json]` Creates a Not type */
|
|
75
108
|
Not<T extends TSchema>(schema: T, options?: SchemaOptions): TNot<T>;
|
|
109
|
+
/** `[Json]` Creates a Null type */
|
|
76
110
|
Null(options?: SchemaOptions): TNull;
|
|
111
|
+
/** `[Json]` Creates a Number type */
|
|
77
112
|
Number(options?: NumberOptions): TNumber;
|
|
113
|
+
/** `[Json]` Creates an Object type */
|
|
78
114
|
Object<T extends TProperties>(properties: T, options?: ObjectOptions): TObject<T>;
|
|
115
|
+
/** `[Json]` Constructs a type whose keys are omitted from the given type */
|
|
79
116
|
Omit<T extends TSchema, K extends TMappedKey>(T: T, K: K): TOmitFromMappedKey<T, K>;
|
|
117
|
+
/** `[Json]` Constructs a type whose keys are omitted from the given type */
|
|
80
118
|
Omit<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TOmit<T, I>;
|
|
119
|
+
/** `[Json]` Constructs a type whose keys are omitted from the given type */
|
|
81
120
|
Omit<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TOmit<T, K>;
|
|
121
|
+
/** `[Json]` Constructs a type where all properties are optional */
|
|
82
122
|
Partial<T extends TMappedResult>(T: T, options?: ObjectOptions): TPartialFromMappedResult<T>;
|
|
123
|
+
/** `[Json]` Constructs a type where all properties are optional */
|
|
83
124
|
Partial<T extends TSchema>(schema: T, options?: ObjectOptions): TPartial<T>;
|
|
125
|
+
/** `[Json]` Constructs a type whose keys are picked from the given type */
|
|
84
126
|
Pick<T extends TSchema, K extends TMappedKey>(T: T, K: K): TPickFromMappedKey<T, K>;
|
|
127
|
+
/** `[Json]` Constructs a type whose keys are picked from the given type */
|
|
85
128
|
Pick<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TPick<T, I>;
|
|
129
|
+
/** `[Json]` Constructs a type whose keys are picked from the given type */
|
|
86
130
|
Pick<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TPick<T, K>;
|
|
87
|
-
|
|
131
|
+
/** `[Json]` Creates a Record type */
|
|
132
|
+
Record<K extends TSchema, T extends TSchema>(key: K, schema: T, options?: ObjectOptions): TRecordOrObject<K, T>;
|
|
133
|
+
/** `[Json]` Creates a Recursive type */
|
|
88
134
|
Recursive<T extends TSchema>(callback: (thisType: TThis) => T, options?: SchemaOptions): TRecursive<T>;
|
|
135
|
+
/** `[Json]` Creates a Ref type. The referenced type must contain a $id */
|
|
89
136
|
Ref<T extends TSchema>(schema: T, options?: SchemaOptions): TRef<T>;
|
|
137
|
+
/** `[Json]` Creates a Ref type. */
|
|
90
138
|
Ref<T extends TSchema>($ref: string, options?: SchemaOptions): TRef<T>;
|
|
139
|
+
/** `[Json]` Constructs a type where all properties are required */
|
|
91
140
|
Required<T extends TMappedResult>(T: T, options?: ObjectOptions): TRequiredFromMappedResult<T>;
|
|
141
|
+
/** `[Json]` Constructs a type where all properties are required */
|
|
92
142
|
Required<T extends TSchema>(schema: T, options?: ObjectOptions): TRequired<T>;
|
|
143
|
+
/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
|
|
93
144
|
Rest<T extends TSchema>(schema: T): TRest<T>;
|
|
145
|
+
/** `[Json]` Creates a String type */
|
|
94
146
|
String(options?: StringOptions): TString;
|
|
147
|
+
/** `[Json]` Creates a TemplateLiteral type from template dsl string */
|
|
95
148
|
TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions): TemplateLiteralSyntax<T>;
|
|
149
|
+
/** `[Json]` Creates a TemplateLiteral type */
|
|
96
150
|
TemplateLiteral<T extends TTemplateLiteralKind[]>(kinds: [...T], options?: SchemaOptions): TTemplateLiteral<T>;
|
|
151
|
+
/** `[Json]` Creates a Transform type */
|
|
97
152
|
Transform<I extends TSchema>(schema: I): TransformDecodeBuilder<I>;
|
|
153
|
+
/** `[Json]` Creates a Tuple type */
|
|
98
154
|
Tuple<T extends TSchema[]>(items: [...T], options?: SchemaOptions): TTuple<T>;
|
|
155
|
+
/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
|
|
99
156
|
Uncapitalize<T extends TSchema>(schema: T, options?: SchemaOptions): TUncapitalize<T>;
|
|
157
|
+
/** `[Json]` Creates a Union type */
|
|
100
158
|
Union<T extends TSchema[]>(schemas: [...T], options?: SchemaOptions): Union<T>;
|
|
159
|
+
/** `[Json]` Creates an Unknown type */
|
|
101
160
|
Unknown(options?: SchemaOptions): TUnknown;
|
|
161
|
+
/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
|
|
102
162
|
Unsafe<T>(options?: UnsafeOptions): TUnsafe<T>;
|
|
163
|
+
/** `[Json]` Intrinsic function to Uppercase LiteralString types */
|
|
103
164
|
Uppercase<T extends TSchema>(schema: T, options?: SchemaOptions): TUppercase<T>;
|
|
104
165
|
}
|