@sinclair/typebox 0.31.28 → 0.32.0-dev-2
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/{compiler → cjs/compiler}/compiler.js +118 -107
- package/{compiler → cjs/compiler}/index.js +3 -3
- package/{errors → cjs/errors}/errors.js +48 -44
- package/cjs/index.js +205 -0
- package/cjs/system/errors.js +192 -0
- package/{value → cjs/system}/index.js +13 -14
- package/cjs/system/policy.js +74 -0
- package/cjs/system/system.js +71 -0
- package/cjs/type/any/any.js +36 -0
- package/{system → cjs/type/any}/index.js +2 -5
- package/cjs/type/array/array.js +42 -0
- package/cjs/type/array/index.js +44 -0
- package/cjs/type/async-iterator/async-iterator.js +42 -0
- package/cjs/type/async-iterator/index.js +44 -0
- package/cjs/type/awaited/awaited.js +66 -0
- package/cjs/type/awaited/index.js +44 -0
- package/cjs/type/bigint/bigint.js +40 -0
- package/cjs/type/bigint/index.js +44 -0
- package/cjs/type/boolean/boolean.js +40 -0
- package/cjs/type/boolean/index.js +44 -0
- package/cjs/type/clone/index.js +32 -0
- package/cjs/type/clone/type.js +41 -0
- package/cjs/type/clone/value.js +58 -0
- package/cjs/type/composite/composite.js +47 -0
- package/cjs/type/composite/index.js +44 -0
- package/cjs/type/const/const.js +84 -0
- package/cjs/type/const/index.js +44 -0
- package/cjs/type/constructor/constructor.js +43 -0
- package/cjs/type/constructor/index.js +44 -0
- package/cjs/type/constructor-parameters/constructor-parameters.js +37 -0
- package/cjs/type/constructor-parameters/index.js +44 -0
- package/cjs/type/date/date.js +40 -0
- package/cjs/type/date/index.js +44 -0
- package/cjs/type/deref/deref.js +136 -0
- package/cjs/type/deref/index.js +44 -0
- package/cjs/type/discard/discard.js +38 -0
- package/cjs/type/discard/index.js +44 -0
- package/cjs/type/enum/enum.js +46 -0
- package/cjs/type/enum/index.js +44 -0
- package/cjs/type/exclude/exclude.js +54 -0
- package/cjs/type/exclude/index.js +44 -0
- package/cjs/type/extends/extends-check.js +654 -0
- package/cjs/type/extends/extends-undefined.js +51 -0
- package/cjs/type/extends/extends.js +47 -0
- package/cjs/type/extends/index.js +46 -0
- package/cjs/type/extract/extract.js +54 -0
- package/cjs/type/extract/index.js +44 -0
- package/cjs/type/function/function.js +43 -0
- package/cjs/type/function/index.js +44 -0
- package/cjs/type/guard/index.js +32 -0
- package/cjs/type/guard/type.js +515 -0
- package/cjs/type/guard/value.js +100 -0
- package/cjs/type/helpers/helpers.js +35 -0
- package/cjs/type/helpers/index.js +44 -0
- package/cjs/type/index.js +113 -0
- package/cjs/type/indexed/index.js +46 -0
- package/cjs/type/indexed/indexed-key.js +65 -0
- package/cjs/type/indexed/indexed-type.js +106 -0
- package/cjs/type/indexed/indexed.js +41 -0
- package/cjs/type/instance-type/index.js +44 -0
- package/cjs/type/instance-type/instance-type.js +36 -0
- package/cjs/type/integer/index.js +44 -0
- package/cjs/type/integer/integer.js +40 -0
- package/cjs/type/intersect/index.js +44 -0
- package/cjs/type/intersect/intersect.js +59 -0
- package/cjs/type/intrinsic/index.js +44 -0
- package/cjs/type/intrinsic/intrinsic.js +106 -0
- package/cjs/type/iterator/index.js +44 -0
- package/cjs/type/iterator/iterator.js +42 -0
- package/cjs/type/keyof/index.js +46 -0
- package/cjs/type/keyof/keyof-string.js +103 -0
- package/cjs/type/keyof/keyof-type.js +48 -0
- package/cjs/type/keyof/keyof.js +38 -0
- package/cjs/type/literal/index.js +44 -0
- package/cjs/type/literal/literal.js +41 -0
- package/cjs/type/mapped/index.js +44 -0
- package/cjs/type/mapped/mapped.js +47 -0
- package/cjs/type/modifiers/index.js +44 -0
- package/cjs/type/modifiers/modifiers.js +78 -0
- package/cjs/type/never/index.js +44 -0
- package/cjs/type/never/never.js +40 -0
- package/cjs/type/not/index.js +44 -0
- package/cjs/type/not/not.js +41 -0
- package/cjs/type/null/index.js +44 -0
- package/cjs/type/null/null.js +40 -0
- package/cjs/type/number/index.js +44 -0
- package/cjs/type/number/number.js +40 -0
- package/cjs/type/object/index.js +44 -0
- package/cjs/type/object/object.js +47 -0
- package/cjs/type/omit/index.js +44 -0
- package/cjs/type/omit/omit.js +75 -0
- package/cjs/type/operators/index.js +44 -0
- package/cjs/type/operators/operators.js +119 -0
- package/cjs/type/optional/index.js +44 -0
- package/cjs/type/optional/optional.js +37 -0
- package/cjs/type/parameters/index.js +44 -0
- package/cjs/type/parameters/parameters.js +37 -0
- package/cjs/type/partial/index.js +44 -0
- package/cjs/type/partial/partial.js +73 -0
- package/cjs/type/patterns/index.js +44 -0
- package/cjs/type/patterns/patterns.js +36 -0
- package/cjs/type/pick/index.js +44 -0
- package/cjs/type/pick/pick.js +66 -0
- package/cjs/type/promise/index.js +44 -0
- package/cjs/type/promise/promise.js +42 -0
- package/cjs/type/readonly/index.js +44 -0
- package/cjs/type/readonly/readonly.js +37 -0
- package/cjs/type/readonly-optional/index.js +44 -0
- package/cjs/type/readonly-optional/readonly-optional.js +37 -0
- package/cjs/type/record/index.js +44 -0
- package/cjs/type/record/record.js +97 -0
- package/cjs/type/recursive/index.js +44 -0
- package/cjs/type/recursive/recursive.js +48 -0
- package/cjs/type/ref/index.js +44 -0
- package/cjs/type/ref/ref.js +45 -0
- package/cjs/type/regexp/index.js +44 -0
- package/cjs/type/regexp/regexp.js +38 -0
- package/cjs/type/registry/format.js +62 -0
- package/cjs/type/registry/index.js +32 -0
- package/cjs/type/registry/type.js +62 -0
- package/cjs/type/required/index.js +44 -0
- package/cjs/type/required/required.js +72 -0
- package/cjs/type/rest/index.js +44 -0
- package/cjs/type/rest/rest.js +41 -0
- package/cjs/type/return-type/index.js +44 -0
- package/cjs/type/return-type/return-type.js +36 -0
- package/cjs/type/schema/anyschema.js +29 -0
- package/cjs/type/schema/index.js +45 -0
- package/cjs/type/schema/schema.js +30 -0
- package/cjs/type/static/index.js +44 -0
- package/cjs/type/static/static.js +29 -0
- package/cjs/type/strict/index.js +44 -0
- package/cjs/type/strict/strict.js +35 -0
- package/cjs/type/string/index.js +44 -0
- package/cjs/type/string/string.js +36 -0
- package/cjs/type/symbol/index.js +44 -0
- package/cjs/type/symbol/symbol.js +36 -0
- package/cjs/type/symbols/index.js +44 -0
- package/cjs/type/symbols/symbols.js +40 -0
- package/cjs/type/template-literal/finite.js +71 -0
- package/cjs/type/template-literal/generate.js +74 -0
- package/cjs/type/template-literal/index.js +50 -0
- package/cjs/type/template-literal/parser.js +175 -0
- package/cjs/type/template-literal/pattern.js +61 -0
- package/cjs/type/template-literal/syntax.js +87 -0
- package/cjs/type/template-literal/template-literal.js +43 -0
- package/cjs/type/template-literal/union.js +48 -0
- package/cjs/type/transform/index.js +44 -0
- package/cjs/type/transform/transform.js +72 -0
- package/cjs/type/tuple/index.js +44 -0
- package/cjs/type/tuple/tuple.js +42 -0
- package/cjs/type/type/index.js +44 -0
- package/cjs/type/type/javascript.js +120 -0
- package/cjs/type/type/json.js +255 -0
- package/cjs/type/type/type.js +153 -0
- package/cjs/type/uint8array/index.js +44 -0
- package/cjs/type/uint8array/uint8array.js +36 -0
- package/cjs/type/undefined/index.js +44 -0
- package/cjs/type/undefined/undefined.js +36 -0
- package/cjs/type/union/index.js +44 -0
- package/cjs/type/union/union.js +50 -0
- package/cjs/type/unknown/index.js +44 -0
- package/cjs/type/unknown/unknown.js +39 -0
- package/cjs/type/unsafe/index.js +44 -0
- package/cjs/type/unsafe/unsafe.js +39 -0
- package/cjs/type/void/index.js +44 -0
- package/cjs/type/void/void.js +40 -0
- package/{value → cjs/value/cast}/cast.js +62 -83
- package/cjs/value/cast/index.js +44 -0
- package/cjs/value/check/check.js +468 -0
- package/cjs/value/check/index.js +44 -0
- package/cjs/value/clean/clean.js +167 -0
- package/cjs/value/clean/index.js +44 -0
- package/{value → cjs/value/clone}/clone.js +6 -6
- package/cjs/value/clone/index.js +44 -0
- package/{value → cjs/value/convert}/convert.js +93 -116
- package/cjs/value/convert/index.js +44 -0
- package/{value → cjs/value/create}/create.js +69 -62
- package/cjs/value/create/index.js +44 -0
- package/cjs/value/default/default.js +175 -0
- package/cjs/value/default/index.js +44 -0
- package/{value → cjs/value/delta}/delta.js +57 -53
- package/cjs/value/delta/index.js +44 -0
- package/{value → cjs/value/deref}/deref.js +1 -2
- package/cjs/value/deref/index.js +44 -0
- package/{value → cjs/value/equal}/equal.js +14 -14
- package/cjs/value/equal/index.js +44 -0
- package/cjs/value/guard/index.js +44 -0
- package/{value → cjs/value/hash}/hash.js +26 -26
- package/cjs/value/hash/index.js +44 -0
- package/cjs/value/index.js +123 -0
- package/cjs/value/mutate/index.js +44 -0
- package/{value → cjs/value/mutate}/mutate.js +25 -25
- package/cjs/value/pointer/index.js +31 -0
- package/cjs/value/pointer/pointer.js +151 -0
- package/cjs/value/transform/decode.js +211 -0
- package/cjs/value/transform/encode.js +219 -0
- package/cjs/value/transform/has.js +146 -0
- package/cjs/value/transform/index.js +46 -0
- package/cjs/value/value/index.js +31 -0
- package/cjs/value/value/value.js +125 -0
- package/{compiler/compiler.d.ts → esm/compiler/compiler.d.mts} +25 -18
- package/esm/compiler/compiler.mjs +658 -0
- package/{compiler/index.d.ts → esm/compiler/index.d.mts} +2 -2
- package/esm/compiler/index.mjs +29 -0
- package/{errors/errors.d.ts → esm/errors/errors.d.mts} +7 -7
- package/esm/errors/errors.mjs +583 -0
- package/esm/errors/index.d.mts +1 -0
- package/esm/errors/index.mjs +28 -0
- package/esm/index.d.mts +71 -0
- package/esm/index.mjs +105 -0
- package/esm/system/errors.d.mts +14 -0
- package/esm/system/errors.mjs +188 -0
- package/esm/system/index.d.mts +4 -0
- package/esm/system/index.mjs +31 -0
- package/esm/system/policy.d.mts +21 -0
- package/esm/system/policy.mjs +71 -0
- package/esm/system/system.d.mts +13 -0
- package/esm/system/system.mjs +66 -0
- package/esm/type/any/any.d.mts +8 -0
- package/esm/type/any/any.mjs +32 -0
- package/esm/type/any/index.d.mts +1 -0
- package/esm/type/any/index.mjs +28 -0
- package/esm/type/array/array.d.mts +25 -0
- package/esm/type/array/array.mjs +38 -0
- package/esm/type/array/index.d.mts +1 -0
- package/esm/type/array/index.mjs +28 -0
- package/esm/type/async-iterator/async-iterator.d.mts +11 -0
- package/esm/type/async-iterator/async-iterator.mjs +38 -0
- package/esm/type/async-iterator/index.d.mts +1 -0
- package/esm/type/async-iterator/index.mjs +28 -0
- package/esm/type/awaited/awaited.d.mts +12 -0
- package/esm/type/awaited/awaited.mjs +61 -0
- package/esm/type/awaited/index.d.mts +1 -0
- package/esm/type/awaited/index.mjs +28 -0
- package/esm/type/bigint/bigint.d.mts +16 -0
- package/esm/type/bigint/bigint.mjs +36 -0
- package/esm/type/bigint/index.d.mts +1 -0
- package/esm/type/bigint/index.mjs +28 -0
- package/esm/type/boolean/boolean.d.mts +9 -0
- package/esm/type/boolean/boolean.mjs +36 -0
- package/esm/type/boolean/index.d.mts +1 -0
- package/esm/type/boolean/index.mjs +28 -0
- package/esm/type/clone/index.d.mts +2 -0
- package/esm/type/clone/index.mjs +29 -0
- package/esm/type/clone/type.d.mts +5 -0
- package/esm/type/clone/type.mjs +36 -0
- package/esm/type/clone/value.d.mts +2 -0
- package/esm/type/clone/value.mjs +54 -0
- package/esm/type/composite/composite.d.mts +15 -0
- package/esm/type/composite/composite.mjs +42 -0
- package/esm/type/composite/index.d.mts +1 -0
- package/esm/type/composite/index.mjs +28 -0
- package/esm/type/const/const.d.mts +30 -0
- package/esm/type/const/const.mjs +80 -0
- package/esm/type/const/index.d.mts +1 -0
- package/esm/type/const/index.mjs +28 -0
- package/esm/type/constructor/constructor.d.mts +17 -0
- package/esm/type/constructor/constructor.mjs +39 -0
- package/esm/type/constructor/index.d.mts +1 -0
- package/esm/type/constructor/index.mjs +28 -0
- package/esm/type/constructor-parameters/constructor-parameters.d.mts +7 -0
- package/esm/type/constructor-parameters/constructor-parameters.mjs +33 -0
- package/esm/type/constructor-parameters/index.d.mts +1 -0
- package/esm/type/constructor-parameters/index.mjs +28 -0
- package/esm/type/date/date.d.mts +21 -0
- package/esm/type/date/date.mjs +36 -0
- package/esm/type/date/index.d.mts +1 -0
- package/esm/type/date/index.mjs +28 -0
- package/esm/type/deref/deref.d.mts +24 -0
- package/esm/type/deref/deref.mjs +131 -0
- package/esm/type/deref/index.d.mts +1 -0
- package/esm/type/deref/index.mjs +28 -0
- package/esm/type/discard/discard.d.mts +1 -0
- package/esm/type/discard/discard.mjs +34 -0
- package/esm/type/discard/index.d.mts +1 -0
- package/esm/type/discard/index.mjs +28 -0
- package/esm/type/enum/enum.d.mts +14 -0
- package/esm/type/enum/enum.mjs +42 -0
- package/esm/type/enum/index.d.mts +1 -0
- package/esm/type/enum/index.mjs +28 -0
- package/esm/type/exclude/exclude.d.mts +21 -0
- package/esm/type/exclude/exclude.mjs +49 -0
- package/esm/type/exclude/index.d.mts +1 -0
- package/esm/type/exclude/index.mjs +28 -0
- package/esm/type/extends/extends-check.d.mts +9 -0
- package/esm/type/extends/extends-check.mjs +649 -0
- package/esm/type/extends/extends-undefined.d.mts +3 -0
- package/esm/type/extends/extends-undefined.mjs +47 -0
- package/esm/type/extends/extends.d.mts +9 -0
- package/esm/type/extends/extends.mjs +42 -0
- package/esm/type/extends/index.d.mts +3 -0
- package/esm/type/extends/index.mjs +30 -0
- package/esm/type/extract/extract.d.mts +20 -0
- package/esm/type/extract/extract.mjs +49 -0
- package/esm/type/extract/index.d.mts +1 -0
- package/esm/type/extract/index.mjs +28 -0
- package/esm/type/function/function.d.mts +17 -0
- package/esm/type/function/function.mjs +39 -0
- package/esm/type/function/index.d.mts +1 -0
- package/esm/type/function/index.mjs +28 -0
- package/esm/type/guard/index.d.mts +2 -0
- package/esm/type/guard/index.mjs +29 -0
- package/esm/type/guard/type.d.mts +130 -0
- package/esm/type/guard/type.mjs +469 -0
- package/esm/type/guard/value.d.mts +28 -0
- package/esm/type/guard/value.mjs +83 -0
- package/esm/type/helpers/helpers.d.mts +42 -0
- package/esm/type/helpers/helpers.mjs +31 -0
- package/esm/type/helpers/index.d.mts +1 -0
- package/esm/type/helpers/index.mjs +28 -0
- package/esm/type/index.d.mts +70 -0
- package/esm/type/index.mjs +97 -0
- package/esm/type/indexed/index.d.mts +3 -0
- package/esm/type/indexed/index.mjs +30 -0
- package/esm/type/indexed/indexed-key.d.mts +17 -0
- package/esm/type/indexed/indexed-key.mjs +61 -0
- package/esm/type/indexed/indexed-type.d.mts +33 -0
- package/esm/type/indexed/indexed-type.mjs +102 -0
- package/esm/type/indexed/indexed.d.mts +8 -0
- package/esm/type/indexed/indexed.mjs +37 -0
- package/esm/type/instance-type/index.d.mts +1 -0
- package/esm/type/instance-type/index.mjs +28 -0
- package/esm/type/instance-type/instance-type.d.mts +5 -0
- package/esm/type/instance-type/instance-type.mjs +32 -0
- package/esm/type/integer/index.d.mts +1 -0
- package/esm/type/integer/index.mjs +28 -0
- package/esm/type/integer/integer.d.mts +16 -0
- package/esm/type/integer/integer.mjs +36 -0
- package/esm/type/intersect/index.d.mts +1 -0
- package/esm/type/intersect/index.mjs +28 -0
- package/esm/type/intersect/intersect.d.mts +22 -0
- package/esm/type/intersect/intersect.mjs +54 -0
- package/esm/type/intrinsic/index.d.mts +1 -0
- package/esm/type/intrinsic/index.mjs +28 -0
- package/esm/type/intrinsic/intrinsic.d.mts +27 -0
- package/esm/type/intrinsic/intrinsic.mjs +98 -0
- package/esm/type/iterator/index.d.mts +1 -0
- package/esm/type/iterator/index.mjs +28 -0
- package/esm/type/iterator/iterator.d.mts +11 -0
- package/esm/type/iterator/iterator.mjs +38 -0
- package/esm/type/keyof/index.d.mts +3 -0
- package/esm/type/keyof/index.mjs +30 -0
- package/esm/type/keyof/keyof-string.d.mts +30 -0
- package/esm/type/keyof/keyof-string.mjs +98 -0
- package/esm/type/keyof/keyof-type.d.mts +11 -0
- package/esm/type/keyof/keyof-type.mjs +44 -0
- package/esm/type/keyof/keyof.d.mts +5 -0
- package/esm/type/keyof/keyof.mjs +34 -0
- package/esm/type/literal/index.d.mts +1 -0
- package/esm/type/literal/index.mjs +28 -0
- package/esm/type/literal/literal.d.mts +10 -0
- package/esm/type/literal/literal.mjs +37 -0
- package/esm/type/mapped/index.d.mts +1 -0
- package/esm/type/mapped/index.mjs +28 -0
- package/esm/type/mapped/mapped.d.mts +26 -0
- package/esm/type/mapped/mapped.mjs +43 -0
- package/esm/type/modifiers/index.d.mts +1 -0
- package/esm/type/modifiers/index.mjs +28 -0
- package/esm/type/modifiers/modifiers.d.mts +18 -0
- package/esm/type/modifiers/modifiers.mjs +73 -0
- package/esm/type/never/index.d.mts +1 -0
- package/esm/type/never/index.mjs +28 -0
- package/esm/type/never/never.d.mts +9 -0
- package/esm/type/never/never.mjs +36 -0
- package/esm/type/not/index.d.mts +1 -0
- package/esm/type/not/index.mjs +28 -0
- package/esm/type/not/not.d.mts +10 -0
- package/esm/type/not/not.mjs +37 -0
- package/esm/type/null/index.d.mts +1 -0
- package/esm/type/null/index.mjs +28 -0
- package/esm/type/null/null.d.mts +9 -0
- package/esm/type/null/null.mjs +36 -0
- package/esm/type/number/index.d.mts +1 -0
- package/esm/type/number/index.mjs +28 -0
- package/esm/type/number/number.d.mts +16 -0
- package/esm/type/number/number.mjs +36 -0
- package/esm/type/object/index.d.mts +1 -0
- package/esm/type/object/index.mjs +28 -0
- package/esm/type/object/object.d.mts +44 -0
- package/esm/type/object/object.mjs +43 -0
- package/esm/type/omit/index.d.mts +1 -0
- package/esm/type/omit/index.mjs +28 -0
- package/esm/type/omit/omit.d.mts +21 -0
- package/esm/type/omit/omit.mjs +70 -0
- package/esm/type/operators/index.d.mts +1 -0
- package/esm/type/operators/index.mjs +28 -0
- package/esm/type/operators/operators.d.mts +24 -0
- package/esm/type/operators/operators.mjs +108 -0
- package/esm/type/optional/index.d.mts +1 -0
- package/esm/type/optional/index.mjs +28 -0
- package/esm/type/optional/optional.d.mts +7 -0
- package/esm/type/optional/optional.mjs +33 -0
- package/esm/type/parameters/index.d.mts +1 -0
- package/esm/type/parameters/index.mjs +28 -0
- package/esm/type/parameters/parameters.d.mts +7 -0
- package/esm/type/parameters/parameters.mjs +33 -0
- package/esm/type/partial/index.d.mts +1 -0
- package/esm/type/partial/index.mjs +28 -0
- package/esm/type/partial/partial.d.mts +23 -0
- package/esm/type/partial/partial.mjs +68 -0
- package/esm/type/patterns/index.d.mts +1 -0
- package/esm/type/patterns/index.mjs +28 -0
- package/esm/type/patterns/patterns.d.mts +6 -0
- package/esm/type/patterns/patterns.mjs +33 -0
- package/esm/type/pick/index.d.mts +1 -0
- package/esm/type/pick/index.mjs +28 -0
- package/esm/type/pick/pick.d.mts +21 -0
- package/esm/type/pick/pick.mjs +61 -0
- package/esm/type/promise/index.d.mts +1 -0
- package/esm/type/promise/index.mjs +28 -0
- package/esm/type/promise/promise.d.mts +11 -0
- package/esm/type/promise/promise.mjs +38 -0
- package/esm/type/readonly/index.d.mts +1 -0
- package/esm/type/readonly/index.mjs +28 -0
- package/esm/type/readonly/readonly.d.mts +7 -0
- package/esm/type/readonly/readonly.mjs +33 -0
- package/esm/type/readonly-optional/index.d.mts +1 -0
- package/esm/type/readonly-optional/index.mjs +28 -0
- package/esm/type/readonly-optional/readonly-optional.d.mts +6 -0
- package/esm/type/readonly-optional/readonly-optional.mjs +33 -0
- package/esm/type/record/index.d.mts +1 -0
- package/esm/type/record/index.mjs +28 -0
- package/esm/type/record/record.d.mts +55 -0
- package/esm/type/record/record.mjs +92 -0
- package/esm/type/recursive/index.d.mts +1 -0
- package/esm/type/recursive/index.mjs +28 -0
- package/esm/type/recursive/recursive.d.mts +15 -0
- package/esm/type/recursive/recursive.mjs +44 -0
- package/esm/type/ref/index.d.mts +1 -0
- package/esm/type/ref/index.mjs +28 -0
- package/esm/type/ref/ref.d.mts +12 -0
- package/esm/type/ref/ref.mjs +41 -0
- package/esm/type/regexp/index.d.mts +1 -0
- package/esm/type/regexp/index.mjs +28 -0
- package/esm/type/regexp/regexp.d.mts +7 -0
- package/esm/type/regexp/regexp.mjs +34 -0
- package/esm/type/registry/format.d.mts +13 -0
- package/esm/type/registry/format.mjs +53 -0
- package/esm/type/registry/index.d.mts +2 -0
- package/esm/type/registry/index.mjs +29 -0
- package/esm/type/registry/type.d.mts +13 -0
- package/esm/type/registry/type.mjs +53 -0
- package/esm/type/required/index.d.mts +1 -0
- package/esm/type/required/index.mjs +28 -0
- package/esm/type/required/required.d.mts +23 -0
- package/esm/type/required/required.mjs +67 -0
- package/esm/type/rest/index.d.mts +1 -0
- package/esm/type/rest/index.mjs +28 -0
- package/esm/type/rest/rest.d.mts +10 -0
- package/esm/type/rest/rest.mjs +36 -0
- package/esm/type/return-type/index.d.mts +1 -0
- package/esm/type/return-type/index.mjs +28 -0
- package/esm/type/return-type/return-type.d.mts +5 -0
- package/esm/type/return-type/return-type.mjs +32 -0
- package/esm/type/schema/anyschema.d.mts +32 -0
- package/esm/type/schema/anyschema.mjs +28 -0
- package/esm/type/schema/index.d.mts +2 -0
- package/esm/type/schema/index.mjs +29 -0
- package/esm/type/schema/schema.d.mts +29 -0
- package/esm/type/schema/schema.mjs +28 -0
- package/esm/type/static/index.d.mts +1 -0
- package/esm/type/static/index.mjs +28 -0
- package/esm/type/static/static.d.mts +34 -0
- package/esm/type/static/static.mjs +28 -0
- package/esm/type/strict/index.d.mts +1 -0
- package/esm/type/strict/index.mjs +28 -0
- package/esm/type/strict/strict.d.mts +3 -0
- package/esm/type/strict/strict.mjs +31 -0
- package/esm/type/string/index.d.mts +1 -0
- package/esm/type/string/index.mjs +28 -0
- package/esm/type/string/string.d.mts +25 -0
- package/esm/type/string/string.mjs +32 -0
- package/esm/type/symbol/index.d.mts +1 -0
- package/esm/type/symbol/index.mjs +28 -0
- package/esm/type/symbol/symbol.d.mts +10 -0
- package/esm/type/symbol/symbol.mjs +32 -0
- package/esm/type/symbols/index.d.mts +1 -0
- package/esm/type/symbols/index.mjs +28 -0
- package/esm/type/symbols/symbols.d.mts +10 -0
- package/esm/type/symbols/symbols.mjs +37 -0
- package/esm/type/template-literal/finite.d.mts +16 -0
- package/esm/type/template-literal/finite.mjs +66 -0
- package/esm/type/template-literal/generate.d.mts +15 -0
- package/esm/type/template-literal/generate.mjs +69 -0
- package/esm/type/template-literal/index.d.mts +7 -0
- package/esm/type/template-literal/index.mjs +34 -0
- package/esm/type/template-literal/parser.d.mts +19 -0
- package/esm/type/template-literal/parser.mjs +169 -0
- package/esm/type/template-literal/pattern.d.mts +4 -0
- package/esm/type/template-literal/pattern.mjs +56 -0
- package/esm/type/template-literal/syntax.d.mts +20 -0
- package/esm/type/template-literal/syntax.mjs +83 -0
- package/esm/type/template-literal/template-literal.d.mts +30 -0
- package/esm/type/template-literal/template-literal.mjs +39 -0
- package/esm/type/template-literal/union.d.mts +7 -0
- package/esm/type/template-literal/union.mjs +44 -0
- package/esm/type/transform/index.d.mts +1 -0
- package/esm/type/transform/index.mjs +28 -0
- package/esm/type/transform/transform.d.mts +29 -0
- package/esm/type/transform/transform.mjs +69 -0
- package/esm/type/tuple/index.d.mts +1 -0
- package/esm/type/tuple/index.mjs +28 -0
- package/esm/type/tuple/tuple.d.mts +15 -0
- package/esm/type/tuple/tuple.mjs +38 -0
- package/esm/type/type/index.d.mts +6 -0
- package/esm/type/type/index.mjs +40 -0
- package/esm/type/type/javascript.d.mts +58 -0
- package/esm/type/type/javascript.mjs +116 -0
- package/esm/type/type/json.d.mts +139 -0
- package/esm/type/type/json.mjs +251 -0
- package/esm/type/type/type.d.mts +58 -0
- package/esm/type/type/type.mjs +88 -0
- package/esm/type/uint8array/index.d.mts +1 -0
- package/esm/type/uint8array/index.mjs +28 -0
- package/esm/type/uint8array/uint8array.d.mts +13 -0
- package/esm/type/uint8array/uint8array.mjs +32 -0
- package/esm/type/undefined/index.d.mts +1 -0
- package/esm/type/undefined/index.mjs +28 -0
- package/esm/type/undefined/undefined.d.mts +9 -0
- package/esm/type/undefined/undefined.mjs +32 -0
- package/esm/type/union/index.d.mts +1 -0
- package/esm/type/union/index.mjs +28 -0
- package/esm/type/union/union.d.mts +16 -0
- package/esm/type/union/union.mjs +45 -0
- package/esm/type/unknown/index.d.mts +1 -0
- package/esm/type/unknown/index.mjs +28 -0
- package/esm/type/unknown/unknown.d.mts +8 -0
- package/esm/type/unknown/unknown.mjs +35 -0
- package/esm/type/unsafe/index.d.mts +1 -0
- package/esm/type/unsafe/index.mjs +28 -0
- package/esm/type/unsafe/unsafe.d.mts +11 -0
- package/esm/type/unsafe/unsafe.mjs +35 -0
- package/esm/type/void/index.d.mts +1 -0
- package/esm/type/void/index.mjs +28 -0
- package/esm/type/void/void.d.mts +9 -0
- package/esm/type/void/void.mjs +36 -0
- package/esm/value/cast/cast.d.mts +23 -0
- package/esm/value/cast/cast.mjs +260 -0
- package/esm/value/cast/index.d.mts +1 -0
- package/esm/value/cast/index.mjs +28 -0
- package/esm/value/check/check.d.mts +10 -0
- package/{value/check.js → esm/value/check/check.mjs} +52 -51
- package/esm/value/check/index.d.mts +1 -0
- package/esm/value/check/index.mjs +28 -0
- package/esm/value/clean/clean.d.mts +5 -0
- package/esm/value/clean/clean.mjs +163 -0
- package/esm/value/clean/index.d.mts +1 -0
- package/esm/value/clean/index.mjs +28 -0
- package/esm/value/clone/clone.mjs +64 -0
- package/esm/value/clone/index.d.mts +1 -0
- package/esm/value/clone/index.mjs +28 -0
- package/esm/value/convert/convert.d.mts +9 -0
- package/esm/value/convert/convert.mjs +287 -0
- package/esm/value/convert/index.d.mts +1 -0
- package/esm/value/convert/index.mjs +28 -0
- package/esm/value/create/create.d.mts +31 -0
- package/esm/value/create/create.mjs +504 -0
- package/esm/value/create/index.d.mts +1 -0
- package/esm/value/create/index.mjs +28 -0
- package/esm/value/default/default.d.mts +5 -0
- package/esm/value/default/default.mjs +171 -0
- package/esm/value/default/index.d.mts +1 -0
- package/esm/value/default/index.mjs +28 -0
- package/esm/value/delta/delta.d.mts +41 -0
- package/esm/value/delta/delta.mjs +194 -0
- package/esm/value/delta/index.d.mts +1 -0
- package/esm/value/delta/index.mjs +28 -0
- package/{value/deref.d.ts → esm/value/deref/deref.d.mts} +4 -2
- package/esm/value/deref/deref.mjs +41 -0
- package/esm/value/deref/index.d.mts +1 -0
- package/esm/value/deref/index.mjs +28 -0
- package/esm/value/equal/equal.mjs +73 -0
- package/esm/value/equal/index.d.mts +1 -0
- package/esm/value/equal/index.mjs +28 -0
- package/esm/value/guard/guard.mjs +123 -0
- package/esm/value/guard/index.d.mts +1 -0
- package/esm/value/guard/index.mjs +28 -0
- package/{value/hash.d.ts → esm/value/hash/hash.d.mts} +0 -13
- package/esm/value/hash/hash.mjs +173 -0
- package/esm/value/hash/index.d.mts +1 -0
- package/esm/value/hash/index.mjs +28 -0
- package/esm/value/index.d.mts +18 -0
- package/esm/value/index.mjs +57 -0
- package/esm/value/mutate/index.d.mts +1 -0
- package/esm/value/mutate/index.mjs +28 -0
- package/{value/mutate.d.ts → esm/value/mutate/mutate.d.mts} +1 -1
- package/esm/value/mutate/mutate.mjs +123 -0
- package/esm/value/pointer/index.d.mts +1 -0
- package/esm/value/pointer/index.mjs +28 -0
- package/esm/value/pointer/pointer.d.mts +21 -0
- package/esm/value/pointer/pointer.mjs +146 -0
- package/esm/value/transform/decode.d.mts +19 -0
- package/esm/value/transform/decode.mjs +210 -0
- package/esm/value/transform/encode.d.mts +20 -0
- package/esm/value/transform/encode.mjs +218 -0
- package/esm/value/transform/has.d.mts +3 -0
- package/esm/value/transform/has.mjs +142 -0
- package/esm/value/transform/index.d.mts +3 -0
- package/esm/value/transform/index.mjs +30 -0
- package/esm/value/value/index.d.mts +1 -0
- package/esm/value/value/index.mjs +28 -0
- package/esm/value/value/value.d.mts +53 -0
- package/esm/value/value/value.mjs +107 -0
- package/package.json +37 -27
- package/readme.md +183 -155
- package/errors/index.d.ts +0 -1
- package/system/index.d.ts +0 -2
- package/system/system.d.ts +0 -48
- package/system/system.js +0 -274
- package/typebox.d.ts +0 -962
- package/typebox.js +0 -2364
- package/value/cast.d.ts +0 -24
- package/value/check.d.ts +0 -9
- package/value/convert.d.ts +0 -10
- package/value/create.d.ts +0 -30
- package/value/delta.d.ts +0 -41
- package/value/index.d.ts +0 -5
- package/value/pointer.d.ts +0 -24
- package/value/pointer.js +0 -148
- package/value/transform.d.ts +0 -37
- package/value/transform.js +0 -473
- package/value/value.d.ts +0 -47
- package/value/value.js +0 -117
- /package/{errors → cjs/errors}/index.js +0 -0
- /package/{value → cjs/value/guard}/guard.js +0 -0
- /package/{value/clone.d.ts → esm/value/clone/clone.d.mts} +0 -0
- /package/{value/equal.d.ts → esm/value/equal/equal.d.mts} +0 -0
- /package/{value/guard.d.ts → esm/value/guard/guard.d.mts} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/value
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
29
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
32
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
33
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
34
|
+
}
|
|
35
|
+
Object.defineProperty(o, k2, desc);
|
|
36
|
+
}) : (function(o, m, k, k2) {
|
|
37
|
+
if (k2 === undefined) k2 = k;
|
|
38
|
+
o[k2] = m[k];
|
|
39
|
+
}));
|
|
40
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
41
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
__exportStar(require("./convert"), exports);
|
|
@@ -28,49 +28,52 @@ THE SOFTWARE.
|
|
|
28
28
|
---------------------------------------------------------------------------*/
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.Create = exports.ValueCreateRecursiveInstantiationError = exports.ValueCreateTempateLiteralTypeError = exports.ValueCreateIntersectTypeError = exports.ValueCreateNotTypeError = exports.ValueCreateNeverTypeError = exports.ValueCreateUnknownTypeError = void 0;
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
31
|
+
const index_mjs_1 = require("../guard/index");
|
|
32
|
+
const index_mjs_2 = require("../check/index");
|
|
33
|
+
const index_mjs_3 = require("../deref/index");
|
|
34
|
+
const index_mjs_4 = require("../../type/template-literal/index");
|
|
35
|
+
const index_mjs_5 = require("../../type/patterns/index");
|
|
36
|
+
const index_mjs_6 = require("../../type/registry/index");
|
|
37
|
+
const index_mjs_7 = require("../../type/symbols/index");
|
|
38
|
+
// ------------------------------------------------------------------
|
|
36
39
|
// Errors
|
|
37
|
-
//
|
|
38
|
-
class ValueCreateUnknownTypeError extends
|
|
40
|
+
// ------------------------------------------------------------------
|
|
41
|
+
class ValueCreateUnknownTypeError extends Error {
|
|
39
42
|
constructor(schema) {
|
|
40
43
|
super('Unknown type');
|
|
41
44
|
this.schema = schema;
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
exports.ValueCreateUnknownTypeError = ValueCreateUnknownTypeError;
|
|
45
|
-
class ValueCreateNeverTypeError extends
|
|
48
|
+
class ValueCreateNeverTypeError extends Error {
|
|
46
49
|
constructor(schema) {
|
|
47
50
|
super('Never types cannot be created');
|
|
48
51
|
this.schema = schema;
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
exports.ValueCreateNeverTypeError = ValueCreateNeverTypeError;
|
|
52
|
-
class ValueCreateNotTypeError extends
|
|
55
|
+
class ValueCreateNotTypeError extends Error {
|
|
53
56
|
constructor(schema) {
|
|
54
57
|
super('Not types must have a default value');
|
|
55
58
|
this.schema = schema;
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
exports.ValueCreateNotTypeError = ValueCreateNotTypeError;
|
|
59
|
-
class ValueCreateIntersectTypeError extends
|
|
62
|
+
class ValueCreateIntersectTypeError extends Error {
|
|
60
63
|
constructor(schema) {
|
|
61
64
|
super('Intersect produced invalid value. Consider using a default value.');
|
|
62
65
|
this.schema = schema;
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
exports.ValueCreateIntersectTypeError = ValueCreateIntersectTypeError;
|
|
66
|
-
class ValueCreateTempateLiteralTypeError extends
|
|
69
|
+
class ValueCreateTempateLiteralTypeError extends Error {
|
|
67
70
|
constructor(schema) {
|
|
68
71
|
super('Can only create template literal values from patterns that produce finite sequences. Consider using a default value.');
|
|
69
72
|
this.schema = schema;
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
exports.ValueCreateTempateLiteralTypeError = ValueCreateTempateLiteralTypeError;
|
|
73
|
-
class ValueCreateRecursiveInstantiationError extends
|
|
76
|
+
class ValueCreateRecursiveInstantiationError extends Error {
|
|
74
77
|
constructor(schema, recursiveMaxDepth) {
|
|
75
78
|
super('Value cannot be created as recursive type may produce value of infinite size. Consider using a default.');
|
|
76
79
|
this.schema = schema;
|
|
@@ -78,11 +81,11 @@ class ValueCreateRecursiveInstantiationError extends Types.TypeBoxError {
|
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
83
|
exports.ValueCreateRecursiveInstantiationError = ValueCreateRecursiveInstantiationError;
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
+
// ------------------------------------------------------------------
|
|
85
|
+
// Create
|
|
86
|
+
// ------------------------------------------------------------------
|
|
84
87
|
function TAny(schema, references) {
|
|
85
|
-
if ((0,
|
|
88
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
86
89
|
return schema.default;
|
|
87
90
|
}
|
|
88
91
|
else {
|
|
@@ -90,10 +93,10 @@ function TAny(schema, references) {
|
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
function TArray(schema, references) {
|
|
93
|
-
if (schema.uniqueItems === true && !(0,
|
|
96
|
+
if (schema.uniqueItems === true && !(0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
94
97
|
throw new Error('ValueCreate.Array: Array with the uniqueItems constraint requires a default value');
|
|
95
98
|
}
|
|
96
|
-
else if ('contains' in schema && !(0,
|
|
99
|
+
else if ('contains' in schema && !(0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
97
100
|
throw new Error('ValueCreate.Array: Array with the contains constraint requires a default value');
|
|
98
101
|
}
|
|
99
102
|
else if ('default' in schema) {
|
|
@@ -109,7 +112,7 @@ function TArray(schema, references) {
|
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
function TAsyncIterator(schema, references) {
|
|
112
|
-
if ((0,
|
|
115
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
113
116
|
return schema.default;
|
|
114
117
|
}
|
|
115
118
|
else {
|
|
@@ -117,7 +120,7 @@ function TAsyncIterator(schema, references) {
|
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
function TBigInt(schema, references) {
|
|
120
|
-
if ((0,
|
|
123
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
121
124
|
return schema.default;
|
|
122
125
|
}
|
|
123
126
|
else {
|
|
@@ -125,7 +128,7 @@ function TBigInt(schema, references) {
|
|
|
125
128
|
}
|
|
126
129
|
}
|
|
127
130
|
function TBoolean(schema, references) {
|
|
128
|
-
if ((0,
|
|
131
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
129
132
|
return schema.default;
|
|
130
133
|
}
|
|
131
134
|
else {
|
|
@@ -133,7 +136,7 @@ function TBoolean(schema, references) {
|
|
|
133
136
|
}
|
|
134
137
|
}
|
|
135
138
|
function TConstructor(schema, references) {
|
|
136
|
-
if ((0,
|
|
139
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
137
140
|
return schema.default;
|
|
138
141
|
}
|
|
139
142
|
else {
|
|
@@ -155,7 +158,7 @@ function TConstructor(schema, references) {
|
|
|
155
158
|
}
|
|
156
159
|
}
|
|
157
160
|
function TDate(schema, references) {
|
|
158
|
-
if ((0,
|
|
161
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
159
162
|
return schema.default;
|
|
160
163
|
}
|
|
161
164
|
else if (schema.minimumTimestamp !== undefined) {
|
|
@@ -166,7 +169,7 @@ function TDate(schema, references) {
|
|
|
166
169
|
}
|
|
167
170
|
}
|
|
168
171
|
function TFunction(schema, references) {
|
|
169
|
-
if ((0,
|
|
172
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
170
173
|
return schema.default;
|
|
171
174
|
}
|
|
172
175
|
else {
|
|
@@ -174,7 +177,7 @@ function TFunction(schema, references) {
|
|
|
174
177
|
}
|
|
175
178
|
}
|
|
176
179
|
function TInteger(schema, references) {
|
|
177
|
-
if ((0,
|
|
180
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
178
181
|
return schema.default;
|
|
179
182
|
}
|
|
180
183
|
else if (schema.minimum !== undefined) {
|
|
@@ -185,24 +188,28 @@ function TInteger(schema, references) {
|
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
190
|
function TIntersect(schema, references) {
|
|
188
|
-
if ((0,
|
|
191
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
189
192
|
return schema.default;
|
|
190
193
|
}
|
|
191
194
|
else {
|
|
192
|
-
//
|
|
193
|
-
//
|
|
195
|
+
// --------------------------------------------------------------
|
|
196
|
+
// Note: The best we can do here is attempt to instance each
|
|
197
|
+
// sub type and apply through object assign. For non-object
|
|
198
|
+
// sub types, we just escape the assignment and just return
|
|
199
|
+
// the value. In the latter case, this is typically going to
|
|
194
200
|
// be a consequence of an illogical intersection.
|
|
201
|
+
// --------------------------------------------------------------
|
|
195
202
|
const value = schema.allOf.reduce((acc, schema) => {
|
|
196
203
|
const next = Visit(schema, references);
|
|
197
204
|
return typeof next === 'object' ? { ...acc, ...next } : next;
|
|
198
205
|
}, {});
|
|
199
|
-
if (!(0,
|
|
206
|
+
if (!(0, index_mjs_2.Check)(schema, references, value))
|
|
200
207
|
throw new ValueCreateIntersectTypeError(schema);
|
|
201
208
|
return value;
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
211
|
function TIterator(schema, references) {
|
|
205
|
-
if ((0,
|
|
212
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
206
213
|
return schema.default;
|
|
207
214
|
}
|
|
208
215
|
else {
|
|
@@ -210,7 +217,7 @@ function TIterator(schema, references) {
|
|
|
210
217
|
}
|
|
211
218
|
}
|
|
212
219
|
function TLiteral(schema, references) {
|
|
213
|
-
if ((0,
|
|
220
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
214
221
|
return schema.default;
|
|
215
222
|
}
|
|
216
223
|
else {
|
|
@@ -221,7 +228,7 @@ function TNever(schema, references) {
|
|
|
221
228
|
throw new ValueCreateNeverTypeError(schema);
|
|
222
229
|
}
|
|
223
230
|
function TNot(schema, references) {
|
|
224
|
-
if ((0,
|
|
231
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
225
232
|
return schema.default;
|
|
226
233
|
}
|
|
227
234
|
else {
|
|
@@ -229,7 +236,7 @@ function TNot(schema, references) {
|
|
|
229
236
|
}
|
|
230
237
|
}
|
|
231
238
|
function TNull(schema, references) {
|
|
232
|
-
if ((0,
|
|
239
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
233
240
|
return schema.default;
|
|
234
241
|
}
|
|
235
242
|
else {
|
|
@@ -237,7 +244,7 @@ function TNull(schema, references) {
|
|
|
237
244
|
}
|
|
238
245
|
}
|
|
239
246
|
function TNumber(schema, references) {
|
|
240
|
-
if ((0,
|
|
247
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
241
248
|
return schema.default;
|
|
242
249
|
}
|
|
243
250
|
else if (schema.minimum !== undefined) {
|
|
@@ -248,7 +255,7 @@ function TNumber(schema, references) {
|
|
|
248
255
|
}
|
|
249
256
|
}
|
|
250
257
|
function TObject(schema, references) {
|
|
251
|
-
if ((0,
|
|
258
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
252
259
|
return schema.default;
|
|
253
260
|
}
|
|
254
261
|
else {
|
|
@@ -260,7 +267,7 @@ function TObject(schema, references) {
|
|
|
260
267
|
}
|
|
261
268
|
}
|
|
262
269
|
function TPromise(schema, references) {
|
|
263
|
-
if ((0,
|
|
270
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
264
271
|
return schema.default;
|
|
265
272
|
}
|
|
266
273
|
else {
|
|
@@ -269,10 +276,10 @@ function TPromise(schema, references) {
|
|
|
269
276
|
}
|
|
270
277
|
function TRecord(schema, references) {
|
|
271
278
|
const [keyPattern, valueSchema] = Object.entries(schema.patternProperties)[0];
|
|
272
|
-
if ((0,
|
|
279
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
273
280
|
return schema.default;
|
|
274
281
|
}
|
|
275
|
-
else if (!(keyPattern ===
|
|
282
|
+
else if (!(keyPattern === index_mjs_5.PatternStringExact || keyPattern === index_mjs_5.PatternNumberExact)) {
|
|
276
283
|
const propertyKeys = keyPattern.slice(1, keyPattern.length - 1).split('|');
|
|
277
284
|
return propertyKeys.reduce((acc, key) => {
|
|
278
285
|
return { ...acc, [key]: Visit(valueSchema, references) };
|
|
@@ -283,16 +290,16 @@ function TRecord(schema, references) {
|
|
|
283
290
|
}
|
|
284
291
|
}
|
|
285
292
|
function TRef(schema, references) {
|
|
286
|
-
if ((0,
|
|
293
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
287
294
|
return schema.default;
|
|
288
295
|
}
|
|
289
296
|
else {
|
|
290
|
-
return Visit((0,
|
|
297
|
+
return Visit((0, index_mjs_3.Deref)(schema, references), references);
|
|
291
298
|
}
|
|
292
299
|
}
|
|
293
300
|
function TString(schema, references) {
|
|
294
301
|
if (schema.pattern !== undefined) {
|
|
295
|
-
if (!(0,
|
|
302
|
+
if (!(0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
296
303
|
throw new Error('ValueCreate.String: String types with patterns must specify a default value');
|
|
297
304
|
}
|
|
298
305
|
else {
|
|
@@ -300,7 +307,7 @@ function TString(schema, references) {
|
|
|
300
307
|
}
|
|
301
308
|
}
|
|
302
309
|
else if (schema.format !== undefined) {
|
|
303
|
-
if (!(0,
|
|
310
|
+
if (!(0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
304
311
|
throw new Error('ValueCreate.String: String types with formats must specify a default value');
|
|
305
312
|
}
|
|
306
313
|
else {
|
|
@@ -308,7 +315,7 @@ function TString(schema, references) {
|
|
|
308
315
|
}
|
|
309
316
|
}
|
|
310
317
|
else {
|
|
311
|
-
if ((0,
|
|
318
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
312
319
|
return schema.default;
|
|
313
320
|
}
|
|
314
321
|
else if (schema.minLength !== undefined) {
|
|
@@ -322,7 +329,7 @@ function TString(schema, references) {
|
|
|
322
329
|
}
|
|
323
330
|
}
|
|
324
331
|
function TSymbol(schema, references) {
|
|
325
|
-
if ((0,
|
|
332
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
326
333
|
return schema.default;
|
|
327
334
|
}
|
|
328
335
|
else if ('value' in schema) {
|
|
@@ -333,27 +340,27 @@ function TSymbol(schema, references) {
|
|
|
333
340
|
}
|
|
334
341
|
}
|
|
335
342
|
function TTemplateLiteral(schema, references) {
|
|
336
|
-
if ((0,
|
|
343
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
337
344
|
return schema.default;
|
|
338
345
|
}
|
|
339
|
-
const expression =
|
|
340
|
-
if (!
|
|
346
|
+
const expression = (0, index_mjs_4.TemplateLiteralParseExact)(schema.pattern);
|
|
347
|
+
if (!(0, index_mjs_4.IsTemplateLiteralFinite)(expression))
|
|
341
348
|
throw new ValueCreateTempateLiteralTypeError(schema);
|
|
342
|
-
const sequence =
|
|
349
|
+
const sequence = (0, index_mjs_4.TemplateLiteralGenerate)(expression);
|
|
343
350
|
return sequence.next().value;
|
|
344
351
|
}
|
|
345
352
|
function TThis(schema, references) {
|
|
346
353
|
if (recursiveDepth++ > recursiveMaxDepth)
|
|
347
354
|
throw new ValueCreateRecursiveInstantiationError(schema, recursiveMaxDepth);
|
|
348
|
-
if ((0,
|
|
355
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
349
356
|
return schema.default;
|
|
350
357
|
}
|
|
351
358
|
else {
|
|
352
|
-
return Visit((0,
|
|
359
|
+
return Visit((0, index_mjs_3.Deref)(schema, references), references);
|
|
353
360
|
}
|
|
354
361
|
}
|
|
355
362
|
function TTuple(schema, references) {
|
|
356
|
-
if ((0,
|
|
363
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
357
364
|
return schema.default;
|
|
358
365
|
}
|
|
359
366
|
if (schema.items === undefined) {
|
|
@@ -364,7 +371,7 @@ function TTuple(schema, references) {
|
|
|
364
371
|
}
|
|
365
372
|
}
|
|
366
373
|
function TUndefined(schema, references) {
|
|
367
|
-
if ((0,
|
|
374
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
368
375
|
return schema.default;
|
|
369
376
|
}
|
|
370
377
|
else {
|
|
@@ -372,7 +379,7 @@ function TUndefined(schema, references) {
|
|
|
372
379
|
}
|
|
373
380
|
}
|
|
374
381
|
function TUnion(schema, references) {
|
|
375
|
-
if ((0,
|
|
382
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
376
383
|
return schema.default;
|
|
377
384
|
}
|
|
378
385
|
else if (schema.anyOf.length === 0) {
|
|
@@ -383,7 +390,7 @@ function TUnion(schema, references) {
|
|
|
383
390
|
}
|
|
384
391
|
}
|
|
385
392
|
function TUint8Array(schema, references) {
|
|
386
|
-
if ((0,
|
|
393
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
387
394
|
return schema.default;
|
|
388
395
|
}
|
|
389
396
|
else if (schema.minByteLength !== undefined) {
|
|
@@ -394,7 +401,7 @@ function TUint8Array(schema, references) {
|
|
|
394
401
|
}
|
|
395
402
|
}
|
|
396
403
|
function TUnknown(schema, references) {
|
|
397
|
-
if ((0,
|
|
404
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
398
405
|
return schema.default;
|
|
399
406
|
}
|
|
400
407
|
else {
|
|
@@ -402,7 +409,7 @@ function TUnknown(schema, references) {
|
|
|
402
409
|
}
|
|
403
410
|
}
|
|
404
411
|
function TVoid(schema, references) {
|
|
405
|
-
if ((0,
|
|
412
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
406
413
|
return schema.default;
|
|
407
414
|
}
|
|
408
415
|
else {
|
|
@@ -410,7 +417,7 @@ function TVoid(schema, references) {
|
|
|
410
417
|
}
|
|
411
418
|
}
|
|
412
419
|
function TKind(schema, references) {
|
|
413
|
-
if ((0,
|
|
420
|
+
if ((0, index_mjs_1.HasPropertyKey)(schema, 'default')) {
|
|
414
421
|
return schema.default;
|
|
415
422
|
}
|
|
416
423
|
else {
|
|
@@ -418,9 +425,9 @@ function TKind(schema, references) {
|
|
|
418
425
|
}
|
|
419
426
|
}
|
|
420
427
|
function Visit(schema, references) {
|
|
421
|
-
const references_ = (0,
|
|
428
|
+
const references_ = (0, index_mjs_1.IsString)(schema.$id) ? [...references, schema] : references;
|
|
422
429
|
const schema_ = schema;
|
|
423
|
-
switch (schema_[
|
|
430
|
+
switch (schema_[index_mjs_7.Kind]) {
|
|
424
431
|
case 'Any':
|
|
425
432
|
return TAny(schema_, references_);
|
|
426
433
|
case 'Array':
|
|
@@ -482,14 +489,14 @@ function Visit(schema, references) {
|
|
|
482
489
|
case 'Void':
|
|
483
490
|
return TVoid(schema_, references_);
|
|
484
491
|
default:
|
|
485
|
-
if (!
|
|
492
|
+
if (!index_mjs_6.TypeRegistry.Has(schema_[index_mjs_7.Kind]))
|
|
486
493
|
throw new ValueCreateUnknownTypeError(schema_);
|
|
487
494
|
return TKind(schema_, references_);
|
|
488
495
|
}
|
|
489
496
|
}
|
|
490
|
-
//
|
|
497
|
+
// ------------------------------------------------------------------
|
|
491
498
|
// State
|
|
492
|
-
//
|
|
499
|
+
// ------------------------------------------------------------------
|
|
493
500
|
const recursiveMaxDepth = 512;
|
|
494
501
|
let recursiveDepth = 0;
|
|
495
502
|
/** Creates a value from the given schema */
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/value
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
29
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
32
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
33
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
34
|
+
}
|
|
35
|
+
Object.defineProperty(o, k2, desc);
|
|
36
|
+
}) : (function(o, m, k, k2) {
|
|
37
|
+
if (k2 === undefined) k2 = k;
|
|
38
|
+
o[k2] = m[k];
|
|
39
|
+
}));
|
|
40
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
41
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
__exportStar(require("./create"), exports);
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*--------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
@sinclair/typebox/value
|
|
5
|
+
|
|
6
|
+
The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------*/
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.Default = void 0;
|
|
31
|
+
const index_mjs_1 = require("../guard/index");
|
|
32
|
+
const type_mjs_1 = require("../../type/guard/type");
|
|
33
|
+
const index_mjs_2 = require("../check/index");
|
|
34
|
+
const index_mjs_3 = require("../deref/index");
|
|
35
|
+
const index_mjs_4 = require("../../type/symbols/index");
|
|
36
|
+
// ------------------------------------------------------------------
|
|
37
|
+
// ValueOrDefault
|
|
38
|
+
// ------------------------------------------------------------------
|
|
39
|
+
function ValueOrDefault(schema, value) {
|
|
40
|
+
return !(value === undefined) || !('default' in schema) ? value : schema.default;
|
|
41
|
+
}
|
|
42
|
+
// ------------------------------------------------------------------
|
|
43
|
+
// IsCheckable
|
|
44
|
+
// ------------------------------------------------------------------
|
|
45
|
+
function IsCheckable(schema) {
|
|
46
|
+
return (0, type_mjs_1.TSchema)(schema) && schema[index_mjs_4.Kind] !== 'Unsafe';
|
|
47
|
+
}
|
|
48
|
+
// ------------------------------------------------------------------
|
|
49
|
+
// IsDefaultSchema
|
|
50
|
+
// ------------------------------------------------------------------
|
|
51
|
+
function IsDefaultSchema(value) {
|
|
52
|
+
return (0, type_mjs_1.TSchema)(value) && 'default' in value;
|
|
53
|
+
}
|
|
54
|
+
// ------------------------------------------------------------------
|
|
55
|
+
// Types
|
|
56
|
+
// ------------------------------------------------------------------
|
|
57
|
+
function TArray(schema, references, value) {
|
|
58
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
59
|
+
if (!(0, index_mjs_1.IsArray)(defaulted))
|
|
60
|
+
return defaulted;
|
|
61
|
+
for (let i = 0; i < defaulted.length; i++) {
|
|
62
|
+
defaulted[i] = Visit(schema.items, references, defaulted[i]);
|
|
63
|
+
}
|
|
64
|
+
return defaulted;
|
|
65
|
+
}
|
|
66
|
+
function TIntersect(schema, references, value) {
|
|
67
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
68
|
+
return schema.allOf.reduce((acc, schema) => {
|
|
69
|
+
const next = Visit(schema, references, defaulted);
|
|
70
|
+
return (0, index_mjs_1.IsObject)(next) ? { ...acc, ...next } : next;
|
|
71
|
+
}, {});
|
|
72
|
+
}
|
|
73
|
+
function TObject(schema, references, value) {
|
|
74
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
75
|
+
if (!(0, index_mjs_1.IsObject)(defaulted))
|
|
76
|
+
return defaulted;
|
|
77
|
+
const additionalPropertiesSchema = schema.additionalProperties;
|
|
78
|
+
const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);
|
|
79
|
+
// properties
|
|
80
|
+
for (const key of knownPropertyKeys) {
|
|
81
|
+
if (!IsDefaultSchema(schema.properties[key]))
|
|
82
|
+
continue;
|
|
83
|
+
defaulted[key] = Visit(schema.properties[key], references, defaulted[key]);
|
|
84
|
+
}
|
|
85
|
+
// return if not additional properties
|
|
86
|
+
if (!IsDefaultSchema(additionalPropertiesSchema))
|
|
87
|
+
return defaulted;
|
|
88
|
+
// additional properties
|
|
89
|
+
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
90
|
+
if (knownPropertyKeys.includes(key))
|
|
91
|
+
continue;
|
|
92
|
+
defaulted[key] = Visit(additionalPropertiesSchema, references, defaulted[key]);
|
|
93
|
+
}
|
|
94
|
+
return defaulted;
|
|
95
|
+
}
|
|
96
|
+
function TRecord(schema, references, value) {
|
|
97
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
98
|
+
if (!(0, index_mjs_1.IsObject)(defaulted))
|
|
99
|
+
return defaulted;
|
|
100
|
+
const additionalPropertiesSchema = schema.additionalProperties;
|
|
101
|
+
const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];
|
|
102
|
+
const knownPropertyKey = new RegExp(propertyKeyPattern);
|
|
103
|
+
// properties
|
|
104
|
+
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
105
|
+
if (!(knownPropertyKey.test(key) && IsDefaultSchema(propertySchema)))
|
|
106
|
+
continue;
|
|
107
|
+
defaulted[key] = Visit(propertySchema, references, defaulted[key]);
|
|
108
|
+
}
|
|
109
|
+
// return if not additional properties
|
|
110
|
+
if (!IsDefaultSchema(additionalPropertiesSchema))
|
|
111
|
+
return defaulted;
|
|
112
|
+
// additional properties
|
|
113
|
+
for (const key of Object.getOwnPropertyNames(defaulted)) {
|
|
114
|
+
if (knownPropertyKey.test(key))
|
|
115
|
+
continue;
|
|
116
|
+
defaulted[key] = Visit(additionalPropertiesSchema, references, defaulted[key]);
|
|
117
|
+
}
|
|
118
|
+
return defaulted;
|
|
119
|
+
}
|
|
120
|
+
function TRef(schema, references, value) {
|
|
121
|
+
return Visit((0, index_mjs_3.Deref)(schema, references), references, ValueOrDefault(schema, value));
|
|
122
|
+
}
|
|
123
|
+
function TThis(schema, references, value) {
|
|
124
|
+
return Visit((0, index_mjs_3.Deref)(schema, references), references, value);
|
|
125
|
+
}
|
|
126
|
+
function TTuple(schema, references, value) {
|
|
127
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
128
|
+
if (!(0, index_mjs_1.IsArray)(defaulted) || (0, index_mjs_1.IsUndefined)(schema.items))
|
|
129
|
+
return defaulted;
|
|
130
|
+
const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)];
|
|
131
|
+
for (let i = 0; i < max; i++) {
|
|
132
|
+
if (i < items.length)
|
|
133
|
+
defaulted[i] = Visit(items[i], references, defaulted[i]);
|
|
134
|
+
}
|
|
135
|
+
return defaulted;
|
|
136
|
+
}
|
|
137
|
+
function TUnion(schema, references, value) {
|
|
138
|
+
const defaulted = ValueOrDefault(schema, value);
|
|
139
|
+
for (const inner of schema.anyOf) {
|
|
140
|
+
const result = Visit(inner, references, defaulted);
|
|
141
|
+
if (IsCheckable(inner) && (0, index_mjs_2.Check)(inner, result)) {
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return defaulted;
|
|
146
|
+
}
|
|
147
|
+
function Visit(schema, references, value) {
|
|
148
|
+
const references_ = (0, index_mjs_1.IsString)(schema.$id) ? [...references, schema] : references;
|
|
149
|
+
const schema_ = schema;
|
|
150
|
+
switch (schema_[index_mjs_4.Kind]) {
|
|
151
|
+
case 'Array':
|
|
152
|
+
return TArray(schema_, references_, value);
|
|
153
|
+
case 'Intersect':
|
|
154
|
+
return TIntersect(schema_, references_, value);
|
|
155
|
+
case 'Object':
|
|
156
|
+
return TObject(schema_, references_, value);
|
|
157
|
+
case 'Record':
|
|
158
|
+
return TRecord(schema_, references_, value);
|
|
159
|
+
case 'Ref':
|
|
160
|
+
return TRef(schema_, references_, value);
|
|
161
|
+
case 'This':
|
|
162
|
+
return TThis(schema_, references_, value);
|
|
163
|
+
case 'Tuple':
|
|
164
|
+
return TTuple(schema_, references_, value);
|
|
165
|
+
case 'Union':
|
|
166
|
+
return TUnion(schema_, references_, value);
|
|
167
|
+
default:
|
|
168
|
+
return ValueOrDefault(schema_, value);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/** `[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. */
|
|
172
|
+
function Default(...args) {
|
|
173
|
+
return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
|
|
174
|
+
}
|
|
175
|
+
exports.Default = Default;
|