@sinclair/typebox 0.32.0-dev-16 → 0.32.0-dev-18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/import/compiler/compiler.d.mts +9 -0
- package/build/import/compiler/compiler.mjs +60 -6
- package/build/import/errors/errors.d.mts +3 -0
- package/build/import/errors/errors.mjs +28 -3
- package/build/import/errors/function.d.mts +3 -0
- package/build/import/errors/function.mjs +4 -0
- package/build/import/index.mjs +9 -0
- package/build/import/system/policy.d.mts +10 -0
- package/build/import/system/policy.mjs +13 -0
- package/build/import/system/system.d.mts +3 -0
- package/build/import/system/system.mjs +9 -0
- package/build/import/type/any/any.d.mts +1 -0
- package/build/import/type/any/any.mjs +1 -0
- package/build/import/type/array/array.d.mts +7 -0
- package/build/import/type/array/array.mjs +1 -0
- package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
- package/build/import/type/async-iterator/async-iterator.mjs +1 -0
- package/build/import/type/awaited/awaited.d.mts +7 -6
- package/build/import/type/awaited/awaited.mjs +23 -13
- package/build/import/type/bigint/bigint.d.mts +1 -0
- package/build/import/type/bigint/bigint.mjs +1 -0
- package/build/import/type/boolean/boolean.d.mts +1 -0
- package/build/import/type/boolean/boolean.mjs +1 -0
- package/build/import/type/clone/type.d.mts +2 -0
- package/build/import/type/clone/type.mjs +2 -0
- package/build/import/type/clone/value.d.mts +1 -0
- package/build/import/type/clone/value.mjs +2 -0
- package/build/import/type/composite/composite.d.mts +1 -0
- package/build/import/type/composite/composite.mjs +1 -0
- package/build/import/type/const/const.d.mts +2 -1
- package/build/import/type/const/const.mjs +5 -1
- package/build/import/type/constructor/constructor.d.mts +1 -0
- package/build/import/type/constructor/constructor.mjs +1 -0
- package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
- package/build/import/type/constructor-parameters/constructor-parameters.mjs +1 -0
- package/build/import/type/date/date.d.mts +6 -0
- package/build/import/type/date/date.mjs +1 -0
- package/build/import/type/deref/deref.d.mts +1 -0
- package/build/import/type/deref/deref.mjs +18 -0
- package/build/import/type/enum/enum.d.mts +1 -0
- package/build/import/type/enum/enum.mjs +1 -0
- package/build/import/type/exclude/exclude-from-mapped-result.mjs +3 -0
- package/build/import/type/exclude/exclude.d.mts +2 -0
- package/build/import/type/exclude/exclude.mjs +3 -0
- package/build/import/type/extends/extends-check.mjs +173 -1
- package/build/import/type/extends/extends-from-mapped-key.mjs +4 -0
- package/build/import/type/extends/extends-from-mapped-result.mjs +3 -0
- package/build/import/type/extends/extends-undefined.d.mts +1 -0
- package/build/import/type/extends/extends-undefined.mjs +3 -0
- package/build/import/type/extends/extends.d.mts +3 -0
- package/build/import/type/extends/extends.mjs +7 -0
- package/build/import/type/extract/extract-from-mapped-result.mjs +3 -0
- package/build/import/type/extract/extract.d.mts +2 -0
- package/build/import/type/extract/extract.mjs +3 -0
- package/build/import/type/function/function.d.mts +1 -0
- package/build/import/type/function/function.mjs +1 -0
- package/build/import/type/guard/type.d.mts +46 -0
- package/build/import/type/guard/type.mjs +84 -1
- package/build/import/type/guard/value.d.mts +14 -0
- package/build/import/type/guard/value.mjs +14 -0
- package/build/import/type/helpers/helpers.d.mts +1 -0
- package/build/import/type/helpers/helpers.mjs +1 -0
- package/build/import/type/indexed/index.d.mts +0 -1
- package/build/import/type/indexed/index.mjs +0 -1
- package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +10 -3
- package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
- package/build/import/type/indexed/indexed-property-keys.mjs +9 -0
- package/build/import/type/indexed/indexed.d.mts +40 -4
- package/build/import/type/indexed/indexed.mjs +84 -5
- package/build/import/type/instance-type/instance-type.d.mts +1 -0
- package/build/import/type/instance-type/instance-type.mjs +1 -0
- package/build/import/type/integer/integer.d.mts +1 -0
- package/build/import/type/integer/integer.mjs +1 -0
- package/build/import/type/intersect/intersect-create.mjs +8 -0
- package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
- package/build/import/type/intersect/intersect-evaluated.mjs +9 -0
- package/build/import/type/intersect/intersect.d.mts +1 -0
- package/build/import/type/intersect/intersect.mjs +5 -0
- package/build/import/type/intrinsic/capitalize.d.mts +1 -0
- package/build/import/type/intrinsic/capitalize.mjs +1 -0
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -0
- package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
- package/build/import/type/intrinsic/intrinsic.mjs +16 -1
- package/build/import/type/intrinsic/lowercase.d.mts +1 -0
- package/build/import/type/intrinsic/lowercase.mjs +1 -0
- package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
- package/build/import/type/intrinsic/uncapitalize.mjs +1 -0
- package/build/import/type/intrinsic/uppercase.d.mts +1 -0
- package/build/import/type/intrinsic/uppercase.mjs +1 -0
- package/build/import/type/iterator/iterator.d.mts +1 -0
- package/build/import/type/iterator/iterator.mjs +1 -0
- package/build/import/type/keyof/keyof-from-mapped-result.mjs +3 -0
- package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
- package/build/import/type/keyof/keyof-property-keys.mjs +20 -0
- package/build/import/type/keyof/keyof.d.mts +2 -0
- package/build/import/type/keyof/keyof.mjs +6 -0
- package/build/import/type/literal/literal.d.mts +1 -0
- package/build/import/type/literal/literal.mjs +1 -0
- package/build/import/type/mapped/mapped-key.mjs +1 -0
- package/build/import/type/mapped/mapped-result.mjs +1 -0
- package/build/import/type/mapped/mapped.d.mts +2 -0
- package/build/import/type/mapped/mapped.mjs +19 -1
- package/build/import/type/modifiers/modifiers.mjs +10 -0
- package/build/import/type/never/never.d.mts +1 -0
- package/build/import/type/never/never.mjs +1 -0
- package/build/import/type/not/not.d.mts +1 -0
- package/build/import/type/not/not.mjs +1 -0
- package/build/import/type/null/null.d.mts +1 -0
- package/build/import/type/null/null.mjs +1 -0
- package/build/import/type/number/number.d.mts +1 -0
- package/build/import/type/number/number.mjs +1 -0
- package/build/import/type/object/object.d.mts +5 -0
- package/build/import/type/object/object.mjs +6 -0
- package/build/import/type/omit/omit-from-mapped-key.mjs +4 -0
- package/build/import/type/omit/omit.d.mts +3 -0
- package/build/import/type/omit/omit.mjs +12 -0
- package/build/import/type/operators/operators.d.mts +8 -0
- package/build/import/type/operators/operators.mjs +15 -0
- package/build/import/type/optional/optional.d.mts +1 -0
- package/build/import/type/optional/optional.mjs +1 -0
- package/build/import/type/parameters/parameters.d.mts +1 -0
- package/build/import/type/parameters/parameters.mjs +1 -0
- package/build/import/type/partial/partial-from-mapped-result.mjs +3 -0
- package/build/import/type/partial/partial.d.mts +2 -0
- package/build/import/type/partial/partial.mjs +9 -0
- package/build/import/type/pick/pick-from-mapped-key.mjs +4 -0
- package/build/import/type/pick/pick.d.mts +3 -0
- package/build/import/type/pick/pick.mjs +7 -0
- package/build/import/type/promise/promise.d.mts +1 -0
- package/build/import/type/promise/promise.mjs +1 -0
- package/build/import/type/readonly/readonly.d.mts +1 -0
- package/build/import/type/readonly/readonly.mjs +1 -0
- package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
- package/build/import/type/readonly-optional/readonly-optional.mjs +1 -0
- package/build/import/type/record/record.d.mts +11 -9
- package/build/import/type/record/record.mjs +53 -28
- package/build/import/type/recursive/recursive.d.mts +1 -0
- package/build/import/type/recursive/recursive.mjs +3 -0
- package/build/import/type/ref/ref.d.mts +2 -0
- package/build/import/type/ref/ref.mjs +1 -0
- package/build/import/type/regexp/regexp.d.mts +2 -0
- package/build/import/type/regexp/regexp.mjs +1 -0
- package/build/import/type/registry/format.d.mts +6 -0
- package/build/import/type/registry/format.mjs +7 -0
- package/build/import/type/registry/type.d.mts +6 -0
- package/build/import/type/registry/type.mjs +7 -0
- package/build/import/type/required/required-from-mapped-result.mjs +3 -0
- package/build/import/type/required/required.d.mts +2 -0
- package/build/import/type/required/required.mjs +9 -0
- package/build/import/type/rest/rest.d.mts +1 -0
- package/build/import/type/rest/rest.mjs +5 -0
- package/build/import/type/return-type/return-type.d.mts +1 -0
- package/build/import/type/return-type/return-type.mjs +1 -0
- package/build/import/type/schema/schema.d.mts +7 -0
- package/build/import/type/static/static.d.mts +3 -0
- package/build/import/type/strict/strict.d.mts +1 -0
- package/build/import/type/strict/strict.mjs +1 -0
- package/build/import/type/string/string.d.mts +7 -0
- package/build/import/type/string/string.mjs +1 -0
- package/build/import/type/symbol/symbol.d.mts +1 -0
- package/build/import/type/symbol/symbol.mjs +1 -0
- package/build/import/type/symbols/symbols.d.mts +5 -0
- package/build/import/type/symbols/symbols.mjs +5 -0
- package/build/import/type/template-literal/finite.mjs +10 -0
- package/build/import/type/template-literal/generate.mjs +10 -0
- package/build/import/type/template-literal/parser.d.mts +2 -0
- package/build/import/type/template-literal/parser.mjs +17 -0
- package/build/import/type/template-literal/pattern.mjs +11 -0
- package/build/import/type/template-literal/syntax.d.mts +1 -0
- package/build/import/type/template-literal/syntax.mjs +8 -0
- package/build/import/type/template-literal/template-literal.d.mts +2 -0
- package/build/import/type/template-literal/template-literal.mjs +2 -0
- package/build/import/type/template-literal/union.d.mts +1 -0
- package/build/import/type/template-literal/union.mjs +4 -0
- package/build/import/type/transform/transform.d.mts +1 -0
- package/build/import/type/transform/transform.mjs +9 -0
- package/build/import/type/tuple/tuple.d.mts +1 -0
- package/build/import/type/tuple/tuple.mjs +3 -0
- package/build/import/type/type/index.d.mts +1 -0
- package/build/import/type/type/index.mjs +7 -0
- package/build/import/type/type/javascript.d.mts +19 -0
- package/build/import/type/type/javascript.mjs +18 -0
- package/build/import/type/type/json.d.mts +64 -3
- package/build/import/type/type/json.mjs +55 -1
- package/build/import/type/type/type.mjs +3 -0
- package/build/import/type/uint8array/uint8array.d.mts +1 -0
- package/build/import/type/uint8array/uint8array.mjs +1 -0
- package/build/import/type/undefined/undefined.d.mts +1 -0
- package/build/import/type/undefined/undefined.mjs +1 -0
- package/build/import/type/union/union-evaluated.d.mts +1 -0
- package/build/import/type/union/union-evaluated.mjs +10 -0
- package/build/import/type/union/union.d.mts +1 -0
- package/build/import/type/union/union.mjs +2 -0
- package/build/import/type/unknown/unknown.d.mts +1 -0
- package/build/import/type/unknown/unknown.mjs +1 -0
- package/build/import/type/unsafe/unsafe.d.mts +1 -0
- package/build/import/type/unsafe/unsafe.mjs +1 -0
- package/build/import/type/void/void.d.mts +1 -0
- package/build/import/type/void/void.mjs +1 -0
- package/build/import/value/cast/cast.d.mts +2 -0
- package/build/import/value/cast/cast.mjs +28 -0
- package/build/import/value/check/check.d.mts +2 -0
- package/build/import/value/check/check.mjs +19 -1
- package/build/import/value/clean/clean.d.mts +2 -0
- package/build/import/value/clean/clean.mjs +12 -1
- package/build/import/value/clone/clone.d.mts +1 -0
- package/build/import/value/clone/clone.mjs +7 -0
- package/build/import/value/convert/convert.d.mts +2 -0
- package/build/import/value/convert/convert.mjs +30 -1
- package/build/import/value/create/create.d.mts +2 -0
- package/build/import/value/create/create.mjs +17 -0
- package/build/import/value/default/default.d.mts +2 -0
- package/build/import/value/default/default.mjs +19 -0
- package/build/import/value/delta/delta.mjs +15 -0
- package/build/import/value/deref/deref.d.mts +1 -0
- package/build/import/value/deref/deref.mjs +1 -0
- package/build/import/value/equal/equal.d.mts +1 -0
- package/build/import/value/equal/equal.mjs +7 -0
- package/build/import/value/guard/guard.d.mts +20 -0
- package/build/import/value/guard/guard.mjs +30 -0
- package/build/import/value/hash/hash.d.mts +1 -0
- package/build/import/value/hash/hash.mjs +19 -0
- package/build/import/value/index.mjs +12 -0
- package/build/import/value/mutate/mutate.d.mts +1 -0
- package/build/import/value/mutate/mutate.mjs +11 -0
- package/build/import/value/pointer/pointer.d.mts +5 -0
- package/build/import/value/pointer/pointer.mjs +18 -0
- package/build/import/value/transform/decode.d.mts +5 -0
- package/build/import/value/transform/decode.mjs +23 -0
- package/build/import/value/transform/encode.d.mts +6 -0
- package/build/import/value/transform/encode.mjs +25 -0
- package/build/import/value/transform/has.d.mts +1 -0
- package/build/import/value/transform/has.mjs +16 -0
- package/build/import/value/value/value.d.mts +24 -0
- package/build/import/value/value/value.mjs +15 -0
- package/build/require/compiler/compiler.d.ts +9 -0
- package/build/require/compiler/compiler.js +61 -6
- package/build/require/compiler/index.js +1 -0
- package/build/require/errors/errors.d.ts +3 -0
- package/build/require/errors/errors.js +29 -3
- package/build/require/errors/function.d.ts +3 -0
- package/build/require/errors/function.js +5 -0
- package/build/require/errors/index.js +1 -0
- package/build/require/index.js +10 -0
- package/build/require/system/index.js +1 -0
- package/build/require/system/policy.d.ts +10 -0
- package/build/require/system/policy.js +14 -0
- package/build/require/system/system.d.ts +3 -0
- package/build/require/system/system.js +10 -0
- package/build/require/type/any/any.d.ts +1 -0
- package/build/require/type/any/any.js +2 -0
- package/build/require/type/any/index.js +1 -0
- package/build/require/type/array/array.d.ts +7 -0
- package/build/require/type/array/array.js +2 -0
- package/build/require/type/array/index.js +1 -0
- package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
- package/build/require/type/async-iterator/async-iterator.js +2 -0
- package/build/require/type/async-iterator/index.js +1 -0
- package/build/require/type/awaited/awaited.d.ts +7 -6
- package/build/require/type/awaited/awaited.js +25 -15
- package/build/require/type/awaited/index.js +1 -0
- package/build/require/type/bigint/bigint.d.ts +1 -0
- package/build/require/type/bigint/bigint.js +2 -0
- package/build/require/type/bigint/index.js +1 -0
- package/build/require/type/boolean/boolean.d.ts +1 -0
- package/build/require/type/boolean/boolean.js +2 -0
- package/build/require/type/boolean/index.js +1 -0
- package/build/require/type/clone/index.js +1 -0
- package/build/require/type/clone/type.d.ts +2 -0
- package/build/require/type/clone/type.js +3 -0
- package/build/require/type/clone/value.d.ts +1 -0
- package/build/require/type/clone/value.js +3 -0
- package/build/require/type/composite/composite.d.ts +1 -0
- package/build/require/type/composite/composite.js +2 -0
- package/build/require/type/composite/index.js +1 -0
- package/build/require/type/const/const.d.ts +2 -1
- package/build/require/type/const/const.js +6 -1
- package/build/require/type/const/index.js +1 -0
- package/build/require/type/constructor/constructor.d.ts +1 -0
- package/build/require/type/constructor/constructor.js +2 -0
- package/build/require/type/constructor/index.js +1 -0
- package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
- package/build/require/type/constructor-parameters/constructor-parameters.js +2 -0
- package/build/require/type/constructor-parameters/index.js +1 -0
- package/build/require/type/date/date.d.ts +6 -0
- package/build/require/type/date/date.js +2 -0
- package/build/require/type/date/index.js +1 -0
- package/build/require/type/deref/deref.d.ts +1 -0
- package/build/require/type/deref/deref.js +19 -0
- package/build/require/type/deref/index.js +1 -0
- package/build/require/type/discard/discard.js +1 -0
- package/build/require/type/discard/index.js +1 -0
- package/build/require/type/enum/enum.d.ts +1 -0
- package/build/require/type/enum/enum.js +2 -0
- package/build/require/type/enum/index.js +1 -0
- package/build/require/type/exclude/exclude-from-mapped-result.js +4 -0
- package/build/require/type/exclude/exclude.d.ts +2 -0
- package/build/require/type/exclude/exclude.js +4 -0
- package/build/require/type/exclude/index.js +1 -0
- package/build/require/type/extends/extends-check.js +174 -1
- package/build/require/type/extends/extends-from-mapped-key.js +5 -0
- package/build/require/type/extends/extends-from-mapped-result.js +4 -0
- package/build/require/type/extends/extends-undefined.d.ts +1 -0
- package/build/require/type/extends/extends-undefined.js +4 -0
- package/build/require/type/extends/extends.d.ts +3 -0
- package/build/require/type/extends/extends.js +8 -0
- package/build/require/type/extends/index.js +1 -0
- package/build/require/type/extract/extract-from-mapped-result.js +4 -0
- package/build/require/type/extract/extract.d.ts +2 -0
- package/build/require/type/extract/extract.js +4 -0
- package/build/require/type/extract/index.js +1 -0
- package/build/require/type/function/function.d.ts +1 -0
- package/build/require/type/function/function.js +2 -0
- package/build/require/type/function/index.js +1 -0
- package/build/require/type/guard/index.js +1 -0
- package/build/require/type/guard/type.d.ts +46 -0
- package/build/require/type/guard/type.js +85 -1
- package/build/require/type/guard/value.d.ts +14 -0
- package/build/require/type/guard/value.js +15 -0
- package/build/require/type/helpers/helpers.d.ts +1 -0
- package/build/require/type/helpers/helpers.js +2 -0
- package/build/require/type/helpers/index.js +1 -0
- package/build/require/type/index.js +1 -0
- package/build/require/type/indexed/index.d.ts +0 -1
- package/build/require/type/indexed/index.js +1 -1
- package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
- package/build/require/type/indexed/indexed-from-mapped-key.js +11 -3
- package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
- package/build/require/type/indexed/indexed-property-keys.js +10 -0
- package/build/require/type/indexed/indexed.d.ts +40 -4
- package/build/require/type/indexed/indexed.js +84 -4
- package/build/require/type/instance-type/index.js +1 -0
- package/build/require/type/instance-type/instance-type.d.ts +1 -0
- package/build/require/type/instance-type/instance-type.js +2 -0
- package/build/require/type/integer/index.js +1 -0
- package/build/require/type/integer/integer.d.ts +1 -0
- package/build/require/type/integer/integer.js +2 -0
- package/build/require/type/intersect/index.js +1 -0
- package/build/require/type/intersect/intersect-create.js +9 -0
- package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
- package/build/require/type/intersect/intersect-evaluated.js +10 -0
- package/build/require/type/intersect/intersect-type.js +1 -0
- package/build/require/type/intersect/intersect.d.ts +1 -0
- package/build/require/type/intersect/intersect.js +6 -0
- package/build/require/type/intrinsic/capitalize.d.ts +1 -0
- package/build/require/type/intrinsic/capitalize.js +2 -0
- package/build/require/type/intrinsic/index.js +1 -0
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +5 -0
- package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
- package/build/require/type/intrinsic/intrinsic.js +17 -1
- package/build/require/type/intrinsic/lowercase.d.ts +1 -0
- package/build/require/type/intrinsic/lowercase.js +2 -0
- package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
- package/build/require/type/intrinsic/uncapitalize.js +2 -0
- package/build/require/type/intrinsic/uppercase.d.ts +1 -0
- package/build/require/type/intrinsic/uppercase.js +2 -0
- package/build/require/type/iterator/index.js +1 -0
- package/build/require/type/iterator/iterator.d.ts +1 -0
- package/build/require/type/iterator/iterator.js +2 -0
- package/build/require/type/keyof/index.js +1 -0
- package/build/require/type/keyof/keyof-from-mapped-result.js +4 -0
- package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
- package/build/require/type/keyof/keyof-property-keys.js +21 -0
- package/build/require/type/keyof/keyof.d.ts +2 -0
- package/build/require/type/keyof/keyof.js +7 -0
- package/build/require/type/literal/index.js +1 -0
- package/build/require/type/literal/literal.d.ts +1 -0
- package/build/require/type/literal/literal.js +2 -0
- package/build/require/type/mapped/index.js +1 -0
- package/build/require/type/mapped/mapped-key.js +2 -0
- package/build/require/type/mapped/mapped-result.js +2 -0
- package/build/require/type/mapped/mapped.d.ts +2 -0
- package/build/require/type/mapped/mapped.js +20 -1
- package/build/require/type/modifiers/index.js +1 -0
- package/build/require/type/modifiers/modifiers.js +11 -0
- package/build/require/type/never/index.js +1 -0
- package/build/require/type/never/never.d.ts +1 -0
- package/build/require/type/never/never.js +2 -0
- package/build/require/type/not/index.js +1 -0
- package/build/require/type/not/not.d.ts +1 -0
- package/build/require/type/not/not.js +2 -0
- package/build/require/type/null/index.js +1 -0
- package/build/require/type/null/null.d.ts +1 -0
- package/build/require/type/null/null.js +2 -0
- package/build/require/type/number/index.js +1 -0
- package/build/require/type/number/number.d.ts +1 -0
- package/build/require/type/number/number.js +2 -0
- package/build/require/type/object/index.js +1 -0
- package/build/require/type/object/object.d.ts +5 -0
- package/build/require/type/object/object.js +7 -0
- package/build/require/type/omit/index.js +1 -0
- package/build/require/type/omit/omit-from-mapped-key.js +5 -0
- package/build/require/type/omit/omit.d.ts +3 -0
- package/build/require/type/omit/omit.js +13 -0
- package/build/require/type/operators/index.js +1 -0
- package/build/require/type/operators/operators.d.ts +8 -0
- package/build/require/type/operators/operators.js +16 -0
- package/build/require/type/optional/index.js +1 -0
- package/build/require/type/optional/optional.d.ts +1 -0
- package/build/require/type/optional/optional.js +2 -0
- package/build/require/type/parameters/index.js +1 -0
- package/build/require/type/parameters/parameters.d.ts +1 -0
- package/build/require/type/parameters/parameters.js +2 -0
- package/build/require/type/partial/index.js +1 -0
- package/build/require/type/partial/partial-from-mapped-result.js +4 -0
- package/build/require/type/partial/partial.d.ts +2 -0
- package/build/require/type/partial/partial.js +10 -0
- package/build/require/type/patterns/index.js +1 -0
- package/build/require/type/patterns/patterns.js +1 -0
- package/build/require/type/pick/index.js +1 -0
- package/build/require/type/pick/pick-from-mapped-key.js +5 -0
- package/build/require/type/pick/pick.d.ts +3 -0
- package/build/require/type/pick/pick.js +8 -0
- package/build/require/type/promise/index.js +1 -0
- package/build/require/type/promise/promise.d.ts +1 -0
- package/build/require/type/promise/promise.js +2 -0
- package/build/require/type/readonly/index.js +1 -0
- package/build/require/type/readonly/readonly.d.ts +1 -0
- package/build/require/type/readonly/readonly.js +2 -0
- package/build/require/type/readonly-optional/index.js +1 -0
- package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
- package/build/require/type/readonly-optional/readonly-optional.js +2 -0
- package/build/require/type/record/index.js +1 -0
- package/build/require/type/record/record.d.ts +11 -9
- package/build/require/type/record/record.js +54 -28
- package/build/require/type/recursive/index.js +1 -0
- package/build/require/type/recursive/recursive.d.ts +1 -0
- package/build/require/type/recursive/recursive.js +4 -0
- package/build/require/type/ref/index.js +1 -0
- package/build/require/type/ref/ref.d.ts +2 -0
- package/build/require/type/ref/ref.js +2 -0
- package/build/require/type/regexp/index.js +1 -0
- package/build/require/type/regexp/regexp.d.ts +2 -0
- package/build/require/type/regexp/regexp.js +2 -0
- package/build/require/type/registry/format.d.ts +6 -0
- package/build/require/type/registry/format.js +8 -0
- package/build/require/type/registry/index.js +1 -0
- package/build/require/type/registry/type.d.ts +6 -0
- package/build/require/type/registry/type.js +8 -0
- package/build/require/type/required/index.js +1 -0
- package/build/require/type/required/required-from-mapped-result.js +4 -0
- package/build/require/type/required/required.d.ts +2 -0
- package/build/require/type/required/required.js +10 -0
- package/build/require/type/rest/index.js +1 -0
- package/build/require/type/rest/rest.d.ts +1 -0
- package/build/require/type/rest/rest.js +6 -0
- package/build/require/type/return-type/index.js +1 -0
- package/build/require/type/return-type/return-type.d.ts +1 -0
- package/build/require/type/return-type/return-type.js +2 -0
- package/build/require/type/schema/anyschema.js +1 -0
- package/build/require/type/schema/index.js +1 -0
- package/build/require/type/schema/schema.d.ts +7 -0
- package/build/require/type/schema/schema.js +1 -0
- package/build/require/type/static/index.js +1 -0
- package/build/require/type/static/static.d.ts +3 -0
- package/build/require/type/static/static.js +1 -0
- package/build/require/type/strict/index.js +1 -0
- package/build/require/type/strict/strict.d.ts +1 -0
- package/build/require/type/strict/strict.js +2 -0
- package/build/require/type/string/index.js +1 -0
- package/build/require/type/string/string.d.ts +7 -0
- package/build/require/type/string/string.js +2 -0
- package/build/require/type/symbol/index.js +1 -0
- package/build/require/type/symbol/symbol.d.ts +1 -0
- package/build/require/type/symbol/symbol.js +2 -0
- package/build/require/type/symbols/index.js +1 -0
- package/build/require/type/symbols/symbols.d.ts +5 -0
- package/build/require/type/symbols/symbols.js +6 -0
- package/build/require/type/template-literal/finite.js +11 -0
- package/build/require/type/template-literal/generate.js +11 -0
- package/build/require/type/template-literal/index.js +1 -0
- package/build/require/type/template-literal/parser.d.ts +2 -0
- package/build/require/type/template-literal/parser.js +18 -0
- package/build/require/type/template-literal/pattern.js +12 -0
- package/build/require/type/template-literal/syntax.d.ts +1 -0
- package/build/require/type/template-literal/syntax.js +9 -0
- package/build/require/type/template-literal/template-literal.d.ts +2 -0
- package/build/require/type/template-literal/template-literal.js +3 -0
- package/build/require/type/template-literal/union.d.ts +1 -0
- package/build/require/type/template-literal/union.js +5 -0
- package/build/require/type/transform/index.js +1 -0
- package/build/require/type/transform/transform.d.ts +1 -0
- package/build/require/type/transform/transform.js +10 -0
- package/build/require/type/tuple/index.js +1 -0
- package/build/require/type/tuple/tuple.d.ts +1 -0
- package/build/require/type/tuple/tuple.js +4 -0
- package/build/require/type/type/index.d.ts +1 -0
- package/build/require/type/type/index.js +8 -0
- package/build/require/type/type/javascript.d.ts +19 -0
- package/build/require/type/type/javascript.js +19 -0
- package/build/require/type/type/json.d.ts +64 -3
- package/build/require/type/type/json.js +56 -1
- package/build/require/type/type/type.js +4 -0
- package/build/require/type/uint8array/index.js +1 -0
- package/build/require/type/uint8array/uint8array.d.ts +1 -0
- package/build/require/type/uint8array/uint8array.js +2 -0
- package/build/require/type/undefined/index.js +1 -0
- package/build/require/type/undefined/undefined.d.ts +1 -0
- package/build/require/type/undefined/undefined.js +2 -0
- package/build/require/type/union/index.js +1 -0
- package/build/require/type/union/union-create.js +1 -0
- package/build/require/type/union/union-evaluated.d.ts +1 -0
- package/build/require/type/union/union-evaluated.js +11 -0
- package/build/require/type/union/union-type.js +1 -0
- package/build/require/type/union/union.d.ts +1 -0
- package/build/require/type/union/union.js +3 -0
- package/build/require/type/unknown/index.js +1 -0
- package/build/require/type/unknown/unknown.d.ts +1 -0
- package/build/require/type/unknown/unknown.js +2 -0
- package/build/require/type/unsafe/index.js +1 -0
- package/build/require/type/unsafe/unsafe.d.ts +1 -0
- package/build/require/type/unsafe/unsafe.js +2 -0
- package/build/require/type/void/index.js +1 -0
- package/build/require/type/void/void.d.ts +1 -0
- package/build/require/type/void/void.js +2 -0
- package/build/require/value/cast/cast.d.ts +2 -0
- package/build/require/value/cast/cast.js +29 -0
- package/build/require/value/cast/index.js +1 -0
- package/build/require/value/check/check.d.ts +2 -0
- package/build/require/value/check/check.js +20 -1
- package/build/require/value/check/index.js +1 -0
- package/build/require/value/clean/clean.d.ts +2 -0
- package/build/require/value/clean/clean.js +13 -1
- package/build/require/value/clean/index.js +1 -0
- package/build/require/value/clone/clone.d.ts +1 -0
- package/build/require/value/clone/clone.js +8 -0
- package/build/require/value/clone/index.js +1 -0
- package/build/require/value/convert/convert.d.ts +2 -0
- package/build/require/value/convert/convert.js +31 -1
- package/build/require/value/convert/index.js +1 -0
- package/build/require/value/create/create.d.ts +2 -0
- package/build/require/value/create/create.js +18 -0
- package/build/require/value/create/index.js +1 -0
- package/build/require/value/default/default.d.ts +2 -0
- package/build/require/value/default/default.js +20 -0
- package/build/require/value/default/index.js +1 -0
- package/build/require/value/delta/delta.js +16 -0
- package/build/require/value/delta/index.js +1 -0
- package/build/require/value/deref/deref.d.ts +1 -0
- package/build/require/value/deref/deref.js +2 -0
- package/build/require/value/deref/index.js +1 -0
- package/build/require/value/equal/equal.d.ts +1 -0
- package/build/require/value/equal/equal.js +8 -0
- package/build/require/value/equal/index.js +1 -0
- package/build/require/value/guard/guard.d.ts +20 -0
- package/build/require/value/guard/guard.js +31 -0
- package/build/require/value/guard/index.js +1 -0
- package/build/require/value/hash/hash.d.ts +1 -0
- package/build/require/value/hash/hash.js +20 -0
- package/build/require/value/hash/index.js +1 -0
- package/build/require/value/index.js +13 -0
- package/build/require/value/mutate/index.js +1 -0
- package/build/require/value/mutate/mutate.d.ts +1 -0
- package/build/require/value/mutate/mutate.js +12 -0
- package/build/require/value/pointer/index.js +1 -0
- package/build/require/value/pointer/pointer.d.ts +5 -0
- package/build/require/value/pointer/pointer.js +19 -0
- package/build/require/value/transform/decode.d.ts +5 -0
- package/build/require/value/transform/decode.js +24 -0
- package/build/require/value/transform/encode.d.ts +6 -0
- package/build/require/value/transform/encode.js +26 -0
- package/build/require/value/transform/has.d.ts +1 -0
- package/build/require/value/transform/has.js +17 -0
- package/build/require/value/transform/index.js +1 -0
- package/build/require/value/value/index.js +1 -0
- package/build/require/value/value/value.d.ts +24 -0
- package/build/require/value/value/value.js +16 -0
- package/license +3 -1
- package/package.json +1 -1
- package/readme.md +4 -5
- package/build/import/type/indexed/indexed-result.d.mts +0 -33
- package/build/import/type/indexed/indexed-result.mjs +0 -65
- package/build/require/type/indexed/indexed-result.d.ts +0 -33
- package/build/require/type/indexed/indexed-result.js +0 -69
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Clean = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
@@ -8,12 +9,21 @@ const index_3 = require("../check/index");
|
|
|
8
9
|
const index_4 = require("../clone/index");
|
|
9
10
|
const index_5 = require("../deref/index");
|
|
10
11
|
const index_6 = require("../../type/symbols/index");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// IsSchema
|
|
14
|
+
// ------------------------------------------------------------------
|
|
11
15
|
function IsSchema(schema) {
|
|
12
16
|
return (0, type_1.TSchema)(schema);
|
|
13
17
|
}
|
|
18
|
+
// ------------------------------------------------------------------
|
|
19
|
+
// IsCheckable
|
|
20
|
+
// ------------------------------------------------------------------
|
|
14
21
|
function IsCheckable(schema) {
|
|
15
22
|
return (0, type_1.TSchema)(schema) && schema[index_6.Kind] !== 'Unsafe';
|
|
16
23
|
}
|
|
24
|
+
// ------------------------------------------------------------------
|
|
25
|
+
// Types
|
|
26
|
+
// ------------------------------------------------------------------
|
|
17
27
|
function TArray(schema, references, value) {
|
|
18
28
|
if (!(0, index_1.IsArray)(value))
|
|
19
29
|
return value;
|
|
@@ -37,7 +47,7 @@ function TIntersect(schema, references, value) {
|
|
|
37
47
|
}
|
|
38
48
|
function TObject(schema, references, value) {
|
|
39
49
|
if (!(0, index_1.IsObject)(value) || (0, index_1.IsArray)(value))
|
|
40
|
-
return value;
|
|
50
|
+
return value; // Check IsArray for AllowArrayObject configuration
|
|
41
51
|
const additionalProperties = schema.additionalProperties;
|
|
42
52
|
for (const key of Object.getOwnPropertyNames(value)) {
|
|
43
53
|
if (key in schema.properties) {
|
|
@@ -87,6 +97,7 @@ function TTuple(schema, references, value) {
|
|
|
87
97
|
for (let i = 0; i < length; i++) {
|
|
88
98
|
value[i] = Visit(schema.items[i], references, value[i]);
|
|
89
99
|
}
|
|
100
|
+
// prettier-ignore
|
|
90
101
|
return value.length > length
|
|
91
102
|
? value.slice(0, length)
|
|
92
103
|
: value;
|
|
@@ -123,6 +134,7 @@ function Visit(schema, references, value) {
|
|
|
123
134
|
return value;
|
|
124
135
|
}
|
|
125
136
|
}
|
|
137
|
+
/** `[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. */
|
|
126
138
|
function Clean(...args) {
|
|
127
139
|
return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
|
|
128
140
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Clone = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
// Clonable
|
|
8
|
+
// --------------------------------------------------------------------------
|
|
5
9
|
function ObjectType(value) {
|
|
6
10
|
const keys = [...Object.getOwnPropertyNames(value), ...Object.getOwnPropertySymbols(value)];
|
|
7
11
|
return keys.reduce((acc, key) => ({ ...acc, [key]: Clone(value[key]) }), {});
|
|
@@ -18,6 +22,10 @@ function DateType(value) {
|
|
|
18
22
|
function ValueType(value) {
|
|
19
23
|
return value;
|
|
20
24
|
}
|
|
25
|
+
// --------------------------------------------------------------------------
|
|
26
|
+
// Clone
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
/** Returns a clone of the given value */
|
|
21
29
|
function Clone(value) {
|
|
22
30
|
if ((0, index_1.IsArray)(value))
|
|
23
31
|
return ArrayType(value);
|
|
@@ -3,5 +3,7 @@ export declare class ValueConvertUnknownTypeError extends Error {
|
|
|
3
3
|
readonly schema: TSchema;
|
|
4
4
|
constructor(schema: TSchema);
|
|
5
5
|
}
|
|
6
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
|
|
6
7
|
export declare function Convert<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
|
|
8
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
|
|
7
9
|
export declare function Convert<T extends TSchema>(schema: T, value: unknown): unknown;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Convert = exports.ValueConvertUnknownTypeError = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
@@ -8,6 +9,9 @@ const index_4 = require("../deref/index");
|
|
|
8
9
|
const type_1 = require("../../type/guard/type");
|
|
9
10
|
const index_5 = require("../../type/symbols/index");
|
|
10
11
|
const index_6 = require("../../type/composite/index");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// Errors
|
|
14
|
+
// ------------------------------------------------------------------
|
|
11
15
|
class ValueConvertUnknownTypeError extends Error {
|
|
12
16
|
constructor(schema) {
|
|
13
17
|
super('Unknown type');
|
|
@@ -15,6 +19,9 @@ class ValueConvertUnknownTypeError extends Error {
|
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
exports.ValueConvertUnknownTypeError = ValueConvertUnknownTypeError;
|
|
22
|
+
// ------------------------------------------------------------------
|
|
23
|
+
// Conversions
|
|
24
|
+
// ------------------------------------------------------------------
|
|
18
25
|
function IsStringNumeric(value) {
|
|
19
26
|
return (0, index_1.IsString)(value) && !isNaN(value) && !isNaN(parseFloat(value));
|
|
20
27
|
}
|
|
@@ -42,6 +49,9 @@ function IsDateTimeStringWithoutTimeZone(value) {
|
|
|
42
49
|
function IsDateString(value) {
|
|
43
50
|
return (0, index_1.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(value);
|
|
44
51
|
}
|
|
52
|
+
// ------------------------------------------------------------------
|
|
53
|
+
// Convert
|
|
54
|
+
// ------------------------------------------------------------------
|
|
45
55
|
function TryConvertLiteralString(value, target) {
|
|
46
56
|
const conversion = TryConvertString(value);
|
|
47
57
|
return conversion === target ? conversion : value;
|
|
@@ -54,6 +64,7 @@ function TryConvertLiteralBoolean(value, target) {
|
|
|
54
64
|
const conversion = TryConvertBoolean(value);
|
|
55
65
|
return conversion === target ? conversion : value;
|
|
56
66
|
}
|
|
67
|
+
// prettier-ignore
|
|
57
68
|
function TryConvertLiteral(schema, value) {
|
|
58
69
|
return ((0, index_1.IsString)(schema.const) ? TryConvertLiteralString(value, schema.const) :
|
|
59
70
|
(0, index_1.IsNumber)(schema.const) ? TryConvertLiteralNumber(value, schema.const) :
|
|
@@ -81,6 +92,14 @@ function TryConvertNull(value) {
|
|
|
81
92
|
function TryConvertUndefined(value) {
|
|
82
93
|
return (0, index_1.IsString)(value) && value === 'undefined' ? undefined : value;
|
|
83
94
|
}
|
|
95
|
+
// ------------------------------------------------------------------
|
|
96
|
+
// note: this function may return an invalid dates for the regex
|
|
97
|
+
// tests above. Invalid dates will however be checked during the
|
|
98
|
+
// casting function and will return a epoch date if invalid.
|
|
99
|
+
// Consider better string parsing for the iso dates in future
|
|
100
|
+
// revisions.
|
|
101
|
+
// ------------------------------------------------------------------
|
|
102
|
+
// prettier-ignore
|
|
84
103
|
function TryConvertDate(value) {
|
|
85
104
|
return ((0, index_1.IsDate)(value) ? value :
|
|
86
105
|
(0, index_1.IsNumber)(value) ? new Date(value) :
|
|
@@ -94,9 +113,15 @@ function TryConvertDate(value) {
|
|
|
94
113
|
IsDateString(value) ? new Date(`${value}T00:00:00.000Z`) :
|
|
95
114
|
value);
|
|
96
115
|
}
|
|
116
|
+
// ------------------------------------------------------------------
|
|
117
|
+
// Default
|
|
118
|
+
// ------------------------------------------------------------------
|
|
97
119
|
function Default(value) {
|
|
98
120
|
return value;
|
|
99
121
|
}
|
|
122
|
+
// ------------------------------------------------------------------
|
|
123
|
+
// Convert
|
|
124
|
+
// ------------------------------------------------------------------
|
|
100
125
|
function TArray(schema, references, value) {
|
|
101
126
|
if ((0, index_1.IsArray)(value)) {
|
|
102
127
|
return value.map((value) => Visit(schema.items, references, value));
|
|
@@ -115,11 +140,12 @@ function TDate(schema, references, value) {
|
|
|
115
140
|
function TInteger(schema, references, value) {
|
|
116
141
|
return TryConvertInteger(value);
|
|
117
142
|
}
|
|
143
|
+
// prettier-ignore
|
|
118
144
|
function TIntersect(schema, references, value) {
|
|
119
145
|
const allObjects = schema.allOf.every(schema => (0, type_1.TObject)(schema));
|
|
120
146
|
if (allObjects)
|
|
121
147
|
return Visit((0, index_6.Composite)(schema.allOf), references, value);
|
|
122
|
-
return Visit(schema.allOf[0], references, value);
|
|
148
|
+
return Visit(schema.allOf[0], references, value); // todo: fix this
|
|
123
149
|
}
|
|
124
150
|
function TLiteral(schema, references, value) {
|
|
125
151
|
return TryConvertLiteral(schema, value);
|
|
@@ -130,6 +156,7 @@ function TNull(schema, references, value) {
|
|
|
130
156
|
function TNumber(schema, references, value) {
|
|
131
157
|
return TryConvertNumber(value);
|
|
132
158
|
}
|
|
159
|
+
// prettier-ignore
|
|
133
160
|
function TObject(schema, references, value) {
|
|
134
161
|
const isConvertable = (0, index_1.IsObject)(value);
|
|
135
162
|
if (!isConvertable)
|
|
@@ -161,6 +188,7 @@ function TSymbol(schema, references, value) {
|
|
|
161
188
|
function TThis(schema, references, value) {
|
|
162
189
|
return Visit((0, index_4.Deref)(schema, references), references, value);
|
|
163
190
|
}
|
|
191
|
+
// prettier-ignore
|
|
164
192
|
function TTuple(schema, references, value) {
|
|
165
193
|
const isConvertable = (0, index_1.IsArray)(value) && !(0, index_1.IsUndefined)(schema.items);
|
|
166
194
|
if (!isConvertable)
|
|
@@ -227,6 +255,8 @@ function Visit(schema, references, value) {
|
|
|
227
255
|
return Default(value);
|
|
228
256
|
}
|
|
229
257
|
}
|
|
258
|
+
/** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
|
|
259
|
+
// prettier-ignore
|
|
230
260
|
function Convert(...args) {
|
|
231
261
|
return args.length === 3
|
|
232
262
|
? Visit(args[0], args[1], args[2])
|
|
@@ -25,5 +25,7 @@ export declare class ValueCreateRecursiveInstantiationError extends Error {
|
|
|
25
25
|
readonly recursiveMaxDepth: number;
|
|
26
26
|
constructor(schema: TSchema, recursiveMaxDepth: number);
|
|
27
27
|
}
|
|
28
|
+
/** Creates a value from the given schema and references */
|
|
28
29
|
export declare function Create<T extends TSchema>(schema: T, references: TSchema[]): Static<T>;
|
|
30
|
+
/** Creates a value from the given schema */
|
|
29
31
|
export declare function Create<T extends TSchema>(schema: T): Static<T>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Create = exports.ValueCreateRecursiveInstantiationError = exports.ValueCreateTempateLiteralTypeError = exports.ValueCreateIntersectTypeError = exports.ValueCreateNotTypeError = exports.ValueCreateNeverTypeError = exports.ValueCreateUnknownTypeError = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
@@ -8,6 +9,9 @@ const index_4 = require("../../type/template-literal/index");
|
|
|
8
9
|
const index_5 = require("../../type/patterns/index");
|
|
9
10
|
const index_6 = require("../../type/registry/index");
|
|
10
11
|
const index_7 = require("../../type/symbols/index");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// Errors
|
|
14
|
+
// ------------------------------------------------------------------
|
|
11
15
|
class ValueCreateUnknownTypeError extends Error {
|
|
12
16
|
constructor(schema) {
|
|
13
17
|
super('Unknown type');
|
|
@@ -51,6 +55,9 @@ class ValueCreateRecursiveInstantiationError extends Error {
|
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
exports.ValueCreateRecursiveInstantiationError = ValueCreateRecursiveInstantiationError;
|
|
58
|
+
// ------------------------------------------------------------------
|
|
59
|
+
// Create
|
|
60
|
+
// ------------------------------------------------------------------
|
|
54
61
|
function TAny(schema, references) {
|
|
55
62
|
if ((0, index_1.HasPropertyKey)(schema, 'default')) {
|
|
56
63
|
return schema.default;
|
|
@@ -159,6 +166,13 @@ function TIntersect(schema, references) {
|
|
|
159
166
|
return schema.default;
|
|
160
167
|
}
|
|
161
168
|
else {
|
|
169
|
+
// --------------------------------------------------------------
|
|
170
|
+
// Note: The best we can do here is attempt to instance each
|
|
171
|
+
// sub type and apply through object assign. For non-object
|
|
172
|
+
// sub types, we just escape the assignment and just return
|
|
173
|
+
// the value. In the latter case, this is typically going to
|
|
174
|
+
// be a consequence of an illogical intersection.
|
|
175
|
+
// --------------------------------------------------------------
|
|
162
176
|
const value = schema.allOf.reduce((acc, schema) => {
|
|
163
177
|
const next = Visit(schema, references);
|
|
164
178
|
return typeof next === 'object' ? { ...acc, ...next } : next;
|
|
@@ -454,8 +468,12 @@ function Visit(schema, references) {
|
|
|
454
468
|
return TKind(schema_, references_);
|
|
455
469
|
}
|
|
456
470
|
}
|
|
471
|
+
// ------------------------------------------------------------------
|
|
472
|
+
// State
|
|
473
|
+
// ------------------------------------------------------------------
|
|
457
474
|
const recursiveMaxDepth = 512;
|
|
458
475
|
let recursiveDepth = 0;
|
|
476
|
+
/** Creates a value from the given schema */
|
|
459
477
|
function Create(...args) {
|
|
460
478
|
recursiveDepth = 0;
|
|
461
479
|
return args.length === 2 ? Visit(args[0], args[1]) : Visit(args[0], []);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { TSchema } from '../../type/schema/index';
|
|
2
|
+
/** `[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. */
|
|
2
3
|
export declare function Default<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
|
|
4
|
+
/** `[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. */
|
|
3
5
|
export declare function Default<T extends TSchema>(schema: T, value: unknown): unknown;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Default = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
@@ -6,15 +7,27 @@ const type_1 = require("../../type/guard/type");
|
|
|
6
7
|
const index_2 = require("../check/index");
|
|
7
8
|
const index_3 = require("../deref/index");
|
|
8
9
|
const index_4 = require("../../type/symbols/index");
|
|
10
|
+
// ------------------------------------------------------------------
|
|
11
|
+
// ValueOrDefault
|
|
12
|
+
// ------------------------------------------------------------------
|
|
9
13
|
function ValueOrDefault(schema, value) {
|
|
10
14
|
return !(value === undefined) || !('default' in schema) ? value : schema.default;
|
|
11
15
|
}
|
|
16
|
+
// ------------------------------------------------------------------
|
|
17
|
+
// IsCheckable
|
|
18
|
+
// ------------------------------------------------------------------
|
|
12
19
|
function IsCheckable(schema) {
|
|
13
20
|
return (0, type_1.TSchema)(schema) && schema[index_4.Kind] !== 'Unsafe';
|
|
14
21
|
}
|
|
22
|
+
// ------------------------------------------------------------------
|
|
23
|
+
// IsDefaultSchema
|
|
24
|
+
// ------------------------------------------------------------------
|
|
15
25
|
function IsDefaultSchema(value) {
|
|
16
26
|
return (0, type_1.TSchema)(value) && 'default' in value;
|
|
17
27
|
}
|
|
28
|
+
// ------------------------------------------------------------------
|
|
29
|
+
// Types
|
|
30
|
+
// ------------------------------------------------------------------
|
|
18
31
|
function TArray(schema, references, value) {
|
|
19
32
|
const defaulted = ValueOrDefault(schema, value);
|
|
20
33
|
if (!(0, index_1.IsArray)(defaulted))
|
|
@@ -37,13 +50,16 @@ function TObject(schema, references, value) {
|
|
|
37
50
|
return defaulted;
|
|
38
51
|
const additionalPropertiesSchema = schema.additionalProperties;
|
|
39
52
|
const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);
|
|
53
|
+
// properties
|
|
40
54
|
for (const key of knownPropertyKeys) {
|
|
41
55
|
if (!IsDefaultSchema(schema.properties[key]))
|
|
42
56
|
continue;
|
|
43
57
|
defaulted[key] = Visit(schema.properties[key], references, defaulted[key]);
|
|
44
58
|
}
|
|
59
|
+
// return if not additional properties
|
|
45
60
|
if (!IsDefaultSchema(additionalPropertiesSchema))
|
|
46
61
|
return defaulted;
|
|
62
|
+
// additional properties
|
|
47
63
|
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
48
64
|
if (knownPropertyKeys.includes(key))
|
|
49
65
|
continue;
|
|
@@ -58,13 +74,16 @@ function TRecord(schema, references, value) {
|
|
|
58
74
|
const additionalPropertiesSchema = schema.additionalProperties;
|
|
59
75
|
const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];
|
|
60
76
|
const knownPropertyKey = new RegExp(propertyKeyPattern);
|
|
77
|
+
// properties
|
|
61
78
|
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
62
79
|
if (!(knownPropertyKey.test(key) && IsDefaultSchema(propertySchema)))
|
|
63
80
|
continue;
|
|
64
81
|
defaulted[key] = Visit(propertySchema, references, defaulted[key]);
|
|
65
82
|
}
|
|
83
|
+
// return if not additional properties
|
|
66
84
|
if (!IsDefaultSchema(additionalPropertiesSchema))
|
|
67
85
|
return defaulted;
|
|
86
|
+
// additional properties
|
|
68
87
|
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
69
88
|
if (knownPropertyKey.test(key))
|
|
70
89
|
continue;
|
|
@@ -123,6 +142,7 @@ function Visit(schema, references, value) {
|
|
|
123
142
|
return ValueOrDefault(schema_, value);
|
|
124
143
|
}
|
|
125
144
|
}
|
|
145
|
+
/** `[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. */
|
|
126
146
|
function Default(...args) {
|
|
127
147
|
return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
|
|
128
148
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Patch = exports.Diff = exports.ValueDeltaUnableToDiffUnknownValue = exports.ValueDeltaObjectWithSymbolKeyError = exports.Edit = exports.Delete = exports.Update = exports.Insert = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
@@ -24,6 +25,9 @@ exports.Delete = (0, index_5.Object)({
|
|
|
24
25
|
path: (0, index_6.String)(),
|
|
25
26
|
});
|
|
26
27
|
exports.Edit = (0, index_8.Union)([exports.Insert, exports.Update, exports.Delete]);
|
|
28
|
+
// ------------------------------------------------------------------
|
|
29
|
+
// Errors
|
|
30
|
+
// ------------------------------------------------------------------
|
|
27
31
|
class ValueDeltaObjectWithSymbolKeyError extends Error {
|
|
28
32
|
constructor(key) {
|
|
29
33
|
super('Cannot diff objects with symbol keys');
|
|
@@ -38,6 +42,9 @@ class ValueDeltaUnableToDiffUnknownValue extends Error {
|
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
exports.ValueDeltaUnableToDiffUnknownValue = ValueDeltaUnableToDiffUnknownValue;
|
|
45
|
+
// ------------------------------------------------------------------
|
|
46
|
+
// Command Factory
|
|
47
|
+
// ------------------------------------------------------------------
|
|
41
48
|
function CreateUpdate(path, value) {
|
|
42
49
|
return { type: 'update', path, value };
|
|
43
50
|
}
|
|
@@ -47,6 +54,9 @@ function CreateInsert(path, value) {
|
|
|
47
54
|
function CreateDelete(path) {
|
|
48
55
|
return { type: 'delete', path };
|
|
49
56
|
}
|
|
57
|
+
// ------------------------------------------------------------------
|
|
58
|
+
// Diffing Generators
|
|
59
|
+
// ------------------------------------------------------------------
|
|
50
60
|
function* ObjectType(path, current, next) {
|
|
51
61
|
if (!(0, index_1.IsPlainObject)(next))
|
|
52
62
|
return yield CreateUpdate(path, next);
|
|
@@ -118,10 +128,16 @@ function* Visit(path, current, next) {
|
|
|
118
128
|
return yield* ValueType(path, current, next);
|
|
119
129
|
throw new ValueDeltaUnableToDiffUnknownValue(current);
|
|
120
130
|
}
|
|
131
|
+
// ------------------------------------------------------------------
|
|
132
|
+
// Diff
|
|
133
|
+
// ------------------------------------------------------------------
|
|
121
134
|
function Diff(current, next) {
|
|
122
135
|
return [...Visit('', current, next)];
|
|
123
136
|
}
|
|
124
137
|
exports.Diff = Diff;
|
|
138
|
+
// ------------------------------------------------------------------
|
|
139
|
+
// Patch
|
|
140
|
+
// ------------------------------------------------------------------
|
|
125
141
|
function IsRootUpdate(edits) {
|
|
126
142
|
return edits.length > 0 && edits[0].path === '' && edits[0].type === 'update';
|
|
127
143
|
}
|
|
@@ -5,4 +5,5 @@ export declare class TypeDereferenceError extends Error {
|
|
|
5
5
|
readonly schema: TRef | TThis;
|
|
6
6
|
constructor(schema: TRef | TThis);
|
|
7
7
|
}
|
|
8
|
+
/** Dereferences a schema from the references array or throws if not found */
|
|
8
9
|
export declare function Deref(schema: TRef | TThis, references: TSchema[]): TSchema;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Deref = exports.TypeDereferenceError = void 0;
|
|
4
5
|
class TypeDereferenceError extends Error {
|
|
@@ -8,6 +9,7 @@ class TypeDereferenceError extends Error {
|
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
exports.TypeDereferenceError = TypeDereferenceError;
|
|
12
|
+
/** Dereferences a schema from the references array or throws if not found */
|
|
11
13
|
function Deref(schema, references) {
|
|
12
14
|
const index = references.findIndex((target) => target.$id === schema.$ref);
|
|
13
15
|
if (index === -1)
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Equal = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
// Equality Checks
|
|
8
|
+
// ------------------------------------------------------------------
|
|
5
9
|
function ObjectType(left, right) {
|
|
6
10
|
if (!(0, index_1.IsPlainObject)(right))
|
|
7
11
|
return false;
|
|
@@ -27,6 +31,10 @@ function TypedArrayType(left, right) {
|
|
|
27
31
|
function ValueType(left, right) {
|
|
28
32
|
return left === right;
|
|
29
33
|
}
|
|
34
|
+
// ------------------------------------------------------------------
|
|
35
|
+
// Equal
|
|
36
|
+
// ------------------------------------------------------------------
|
|
37
|
+
/** Returns true if the left value deep-equals the right */
|
|
30
38
|
function Equal(left, right) {
|
|
31
39
|
if ((0, index_1.IsPlainObject)(left))
|
|
32
40
|
return ObjectType(left, right);
|
|
@@ -2,23 +2,43 @@ export type ObjectType = Record<PropertyKey, unknown>;
|
|
|
2
2
|
export type ArrayType = unknown[];
|
|
3
3
|
export type ValueType = null | undefined | symbol | bigint | number | boolean | string;
|
|
4
4
|
export type TypedArrayType = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array;
|
|
5
|
+
/** Returns true if this value is an async iterator */
|
|
5
6
|
export declare function IsAsyncIterator(value: unknown): value is AsyncIterableIterator<any>;
|
|
7
|
+
/** Returns true if this value is an iterator */
|
|
6
8
|
export declare function IsIterator(value: unknown): value is IterableIterator<any>;
|
|
9
|
+
/** Returns true if this value is a typed array */
|
|
7
10
|
export declare function IsTypedArray(value: unknown): value is TypedArrayType;
|
|
11
|
+
/** Returns true if this value is a Promise */
|
|
8
12
|
export declare function IsPromise(value: unknown): value is Promise<unknown>;
|
|
13
|
+
/** Returns true if the value is a Uint8Array */
|
|
9
14
|
export declare function IsUint8Array(value: unknown): value is Uint8Array;
|
|
15
|
+
/** Returns true if this value is a Date */
|
|
10
16
|
export declare function IsDate(value: unknown): value is Date;
|
|
17
|
+
/** Returns true if this value has this property key */
|
|
11
18
|
export declare function HasPropertyKey<K extends PropertyKey>(value: Record<any, unknown>, key: K): value is ObjectType & Record<K, unknown>;
|
|
19
|
+
/** Returns true if this object is not an instance of any other type */
|
|
12
20
|
export declare function IsPlainObject(value: unknown): value is ObjectType;
|
|
21
|
+
/** Returns true of this value is an object type */
|
|
13
22
|
export declare function IsObject(value: unknown): value is ObjectType;
|
|
23
|
+
/** Returns true if this value is an array, but not a typed array */
|
|
14
24
|
export declare function IsArray(value: unknown): value is ArrayType;
|
|
25
|
+
/** Returns true if this value is an undefined */
|
|
15
26
|
export declare function IsUndefined(value: unknown): value is undefined;
|
|
27
|
+
/** Returns true if this value is an null */
|
|
16
28
|
export declare function IsNull(value: unknown): value is null;
|
|
29
|
+
/** Returns true if this value is an boolean */
|
|
17
30
|
export declare function IsBoolean(value: unknown): value is boolean;
|
|
31
|
+
/** Returns true if this value is an number */
|
|
18
32
|
export declare function IsNumber(value: unknown): value is number;
|
|
33
|
+
/** Returns true if this value is an integer */
|
|
19
34
|
export declare function IsInteger(value: unknown): value is number;
|
|
35
|
+
/** Returns true if this value is bigint */
|
|
20
36
|
export declare function IsBigInt(value: unknown): value is bigint;
|
|
37
|
+
/** Returns true if this value is string */
|
|
21
38
|
export declare function IsString(value: unknown): value is string;
|
|
39
|
+
/** Returns true if this value is a function */
|
|
22
40
|
export declare function IsFunction(value: unknown): value is Function;
|
|
41
|
+
/** Returns true if this value is a symbol */
|
|
23
42
|
export declare function IsSymbol(value: unknown): value is symbol;
|
|
43
|
+
/** Returns true if this value is a value type such as number, string, boolean */
|
|
24
44
|
export declare function IsValueType(value: unknown): value is ValueType;
|