@sinclair/typebox 0.32.0-dev-17 → 0.32.0-dev-19
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.mjs +14 -35
- package/build/import/compiler/index.mjs +0 -27
- package/build/import/errors/errors.mjs +15 -38
- package/build/import/errors/function.mjs +0 -27
- package/build/import/errors/index.mjs +0 -27
- package/build/import/index.mjs +0 -27
- package/build/import/system/index.mjs +0 -27
- package/build/import/system/policy.mjs +0 -27
- package/build/import/system/system.mjs +0 -27
- package/build/import/type/any/any.mjs +0 -27
- package/build/import/type/any/index.mjs +0 -27
- package/build/import/type/array/array.mjs +0 -27
- package/build/import/type/array/index.mjs +0 -27
- package/build/import/type/async-iterator/async-iterator.mjs +0 -27
- package/build/import/type/async-iterator/index.mjs +0 -27
- package/build/import/type/awaited/awaited.d.mts +6 -6
- package/build/import/type/awaited/awaited.mjs +14 -41
- package/build/import/type/awaited/index.mjs +0 -27
- package/build/import/type/bigint/bigint.mjs +0 -27
- package/build/import/type/bigint/index.mjs +0 -27
- package/build/import/type/boolean/boolean.mjs +0 -27
- package/build/import/type/boolean/index.mjs +0 -27
- package/build/import/type/clone/index.mjs +0 -27
- package/build/import/type/clone/type.mjs +0 -27
- package/build/import/type/clone/value.mjs +0 -27
- package/build/import/type/composite/composite.mjs +0 -27
- package/build/import/type/composite/index.mjs +0 -27
- package/build/import/type/const/const.mjs +0 -27
- package/build/import/type/const/index.mjs +0 -27
- package/build/import/type/constructor/constructor.mjs +0 -27
- package/build/import/type/constructor/index.mjs +0 -27
- package/build/import/type/constructor-parameters/constructor-parameters.mjs +0 -27
- package/build/import/type/constructor-parameters/index.mjs +0 -27
- package/build/import/type/date/date.mjs +0 -27
- package/build/import/type/date/index.mjs +0 -27
- package/build/import/type/deref/deref.mjs +12 -39
- package/build/import/type/deref/index.mjs +0 -27
- package/build/import/type/discard/discard.mjs +0 -27
- package/build/import/type/discard/index.mjs +0 -27
- package/build/import/type/enum/enum.mjs +0 -27
- package/build/import/type/enum/index.mjs +0 -27
- package/build/import/type/exclude/exclude-from-mapped-result.mjs +0 -27
- package/build/import/type/exclude/exclude.mjs +8 -32
- package/build/import/type/exclude/index.mjs +0 -27
- package/build/import/type/extends/extends-check.mjs +167 -194
- package/build/import/type/extends/extends-from-mapped-key.mjs +0 -27
- package/build/import/type/extends/extends-from-mapped-result.mjs +0 -27
- package/build/import/type/extends/extends-undefined.mjs +0 -27
- package/build/import/type/extends/extends.mjs +3 -30
- package/build/import/type/extends/index.mjs +0 -27
- package/build/import/type/extract/extract-from-mapped-result.mjs +0 -27
- package/build/import/type/extract/extract.mjs +5 -32
- package/build/import/type/extract/index.mjs +0 -27
- package/build/import/type/function/function.mjs +0 -27
- package/build/import/type/function/index.mjs +0 -27
- package/build/import/type/guard/index.mjs +0 -27
- package/build/import/type/guard/type.d.mts +50 -50
- package/build/import/type/guard/type.mjs +136 -163
- package/build/import/type/guard/value.mjs +0 -27
- package/build/import/type/helpers/helpers.mjs +0 -27
- package/build/import/type/helpers/index.mjs +0 -27
- package/build/import/type/index.mjs +0 -27
- package/build/import/type/indexed/index.d.mts +0 -1
- package/build/import/type/indexed/index.mjs +0 -28
- package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +2 -29
- package/build/import/type/indexed/indexed-property-keys.mjs +7 -34
- package/build/import/type/indexed/indexed.d.mts +38 -5
- package/build/import/type/indexed/indexed.mjs +78 -32
- package/build/import/type/instance-type/index.mjs +0 -27
- package/build/import/type/instance-type/instance-type.mjs +0 -27
- package/build/import/type/integer/index.mjs +0 -27
- package/build/import/type/integer/integer.mjs +0 -27
- package/build/import/type/intersect/index.mjs +0 -27
- package/build/import/type/intersect/intersect-create.mjs +4 -31
- package/build/import/type/intersect/intersect-evaluated.mjs +1 -28
- package/build/import/type/intersect/intersect-type.mjs +0 -27
- package/build/import/type/intersect/intersect.mjs +2 -29
- package/build/import/type/intrinsic/capitalize.mjs +0 -27
- package/build/import/type/intrinsic/index.mjs +0 -27
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +0 -27
- package/build/import/type/intrinsic/intrinsic.mjs +5 -32
- package/build/import/type/intrinsic/lowercase.mjs +0 -27
- package/build/import/type/intrinsic/uncapitalize.mjs +0 -27
- package/build/import/type/intrinsic/uppercase.mjs +0 -27
- package/build/import/type/iterator/index.mjs +0 -27
- package/build/import/type/iterator/iterator.mjs +0 -27
- package/build/import/type/keyof/index.mjs +0 -27
- package/build/import/type/keyof/keyof-from-mapped-result.mjs +0 -27
- package/build/import/type/keyof/keyof-property-keys.mjs +7 -34
- package/build/import/type/keyof/keyof.mjs +2 -29
- package/build/import/type/literal/index.mjs +0 -27
- package/build/import/type/literal/literal.mjs +0 -27
- package/build/import/type/mapped/index.mjs +0 -27
- package/build/import/type/mapped/mapped-key.mjs +0 -27
- package/build/import/type/mapped/mapped-result.mjs +0 -27
- package/build/import/type/mapped/mapped.mjs +16 -43
- package/build/import/type/modifiers/index.mjs +0 -27
- package/build/import/type/modifiers/modifiers.mjs +3 -30
- package/build/import/type/never/index.mjs +0 -27
- package/build/import/type/never/never.mjs +0 -27
- package/build/import/type/not/index.mjs +0 -27
- package/build/import/type/not/not.mjs +0 -27
- package/build/import/type/null/index.mjs +0 -27
- package/build/import/type/null/null.mjs +0 -27
- package/build/import/type/number/index.mjs +0 -27
- package/build/import/type/number/number.mjs +0 -27
- package/build/import/type/object/index.mjs +0 -27
- package/build/import/type/object/object.mjs +3 -30
- package/build/import/type/omit/index.mjs +0 -27
- package/build/import/type/omit/omit-from-mapped-key.mjs +0 -27
- package/build/import/type/omit/omit.mjs +6 -33
- package/build/import/type/operators/index.mjs +0 -27
- package/build/import/type/operators/operators.mjs +0 -27
- package/build/import/type/optional/index.mjs +0 -27
- package/build/import/type/optional/optional.mjs +0 -27
- package/build/import/type/parameters/index.mjs +0 -27
- package/build/import/type/parameters/parameters.mjs +0 -27
- package/build/import/type/partial/index.mjs +0 -27
- package/build/import/type/partial/partial-from-mapped-result.mjs +0 -27
- package/build/import/type/partial/partial.mjs +5 -32
- package/build/import/type/patterns/index.mjs +0 -27
- package/build/import/type/patterns/patterns.mjs +0 -27
- package/build/import/type/pick/index.mjs +0 -27
- package/build/import/type/pick/pick-from-mapped-key.mjs +0 -27
- package/build/import/type/pick/pick.mjs +6 -33
- package/build/import/type/promise/index.mjs +0 -27
- package/build/import/type/promise/promise.mjs +0 -27
- package/build/import/type/readonly/index.mjs +0 -27
- package/build/import/type/readonly/readonly.mjs +0 -27
- package/build/import/type/readonly-optional/index.mjs +0 -27
- package/build/import/type/readonly-optional/readonly-optional.mjs +0 -27
- package/build/import/type/record/index.mjs +0 -27
- package/build/import/type/record/record.d.mts +10 -9
- package/build/import/type/record/record.mjs +37 -60
- package/build/import/type/recursive/index.mjs +0 -27
- package/build/import/type/recursive/recursive.mjs +0 -27
- package/build/import/type/ref/index.mjs +0 -27
- package/build/import/type/ref/ref.mjs +0 -27
- package/build/import/type/regexp/index.mjs +0 -27
- package/build/import/type/regexp/regexp.mjs +0 -27
- package/build/import/type/registry/format.mjs +0 -27
- package/build/import/type/registry/index.mjs +0 -27
- package/build/import/type/registry/type.mjs +0 -27
- package/build/import/type/required/index.mjs +0 -27
- package/build/import/type/required/required-from-mapped-result.mjs +0 -27
- package/build/import/type/required/required.mjs +5 -32
- package/build/import/type/rest/index.mjs +0 -27
- package/build/import/type/rest/rest.mjs +6 -29
- package/build/import/type/return-type/index.mjs +0 -27
- package/build/import/type/return-type/return-type.mjs +0 -27
- package/build/import/type/schema/anyschema.mjs +0 -27
- package/build/import/type/schema/index.mjs +0 -27
- package/build/import/type/schema/schema.mjs +0 -27
- package/build/import/type/static/index.mjs +0 -27
- package/build/import/type/static/static.mjs +0 -27
- package/build/import/type/strict/index.mjs +0 -27
- package/build/import/type/strict/strict.mjs +0 -27
- package/build/import/type/string/index.mjs +0 -27
- package/build/import/type/string/string.mjs +0 -27
- package/build/import/type/symbol/index.mjs +0 -27
- package/build/import/type/symbol/symbol.mjs +0 -27
- package/build/import/type/symbols/index.mjs +0 -27
- package/build/import/type/symbols/symbols.mjs +0 -27
- package/build/import/type/template-literal/finite.mjs +0 -27
- package/build/import/type/template-literal/generate.mjs +0 -27
- package/build/import/type/template-literal/index.mjs +0 -27
- package/build/import/type/template-literal/parser.mjs +0 -27
- package/build/import/type/template-literal/pattern.mjs +9 -36
- package/build/import/type/template-literal/syntax.mjs +0 -27
- package/build/import/type/template-literal/template-literal.mjs +0 -27
- package/build/import/type/template-literal/union.mjs +0 -27
- package/build/import/type/transform/index.mjs +0 -27
- package/build/import/type/transform/transform.mjs +1 -28
- package/build/import/type/tuple/index.mjs +0 -27
- package/build/import/type/tuple/tuple.mjs +0 -27
- package/build/import/type/type/index.mjs +0 -27
- package/build/import/type/type/javascript.mjs +0 -27
- package/build/import/type/type/json.d.mts +2 -2
- package/build/import/type/type/json.mjs +0 -27
- package/build/import/type/type/type.mjs +0 -27
- package/build/import/type/uint8array/index.mjs +0 -27
- package/build/import/type/uint8array/uint8array.mjs +0 -27
- package/build/import/type/undefined/index.mjs +0 -27
- package/build/import/type/undefined/undefined.mjs +0 -27
- package/build/import/type/union/index.mjs +0 -27
- package/build/import/type/union/union-create.mjs +0 -27
- package/build/import/type/union/union-evaluated.mjs +2 -29
- package/build/import/type/union/union-type.mjs +0 -27
- package/build/import/type/union/union.mjs +0 -27
- package/build/import/type/unknown/index.mjs +0 -27
- package/build/import/type/unknown/unknown.mjs +0 -27
- package/build/import/type/unsafe/index.mjs +0 -27
- package/build/import/type/unsafe/unsafe.mjs +0 -27
- package/build/import/type/void/index.mjs +0 -27
- package/build/import/type/void/void.mjs +0 -27
- package/build/import/value/cast/cast.mjs +0 -27
- package/build/import/value/cast/index.mjs +0 -27
- package/build/import/value/check/check.mjs +18 -38
- package/build/import/value/check/index.mjs +0 -27
- package/build/import/value/clean/clean.mjs +9 -34
- package/build/import/value/clean/index.mjs +0 -27
- package/build/import/value/clone/clone.mjs +7 -31
- package/build/import/value/clone/index.mjs +0 -27
- package/build/import/value/convert/convert.mjs +6 -29
- package/build/import/value/convert/index.mjs +0 -27
- package/build/import/value/create/create.mjs +0 -27
- package/build/import/value/create/index.mjs +0 -27
- package/build/import/value/default/default.mjs +12 -31
- package/build/import/value/default/index.mjs +0 -27
- package/build/import/value/delta/delta.mjs +0 -27
- package/build/import/value/delta/index.mjs +0 -27
- package/build/import/value/deref/deref.mjs +0 -27
- package/build/import/value/deref/index.mjs +0 -27
- package/build/import/value/equal/equal.mjs +0 -27
- package/build/import/value/equal/index.mjs +0 -27
- package/build/import/value/guard/guard.mjs +0 -27
- package/build/import/value/guard/index.mjs +0 -27
- package/build/import/value/hash/hash.mjs +0 -27
- package/build/import/value/hash/index.mjs +0 -27
- package/build/import/value/index.mjs +0 -27
- package/build/import/value/mutate/index.mjs +0 -27
- package/build/import/value/mutate/mutate.mjs +0 -27
- package/build/import/value/pointer/index.mjs +0 -27
- package/build/import/value/pointer/pointer.mjs +0 -27
- package/build/import/value/transform/decode.mjs +12 -33
- package/build/import/value/transform/encode.mjs +12 -33
- package/build/import/value/transform/has.mjs +24 -45
- package/build/import/value/transform/index.mjs +0 -27
- package/build/import/value/value/index.mjs +0 -27
- package/build/import/value/value/value.mjs +0 -27
- package/build/require/compiler/compiler.js +77 -97
- package/build/require/compiler/index.js +0 -26
- package/build/require/errors/errors.js +58 -80
- package/build/require/errors/function.js +0 -26
- package/build/require/errors/index.js +0 -26
- package/build/require/index.js +0 -26
- package/build/require/system/index.js +0 -26
- package/build/require/system/policy.js +0 -26
- package/build/require/system/system.js +0 -26
- package/build/require/type/any/any.js +0 -26
- package/build/require/type/any/index.js +0 -26
- package/build/require/type/array/array.js +0 -26
- package/build/require/type/array/index.js +0 -26
- package/build/require/type/async-iterator/async-iterator.js +0 -26
- package/build/require/type/async-iterator/index.js +0 -26
- package/build/require/type/awaited/awaited.d.ts +6 -6
- package/build/require/type/awaited/awaited.js +14 -41
- package/build/require/type/awaited/index.js +0 -26
- package/build/require/type/bigint/bigint.js +0 -26
- package/build/require/type/bigint/index.js +0 -26
- package/build/require/type/boolean/boolean.js +0 -26
- package/build/require/type/boolean/index.js +0 -26
- package/build/require/type/clone/index.js +0 -26
- package/build/require/type/clone/type.js +0 -26
- package/build/require/type/clone/value.js +0 -26
- package/build/require/type/composite/composite.js +0 -26
- package/build/require/type/composite/index.js +0 -26
- package/build/require/type/const/const.js +0 -26
- package/build/require/type/const/index.js +0 -26
- package/build/require/type/constructor/constructor.js +0 -26
- package/build/require/type/constructor/index.js +0 -26
- package/build/require/type/constructor-parameters/constructor-parameters.js +0 -26
- package/build/require/type/constructor-parameters/index.js +0 -26
- package/build/require/type/date/date.js +0 -26
- package/build/require/type/date/index.js +0 -26
- package/build/require/type/deref/deref.js +11 -37
- package/build/require/type/deref/index.js +0 -26
- package/build/require/type/discard/discard.js +0 -26
- package/build/require/type/discard/index.js +0 -26
- package/build/require/type/enum/enum.js +0 -26
- package/build/require/type/enum/index.js +0 -26
- package/build/require/type/exclude/exclude-from-mapped-result.js +0 -26
- package/build/require/type/exclude/exclude.js +7 -30
- package/build/require/type/exclude/index.js +0 -26
- package/build/require/type/extends/extends-check.js +167 -193
- package/build/require/type/extends/extends-from-mapped-key.js +0 -26
- package/build/require/type/extends/extends-from-mapped-result.js +0 -26
- package/build/require/type/extends/extends-undefined.js +0 -26
- package/build/require/type/extends/extends.js +2 -28
- package/build/require/type/extends/index.js +0 -26
- package/build/require/type/extract/extract-from-mapped-result.js +0 -26
- package/build/require/type/extract/extract.js +4 -30
- package/build/require/type/extract/index.js +0 -26
- package/build/require/type/function/function.js +0 -26
- package/build/require/type/function/index.js +0 -26
- package/build/require/type/guard/index.js +0 -26
- package/build/require/type/guard/type.d.ts +50 -50
- package/build/require/type/guard/type.js +184 -210
- package/build/require/type/guard/value.js +0 -26
- package/build/require/type/helpers/helpers.js +0 -26
- package/build/require/type/helpers/index.js +0 -26
- package/build/require/type/index.js +0 -26
- package/build/require/type/indexed/index.d.ts +0 -1
- package/build/require/type/indexed/index.js +0 -27
- package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
- package/build/require/type/indexed/indexed-from-mapped-key.js +2 -28
- package/build/require/type/indexed/indexed-property-keys.js +6 -32
- package/build/require/type/indexed/indexed.d.ts +38 -5
- package/build/require/type/indexed/indexed.js +78 -31
- package/build/require/type/instance-type/index.js +0 -26
- package/build/require/type/instance-type/instance-type.js +0 -26
- package/build/require/type/integer/index.js +0 -26
- package/build/require/type/integer/integer.js +0 -26
- package/build/require/type/intersect/index.js +0 -26
- package/build/require/type/intersect/intersect-create.js +3 -29
- package/build/require/type/intersect/intersect-evaluated.js +2 -28
- package/build/require/type/intersect/intersect-type.js +0 -26
- package/build/require/type/intersect/intersect.js +1 -27
- package/build/require/type/intrinsic/capitalize.js +0 -26
- package/build/require/type/intrinsic/index.js +0 -26
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +0 -26
- package/build/require/type/intrinsic/intrinsic.js +4 -30
- package/build/require/type/intrinsic/lowercase.js +0 -26
- package/build/require/type/intrinsic/uncapitalize.js +0 -26
- package/build/require/type/intrinsic/uppercase.js +0 -26
- package/build/require/type/iterator/index.js +0 -26
- package/build/require/type/iterator/iterator.js +0 -26
- package/build/require/type/keyof/index.js +0 -26
- package/build/require/type/keyof/keyof-from-mapped-result.js +0 -26
- package/build/require/type/keyof/keyof-property-keys.js +6 -32
- package/build/require/type/keyof/keyof.js +1 -27
- package/build/require/type/literal/index.js +0 -26
- package/build/require/type/literal/literal.js +0 -26
- package/build/require/type/mapped/index.js +0 -26
- package/build/require/type/mapped/mapped-key.js +0 -26
- package/build/require/type/mapped/mapped-result.js +0 -26
- package/build/require/type/mapped/mapped.js +15 -41
- package/build/require/type/modifiers/index.js +0 -26
- package/build/require/type/modifiers/modifiers.js +2 -28
- package/build/require/type/never/index.js +0 -26
- package/build/require/type/never/never.js +0 -26
- package/build/require/type/not/index.js +0 -26
- package/build/require/type/not/not.js +0 -26
- package/build/require/type/null/index.js +0 -26
- package/build/require/type/null/null.js +0 -26
- package/build/require/type/number/index.js +0 -26
- package/build/require/type/number/number.js +0 -26
- package/build/require/type/object/index.js +0 -26
- package/build/require/type/object/object.js +2 -28
- package/build/require/type/omit/index.js +0 -26
- package/build/require/type/omit/omit-from-mapped-key.js +0 -26
- package/build/require/type/omit/omit.js +5 -31
- package/build/require/type/operators/index.js +0 -26
- package/build/require/type/operators/operators.js +0 -26
- package/build/require/type/optional/index.js +0 -26
- package/build/require/type/optional/optional.js +0 -26
- package/build/require/type/parameters/index.js +0 -26
- package/build/require/type/parameters/parameters.js +0 -26
- package/build/require/type/partial/index.js +0 -26
- package/build/require/type/partial/partial-from-mapped-result.js +0 -26
- package/build/require/type/partial/partial.js +4 -30
- package/build/require/type/patterns/index.js +0 -26
- package/build/require/type/patterns/patterns.js +0 -26
- package/build/require/type/pick/index.js +0 -26
- package/build/require/type/pick/pick-from-mapped-key.js +0 -26
- package/build/require/type/pick/pick.js +5 -31
- package/build/require/type/promise/index.js +0 -26
- package/build/require/type/promise/promise.js +0 -26
- package/build/require/type/readonly/index.js +0 -26
- package/build/require/type/readonly/readonly.js +0 -26
- package/build/require/type/readonly-optional/index.js +0 -26
- package/build/require/type/readonly-optional/readonly-optional.js +0 -26
- package/build/require/type/record/index.js +0 -26
- package/build/require/type/record/record.d.ts +10 -9
- package/build/require/type/record/record.js +36 -58
- package/build/require/type/recursive/index.js +0 -26
- package/build/require/type/recursive/recursive.js +0 -26
- package/build/require/type/ref/index.js +0 -26
- package/build/require/type/ref/ref.js +0 -26
- package/build/require/type/regexp/index.js +0 -26
- package/build/require/type/regexp/regexp.js +0 -26
- package/build/require/type/registry/format.js +0 -26
- package/build/require/type/registry/index.js +0 -26
- package/build/require/type/registry/type.js +0 -26
- package/build/require/type/required/index.js +0 -26
- package/build/require/type/required/required-from-mapped-result.js +0 -26
- package/build/require/type/required/required.js +4 -30
- package/build/require/type/rest/index.js +0 -26
- package/build/require/type/rest/rest.js +5 -27
- package/build/require/type/return-type/index.js +0 -26
- package/build/require/type/return-type/return-type.js +0 -26
- package/build/require/type/schema/anyschema.js +0 -26
- package/build/require/type/schema/index.js +0 -26
- package/build/require/type/schema/schema.js +0 -26
- package/build/require/type/static/index.js +0 -26
- package/build/require/type/static/static.js +0 -26
- package/build/require/type/strict/index.js +0 -26
- package/build/require/type/strict/strict.js +0 -26
- package/build/require/type/string/index.js +0 -26
- package/build/require/type/string/string.js +0 -26
- package/build/require/type/symbol/index.js +0 -26
- package/build/require/type/symbol/symbol.js +0 -26
- package/build/require/type/symbols/index.js +0 -26
- package/build/require/type/symbols/symbols.js +0 -26
- package/build/require/type/template-literal/finite.js +0 -26
- package/build/require/type/template-literal/generate.js +0 -26
- package/build/require/type/template-literal/index.js +0 -26
- package/build/require/type/template-literal/parser.js +0 -26
- package/build/require/type/template-literal/pattern.js +8 -34
- package/build/require/type/template-literal/syntax.js +0 -26
- package/build/require/type/template-literal/template-literal.js +0 -26
- package/build/require/type/template-literal/union.js +0 -26
- package/build/require/type/transform/index.js +0 -26
- package/build/require/type/transform/transform.js +1 -27
- package/build/require/type/tuple/index.js +0 -26
- package/build/require/type/tuple/tuple.js +0 -26
- package/build/require/type/type/index.js +0 -26
- package/build/require/type/type/javascript.js +0 -26
- package/build/require/type/type/json.d.ts +2 -2
- package/build/require/type/type/json.js +0 -26
- package/build/require/type/type/type.js +0 -26
- package/build/require/type/uint8array/index.js +0 -26
- package/build/require/type/uint8array/uint8array.js +0 -26
- package/build/require/type/undefined/index.js +0 -26
- package/build/require/type/undefined/undefined.js +0 -26
- package/build/require/type/union/index.js +0 -26
- package/build/require/type/union/union-create.js +0 -26
- package/build/require/type/union/union-evaluated.js +1 -27
- package/build/require/type/union/union-type.js +0 -26
- package/build/require/type/union/union.js +0 -26
- package/build/require/type/unknown/index.js +0 -26
- package/build/require/type/unknown/unknown.js +0 -26
- package/build/require/type/unsafe/index.js +0 -26
- package/build/require/type/unsafe/unsafe.js +0 -26
- package/build/require/type/void/index.js +0 -26
- package/build/require/type/void/void.js +0 -26
- package/build/require/value/cast/cast.js +0 -26
- package/build/require/value/cast/index.js +0 -26
- package/build/require/value/check/check.js +63 -82
- package/build/require/value/check/index.js +0 -26
- package/build/require/value/clean/clean.js +31 -55
- package/build/require/value/clean/index.js +0 -26
- package/build/require/value/clone/clone.js +7 -30
- package/build/require/value/clone/index.js +0 -26
- package/build/require/value/convert/convert.js +42 -64
- package/build/require/value/convert/index.js +0 -26
- package/build/require/value/create/create.js +0 -26
- package/build/require/value/create/index.js +0 -26
- package/build/require/value/default/default.js +24 -42
- package/build/require/value/default/index.js +0 -26
- package/build/require/value/delta/delta.js +0 -26
- package/build/require/value/delta/index.js +0 -26
- package/build/require/value/deref/deref.js +0 -26
- package/build/require/value/deref/index.js +0 -26
- package/build/require/value/equal/equal.js +0 -26
- package/build/require/value/equal/index.js +0 -26
- package/build/require/value/guard/guard.js +0 -26
- package/build/require/value/guard/index.js +0 -26
- package/build/require/value/hash/hash.js +0 -26
- package/build/require/value/hash/index.js +0 -26
- package/build/require/value/index.js +0 -26
- package/build/require/value/mutate/index.js +0 -26
- package/build/require/value/mutate/mutate.js +0 -26
- package/build/require/value/pointer/index.js +0 -26
- package/build/require/value/pointer/pointer.js +0 -26
- package/build/require/value/transform/decode.js +27 -47
- package/build/require/value/transform/encode.js +28 -48
- package/build/require/value/transform/has.js +29 -49
- package/build/require/value/transform/index.js +0 -26
- package/build/require/value/value/index.js +0 -26
- package/build/require/value/value/value.js +0 -26
- package/license +3 -1
- package/package.json +1 -1
- package/readme.md +7 -7
- package/build/import/type/indexed/indexed-result.d.mts +0 -33
- package/build/import/type/indexed/indexed-result.mjs +0 -107
- package/build/require/type/indexed/indexed-result.d.ts +0 -33
- package/build/require/type/indexed/indexed-result.js +0 -111
|
@@ -1,45 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/*--------------------------------------------------------------------------
|
|
3
2
|
|
|
4
|
-
@sinclair/typebox/compiler
|
|
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
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
4
|
exports.TypeCompiler = exports.Policy = exports.TypeCompilerTypeGuardError = exports.TypeCompilerUnknownTypeError = exports.TypeCheck = void 0;
|
|
31
5
|
const index_1 = require("../value/transform/index");
|
|
32
|
-
const index_2 = require("../
|
|
33
|
-
const index_3 = require("../
|
|
34
|
-
const index_4 = require("../
|
|
35
|
-
const index_5 = require("../value/
|
|
36
|
-
const index_6 = require("../
|
|
37
|
-
const index_7 = require("../type/
|
|
38
|
-
const
|
|
39
|
-
const index_8 = require("../type/registry/index");
|
|
40
|
-
const index_9 = require("../type/keyof/index");
|
|
6
|
+
const index_2 = require("../errors/index");
|
|
7
|
+
const index_3 = require("../system/index");
|
|
8
|
+
const index_4 = require("../value/deref/index");
|
|
9
|
+
const index_5 = require("../value/hash/index");
|
|
10
|
+
const index_6 = require("../type/symbols/index");
|
|
11
|
+
const index_7 = require("../type/registry/index");
|
|
12
|
+
const index_8 = require("../type/keyof/index");
|
|
41
13
|
const extends_undefined_1 = require("../type/extends/extends-undefined");
|
|
42
|
-
const
|
|
14
|
+
const index_9 = require("../type/never/index");
|
|
15
|
+
// ------------------------------------------------------------------
|
|
16
|
+
// ValueGuard
|
|
17
|
+
// ------------------------------------------------------------------
|
|
18
|
+
const index_10 = require("../value/guard/index");
|
|
19
|
+
// ------------------------------------------------------------------
|
|
20
|
+
// TypeGuard
|
|
21
|
+
// ------------------------------------------------------------------
|
|
22
|
+
const type_1 = require("../type/guard/type");
|
|
43
23
|
// ------------------------------------------------------------------
|
|
44
24
|
// TypeCheck
|
|
45
25
|
// ------------------------------------------------------------------
|
|
@@ -57,7 +37,7 @@ class TypeCheck {
|
|
|
57
37
|
}
|
|
58
38
|
/** Returns an iterator for each error in this value. */
|
|
59
39
|
Errors(value) {
|
|
60
|
-
return (0,
|
|
40
|
+
return (0, index_2.Errors)(this.schema, this.references, value);
|
|
61
41
|
}
|
|
62
42
|
/** Returns true if the value matches the compiled type. */
|
|
63
43
|
Check(value) {
|
|
@@ -182,25 +162,25 @@ exports.TypeCompilerTypeGuardError = TypeCompilerTypeGuardError;
|
|
|
182
162
|
var Policy;
|
|
183
163
|
(function (Policy) {
|
|
184
164
|
function IsExactOptionalProperty(value, key, expression) {
|
|
185
|
-
return
|
|
165
|
+
return index_3.TypeSystemPolicy.ExactOptionalPropertyTypes ? `('${key}' in ${value} ? ${expression} : true)` : `(${MemberExpression.Encode(value, key)} !== undefined ? ${expression} : true)`;
|
|
186
166
|
}
|
|
187
167
|
Policy.IsExactOptionalProperty = IsExactOptionalProperty;
|
|
188
168
|
function IsObjectLike(value) {
|
|
189
|
-
return !
|
|
169
|
+
return !index_3.TypeSystemPolicy.AllowArrayObject ? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}))` : `(typeof ${value} === 'object' && ${value} !== null)`;
|
|
190
170
|
}
|
|
191
171
|
Policy.IsObjectLike = IsObjectLike;
|
|
192
172
|
function IsRecordLike(value) {
|
|
193
|
-
return !
|
|
173
|
+
return !index_3.TypeSystemPolicy.AllowArrayObject
|
|
194
174
|
? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}) && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`
|
|
195
175
|
: `(typeof ${value} === 'object' && ${value} !== null && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`;
|
|
196
176
|
}
|
|
197
177
|
Policy.IsRecordLike = IsRecordLike;
|
|
198
178
|
function IsNumberLike(value) {
|
|
199
|
-
return !
|
|
179
|
+
return !index_3.TypeSystemPolicy.AllowNaN ? `(typeof ${value} === 'number' && Number.isFinite(${value}))` : `typeof ${value} === 'number'`;
|
|
200
180
|
}
|
|
201
181
|
Policy.IsNumberLike = IsNumberLike;
|
|
202
182
|
function IsVoidLike(value) {
|
|
203
|
-
return
|
|
183
|
+
return index_3.TypeSystemPolicy.AllowNullVoid ? `(${value} === undefined || ${value} === null)` : `${value} === undefined`;
|
|
204
184
|
}
|
|
205
185
|
Policy.IsVoidLike = IsVoidLike;
|
|
206
186
|
})(Policy || (exports.Policy = Policy = {}));
|
|
@@ -211,7 +191,7 @@ var TypeCompiler;
|
|
|
211
191
|
// Guards
|
|
212
192
|
// ----------------------------------------------------------------
|
|
213
193
|
function IsAnyOrUnknown(schema) {
|
|
214
|
-
return schema[
|
|
194
|
+
return schema[index_6.Kind] === 'Any' || schema[index_6.Kind] === 'Unknown';
|
|
215
195
|
}
|
|
216
196
|
// ----------------------------------------------------------------
|
|
217
197
|
// Types
|
|
@@ -222,17 +202,17 @@ var TypeCompiler;
|
|
|
222
202
|
function* TArray(schema, references, value) {
|
|
223
203
|
yield `Array.isArray(${value})`;
|
|
224
204
|
const [parameter, accumulator] = [CreateParameter('value', 'any'), CreateParameter('acc', 'number')];
|
|
225
|
-
if ((0,
|
|
205
|
+
if ((0, index_10.IsNumber)(schema.maxItems))
|
|
226
206
|
yield `${value}.length <= ${schema.maxItems}`;
|
|
227
|
-
if ((0,
|
|
207
|
+
if ((0, index_10.IsNumber)(schema.minItems))
|
|
228
208
|
yield `${value}.length >= ${schema.minItems}`;
|
|
229
209
|
const elementExpression = CreateExpression(schema.items, references, 'value');
|
|
230
210
|
yield `${value}.every((${parameter}) => ${elementExpression})`;
|
|
231
|
-
if ((0, type_1.
|
|
232
|
-
const containsSchema = (0, type_1.
|
|
211
|
+
if ((0, type_1.IsSchema)(schema.contains) || (0, index_10.IsNumber)(schema.minContains) || (0, index_10.IsNumber)(schema.maxContains)) {
|
|
212
|
+
const containsSchema = (0, type_1.IsSchema)(schema.contains) ? schema.contains : (0, index_9.Never)();
|
|
233
213
|
const checkExpression = CreateExpression(containsSchema, references, 'value');
|
|
234
|
-
const checkMinContains = (0,
|
|
235
|
-
const checkMaxContains = (0,
|
|
214
|
+
const checkMinContains = (0, index_10.IsNumber)(schema.minContains) ? [`(count >= ${schema.minContains})`] : [];
|
|
215
|
+
const checkMaxContains = (0, index_10.IsNumber)(schema.maxContains) ? [`(count <= ${schema.maxContains})`] : [];
|
|
236
216
|
const checkCount = `const count = value.reduce((${accumulator}, ${parameter}) => ${checkExpression} ? acc + 1 : acc, 0)`;
|
|
237
217
|
const check = [`(count > 0)`, ...checkMinContains, ...checkMaxContains].join(' && ');
|
|
238
218
|
yield `((${parameter}) => { ${checkCount}; return ${check}})(${value})`;
|
|
@@ -248,15 +228,15 @@ var TypeCompiler;
|
|
|
248
228
|
}
|
|
249
229
|
function* TBigInt(schema, references, value) {
|
|
250
230
|
yield `(typeof ${value} === 'bigint')`;
|
|
251
|
-
if ((0,
|
|
231
|
+
if ((0, index_10.IsBigInt)(schema.exclusiveMaximum))
|
|
252
232
|
yield `${value} < BigInt(${schema.exclusiveMaximum})`;
|
|
253
|
-
if ((0,
|
|
233
|
+
if ((0, index_10.IsBigInt)(schema.exclusiveMinimum))
|
|
254
234
|
yield `${value} > BigInt(${schema.exclusiveMinimum})`;
|
|
255
|
-
if ((0,
|
|
235
|
+
if ((0, index_10.IsBigInt)(schema.maximum))
|
|
256
236
|
yield `${value} <= BigInt(${schema.maximum})`;
|
|
257
|
-
if ((0,
|
|
237
|
+
if ((0, index_10.IsBigInt)(schema.minimum))
|
|
258
238
|
yield `${value} >= BigInt(${schema.minimum})`;
|
|
259
|
-
if ((0,
|
|
239
|
+
if ((0, index_10.IsBigInt)(schema.multipleOf))
|
|
260
240
|
yield `(${value} % BigInt(${schema.multipleOf})) === 0`;
|
|
261
241
|
}
|
|
262
242
|
function* TBoolean(schema, references, value) {
|
|
@@ -267,15 +247,15 @@ var TypeCompiler;
|
|
|
267
247
|
}
|
|
268
248
|
function* TDate(schema, references, value) {
|
|
269
249
|
yield `(${value} instanceof Date) && Number.isFinite(${value}.getTime())`;
|
|
270
|
-
if ((0,
|
|
250
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMaximumTimestamp))
|
|
271
251
|
yield `${value}.getTime() < ${schema.exclusiveMaximumTimestamp}`;
|
|
272
|
-
if ((0,
|
|
252
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMinimumTimestamp))
|
|
273
253
|
yield `${value}.getTime() > ${schema.exclusiveMinimumTimestamp}`;
|
|
274
|
-
if ((0,
|
|
254
|
+
if ((0, index_10.IsNumber)(schema.maximumTimestamp))
|
|
275
255
|
yield `${value}.getTime() <= ${schema.maximumTimestamp}`;
|
|
276
|
-
if ((0,
|
|
256
|
+
if ((0, index_10.IsNumber)(schema.minimumTimestamp))
|
|
277
257
|
yield `${value}.getTime() >= ${schema.minimumTimestamp}`;
|
|
278
|
-
if ((0,
|
|
258
|
+
if ((0, index_10.IsNumber)(schema.multipleOfTimestamp))
|
|
279
259
|
yield `(${value}.getTime() % ${schema.multipleOfTimestamp}) === 0`;
|
|
280
260
|
}
|
|
281
261
|
function* TFunction(schema, references, value) {
|
|
@@ -283,26 +263,26 @@ var TypeCompiler;
|
|
|
283
263
|
}
|
|
284
264
|
function* TInteger(schema, references, value) {
|
|
285
265
|
yield `(typeof ${value} === 'number' && Number.isInteger(${value}))`;
|
|
286
|
-
if ((0,
|
|
266
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMaximum))
|
|
287
267
|
yield `${value} < ${schema.exclusiveMaximum}`;
|
|
288
|
-
if ((0,
|
|
268
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMinimum))
|
|
289
269
|
yield `${value} > ${schema.exclusiveMinimum}`;
|
|
290
|
-
if ((0,
|
|
270
|
+
if ((0, index_10.IsNumber)(schema.maximum))
|
|
291
271
|
yield `${value} <= ${schema.maximum}`;
|
|
292
|
-
if ((0,
|
|
272
|
+
if ((0, index_10.IsNumber)(schema.minimum))
|
|
293
273
|
yield `${value} >= ${schema.minimum}`;
|
|
294
|
-
if ((0,
|
|
274
|
+
if ((0, index_10.IsNumber)(schema.multipleOf))
|
|
295
275
|
yield `(${value} % ${schema.multipleOf}) === 0`;
|
|
296
276
|
}
|
|
297
277
|
function* TIntersect(schema, references, value) {
|
|
298
278
|
const check1 = schema.allOf.map((schema) => CreateExpression(schema, references, value)).join(' && ');
|
|
299
279
|
if (schema.unevaluatedProperties === false) {
|
|
300
|
-
const keyCheck = CreateVariable(`${new RegExp((0,
|
|
280
|
+
const keyCheck = CreateVariable(`${new RegExp((0, index_8.KeyOfPattern)(schema))};`);
|
|
301
281
|
const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key))`;
|
|
302
282
|
yield `(${check1} && ${check2})`;
|
|
303
283
|
}
|
|
304
|
-
else if ((0, type_1.
|
|
305
|
-
const keyCheck = CreateVariable(`${new RegExp((0,
|
|
284
|
+
else if ((0, type_1.IsSchema)(schema.unevaluatedProperties)) {
|
|
285
|
+
const keyCheck = CreateVariable(`${new RegExp((0, index_8.KeyOfPattern)(schema))};`);
|
|
306
286
|
const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key) || ${CreateExpression(schema.unevaluatedProperties, references, `${value}[key]`)})`;
|
|
307
287
|
yield `(${check1} && ${check2})`;
|
|
308
288
|
}
|
|
@@ -333,22 +313,22 @@ var TypeCompiler;
|
|
|
333
313
|
}
|
|
334
314
|
function* TNumber(schema, references, value) {
|
|
335
315
|
yield Policy.IsNumberLike(value);
|
|
336
|
-
if ((0,
|
|
316
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMaximum))
|
|
337
317
|
yield `${value} < ${schema.exclusiveMaximum}`;
|
|
338
|
-
if ((0,
|
|
318
|
+
if ((0, index_10.IsNumber)(schema.exclusiveMinimum))
|
|
339
319
|
yield `${value} > ${schema.exclusiveMinimum}`;
|
|
340
|
-
if ((0,
|
|
320
|
+
if ((0, index_10.IsNumber)(schema.maximum))
|
|
341
321
|
yield `${value} <= ${schema.maximum}`;
|
|
342
|
-
if ((0,
|
|
322
|
+
if ((0, index_10.IsNumber)(schema.minimum))
|
|
343
323
|
yield `${value} >= ${schema.minimum}`;
|
|
344
|
-
if ((0,
|
|
324
|
+
if ((0, index_10.IsNumber)(schema.multipleOf))
|
|
345
325
|
yield `(${value} % ${schema.multipleOf}) === 0`;
|
|
346
326
|
}
|
|
347
327
|
function* TObject(schema, references, value) {
|
|
348
328
|
yield Policy.IsObjectLike(value);
|
|
349
|
-
if ((0,
|
|
329
|
+
if ((0, index_10.IsNumber)(schema.minProperties))
|
|
350
330
|
yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;
|
|
351
|
-
if ((0,
|
|
331
|
+
if ((0, index_10.IsNumber)(schema.maxProperties))
|
|
352
332
|
yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;
|
|
353
333
|
const knownKeys = Object.getOwnPropertyNames(schema.properties);
|
|
354
334
|
for (const knownKey of knownKeys) {
|
|
@@ -384,19 +364,19 @@ var TypeCompiler;
|
|
|
384
364
|
}
|
|
385
365
|
function* TRecord(schema, references, value) {
|
|
386
366
|
yield Policy.IsRecordLike(value);
|
|
387
|
-
if ((0,
|
|
367
|
+
if ((0, index_10.IsNumber)(schema.minProperties))
|
|
388
368
|
yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;
|
|
389
|
-
if ((0,
|
|
369
|
+
if ((0, index_10.IsNumber)(schema.maxProperties))
|
|
390
370
|
yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;
|
|
391
371
|
const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];
|
|
392
372
|
const variable = CreateVariable(`${new RegExp(patternKey)}`);
|
|
393
373
|
const check1 = CreateExpression(patternSchema, references, 'value');
|
|
394
|
-
const check2 = (0, type_1.
|
|
374
|
+
const check2 = (0, type_1.IsSchema)(schema.additionalProperties) ? CreateExpression(schema.additionalProperties, references, value) : schema.additionalProperties === false ? 'false' : 'true';
|
|
395
375
|
const expression = `(${variable}.test(key) ? ${check1} : ${check2})`;
|
|
396
376
|
yield `(Object.entries(${value}).every(([key, value]) => ${expression}))`;
|
|
397
377
|
}
|
|
398
378
|
function* TRef(schema, references, value) {
|
|
399
|
-
const target = (0,
|
|
379
|
+
const target = (0, index_4.Deref)(schema, references);
|
|
400
380
|
// Reference: If we have seen this reference before we can just yield and return the function call.
|
|
401
381
|
// If this isn't the case we defer to visit to generate and set the function for subsequent passes.
|
|
402
382
|
if (state.functions.has(schema.$ref))
|
|
@@ -405,9 +385,9 @@ var TypeCompiler;
|
|
|
405
385
|
}
|
|
406
386
|
function* TString(schema, references, value) {
|
|
407
387
|
yield `(typeof ${value} === 'string')`;
|
|
408
|
-
if ((0,
|
|
388
|
+
if ((0, index_10.IsNumber)(schema.maxLength))
|
|
409
389
|
yield `${value}.length <= ${schema.maxLength}`;
|
|
410
|
-
if ((0,
|
|
390
|
+
if ((0, index_10.IsNumber)(schema.minLength))
|
|
411
391
|
yield `${value}.length >= ${schema.minLength}`;
|
|
412
392
|
if (schema.pattern !== undefined) {
|
|
413
393
|
const variable = CreateVariable(`${new RegExp(schema.pattern)};`);
|
|
@@ -448,9 +428,9 @@ var TypeCompiler;
|
|
|
448
428
|
}
|
|
449
429
|
function* TUint8Array(schema, references, value) {
|
|
450
430
|
yield `${value} instanceof Uint8Array`;
|
|
451
|
-
if ((0,
|
|
431
|
+
if ((0, index_10.IsNumber)(schema.maxByteLength))
|
|
452
432
|
yield `(${value}.length <= ${schema.maxByteLength})`;
|
|
453
|
-
if ((0,
|
|
433
|
+
if ((0, index_10.IsNumber)(schema.minByteLength))
|
|
454
434
|
yield `(${value}.length >= ${schema.minByteLength})`;
|
|
455
435
|
}
|
|
456
436
|
function* TUnknown(schema, references, value) {
|
|
@@ -462,15 +442,15 @@ var TypeCompiler;
|
|
|
462
442
|
function* TKind(schema, references, value) {
|
|
463
443
|
const instance = state.instances.size;
|
|
464
444
|
state.instances.set(instance, schema);
|
|
465
|
-
yield `kind('${schema[
|
|
445
|
+
yield `kind('${schema[index_6.Kind]}', ${instance}, ${value})`;
|
|
466
446
|
}
|
|
467
447
|
function* Visit(schema, references, value, useHoisting = true) {
|
|
468
|
-
const references_ = (0,
|
|
448
|
+
const references_ = (0, index_10.IsString)(schema.$id) ? [...references, schema] : references;
|
|
469
449
|
const schema_ = schema;
|
|
470
450
|
// --------------------------------------------------------------
|
|
471
451
|
// Hoisting
|
|
472
452
|
// --------------------------------------------------------------
|
|
473
|
-
if (useHoisting && (0,
|
|
453
|
+
if (useHoisting && (0, index_10.IsString)(schema.$id)) {
|
|
474
454
|
const functionName = CreateFunctionName(schema.$id);
|
|
475
455
|
if (state.functions.has(functionName)) {
|
|
476
456
|
return yield `${functionName}(${value})`;
|
|
@@ -481,7 +461,7 @@ var TypeCompiler;
|
|
|
481
461
|
return yield `${functionName}(${value})`;
|
|
482
462
|
}
|
|
483
463
|
}
|
|
484
|
-
switch (schema_[
|
|
464
|
+
switch (schema_[index_6.Kind]) {
|
|
485
465
|
case 'Any':
|
|
486
466
|
return yield* TAny(schema_, references_, value);
|
|
487
467
|
case 'Array':
|
|
@@ -543,7 +523,7 @@ var TypeCompiler;
|
|
|
543
523
|
case 'Void':
|
|
544
524
|
return yield* TVoid(schema_, references_, value);
|
|
545
525
|
default:
|
|
546
|
-
if (!
|
|
526
|
+
if (!index_7.TypeRegistry.Has(schema_[index_6.Kind]))
|
|
547
527
|
throw new TypeCompilerUnknownTypeError(schema);
|
|
548
528
|
return yield* TKind(schema_, references_, value);
|
|
549
529
|
}
|
|
@@ -596,7 +576,7 @@ var TypeCompiler;
|
|
|
596
576
|
const functions = [...state.functions.values()];
|
|
597
577
|
const variables = [...state.variables.values()];
|
|
598
578
|
// prettier-ignore
|
|
599
|
-
const checkFunction = (0,
|
|
579
|
+
const checkFunction = (0, index_10.IsString)(schema.$id) // ensure top level schemas with $id's are hoisted
|
|
600
580
|
? `return function check(${parameter})${returns} {\n return ${CreateFunctionName(schema.$id)}(value)\n}`
|
|
601
581
|
: `return ${functionCode}`;
|
|
602
582
|
return [...variables, ...functions, checkFunction].join('\n');
|
|
@@ -605,8 +585,8 @@ var TypeCompiler;
|
|
|
605
585
|
function Code(...args) {
|
|
606
586
|
const defaults = { language: 'javascript' };
|
|
607
587
|
// prettier-ignore
|
|
608
|
-
const [schema, references, options] = (args.length === 2 && (0,
|
|
609
|
-
args.length === 2 && !(0,
|
|
588
|
+
const [schema, references, options] = (args.length === 2 && (0, index_10.IsArray)(args[1]) ? [args[0], args[1], defaults] :
|
|
589
|
+
args.length === 2 && !(0, index_10.IsArray)(args[1]) ? [args[0], [], args[1]] :
|
|
610
590
|
args.length === 3 ? [args[0], args[1], args[2]] :
|
|
611
591
|
args.length === 1 ? [args[0], [], defaults] :
|
|
612
592
|
[null, [], defaults]);
|
|
@@ -615,10 +595,10 @@ var TypeCompiler;
|
|
|
615
595
|
state.variables.clear();
|
|
616
596
|
state.functions.clear();
|
|
617
597
|
state.instances.clear();
|
|
618
|
-
if (!(0, type_1.
|
|
598
|
+
if (!(0, type_1.IsSchema)(schema))
|
|
619
599
|
throw new TypeCompilerTypeGuardError(schema);
|
|
620
600
|
for (const schema of references)
|
|
621
|
-
if (!(0, type_1.
|
|
601
|
+
if (!(0, type_1.IsSchema)(schema))
|
|
622
602
|
throw new TypeCompilerTypeGuardError(schema);
|
|
623
603
|
return Build(schema, references, options);
|
|
624
604
|
}
|
|
@@ -629,20 +609,20 @@ var TypeCompiler;
|
|
|
629
609
|
const compiledFunction = globalThis.Function('kind', 'format', 'hash', generatedCode);
|
|
630
610
|
const instances = new Map(state.instances);
|
|
631
611
|
function typeRegistryFunction(kind, instance, value) {
|
|
632
|
-
if (!
|
|
612
|
+
if (!index_7.TypeRegistry.Has(kind) || !instances.has(instance))
|
|
633
613
|
return false;
|
|
634
|
-
const checkFunc =
|
|
614
|
+
const checkFunc = index_7.TypeRegistry.Get(kind);
|
|
635
615
|
const schema = instances.get(instance);
|
|
636
616
|
return checkFunc(schema, value);
|
|
637
617
|
}
|
|
638
618
|
function formatRegistryFunction(format, value) {
|
|
639
|
-
if (!
|
|
619
|
+
if (!index_7.FormatRegistry.Has(format))
|
|
640
620
|
return false;
|
|
641
|
-
const checkFunc =
|
|
621
|
+
const checkFunc = index_7.FormatRegistry.Get(format);
|
|
642
622
|
return checkFunc(value);
|
|
643
623
|
}
|
|
644
624
|
function hashFunction(value) {
|
|
645
|
-
return (0,
|
|
625
|
+
return (0, index_5.Hash)(value);
|
|
646
626
|
}
|
|
647
627
|
const checkFunction = compiledFunction(typeRegistryFunction, formatRegistryFunction, hashFunction);
|
|
648
628
|
return new TypeCheck(schema, references, checkFunction, generatedCode);
|
|
@@ -1,31 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/*--------------------------------------------------------------------------
|
|
3
2
|
|
|
4
|
-
@sinclair/typebox/compiler
|
|
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
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
4
|
exports.TypeCompilerUnknownTypeError = exports.TypeCompilerTypeGuardError = exports.TypeCheck = exports.TypeCompiler = exports.ValueErrorIterator = exports.ValueErrorType = void 0;
|
|
31
5
|
var index_1 = require("../errors/index");
|