@depup/typebox 1.1.23-depup.0 → 1.3.8-depup.0
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/README.md +2 -2
- package/build/compile/code.mjs +2 -2
- package/build/compile/validator.d.mts +7 -14
- package/build/compile/validator.mjs +32 -57
- package/build/error/errors.d.mts +1 -7
- package/build/format/_idna.mjs +36 -6
- package/build/format/_puny.mjs +4 -1
- package/build/format/_registry.mjs +9 -9
- package/build/format/format.d.mts +9 -9
- package/build/format/format.mjs +9 -9
- package/build/format/uuid.d.mts +2 -2
- package/build/format/uuid.mjs +3 -3
- package/build/guard/emit.d.mts +3 -5
- package/build/guard/emit.mjs +12 -13
- package/build/guard/guard.d.mts +15 -7
- package/build/guard/guard.mjs +40 -15
- package/build/guard/string.mjs +16 -4
- package/build/schema/build.d.mts +11 -7
- package/build/schema/build.mjs +28 -9
- package/build/schema/check.d.mts +3 -3
- package/build/schema/compile.d.mts +4 -4
- package/build/schema/compile.mjs +9 -9
- package/build/schema/engine/_context.mjs +3 -3
- package/build/schema/engine/_functions.mjs +34 -16
- package/build/schema/engine/_refine.mjs +4 -4
- package/build/schema/engine/_stack.d.mts +4 -4
- package/build/schema/engine/_stack.mjs +52 -18
- package/build/schema/engine/additionalItems.mjs +17 -7
- package/build/schema/engine/additionalProperties.mjs +1 -1
- package/build/schema/engine/boolean.d.mts +3 -3
- package/build/schema/engine/boolean.mjs +4 -4
- package/build/schema/engine/contains.mjs +18 -6
- package/build/schema/engine/dynamicRef.d.mts +6 -0
- package/build/schema/engine/dynamicRef.mjs +25 -0
- package/build/schema/engine/enum.mjs +1 -1
- package/build/schema/engine/index.d.mts +0 -1
- package/build/schema/engine/index.mjs +0 -1
- package/build/schema/engine/items.mjs +26 -6
- package/build/schema/engine/maxContains.mjs +3 -3
- package/build/schema/engine/minContains.mjs +14 -4
- package/build/schema/engine/not.mjs +4 -2
- package/build/schema/engine/oneOf.mjs +7 -6
- package/build/schema/engine/recursiveRef.mjs +3 -3
- package/build/schema/engine/ref.mjs +4 -10
- package/build/schema/engine/schema.mjs +15 -15
- package/build/schema/engine/type.mjs +15 -19
- package/build/schema/parse.d.mts +3 -3
- package/build/schema/pointer/index.d.mts +1 -1
- package/build/schema/pointer/index.mjs +1 -1
- package/build/schema/pointer/pointer.mjs +11 -1
- package/build/schema/resolve/ref.d.mts +1 -0
- package/build/schema/resolve/ref.mjs +61 -11
- package/build/schema/static/_canonical.d.mts +7 -0
- package/build/schema/static/{~elements.d.mts → _elements.d.mts} +3 -3
- package/build/schema/static/items.d.mts +1 -1
- package/build/schema/static/prefixItems.d.mts +1 -1
- package/build/schema/static/properties.d.mts +27 -6
- package/build/schema/static/ref.d.mts +1 -1
- package/build/schema/static/required.d.mts +1 -11
- package/build/schema/static/schema.d.mts +3 -2
- package/build/schema/static/static.d.mts +2 -2
- package/build/schema/types/_refine.d.mts +2 -2
- package/build/schema/types/_refine.mjs +4 -4
- package/build/schema/types/dependencies.mjs +1 -1
- package/build/schema/types/index.d.mts +0 -1
- package/build/schema/types/index.mjs +0 -1
- package/build/schema/types/schema.d.mts +1 -1
- package/build/schema/types/schema.mjs +2 -2
- package/build/system/locale/_config.d.mts +1 -1
- package/build/system/locale/ar_001.d.mts +1 -1
- package/build/system/locale/ar_001.mjs +0 -1
- package/build/system/locale/bn_BD.d.mts +1 -1
- package/build/system/locale/bn_BD.mjs +0 -1
- package/build/system/locale/cs_CZ.d.mts +1 -1
- package/build/system/locale/cs_CZ.mjs +0 -1
- package/build/system/locale/de_DE.d.mts +1 -1
- package/build/system/locale/de_DE.mjs +0 -1
- package/build/system/locale/el_GR.d.mts +1 -1
- package/build/system/locale/el_GR.mjs +0 -1
- package/build/system/locale/en_US.d.mts +1 -1
- package/build/system/locale/en_US.mjs +0 -1
- package/build/system/locale/es_419.d.mts +1 -1
- package/build/system/locale/es_419.mjs +0 -1
- package/build/system/locale/es_AR.d.mts +1 -1
- package/build/system/locale/es_AR.mjs +0 -1
- package/build/system/locale/es_ES.d.mts +1 -1
- package/build/system/locale/es_ES.mjs +0 -1
- package/build/system/locale/es_MX.d.mts +1 -1
- package/build/system/locale/es_MX.mjs +0 -1
- package/build/system/locale/fa_IR.d.mts +1 -1
- package/build/system/locale/fa_IR.mjs +0 -1
- package/build/system/locale/fil_PH.d.mts +1 -1
- package/build/system/locale/fil_PH.mjs +0 -1
- package/build/system/locale/fr_CA.d.mts +1 -1
- package/build/system/locale/fr_CA.mjs +0 -1
- package/build/system/locale/fr_FR.d.mts +1 -1
- package/build/system/locale/fr_FR.mjs +0 -1
- package/build/system/locale/ha_NG.d.mts +1 -1
- package/build/system/locale/ha_NG.mjs +0 -1
- package/build/system/locale/hi_IN.d.mts +1 -1
- package/build/system/locale/hi_IN.mjs +0 -1
- package/build/system/locale/hu_HU.d.mts +1 -1
- package/build/system/locale/hu_HU.mjs +0 -1
- package/build/system/locale/id_ID.d.mts +1 -1
- package/build/system/locale/id_ID.mjs +0 -1
- package/build/system/locale/it_IT.d.mts +1 -1
- package/build/system/locale/it_IT.mjs +0 -1
- package/build/system/locale/ja_JP.d.mts +1 -1
- package/build/system/locale/ja_JP.mjs +0 -1
- package/build/system/locale/ko_KR.d.mts +1 -1
- package/build/system/locale/ko_KR.mjs +0 -1
- package/build/system/locale/ms_MY.d.mts +1 -1
- package/build/system/locale/ms_MY.mjs +0 -1
- package/build/system/locale/nl_NL.d.mts +1 -1
- package/build/system/locale/nl_NL.mjs +0 -1
- package/build/system/locale/pl_PL.d.mts +1 -1
- package/build/system/locale/pl_PL.mjs +0 -1
- package/build/system/locale/pt_BR.d.mts +1 -1
- package/build/system/locale/pt_BR.mjs +0 -1
- package/build/system/locale/pt_PT.d.mts +1 -1
- package/build/system/locale/pt_PT.mjs +0 -1
- package/build/system/locale/ro_RO.d.mts +1 -1
- package/build/system/locale/ro_RO.mjs +0 -1
- package/build/system/locale/ru_RU.d.mts +1 -1
- package/build/system/locale/ru_RU.mjs +0 -1
- package/build/system/locale/sv_SE.d.mts +1 -1
- package/build/system/locale/sv_SE.mjs +0 -1
- package/build/system/locale/sw_TZ.d.mts +1 -1
- package/build/system/locale/sw_TZ.mjs +0 -1
- package/build/system/locale/th_TH.d.mts +1 -1
- package/build/system/locale/th_TH.mjs +0 -1
- package/build/system/locale/tr_TR.d.mts +1 -1
- package/build/system/locale/tr_TR.mjs +0 -1
- package/build/system/locale/uk_UA.d.mts +1 -1
- package/build/system/locale/uk_UA.mjs +0 -1
- package/build/system/locale/ur_PK.d.mts +1 -1
- package/build/system/locale/ur_PK.mjs +0 -1
- package/build/system/locale/vi_VN.d.mts +1 -1
- package/build/system/locale/vi_VN.mjs +0 -1
- package/build/system/locale/yo_NG.d.mts +1 -1
- package/build/system/locale/yo_NG.mjs +0 -1
- package/build/system/locale/zh_Hans.d.mts +1 -1
- package/build/system/locale/zh_Hans.mjs +0 -1
- package/build/system/locale/zh_Hant.d.mts +1 -1
- package/build/system/locale/zh_Hant.mjs +0 -1
- package/build/system/memory/clone.d.mts +2 -3
- package/build/system/memory/clone.mjs +73 -26
- package/build/system/settings/settings.d.mts +15 -0
- package/build/system/settings/settings.mjs +3 -1
- package/build/type/action/_add_immutable.d.mts +11 -0
- package/build/type/action/_add_immutable.mjs +11 -0
- package/build/type/action/_add_optional.d.mts +11 -0
- package/build/type/action/_add_optional.mjs +11 -0
- package/build/type/action/_add_readonly.d.mts +11 -0
- package/build/type/action/_add_readonly.mjs +11 -0
- package/build/type/action/_remove_immutable.d.mts +11 -0
- package/build/type/action/_remove_immutable.mjs +11 -0
- package/build/type/action/_remove_optional.d.mts +11 -0
- package/build/type/action/_remove_optional.mjs +11 -0
- package/build/type/action/_remove_readonly.d.mts +11 -0
- package/build/type/action/_remove_readonly.mjs +11 -0
- package/build/type/action/capitalize.d.mts +2 -2
- package/build/type/action/capitalize.mjs +2 -3
- package/build/type/action/conditional.d.mts +3 -2
- package/build/type/action/conditional.mjs +3 -2
- package/build/type/action/{constructor-parameters.d.mts → constructor_parameters.d.mts} +2 -2
- package/build/type/action/{constructor-parameters.mjs → constructor_parameters.mjs} +2 -3
- package/build/type/action/evaluate.d.mts +2 -2
- package/build/type/action/evaluate.mjs +2 -3
- package/build/type/action/exclude.d.mts +2 -2
- package/build/type/action/exclude.mjs +2 -3
- package/build/type/action/extract.d.mts +2 -2
- package/build/type/action/extract.mjs +2 -3
- package/build/type/action/index.d.mts +12 -9
- package/build/type/action/index.mjs +12 -9
- package/build/type/action/indexed.d.mts +3 -3
- package/build/type/action/indexed.mjs +3 -4
- package/build/type/action/{instance-type.d.mts → instance_type.d.mts} +2 -2
- package/build/type/action/{instance-type.mjs → instance_type.mjs} +2 -3
- package/build/type/action/interface.d.mts +2 -2
- package/build/type/action/interface.mjs +5 -3
- package/build/type/action/keyof.d.mts +2 -2
- package/build/type/action/keyof.mjs +2 -3
- package/build/type/action/lowercase.d.mts +2 -2
- package/build/type/action/lowercase.mjs +2 -3
- package/build/type/action/mapped.d.mts +3 -2
- package/build/type/action/mapped.mjs +3 -2
- package/build/type/action/module.d.mts +8 -7
- package/build/type/action/module.mjs +7 -6
- package/build/type/action/{non-nullable.d.mts → non_nullable.d.mts} +2 -2
- package/build/type/action/{non-nullable.mjs → non_nullable.mjs} +2 -3
- package/build/type/action/omit.d.mts +3 -3
- package/build/type/action/omit.mjs +3 -4
- package/build/type/action/parameters.d.mts +2 -2
- package/build/type/action/parameters.mjs +2 -3
- package/build/type/action/partial.d.mts +3 -3
- package/build/type/action/partial.mjs +2 -3
- package/build/type/action/pick.d.mts +3 -3
- package/build/type/action/pick.mjs +3 -4
- package/build/type/action/readonly_object.d.mts +16 -0
- package/build/type/action/readonly_object.mjs +19 -0
- package/build/type/action/required.d.mts +2 -2
- package/build/type/action/required.mjs +2 -3
- package/build/type/action/{return-type.d.mts → return_type.d.mts} +2 -2
- package/build/type/action/{return-type.mjs → return_type.mjs} +2 -3
- package/build/type/action/uncapitalize.d.mts +2 -2
- package/build/type/action/uncapitalize.mjs +2 -3
- package/build/type/action/uppercase.d.mts +2 -2
- package/build/type/action/uppercase.mjs +2 -3
- package/build/type/action/with.d.mts +11 -0
- package/build/type/action/with.mjs +11 -0
- package/build/type/engine/call/{distribute-arguments.mjs → distribute_arguments.mjs} +1 -7
- package/build/type/engine/call/instantiate.d.mts +4 -6
- package/build/type/engine/call/instantiate.mjs +6 -5
- package/build/type/engine/call/{resolve-arguments.mjs → resolve_arguments.mjs} +3 -9
- package/build/type/engine/conditional/instantiate.d.mts +4 -2
- package/build/type/engine/conditional/instantiate.mjs +13 -9
- package/build/type/engine/constructor_parameters/instantiate.d.mts +14 -0
- package/build/type/engine/constructor_parameters/instantiate.mjs +25 -0
- package/build/type/engine/cyclic/candidates.d.mts +3 -4
- package/build/type/engine/cyclic/candidates.mjs +3 -6
- package/build/type/engine/cyclic/check.d.mts +6 -9
- package/build/type/engine/cyclic/check.mjs +13 -22
- package/build/type/engine/cyclic/dependencies.d.mts +1 -4
- package/build/type/engine/cyclic/dependencies.mjs +9 -15
- package/build/type/engine/cyclic/extends.d.mts +1 -4
- package/build/type/engine/cyclic/extends.mjs +8 -14
- package/build/type/engine/cyclic/instantiate.d.mts +2 -5
- package/build/type/engine/cyclic/instantiate.mjs +3 -2
- package/build/type/engine/enum/index.d.mts +1 -2
- package/build/type/engine/enum/index.mjs +1 -2
- package/build/type/engine/evaluate/broaden.d.mts +1 -2
- package/build/type/engine/evaluate/broaden.mjs +2 -6
- package/build/type/engine/evaluate/composite.d.mts +11 -7
- package/build/type/engine/evaluate/composite.mjs +11 -7
- package/build/type/engine/evaluate/distribute.d.mts +2 -1
- package/build/type/engine/evaluate/distribute.mjs +7 -17
- package/build/type/engine/evaluate/evaluate.d.mts +17 -5
- package/build/type/engine/evaluate/evaluate.mjs +34 -8
- package/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/build/type/engine/evaluate/instantiate.d.mts +3 -3
- package/build/type/engine/evaluate/instantiate.mjs +5 -10
- package/build/type/engine/evaluate/narrow.d.mts +3 -3
- package/build/type/engine/exclude/instantiate.d.mts +4 -11
- package/build/type/engine/exclude/instantiate.mjs +7 -28
- package/build/type/engine/exclude/operation.d.mts +10 -0
- package/build/type/engine/exclude/operation.mjs +23 -0
- package/build/type/engine/extract/instantiate.d.mts +4 -11
- package/build/type/engine/extract/instantiate.mjs +7 -28
- package/build/type/engine/extract/operation.d.mts +10 -0
- package/build/type/engine/extract/operation.mjs +23 -0
- package/build/type/engine/helpers/index.d.mts +1 -1
- package/build/type/engine/helpers/index.mjs +1 -1
- package/build/type/engine/immutable/instantiate_add.d.mts +10 -0
- package/build/type/engine/immutable/instantiate_add.mjs +14 -0
- package/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
- package/build/type/engine/immutable/instantiate_remove.mjs +14 -0
- package/build/type/engine/index.d.mts +8 -8
- package/build/type/engine/index.mjs +8 -8
- package/build/type/engine/indexable/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
- package/build/type/engine/{object/from-cyclic.mjs → indexable/from_cyclic.mjs} +1 -1
- package/build/type/engine/indexable/from_dependent.d.mts +5 -0
- package/build/type/engine/indexable/from_dependent.mjs +8 -0
- package/build/type/engine/indexable/from_enum.d.mts +6 -0
- package/build/type/engine/indexable/from_enum.mjs +8 -0
- package/build/type/engine/indexable/{from-intersect.d.mts → from_intersect.d.mts} +1 -1
- package/build/type/engine/indexable/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/type/engine/indexable/{from-literal.d.mts → from_literal.d.mts} +1 -1
- package/build/type/engine/indexable/from_template_literal.d.mts +5 -0
- package/build/type/engine/indexable/from_template_literal.mjs +8 -0
- package/build/type/engine/indexable/from_type.d.mts +19 -0
- package/build/type/engine/indexable/from_type.mjs +25 -0
- package/build/type/engine/indexable/{from-union.d.mts → from_union.d.mts} +1 -1
- package/build/type/engine/indexable/{from-union.mjs → from_union.mjs} +1 -1
- package/build/type/engine/indexable/{to-indexable-keys.d.mts → to_indexable_keys.d.mts} +1 -1
- package/build/type/engine/indexable/{to-indexable-keys.mjs → to_indexable_keys.mjs} +1 -1
- package/build/type/engine/indexed/from_object.d.mts +16 -0
- package/build/type/engine/indexed/from_object.mjs +40 -0
- package/build/type/engine/indexed/{from-tuple.d.mts → from_tuple.d.mts} +1 -1
- package/build/type/engine/indexed/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/type/engine/indexed/from_type.d.mts +11 -0
- package/build/type/engine/indexed/from_type.mjs +14 -0
- package/build/type/engine/indexed/instantiate.d.mts +7 -12
- package/build/type/engine/indexed/instantiate.mjs +13 -22
- package/build/type/engine/instance_type/instantiate.d.mts +12 -0
- package/build/type/engine/{instance-type → instance_type}/instantiate.mjs +10 -9
- package/build/type/engine/instantiate.d.mts +53 -42
- package/build/type/engine/instantiate.mjs +92 -106
- package/build/type/engine/interface/instantiate.d.mts +6 -7
- package/build/type/engine/interface/instantiate.mjs +12 -8
- package/build/type/engine/intrinsics/{from-template-literal.d.mts → from_template_literal.d.mts} +3 -3
- package/build/type/engine/intrinsics/from_template_literal.mjs +8 -0
- package/build/type/engine/intrinsics/{from-type.d.mts → from_type.d.mts} +4 -4
- package/build/type/engine/intrinsics/{from-type.mjs → from_type.mjs} +4 -4
- package/build/type/engine/intrinsics/{from-union.d.mts → from_union.d.mts} +1 -1
- package/build/type/engine/intrinsics/{from-union.mjs → from_union.mjs} +1 -1
- package/build/type/engine/intrinsics/instantiate.d.mts +13 -9
- package/build/type/engine/intrinsics/instantiate.mjs +29 -25
- package/build/type/engine/keyof/from_type.d.mts +15 -0
- package/build/type/engine/keyof/from_type.mjs +23 -0
- package/build/type/engine/keyof/instantiate.d.mts +6 -17
- package/build/type/engine/keyof/instantiate.mjs +12 -28
- package/build/type/engine/mapped/instantiate.d.mts +4 -19
- package/build/type/engine/mapped/instantiate.mjs +7 -42
- package/build/type/engine/mapped/mapped_operation.d.mts +22 -0
- package/build/type/engine/mapped/mapped_operation.mjs +42 -0
- package/build/type/engine/mapped/mapped_variants.d.mts +17 -0
- package/build/type/engine/mapped/mapped_variants.mjs +39 -0
- package/build/type/engine/module/instantiate.d.mts +7 -9
- package/build/type/engine/module/instantiate.mjs +17 -15
- package/build/type/engine/non_nullable/instantiate.d.mts +14 -0
- package/build/type/engine/non_nullable/instantiate.mjs +22 -0
- package/build/type/engine/object/collapse.d.mts +1 -1
- package/build/type/engine/object/collapse.mjs +1 -1
- package/build/type/engine/object/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
- package/build/type/engine/{indexable/from-cyclic.mjs → object/from_cyclic.mjs} +1 -1
- package/build/type/engine/object/from_dependent.d.mts +5 -0
- package/build/type/engine/object/from_dependent.mjs +8 -0
- package/build/type/engine/object/{from-intersect.d.mts → from_intersect.d.mts} +1 -1
- package/build/type/engine/object/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/type/engine/object/{from-tuple.d.mts → from_tuple.d.mts} +2 -2
- package/build/type/engine/object/{from-tuple.mjs → from_tuple.mjs} +2 -2
- package/build/type/engine/object/from_type.d.mts +16 -0
- package/build/type/engine/object/from_type.mjs +23 -0
- package/build/type/engine/object/{from-union.d.mts → from_union.d.mts} +1 -1
- package/build/type/engine/object/{from-union.mjs → from_union.mjs} +4 -11
- package/build/type/engine/omit/from_type.d.mts +12 -0
- package/build/type/engine/omit/from_type.mjs +18 -0
- package/build/type/engine/omit/instantiate.d.mts +4 -11
- package/build/type/engine/omit/instantiate.mjs +7 -22
- package/build/type/engine/optional/instantiate_add.d.mts +10 -0
- package/build/type/engine/optional/instantiate_add.mjs +14 -0
- package/build/type/engine/optional/instantiate_remove.d.mts +10 -0
- package/build/type/engine/optional/instantiate_remove.mjs +14 -0
- package/build/type/engine/parameters/instantiate.d.mts +7 -7
- package/build/type/engine/parameters/instantiate.mjs +14 -11
- package/build/type/engine/{readonly-type/from-cyclic.d.mts → partial/from_cyclic.d.mts} +1 -1
- package/build/type/engine/partial/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/type/engine/partial/from_dependent.d.mts +5 -0
- package/build/type/engine/partial/from_dependent.mjs +8 -0
- package/build/type/engine/partial/from_intersect.d.mts +5 -0
- package/build/type/engine/partial/from_intersect.mjs +8 -0
- package/build/type/engine/{readonly-type/from-object.d.mts → partial/from_object.d.mts} +2 -2
- package/build/type/engine/partial/{from-object.mjs → from_object.mjs} +2 -2
- package/build/type/engine/partial/from_type.d.mts +14 -0
- package/build/type/engine/partial/from_type.mjs +20 -0
- package/build/type/engine/{readonly-type/from-union.d.mts → partial/from_union.d.mts} +1 -1
- package/build/type/engine/{readonly-type/from-union.mjs → partial/from_union.mjs} +1 -1
- package/build/type/engine/partial/instantiate.d.mts +4 -4
- package/build/type/engine/partial/instantiate.mjs +8 -7
- package/build/type/engine/pick/from_type.d.mts +13 -0
- package/build/type/engine/pick/from_type.mjs +20 -0
- package/build/type/engine/pick/instantiate.d.mts +4 -12
- package/build/type/engine/pick/instantiate.mjs +7 -23
- package/build/type/engine/priority/index.d.mts +1 -0
- package/build/type/engine/priority/index.mjs +1 -0
- package/build/type/engine/priority/priority.d.mts +20 -0
- package/build/type/engine/priority/priority.mjs +28 -0
- package/build/type/engine/readonly/instantiate_add.d.mts +10 -0
- package/build/type/engine/readonly/instantiate_add.mjs +14 -0
- package/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
- package/build/type/engine/readonly/instantiate_remove.mjs +14 -0
- package/build/type/engine/{readonly-type/from-array.d.mts → readonly_object/from_array.d.mts} +2 -2
- package/build/type/engine/{readonly-type/from-array.mjs → readonly_object/from_array.mjs} +2 -2
- package/build/type/engine/{partial/from-cyclic.d.mts → readonly_object/from_cyclic.d.mts} +1 -1
- package/build/type/engine/{required/from-cyclic.mjs → readonly_object/from_cyclic.mjs} +1 -1
- package/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
- package/build/type/engine/readonly_object/from_dependent.mjs +8 -0
- package/build/type/engine/readonly_object/from_intersect.d.mts +5 -0
- package/build/type/engine/readonly_object/from_intersect.mjs +8 -0
- package/build/type/engine/{partial/from-object.d.mts → readonly_object/from_object.d.mts} +2 -2
- package/build/type/engine/{readonly-type/from-object.mjs → readonly_object/from_object.mjs} +2 -2
- package/build/type/engine/{readonly-type/from-tuple.d.mts → readonly_object/from_tuple.d.mts} +2 -2
- package/build/type/engine/{readonly-type/from-tuple.mjs → readonly_object/from_tuple.mjs} +2 -2
- package/build/type/engine/readonly_object/from_type.d.mts +18 -0
- package/build/type/engine/readonly_object/from_type.mjs +25 -0
- package/build/type/engine/{partial/from-union.d.mts → readonly_object/from_union.d.mts} +1 -1
- package/build/type/engine/{partial/from-union.mjs → readonly_object/from_union.mjs} +1 -1
- package/build/type/engine/readonly_object/instantiate.d.mts +9 -0
- package/build/type/engine/readonly_object/instantiate.mjs +15 -0
- package/build/type/engine/record/{from-key.d.mts → from_key.d.mts} +11 -11
- package/build/type/engine/record/{from-key.mjs → from_key.mjs} +11 -11
- package/build/type/engine/record/{from-key-any.mjs → from_key_any.mjs} +1 -1
- package/build/type/engine/record/{from-key-enum.d.mts → from_key_enum.d.mts} +3 -3
- package/build/type/engine/record/from_key_enum.mjs +8 -0
- package/build/type/engine/record/{from-key-integer.mjs → from_key_integer.mjs} +1 -1
- package/build/type/engine/record/{from-key-intersect.d.mts → from_key_intersect.d.mts} +1 -1
- package/build/type/engine/record/{from-key-intersect.mjs → from_key_intersect.mjs} +1 -1
- package/build/type/engine/record/{from-key-number.mjs → from_key_number.mjs} +1 -1
- package/build/type/engine/record/{from-key-string.mjs → from_key_string.mjs} +1 -1
- package/build/type/engine/record/{from-key-template-literal.d.mts → from_key_template_literal.d.mts} +4 -4
- package/build/type/engine/record/from_key_template_literal.mjs +12 -0
- package/build/type/engine/record/{from-key-union.mjs → from_key_union.mjs} +1 -1
- package/build/type/engine/record/instantiate.d.mts +4 -4
- package/build/type/engine/record/instantiate.mjs +9 -8
- package/build/type/engine/ref/instantiate.d.mts +4 -4
- package/build/type/engine/ref/instantiate.mjs +6 -6
- package/build/type/engine/required/{from-cyclic.d.mts → from_cyclic.d.mts} +1 -1
- package/build/type/engine/{readonly-type/from-cyclic.mjs → required/from_cyclic.mjs} +1 -1
- package/build/type/engine/required/from_dependent.d.mts +5 -0
- package/build/type/engine/required/from_dependent.mjs +8 -0
- package/build/type/engine/required/from_intersect.d.mts +5 -0
- package/build/type/engine/required/from_intersect.mjs +8 -0
- package/build/type/engine/required/{from-object.d.mts → from_object.d.mts} +2 -2
- package/build/type/engine/required/{from-object.mjs → from_object.mjs} +2 -2
- package/build/type/engine/required/from_type.d.mts +14 -0
- package/build/type/engine/required/from_type.mjs +20 -0
- package/build/type/engine/required/{from-union.d.mts → from_union.d.mts} +1 -1
- package/build/type/engine/required/{from-union.mjs → from_union.mjs} +1 -1
- package/build/type/engine/required/instantiate.d.mts +4 -4
- package/build/type/engine/required/instantiate.mjs +8 -7
- package/build/type/engine/return_type/instantiate.d.mts +12 -0
- package/build/type/engine/return_type/instantiate.mjs +21 -0
- package/build/type/engine/{template-literal → template_literal}/decode.d.mts +4 -4
- package/build/type/engine/{template-literal → template_literal}/decode.mjs +6 -12
- package/build/type/engine/{template-literal → template_literal}/encode.d.mts +6 -4
- package/build/type/engine/{template-literal → template_literal}/encode.mjs +17 -16
- package/build/type/engine/{template-literal → template_literal}/index.d.mts +2 -2
- package/build/type/engine/{template-literal → template_literal}/index.mjs +2 -2
- package/build/type/engine/{template-literal → template_literal}/instantiate.d.mts +4 -4
- package/build/type/engine/template_literal/instantiate.mjs +15 -0
- package/build/type/engine/{template-literal/is-finite.mjs → template_literal/is_finite.mjs} +3 -7
- package/build/type/engine/{template-literal/is-pattern.mjs → template_literal/is_pattern.mjs} +1 -0
- package/build/type/engine/this/expand_this.d.mts +16 -0
- package/build/type/engine/this/expand_this.mjs +26 -0
- package/build/type/engine/with/instantiate.d.mts +8 -0
- package/build/type/engine/with/instantiate.mjs +14 -0
- package/build/type/extends/any.d.mts +1 -1
- package/build/type/extends/any.mjs +1 -1
- package/build/type/extends/array.d.mts +2 -2
- package/build/type/extends/array.mjs +2 -2
- package/build/type/extends/bigint.d.mts +1 -1
- package/build/type/extends/bigint.mjs +1 -1
- package/build/type/extends/boolean.d.mts +1 -1
- package/build/type/extends/boolean.mjs +1 -1
- package/build/type/extends/constructor.d.mts +1 -1
- package/build/type/extends/constructor.mjs +1 -1
- package/build/type/extends/dependent.d.mts +6 -0
- package/build/type/extends/dependent.mjs +6 -0
- package/build/type/extends/enum.d.mts +5 -5
- package/build/type/extends/enum.mjs +4 -3
- package/build/type/extends/extends.d.mts +5 -3
- package/build/type/extends/extends.mjs +10 -8
- package/build/type/extends/{extends-left.d.mts → extends_left.d.mts} +7 -9
- package/build/type/extends/{extends-left.mjs → extends_left.mjs} +26 -29
- package/build/type/extends/{extends-right.d.mts → extends_right.d.mts} +9 -7
- package/build/type/extends/extends_right.mjs +49 -0
- package/build/type/extends/function.d.mts +1 -1
- package/build/type/extends/function.mjs +1 -1
- package/build/type/extends/inference.d.mts +1 -1
- package/build/type/extends/inference.mjs +2 -2
- package/build/type/extends/integer.d.mts +1 -1
- package/build/type/extends/integer.mjs +1 -1
- package/build/type/extends/intersect.d.mts +1 -1
- package/build/type/extends/intersect.mjs +1 -1
- package/build/type/extends/literal.d.mts +2 -2
- package/build/type/extends/literal.mjs +2 -2
- package/build/type/extends/never.d.mts +1 -1
- package/build/type/extends/never.mjs +1 -1
- package/build/type/extends/null.d.mts +1 -1
- package/build/type/extends/null.mjs +1 -1
- package/build/type/extends/number.d.mts +1 -1
- package/build/type/extends/number.mjs +1 -1
- package/build/type/extends/object.d.mts +10 -3
- package/build/type/extends/object.mjs +27 -5
- package/build/type/extends/parameters.d.mts +1 -1
- package/build/type/extends/parameters.mjs +4 -3
- package/build/type/extends/record.d.mts +13 -0
- package/build/type/extends/record.mjs +23 -0
- package/build/type/extends/result.d.mts +1 -4
- package/build/type/extends/result.mjs +0 -3
- package/build/type/extends/{return-type.d.mts → return_type.d.mts} +1 -1
- package/build/type/extends/{return-type.mjs → return_type.mjs} +1 -1
- package/build/type/extends/string.d.mts +1 -1
- package/build/type/extends/string.mjs +1 -1
- package/build/type/extends/symbol.d.mts +1 -1
- package/build/type/extends/symbol.mjs +1 -1
- package/build/type/extends/template_literal.d.mts +6 -0
- package/build/type/extends/template_literal.mjs +7 -0
- package/build/type/extends/tuple.d.mts +5 -8
- package/build/type/extends/tuple.mjs +8 -7
- package/build/type/extends/undefined.d.mts +1 -1
- package/build/type/extends/undefined.mjs +1 -1
- package/build/type/extends/union.d.mts +1 -1
- package/build/type/extends/union.mjs +4 -3
- package/build/type/extends/unknown.d.mts +1 -1
- package/build/type/extends/unknown.mjs +1 -1
- package/build/type/extends/void.d.mts +1 -1
- package/build/type/extends/void.mjs +1 -1
- package/build/type/script/mapping.d.mts +86 -98
- package/build/type/script/mapping.mjs +95 -92
- package/build/type/script/parser.d.mts +42 -40
- package/build/type/script/parser.mjs +23 -22
- package/build/type/script/script.d.mts +3 -4
- package/build/type/script/script.mjs +3 -2
- package/build/type/script/token/internal/guard.d.mts +1 -1
- package/build/type/script/token/internal/guard.mjs +1 -1
- package/build/type/script/token/internal/take.mjs +5 -9
- package/build/type/script/token/until.mjs +4 -7
- package/build/type/types/_codec.d.mts +12 -12
- package/build/type/types/_codec.mjs +0 -1
- package/build/type/types/_immutable.d.mts +2 -9
- package/build/type/types/_immutable.mjs +2 -10
- package/build/type/types/_optional.d.mts +2 -9
- package/build/type/types/_optional.mjs +2 -11
- package/build/type/types/_readonly.d.mts +2 -9
- package/build/type/types/_readonly.mjs +2 -10
- package/build/type/types/_refine.d.mts +13 -8
- package/build/type/types/_refine.mjs +20 -4
- package/build/type/types/array.d.mts +2 -1
- package/build/type/types/array.mjs +2 -1
- package/build/type/types/call.d.mts +3 -3
- package/build/type/types/call.mjs +3 -2
- package/build/type/types/deferred.d.mts +1 -0
- package/build/type/types/deferred.mjs +1 -1
- package/build/type/types/dependent.d.mts +17 -0
- package/build/type/types/{iterator.mjs → dependent.mjs} +9 -9
- package/build/type/types/enum.d.mts +5 -3
- package/build/type/types/enum.mjs +7 -2
- package/build/type/types/function.mjs +1 -1
- package/build/type/types/index.d.mts +2 -5
- package/build/type/types/index.mjs +2 -5
- package/build/type/types/number.d.mts +1 -1
- package/build/type/types/number.mjs +1 -1
- package/build/type/types/object.mjs +1 -1
- package/build/type/types/properties.d.mts +2 -1
- package/build/type/types/record.d.mts +19 -15
- package/build/type/types/record.mjs +19 -17
- package/build/type/types/static.d.mts +3 -6
- package/build/type/types/{template-literal.d.mts → template_literal.d.mts} +6 -4
- package/build/type/types/{template-literal.mjs → template_literal.mjs} +10 -4
- package/build/type/types/unsafe.d.mts +1 -2
- package/build/type/types/unsafe.mjs +5 -3
- package/build/typebox.d.mts +11 -15
- package/build/typebox.mjs +10 -14
- package/build/value/clean/clean.mjs +5 -3
- package/build/value/clean/{from-array.mjs → from_array.mjs} +1 -1
- package/build/value/clean/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/value/clean/{from-intersect.mjs → from_intersect.mjs} +3 -3
- package/build/value/clean/{from-object.mjs → from_object.mjs} +1 -1
- package/build/value/clean/{from-record.mjs → from_record.mjs} +1 -1
- package/build/value/clean/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/clean/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/value/clean/from_type.mjs +21 -0
- package/build/value/clean/{from-union.mjs → from_union.mjs} +2 -3
- package/build/value/clone/clone.mjs +2 -72
- package/build/value/codec/decode.mjs +5 -3
- package/build/value/codec/encode.mjs +5 -3
- package/build/value/codec/{from-array.mjs → from_array.mjs} +2 -5
- package/build/value/codec/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/value/codec/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/value/codec/{from-object.mjs → from_object.mjs} +3 -6
- package/build/value/codec/{from-record.mjs → from_record.mjs} +3 -8
- package/build/value/codec/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/codec/{from-tuple.mjs → from_tuple.mjs} +2 -5
- package/build/value/codec/{from-type.mjs → from_type.mjs} +8 -8
- package/build/value/codec/{from-union.mjs → from_union.mjs} +3 -4
- package/build/value/convert/convert.mjs +1 -1
- package/build/value/convert/{from-additional.mjs → from_additional.mjs} +1 -1
- package/build/value/convert/{from-array.mjs → from_array.mjs} +1 -1
- package/build/value/convert/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/value/convert/from_enum.mjs +6 -0
- package/build/value/convert/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/value/convert/{from-literal.d.mts → from_literal.d.mts} +1 -1
- package/build/value/convert/{from-object.mjs → from_object.mjs} +3 -3
- package/build/value/convert/{from-record.mjs → from_record.mjs} +2 -2
- package/build/value/convert/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/convert/{from-template-literal.d.mts → from_template_literal.d.mts} +1 -1
- package/build/value/convert/from_template_literal.mjs +6 -0
- package/build/value/convert/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/value/convert/from_type.mjs +43 -0
- package/build/value/convert/{from-union.mjs → from_union.mjs} +1 -1
- package/build/value/convert/try/try.d.mts +8 -8
- package/build/value/convert/try/try.mjs +8 -8
- package/build/value/convert/try/{try-array.d.mts → try_array.d.mts} +1 -1
- package/build/value/convert/try/{try-array.mjs → try_array.mjs} +1 -1
- package/build/value/convert/try/{try-bigint.d.mts → try_bigint.d.mts} +1 -1
- package/build/value/convert/try/{try-bigint.mjs → try_bigint.mjs} +1 -1
- package/build/value/convert/try/{try-boolean.d.mts → try_boolean.d.mts} +1 -1
- package/build/value/convert/try/{try-boolean.mjs → try_boolean.mjs} +1 -1
- package/build/value/convert/try/{try-null.d.mts → try_null.d.mts} +1 -1
- package/build/value/convert/try/{try-null.mjs → try_null.mjs} +1 -1
- package/build/value/convert/try/{try-number.d.mts → try_number.d.mts} +1 -1
- package/build/value/convert/try/{try-number.mjs → try_number.mjs} +2 -2
- package/build/value/convert/try/{try-string.d.mts → try_string.d.mts} +1 -1
- package/build/value/convert/try/{try-string.mjs → try_string.mjs} +1 -1
- package/build/value/convert/try/{try-undefined.d.mts → try_undefined.d.mts} +1 -1
- package/build/value/convert/try/{try-undefined.mjs → try_undefined.mjs} +1 -1
- package/build/value/create/create.mjs +1 -1
- package/build/value/create/{from-array.mjs → from_array.mjs} +1 -1
- package/build/value/create/{from-constructor.mjs → from_constructor.mjs} +1 -1
- package/build/value/create/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/value/create/from_enum.mjs +6 -0
- package/build/value/create/{from-function.mjs → from_function.mjs} +1 -1
- package/build/value/create/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/value/create/{from-object.mjs → from_object.mjs} +1 -1
- package/build/value/create/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/create/{from-template-literal.mjs → from_template_literal.mjs} +2 -2
- package/build/value/create/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/value/create/from_type.mjs +61 -0
- package/build/value/create/{from-union.mjs → from_union.mjs} +1 -1
- package/build/value/default/default.mjs +1 -1
- package/build/value/default/{from-array.mjs → from_array.mjs} +1 -1
- package/build/value/{clean/from-cyclic.d.mts → default/from_cyclic.d.mts} +1 -1
- package/build/value/default/{from-cyclic.mjs → from_cyclic.mjs} +1 -1
- package/build/value/default/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/value/default/{from-object.mjs → from_object.mjs} +2 -2
- package/build/value/default/{from-record.mjs → from_record.mjs} +1 -1
- package/build/value/default/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/default/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/value/default/from_type.mjs +25 -0
- package/build/value/default/{from-union.mjs → from_union.mjs} +1 -1
- package/build/value/delta/diff.mjs +6 -0
- package/build/value/errors/errors.d.mts +2 -2
- package/build/value/errors/errors.mjs +1 -1
- package/build/value/index.d.mts +0 -1
- package/build/value/index.mjs +0 -1
- package/build/value/repair/{from-array.mjs → from_array.mjs} +1 -1
- package/build/value/repair/from_enum.mjs +6 -0
- package/build/value/repair/from_intersect.d.mts +2 -0
- package/build/value/repair/{from-intersect.mjs → from_intersect.mjs} +1 -1
- package/build/value/repair/{from-object.mjs → from_object.mjs} +1 -1
- package/build/value/repair/{from-record.mjs → from_record.mjs} +1 -1
- package/build/value/repair/{from-ref.mjs → from_ref.mjs} +1 -1
- package/build/value/{convert/from-template-literal.mjs → repair/from_template_literal.mjs} +2 -2
- package/build/value/repair/{from-tuple.mjs → from_tuple.mjs} +1 -1
- package/build/value/repair/{from-type.mjs → from_type.mjs} +34 -32
- package/build/value/{clean/from-union.d.mts → repair/from_union.d.mts} +1 -1
- package/build/value/repair/{from-union.mjs → from_union.mjs} +2 -2
- package/build/value/repair/repair.mjs +1 -1
- package/build/value/shared/index.d.mts +3 -3
- package/build/value/shared/index.mjs +3 -3
- package/build/value/shared/union_priority_sort.d.mts +7 -0
- package/build/value/shared/union_priority_sort.mjs +72 -0
- package/build/value/value.d.mts +0 -1
- package/build/value/value.mjs +0 -1
- package/changes.json +1 -1
- package/package.json +27 -27
- package/readme.md +214 -95
- package/build/schema/engine/_guard.d.mts +0 -6
- package/build/schema/engine/_guard.mjs +0 -26
- package/build/schema/static/~non-readonly.d.mts +0 -7
- package/build/schema/static/~readonly.d.mts +0 -6
- package/build/schema/static/~readonly.mjs +0 -2
- package/build/schema/types/_guard.d.mts +0 -10
- package/build/schema/types/_guard.mjs +0 -16
- package/build/type/action/_optional.d.mts +0 -19
- package/build/type/action/_optional.mjs +0 -40
- package/build/type/action/_readonly.d.mts +0 -19
- package/build/type/action/_readonly.mjs +0 -40
- package/build/type/action/awaited.d.mts +0 -11
- package/build/type/action/awaited.mjs +0 -12
- package/build/type/action/options.d.mts +0 -12
- package/build/type/action/options.mjs +0 -12
- package/build/type/action/readonly-type.d.mts +0 -11
- package/build/type/action/readonly-type.mjs +0 -12
- package/build/type/engine/awaited/instantiate.d.mts +0 -10
- package/build/type/engine/awaited/instantiate.mjs +0 -19
- package/build/type/engine/constructor-parameters/instantiate.d.mts +0 -14
- package/build/type/engine/constructor-parameters/instantiate.mjs +0 -22
- package/build/type/engine/enum/enum-to-union.d.mts +0 -14
- package/build/type/engine/enum/enum-to-union.mjs +0 -24
- package/build/type/engine/indexable/from-enum.d.mts +0 -6
- package/build/type/engine/indexable/from-enum.mjs +0 -8
- package/build/type/engine/indexable/from-template-literal.d.mts +0 -5
- package/build/type/engine/indexable/from-template-literal.mjs +0 -8
- package/build/type/engine/indexable/from-type.d.mts +0 -17
- package/build/type/engine/indexable/from-type.mjs +0 -22
- package/build/type/engine/indexed/from-object.d.mts +0 -9
- package/build/type/engine/indexed/from-object.mjs +0 -18
- package/build/type/engine/instance-type/instantiate.d.mts +0 -12
- package/build/type/engine/intrinsics/from-template-literal.mjs +0 -8
- package/build/type/engine/mapped/mapped-variants.d.mts +0 -15
- package/build/type/engine/mapped/mapped-variants.mjs +0 -29
- package/build/type/engine/non-nullable/instantiate.d.mts +0 -15
- package/build/type/engine/non-nullable/instantiate.mjs +0 -22
- package/build/type/engine/object/from-type.d.mts +0 -14
- package/build/type/engine/object/from-type.mjs +0 -20
- package/build/type/engine/options/instantiate.d.mts +0 -8
- package/build/type/engine/options/instantiate.mjs +0 -13
- package/build/type/engine/partial/from-intersect.d.mts +0 -5
- package/build/type/engine/partial/from-intersect.mjs +0 -7
- package/build/type/engine/partial/from-type.d.mts +0 -12
- package/build/type/engine/partial/from-type.mjs +0 -17
- package/build/type/engine/readonly-type/from-intersect.d.mts +0 -5
- package/build/type/engine/readonly-type/from-intersect.mjs +0 -7
- package/build/type/engine/readonly-type/from-type.d.mts +0 -16
- package/build/type/engine/readonly-type/from-type.mjs +0 -22
- package/build/type/engine/readonly-type/instantiate.d.mts +0 -9
- package/build/type/engine/readonly-type/instantiate.mjs +0 -14
- package/build/type/engine/record/from-key-enum.mjs +0 -8
- package/build/type/engine/record/from-key-template-literal.mjs +0 -12
- package/build/type/engine/required/from-intersect.d.mts +0 -5
- package/build/type/engine/required/from-intersect.mjs +0 -7
- package/build/type/engine/required/from-type.d.mts +0 -12
- package/build/type/engine/required/from-type.mjs +0 -17
- package/build/type/engine/return-type/index.d.mts +0 -1
- package/build/type/engine/return-type/index.mjs +0 -1
- package/build/type/engine/return-type/instantiate.d.mts +0 -11
- package/build/type/engine/return-type/instantiate.mjs +0 -18
- package/build/type/engine/template-literal/instantiate.mjs +0 -14
- package/build/type/extends/async-iterator.d.mts +0 -7
- package/build/type/extends/async-iterator.mjs +0 -9
- package/build/type/extends/extends-right.mjs +0 -43
- package/build/type/extends/iterator.d.mts +0 -7
- package/build/type/extends/iterator.mjs +0 -9
- package/build/type/extends/promise.d.mts +0 -7
- package/build/type/extends/promise.mjs +0 -9
- package/build/type/extends/template-literal.d.mts +0 -6
- package/build/type/extends/template-literal.mjs +0 -7
- package/build/type/types/async-iterator.d.mts +0 -16
- package/build/type/types/async-iterator.mjs +0 -24
- package/build/type/types/base.d.mts +0 -50
- package/build/type/types/base.mjs +0 -84
- package/build/type/types/iterator.d.mts +0 -16
- package/build/type/types/promise.d.mts +0 -16
- package/build/type/types/promise.mjs +0 -24
- package/build/value/clean/from-base.d.mts +0 -2
- package/build/value/clean/from-base.mjs +0 -4
- package/build/value/clean/from-type.mjs +0 -23
- package/build/value/convert/from-base.d.mts +0 -2
- package/build/value/convert/from-base.mjs +0 -4
- package/build/value/convert/from-enum.mjs +0 -7
- package/build/value/convert/from-type.mjs +0 -45
- package/build/value/create/from-async-iterator.d.mts +0 -2
- package/build/value/create/from-async-iterator.mjs +0 -5
- package/build/value/create/from-base.d.mts +0 -2
- package/build/value/create/from-base.mjs +0 -4
- package/build/value/create/from-enum.mjs +0 -6
- package/build/value/create/from-iterator.d.mts +0 -2
- package/build/value/create/from-iterator.mjs +0 -5
- package/build/value/create/from-promise.d.mts +0 -2
- package/build/value/create/from-promise.mjs +0 -5
- package/build/value/create/from-type.mjs +0 -69
- package/build/value/default/from-base.d.mts +0 -2
- package/build/value/default/from-base.mjs +0 -5
- package/build/value/default/from-intersect.d.mts +0 -2
- package/build/value/default/from-type.mjs +0 -27
- package/build/value/mutate/error.d.mts +0 -3
- package/build/value/mutate/error.mjs +0 -6
- package/build/value/mutate/from-array.d.mts +0 -2
- package/build/value/mutate/from-array.mjs +0 -16
- package/build/value/mutate/from-object.d.mts +0 -2
- package/build/value/mutate/from-object.mjs +0 -27
- package/build/value/mutate/from-unknown.d.mts +0 -2
- package/build/value/mutate/from-unknown.mjs +0 -7
- package/build/value/mutate/from-value.d.mts +0 -2
- package/build/value/mutate/from-value.mjs +0 -12
- package/build/value/mutate/index.d.mts +0 -1
- package/build/value/mutate/index.mjs +0 -1
- package/build/value/mutate/mutate.d.mts +0 -9
- package/build/value/mutate/mutate.mjs +0 -39
- package/build/value/repair/from-base.d.mts +0 -2
- package/build/value/repair/from-base.mjs +0 -8
- package/build/value/repair/from-enum.mjs +0 -7
- package/build/value/repair/from-template-literal.mjs +0 -7
- package/build/value/shared/union-priority-sort.d.mts +0 -3
- package/build/value/shared/union-priority-sort.mjs +0 -36
- /package/build/format/{date-time.d.mts → date_time.d.mts} +0 -0
- /package/build/format/{date-time.mjs → date_time.mjs} +0 -0
- /package/build/format/{idn-email.d.mts → idn_email.d.mts} +0 -0
- /package/build/format/{idn-email.mjs → idn_email.mjs} +0 -0
- /package/build/format/{idn-hostname.d.mts → idn_hostname.d.mts} +0 -0
- /package/build/format/{idn-hostname.mjs → idn_hostname.mjs} +0 -0
- /package/build/format/{iri-reference.d.mts → iri_reference.d.mts} +0 -0
- /package/build/format/{iri-reference.mjs → iri_reference.mjs} +0 -0
- /package/build/format/{json-pointer.d.mts → json_pointer.d.mts} +0 -0
- /package/build/format/{json-pointer.mjs → json_pointer.mjs} +0 -0
- /package/build/format/{json-pointer-uri-fragment.d.mts → json_pointer_uri_fragment.d.mts} +0 -0
- /package/build/format/{json-pointer-uri-fragment.mjs → json_pointer_uri_fragment.mjs} +0 -0
- /package/build/format/{relative-json-pointer.d.mts → relative_json_pointer.d.mts} +0 -0
- /package/build/format/{relative-json-pointer.mjs → relative_json_pointer.mjs} +0 -0
- /package/build/format/{uri-reference.d.mts → uri_reference.d.mts} +0 -0
- /package/build/format/{uri-reference.mjs → uri_reference.mjs} +0 -0
- /package/build/format/{uri-template.d.mts → uri_template.d.mts} +0 -0
- /package/build/format/{uri-template.mjs → uri_template.mjs} +0 -0
- /package/build/schema/pointer/{pointer-get.d.mts → pointer_get.d.mts} +0 -0
- /package/build/schema/pointer/{pointer-get.mjs → pointer_get.mjs} +0 -0
- /package/build/schema/static/{~comparer.mjs → _canonical.mjs} +0 -0
- /package/build/schema/static/{~comparer.d.mts → _comparer.d.mts} +0 -0
- /package/build/schema/static/{~elements.mjs → _comparer.mjs} +0 -0
- /package/build/schema/static/{~non-readonly.mjs → _elements.mjs} +0 -0
- /package/build/type/engine/call/{distribute-arguments.d.mts → distribute_arguments.d.mts} +0 -0
- /package/build/type/engine/call/{resolve-arguments.d.mts → resolve_arguments.d.mts} +0 -0
- /package/build/type/engine/call/{resolve-target.d.mts → resolve_target.d.mts} +0 -0
- /package/build/type/engine/call/{resolve-target.mjs → resolve_target.mjs} +0 -0
- /package/build/type/engine/{awaited → constructor_parameters}/index.d.mts +0 -0
- /package/build/type/engine/{awaited → constructor_parameters}/index.mjs +0 -0
- /package/build/type/engine/enum/{typescript-enum-to-enum-values.d.mts → typescript_enum_to_enum_values.d.mts} +0 -0
- /package/build/type/engine/enum/{typescript-enum-to-enum-values.mjs → typescript_enum_to_enum_values.mjs} +0 -0
- /package/build/type/engine/helpers/{keys-to-indexer.d.mts → keys_to_indexer.d.mts} +0 -0
- /package/build/type/engine/helpers/{keys-to-indexer.mjs → keys_to_indexer.mjs} +0 -0
- /package/build/type/engine/indexable/{from-literal.mjs → from_literal.mjs} +0 -0
- /package/build/type/engine/indexable/{to-indexable.d.mts → to_indexable.d.mts} +0 -0
- /package/build/type/engine/indexable/{to-indexable.mjs → to_indexable.mjs} +0 -0
- /package/build/type/engine/indexed/{array-indexer.d.mts → array_indexer.d.mts} +0 -0
- /package/build/type/engine/indexed/{array-indexer.mjs → array_indexer.mjs} +0 -0
- /package/build/type/engine/indexed/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/type/engine/indexed/{from-array.mjs → from_array.mjs} +0 -0
- /package/build/type/engine/{constructor-parameters → instance_type}/index.d.mts +0 -0
- /package/build/type/engine/{constructor-parameters → instance_type}/index.mjs +0 -0
- /package/build/type/engine/intrinsics/{from-literal.d.mts → from_literal.d.mts} +0 -0
- /package/build/type/engine/intrinsics/{from-literal.mjs → from_literal.mjs} +0 -0
- /package/build/type/engine/keyof/{from-any.d.mts → from_any.d.mts} +0 -0
- /package/build/type/engine/keyof/{from-any.mjs → from_any.mjs} +0 -0
- /package/build/type/engine/keyof/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/type/engine/keyof/{from-array.mjs → from_array.mjs} +0 -0
- /package/build/type/engine/keyof/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/type/engine/keyof/{from-object.mjs → from_object.mjs} +0 -0
- /package/build/type/engine/keyof/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/type/engine/keyof/{from-record.mjs → from_record.mjs} +0 -0
- /package/build/type/engine/keyof/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/type/engine/keyof/{from-tuple.mjs → from_tuple.mjs} +0 -0
- /package/build/type/engine/{instance-type → non_nullable}/index.d.mts +0 -0
- /package/build/type/engine/{instance-type → non_nullable}/index.mjs +0 -0
- /package/build/type/engine/object/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/type/engine/object/{from-object.mjs → from_object.mjs} +0 -0
- /package/build/type/engine/{non-nullable → readonly_object}/index.d.mts +0 -0
- /package/build/type/engine/{non-nullable → readonly_object}/index.mjs +0 -0
- /package/build/type/engine/record/{from-key-any.d.mts → from_key_any.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-boolean.d.mts → from_key_boolean.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-boolean.mjs → from_key_boolean.mjs} +0 -0
- /package/build/type/engine/record/{from-key-integer.d.mts → from_key_integer.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-literal.d.mts → from_key_literal.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-literal.mjs → from_key_literal.mjs} +0 -0
- /package/build/type/engine/record/{from-key-number.d.mts → from_key_number.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-string.d.mts → from_key_string.d.mts} +0 -0
- /package/build/type/engine/record/{from-key-union.d.mts → from_key_union.d.mts} +0 -0
- /package/build/type/engine/record/{record-create.d.mts → record_create.d.mts} +0 -0
- /package/build/type/engine/record/{record-create.mjs → record_create.mjs} +0 -0
- /package/build/type/engine/{options → return_type}/index.d.mts +0 -0
- /package/build/type/engine/{options → return_type}/index.mjs +0 -0
- /package/build/type/engine/{template-literal → template_literal}/create.d.mts +0 -0
- /package/build/type/engine/{template-literal → template_literal}/create.mjs +0 -0
- /package/build/type/engine/{template-literal/is-finite.d.mts → template_literal/is_finite.d.mts} +0 -0
- /package/build/type/engine/{template-literal/is-pattern.d.mts → template_literal/is_pattern.d.mts} +0 -0
- /package/build/type/engine/{template-literal → template_literal}/static.d.mts +0 -0
- /package/build/type/engine/{template-literal → template_literal}/static.mjs +0 -0
- /package/build/type/engine/tuple/{to-object.d.mts → to_object.d.mts} +0 -0
- /package/build/type/engine/tuple/{to-object.mjs → to_object.mjs} +0 -0
- /package/build/type/engine/{readonly-type → with}/index.d.mts +0 -0
- /package/build/type/engine/{readonly-type → with}/index.mjs +0 -0
- /package/build/value/clean/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/{convert/from-cyclic.d.mts → clean/from_cyclic.d.mts} +0 -0
- /package/build/value/clean/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
- /package/build/value/clean/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/clean/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/clean/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/clean/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/clean/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/{repair/from-union.d.mts → clean/from_union.d.mts} +0 -0
- /package/build/value/codec/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/codec/{from-cyclic.d.mts → from_cyclic.d.mts} +0 -0
- /package/build/value/codec/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
- /package/build/value/codec/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/codec/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/codec/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/codec/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/codec/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/codec/{from-union.d.mts → from_union.d.mts} +0 -0
- /package/build/value/convert/{from-additional.d.mts → from_additional.d.mts} +0 -0
- /package/build/value/convert/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/convert/{from-bigint.d.mts → from_bigint.d.mts} +0 -0
- /package/build/value/convert/{from-bigint.mjs → from_bigint.mjs} +0 -0
- /package/build/value/convert/{from-boolean.d.mts → from_boolean.d.mts} +0 -0
- /package/build/value/convert/{from-boolean.mjs → from_boolean.mjs} +0 -0
- /package/build/value/{default/from-cyclic.d.mts → convert/from_cyclic.d.mts} +0 -0
- /package/build/value/convert/{from-enum.d.mts → from_enum.d.mts} +0 -0
- /package/build/value/convert/{from-integer.d.mts → from_integer.d.mts} +0 -0
- /package/build/value/convert/{from-integer.mjs → from_integer.mjs} +0 -0
- /package/build/value/convert/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
- /package/build/value/convert/{from-literal.mjs → from_literal.mjs} +0 -0
- /package/build/value/convert/{from-null.d.mts → from_null.d.mts} +0 -0
- /package/build/value/convert/{from-null.mjs → from_null.mjs} +0 -0
- /package/build/value/convert/{from-number.d.mts → from_number.d.mts} +0 -0
- /package/build/value/convert/{from-number.mjs → from_number.mjs} +0 -0
- /package/build/value/convert/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/convert/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/convert/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/convert/{from-string.d.mts → from_string.d.mts} +0 -0
- /package/build/value/convert/{from-string.mjs → from_string.mjs} +0 -0
- /package/build/value/convert/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/convert/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/convert/{from-undefined.d.mts → from_undefined.d.mts} +0 -0
- /package/build/value/convert/{from-undefined.mjs → from_undefined.mjs} +0 -0
- /package/build/value/convert/{from-union.d.mts → from_union.d.mts} +0 -0
- /package/build/value/convert/{from-void.d.mts → from_void.d.mts} +0 -0
- /package/build/value/convert/{from-void.mjs → from_void.mjs} +0 -0
- /package/build/value/convert/try/{try-result.d.mts → try_result.d.mts} +0 -0
- /package/build/value/convert/try/{try-result.mjs → try_result.mjs} +0 -0
- /package/build/value/create/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/create/{from-bigint.d.mts → from_bigint.d.mts} +0 -0
- /package/build/value/create/{from-bigint.mjs → from_bigint.mjs} +0 -0
- /package/build/value/create/{from-boolean.d.mts → from_boolean.d.mts} +0 -0
- /package/build/value/create/{from-boolean.mjs → from_boolean.mjs} +0 -0
- /package/build/value/create/{from-constructor.d.mts → from_constructor.d.mts} +0 -0
- /package/build/value/create/{from-cyclic.d.mts → from_cyclic.d.mts} +0 -0
- /package/build/value/create/{from-default.d.mts → from_default.d.mts} +0 -0
- /package/build/value/create/{from-default.mjs → from_default.mjs} +0 -0
- /package/build/value/create/{from-enum.d.mts → from_enum.d.mts} +0 -0
- /package/build/value/create/{from-function.d.mts → from_function.d.mts} +0 -0
- /package/build/value/create/{from-integer.d.mts → from_integer.d.mts} +0 -0
- /package/build/value/create/{from-integer.mjs → from_integer.mjs} +0 -0
- /package/build/value/create/{from-intersect.d.mts → from_intersect.d.mts} +0 -0
- /package/build/value/create/{from-literal.d.mts → from_literal.d.mts} +0 -0
- /package/build/value/create/{from-literal.mjs → from_literal.mjs} +0 -0
- /package/build/value/create/{from-never.d.mts → from_never.d.mts} +0 -0
- /package/build/value/create/{from-never.mjs → from_never.mjs} +0 -0
- /package/build/value/create/{from-null.d.mts → from_null.d.mts} +0 -0
- /package/build/value/create/{from-null.mjs → from_null.mjs} +0 -0
- /package/build/value/create/{from-number.d.mts → from_number.d.mts} +0 -0
- /package/build/value/create/{from-number.mjs → from_number.mjs} +0 -0
- /package/build/value/create/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/create/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/create/{from-record.mjs → from_record.mjs} +0 -0
- /package/build/value/create/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/create/{from-string.d.mts → from_string.d.mts} +0 -0
- /package/build/value/create/{from-string.mjs → from_string.mjs} +0 -0
- /package/build/value/create/{from-symbol.d.mts → from_symbol.d.mts} +0 -0
- /package/build/value/create/{from-symbol.mjs → from_symbol.mjs} +0 -0
- /package/build/value/create/{from-template-literal.d.mts → from_template_literal.d.mts} +0 -0
- /package/build/value/create/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/create/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/create/{from-undefined.d.mts → from_undefined.d.mts} +0 -0
- /package/build/value/create/{from-undefined.mjs → from_undefined.mjs} +0 -0
- /package/build/value/create/{from-union.d.mts → from_union.d.mts} +0 -0
- /package/build/value/create/{from-void.d.mts → from_void.d.mts} +0 -0
- /package/build/value/create/{from-void.mjs → from_void.mjs} +0 -0
- /package/build/value/default/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/default/{from-default.d.mts → from_default.d.mts} +0 -0
- /package/build/value/default/{from-default.mjs → from_default.mjs} +0 -0
- /package/build/value/{repair/from-intersect.d.mts → default/from_intersect.d.mts} +0 -0
- /package/build/value/default/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/default/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/default/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/default/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/default/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/default/{from-union.d.mts → from_union.d.mts} +0 -0
- /package/build/value/repair/{from-array.d.mts → from_array.d.mts} +0 -0
- /package/build/value/repair/{from-enum.d.mts → from_enum.d.mts} +0 -0
- /package/build/value/repair/{from-object.d.mts → from_object.d.mts} +0 -0
- /package/build/value/repair/{from-record.d.mts → from_record.d.mts} +0 -0
- /package/build/value/repair/{from-ref.d.mts → from_ref.d.mts} +0 -0
- /package/build/value/repair/{from-template-literal.d.mts → from_template_literal.d.mts} +0 -0
- /package/build/value/repair/{from-tuple.d.mts → from_tuple.d.mts} +0 -0
- /package/build/value/repair/{from-type.d.mts → from_type.d.mts} +0 -0
- /package/build/value/repair/{from-unknown.d.mts → from_unknown.d.mts} +0 -0
- /package/build/value/repair/{from-unknown.mjs → from_unknown.mjs} +0 -0
- /package/build/value/shared/{optional-undefined.d.mts → optional_undefined.d.mts} +0 -0
- /package/build/value/shared/{optional-undefined.mjs → optional_undefined.mjs} +0 -0
- /package/build/value/shared/{union-score-select.d.mts → union_score_select.d.mts} +0 -0
- /package/build/value/shared/{union-score-select.mjs → union_score_select.mjs} +0 -0
package/readme.md
CHANGED
|
@@ -43,13 +43,14 @@ type T = Type.Static<typeof T> // type T = {
|
|
|
43
43
|
// y: number,
|
|
44
44
|
// z: number
|
|
45
45
|
// }
|
|
46
|
+
|
|
46
47
|
```
|
|
47
48
|
|
|
48
49
|
## Overview
|
|
49
50
|
|
|
50
51
|
[Documentation](https://sinclairzx81.github.io/typebox/)
|
|
51
52
|
|
|
52
|
-
TypeBox is a runtime type system that creates in-memory JSON Schema objects that infer as TypeScript types. The schematics produced by this library are designed to match the static type checking rules of the TypeScript compiler. TypeBox offers a unified type
|
|
53
|
+
TypeBox is a runtime type system that creates in-memory JSON Schema objects that infer as TypeScript types. The schematics produced by this library are designed to match the static type checking rules of the TypeScript compiler. TypeBox offers a unified type that can be statically checked by TypeScript and runtime checked using standard JSON Schema validation.
|
|
53
54
|
|
|
54
55
|
This library is designed to allow JSON Schema to compose similar to how types compose within TypeScript's type system. It can be used as a simple tool to build up complex schematics or integrated into REST and RPC services to help validate data received over the wire.
|
|
55
56
|
|
|
@@ -72,16 +73,14 @@ License: MIT
|
|
|
72
73
|
|
|
73
74
|
TypeBox types are JSON Schema fragments that compose into more complex types. The library offers a set of types used to construct JSON Schema compliant schematics as well as a set of extended types used to model constructs native to the JavaScript language. The schematics produced by TypeBox can be passed directly to any JSON Schema compliant validator.
|
|
74
75
|
|
|
75
|
-
|
|
76
|
+
### Example
|
|
76
77
|
|
|
77
78
|
The following creates a User type and infers with Static.
|
|
78
79
|
|
|
79
80
|
```typescript
|
|
80
81
|
import Type from 'typebox'
|
|
81
82
|
|
|
82
|
-
// -------------------------------------------------------------------------------
|
|
83
83
|
// Type
|
|
84
|
-
// -------------------------------------------------------------------------------
|
|
85
84
|
|
|
86
85
|
const User = Type.Object({ // const User = {
|
|
87
86
|
id: Type.String(), // type: 'object',
|
|
@@ -92,7 +91,7 @@ const User = Type.Object({ // const User = {
|
|
|
92
91
|
// type: 'string',
|
|
93
92
|
// format: 'email'
|
|
94
93
|
// }
|
|
95
|
-
// }
|
|
94
|
+
// },
|
|
96
95
|
// required: [
|
|
97
96
|
// 'id',
|
|
98
97
|
// 'name',
|
|
@@ -100,139 +99,259 @@ const User = Type.Object({ // const User = {
|
|
|
100
99
|
// ]
|
|
101
100
|
// }
|
|
102
101
|
|
|
103
|
-
// -------------------------------------------------------------------------------
|
|
104
102
|
// Static
|
|
105
|
-
// -------------------------------------------------------------------------------
|
|
106
103
|
|
|
107
104
|
type User = Type.Static<typeof User> // type User = {
|
|
108
105
|
// id: string,
|
|
109
106
|
// name: string,
|
|
110
107
|
// email: string
|
|
111
108
|
// }
|
|
109
|
+
|
|
112
110
|
```
|
|
113
111
|
|
|
114
112
|
## Script
|
|
115
113
|
|
|
116
|
-
[Documentation](https://sinclairzx81.github.io/typebox/#/docs/script/overview) | [Example 1](https://www.typescriptlang.org/play
|
|
114
|
+
[Documentation](https://sinclairzx81.github.io/typebox/#/docs/script/overview) | [Example 1](https://www.typescriptlang.org/play/?target=99&module=7#code/JYWwDg9gTgLgBAFQJ5gKZwGZQiOByGFVAIwgA88AoSgehrgFkIATAVwBtVKBjCAOwDO8AN5wAChCFwAvnAC8iIgDoAytyjAwMABQADSnDiE0cAKoDUUeXGEHDcYMwBccPqxDFLAGjuG+AQxBUFyENPgBzO2k7Y3QAYRwgvngFW3sHZ1d3TygfdJhUMhgQmDDwvPt-VhgAC2gXc0somKJxSRSbXwyXNw9vLphgGE4SsorDUmYkUeAI8bgq2vqzC1yu3hAkmAEXBM3UZIBtAF1m3QBKajo4ACVUDE5uQf5KCSElMGw0WGBUASVHK92h8vpZBn8lINhlw3jAQRBvuD-os6lB4Yjfv9AbD0WDMUoUdBcT8IQEgkD3p8EXiIRstliCiB-lSMRCCkUKXCWTT-nSDtsAYzmaCScjqqjiUiAcxOZL8XzkgzUEy5RDCWjuaKlGSuLR6ABJPgYSwHbhcDCsPhPYD8OCfP787SQIQuZBoVQwfyDbgAHliEAwbSEAD5zp1DM64YCI8CoZw7JGCeKidG7cD1drAlwY+8FdtDgAGY6QwowBPAvMCQvFjOpxOV6tJpZonWUaRAA) | [Example 2](https://www.typescriptlang.org/play/?target=99&module=7#code/JYWwDg9gTgLgBAFQJ5gKZwGZQiOByGFVAIwgA88AoSgehrgFkIATAVwBtVKBjCAOwDO8AKoDUUOAF5ERAHQB5YgCtU3GAAoA3pThxgzAFwy0sgHKsQxceoCUAGh1w+AQxCojyEwGUYUYHwBzW0oAXxsefiE4AGEcNz54aU9UBWVVDW1dfQ85c0tre0cYVDIYHO9ffyDC3WdWGAALaCNRcVDw3kF4AAUIKKS5RRU1LUds4xS8qyhbB10YYBhOcpSfP0DZx1JmJBXZNarN2vqmqBaxKDm4XhB4mAE9gEEoKGckdVjb1ATwsOo6OAAJVQGE4amA-EovSEsjA2DQsGAqAEsn0UL6MFh8PEC2RsgWSy40MxcIgCNxKLqjWgWLJOKRKLRxNp5IZsippxZ9LxLjc6JhpNZeJud0ZxRAKMF3JRxVK-JJ2MRwri33uqPFksVFPZJxpUqVjOY8q5BtkItVYtQEpN2o5eq1bN5XFo9AAknwMOJvtwuBhWHxwfw4HDkar1JAhHsfM4FtwADyENAQDBwYkAPhscEywYxqKNugjmIJnEchZ11KgedLubtlad1Zh5oSAgA2gAGAC6+JKMAbmKb93bXdrVYLuYHrc75c59ZCQA) | [Challenge](test/typescript/readme.md)
|
|
117
115
|
|
|
118
|
-
TypeBox can transform TypeScript definitions
|
|
116
|
+
TypeBox includes a runtime TypeScript engine that can transform TypeScript definitions to JSON Schema. The engine is fully type-safe and supports many programmable constructs including Conditional, Mapped, Indexed, Generics, Distributive Generics, and more.
|
|
119
117
|
|
|
120
118
|
### Example
|
|
121
119
|
|
|
122
|
-
|
|
120
|
+
Syntax highlighting is available via the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=sinclairzx81.typebox-script)
|
|
123
121
|
|
|
124
122
|
```typescript
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const { User, UserUpdate } = Type.Script(`
|
|
132
|
-
|
|
133
|
-
interface Entity {
|
|
134
|
-
id: string
|
|
123
|
+
// Module
|
|
124
|
+
const { Post } = Type.Script(`
|
|
125
|
+
type User = {
|
|
126
|
+
id: number,
|
|
127
|
+
name: string
|
|
135
128
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
129
|
+
type Comment = {
|
|
130
|
+
id: number,
|
|
131
|
+
text: string,
|
|
132
|
+
author: User
|
|
140
133
|
}
|
|
134
|
+
type Post = {
|
|
135
|
+
id: number,
|
|
136
|
+
title: string,
|
|
137
|
+
body: string,
|
|
138
|
+
author: User,
|
|
139
|
+
comments: Comment[]
|
|
140
|
+
}
|
|
141
|
+
`)
|
|
141
142
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
// Reflection
|
|
144
|
+
Post.properties.id
|
|
145
|
+
Post.properties.title
|
|
146
|
+
Post.properties.author.properties.id
|
|
147
|
+
Post.properties.author.properties.name
|
|
148
|
+
Post.properties.comments.items.properties.text
|
|
149
|
+
Post.properties.comments.items.properties.author.properties.id
|
|
150
|
+
Post.properties.comments.items.properties.author.properties.name
|
|
151
|
+
|
|
152
|
+
// Inference
|
|
153
|
+
function present(post: Type.Static<typeof Post>) {
|
|
154
|
+
post.id
|
|
155
|
+
post.title
|
|
156
|
+
post.author.id
|
|
157
|
+
post.author.name
|
|
158
|
+
post.comments[0].text
|
|
159
|
+
post.comments[0].author.id
|
|
160
|
+
post.comments[0].author.name
|
|
161
|
+
}
|
|
162
|
+
```
|
|
146
163
|
|
|
147
|
-
|
|
164
|
+
<a name="Schema"></a>
|
|
148
165
|
|
|
149
|
-
|
|
150
|
-
// Reflect
|
|
151
|
-
// -------------------------------------------------------------------------------
|
|
166
|
+
## Schema
|
|
152
167
|
|
|
153
|
-
|
|
154
|
-
// type: 'object',
|
|
155
|
-
// properties: {
|
|
156
|
-
// id: { type: 'string' },
|
|
157
|
-
// name: { type: 'string' },
|
|
158
|
-
// email: { type: 'string' }
|
|
159
|
-
// },
|
|
160
|
-
// required: [
|
|
161
|
-
// 'id',
|
|
162
|
-
// 'name',
|
|
163
|
-
// 'email'
|
|
164
|
-
// ]
|
|
165
|
-
// }
|
|
168
|
+
[Documentation](https://sinclairzx81.github.io/typebox/#/docs/schema/overview) | [Example 1](https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAZQMYAsCmICGcBmUIhwDkMAnmGgEYQAeA9AM6oaZEBQbddcAtH-wMFDhI0WPESenbgGECYYABs003pPUbNW-hyQQAdg3gBVBmihwAvImZYAdHPBK0ACgDebOHDIUAXMQhKACs0JBgiABpPODB8ClhgNAZ-Dy8vYAATFO9yNH8iIyhgfQBzIjgAXyi0uH1MEDy4Nxy-YkLissrqtJYlbJ9Ggpgi0sjcaCwYfN7FcoroquioNABHAFdgZay4AG1oryJMsf3iOobjmqIZ9i8AXTYKgEoOLjVtd4+P1QAFTCgzVSfIHAyS6AxGOBrMwWaymcx2X7-VzNGqotHouCvPSGeBQ8wpaKZfIANgArDgAIyYABMlAAzEgACwZUloYk4ADsmAAHJQAJxIAAMGQpYwx6Ne6W27VK3TOgzxUDF4pVqq8ktq9UaMpK3Rm+UVAAEMgRMMU7HoQOU1SqNfq4DqHo8bS7XajXhUrHA7D6gA) | [Example 2](https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAZQMYAsCmICGcBmUIhwDkMAnmGgEYQAeA9AM6oaZEBQokscAKuWrnyES-ajXZs6dOAFo58hYqXKVqteo0zJ0gMIEwwADZptszeYuWr8tmyQQAdg3gBVBmihwAvImZYAdHrgRmgAFHwU-gDylABWaEgwoQDebHBwwAAmAFy8-P4IMFDADgDmoQCUADRpcA6YIGi5EWgFRSXl1bUsRs35hcVlKbjQWDC5RD2GRHAAvhVs8wum1qtr61pScAAKmFDuKxtHx6q29k7wAK7unj5uHv67+2HJ6W-vH5-vW+fOcNceXKpdJZCYANgArDgAIyYABMlAAzEgACyZCFoME4ADsmAAHJQAJxIAAMmWhRCqX2pcC2IJycGcg1KNXS9UaEwBUEpNN5fO+0jZDSajPaZVZcCmnJuAAFMgRMCV-PYQDN+by6ZKsL1RczFhV1YajR8trNvHB-JagA)
|
|
166
169
|
|
|
167
|
-
|
|
168
|
-
// type: 'object',
|
|
169
|
-
// properties: {
|
|
170
|
-
// id: { type: 'string' },
|
|
171
|
-
// name: { type: 'string' },
|
|
172
|
-
// email: { type: 'string' }
|
|
173
|
-
// },
|
|
174
|
-
// required: ['id']
|
|
175
|
-
// }
|
|
170
|
+
TypeBox includes a high-performance JIT compiler that supports JSON Schema Draft 3 through to 2020-12. It is designed to be a lightweight industry-grade alternative to Ajv and offers improved compilation and validation performance. It also provides automatic fallback to dynamic validation in JIT restricted environments such as Cloudflare Workers.
|
|
176
171
|
|
|
177
|
-
|
|
178
|
-
// Static
|
|
179
|
-
// -------------------------------------------------------------------------------
|
|
172
|
+
The compiler is available via optional sub module import.
|
|
180
173
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
// email: string
|
|
185
|
-
// }
|
|
174
|
+
```typescript
|
|
175
|
+
import Schema from 'typebox/schema'
|
|
176
|
+
```
|
|
186
177
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
// email?: string
|
|
191
|
-
// }
|
|
178
|
+
### Compile
|
|
179
|
+
|
|
180
|
+
The compiler accepts JSON Schema and returns Validator instances.
|
|
192
181
|
|
|
182
|
+
```typescript
|
|
183
|
+
const Vector = Schema.Compile(Type.Object({ // const Vector: Validator<TObject<{
|
|
184
|
+
x: Type.Number(), // x: TNumber
|
|
185
|
+
y: Type.Number(), // y: TNumber
|
|
186
|
+
z: Type.Number() // z: TNumber
|
|
187
|
+
})) // }>>
|
|
188
|
+
```
|
|
189
|
+
With JSON Schema
|
|
190
|
+
```typescript
|
|
191
|
+
const Vector = Schema.Compile({ // const Vector: Validator<{
|
|
192
|
+
type: 'object', // type: "object";
|
|
193
|
+
required: ['x', 'y', 'z'], // required: ["x", "y", "z"];
|
|
194
|
+
properties: { // properties: { ... };
|
|
195
|
+
x: { type: 'number' }, // }, { ... }>
|
|
196
|
+
y: { type: 'number' },
|
|
197
|
+
z: { type: 'number' }
|
|
198
|
+
}
|
|
199
|
+
})
|
|
193
200
|
```
|
|
194
201
|
|
|
195
|
-
|
|
202
|
+
### Validate
|
|
196
203
|
|
|
197
|
-
|
|
204
|
+
Validator instances provide functions to Check and Parse values.
|
|
198
205
|
|
|
199
|
-
|
|
206
|
+
```typescript
|
|
207
|
+
const Vector = Schema.Compile(Type.Script(`{
|
|
208
|
+
x: number
|
|
209
|
+
y: number
|
|
210
|
+
z: number
|
|
211
|
+
}`))
|
|
212
|
+
|
|
213
|
+
const valid = Vector.Check({ // const valid: boolean
|
|
214
|
+
x: 1,
|
|
215
|
+
y: 0,
|
|
216
|
+
z: 0
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
const value = Vector.Parse({ // const value: {
|
|
220
|
+
x: 1, // x: number
|
|
221
|
+
y: 0, // y: number
|
|
222
|
+
z: 0 // z: number
|
|
223
|
+
}) // }
|
|
224
|
+
```
|
|
200
225
|
|
|
201
|
-
TypeBox includes a JSON Schema compiler designed for high-performance JIT validation. It also provides automatic fallback to dynamic interpreted checking for JIT restrictive environments such as Cloudflare Workers. The compiler is designed to be a lightweight, spec compliant alternative to Ajv for high-throughput applications based on the JSON Schema standard.
|
|
202
226
|
|
|
203
|
-
### Example
|
|
204
227
|
|
|
205
|
-
|
|
228
|
+
### Coverage
|
|
229
|
+
|
|
230
|
+
The following table shows specification coverage implemented by TypeBox.
|
|
231
|
+
|
|
232
|
+
[JSON Schema Test Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite)
|
|
233
|
+
|
|
234
|
+
| Spec | 3 | 4 | 6 | 7 | 2019-09 | 2020-12 | v1 |
|
|
235
|
+
|:-----|:--|:--|:--|:--|:--|:--|:--|
|
|
236
|
+
| additionalItems | ✅ | ✅ | ✅ | ✅ | ✅ | - | - |
|
|
237
|
+
| additionalProperties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
238
|
+
| allOf | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
239
|
+
| anchor | - | - | - | - | ✅ | ✅ | ✅ |
|
|
240
|
+
| anyOf | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
241
|
+
| boolean_schema | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
242
|
+
| const | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
243
|
+
| contains | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
244
|
+
| content | - | - | - | - | ✅ | ✅ | ✅ |
|
|
245
|
+
| default | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
246
|
+
| dependencies | 17/18 | ✅ | ✅ | ✅ | - | - | - |
|
|
247
|
+
| dependentRequired | - | - | - | - | ✅ | ✅ | ✅ |
|
|
248
|
+
| dependentSchemas | - | - | - | - | ✅ | ✅ | ✅ |
|
|
249
|
+
| dynamicRef | - | - | - | - | - | 38/44 | 19/27 |
|
|
250
|
+
| enum | 14/16 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
251
|
+
| exclusiveMaximum | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
252
|
+
| exclusiveMinimum | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
253
|
+
| if-then-else | - | - | - | ✅ | ✅ | ✅ | ✅ |
|
|
254
|
+
| infinite-loop-detection | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
255
|
+
| items | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
256
|
+
| maxContains | - | - | - | - | ✅ | ✅ | ✅ |
|
|
257
|
+
| maximum | 13/14 | 13/14 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
258
|
+
| maxItems | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
259
|
+
| maxLength | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
260
|
+
| maxProperties | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
261
|
+
| minContains | - | - | - | - | ✅ | ✅ | ✅ |
|
|
262
|
+
| minimum | 12/13 | 16/17 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
263
|
+
| minItems | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
264
|
+
| minLength | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
265
|
+
| minProperties | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
266
|
+
| multipleOf | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
267
|
+
| not | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
268
|
+
| oneOf | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
269
|
+
| pattern | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
270
|
+
| patternProperties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
271
|
+
| prefixItems | - | - | - | - | - | ✅ | ✅ |
|
|
272
|
+
| properties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
273
|
+
| propertyNames | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
274
|
+
| recursiveRef | - | - | - | - | ✅ | - | - |
|
|
275
|
+
| ref | 22/27 | 37/45 | 67/70 | 75/78 | 79/81 | 77/79 | 77/79 |
|
|
276
|
+
| required | 3/4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
277
|
+
| type | 73/80 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
278
|
+
| unevaluatedItems | - | - | - | - | ✅ | ✅ | 70/71 |
|
|
279
|
+
| unevaluatedProperties | - | - | - | - | ✅ | ✅ | 128/129 |
|
|
280
|
+
| uniqueItems | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
### Performance
|
|
284
|
+
|
|
285
|
+
The following table shows compile performance for various JSON Schema structures using AJV8 as a basis for comparison.
|
|
286
|
+
|
|
287
|
+
```python
|
|
288
|
+
┌──────────────────────┬─────────────┬─────────────┐
|
|
289
|
+
│ Compile │ TB1X │ AJV8 │
|
|
290
|
+
├──────────────────────┼─────────────┼─────────────┤
|
|
291
|
+
│ Boolean │ 39.7K ops/s │ 6.8K ops/s │
|
|
292
|
+
│ Number │ 86.2K ops/s │ 7.5K ops/s │
|
|
293
|
+
│ String │ 82.6K ops/s │ 8.2K ops/s │
|
|
294
|
+
│ Null │ 62K ops/s │ 7.3K ops/s │
|
|
295
|
+
│ Literal_String │ 72.1K ops/s │ 5.7K ops/s │
|
|
296
|
+
│ Literal_Number │ 72.7K ops/s │ 6.9K ops/s │
|
|
297
|
+
│ Literal_Boolean │ 80.9K ops/s │ 7K ops/s │
|
|
298
|
+
│ Pattern │ 38.7K ops/s │ 5.7K ops/s │
|
|
299
|
+
│ Object_Open │ 16.3K ops/s │ 1.3K ops/s │
|
|
300
|
+
│ Object_Close │ 15.7K ops/s │ 952 ops/s │
|
|
301
|
+
│ Object_Vector3 │ 40.2K ops/s │ 3.2K ops/s │
|
|
302
|
+
│ Object_Basis3 │ 16.1K ops/s │ 834 ops/s │
|
|
303
|
+
│ Intersect_And │ 45.7K ops/s │ 3.5K ops/s │
|
|
304
|
+
│ Intersect_Structural │ 21K ops/s │ 1.6K ops/s │
|
|
305
|
+
│ Union_Or │ 45.1K ops/s │ 3.4K ops/s │
|
|
306
|
+
│ Union_Structural │ 27.6K ops/s │ 2K ops/s │
|
|
307
|
+
│ Tuple_Values │ 14.7K ops/s │ 2K ops/s │
|
|
308
|
+
│ Tuple_Objects │ 3.7K ops/s │ 380 ops/s │
|
|
309
|
+
│ Array_Numbers_4 │ 73.6K ops/s │ 4.3K ops/s │
|
|
310
|
+
│ Array_Numbers_8 │ 50.9K ops/s │ 3.8K ops/s │
|
|
311
|
+
│ Array_Numbers_16 │ 85K ops/s │ 3.9K ops/s │
|
|
312
|
+
│ Array_Objects_Open │ 18.9K ops/s │ 789 ops/s │
|
|
313
|
+
│ Array_Objects_Close │ 17.9K ops/s │ 909 ops/s │
|
|
314
|
+
└──────────────────────┴─────────────┴─────────────┘
|
|
315
|
+
```
|
|
206
316
|
|
|
207
|
-
```typescript
|
|
208
|
-
import Schema from 'typebox/schema'
|
|
209
317
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
318
|
+
The following tables shows validation performance for various JSON Schema structures using AJV8 as a basis for comparison.
|
|
319
|
+
|
|
320
|
+
```python
|
|
321
|
+
┌──────────────────────┬──────────────┬──────────────┐
|
|
322
|
+
│ Validate │ TB1X │ AJV8 │
|
|
323
|
+
├──────────────────────┼──────────────┼──────────────┤
|
|
324
|
+
│ Boolean │ 192.2M ops/s │ 189.5M ops/s │
|
|
325
|
+
│ Number │ 112.4M ops/s │ 61M ops/s │
|
|
326
|
+
│ String │ 113.7M ops/s │ 64.1M ops/s │
|
|
327
|
+
│ Null │ 112.8M ops/s │ 64.9M ops/s │
|
|
328
|
+
│ Literal_String │ 108M ops/s │ 62.9M ops/s │
|
|
329
|
+
│ Literal_Number │ 113.5M ops/s │ 63.2M ops/s │
|
|
330
|
+
│ Literal_Boolean │ 109.2M ops/s │ 64.1M ops/s │
|
|
331
|
+
│ Pattern │ 26.5M ops/s │ 22.4M ops/s │
|
|
332
|
+
│ Object_Open │ 78M ops/s │ 47.2M ops/s │
|
|
333
|
+
│ Object_Close │ 38.6M ops/s │ 27.6M ops/s │
|
|
334
|
+
│ Object_Vector3 │ 91M ops/s │ 51.3M ops/s │
|
|
335
|
+
│ Object_Basis3 │ 41.1M ops/s │ 27.4M ops/s │
|
|
336
|
+
│ Intersect_And │ 107.6M ops/s │ 59.9M ops/s │
|
|
337
|
+
│ Intersect_Structural │ 83.6M ops/s │ 46.3M ops/s │
|
|
338
|
+
│ Union_Or │ 95M ops/s │ 7.9M ops/s │
|
|
339
|
+
│ Union_Structural │ 84.5M ops/s │ 52.3M ops/s │
|
|
340
|
+
│ Tuple_Values │ 74.7M ops/s │ 53M ops/s │
|
|
341
|
+
│ Tuple_Objects │ 32.9M ops/s │ 22.3M ops/s │
|
|
342
|
+
│ Array_Numbers_4 │ 93.3M ops/s │ 55.1M ops/s │
|
|
343
|
+
│ Array_Numbers_8 │ 90.3M ops/s │ 50.8M ops/s │
|
|
344
|
+
│ Array_Numbers_16 │ 76.8M ops/s │ 39.6M ops/s │
|
|
345
|
+
│ Array_Objects_Open │ 28.7M ops/s │ 20.4M ops/s │
|
|
346
|
+
│ Array_Objects_Close │ 10.3M ops/s │ 10.8M ops/s │
|
|
347
|
+
└──────────────────────┴──────────────┴──────────────┘
|
|
229
348
|
```
|
|
230
349
|
|
|
231
350
|
<a name="Versions"></a>
|
|
232
351
|
|
|
233
352
|
## Versions
|
|
234
353
|
|
|
235
|
-
TypeBox
|
|
354
|
+
TypeBox ships two distinct versions that span two generations of the TypeScript compiler.
|
|
236
355
|
|
|
237
356
|
| TypeBox | TypeScript | Description |
|
|
238
357
|
| :--- | :--- | :--- |
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as Schema from '../types/index.mjs';
|
|
2
|
-
import { Stack } from './_stack.mjs';
|
|
3
|
-
import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
|
|
4
|
-
export declare function BuildGuard(_stack: Stack, _context: BuildContext, schema: Schema.XGuard, value: string): string;
|
|
5
|
-
export declare function CheckGuard(_stack: Stack, _context: CheckContext, schema: Schema.XGuard, value: unknown): boolean;
|
|
6
|
-
export declare function ErrorGuard(_stack: Stack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XGuard, value: unknown): boolean;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// deno-fmt-ignore-file
|
|
2
|
-
import * as Externals from './_externals.mjs';
|
|
3
|
-
import { EmitGuard as E } from '../../guard/index.mjs';
|
|
4
|
-
// ------------------------------------------------------------------
|
|
5
|
-
// Build
|
|
6
|
-
// ------------------------------------------------------------------
|
|
7
|
-
export function BuildGuard(_stack, _context, schema, value) {
|
|
8
|
-
return E.Call(E.Member(E.Member(Externals.CreateVariable(schema), '~guard'), 'check'), [value]);
|
|
9
|
-
}
|
|
10
|
-
// ------------------------------------------------------------------
|
|
11
|
-
// Check
|
|
12
|
-
// ------------------------------------------------------------------
|
|
13
|
-
export function CheckGuard(_stack, _context, schema, value) {
|
|
14
|
-
return schema['~guard'].check(value);
|
|
15
|
-
}
|
|
16
|
-
// ------------------------------------------------------------------
|
|
17
|
-
// Error
|
|
18
|
-
// ------------------------------------------------------------------
|
|
19
|
-
export function ErrorGuard(_stack, context, schemaPath, instancePath, schema, value) {
|
|
20
|
-
return schema['~guard'].check(value) || context.AddError({
|
|
21
|
-
keyword: '~guard',
|
|
22
|
-
schemaPath,
|
|
23
|
-
instancePath,
|
|
24
|
-
params: { errors: schema['~guard'].errors(value) },
|
|
25
|
-
});
|
|
26
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
type XFromTuple<Value extends readonly unknown[]> = (Value extends [infer Left, ...infer Right extends unknown[]] ? [XNonReadonly<Left>, ...XFromTuple<Right>] : []);
|
|
2
|
-
type XFromArray<Value extends unknown, Result extends unknown[] = XNonReadonly<Value>[]> = Result;
|
|
3
|
-
type XFromObject<Value extends object, Result extends Record<PropertyKey, unknown> = {
|
|
4
|
-
-readonly [K in keyof Value]: XNonReadonly<Value[K]>;
|
|
5
|
-
}> = Result;
|
|
6
|
-
export type XNonReadonly<Value extends unknown> = (Value extends readonly [...infer Schemas extends unknown[]] ? XFromTuple<Schemas> : Value extends readonly (infer Schema)[] ? XFromArray<Schema> : Value extends object ? XFromObject<Value> : Value);
|
|
7
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { XSchemaObject } from './schema.mjs';
|
|
2
|
-
export interface XGuardInterface<Value extends unknown = unknown> {
|
|
3
|
-
check(value: unknown): value is Value;
|
|
4
|
-
errors(value: unknown): object[];
|
|
5
|
-
}
|
|
6
|
-
export interface XGuard<Value extends unknown = unknown> {
|
|
7
|
-
'~guard': XGuardInterface<Value>;
|
|
8
|
-
}
|
|
9
|
-
export declare function IsGuardInterface(value: unknown): value is XGuardInterface;
|
|
10
|
-
export declare function IsGuard(value: XSchemaObject): value is XGuard;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// deno-fmt-ignore-file
|
|
2
|
-
import { Guard } from '../../guard/index.mjs';
|
|
3
|
-
// ------------------------------------------------------------------
|
|
4
|
-
// Guard
|
|
5
|
-
// ------------------------------------------------------------------
|
|
6
|
-
export function IsGuardInterface(value) {
|
|
7
|
-
return Guard.IsObject(value)
|
|
8
|
-
&& Guard.HasPropertyKey(value, 'check')
|
|
9
|
-
&& Guard.HasPropertyKey(value, 'errors')
|
|
10
|
-
&& Guard.IsFunction(value.check)
|
|
11
|
-
&& Guard.IsFunction(value.errors);
|
|
12
|
-
}
|
|
13
|
-
export function IsGuard(value) {
|
|
14
|
-
return Guard.HasPropertyKey(value, '~guard')
|
|
15
|
-
&& IsGuardInterface(value['~guard']);
|
|
16
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
-
/** Represents a operation to apply Optional to a property */
|
|
3
|
-
export interface TOptionalAddAction<Type extends TSchema = TSchema> extends TSchema {
|
|
4
|
-
'~kind': 'OptionalAddAction';
|
|
5
|
-
type: Type;
|
|
6
|
-
}
|
|
7
|
-
/** Creates an OptionalAddAction. */
|
|
8
|
-
export declare function OptionalAddAction<Type extends TSchema>(type: Type): TOptionalAddAction<Type>;
|
|
9
|
-
/** Returns true if this value is a OptionalAddAction. */
|
|
10
|
-
export declare function IsOptionalAddAction(value: unknown): value is TOptionalAddAction;
|
|
11
|
-
/** Represents a operation to remove Optional from a property */
|
|
12
|
-
export interface TOptionalRemoveAction<Type extends TSchema = TSchema> extends TSchema {
|
|
13
|
-
'~kind': 'OptionalRemoveAction';
|
|
14
|
-
type: Type;
|
|
15
|
-
}
|
|
16
|
-
/** Creates a OptionalRemoveAction. */
|
|
17
|
-
export declare function OptionalRemoveAction<Type extends TSchema>(type: Type): TOptionalRemoveAction<Type>;
|
|
18
|
-
/** Returns true if this value is a OptionalRemoveAction. */
|
|
19
|
-
export declare function IsOptionalRemoveAction(value: unknown): value is TOptionalRemoveAction;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// deno-fmt-ignore-file
|
|
2
|
-
import { Memory } from '../../system/memory/index.mjs';
|
|
3
|
-
import { Guard } from '../../guard/index.mjs';
|
|
4
|
-
import { IsSchema } from '../types/schema.mjs';
|
|
5
|
-
// ------------------------------------------------------------------
|
|
6
|
-
// Action
|
|
7
|
-
// ------------------------------------------------------------------
|
|
8
|
-
/** Creates an OptionalAddAction. */
|
|
9
|
-
export function OptionalAddAction(type) {
|
|
10
|
-
return Memory.Create({ ['~kind']: 'OptionalAddAction' }, { type }, {});
|
|
11
|
-
}
|
|
12
|
-
// ------------------------------------------------------------------
|
|
13
|
-
// Guard
|
|
14
|
-
// ------------------------------------------------------------------
|
|
15
|
-
/** Returns true if this value is a OptionalAddAction. */
|
|
16
|
-
export function IsOptionalAddAction(value) {
|
|
17
|
-
return Guard.IsObject(value)
|
|
18
|
-
&& Guard.HasPropertyKey(value, '~kind')
|
|
19
|
-
&& Guard.HasPropertyKey(value, 'type')
|
|
20
|
-
&& Guard.IsEqual(value['~kind'], 'OptionalAddAction')
|
|
21
|
-
&& IsSchema(value.type);
|
|
22
|
-
}
|
|
23
|
-
// ------------------------------------------------------------------
|
|
24
|
-
// Factory
|
|
25
|
-
// ------------------------------------------------------------------
|
|
26
|
-
/** Creates a OptionalRemoveAction. */
|
|
27
|
-
export function OptionalRemoveAction(type) {
|
|
28
|
-
return Memory.Create({ ['~kind']: 'OptionalRemoveAction' }, { type }, {});
|
|
29
|
-
}
|
|
30
|
-
// ------------------------------------------------------------------
|
|
31
|
-
// Guard
|
|
32
|
-
// ------------------------------------------------------------------
|
|
33
|
-
/** Returns true if this value is a OptionalRemoveAction. */
|
|
34
|
-
export function IsOptionalRemoveAction(value) {
|
|
35
|
-
return Guard.IsObject(value)
|
|
36
|
-
&& Guard.HasPropertyKey(value, '~kind')
|
|
37
|
-
&& Guard.HasPropertyKey(value, 'type')
|
|
38
|
-
&& Guard.IsEqual(value['~kind'], 'OptionalRemoveAction')
|
|
39
|
-
&& IsSchema(value.type);
|
|
40
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
-
/** Represents an operation to apply Readonly to a property. */
|
|
3
|
-
export interface TReadonlyAddAction<Type extends TSchema = TSchema> extends TSchema {
|
|
4
|
-
'~kind': 'ReadonlyAddAction';
|
|
5
|
-
type: Type;
|
|
6
|
-
}
|
|
7
|
-
/** Creates a ReadonlyAddAction. */
|
|
8
|
-
export declare function ReadonlyAddAction<Type extends TSchema>(type: Type): TReadonlyAddAction<Type>;
|
|
9
|
-
/** Returns true if this value is a ReadonlyAddAction. */
|
|
10
|
-
export declare function IsReadonlyAddAction(value: unknown): value is TReadonlyAddAction;
|
|
11
|
-
/** Represents an action to remove Readonly from a property. */
|
|
12
|
-
export interface TReadonlyRemoveAction<Type extends TSchema = TSchema> extends TSchema {
|
|
13
|
-
'~kind': 'ReadonlyRemoveAction';
|
|
14
|
-
type: Type;
|
|
15
|
-
}
|
|
16
|
-
/** Creates a ReadonlyRemoveAction. */
|
|
17
|
-
export declare function ReadonlyRemoveAction<Type extends TSchema>(type: Type): TReadonlyRemoveAction<Type>;
|
|
18
|
-
/** Returns true if this value is a ReadonlyRemoveAction. */
|
|
19
|
-
export declare function IsReadonlyRemoveAction(value: unknown): value is TReadonlyRemoveAction;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// deno-fmt-ignore-file
|
|
2
|
-
import { Memory } from '../../system/memory/index.mjs';
|
|
3
|
-
import { Guard } from '../../guard/index.mjs';
|
|
4
|
-
import { IsSchema } from '../types/schema.mjs';
|
|
5
|
-
// ------------------------------------------------------------------
|
|
6
|
-
// Action
|
|
7
|
-
// ------------------------------------------------------------------
|
|
8
|
-
/** Creates a ReadonlyAddAction. */
|
|
9
|
-
export function ReadonlyAddAction(type) {
|
|
10
|
-
return Memory.Create({ ['~kind']: 'ReadonlyAddAction' }, { type }, {});
|
|
11
|
-
}
|
|
12
|
-
// ------------------------------------------------------------------
|
|
13
|
-
// Guard
|
|
14
|
-
// ------------------------------------------------------------------
|
|
15
|
-
/** Returns true if this value is a ReadonlyAddAction. */
|
|
16
|
-
export function IsReadonlyAddAction(value) {
|
|
17
|
-
return Guard.IsObject(value)
|
|
18
|
-
&& Guard.HasPropertyKey(value, '~kind')
|
|
19
|
-
&& Guard.HasPropertyKey(value, 'type')
|
|
20
|
-
&& Guard.IsEqual(value['~kind'], 'ReadonlyAddAction')
|
|
21
|
-
&& IsSchema(value.type);
|
|
22
|
-
}
|
|
23
|
-
// ------------------------------------------------------------------
|
|
24
|
-
// Factory
|
|
25
|
-
// ------------------------------------------------------------------
|
|
26
|
-
/** Creates a ReadonlyRemoveAction. */
|
|
27
|
-
export function ReadonlyRemoveAction(type) {
|
|
28
|
-
return Memory.Create({ ['~kind']: 'ReadonlyRemoveAction' }, { type }, {});
|
|
29
|
-
}
|
|
30
|
-
// ------------------------------------------------------------------
|
|
31
|
-
// Guard
|
|
32
|
-
// ------------------------------------------------------------------
|
|
33
|
-
/** Returns true if this value is a ReadonlyRemoveAction. */
|
|
34
|
-
export function IsReadonlyRemoveAction(value) {
|
|
35
|
-
return Guard.IsObject(value)
|
|
36
|
-
&& Guard.HasPropertyKey(value, '~kind')
|
|
37
|
-
&& Guard.HasPropertyKey(value, 'type')
|
|
38
|
-
&& Guard.IsEqual(value['~kind'], 'ReadonlyRemoveAction')
|
|
39
|
-
&& IsSchema(value.type);
|
|
40
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type TSchema, type TSchemaOptions } from '../types/schema.mjs';
|
|
2
|
-
import { type TDeferred } from '../types/deferred.mjs';
|
|
3
|
-
import { type TInstantiate } from '../engine/instantiate.mjs';
|
|
4
|
-
/** Creates a deferred Awaited action. */
|
|
5
|
-
export type TAwaitedDeferred<Type extends TSchema> = (TDeferred<'Awaited', [Type]>);
|
|
6
|
-
/** Creates a deferred Awaited action. */
|
|
7
|
-
export declare function AwaitedDeferred<Type extends TSchema>(type: Type, options?: TSchemaOptions): TAwaitedDeferred<Type>;
|
|
8
|
-
/** Applies an Awaited action to a type. */
|
|
9
|
-
export type TAwaited<Type extends TSchema> = (TInstantiate<{}, TAwaitedDeferred<Type>>);
|
|
10
|
-
/** Applies an Awaited action to a type. */
|
|
11
|
-
export declare function Awaited<Type extends TSchema>(type: Type, options?: TSchemaOptions): TAwaited<Type>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// deno-lint-ignore-file ban-types
|
|
2
|
-
// deno-fmt-ignore-file
|
|
3
|
-
import { Deferred } from '../types/deferred.mjs';
|
|
4
|
-
import { Instantiate } from '../engine/instantiate.mjs';
|
|
5
|
-
/** Creates a deferred Awaited action. */
|
|
6
|
-
export function AwaitedDeferred(type, options = {}) {
|
|
7
|
-
return Deferred('Awaited', [type], options);
|
|
8
|
-
}
|
|
9
|
-
/** Applies an Awaited action to a type. */
|
|
10
|
-
export function Awaited(type, options = {}) {
|
|
11
|
-
return Instantiate({}, AwaitedDeferred(type, options));
|
|
12
|
-
}
|