@openclaw/tavily-plugin 2026.7.1-beta.1 → 2026.7.1-beta.4
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/dist/index.js +1 -1
- package/dist/{tavily-search-provider-CEMZvdRx.js → tavily-search-provider-Dv_dVc_h.js} +2 -5
- package/dist/web-search-contract-api.js +2 -5
- package/dist/web-search-provider.js +1 -1
- package/node_modules/typebox/build/compile/validator.d.mts +2 -7
- package/node_modules/typebox/build/compile/validator.mjs +6 -36
- package/node_modules/typebox/build/error/errors.d.mts +1 -7
- package/node_modules/typebox/build/format/_idna.mjs +36 -6
- package/node_modules/typebox/build/format/_puny.mjs +4 -1
- package/node_modules/typebox/build/format/uuid.d.mts +2 -2
- package/node_modules/typebox/build/format/uuid.mjs +3 -3
- package/node_modules/typebox/build/guard/emit.d.mts +0 -4
- package/node_modules/typebox/build/guard/emit.mjs +0 -8
- package/node_modules/typebox/build/guard/guard.d.mts +4 -8
- package/node_modules/typebox/build/guard/guard.mjs +5 -13
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/boolean.mjs +4 -4
- package/node_modules/typebox/build/schema/engine/index.d.mts +0 -1
- package/node_modules/typebox/build/schema/engine/index.mjs +0 -1
- package/node_modules/typebox/build/schema/engine/schema.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/type.mjs +14 -18
- package/node_modules/typebox/build/schema/types/dependencies.mjs +1 -1
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -1
- package/node_modules/typebox/build/schema/types/index.mjs +0 -1
- package/node_modules/typebox/build/schema/types/schema.d.mts +1 -1
- package/node_modules/typebox/build/schema/types/schema.mjs +2 -2
- package/node_modules/typebox/build/system/locale/ar_001.mjs +0 -1
- package/node_modules/typebox/build/system/locale/bn_BD.mjs +0 -1
- package/node_modules/typebox/build/system/locale/cs_CZ.mjs +0 -1
- package/node_modules/typebox/build/system/locale/de_DE.mjs +0 -1
- package/node_modules/typebox/build/system/locale/el_GR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/en_US.mjs +0 -1
- package/node_modules/typebox/build/system/locale/es_419.mjs +0 -1
- package/node_modules/typebox/build/system/locale/es_AR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/es_ES.mjs +0 -1
- package/node_modules/typebox/build/system/locale/es_MX.mjs +0 -1
- package/node_modules/typebox/build/system/locale/fa_IR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/fil_PH.mjs +0 -1
- package/node_modules/typebox/build/system/locale/fr_CA.mjs +0 -1
- package/node_modules/typebox/build/system/locale/fr_FR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ha_NG.mjs +0 -1
- package/node_modules/typebox/build/system/locale/hi_IN.mjs +0 -1
- package/node_modules/typebox/build/system/locale/hu_HU.mjs +0 -1
- package/node_modules/typebox/build/system/locale/id_ID.mjs +0 -1
- package/node_modules/typebox/build/system/locale/it_IT.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ja_JP.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ko_KR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ms_MY.mjs +0 -1
- package/node_modules/typebox/build/system/locale/nl_NL.mjs +0 -1
- package/node_modules/typebox/build/system/locale/pl_PL.mjs +0 -1
- package/node_modules/typebox/build/system/locale/pt_BR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/pt_PT.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ro_RO.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ru_RU.mjs +0 -1
- package/node_modules/typebox/build/system/locale/sv_SE.mjs +0 -1
- package/node_modules/typebox/build/system/locale/sw_TZ.mjs +0 -1
- package/node_modules/typebox/build/system/locale/th_TH.mjs +0 -1
- package/node_modules/typebox/build/system/locale/tr_TR.mjs +0 -1
- package/node_modules/typebox/build/system/locale/uk_UA.mjs +0 -1
- package/node_modules/typebox/build/system/locale/ur_PK.mjs +0 -1
- package/node_modules/typebox/build/system/locale/vi_VN.mjs +0 -1
- package/node_modules/typebox/build/system/locale/yo_NG.mjs +0 -1
- package/node_modules/typebox/build/system/locale/zh_Hans.mjs +0 -1
- package/node_modules/typebox/build/system/locale/zh_Hant.mjs +0 -1
- package/node_modules/typebox/build/system/memory/clone.d.mts +2 -3
- package/node_modules/typebox/build/system/memory/clone.mjs +73 -26
- package/node_modules/typebox/build/system/settings/settings.d.mts +15 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +3 -1
- package/node_modules/typebox/build/type/action/_add_immutable.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_add_immutable.mjs +11 -0
- package/node_modules/typebox/build/type/action/_add_optional.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_add_optional.mjs +11 -0
- package/node_modules/typebox/build/type/action/_add_readonly.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_add_readonly.mjs +11 -0
- package/node_modules/typebox/build/type/action/_remove_immutable.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_remove_immutable.mjs +11 -0
- package/node_modules/typebox/build/type/action/_remove_optional.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_remove_optional.mjs +11 -0
- package/node_modules/typebox/build/type/action/_remove_readonly.d.mts +11 -0
- package/node_modules/typebox/build/type/action/_remove_readonly.mjs +11 -0
- package/node_modules/typebox/build/type/action/conditional.d.mts +2 -3
- package/node_modules/typebox/build/type/action/conditional.mjs +2 -1
- package/node_modules/typebox/build/type/action/index.d.mts +7 -4
- package/node_modules/typebox/build/type/action/index.mjs +7 -4
- package/node_modules/typebox/build/type/action/mapped.d.mts +2 -3
- package/node_modules/typebox/build/type/action/mapped.mjs +2 -1
- package/node_modules/typebox/build/type/action/module.d.mts +8 -7
- package/node_modules/typebox/build/type/action/module.mjs +7 -6
- package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
- package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -5
- package/node_modules/typebox/build/type/action/with.d.mts +11 -0
- package/node_modules/typebox/build/type/action/with.mjs +11 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +1 -1
- package/node_modules/typebox/build/type/engine/call/instantiate.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +3 -2
- package/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +2 -2
- package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.d.mts +3 -4
- package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +2 -1
- package/node_modules/typebox/build/type/engine/cyclic/candidates.d.mts +2 -3
- package/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +3 -6
- package/node_modules/typebox/build/type/engine/cyclic/check.d.mts +6 -9
- package/node_modules/typebox/build/type/engine/cyclic/check.mjs +10 -16
- package/node_modules/typebox/build/type/engine/cyclic/dependencies.d.mts +1 -4
- package/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +9 -15
- package/node_modules/typebox/build/type/engine/cyclic/extends.d.mts +1 -4
- package/node_modules/typebox/build/type/engine/cyclic/extends.mjs +8 -14
- package/node_modules/typebox/build/type/engine/cyclic/instantiate.d.mts +2 -5
- package/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +3 -2
- package/node_modules/typebox/build/type/engine/enum/index.d.mts +0 -1
- package/node_modules/typebox/build/type/engine/enum/index.mjs +0 -1
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +1 -2
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +2 -6
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +10 -6
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +10 -6
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +2 -1
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +3 -3
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +17 -5
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +34 -8
- package/node_modules/typebox/build/type/engine/exclude/operation.d.mts +5 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +11 -12
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +5 -6
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +11 -12
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +14 -0
- package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +14 -0
- package/node_modules/typebox/build/type/engine/index.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/index.mjs +2 -2
- package/node_modules/typebox/build/type/engine/indexable/from_dependent.d.mts +5 -0
- package/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +8 -0
- package/node_modules/typebox/build/type/engine/indexable/from_enum.d.mts +3 -3
- package/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +4 -4
- package/node_modules/typebox/build/type/engine/indexable/from_template_literal.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +3 -3
- package/node_modules/typebox/build/type/engine/indexable/from_type.d.mts +3 -1
- package/node_modules/typebox/build/type/engine/indexable/from_type.mjs +9 -6
- package/node_modules/typebox/build/type/engine/indexed/instantiate.d.mts +2 -1
- package/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +5 -2
- package/node_modules/typebox/build/type/engine/instantiate.d.mts +44 -31
- package/node_modules/typebox/build/type/engine/instantiate.mjs +82 -83
- package/node_modules/typebox/build/type/engine/interface/instantiate.d.mts +3 -6
- package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +3 -3
- package/node_modules/typebox/build/type/engine/keyof/instantiate.d.mts +2 -1
- package/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +5 -1
- package/node_modules/typebox/build/type/engine/mapped/mapped_operation.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +3 -3
- package/node_modules/typebox/build/type/engine/mapped/mapped_variants.d.mts +5 -4
- package/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +10 -5
- package/node_modules/typebox/build/type/engine/module/instantiate.d.mts +7 -9
- package/node_modules/typebox/build/type/engine/module/instantiate.mjs +17 -15
- package/node_modules/typebox/build/type/engine/object/from_dependent.d.mts +5 -0
- package/node_modules/typebox/build/type/engine/object/from_dependent.mjs +8 -0
- package/node_modules/typebox/build/type/engine/object/from_type.d.mts +3 -1
- package/node_modules/typebox/build/type/engine/object/from_type.mjs +8 -5
- package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +14 -0
- package/node_modules/typebox/build/type/engine/optional/instantiate_remove.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +14 -0
- package/node_modules/typebox/build/type/engine/parameters/instantiate.d.mts +3 -4
- package/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +2 -1
- package/node_modules/typebox/build/type/engine/partial/from_dependent.d.mts +5 -0
- package/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +8 -0
- package/node_modules/typebox/build/type/engine/partial/from_intersect.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +3 -2
- package/node_modules/typebox/build/type/engine/partial/from_object.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/partial/from_object.mjs +2 -2
- package/node_modules/typebox/build/type/engine/partial/from_type.d.mts +3 -1
- package/node_modules/typebox/build/type/engine/partial/from_type.mjs +7 -4
- package/node_modules/typebox/build/type/engine/priority/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/priority/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +20 -0
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +28 -0
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +14 -0
- package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
- package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +14 -0
- package/node_modules/typebox/build/type/engine/readonly_object/from_array.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
- package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +8 -0
- package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +3 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_object.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +2 -2
- package/node_modules/typebox/build/type/engine/readonly_object/from_type.d.mts +3 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +8 -5
- package/node_modules/typebox/build/type/engine/record/from_key_enum.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +2 -2
- package/node_modules/typebox/build/type/engine/record/from_key_template_literal.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +2 -2
- package/node_modules/typebox/build/type/engine/ref/instantiate.d.mts +3 -3
- package/node_modules/typebox/build/type/engine/ref/instantiate.mjs +6 -6
- package/node_modules/typebox/build/type/engine/required/from_dependent.d.mts +5 -0
- package/node_modules/typebox/build/type/engine/required/from_dependent.mjs +8 -0
- package/node_modules/typebox/build/type/engine/required/from_intersect.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/required/from_intersect.mjs +3 -2
- package/node_modules/typebox/build/type/engine/required/from_object.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/required/from_object.mjs +2 -2
- package/node_modules/typebox/build/type/engine/required/from_type.d.mts +3 -1
- package/node_modules/typebox/build/type/engine/required/from_type.mjs +7 -4
- package/node_modules/typebox/build/type/engine/template_literal/decode.mjs +3 -3
- package/node_modules/typebox/build/type/engine/template_literal/encode.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/template_literal/encode.mjs +6 -6
- package/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +1 -1
- package/node_modules/typebox/build/type/engine/template_literal/is_pattern.mjs +1 -0
- package/node_modules/typebox/build/type/engine/this/expand_this.d.mts +1 -4
- package/node_modules/typebox/build/type/engine/this/expand_this.mjs +7 -13
- package/node_modules/typebox/build/type/engine/with/instantiate.d.mts +8 -0
- package/node_modules/typebox/build/type/engine/{options → with}/instantiate.mjs +5 -5
- package/node_modules/typebox/build/type/extends/dependent.d.mts +6 -0
- package/node_modules/typebox/build/type/extends/dependent.mjs +6 -0
- package/node_modules/typebox/build/type/extends/enum.d.mts +4 -4
- package/node_modules/typebox/build/type/extends/enum.mjs +3 -2
- package/node_modules/typebox/build/type/extends/extends_left.d.mts +5 -7
- package/node_modules/typebox/build/type/extends/extends_left.mjs +24 -27
- package/node_modules/typebox/build/type/extends/extends_right.d.mts +7 -5
- package/node_modules/typebox/build/type/extends/extends_right.mjs +20 -15
- package/node_modules/typebox/build/type/extends/inference.mjs +1 -1
- package/node_modules/typebox/build/type/extends/object.d.mts +8 -1
- package/node_modules/typebox/build/type/extends/object.mjs +25 -3
- package/node_modules/typebox/build/type/extends/parameters.mjs +2 -2
- package/node_modules/typebox/build/type/extends/record.d.mts +13 -0
- package/node_modules/typebox/build/type/extends/record.mjs +23 -0
- package/node_modules/typebox/build/type/extends/template_literal.d.mts +3 -3
- package/node_modules/typebox/build/type/extends/template_literal.mjs +3 -3
- package/node_modules/typebox/build/type/extends/tuple.d.mts +3 -6
- package/node_modules/typebox/build/type/extends/tuple.mjs +6 -5
- package/node_modules/typebox/build/type/extends/union.mjs +2 -2
- package/node_modules/typebox/build/type/script/mapping.d.mts +84 -99
- package/node_modules/typebox/build/type/script/mapping.mjs +81 -85
- package/node_modules/typebox/build/type/script/parser.d.mts +40 -40
- package/node_modules/typebox/build/type/script/parser.mjs +22 -22
- package/node_modules/typebox/build/type/script/script.d.mts +3 -4
- package/node_modules/typebox/build/type/script/script.mjs +3 -2
- package/node_modules/typebox/build/type/script/token/internal/guard.d.mts +1 -1
- package/node_modules/typebox/build/type/script/token/internal/guard.mjs +1 -1
- package/node_modules/typebox/build/type/script/token/internal/take.mjs +1 -1
- package/node_modules/typebox/build/type/script/token/until.mjs +2 -2
- package/node_modules/typebox/build/type/types/_codec.d.mts +12 -12
- package/node_modules/typebox/build/type/types/_codec.mjs +0 -1
- package/node_modules/typebox/build/type/types/_immutable.d.mts +2 -9
- package/node_modules/typebox/build/type/types/_immutable.mjs +2 -10
- package/node_modules/typebox/build/type/types/_optional.d.mts +2 -9
- package/node_modules/typebox/build/type/types/_optional.mjs +2 -11
- package/node_modules/typebox/build/type/types/_readonly.d.mts +2 -9
- package/node_modules/typebox/build/type/types/_readonly.mjs +2 -10
- package/node_modules/typebox/build/type/types/_refine.d.mts +8 -10
- package/node_modules/typebox/build/type/types/_refine.mjs +1 -2
- package/node_modules/typebox/build/type/types/call.d.mts +3 -3
- package/node_modules/typebox/build/type/types/call.mjs +3 -2
- package/node_modules/typebox/build/type/types/deferred.d.mts +1 -0
- package/node_modules/typebox/build/type/types/deferred.mjs +1 -1
- package/node_modules/typebox/build/type/types/dependent.d.mts +17 -0
- package/node_modules/typebox/build/type/types/dependent.mjs +24 -0
- package/node_modules/typebox/build/type/types/enum.d.mts +3 -1
- package/node_modules/typebox/build/type/types/enum.mjs +5 -0
- package/node_modules/typebox/build/type/types/index.d.mts +1 -4
- package/node_modules/typebox/build/type/types/index.mjs +1 -4
- package/node_modules/typebox/build/type/types/number.d.mts +1 -1
- package/node_modules/typebox/build/type/types/number.mjs +1 -1
- package/node_modules/typebox/build/type/types/record.d.mts +13 -7
- package/node_modules/typebox/build/type/types/record.mjs +15 -9
- package/node_modules/typebox/build/type/types/static.d.mts +2 -5
- package/node_modules/typebox/build/typebox.d.mts +4 -8
- package/node_modules/typebox/build/typebox.mjs +4 -8
- package/node_modules/typebox/build/value/clean/clean.mjs +4 -2
- package/node_modules/typebox/build/value/clean/from_intersect.mjs +2 -2
- package/node_modules/typebox/build/value/clean/from_type.mjs +8 -10
- package/node_modules/typebox/build/value/clean/from_union.d.mts +1 -1
- package/node_modules/typebox/build/value/clean/from_union.mjs +1 -2
- package/node_modules/typebox/build/value/clone/clone.mjs +2 -73
- package/node_modules/typebox/build/value/codec/decode.mjs +4 -2
- package/node_modules/typebox/build/value/codec/encode.mjs +4 -2
- package/node_modules/typebox/build/value/codec/from_array.mjs +1 -4
- package/node_modules/typebox/build/value/codec/from_object.mjs +1 -4
- package/node_modules/typebox/build/value/codec/from_record.mjs +2 -7
- package/node_modules/typebox/build/value/codec/from_tuple.mjs +1 -4
- package/node_modules/typebox/build/value/codec/from_union.mjs +2 -3
- package/node_modules/typebox/build/value/convert/from_enum.mjs +3 -4
- package/node_modules/typebox/build/value/convert/from_template_literal.d.mts +1 -1
- package/node_modules/typebox/build/value/convert/from_template_literal.mjs +2 -3
- package/node_modules/typebox/build/value/convert/from_type.mjs +19 -21
- package/node_modules/typebox/build/value/create/from_enum.mjs +2 -2
- package/node_modules/typebox/build/value/create/from_type.mjs +23 -31
- package/node_modules/typebox/build/value/default/from_object.mjs +1 -1
- package/node_modules/typebox/build/value/default/from_type.mjs +8 -10
- package/node_modules/typebox/build/value/index.d.mts +0 -1
- package/node_modules/typebox/build/value/index.mjs +0 -1
- package/node_modules/typebox/build/value/repair/from_enum.mjs +2 -3
- package/node_modules/typebox/build/value/repair/from_type.mjs +24 -22
- package/node_modules/typebox/build/value/shared/union_priority_sort.d.mts +6 -2
- package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +62 -26
- package/node_modules/typebox/build/value/value.d.mts +0 -1
- package/node_modules/typebox/build/value/value.mjs +0 -1
- package/node_modules/typebox/package.json +25 -25
- package/node_modules/typebox/readme.md +97 -80
- package/npm-shrinkwrap.json +6 -6
- package/package.json +5 -5
- package/node_modules/typebox/build/schema/engine/_guard.d.mts +0 -6
- package/node_modules/typebox/build/schema/engine/_guard.mjs +0 -26
- package/node_modules/typebox/build/schema/types/_guard.d.mts +0 -10
- package/node_modules/typebox/build/schema/types/_guard.mjs +0 -16
- package/node_modules/typebox/build/type/action/_optional.d.mts +0 -19
- package/node_modules/typebox/build/type/action/_optional.mjs +0 -40
- package/node_modules/typebox/build/type/action/_readonly.d.mts +0 -19
- package/node_modules/typebox/build/type/action/_readonly.mjs +0 -40
- package/node_modules/typebox/build/type/action/awaited.d.mts +0 -15
- package/node_modules/typebox/build/type/action/awaited.mjs +0 -15
- package/node_modules/typebox/build/type/action/options.d.mts +0 -11
- package/node_modules/typebox/build/type/action/options.mjs +0 -11
- package/node_modules/typebox/build/type/engine/awaited/instantiate.d.mts +0 -11
- package/node_modules/typebox/build/type/engine/awaited/instantiate.mjs +0 -20
- package/node_modules/typebox/build/type/engine/enum/enum_to_union.d.mts +0 -14
- package/node_modules/typebox/build/type/engine/enum/enum_to_union.mjs +0 -24
- package/node_modules/typebox/build/type/engine/options/index.d.mts +0 -1
- package/node_modules/typebox/build/type/engine/options/index.mjs +0 -1
- package/node_modules/typebox/build/type/engine/options/instantiate.d.mts +0 -8
- package/node_modules/typebox/build/type/extends/async_iterator.d.mts +0 -7
- package/node_modules/typebox/build/type/extends/async_iterator.mjs +0 -9
- package/node_modules/typebox/build/type/extends/iterator.d.mts +0 -7
- package/node_modules/typebox/build/type/extends/iterator.mjs +0 -9
- package/node_modules/typebox/build/type/extends/promise.d.mts +0 -7
- package/node_modules/typebox/build/type/extends/promise.mjs +0 -9
- package/node_modules/typebox/build/type/types/async_iterator.d.mts +0 -20
- package/node_modules/typebox/build/type/types/async_iterator.mjs +0 -28
- package/node_modules/typebox/build/type/types/base.d.mts +0 -50
- package/node_modules/typebox/build/type/types/base.mjs +0 -84
- package/node_modules/typebox/build/type/types/iterator.d.mts +0 -20
- package/node_modules/typebox/build/type/types/iterator.mjs +0 -28
- package/node_modules/typebox/build/type/types/promise.d.mts +0 -21
- package/node_modules/typebox/build/type/types/promise.mjs +0 -29
- package/node_modules/typebox/build/value/clean/from_base.d.mts +0 -2
- package/node_modules/typebox/build/value/clean/from_base.mjs +0 -4
- package/node_modules/typebox/build/value/convert/from_base.d.mts +0 -2
- package/node_modules/typebox/build/value/convert/from_base.mjs +0 -4
- package/node_modules/typebox/build/value/create/from_async_iterator.d.mts +0 -2
- package/node_modules/typebox/build/value/create/from_async_iterator.mjs +0 -5
- package/node_modules/typebox/build/value/create/from_base.d.mts +0 -2
- package/node_modules/typebox/build/value/create/from_base.mjs +0 -4
- package/node_modules/typebox/build/value/create/from_iterator.d.mts +0 -2
- package/node_modules/typebox/build/value/create/from_iterator.mjs +0 -5
- package/node_modules/typebox/build/value/create/from_promise.d.mts +0 -2
- package/node_modules/typebox/build/value/create/from_promise.mjs +0 -5
- package/node_modules/typebox/build/value/default/from_base.d.mts +0 -2
- package/node_modules/typebox/build/value/default/from_base.mjs +0 -5
- package/node_modules/typebox/build/value/mutate/error.d.mts +0 -3
- package/node_modules/typebox/build/value/mutate/error.mjs +0 -6
- package/node_modules/typebox/build/value/mutate/from_array.d.mts +0 -2
- package/node_modules/typebox/build/value/mutate/from_array.mjs +0 -16
- package/node_modules/typebox/build/value/mutate/from_object.d.mts +0 -2
- package/node_modules/typebox/build/value/mutate/from_object.mjs +0 -40
- package/node_modules/typebox/build/value/mutate/from_unknown.d.mts +0 -2
- package/node_modules/typebox/build/value/mutate/from_unknown.mjs +0 -7
- package/node_modules/typebox/build/value/mutate/from_value.d.mts +0 -2
- package/node_modules/typebox/build/value/mutate/from_value.mjs +0 -12
- package/node_modules/typebox/build/value/mutate/index.d.mts +0 -1
- package/node_modules/typebox/build/value/mutate/index.mjs +0 -1
- package/node_modules/typebox/build/value/mutate/mutate.d.mts +0 -11
- package/node_modules/typebox/build/value/mutate/mutate.mjs +0 -41
- package/node_modules/typebox/build/value/repair/from_base.d.mts +0 -2
- package/node_modules/typebox/build/value/repair/from_base.mjs +0 -8
- /package/node_modules/typebox/build/type/engine/{awaited → with}/index.d.mts +0 -0
- /package/node_modules/typebox/build/type/engine/{awaited → with}/index.mjs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TSchema } from '../../types/schema.mjs';
|
|
2
2
|
import { type TMappingType, type TMappingFunc } from './mapping.mjs';
|
|
3
|
-
import { type TTemplateLiteralDecode } from '../template_literal/decode.mjs';
|
|
4
3
|
import { type TFromType } from './from_type.mjs';
|
|
5
|
-
|
|
4
|
+
import { type TEvaluateTemplateLiteral } from '../evaluate/index.mjs';
|
|
5
|
+
export type TFromTemplateLiteral<Mapping extends TMappingType, Pattern extends string, Evaluated extends TSchema = TEvaluateTemplateLiteral<Pattern>, Result extends TSchema = TFromType<Mapping, Evaluated>> = Result;
|
|
6
6
|
export declare function FromTemplateLiteral(mapping: TMappingFunc, pattern: string): TSchema;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
|
-
import { TemplateLiteralDecode } from '../template_literal/decode.mjs';
|
|
3
2
|
import { FromType } from './from_type.mjs';
|
|
3
|
+
import { EvaluateTemplateLiteral } from '../evaluate/index.mjs';
|
|
4
4
|
export function FromTemplateLiteral(mapping, pattern) {
|
|
5
|
-
const
|
|
6
|
-
const result = FromType(mapping,
|
|
5
|
+
const evaluated = EvaluateTemplateLiteral(pattern);
|
|
6
|
+
const result = FromType(mapping, evaluated);
|
|
7
7
|
return result;
|
|
8
8
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
|
|
2
2
|
import { type TProperties } from '../../types/properties.mjs';
|
|
3
3
|
import { type TCyclic } from '../../types/cyclic.mjs';
|
|
4
|
+
import { type TDependent } from '../../types/dependent.mjs';
|
|
4
5
|
import { type TIntersect } from '../../types/intersect.mjs';
|
|
5
6
|
import { type TUnion } from '../../types/union.mjs';
|
|
6
7
|
import { type TKeyOfDeferred } from '../../action/keyof.mjs';
|
|
7
8
|
import { type TState, type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
|
|
8
9
|
import { type TCollapseToObject } from '../object/index.mjs';
|
|
9
10
|
import { type TFromType } from './from_type.mjs';
|
|
10
|
-
type TNormalizeType<Type extends TSchema, Result extends TSchema = (Type extends TCyclic
|
|
11
|
+
type TNormalizeType<Type extends TSchema, Result extends TSchema = (Type extends TCyclic ? TCollapseToObject<Type> : Type extends TDependent ? TCollapseToObject<Type> : Type extends TIntersect ? TCollapseToObject<Type> : Type extends TUnion ? TCollapseToObject<Type> : Type)> = Result;
|
|
11
12
|
export type TKeyOfAction<Type extends TSchema, Result extends TSchema = TCanInstantiate<[Type]> extends true ? TFromType<TNormalizeType<Type>> : TKeyOfDeferred<Type>> = Result;
|
|
12
13
|
export declare function KeyOfAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TKeyOfAction<Type>;
|
|
13
14
|
export type TKeyOfInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TKeyOfAction<InstantiatedType>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Memory } from '../../../system/memory/index.mjs';
|
|
3
3
|
import { IsCyclic } from '../../types/cyclic.mjs';
|
|
4
|
+
import { IsDependent } from '../../types/dependent.mjs';
|
|
4
5
|
import { IsIntersect } from '../../types/intersect.mjs';
|
|
5
6
|
import { IsUnion } from '../../types/union.mjs';
|
|
6
7
|
import { KeyOfDeferred } from '../../action/keyof.mjs';
|
|
@@ -11,7 +12,10 @@ import { CollapseToObject } from '../object/index.mjs';
|
|
|
11
12
|
// ------------------------------------------------------------------
|
|
12
13
|
import { FromType } from './from_type.mjs';
|
|
13
14
|
function NormalizeType(type) {
|
|
14
|
-
const result = (IsCyclic(type) ||
|
|
15
|
+
const result = (IsCyclic(type) ||
|
|
16
|
+
IsDependent(type) ||
|
|
17
|
+
IsIntersect(type) ||
|
|
18
|
+
IsUnion(type)) ? CollapseToObject(type) : type;
|
|
15
19
|
return result;
|
|
16
20
|
}
|
|
17
21
|
export function KeyOfAction(type, options) {
|
|
@@ -5,11 +5,11 @@ import { type TObject } from '../../types/object.mjs';
|
|
|
5
5
|
import { type TProperties } from '../../types/properties.mjs';
|
|
6
6
|
import { type TIdentifier } from '../../types/identifier.mjs';
|
|
7
7
|
import { type TTemplateLiteral } from '../../types/template_literal.mjs';
|
|
8
|
-
import { type
|
|
9
|
-
import { type
|
|
10
|
-
import { type
|
|
8
|
+
import { type TInstantiateType, type TState } from '../instantiate.mjs';
|
|
9
|
+
import { type TEvaluateIntersect } from '../evaluate/evaluate.mjs';
|
|
10
|
+
import { type TEvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';
|
|
11
11
|
import { type TMappedVariants } from './mapped_variants.mjs';
|
|
12
|
-
type TCanonicalAs<InstantiatedAs extends TSchema, Result extends TSchema = InstantiatedAs extends TTemplateLiteral<infer Pattern extends string> ?
|
|
12
|
+
type TCanonicalAs<InstantiatedAs extends TSchema, Result extends TSchema = InstantiatedAs extends TTemplateLiteral<infer Pattern extends string> ? TEvaluateTemplateLiteral<Pattern> : InstantiatedAs> = Result;
|
|
13
13
|
type TMappedVariant<Context extends TProperties, State extends TState, Identifier extends TIdentifier, Variant extends TSchema, As extends TSchema, Property extends TSchema, VariantContext extends TProperties = Memory.TAssign<Context, {
|
|
14
14
|
[_ in Identifier['name']]: Variant;
|
|
15
15
|
}>, InstantiatedAs extends TSchema = TInstantiateType<VariantContext, State, As>, CanonicalAs extends TSchema = TCanonicalAs<InstantiatedAs>, InstantiatedProperty extends TSchema = TInstantiateType<VariantContext, State, Property>, Result extends TProperties = CanonicalAs extends TLiteral<string | number> ? {
|
|
@@ -4,13 +4,13 @@ import { Memory } from '../../../system/memory/index.mjs';
|
|
|
4
4
|
import { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';
|
|
5
5
|
import { Object } from '../../types/object.mjs';
|
|
6
6
|
import { IsTemplateLiteral } from '../../types/template_literal.mjs';
|
|
7
|
-
import { TemplateLiteralDecode } from '../template_literal/decode.mjs';
|
|
8
7
|
import { InstantiateType } from '../instantiate.mjs';
|
|
9
|
-
import { EvaluateIntersect } from '../evaluate/
|
|
8
|
+
import { EvaluateIntersect } from '../evaluate/evaluate.mjs';
|
|
9
|
+
import { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';
|
|
10
10
|
import { MappedVariants } from './mapped_variants.mjs';
|
|
11
11
|
function CanonicalAs(instantiatedAs) {
|
|
12
12
|
const result = IsTemplateLiteral(instantiatedAs)
|
|
13
|
-
?
|
|
13
|
+
? EvaluateTemplateLiteral(instantiatedAs.pattern)
|
|
14
14
|
: instantiatedAs;
|
|
15
15
|
return result;
|
|
16
16
|
}
|
|
@@ -3,12 +3,13 @@ import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs';
|
|
|
3
3
|
import { type TEnum, type TEnumValue } from '../../types/enum.mjs';
|
|
4
4
|
import { type TTemplateLiteral } from '../../types/template_literal.mjs';
|
|
5
5
|
import { type TUnion } from '../../types/union.mjs';
|
|
6
|
-
import { type
|
|
7
|
-
import { type
|
|
8
|
-
type TFromTemplateLiteral<Pattern extends string,
|
|
6
|
+
import { type TEvaluateEnum } from '../evaluate/evaluate.mjs';
|
|
7
|
+
import { type TEvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';
|
|
8
|
+
type TFromTemplateLiteral<Pattern extends string, Evaluated extends TSchema = TEvaluateTemplateLiteral<Pattern>, Result extends TSchema[] = TFromType<Evaluated>> = Result;
|
|
9
9
|
type TFromUnion<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromUnion<Right, [...Result, ...TFromType<Left>]> : Result);
|
|
10
|
+
type TFromEnum<Values extends TEnumValue[], Evaluated extends TSchema = TEvaluateEnum<Values>, Result extends TSchema[] = TFromType<Evaluated>> = Result;
|
|
10
11
|
type TFromLiteral<Value extends TLiteralValue, Result extends TSchema[] = Value extends number ? [TLiteral<`${Value}`>] : [TLiteral<Value>]> = Result;
|
|
11
|
-
type TFromType<Type extends TSchema, Result extends TSchema[] = (Type extends TEnum<infer Values extends TEnumValue[]> ?
|
|
12
|
+
type TFromType<Type extends TSchema, Result extends TSchema[] = (Type extends TEnum<infer Values extends TEnumValue[]> ? TFromEnum<Values> : Type extends TLiteral<infer Value extends number> ? TFromLiteral<Value> : Type extends TTemplateLiteral<infer Pattern extends string> ? TFromTemplateLiteral<Pattern> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : [
|
|
12
13
|
Type
|
|
13
14
|
])> = Result;
|
|
14
15
|
export type TMappedVariants<Type extends TSchema, Result extends TSchema[] = TFromType<Type>> = Result;
|
|
@@ -4,11 +4,11 @@ import { Literal, IsLiteral } from '../../types/literal.mjs';
|
|
|
4
4
|
import { IsEnum } from '../../types/enum.mjs';
|
|
5
5
|
import { IsTemplateLiteral } from '../../types/template_literal.mjs';
|
|
6
6
|
import { IsUnion } from '../../types/union.mjs';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { EvaluateEnum } from '../evaluate/evaluate.mjs';
|
|
8
|
+
import { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';
|
|
9
9
|
function FromTemplateLiteral(pattern) {
|
|
10
|
-
const
|
|
11
|
-
const result = FromType(
|
|
10
|
+
const evaluated = EvaluateTemplateLiteral(pattern);
|
|
11
|
+
const result = FromType(evaluated);
|
|
12
12
|
return result;
|
|
13
13
|
}
|
|
14
14
|
function FromUnion(types) {
|
|
@@ -16,12 +16,17 @@ function FromUnion(types) {
|
|
|
16
16
|
return [...result, ...FromType(left)];
|
|
17
17
|
}, []);
|
|
18
18
|
}
|
|
19
|
+
function FromEnum(values) {
|
|
20
|
+
const evaluated = EvaluateEnum(values);
|
|
21
|
+
const result = FromType(evaluated);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
19
24
|
function FromLiteral(value) {
|
|
20
25
|
const result = Guard.IsNumber(value) ? [Literal(`${value}`)] : [Literal(value)];
|
|
21
26
|
return result;
|
|
22
27
|
}
|
|
23
28
|
function FromType(type) {
|
|
24
|
-
const result = (IsEnum(type) ?
|
|
29
|
+
const result = (IsEnum(type) ? FromEnum(type.enum) :
|
|
25
30
|
IsLiteral(type) ? FromLiteral(type.const) :
|
|
26
31
|
IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :
|
|
27
32
|
IsUnion(type) ? FromUnion(type.anyOf) :
|
|
@@ -5,17 +5,15 @@ import { type TState } from '../instantiate.mjs';
|
|
|
5
5
|
import { type TCyclicCandidates } from '../cyclic/candidates.mjs';
|
|
6
6
|
import { type TInstantiateCyclic } from '../cyclic/instantiate.mjs';
|
|
7
7
|
import { type TInstantiateType } from '../instantiate.mjs';
|
|
8
|
-
type TInstantiateCyclics<Context extends TProperties, CyclicKeys extends string[], Result extends TProperties = {
|
|
9
|
-
[Key in Extract<keyof
|
|
8
|
+
type TInstantiateCyclics<Context extends TProperties, Declarations extends TProperties, CyclicKeys extends string[], DeclarationContext extends TProperties = Memory.TAssign<Context, Declarations>, Result extends TProperties = {
|
|
9
|
+
[Key in Extract<keyof Declarations, CyclicKeys[number]>]: TInstantiateCyclic<DeclarationContext, Key, Declarations[Key]>;
|
|
10
10
|
}> = Result;
|
|
11
|
-
type TInstantiateNonCyclics<Context extends TProperties, CyclicKeys extends string[], Result extends TProperties = {
|
|
12
|
-
[Key in Exclude<keyof
|
|
13
|
-
callstack: [];
|
|
14
|
-
}, Context[Key]>;
|
|
11
|
+
type TInstantiateNonCyclics<Context extends TProperties, Declarations extends TProperties, CyclicKeys extends string[], DeclarationContext extends TProperties = Memory.TAssign<Context, Declarations>, Result extends TProperties = {
|
|
12
|
+
[Key in Exclude<keyof Declarations, CyclicKeys[number]>]: TInstantiateType<DeclarationContext, TState<[], []>, Declarations[Key]>;
|
|
15
13
|
}> = Result;
|
|
16
|
-
type TInstantiateModule<Context extends TProperties, CyclicCandidates extends string[] = TCyclicCandidates<
|
|
14
|
+
type TInstantiateModule<Context extends TProperties, Declarations extends TProperties, CyclicCandidates extends string[] = TCyclicCandidates<Declarations>, InstantiatedCyclics extends TProperties = TInstantiateCyclics<Context, Declarations, CyclicCandidates>, InstantiatedNonCyclics extends TProperties = TInstantiateNonCyclics<Context, Declarations, CyclicCandidates>, InstantiatedModule extends TProperties = InstantiatedCyclics & InstantiatedNonCyclics> = {
|
|
17
15
|
[Key in keyof InstantiatedModule]: InstantiatedModule[Key];
|
|
18
16
|
} & {};
|
|
19
|
-
export type TModuleInstantiate<Context extends TProperties, _State extends TState,
|
|
20
|
-
export declare function ModuleInstantiate<Context extends TProperties, State extends TState,
|
|
17
|
+
export type TModuleInstantiate<Context extends TProperties, _State extends TState, Declarations extends TProperties, InstantiatedModule extends TProperties = TInstantiateModule<Context, Declarations>> = InstantiatedModule;
|
|
18
|
+
export declare function ModuleInstantiate<Context extends TProperties, State extends TState, Declarations extends TProperties>(context: Context, _state: State, declarations: Declarations, options: TSchemaOptions): TModuleInstantiate<Context, State, Declarations>;
|
|
21
19
|
export {};
|
|
@@ -2,33 +2,35 @@
|
|
|
2
2
|
// deno-fmt-ignore-file
|
|
3
3
|
import { Guard } from '../../../guard/index.mjs';
|
|
4
4
|
import { Memory } from '../../../system/memory/index.mjs';
|
|
5
|
+
import { State } from '../instantiate.mjs';
|
|
5
6
|
// ------------------------------------------------------------------
|
|
6
7
|
// Module: Instantiation Infrastructure
|
|
7
8
|
// ------------------------------------------------------------------
|
|
8
9
|
import { CyclicCandidates } from '../cyclic/candidates.mjs';
|
|
9
10
|
import { InstantiateCyclic } from '../cyclic/instantiate.mjs';
|
|
10
11
|
import { InstantiateType } from '../instantiate.mjs';
|
|
11
|
-
function InstantiateCyclics(context, cyclicKeys) {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
function InstantiateCyclics(context, declarations, cyclicKeys) {
|
|
13
|
+
const declarationContext = Memory.Assign(context, declarations);
|
|
14
|
+
const declarationKeys = Guard.Keys(declarations).filter(key => cyclicKeys.includes(key));
|
|
15
|
+
return declarationKeys.reduce((result, key) => {
|
|
16
|
+
return { ...result, [key]: InstantiateCyclic(declarationContext, key, declarations[key]) };
|
|
15
17
|
}, {});
|
|
16
18
|
}
|
|
17
|
-
function InstantiateNonCyclics(context, cyclicKeys) {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
function InstantiateNonCyclics(context, declarations, cyclicKeys) {
|
|
20
|
+
const declarationContext = Memory.Assign(context, declarations);
|
|
21
|
+
const declarationKeys = Guard.Keys(declarations).filter(key => !cyclicKeys.includes(key));
|
|
22
|
+
return declarationKeys.reduce((result, key) => {
|
|
23
|
+
return { ...result, [key]: InstantiateType(declarationContext, State([], []), declarations[key]) };
|
|
21
24
|
}, {});
|
|
22
25
|
}
|
|
23
|
-
function InstantiateModule(context, options) {
|
|
24
|
-
const cyclicCandidates = CyclicCandidates(
|
|
25
|
-
const instantiatedCyclics = InstantiateCyclics(context, cyclicCandidates);
|
|
26
|
-
const instantiatedNonCyclics = InstantiateNonCyclics(context, cyclicCandidates);
|
|
26
|
+
function InstantiateModule(context, declarations, options) {
|
|
27
|
+
const cyclicCandidates = CyclicCandidates(declarations);
|
|
28
|
+
const instantiatedCyclics = InstantiateCyclics(context, declarations, cyclicCandidates);
|
|
29
|
+
const instantiatedNonCyclics = InstantiateNonCyclics(context, declarations, cyclicCandidates);
|
|
27
30
|
const instantiatedModule = { ...instantiatedCyclics, ...instantiatedNonCyclics };
|
|
28
31
|
return Memory.Update(instantiatedModule, {}, options);
|
|
29
32
|
}
|
|
30
|
-
export function ModuleInstantiate(context, _state,
|
|
31
|
-
const
|
|
32
|
-
const instantiatedModule = InstantiateModule(moduleContext, options);
|
|
33
|
+
export function ModuleInstantiate(context, _state, declarations, options) {
|
|
34
|
+
const instantiatedModule = InstantiateModule(context, declarations, options);
|
|
33
35
|
return instantiatedModule;
|
|
34
36
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type TSchema } from '../../types/schema.mjs';
|
|
2
|
+
import { type TFromType } from './from_type.mjs';
|
|
3
|
+
import { type TEvaluateDependent } from '../evaluate/evaluate.mjs';
|
|
4
|
+
export type TFromDependent<If extends TSchema, Then extends TSchema, Else extends TSchema, Evaluated extends TSchema = TEvaluateDependent<If, Then, Else>, Result extends TSchema = TFromType<Evaluated>> = Result;
|
|
5
|
+
export declare function FromDependent<If extends TSchema, Then extends TSchema, Else extends TSchema>(if_: If, then_: Then, else_: Else): TFromDependent<If, Then, Else>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { FromType } from './from_type.mjs';
|
|
3
|
+
import { EvaluateDependent } from '../evaluate/evaluate.mjs';
|
|
4
|
+
export function FromDependent(if_, then_, else_) {
|
|
5
|
+
const evaluated = EvaluateDependent(if_, then_, else_);
|
|
6
|
+
const result = FromType(evaluated);
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { type TSchema } from '../../types/schema.mjs';
|
|
2
2
|
import { type TCyclic } from '../../types/cyclic.mjs';
|
|
3
|
+
import { type TDependent } from '../../types/dependent.mjs';
|
|
3
4
|
import { type TIntersect } from '../../types/intersect.mjs';
|
|
4
5
|
import { type TProperties } from '../../types/properties.mjs';
|
|
5
6
|
import { type TObject } from '../../types/object.mjs';
|
|
6
7
|
import { type TTuple } from '../../types/tuple.mjs';
|
|
7
8
|
import { type TUnion } from '../../types/union.mjs';
|
|
8
9
|
import { type TFromCyclic } from './from_cyclic.mjs';
|
|
10
|
+
import { type TFromDependent } from './from_dependent.mjs';
|
|
9
11
|
import { type TFromIntersect } from './from_intersect.mjs';
|
|
10
12
|
import { type TFromObject } from './from_object.mjs';
|
|
11
13
|
import { type TFromTuple } from './from_tuple.mjs';
|
|
12
14
|
import { type TFromUnion } from './from_union.mjs';
|
|
13
|
-
export type TFromType<Type extends TSchema, Result extends TProperties = (Type extends TCyclic<infer Defs extends TProperties, infer Ref extends string> ? TFromCyclic<Defs, Ref> : Type extends TIntersect<infer Types extends TSchema[]> ? TFromIntersect<Types> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : Type extends TTuple<infer Types extends TSchema[]> ? TFromTuple<Types> : Type extends TObject<infer Properties extends TProperties> ? TFromObject<Properties> : {})> = Result;
|
|
15
|
+
export type TFromType<Type extends TSchema, Result extends TProperties = (Type extends TCyclic<infer Defs extends TProperties, infer Ref extends string> ? TFromCyclic<Defs, Ref> : Type extends TDependent<infer If extends TSchema, infer Then extends TSchema, infer Else extends TSchema> ? TFromDependent<If, Then, Else> : Type extends TIntersect<infer Types extends TSchema[]> ? TFromIntersect<Types> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : Type extends TTuple<infer Types extends TSchema[]> ? TFromTuple<Types> : Type extends TObject<infer Properties extends TProperties> ? TFromObject<Properties> : {})> = Result;
|
|
14
16
|
export declare function FromType<Type extends TSchema>(type: Type): TFromType<Type>;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
// deno-lint-ignore-file ban-types
|
|
2
2
|
// deno-fmt-ignore-file
|
|
3
3
|
import { IsCyclic } from '../../types/cyclic.mjs';
|
|
4
|
+
import { IsDependent } from '../../types/dependent.mjs';
|
|
4
5
|
import { IsIntersect } from '../../types/intersect.mjs';
|
|
5
6
|
import { IsObject } from '../../types/object.mjs';
|
|
6
7
|
import { IsTuple } from '../../types/tuple.mjs';
|
|
7
8
|
import { IsUnion } from '../../types/union.mjs';
|
|
8
9
|
import { FromCyclic } from './from_cyclic.mjs';
|
|
10
|
+
import { FromDependent } from './from_dependent.mjs';
|
|
9
11
|
import { FromIntersect } from './from_intersect.mjs';
|
|
10
12
|
import { FromObject } from './from_object.mjs';
|
|
11
13
|
import { FromTuple } from './from_tuple.mjs';
|
|
12
14
|
import { FromUnion } from './from_union.mjs';
|
|
13
15
|
export function FromType(type) {
|
|
14
16
|
return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
IsDependent(type) ? FromDependent(type.if, type.then, type.else) :
|
|
18
|
+
IsIntersect(type) ? FromIntersect(type.allOf) :
|
|
19
|
+
IsUnion(type) ? FromUnion(type.anyOf) :
|
|
20
|
+
IsTuple(type) ? FromTuple(type.items) :
|
|
21
|
+
IsObject(type) ? FromObject(type.properties) :
|
|
22
|
+
{});
|
|
20
23
|
}
|
|
@@ -11,9 +11,9 @@ function CollapseUnionProperties(left, right) {
|
|
|
11
11
|
return result;
|
|
12
12
|
}
|
|
13
13
|
function ReduceVariants(types, result) {
|
|
14
|
-
return Guard.
|
|
14
|
+
return Guard.ShiftLeft(types, (left, right) => ReduceVariants(right, CollapseUnionProperties(result, FromType(left))), () => result);
|
|
15
15
|
}
|
|
16
16
|
export function FromUnion(types) {
|
|
17
|
-
return Guard.
|
|
17
|
+
return Guard.ShiftLeft(types, (left, right) => ReduceVariants(right, FromType(left)), () => Unreachable());
|
|
18
18
|
}
|
|
19
19
|
// deno-coverage-ignore-stop
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../../types/properties.mjs';
|
|
3
|
+
import { type TOptional } from '../../types/_optional.mjs';
|
|
4
|
+
import { type TState, type TInstantiateType } from '../instantiate.mjs';
|
|
5
|
+
type TAddOptionalOperation<Type extends TSchema, Result extends TSchema = `~optional` extends keyof Type ? Type : TOptional<Type>> = Result;
|
|
6
|
+
export type TAddOptionalAction<Type extends TSchema, Result extends TSchema = TAddOptionalOperation<Type>> = Result;
|
|
7
|
+
export declare function AddOptionalAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TAddOptionalAction<Type>;
|
|
8
|
+
export type TAddOptionalInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiateType extends TSchema = TInstantiateType<Context, State, Type>> = TAddOptionalAction<InstantiateType>;
|
|
9
|
+
export declare function AddOptionalInstantiate<Context extends TProperties, State extends TState, Type extends TSchema>(context: Context, state: State, type: Type, options: TSchemaOptions): TAddOptionalInstantiate<Context, State, Type>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Memory } from '../../../system/memory/index.mjs';
|
|
3
|
+
import { InstantiateType } from '../instantiate.mjs';
|
|
4
|
+
function AddOptionalOperation(type) {
|
|
5
|
+
return Memory.Update(type, { '~optional': true }, {});
|
|
6
|
+
}
|
|
7
|
+
export function AddOptionalAction(type, options) {
|
|
8
|
+
const result = Memory.Update(AddOptionalOperation(type), {}, options);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
export function AddOptionalInstantiate(context, state, type, options) {
|
|
12
|
+
const instantiatedType = InstantiateType(context, state, type);
|
|
13
|
+
return AddOptionalAction(instantiatedType, options);
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../../types/properties.mjs';
|
|
3
|
+
import { type TOptional } from '../../types/_optional.mjs';
|
|
4
|
+
import { type TState, type TInstantiateType } from '../instantiate.mjs';
|
|
5
|
+
type TRemoveOptionalOperation<Type extends TSchema, Result extends TSchema = Type extends TOptional<infer Type extends TSchema> ? TRemoveOptionalOperation<Type> : Type> = Result;
|
|
6
|
+
export type TRemoveOptionalAction<Type extends TSchema, Result extends TSchema = TRemoveOptionalOperation<Type>> = Result;
|
|
7
|
+
export declare function RemoveOptionalAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TRemoveOptionalAction<Type>;
|
|
8
|
+
export type TRemoveOptionalInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiateType extends TSchema = TInstantiateType<Context, State, Type>> = TRemoveOptionalAction<InstantiateType>;
|
|
9
|
+
export declare function RemoveOptionalInstantiate<Context extends TProperties, State extends TState, Type extends TSchema>(context: Context, state: State, type: Type, options: TSchemaOptions): TRemoveOptionalInstantiate<Context, State, Type>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Memory } from '../../../system/memory/index.mjs';
|
|
3
|
+
import { InstantiateType } from '../instantiate.mjs';
|
|
4
|
+
function RemoveOptionalOperation(type) {
|
|
5
|
+
return Memory.Discard(type, ['~optional']);
|
|
6
|
+
}
|
|
7
|
+
export function RemoveOptionalAction(type, options) {
|
|
8
|
+
const result = Memory.Update(RemoveOptionalOperation(type), {}, options);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
export function RemoveOptionalInstantiate(context, state, type, options) {
|
|
12
|
+
const instantiatedType = InstantiateType(context, state, type);
|
|
13
|
+
return RemoveOptionalAction(instantiatedType, options);
|
|
14
|
+
}
|
|
@@ -3,11 +3,10 @@ import { type TProperties } from '../../types/properties.mjs';
|
|
|
3
3
|
import { type TFunction } from '../../types/function.mjs';
|
|
4
4
|
import { type TTuple } from '../../types/tuple.mjs';
|
|
5
5
|
import { type TParametersDeferred } from '../../action/parameters.mjs';
|
|
6
|
-
import { type
|
|
6
|
+
import { type TInstantiateType, type TCanInstantiate } from '../instantiate.mjs';
|
|
7
7
|
import { type TInstantiateElements } from '../instantiate.mjs';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}, Parameters>, Result extends TSchema = TTuple<InstantiatedParameters>> = Result;
|
|
8
|
+
import { type TState } from '../instantiate.mjs';
|
|
9
|
+
type TParametersOperation<Type extends TSchema, Parameters extends TSchema[] = Type extends TFunction ? Type['parameters'] : [], InstantiatedParameters extends TSchema[] = TInstantiateElements<{}, TState<[], []>, Parameters>, Result extends TSchema = TTuple<InstantiatedParameters>> = Result;
|
|
11
10
|
export type TParametersAction<Type extends TSchema, Result extends TSchema = TCanInstantiate<[Type]> extends true ? TParametersOperation<Type> : TParametersDeferred<Type>> = Result;
|
|
12
11
|
export declare function ParametersAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TParametersAction<Type>;
|
|
13
12
|
export type TParametersInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiatedType extends TSchema = TInstantiateType<Context, State, Type>> = TParametersAction<InstantiatedType>;
|
|
@@ -6,9 +6,10 @@ import { Tuple } from '../../types/tuple.mjs';
|
|
|
6
6
|
import { ParametersDeferred } from '../../action/parameters.mjs';
|
|
7
7
|
import { InstantiateType, CanInstantiate } from '../instantiate.mjs';
|
|
8
8
|
import { InstantiateElements } from '../instantiate.mjs';
|
|
9
|
+
import { State } from '../instantiate.mjs';
|
|
9
10
|
function ParametersOperation(type) {
|
|
10
11
|
const parameters = IsFunction(type) ? type['parameters'] : [];
|
|
11
|
-
const instantiatedParameters = InstantiateElements({},
|
|
12
|
+
const instantiatedParameters = InstantiateElements({}, State([], []), parameters);
|
|
12
13
|
const result = Tuple(instantiatedParameters);
|
|
13
14
|
return result;
|
|
14
15
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type TSchema } from '../../types/schema.mjs';
|
|
2
|
+
import { type TFromType } from './from_type.mjs';
|
|
3
|
+
import { type TEvaluateDependent } from '../evaluate/evaluate.mjs';
|
|
4
|
+
export type TFromDependent<If extends TSchema, Then extends TSchema, Else extends TSchema, Evaluated extends TSchema = TEvaluateDependent<If, Then, Else>, Result extends TSchema = TFromType<Evaluated>> = Result;
|
|
5
|
+
export declare function FromDependent<If extends TSchema, Then extends TSchema, Else extends TSchema>(if_: If, then_: Then, else_: Else): TFromDependent<If, Then, Else>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { FromType } from './from_type.mjs';
|
|
3
|
+
import { EvaluateDependent } from '../evaluate/evaluate.mjs';
|
|
4
|
+
export function FromDependent(if_, then_, else_) {
|
|
5
|
+
const evaluated = EvaluateDependent(if_, then_, else_);
|
|
6
|
+
const result = FromType(evaluated);
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type TSchema } from '../../types/schema.mjs';
|
|
2
2
|
import { type TFromType } from './from_type.mjs';
|
|
3
3
|
import { type TEvaluateIntersect } from '../evaluate/evaluate.mjs';
|
|
4
|
-
export type TFromIntersect<Types extends TSchema[],
|
|
4
|
+
export type TFromIntersect<Types extends TSchema[], Evaluated extends TSchema = TEvaluateIntersect<Types>, Result extends TSchema = TFromType<Evaluated>> = Result;
|
|
5
5
|
export declare function FromIntersect<Types extends TSchema[]>(types: [...Types]): TFromIntersect<Types>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { FromType } from './from_type.mjs';
|
|
3
3
|
import { EvaluateIntersect } from '../evaluate/evaluate.mjs';
|
|
4
4
|
export function FromIntersect(types) {
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const evaluated = EvaluateIntersect(types);
|
|
6
|
+
const result = FromType(evaluated);
|
|
7
|
+
return result;
|
|
7
8
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type TSchema } from '../../types/schema.mjs';
|
|
2
2
|
import { type TObject } from '../../types/object.mjs';
|
|
3
|
-
import { type
|
|
3
|
+
import { type TAddOptional } from '../../action/_add_optional.mjs';
|
|
4
4
|
import { type TProperties } from '../../types/properties.mjs';
|
|
5
5
|
export type TFromObject<Properties extends TProperties, Mapped extends TProperties = {
|
|
6
|
-
[Key in keyof Properties]:
|
|
6
|
+
[Key in keyof Properties]: TAddOptional<Properties[Key]>;
|
|
7
7
|
}, Result extends TSchema = TObject<Mapped>> = Result;
|
|
8
8
|
export declare function FromObject<Properties extends TProperties>(properties: Properties): TFromObject<Properties>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Guard } from '../../../guard/index.mjs';
|
|
3
3
|
import { Object } from '../../types/object.mjs';
|
|
4
|
-
import {
|
|
4
|
+
import { AddOptional } from '../../action/_add_optional.mjs';
|
|
5
5
|
export function FromObject(properties) {
|
|
6
6
|
const mapped = Guard.Keys(properties).reduce((result, left) => {
|
|
7
|
-
return { ...result, [left]:
|
|
7
|
+
return { ...result, [left]: AddOptional(properties[left]) };
|
|
8
8
|
}, {});
|
|
9
9
|
const result = Object(mapped);
|
|
10
10
|
return result;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type TSchema } from '../../types/schema.mjs';
|
|
2
2
|
import { type TCyclic } from '../../types/cyclic.mjs';
|
|
3
|
+
import { type TDependent } from '../../types/dependent.mjs';
|
|
3
4
|
import { type TIntersect } from '../../types/intersect.mjs';
|
|
4
5
|
import { type TObject } from '../../types/object.mjs';
|
|
5
6
|
import { type TProperties } from '../../types/properties.mjs';
|
|
6
7
|
import { type TUnion } from '../../types/union.mjs';
|
|
7
8
|
import { type TFromCyclic } from './from_cyclic.mjs';
|
|
9
|
+
import { type TFromDependent } from './from_dependent.mjs';
|
|
8
10
|
import { type TFromIntersect } from './from_intersect.mjs';
|
|
9
11
|
import { type TFromUnion } from './from_union.mjs';
|
|
10
12
|
import { type TFromObject } from './from_object.mjs';
|
|
11
|
-
export type TFromType<Type extends TSchema> = (Type extends TCyclic<infer Defs extends TProperties, infer Ref extends string> ? TFromCyclic<Defs, Ref> : Type extends TIntersect<infer Types extends TSchema[]> ? TFromIntersect<Types> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : Type extends TObject<infer Properties extends TProperties> ? TFromObject<Properties> : TObject<{}>);
|
|
13
|
+
export type TFromType<Type extends TSchema> = (Type extends TCyclic<infer Defs extends TProperties, infer Ref extends string> ? TFromCyclic<Defs, Ref> : Type extends TDependent<infer If extends TSchema, infer Then extends TSchema, infer Else extends TSchema> ? TFromDependent<If, Then, Else> : Type extends TIntersect<infer Types extends TSchema[]> ? TFromIntersect<Types> : Type extends TUnion<infer Types extends TSchema[]> ? TFromUnion<Types> : Type extends TObject<infer Properties extends TProperties> ? TFromObject<Properties> : TObject<{}>);
|
|
12
14
|
export declare function FromType<Type extends TSchema>(type: Type): TFromType<Type>;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
// deno-lint-ignore-file ban-types
|
|
2
2
|
// deno-fmt-ignore-file
|
|
3
3
|
import { IsCyclic } from '../../types/cyclic.mjs';
|
|
4
|
+
import { IsDependent } from '../../types/dependent.mjs';
|
|
4
5
|
import { IsIntersect } from '../../types/intersect.mjs';
|
|
5
6
|
import { Object, IsObject } from '../../types/object.mjs';
|
|
6
7
|
import { IsUnion } from '../../types/union.mjs';
|
|
7
8
|
import { FromCyclic } from './from_cyclic.mjs';
|
|
9
|
+
import { FromDependent } from './from_dependent.mjs';
|
|
8
10
|
import { FromIntersect } from './from_intersect.mjs';
|
|
9
11
|
import { FromUnion } from './from_union.mjs';
|
|
10
12
|
import { FromObject } from './from_object.mjs';
|
|
11
13
|
export function FromType(type) {
|
|
12
14
|
return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
IsDependent(type) ? FromDependent(type.if, type.then, type.else) :
|
|
16
|
+
IsIntersect(type) ? FromIntersect(type.allOf) :
|
|
17
|
+
IsUnion(type) ? FromUnion(type.anyOf) :
|
|
18
|
+
IsObject(type) ? FromObject(type.properties) :
|
|
19
|
+
Object({}));
|
|
17
20
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './priority.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './priority.mjs';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type TSchema } from '../../types/schema.mjs';
|
|
2
|
+
import { type TCompare, type TCompareResult } from '../evaluate/compare.mjs';
|
|
3
|
+
type TComparer<Left extends TSchema, Right extends TSchema, CompareResult extends TCompareResult = TCompare<Left, Right>, Result extends 0 | 1 = (CompareResult extends 'right-inside' ? 1 : CompareResult extends 'disjoint' ? 1 : 0)> = Result;
|
|
4
|
+
type TInsert<Type extends TSchema, Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TComparer<Type, Left> extends 1 ? TInsert<Type, Right, [...Result, Left]> : [...Result, Type, ...Types] : [...Result, Type]);
|
|
5
|
+
type TSort<Types extends TSchema[], Result extends TSchema[] = []> = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TSort<Right, TInsert<Left, Result>> : Result);
|
|
6
|
+
/**
|
|
7
|
+
* Priority sorts types in sequence of narrowest to broadest using an Insertion Sort
|
|
8
|
+
* algorithm. This function is typically used to sequence types for union variant
|
|
9
|
+
* checks to ensure that values are checked against the most narrow types before
|
|
10
|
+
* the broadest, which in turn helps ensure order-independent Union checking.
|
|
11
|
+
*/
|
|
12
|
+
export type TPriority<Types extends TSchema[], Result extends TSchema[] = TSort<Types>> = Result;
|
|
13
|
+
/**
|
|
14
|
+
* Priority sorts types in sequence of narrowest to broadest using an Insertion Sort
|
|
15
|
+
* algorithm. This function is typically used to sequence types for union variant
|
|
16
|
+
* checks to ensure that values are checked against the most narrow types before
|
|
17
|
+
* the broadest, which in turn helps ensure order-independent Union checking.
|
|
18
|
+
*/
|
|
19
|
+
export declare function Priority<Types extends TSchema[]>(types: [...Types]): TPriority<Types>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Guard } from '../../../guard/index.mjs';
|
|
3
|
+
import { Compare } from '../evaluate/compare.mjs';
|
|
4
|
+
function Comparer(left, right) {
|
|
5
|
+
const compareResult = Compare(left, right);
|
|
6
|
+
const result = (Guard.IsEqual(compareResult, 'right-inside') ? 1 :
|
|
7
|
+
Guard.IsEqual(compareResult, 'disjoint') ? 1 :
|
|
8
|
+
0);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
function Insert(type, types, result = []) {
|
|
12
|
+
return Guard.ShiftLeft(types, (left, right) => Guard.IsEqual(Comparer(type, left), 1)
|
|
13
|
+
? Insert(type, right, [...result, left])
|
|
14
|
+
: [...result, type, ...types], () => [...result, type]);
|
|
15
|
+
}
|
|
16
|
+
function Sort(types, result = []) {
|
|
17
|
+
return Guard.ShiftLeft(types, (left, right) => Sort(right, Insert(left, result)), () => result);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Priority sorts types in sequence of narrowest to broadest using an Insertion Sort
|
|
21
|
+
* algorithm. This function is typically used to sequence types for union variant
|
|
22
|
+
* checks to ensure that values are checked against the most narrow types before
|
|
23
|
+
* the broadest, which in turn helps ensure order-independent Union checking.
|
|
24
|
+
*/
|
|
25
|
+
export function Priority(types) {
|
|
26
|
+
const result = Sort(types);
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type TSchema, type TSchemaOptions } from '../../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../../types/properties.mjs';
|
|
3
|
+
import { type TReadonly } from '../../types/_readonly.mjs';
|
|
4
|
+
import { type TState, type TInstantiateType } from '../instantiate.mjs';
|
|
5
|
+
type TAddReadonlyOperation<Type extends TSchema, Result extends TSchema = `~readonly` extends keyof Type ? Type : TReadonly<Type>> = Result;
|
|
6
|
+
export type TAddReadonlyAction<Type extends TSchema, Result extends TSchema = TAddReadonlyOperation<Type>> = Result;
|
|
7
|
+
export declare function AddReadonlyAction<Type extends TSchema>(type: Type, options: TSchemaOptions): TAddReadonlyAction<Type>;
|
|
8
|
+
export type TAddReadonlyInstantiate<Context extends TProperties, State extends TState, Type extends TSchema, InstantiateType extends TSchema = TInstantiateType<Context, State, Type>> = TAddReadonlyAction<InstantiateType>;
|
|
9
|
+
export declare function AddReadonlyInstantiate<Context extends TProperties, State extends TState, Type extends TSchema>(context: Context, state: State, type: Type, options: TSchemaOptions): TAddReadonlyInstantiate<Context, State, Type>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Memory } from '../../../system/memory/index.mjs';
|
|
3
|
+
import { InstantiateType } from '../instantiate.mjs';
|
|
4
|
+
function AddReadonlyOperation(type) {
|
|
5
|
+
return Memory.Update(type, { '~readonly': true }, {});
|
|
6
|
+
}
|
|
7
|
+
export function AddReadonlyAction(type, options) {
|
|
8
|
+
const result = Memory.Update(AddReadonlyOperation(type), {}, options);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
export function AddReadonlyInstantiate(context, state, type, options) {
|
|
12
|
+
const instantiatedType = InstantiateType(context, state, type);
|
|
13
|
+
return AddReadonlyAction(instantiatedType, options);
|
|
14
|
+
}
|