@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
|
@@ -11,4 +11,9 @@ export declare class TransformDecodeError extends Error {
|
|
|
11
11
|
readonly value: unknown;
|
|
12
12
|
constructor(schema: TSchema, value: unknown, error: any);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* `[Internal]` Decodes the value and returns the result. This function requires that
|
|
16
|
+
* the caller `Check` the value before use. Passing unchecked values may result in
|
|
17
|
+
* undefined behavior. Refer to the `Value.Decode()` for implementation details.
|
|
18
|
+
*/
|
|
14
19
|
export declare function TransformDecode(schema: TSchema, references: TSchema[], value: unknown): unknown;
|
|
@@ -5,6 +5,10 @@ import { KeyOfPropertyKeys } from '../../type/keyof/index.mjs';
|
|
|
5
5
|
import { Index } from '../../type/indexed/index.mjs';
|
|
6
6
|
import { Deref } from '../deref/index.mjs';
|
|
7
7
|
import { Check } from '../check/index.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// Errors
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// thrown externally
|
|
8
12
|
export class TransformDecodeCheckError extends Error {
|
|
9
13
|
schema;
|
|
10
14
|
value;
|
|
@@ -25,6 +29,10 @@ export class TransformDecodeError extends Error {
|
|
|
25
29
|
this.value = value;
|
|
26
30
|
}
|
|
27
31
|
}
|
|
32
|
+
// ------------------------------------------------------------------
|
|
33
|
+
// Decode
|
|
34
|
+
// ------------------------------------------------------------------
|
|
35
|
+
// prettier-ignore
|
|
28
36
|
function Default(schema, value) {
|
|
29
37
|
try {
|
|
30
38
|
return IsTransformType(schema) ? schema[TransformKind].Decode(value) : value;
|
|
@@ -33,11 +41,13 @@ function Default(schema, value) {
|
|
|
33
41
|
throw new TransformDecodeError(schema, value, error);
|
|
34
42
|
}
|
|
35
43
|
}
|
|
44
|
+
// prettier-ignore
|
|
36
45
|
function TArray(schema, references, value) {
|
|
37
46
|
return (IsArray(value))
|
|
38
47
|
? Default(schema, value.map((value) => Visit(schema.items, references, value)))
|
|
39
48
|
: Default(schema, value);
|
|
40
49
|
}
|
|
50
|
+
// prettier-ignore
|
|
41
51
|
function TIntersect(schema, references, value) {
|
|
42
52
|
if (!IsPlainObject(value) || IsValueType(value))
|
|
43
53
|
return Default(schema, value);
|
|
@@ -62,6 +72,7 @@ function TIntersect(schema, references, value) {
|
|
|
62
72
|
function TNot(schema, references, value) {
|
|
63
73
|
return Default(schema, Visit(schema.not, references, value));
|
|
64
74
|
}
|
|
75
|
+
// prettier-ignore
|
|
65
76
|
function TObject(schema, references, value) {
|
|
66
77
|
if (!IsPlainObject(value))
|
|
67
78
|
return Default(schema, value);
|
|
@@ -83,6 +94,7 @@ function TObject(schema, references, value) {
|
|
|
83
94
|
}, knownProperties);
|
|
84
95
|
return Default(schema, unknownProperties);
|
|
85
96
|
}
|
|
97
|
+
// prettier-ignore
|
|
86
98
|
function TRecord(schema, references, value) {
|
|
87
99
|
if (!IsPlainObject(value))
|
|
88
100
|
return Default(schema, value);
|
|
@@ -105,28 +117,34 @@ function TRecord(schema, references, value) {
|
|
|
105
117
|
}, knownProperties);
|
|
106
118
|
return Default(schema, unknownProperties);
|
|
107
119
|
}
|
|
120
|
+
// prettier-ignore
|
|
108
121
|
function TRef(schema, references, value) {
|
|
109
122
|
const target = Deref(schema, references);
|
|
110
123
|
return Default(schema, Visit(target, references, value));
|
|
111
124
|
}
|
|
125
|
+
// prettier-ignore
|
|
112
126
|
function TThis(schema, references, value) {
|
|
113
127
|
const target = Deref(schema, references);
|
|
114
128
|
return Default(schema, Visit(target, references, value));
|
|
115
129
|
}
|
|
130
|
+
// prettier-ignore
|
|
116
131
|
function TTuple(schema, references, value) {
|
|
117
132
|
return (IsArray(value) && IsArray(schema.items))
|
|
118
133
|
? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
|
|
119
134
|
: Default(schema, value);
|
|
120
135
|
}
|
|
136
|
+
// prettier-ignore
|
|
121
137
|
function TUnion(schema, references, value) {
|
|
122
138
|
for (const subschema of schema.anyOf) {
|
|
123
139
|
if (!Check(subschema, references, value))
|
|
124
140
|
continue;
|
|
141
|
+
// note: ensure interior is decoded first
|
|
125
142
|
const decoded = Visit(subschema, references, value);
|
|
126
143
|
return Default(schema, decoded);
|
|
127
144
|
}
|
|
128
145
|
return Default(schema, value);
|
|
129
146
|
}
|
|
147
|
+
// prettier-ignore
|
|
130
148
|
function Visit(schema, references, value) {
|
|
131
149
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
132
150
|
const schema_ = schema;
|
|
@@ -155,6 +173,11 @@ function Visit(schema, references, value) {
|
|
|
155
173
|
return Default(schema_, value);
|
|
156
174
|
}
|
|
157
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* `[Internal]` Decodes the value and returns the result. This function requires that
|
|
178
|
+
* the caller `Check` the value before use. Passing unchecked values may result in
|
|
179
|
+
* undefined behavior. Refer to the `Value.Decode()` for implementation details.
|
|
180
|
+
*/
|
|
158
181
|
export function TransformDecode(schema, references, value) {
|
|
159
182
|
return Visit(schema, references, value);
|
|
160
183
|
}
|
|
@@ -11,4 +11,10 @@ export declare class TransformEncodeError extends Error {
|
|
|
11
11
|
readonly value: unknown;
|
|
12
12
|
constructor(schema: TSchema, value: unknown, error: any);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* `[Internal]` Encodes the value and returns the result. This function expects the
|
|
16
|
+
* caller to pass a statically checked value. This function does not check the encoded
|
|
17
|
+
* result, meaning the result should be passed to `Check` before use. Refer to the
|
|
18
|
+
* `Value.Encode()` function for implementation details.
|
|
19
|
+
*/
|
|
14
20
|
export declare function TransformEncode(schema: TSchema, references: TSchema[], value: unknown): unknown;
|
|
@@ -5,6 +5,9 @@ import { KeyOfPropertyKeys } from '../../type/keyof/index.mjs';
|
|
|
5
5
|
import { Index } from '../../type/indexed/index.mjs';
|
|
6
6
|
import { Deref } from '../deref/index.mjs';
|
|
7
7
|
import { Check } from '../check/index.mjs';
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// Errors
|
|
10
|
+
// ------------------------------------------------------------------
|
|
8
11
|
export class TransformEncodeCheckError extends Error {
|
|
9
12
|
schema;
|
|
10
13
|
value;
|
|
@@ -25,6 +28,10 @@ export class TransformEncodeError extends Error {
|
|
|
25
28
|
this.value = value;
|
|
26
29
|
}
|
|
27
30
|
}
|
|
31
|
+
// ------------------------------------------------------------------
|
|
32
|
+
// Encode
|
|
33
|
+
// ------------------------------------------------------------------
|
|
34
|
+
// prettier-ignore
|
|
28
35
|
function Default(schema, value) {
|
|
29
36
|
try {
|
|
30
37
|
return IsTransformType(schema) ? schema[TransformKind].Encode(value) : value;
|
|
@@ -33,12 +40,14 @@ function Default(schema, value) {
|
|
|
33
40
|
throw new TransformEncodeError(schema, value, error);
|
|
34
41
|
}
|
|
35
42
|
}
|
|
43
|
+
// prettier-ignore
|
|
36
44
|
function TArray(schema, references, value) {
|
|
37
45
|
const defaulted = Default(schema, value);
|
|
38
46
|
return IsArray(defaulted)
|
|
39
47
|
? defaulted.map((value) => Visit(schema.items, references, value))
|
|
40
48
|
: defaulted;
|
|
41
49
|
}
|
|
50
|
+
// prettier-ignore
|
|
42
51
|
function TIntersect(schema, references, value) {
|
|
43
52
|
const defaulted = Default(schema, value);
|
|
44
53
|
if (!IsPlainObject(value) || IsValueType(value))
|
|
@@ -60,9 +69,11 @@ function TIntersect(schema, references, value) {
|
|
|
60
69
|
: value;
|
|
61
70
|
}, knownProperties);
|
|
62
71
|
}
|
|
72
|
+
// prettier-ignore
|
|
63
73
|
function TNot(schema, references, value) {
|
|
64
74
|
return Default(schema.not, Default(schema, value));
|
|
65
75
|
}
|
|
76
|
+
// prettier-ignore
|
|
66
77
|
function TObject(schema, references, value) {
|
|
67
78
|
const defaulted = Default(schema, value);
|
|
68
79
|
if (!IsPlainObject(value))
|
|
@@ -84,6 +95,7 @@ function TObject(schema, references, value) {
|
|
|
84
95
|
: value;
|
|
85
96
|
}, knownProperties);
|
|
86
97
|
}
|
|
98
|
+
// prettier-ignore
|
|
87
99
|
function TRecord(schema, references, value) {
|
|
88
100
|
const defaulted = Default(schema, value);
|
|
89
101
|
if (!IsPlainObject(value))
|
|
@@ -106,27 +118,33 @@ function TRecord(schema, references, value) {
|
|
|
106
118
|
: value;
|
|
107
119
|
}, knownProperties);
|
|
108
120
|
}
|
|
121
|
+
// prettier-ignore
|
|
109
122
|
function TRef(schema, references, value) {
|
|
110
123
|
const target = Deref(schema, references);
|
|
111
124
|
const resolved = Visit(target, references, value);
|
|
112
125
|
return Default(schema, resolved);
|
|
113
126
|
}
|
|
127
|
+
// prettier-ignore
|
|
114
128
|
function TThis(schema, references, value) {
|
|
115
129
|
const target = Deref(schema, references);
|
|
116
130
|
const resolved = Visit(target, references, value);
|
|
117
131
|
return Default(schema, resolved);
|
|
118
132
|
}
|
|
133
|
+
// prettier-ignore
|
|
119
134
|
function TTuple(schema, references, value) {
|
|
120
135
|
const value1 = Default(schema, value);
|
|
121
136
|
return IsArray(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
|
|
122
137
|
}
|
|
138
|
+
// prettier-ignore
|
|
123
139
|
function TUnion(schema, references, value) {
|
|
140
|
+
// test value against union variants
|
|
124
141
|
for (const subschema of schema.anyOf) {
|
|
125
142
|
if (!Check(subschema, references, value))
|
|
126
143
|
continue;
|
|
127
144
|
const value1 = Visit(subschema, references, value);
|
|
128
145
|
return Default(schema, value1);
|
|
129
146
|
}
|
|
147
|
+
// test transformed value against union variants
|
|
130
148
|
for (const subschema of schema.anyOf) {
|
|
131
149
|
const value1 = Visit(subschema, references, value);
|
|
132
150
|
if (!Check(schema, references, value1))
|
|
@@ -135,6 +153,7 @@ function TUnion(schema, references, value) {
|
|
|
135
153
|
}
|
|
136
154
|
return Default(schema, value);
|
|
137
155
|
}
|
|
156
|
+
// prettier-ignore
|
|
138
157
|
function Visit(schema, references, value) {
|
|
139
158
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
140
159
|
const schema_ = schema;
|
|
@@ -161,6 +180,12 @@ function Visit(schema, references, value) {
|
|
|
161
180
|
return Default(schema_, value);
|
|
162
181
|
}
|
|
163
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* `[Internal]` Encodes the value and returns the result. This function expects the
|
|
185
|
+
* caller to pass a statically checked value. This function does not check the encoded
|
|
186
|
+
* result, meaning the result should be passed to `Check` before use. Refer to the
|
|
187
|
+
* `Value.Encode()` function for implementation details.
|
|
188
|
+
*/
|
|
164
189
|
export function TransformEncode(schema, references, value) {
|
|
165
190
|
return Visit(schema, references, value);
|
|
166
191
|
}
|
|
@@ -2,56 +2,71 @@ import { TTransform as IsTransformType, TSchema as IsSchemaType } from '../../ty
|
|
|
2
2
|
import { IsString, IsUndefined } from '../guard/index.mjs';
|
|
3
3
|
import { Deref } from '../deref/index.mjs';
|
|
4
4
|
import { Kind } from '../../type/symbols/index.mjs';
|
|
5
|
+
// prettier-ignore
|
|
5
6
|
function TArray(schema, references) {
|
|
6
7
|
return IsTransformType(schema) || Visit(schema.items, references);
|
|
7
8
|
}
|
|
9
|
+
// prettier-ignore
|
|
8
10
|
function TAsyncIterator(schema, references) {
|
|
9
11
|
return IsTransformType(schema) || Visit(schema.items, references);
|
|
10
12
|
}
|
|
13
|
+
// prettier-ignore
|
|
11
14
|
function TConstructor(schema, references) {
|
|
12
15
|
return IsTransformType(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
|
|
13
16
|
}
|
|
17
|
+
// prettier-ignore
|
|
14
18
|
function TFunction(schema, references) {
|
|
15
19
|
return IsTransformType(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
|
|
16
20
|
}
|
|
21
|
+
// prettier-ignore
|
|
17
22
|
function TIntersect(schema, references) {
|
|
18
23
|
return IsTransformType(schema) || IsTransformType(schema.unevaluatedProperties) || schema.allOf.some((schema) => Visit(schema, references));
|
|
19
24
|
}
|
|
25
|
+
// prettier-ignore
|
|
20
26
|
function TIterator(schema, references) {
|
|
21
27
|
return IsTransformType(schema) || Visit(schema.items, references);
|
|
22
28
|
}
|
|
29
|
+
// prettier-ignore
|
|
23
30
|
function TNot(schema, references) {
|
|
24
31
|
return IsTransformType(schema) || Visit(schema.not, references);
|
|
25
32
|
}
|
|
33
|
+
// prettier-ignore
|
|
26
34
|
function TObject(schema, references) {
|
|
27
35
|
return (IsTransformType(schema) ||
|
|
28
36
|
Object.values(schema.properties).some((schema) => Visit(schema, references)) ||
|
|
29
37
|
(IsSchemaType(schema.additionalProperties) && Visit(schema.additionalProperties, references)));
|
|
30
38
|
}
|
|
39
|
+
// prettier-ignore
|
|
31
40
|
function TPromise(schema, references) {
|
|
32
41
|
return IsTransformType(schema) || Visit(schema.item, references);
|
|
33
42
|
}
|
|
43
|
+
// prettier-ignore
|
|
34
44
|
function TRecord(schema, references) {
|
|
35
45
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
36
46
|
const property = schema.patternProperties[pattern];
|
|
37
47
|
return IsTransformType(schema) || Visit(property, references) || (IsSchemaType(schema.additionalProperties) && IsTransformType(schema.additionalProperties));
|
|
38
48
|
}
|
|
49
|
+
// prettier-ignore
|
|
39
50
|
function TRef(schema, references) {
|
|
40
51
|
if (IsTransformType(schema))
|
|
41
52
|
return true;
|
|
42
53
|
return Visit(Deref(schema, references), references);
|
|
43
54
|
}
|
|
55
|
+
// prettier-ignore
|
|
44
56
|
function TThis(schema, references) {
|
|
45
57
|
if (IsTransformType(schema))
|
|
46
58
|
return true;
|
|
47
59
|
return Visit(Deref(schema, references), references);
|
|
48
60
|
}
|
|
61
|
+
// prettier-ignore
|
|
49
62
|
function TTuple(schema, references) {
|
|
50
63
|
return IsTransformType(schema) || (!IsUndefined(schema.items) && schema.items.some((schema) => Visit(schema, references)));
|
|
51
64
|
}
|
|
65
|
+
// prettier-ignore
|
|
52
66
|
function TUnion(schema, references) {
|
|
53
67
|
return IsTransformType(schema) || schema.anyOf.some((schema) => Visit(schema, references));
|
|
54
68
|
}
|
|
69
|
+
// prettier-ignore
|
|
55
70
|
function Visit(schema, references) {
|
|
56
71
|
const references_ = IsString(schema.$id) ? [...references, schema] : references;
|
|
57
72
|
const schema_ = schema;
|
|
@@ -93,6 +108,7 @@ function Visit(schema, references) {
|
|
|
93
108
|
}
|
|
94
109
|
}
|
|
95
110
|
const visited = new Set();
|
|
111
|
+
/** Returns true if this schema contains a transform codec */
|
|
96
112
|
export function HasTransform(schema, references) {
|
|
97
113
|
visited.clear();
|
|
98
114
|
return Visit(schema, references);
|
|
@@ -3,27 +3,51 @@ import { Edit } from '../delta/index.mjs';
|
|
|
3
3
|
import { ValueErrorIterator } from '../../errors/index.mjs';
|
|
4
4
|
import type { TSchema } from '../../type/schema/index.mjs';
|
|
5
5
|
import type { Static, StaticDecode, StaticEncode } from '../../type/static/index.mjs';
|
|
6
|
+
/** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
|
|
6
7
|
export declare function Cast<T extends TSchema>(schema: T, references: TSchema[], value: unknown): Static<T>;
|
|
8
|
+
/** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
|
|
7
9
|
export declare function Cast<T extends TSchema>(schema: T, value: unknown): Static<T>;
|
|
10
|
+
/** Creates a value from the given type and references */
|
|
8
11
|
export declare function Create<T extends TSchema>(schema: T, references: TSchema[]): Static<T>;
|
|
12
|
+
/** Creates a value from the given type */
|
|
9
13
|
export declare function Create<T extends TSchema>(schema: T): Static<T>;
|
|
14
|
+
/** Returns true if the value matches the given type and references */
|
|
10
15
|
export declare function Check<T extends TSchema>(schema: T, references: TSchema[], value: unknown): value is Static<T>;
|
|
16
|
+
/** Returns true if the value matches the given type */
|
|
11
17
|
export declare function Check<T extends TSchema>(schema: T, value: unknown): value is Static<T>;
|
|
18
|
+
/** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
|
|
12
19
|
export declare function Clean<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
|
|
20
|
+
/** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
|
|
13
21
|
export declare function Clean<T extends TSchema>(schema: T, value: unknown): unknown;
|
|
22
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possible */
|
|
14
23
|
export declare function Convert<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
|
|
24
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possibl. */
|
|
15
25
|
export declare function Convert<T extends TSchema>(schema: T, value: unknown): unknown;
|
|
26
|
+
/** Returns a structural clone of the given value */
|
|
16
27
|
export declare function Clone<T>(value: T): T;
|
|
28
|
+
/** Decodes a value or throws if error */
|
|
17
29
|
export declare function Decode<T extends TSchema, R = StaticDecode<T>>(schema: T, references: TSchema[], value: unknown): R;
|
|
30
|
+
/** Decodes a value or throws if error */
|
|
18
31
|
export declare function Decode<T extends TSchema, R = StaticDecode<T>>(schema: T, value: unknown): R;
|
|
32
|
+
/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
|
|
19
33
|
export declare function Default<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
|
|
34
|
+
/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
|
|
20
35
|
export declare function Default<T extends TSchema>(schema: T, value: unknown): unknown;
|
|
36
|
+
/** Encodes a value or throws if error */
|
|
21
37
|
export declare function Encode<T extends TSchema, R = StaticEncode<T>>(schema: T, references: TSchema[], value: unknown): R;
|
|
38
|
+
/** Encodes a value or throws if error */
|
|
22
39
|
export declare function Encode<T extends TSchema, R = StaticEncode<T>>(schema: T, value: unknown): R;
|
|
40
|
+
/** Returns an iterator for each error in this value. */
|
|
23
41
|
export declare function Errors<T extends TSchema>(schema: T, references: TSchema[], value: unknown): ValueErrorIterator;
|
|
42
|
+
/** Returns an iterator for each error in this value. */
|
|
24
43
|
export declare function Errors<T extends TSchema>(schema: T, value: unknown): ValueErrorIterator;
|
|
44
|
+
/** Returns true if left and right values are structurally equal */
|
|
25
45
|
export declare function Equal<T>(left: T, right: unknown): right is T;
|
|
46
|
+
/** Returns edits to transform the current value into the next value */
|
|
26
47
|
export declare function Diff(current: unknown, next: unknown): Edit[];
|
|
48
|
+
/** Returns a FNV1A-64 non cryptographic hash of the given value */
|
|
27
49
|
export declare function Hash(value: unknown): bigint;
|
|
50
|
+
/** Returns a new value with edits applied to the given value */
|
|
28
51
|
export declare function Patch<T = any>(current: unknown, edits: Edit[]): T;
|
|
52
|
+
/** `[Mutable]` Performs a deep mutable value assignment while retaining internal references. */
|
|
29
53
|
export declare function Mutate(current: Mutable, next: Mutable): void;
|
|
@@ -11,33 +11,42 @@ import { Check as CheckValue } from '../check/index.mjs';
|
|
|
11
11
|
import { Default as DefaultValue } from '../default/index.mjs';
|
|
12
12
|
import { Diff as DiffValue, Patch as PatchValue } from '../delta/index.mjs';
|
|
13
13
|
import { Errors as ValueErrors } from '../../errors/index.mjs';
|
|
14
|
+
/** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
|
|
14
15
|
export function Cast(...args) {
|
|
15
16
|
return CastValue.apply(CastValue, args);
|
|
16
17
|
}
|
|
18
|
+
/** Creates a value from the given type */
|
|
17
19
|
export function Create(...args) {
|
|
18
20
|
return CreateValue.apply(CreateValue, args);
|
|
19
21
|
}
|
|
22
|
+
/** Returns true if the value matches the given type */
|
|
20
23
|
export function Check(...args) {
|
|
21
24
|
return CheckValue.apply(CheckValue, args);
|
|
22
25
|
}
|
|
26
|
+
/** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
|
|
23
27
|
export function Clean(...args) {
|
|
24
28
|
return CleanValue.apply(CleanValue, args);
|
|
25
29
|
}
|
|
30
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possible */
|
|
26
31
|
export function Convert(...args) {
|
|
27
32
|
return ConvertValue.apply(ConvertValue, args);
|
|
28
33
|
}
|
|
34
|
+
/** Returns a structural clone of the given value */
|
|
29
35
|
export function Clone(value) {
|
|
30
36
|
return CloneValue(value);
|
|
31
37
|
}
|
|
38
|
+
/** Decodes a value or throws if error */
|
|
32
39
|
export function Decode(...args) {
|
|
33
40
|
const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];
|
|
34
41
|
if (!Check(schema, references, value))
|
|
35
42
|
throw new TransformDecodeCheckError(schema, value, Errors(schema, references, value).First());
|
|
36
43
|
return TransformDecode(schema, references, value);
|
|
37
44
|
}
|
|
45
|
+
/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
|
|
38
46
|
export function Default(...args) {
|
|
39
47
|
return DefaultValue.apply(DefaultValue, args);
|
|
40
48
|
}
|
|
49
|
+
/** Encodes a value or throws if error */
|
|
41
50
|
export function Encode(...args) {
|
|
42
51
|
const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];
|
|
43
52
|
const encoded = TransformEncode(schema, references, value);
|
|
@@ -45,21 +54,27 @@ export function Encode(...args) {
|
|
|
45
54
|
throw new TransformEncodeCheckError(schema, value, Errors(schema, references, value).First());
|
|
46
55
|
return encoded;
|
|
47
56
|
}
|
|
57
|
+
/** Returns an iterator for each error in this value. */
|
|
48
58
|
export function Errors(...args) {
|
|
49
59
|
return ValueErrors.apply(ValueErrors, args);
|
|
50
60
|
}
|
|
61
|
+
/** Returns true if left and right values are structurally equal */
|
|
51
62
|
export function Equal(left, right) {
|
|
52
63
|
return EqualValue(left, right);
|
|
53
64
|
}
|
|
65
|
+
/** Returns edits to transform the current value into the next value */
|
|
54
66
|
export function Diff(current, next) {
|
|
55
67
|
return DiffValue(current, next);
|
|
56
68
|
}
|
|
69
|
+
/** Returns a FNV1A-64 non cryptographic hash of the given value */
|
|
57
70
|
export function Hash(value) {
|
|
58
71
|
return HashValue(value);
|
|
59
72
|
}
|
|
73
|
+
/** Returns a new value with edits applied to the given value */
|
|
60
74
|
export function Patch(current, edits) {
|
|
61
75
|
return PatchValue(current, edits);
|
|
62
76
|
}
|
|
77
|
+
/** `[Mutable]` Performs a deep mutable value assignment while retaining internal references. */
|
|
63
78
|
export function Mutate(current, next) {
|
|
64
79
|
MutateValue(current, next);
|
|
65
80
|
}
|
|
@@ -9,10 +9,15 @@ export declare class TypeCheck<T extends TSchema> {
|
|
|
9
9
|
private readonly code;
|
|
10
10
|
private readonly hasTransform;
|
|
11
11
|
constructor(schema: T, references: TSchema[], checkFunc: CheckFunction, code: string);
|
|
12
|
+
/** Returns the generated assertion code used to validate this type. */
|
|
12
13
|
Code(): string;
|
|
14
|
+
/** Returns an iterator for each error in this value. */
|
|
13
15
|
Errors(value: unknown): ValueErrorIterator;
|
|
16
|
+
/** Returns true if the value matches the compiled type. */
|
|
14
17
|
Check(value: unknown): value is Static<T>;
|
|
18
|
+
/** Decodes a value or throws if error */
|
|
15
19
|
Decode(value: unknown): StaticDecode<T>;
|
|
20
|
+
/** Encodes a value or throws if error */
|
|
16
21
|
Encode(value: unknown): StaticEncode<T>;
|
|
17
22
|
}
|
|
18
23
|
export declare class TypeCompilerUnknownTypeError extends Error {
|
|
@@ -34,8 +39,12 @@ export type TypeCompilerLanguageOption = 'typescript' | 'javascript';
|
|
|
34
39
|
export interface TypeCompilerCodegenOptions {
|
|
35
40
|
language?: TypeCompilerLanguageOption;
|
|
36
41
|
}
|
|
42
|
+
/** Compiles Types for Runtime Type Checking */
|
|
37
43
|
export declare namespace TypeCompiler {
|
|
44
|
+
/** Generates the code used to assert this type and returns it as a string */
|
|
38
45
|
function Code<T extends TSchema>(schema: T, references: TSchema[], options?: TypeCompilerCodegenOptions): string;
|
|
46
|
+
/** Generates the code used to assert this type and returns it as a string */
|
|
39
47
|
function Code<T extends TSchema>(schema: T, options?: TypeCompilerCodegenOptions): string;
|
|
48
|
+
/** Compiles a TypeBox type for optimal runtime type checking. Types must be valid TypeBox types of TSchema */
|
|
40
49
|
function Compile<T extends TSchema>(schema: T, references?: TSchema[]): TypeCheck<T>;
|
|
41
50
|
}
|