@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,83 +1,114 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IsValueType = exports.IsSymbol = exports.IsFunction = exports.IsString = exports.IsBigInt = exports.IsInteger = exports.IsNumber = exports.IsBoolean = exports.IsNull = exports.IsUndefined = exports.IsArray = exports.IsObject = exports.IsPlainObject = exports.HasPropertyKey = exports.IsDate = exports.IsUint8Array = exports.IsPromise = exports.IsTypedArray = exports.IsIterator = exports.IsAsyncIterator = void 0;
|
|
5
|
+
// --------------------------------------------------------------------------
|
|
6
|
+
// Iterators
|
|
7
|
+
// --------------------------------------------------------------------------
|
|
8
|
+
/** Returns true if this value is an async iterator */
|
|
4
9
|
function IsAsyncIterator(value) {
|
|
5
10
|
return IsObject(value) && Symbol.asyncIterator in value;
|
|
6
11
|
}
|
|
7
12
|
exports.IsAsyncIterator = IsAsyncIterator;
|
|
13
|
+
/** Returns true if this value is an iterator */
|
|
8
14
|
function IsIterator(value) {
|
|
9
15
|
return IsObject(value) && Symbol.iterator in value;
|
|
10
16
|
}
|
|
11
17
|
exports.IsIterator = IsIterator;
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
// Nominal
|
|
20
|
+
// --------------------------------------------------------------------------
|
|
21
|
+
/** Returns true if this value is a typed array */
|
|
12
22
|
function IsTypedArray(value) {
|
|
13
23
|
return ArrayBuffer.isView(value);
|
|
14
24
|
}
|
|
15
25
|
exports.IsTypedArray = IsTypedArray;
|
|
26
|
+
/** Returns true if this value is a Promise */
|
|
16
27
|
function IsPromise(value) {
|
|
17
28
|
return value instanceof Promise;
|
|
18
29
|
}
|
|
19
30
|
exports.IsPromise = IsPromise;
|
|
31
|
+
/** Returns true if the value is a Uint8Array */
|
|
20
32
|
function IsUint8Array(value) {
|
|
21
33
|
return value instanceof Uint8Array;
|
|
22
34
|
}
|
|
23
35
|
exports.IsUint8Array = IsUint8Array;
|
|
36
|
+
/** Returns true if this value is a Date */
|
|
24
37
|
function IsDate(value) {
|
|
25
38
|
return value instanceof Date && Number.isFinite(value.getTime());
|
|
26
39
|
}
|
|
27
40
|
exports.IsDate = IsDate;
|
|
41
|
+
// --------------------------------------------------------------------------
|
|
42
|
+
// Standard
|
|
43
|
+
// --------------------------------------------------------------------------
|
|
44
|
+
/** Returns true if this value has this property key */
|
|
28
45
|
function HasPropertyKey(value, key) {
|
|
29
46
|
return key in value;
|
|
30
47
|
}
|
|
31
48
|
exports.HasPropertyKey = HasPropertyKey;
|
|
49
|
+
/** Returns true if this object is not an instance of any other type */
|
|
32
50
|
function IsPlainObject(value) {
|
|
33
51
|
return IsObject(value) && IsFunction(value.constructor) && value.constructor.name === 'Object';
|
|
34
52
|
}
|
|
35
53
|
exports.IsPlainObject = IsPlainObject;
|
|
54
|
+
/** Returns true of this value is an object type */
|
|
36
55
|
function IsObject(value) {
|
|
37
56
|
return value !== null && typeof value === 'object';
|
|
38
57
|
}
|
|
39
58
|
exports.IsObject = IsObject;
|
|
59
|
+
/** Returns true if this value is an array, but not a typed array */
|
|
40
60
|
function IsArray(value) {
|
|
41
61
|
return Array.isArray(value) && !ArrayBuffer.isView(value);
|
|
42
62
|
}
|
|
43
63
|
exports.IsArray = IsArray;
|
|
64
|
+
/** Returns true if this value is an undefined */
|
|
44
65
|
function IsUndefined(value) {
|
|
45
66
|
return value === undefined;
|
|
46
67
|
}
|
|
47
68
|
exports.IsUndefined = IsUndefined;
|
|
69
|
+
/** Returns true if this value is an null */
|
|
48
70
|
function IsNull(value) {
|
|
49
71
|
return value === null;
|
|
50
72
|
}
|
|
51
73
|
exports.IsNull = IsNull;
|
|
74
|
+
/** Returns true if this value is an boolean */
|
|
52
75
|
function IsBoolean(value) {
|
|
53
76
|
return typeof value === 'boolean';
|
|
54
77
|
}
|
|
55
78
|
exports.IsBoolean = IsBoolean;
|
|
79
|
+
/** Returns true if this value is an number */
|
|
56
80
|
function IsNumber(value) {
|
|
57
81
|
return typeof value === 'number';
|
|
58
82
|
}
|
|
59
83
|
exports.IsNumber = IsNumber;
|
|
84
|
+
/** Returns true if this value is an integer */
|
|
60
85
|
function IsInteger(value) {
|
|
61
86
|
return IsNumber(value) && Number.isInteger(value);
|
|
62
87
|
}
|
|
63
88
|
exports.IsInteger = IsInteger;
|
|
89
|
+
/** Returns true if this value is bigint */
|
|
64
90
|
function IsBigInt(value) {
|
|
65
91
|
return typeof value === 'bigint';
|
|
66
92
|
}
|
|
67
93
|
exports.IsBigInt = IsBigInt;
|
|
94
|
+
/** Returns true if this value is string */
|
|
68
95
|
function IsString(value) {
|
|
69
96
|
return typeof value === 'string';
|
|
70
97
|
}
|
|
71
98
|
exports.IsString = IsString;
|
|
99
|
+
/** Returns true if this value is a function */
|
|
72
100
|
function IsFunction(value) {
|
|
73
101
|
return typeof value === 'function';
|
|
74
102
|
}
|
|
75
103
|
exports.IsFunction = IsFunction;
|
|
104
|
+
/** Returns true if this value is a symbol */
|
|
76
105
|
function IsSymbol(value) {
|
|
77
106
|
return typeof value === 'symbol';
|
|
78
107
|
}
|
|
79
108
|
exports.IsSymbol = IsSymbol;
|
|
109
|
+
/** Returns true if this value is a value type such as number, string, boolean */
|
|
80
110
|
function IsValueType(value) {
|
|
111
|
+
// prettier-ignore
|
|
81
112
|
return (IsBigInt(value) ||
|
|
82
113
|
IsBoolean(value) ||
|
|
83
114
|
IsNull(value) ||
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Hash = exports.ValueHashError = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
// Errors
|
|
8
|
+
// ------------------------------------------------------------------
|
|
5
9
|
class ValueHashError extends Error {
|
|
6
10
|
constructor(value) {
|
|
7
11
|
super(`Unable to hash value`);
|
|
@@ -9,6 +13,9 @@ class ValueHashError extends Error {
|
|
|
9
13
|
}
|
|
10
14
|
}
|
|
11
15
|
exports.ValueHashError = ValueHashError;
|
|
16
|
+
// ------------------------------------------------------------------
|
|
17
|
+
// ByteMarker
|
|
18
|
+
// ------------------------------------------------------------------
|
|
12
19
|
var ByteMarker;
|
|
13
20
|
(function (ByteMarker) {
|
|
14
21
|
ByteMarker[ByteMarker["Undefined"] = 0] = "Undefined";
|
|
@@ -23,18 +30,27 @@ var ByteMarker;
|
|
|
23
30
|
ByteMarker[ByteMarker["Symbol"] = 9] = "Symbol";
|
|
24
31
|
ByteMarker[ByteMarker["BigInt"] = 10] = "BigInt";
|
|
25
32
|
})(ByteMarker || (ByteMarker = {}));
|
|
33
|
+
// ------------------------------------------------------------------
|
|
34
|
+
// State
|
|
35
|
+
// ------------------------------------------------------------------
|
|
26
36
|
let Accumulator = BigInt('14695981039346656037');
|
|
27
37
|
const [Prime, Size] = [BigInt('1099511628211'), BigInt('2') ** BigInt('64')];
|
|
28
38
|
const Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));
|
|
29
39
|
const F64 = new Float64Array(1);
|
|
30
40
|
const F64In = new DataView(F64.buffer);
|
|
31
41
|
const F64Out = new Uint8Array(F64.buffer);
|
|
42
|
+
// ------------------------------------------------------------------
|
|
43
|
+
// NumberToBytes
|
|
44
|
+
// ------------------------------------------------------------------
|
|
32
45
|
function* NumberToBytes(value) {
|
|
33
46
|
const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8);
|
|
34
47
|
for (let i = 0; i < byteCount; i++) {
|
|
35
48
|
yield (value >> (8 * (byteCount - 1 - i))) & 0xff;
|
|
36
49
|
}
|
|
37
50
|
}
|
|
51
|
+
// ------------------------------------------------------------------
|
|
52
|
+
// Hashing Functions
|
|
53
|
+
// ------------------------------------------------------------------
|
|
38
54
|
function ArrayType(value) {
|
|
39
55
|
FNV1A64(ByteMarker.Array);
|
|
40
56
|
for (const item of value) {
|
|
@@ -123,6 +139,10 @@ function FNV1A64(byte) {
|
|
|
123
139
|
Accumulator = Accumulator ^ Bytes[byte];
|
|
124
140
|
Accumulator = (Accumulator * Prime) % Size;
|
|
125
141
|
}
|
|
142
|
+
// ------------------------------------------------------------------
|
|
143
|
+
// Hash
|
|
144
|
+
// ------------------------------------------------------------------
|
|
145
|
+
/** Creates a FNV1A-64 non cryptographic hash of the given value */
|
|
126
146
|
function Hash(value) {
|
|
127
147
|
Accumulator = BigInt('14695981039346656037');
|
|
128
148
|
Visit(value);
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.IsInteger = exports.IsFunction = exports.IsDate = exports.IsBoolean = exports.IsBigInt = exports.IsAsyncIterator = exports.IsArray = exports.HasPropertyKey = exports.TransformEncodeError = exports.TransformEncodeCheckError = exports.TransformDecodeError = exports.TransformDecodeCheckError = exports.HasTransform = exports.EncodeTransform = exports.DecodeTransform = exports.ValuePointer = exports.ValueMutateTypeMismatchError = exports.ValueMutateInvalidRootMutationError = exports.Mutate = exports.ValueHashError = exports.Hash = exports.Equal = exports.ValueDeltaUnableToDiffUnknownValue = exports.ValueDeltaObjectWithSymbolKeyError = exports.Update = exports.Insert = exports.Delete = exports.Edit = exports.Patch = exports.Diff = exports.Default = exports.ValueCreateUnknownTypeError = exports.ValueCreateTempateLiteralTypeError = exports.ValueCreateRecursiveInstantiationError = exports.ValueCreateNotTypeError = exports.ValueCreateNeverTypeError = exports.ValueCreateIntersectTypeError = exports.Create = exports.ValueConvertUnknownTypeError = exports.Convert = exports.Clone = exports.Clean = exports.Check = exports.ValueCastUnknownTypeError = exports.ValueCastRecursiveTypeError = exports.ValueCastNeverTypeError = exports.ValueCastArrayUniqueItemsTypeError = exports.Cast = exports.ValueErrorIterator = exports.ValueErrorType = void 0;
|
|
4
5
|
exports.Value = exports.IsValueType = exports.IsUndefined = exports.IsUint8Array = exports.IsTypedArray = exports.IsSymbol = exports.IsString = exports.IsPromise = exports.IsPlainObject = exports.IsObject = exports.IsNumber = exports.IsNull = exports.IsIterator = void 0;
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
// Value Errors (re-export)
|
|
8
|
+
// ------------------------------------------------------------------
|
|
5
9
|
var index_1 = require("../errors/index");
|
|
6
10
|
Object.defineProperty(exports, "ValueErrorType", { enumerable: true, get: function () { return index_1.ValueErrorType; } });
|
|
7
11
|
Object.defineProperty(exports, "ValueErrorIterator", { enumerable: true, get: function () { return index_1.ValueErrorIterator; } });
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// Value Operators
|
|
14
|
+
// ------------------------------------------------------------------
|
|
8
15
|
var index_2 = require("./cast/index");
|
|
9
16
|
Object.defineProperty(exports, "Cast", { enumerable: true, get: function () { return index_2.Cast; } });
|
|
10
17
|
Object.defineProperty(exports, "ValueCastArrayUniqueItemsTypeError", { enumerable: true, get: function () { return index_2.ValueCastArrayUniqueItemsTypeError; } });
|
|
@@ -58,6 +65,9 @@ Object.defineProperty(exports, "TransformDecodeCheckError", { enumerable: true,
|
|
|
58
65
|
Object.defineProperty(exports, "TransformDecodeError", { enumerable: true, get: function () { return index_14.TransformDecodeError; } });
|
|
59
66
|
Object.defineProperty(exports, "TransformEncodeCheckError", { enumerable: true, get: function () { return index_14.TransformEncodeCheckError; } });
|
|
60
67
|
Object.defineProperty(exports, "TransformEncodeError", { enumerable: true, get: function () { return index_14.TransformEncodeError; } });
|
|
68
|
+
// ------------------------------------------------------------------
|
|
69
|
+
// Value Guards
|
|
70
|
+
// ------------------------------------------------------------------
|
|
61
71
|
var index_15 = require("./guard/index");
|
|
62
72
|
Object.defineProperty(exports, "HasPropertyKey", { enumerable: true, get: function () { return index_15.HasPropertyKey; } });
|
|
63
73
|
Object.defineProperty(exports, "IsArray", { enumerable: true, get: function () { return index_15.IsArray; } });
|
|
@@ -79,5 +89,8 @@ Object.defineProperty(exports, "IsTypedArray", { enumerable: true, get: function
|
|
|
79
89
|
Object.defineProperty(exports, "IsUint8Array", { enumerable: true, get: function () { return index_15.IsUint8Array; } });
|
|
80
90
|
Object.defineProperty(exports, "IsUndefined", { enumerable: true, get: function () { return index_15.IsUndefined; } });
|
|
81
91
|
Object.defineProperty(exports, "IsValueType", { enumerable: true, get: function () { return index_15.IsValueType; } });
|
|
92
|
+
// ------------------------------------------------------------------
|
|
93
|
+
// Value Namespace
|
|
94
|
+
// ------------------------------------------------------------------
|
|
82
95
|
var index_16 = require("./value/index");
|
|
83
96
|
Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return index_16.Value; } });
|
|
@@ -7,4 +7,5 @@ export declare class ValueMutateInvalidRootMutationError extends Error {
|
|
|
7
7
|
export type Mutable = {
|
|
8
8
|
[key: string]: unknown;
|
|
9
9
|
} | unknown[];
|
|
10
|
+
/** `[Mutable]` Performs a deep mutable value assignment while retaining internal references */
|
|
10
11
|
export declare function Mutate(current: Mutable, next: Mutable): void;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Mutate = exports.ValueMutateInvalidRootMutationError = exports.ValueMutateTypeMismatchError = void 0;
|
|
4
5
|
const index_1 = require("../guard/index");
|
|
5
6
|
const index_2 = require("../pointer/index");
|
|
6
7
|
const index_3 = require("../clone/index");
|
|
8
|
+
// ------------------------------------------------------------------
|
|
9
|
+
// Errors
|
|
10
|
+
// ------------------------------------------------------------------
|
|
7
11
|
class ValueMutateTypeMismatchError extends Error {
|
|
8
12
|
constructor() {
|
|
9
13
|
super('Cannot assign due type mismatch of assignable values');
|
|
@@ -74,13 +78,21 @@ function Visit(root, path, current, next) {
|
|
|
74
78
|
if ((0, index_1.IsValueType)(next))
|
|
75
79
|
return ValueType(root, path, current, next);
|
|
76
80
|
}
|
|
81
|
+
// ------------------------------------------------------------------
|
|
82
|
+
// IsNonMutableValue
|
|
83
|
+
// ------------------------------------------------------------------
|
|
77
84
|
function IsNonMutableValue(value) {
|
|
78
85
|
return (0, index_1.IsTypedArray)(value) || (0, index_1.IsValueType)(value);
|
|
79
86
|
}
|
|
80
87
|
function IsMismatchedValue(current, next) {
|
|
88
|
+
// prettier-ignore
|
|
81
89
|
return (((0, index_1.IsPlainObject)(current) && (0, index_1.IsArray)(next)) ||
|
|
82
90
|
((0, index_1.IsArray)(current) && (0, index_1.IsPlainObject)(next)));
|
|
83
91
|
}
|
|
92
|
+
// ------------------------------------------------------------------
|
|
93
|
+
// Mutate
|
|
94
|
+
// ------------------------------------------------------------------
|
|
95
|
+
/** `[Mutable]` Performs a deep mutable value assignment while retaining internal references */
|
|
84
96
|
function Mutate(current, next) {
|
|
85
97
|
if (IsNonMutableValue(current) || IsNonMutableValue(next))
|
|
86
98
|
throw new ValueMutateInvalidRootMutationError();
|
|
@@ -9,8 +9,13 @@ export declare class ValuePointerRootDeleteError extends Error {
|
|
|
9
9
|
readonly path: string;
|
|
10
10
|
constructor(value: unknown, path: string);
|
|
11
11
|
}
|
|
12
|
+
/** Formats the given pointer into navigable key components */
|
|
12
13
|
export declare function Format(pointer: string): IterableIterator<string>;
|
|
14
|
+
/** Sets the value at the given pointer. If the value at the pointer does not exist it is created */
|
|
13
15
|
export declare function Set(value: any, pointer: string, update: unknown): void;
|
|
16
|
+
/** Deletes a value at the given pointer */
|
|
14
17
|
export declare function Delete(value: any, pointer: string): void;
|
|
18
|
+
/** Returns true if a value exists at the given pointer */
|
|
15
19
|
export declare function Has(value: any, pointer: string): boolean;
|
|
20
|
+
/** Gets the value at the given pointer */
|
|
16
21
|
export declare function Get(value: any, pointer: string): any;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Get = exports.Has = exports.Delete = exports.Set = exports.Format = exports.ValuePointerRootDeleteError = exports.ValuePointerRootSetError = void 0;
|
|
5
|
+
// ------------------------------------------------------------------
|
|
6
|
+
// Errors
|
|
7
|
+
// ------------------------------------------------------------------
|
|
4
8
|
class ValuePointerRootSetError extends Error {
|
|
5
9
|
constructor(value, path, update) {
|
|
6
10
|
super('Cannot set root value');
|
|
@@ -18,9 +22,16 @@ class ValuePointerRootDeleteError extends Error {
|
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
exports.ValuePointerRootDeleteError = ValuePointerRootDeleteError;
|
|
25
|
+
// ------------------------------------------------------------------
|
|
26
|
+
// ValuePointer
|
|
27
|
+
// ------------------------------------------------------------------
|
|
28
|
+
/** Provides functionality to update values through RFC6901 string pointers */
|
|
29
|
+
// prettier-ignore
|
|
21
30
|
function Escape(component) {
|
|
22
31
|
return component.indexOf('~') === -1 ? component : component.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
23
32
|
}
|
|
33
|
+
/** Formats the given pointer into navigable key components */
|
|
34
|
+
// prettier-ignore
|
|
24
35
|
function* Format(pointer) {
|
|
25
36
|
if (pointer === '')
|
|
26
37
|
return;
|
|
@@ -44,6 +55,8 @@ function* Format(pointer) {
|
|
|
44
55
|
yield Escape(pointer.slice(start));
|
|
45
56
|
}
|
|
46
57
|
exports.Format = Format;
|
|
58
|
+
/** Sets the value at the given pointer. If the value at the pointer does not exist it is created */
|
|
59
|
+
// prettier-ignore
|
|
47
60
|
function Set(value, pointer, update) {
|
|
48
61
|
if (pointer === '')
|
|
49
62
|
throw new ValuePointerRootSetError(value, pointer, update);
|
|
@@ -58,6 +71,8 @@ function Set(value, pointer, update) {
|
|
|
58
71
|
owner[key] = update;
|
|
59
72
|
}
|
|
60
73
|
exports.Set = Set;
|
|
74
|
+
/** Deletes a value at the given pointer */
|
|
75
|
+
// prettier-ignore
|
|
61
76
|
function Delete(value, pointer) {
|
|
62
77
|
if (pointer === '')
|
|
63
78
|
throw new ValuePointerRootDeleteError(value, pointer);
|
|
@@ -78,6 +93,8 @@ function Delete(value, pointer) {
|
|
|
78
93
|
}
|
|
79
94
|
}
|
|
80
95
|
exports.Delete = Delete;
|
|
96
|
+
/** Returns true if a value exists at the given pointer */
|
|
97
|
+
// prettier-ignore
|
|
81
98
|
function Has(value, pointer) {
|
|
82
99
|
if (pointer === '')
|
|
83
100
|
return true;
|
|
@@ -92,6 +109,8 @@ function Has(value, pointer) {
|
|
|
92
109
|
return Object.getOwnPropertyNames(owner).includes(key);
|
|
93
110
|
}
|
|
94
111
|
exports.Has = Has;
|
|
112
|
+
/** Gets the value at the given pointer */
|
|
113
|
+
// prettier-ignore
|
|
95
114
|
function Get(value, pointer) {
|
|
96
115
|
if (pointer === '')
|
|
97
116
|
return value;
|
|
@@ -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;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.TransformDecode = exports.TransformDecodeError = exports.TransformDecodeCheckError = void 0;
|
|
4
5
|
const type_1 = require("../../type/guard/type");
|
|
@@ -8,6 +9,10 @@ const index_3 = require("../../type/keyof/index");
|
|
|
8
9
|
const index_4 = require("../../type/indexed/index");
|
|
9
10
|
const index_5 = require("../deref/index");
|
|
10
11
|
const index_6 = require("../check/index");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// Errors
|
|
14
|
+
// ------------------------------------------------------------------
|
|
15
|
+
// thrown externally
|
|
11
16
|
class TransformDecodeCheckError extends Error {
|
|
12
17
|
constructor(schema, value, error) {
|
|
13
18
|
super(`Unable to decode due to invalid value`);
|
|
@@ -25,6 +30,10 @@ class TransformDecodeError extends Error {
|
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
32
|
exports.TransformDecodeError = TransformDecodeError;
|
|
33
|
+
// ------------------------------------------------------------------
|
|
34
|
+
// Decode
|
|
35
|
+
// ------------------------------------------------------------------
|
|
36
|
+
// prettier-ignore
|
|
28
37
|
function Default(schema, value) {
|
|
29
38
|
try {
|
|
30
39
|
return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Decode(value) : value;
|
|
@@ -33,11 +42,13 @@ function Default(schema, value) {
|
|
|
33
42
|
throw new TransformDecodeError(schema, value, error);
|
|
34
43
|
}
|
|
35
44
|
}
|
|
45
|
+
// prettier-ignore
|
|
36
46
|
function TArray(schema, references, value) {
|
|
37
47
|
return ((0, index_2.IsArray)(value))
|
|
38
48
|
? Default(schema, value.map((value) => Visit(schema.items, references, value)))
|
|
39
49
|
: Default(schema, value);
|
|
40
50
|
}
|
|
51
|
+
// prettier-ignore
|
|
41
52
|
function TIntersect(schema, references, value) {
|
|
42
53
|
if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
|
|
43
54
|
return Default(schema, value);
|
|
@@ -62,6 +73,7 @@ function TIntersect(schema, references, value) {
|
|
|
62
73
|
function TNot(schema, references, value) {
|
|
63
74
|
return Default(schema, Visit(schema.not, references, value));
|
|
64
75
|
}
|
|
76
|
+
// prettier-ignore
|
|
65
77
|
function TObject(schema, references, value) {
|
|
66
78
|
if (!(0, index_2.IsPlainObject)(value))
|
|
67
79
|
return Default(schema, value);
|
|
@@ -83,6 +95,7 @@ function TObject(schema, references, value) {
|
|
|
83
95
|
}, knownProperties);
|
|
84
96
|
return Default(schema, unknownProperties);
|
|
85
97
|
}
|
|
98
|
+
// prettier-ignore
|
|
86
99
|
function TRecord(schema, references, value) {
|
|
87
100
|
if (!(0, index_2.IsPlainObject)(value))
|
|
88
101
|
return Default(schema, value);
|
|
@@ -105,28 +118,34 @@ function TRecord(schema, references, value) {
|
|
|
105
118
|
}, knownProperties);
|
|
106
119
|
return Default(schema, unknownProperties);
|
|
107
120
|
}
|
|
121
|
+
// prettier-ignore
|
|
108
122
|
function TRef(schema, references, value) {
|
|
109
123
|
const target = (0, index_5.Deref)(schema, references);
|
|
110
124
|
return Default(schema, Visit(target, references, value));
|
|
111
125
|
}
|
|
126
|
+
// prettier-ignore
|
|
112
127
|
function TThis(schema, references, value) {
|
|
113
128
|
const target = (0, index_5.Deref)(schema, references);
|
|
114
129
|
return Default(schema, Visit(target, references, value));
|
|
115
130
|
}
|
|
131
|
+
// prettier-ignore
|
|
116
132
|
function TTuple(schema, references, value) {
|
|
117
133
|
return ((0, index_2.IsArray)(value) && (0, index_2.IsArray)(schema.items))
|
|
118
134
|
? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
|
|
119
135
|
: Default(schema, value);
|
|
120
136
|
}
|
|
137
|
+
// prettier-ignore
|
|
121
138
|
function TUnion(schema, references, value) {
|
|
122
139
|
for (const subschema of schema.anyOf) {
|
|
123
140
|
if (!(0, index_6.Check)(subschema, references, value))
|
|
124
141
|
continue;
|
|
142
|
+
// note: ensure interior is decoded first
|
|
125
143
|
const decoded = Visit(subschema, references, value);
|
|
126
144
|
return Default(schema, decoded);
|
|
127
145
|
}
|
|
128
146
|
return Default(schema, value);
|
|
129
147
|
}
|
|
148
|
+
// prettier-ignore
|
|
130
149
|
function Visit(schema, references, value) {
|
|
131
150
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
132
151
|
const schema_ = schema;
|
|
@@ -155,6 +174,11 @@ function Visit(schema, references, value) {
|
|
|
155
174
|
return Default(schema_, value);
|
|
156
175
|
}
|
|
157
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* `[Internal]` Decodes the value and returns the result. This function requires that
|
|
179
|
+
* the caller `Check` the value before use. Passing unchecked values may result in
|
|
180
|
+
* undefined behavior. Refer to the `Value.Decode()` for implementation details.
|
|
181
|
+
*/
|
|
158
182
|
function TransformDecode(schema, references, value) {
|
|
159
183
|
return Visit(schema, references, value);
|
|
160
184
|
}
|
|
@@ -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;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.TransformEncode = exports.TransformEncodeError = exports.TransformEncodeCheckError = void 0;
|
|
4
5
|
const type_1 = require("../../type/guard/type");
|
|
@@ -8,6 +9,9 @@ const index_3 = require("../../type/keyof/index");
|
|
|
8
9
|
const index_4 = require("../../type/indexed/index");
|
|
9
10
|
const index_5 = require("../deref/index");
|
|
10
11
|
const index_6 = require("../check/index");
|
|
12
|
+
// ------------------------------------------------------------------
|
|
13
|
+
// Errors
|
|
14
|
+
// ------------------------------------------------------------------
|
|
11
15
|
class TransformEncodeCheckError extends Error {
|
|
12
16
|
constructor(schema, value, error) {
|
|
13
17
|
super(`Unable to encode due to invalid value`);
|
|
@@ -25,6 +29,10 @@ class TransformEncodeError extends Error {
|
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
exports.TransformEncodeError = TransformEncodeError;
|
|
32
|
+
// ------------------------------------------------------------------
|
|
33
|
+
// Encode
|
|
34
|
+
// ------------------------------------------------------------------
|
|
35
|
+
// prettier-ignore
|
|
28
36
|
function Default(schema, value) {
|
|
29
37
|
try {
|
|
30
38
|
return (0, type_1.TTransform)(schema) ? schema[index_1.TransformKind].Encode(value) : value;
|
|
@@ -33,12 +41,14 @@ function Default(schema, value) {
|
|
|
33
41
|
throw new TransformEncodeError(schema, value, error);
|
|
34
42
|
}
|
|
35
43
|
}
|
|
44
|
+
// prettier-ignore
|
|
36
45
|
function TArray(schema, references, value) {
|
|
37
46
|
const defaulted = Default(schema, value);
|
|
38
47
|
return (0, index_2.IsArray)(defaulted)
|
|
39
48
|
? defaulted.map((value) => Visit(schema.items, references, value))
|
|
40
49
|
: defaulted;
|
|
41
50
|
}
|
|
51
|
+
// prettier-ignore
|
|
42
52
|
function TIntersect(schema, references, value) {
|
|
43
53
|
const defaulted = Default(schema, value);
|
|
44
54
|
if (!(0, index_2.IsPlainObject)(value) || (0, index_2.IsValueType)(value))
|
|
@@ -60,9 +70,11 @@ function TIntersect(schema, references, value) {
|
|
|
60
70
|
: value;
|
|
61
71
|
}, knownProperties);
|
|
62
72
|
}
|
|
73
|
+
// prettier-ignore
|
|
63
74
|
function TNot(schema, references, value) {
|
|
64
75
|
return Default(schema.not, Default(schema, value));
|
|
65
76
|
}
|
|
77
|
+
// prettier-ignore
|
|
66
78
|
function TObject(schema, references, value) {
|
|
67
79
|
const defaulted = Default(schema, value);
|
|
68
80
|
if (!(0, index_2.IsPlainObject)(value))
|
|
@@ -84,6 +96,7 @@ function TObject(schema, references, value) {
|
|
|
84
96
|
: value;
|
|
85
97
|
}, knownProperties);
|
|
86
98
|
}
|
|
99
|
+
// prettier-ignore
|
|
87
100
|
function TRecord(schema, references, value) {
|
|
88
101
|
const defaulted = Default(schema, value);
|
|
89
102
|
if (!(0, index_2.IsPlainObject)(value))
|
|
@@ -106,27 +119,33 @@ function TRecord(schema, references, value) {
|
|
|
106
119
|
: value;
|
|
107
120
|
}, knownProperties);
|
|
108
121
|
}
|
|
122
|
+
// prettier-ignore
|
|
109
123
|
function TRef(schema, references, value) {
|
|
110
124
|
const target = (0, index_5.Deref)(schema, references);
|
|
111
125
|
const resolved = Visit(target, references, value);
|
|
112
126
|
return Default(schema, resolved);
|
|
113
127
|
}
|
|
128
|
+
// prettier-ignore
|
|
114
129
|
function TThis(schema, references, value) {
|
|
115
130
|
const target = (0, index_5.Deref)(schema, references);
|
|
116
131
|
const resolved = Visit(target, references, value);
|
|
117
132
|
return Default(schema, resolved);
|
|
118
133
|
}
|
|
134
|
+
// prettier-ignore
|
|
119
135
|
function TTuple(schema, references, value) {
|
|
120
136
|
const value1 = Default(schema, value);
|
|
121
137
|
return (0, index_2.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
|
|
122
138
|
}
|
|
139
|
+
// prettier-ignore
|
|
123
140
|
function TUnion(schema, references, value) {
|
|
141
|
+
// test value against union variants
|
|
124
142
|
for (const subschema of schema.anyOf) {
|
|
125
143
|
if (!(0, index_6.Check)(subschema, references, value))
|
|
126
144
|
continue;
|
|
127
145
|
const value1 = Visit(subschema, references, value);
|
|
128
146
|
return Default(schema, value1);
|
|
129
147
|
}
|
|
148
|
+
// test transformed value against union variants
|
|
130
149
|
for (const subschema of schema.anyOf) {
|
|
131
150
|
const value1 = Visit(subschema, references, value);
|
|
132
151
|
if (!(0, index_6.Check)(schema, references, value1))
|
|
@@ -135,6 +154,7 @@ function TUnion(schema, references, value) {
|
|
|
135
154
|
}
|
|
136
155
|
return Default(schema, value);
|
|
137
156
|
}
|
|
157
|
+
// prettier-ignore
|
|
138
158
|
function Visit(schema, references, value) {
|
|
139
159
|
const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
|
|
140
160
|
const schema_ = schema;
|
|
@@ -161,6 +181,12 @@ function Visit(schema, references, value) {
|
|
|
161
181
|
return Default(schema_, value);
|
|
162
182
|
}
|
|
163
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* `[Internal]` Encodes the value and returns the result. This function expects the
|
|
186
|
+
* caller to pass a statically checked value. This function does not check the encoded
|
|
187
|
+
* result, meaning the result should be passed to `Check` before use. Refer to the
|
|
188
|
+
* `Value.Encode()` function for implementation details.
|
|
189
|
+
*/
|
|
164
190
|
function TransformEncode(schema, references, value) {
|
|
165
191
|
return Visit(schema, references, value);
|
|
166
192
|
}
|