typebox 0.0.1 → 1.0.0-rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/compile/code.d.mts +12 -0
- package/build/compile/code.mjs +65 -0
- package/build/compile/compile.d.mts +6 -0
- package/build/compile/compile.mjs +11 -0
- package/build/compile/index.d.mts +12 -0
- package/build/compile/index.mjs +13 -0
- package/build/compile/validator.d.mts +30 -0
- package/build/compile/validator.mjs +83 -0
- package/build/error/errors.d.mts +213 -0
- package/build/error/errors.mjs +1 -0
- package/build/error/index.d.mts +1 -0
- package/build/error/index.mjs +1 -0
- package/build/format/_registry.d.mts +15 -0
- package/build/format/_registry.mjs +96 -0
- package/build/format/date-time.d.mts +6 -0
- package/build/format/date-time.mjs +11 -0
- package/build/format/date.d.mts +6 -0
- package/build/format/date.mjs +19 -0
- package/build/format/duration.d.mts +5 -0
- package/build/format/duration.mjs +8 -0
- package/build/format/email.d.mts +2 -0
- package/build/format/email.mjs +5 -0
- package/build/format/format.d.mts +22 -0
- package/build/format/format.mjs +22 -0
- package/build/format/hostname.d.mts +2 -0
- package/build/format/hostname.mjs +5 -0
- package/build/format/idn-email.d.mts +2 -0
- package/build/format/idn-email.mjs +5 -0
- package/build/format/idn-hostname.d.mts +5 -0
- package/build/format/idn-hostname.mjs +128 -0
- package/build/format/index.d.mts +4 -0
- package/build/format/index.mjs +4 -0
- package/build/format/ipv4.d.mts +6 -0
- package/build/format/ipv4.mjs +9 -0
- package/build/format/ipv6.d.mts +6 -0
- package/build/format/ipv6.mjs +9 -0
- package/build/format/iri-reference.d.mts +5 -0
- package/build/format/iri-reference.mjs +59 -0
- package/build/format/iri.d.mts +5 -0
- package/build/format/iri.mjs +13 -0
- package/build/format/json-pointer-uri-fragment.d.mts +6 -0
- package/build/format/json-pointer-uri-fragment.mjs +9 -0
- package/build/format/json-pointer.d.mts +6 -0
- package/build/format/json-pointer.mjs +9 -0
- package/build/format/regex.d.mts +6 -0
- package/build/format/regex.mjs +17 -0
- package/build/format/relative-json-pointer.d.mts +6 -0
- package/build/format/relative-json-pointer.mjs +9 -0
- package/build/format/time.d.mts +5 -0
- package/build/format/time.mjs +27 -0
- package/build/format/uri-reference.d.mts +6 -0
- package/build/format/uri-reference.mjs +9 -0
- package/build/format/uri-template.d.mts +6 -0
- package/build/format/uri-template.mjs +10 -0
- package/build/format/uri.d.mts +6 -0
- package/build/format/uri.mjs +9 -0
- package/build/format/url.d.mts +6 -0
- package/build/format/url.mjs +9 -0
- package/build/format/uuid.d.mts +6 -0
- package/build/format/uuid.mjs +9 -0
- package/build/guard/emit.d.mts +56 -0
- package/build/guard/emit.mjs +183 -0
- package/build/guard/globals.d.mts +35 -0
- package/build/guard/globals.mjs +90 -0
- package/build/guard/guard.d.mts +57 -0
- package/build/guard/guard.mjs +180 -0
- package/build/guard/index.d.mts +6 -0
- package/build/guard/index.mjs +6 -0
- package/build/guard/native.d.mts +20 -0
- package/build/guard/native.mjs +60 -0
- package/build/index.d.mts +8 -0
- package/build/index.mjs +14 -0
- package/build/schema/build.d.mts +35 -0
- package/build/schema/build.mjs +97 -0
- package/build/schema/check.d.mts +5 -0
- package/build/schema/check.mjs +12 -0
- package/build/schema/deref/deref.d.mts +4 -0
- package/build/schema/deref/deref.mjs +77 -0
- package/build/schema/deref/index.d.mts +1 -0
- package/build/schema/deref/index.mjs +1 -0
- package/build/schema/engine/_context.d.mts +42 -0
- package/build/schema/engine/_context.mjs +121 -0
- package/build/schema/engine/_externals.d.mts +9 -0
- package/build/schema/engine/_externals.mjs +34 -0
- package/build/schema/engine/_functions.d.mts +5 -0
- package/build/schema/engine/_functions.mjs +46 -0
- package/build/schema/engine/_reducer.d.mts +3 -0
- package/build/schema/engine/_reducer.mjs +45 -0
- package/build/schema/engine/_refine.d.mts +5 -0
- package/build/schema/engine/_refine.mjs +29 -0
- package/build/schema/engine/_standard.d.mts +5 -0
- package/build/schema/engine/_standard.mjs +27 -0
- package/build/schema/engine/additionalItems.d.mts +5 -0
- package/build/schema/engine/additionalItems.mjs +48 -0
- package/build/schema/engine/additionalProperties.d.mts +8 -0
- package/build/schema/engine/additionalProperties.mjs +103 -0
- package/build/schema/engine/allOf.d.mts +5 -0
- package/build/schema/engine/allOf.mjs +47 -0
- package/build/schema/engine/anyOf.d.mts +5 -0
- package/build/schema/engine/anyOf.mjs +52 -0
- package/build/schema/engine/boolean.d.mts +4 -0
- package/build/schema/engine/boolean.mjs +25 -0
- package/build/schema/engine/const.d.mts +5 -0
- package/build/schema/engine/const.mjs +30 -0
- package/build/schema/engine/contains.d.mts +5 -0
- package/build/schema/engine/contains.mjs +40 -0
- package/build/schema/engine/dependencies.d.mts +5 -0
- package/build/schema/engine/dependencies.mjs +45 -0
- package/build/schema/engine/dependentRequired.d.mts +5 -0
- package/build/schema/engine/dependentRequired.mjs +40 -0
- package/build/schema/engine/dependentSchemas.d.mts +5 -0
- package/build/schema/engine/dependentSchemas.mjs +38 -0
- package/build/schema/engine/enum.d.mts +5 -0
- package/build/schema/engine/enum.mjs +33 -0
- package/build/schema/engine/exclusiveMaximum.d.mts +5 -0
- package/build/schema/engine/exclusiveMaximum.mjs +25 -0
- package/build/schema/engine/exclusiveMinimum.d.mts +5 -0
- package/build/schema/engine/exclusiveMinimum.mjs +25 -0
- package/build/schema/engine/format.d.mts +5 -0
- package/build/schema/engine/format.mjs +26 -0
- package/build/schema/engine/if.d.mts +5 -0
- package/build/schema/engine/if.mjs +47 -0
- package/build/schema/engine/index.d.mts +47 -0
- package/build/schema/engine/index.mjs +53 -0
- package/build/schema/engine/items.d.mts +5 -0
- package/build/schema/engine/items.mjs +65 -0
- package/build/schema/engine/maxContains.d.mts +5 -0
- package/build/schema/engine/maxContains.mjs +40 -0
- package/build/schema/engine/maxItems.d.mts +5 -0
- package/build/schema/engine/maxItems.mjs +25 -0
- package/build/schema/engine/maxLength.d.mts +5 -0
- package/build/schema/engine/maxLength.mjs +25 -0
- package/build/schema/engine/maxProperties.d.mts +5 -0
- package/build/schema/engine/maxProperties.mjs +25 -0
- package/build/schema/engine/maximum.d.mts +5 -0
- package/build/schema/engine/maximum.mjs +25 -0
- package/build/schema/engine/minContains.d.mts +5 -0
- package/build/schema/engine/minContains.mjs +39 -0
- package/build/schema/engine/minItems.d.mts +5 -0
- package/build/schema/engine/minItems.mjs +25 -0
- package/build/schema/engine/minLength.d.mts +5 -0
- package/build/schema/engine/minLength.mjs +25 -0
- package/build/schema/engine/minProperties.d.mts +5 -0
- package/build/schema/engine/minProperties.mjs +25 -0
- package/build/schema/engine/minimum.d.mts +5 -0
- package/build/schema/engine/minimum.mjs +25 -0
- package/build/schema/engine/multipleOf.d.mts +5 -0
- package/build/schema/engine/multipleOf.mjs +25 -0
- package/build/schema/engine/not.d.mts +5 -0
- package/build/schema/engine/not.mjs +36 -0
- package/build/schema/engine/oneOf.d.mts +5 -0
- package/build/schema/engine/oneOf.mjs +58 -0
- package/build/schema/engine/pattern.d.mts +5 -0
- package/build/schema/engine/pattern.mjs +28 -0
- package/build/schema/engine/patternProperties.d.mts +5 -0
- package/build/schema/engine/patternProperties.mjs +42 -0
- package/build/schema/engine/prefixItems.d.mts +5 -0
- package/build/schema/engine/prefixItems.mjs +35 -0
- package/build/schema/engine/properties.d.mts +5 -0
- package/build/schema/engine/properties.mjs +41 -0
- package/build/schema/engine/propertyNames.d.mts +5 -0
- package/build/schema/engine/propertyNames.mjs +37 -0
- package/build/schema/engine/ref.d.mts +5 -0
- package/build/schema/engine/ref.mjs +43 -0
- package/build/schema/engine/required.d.mts +5 -0
- package/build/schema/engine/required.mjs +32 -0
- package/build/schema/engine/schema.d.mts +5 -0
- package/build/schema/engine/schema.mjs +322 -0
- package/build/schema/engine/type.d.mts +5 -0
- package/build/schema/engine/type.mjs +74 -0
- package/build/schema/engine/unevaluatedItems.d.mts +5 -0
- package/build/schema/engine/unevaluatedItems.mjs +49 -0
- package/build/schema/engine/unevaluatedProperties.d.mts +5 -0
- package/build/schema/engine/unevaluatedProperties.mjs +49 -0
- package/build/schema/engine/uniqueItems.d.mts +5 -0
- package/build/schema/engine/uniqueItems.mjs +51 -0
- package/build/schema/errors.d.mts +6 -0
- package/build/schema/errors.mjs +24 -0
- package/build/schema/index.d.mts +16 -0
- package/build/schema/index.mjs +19 -0
- package/build/schema/schema.d.mts +5 -0
- package/build/schema/schema.mjs +5 -0
- package/build/schema/types/_refine.d.mts +13 -0
- package/build/schema/types/_refine.mjs +18 -0
- package/build/schema/types/_standard.d.mts +14 -0
- package/build/schema/types/_standard.mjs +19 -0
- package/build/schema/types/additionalItems.d.mts +9 -0
- package/build/schema/types/additionalItems.mjs +14 -0
- package/build/schema/types/additionalProperties.d.mts +9 -0
- package/build/schema/types/additionalProperties.mjs +14 -0
- package/build/schema/types/allOf.d.mts +9 -0
- package/build/schema/types/allOf.mjs +15 -0
- package/build/schema/types/anyOf.d.mts +9 -0
- package/build/schema/types/anyOf.mjs +15 -0
- package/build/schema/types/const.d.mts +9 -0
- package/build/schema/types/const.mjs +12 -0
- package/build/schema/types/contains.d.mts +9 -0
- package/build/schema/types/contains.mjs +14 -0
- package/build/schema/types/contentEncoding.d.mts +9 -0
- package/build/schema/types/contentEncoding.mjs +13 -0
- package/build/schema/types/contentMediaType.d.mts +9 -0
- package/build/schema/types/contentMediaType.mjs +13 -0
- package/build/schema/types/default.d.mts +9 -0
- package/build/schema/types/default.mjs +12 -0
- package/build/schema/types/defs.d.mts +6 -0
- package/build/schema/types/defs.mjs +12 -0
- package/build/schema/types/dependencies.d.mts +11 -0
- package/build/schema/types/dependencies.mjs +16 -0
- package/build/schema/types/dependentRequired.d.mts +9 -0
- package/build/schema/types/dependentRequired.mjs +15 -0
- package/build/schema/types/dependentSchemas.d.mts +9 -0
- package/build/schema/types/dependentSchemas.mjs +15 -0
- package/build/schema/types/else.d.mts +9 -0
- package/build/schema/types/else.mjs +14 -0
- package/build/schema/types/enum.d.mts +9 -0
- package/build/schema/types/enum.mjs +13 -0
- package/build/schema/types/exclusiveMaximum.d.mts +9 -0
- package/build/schema/types/exclusiveMaximum.mjs +13 -0
- package/build/schema/types/exclusiveMinimum.d.mts +9 -0
- package/build/schema/types/exclusiveMinimum.mjs +13 -0
- package/build/schema/types/format.d.mts +9 -0
- package/build/schema/types/format.mjs +13 -0
- package/build/schema/types/id.d.mts +9 -0
- package/build/schema/types/id.mjs +13 -0
- package/build/schema/types/if.d.mts +9 -0
- package/build/schema/types/if.mjs +14 -0
- package/build/schema/types/index.d.mts +51 -0
- package/build/schema/types/index.mjs +57 -0
- package/build/schema/types/items.d.mts +19 -0
- package/build/schema/types/items.mjs +26 -0
- package/build/schema/types/maxContains.d.mts +9 -0
- package/build/schema/types/maxContains.mjs +13 -0
- package/build/schema/types/maxItems.d.mts +9 -0
- package/build/schema/types/maxItems.mjs +13 -0
- package/build/schema/types/maxLength.d.mts +9 -0
- package/build/schema/types/maxLength.mjs +13 -0
- package/build/schema/types/maxProperties.d.mts +9 -0
- package/build/schema/types/maxProperties.mjs +13 -0
- package/build/schema/types/maximum.d.mts +9 -0
- package/build/schema/types/maximum.mjs +13 -0
- package/build/schema/types/minContains.d.mts +9 -0
- package/build/schema/types/minContains.mjs +13 -0
- package/build/schema/types/minItems.d.mts +9 -0
- package/build/schema/types/minItems.mjs +13 -0
- package/build/schema/types/minLength.d.mts +9 -0
- package/build/schema/types/minLength.mjs +13 -0
- package/build/schema/types/minProperties.d.mts +9 -0
- package/build/schema/types/minProperties.mjs +13 -0
- package/build/schema/types/minimum.d.mts +9 -0
- package/build/schema/types/minimum.mjs +13 -0
- package/build/schema/types/multipleOf.d.mts +9 -0
- package/build/schema/types/multipleOf.mjs +13 -0
- package/build/schema/types/not.d.mts +9 -0
- package/build/schema/types/not.mjs +14 -0
- package/build/schema/types/oneOf.d.mts +9 -0
- package/build/schema/types/oneOf.mjs +15 -0
- package/build/schema/types/pattern.d.mts +9 -0
- package/build/schema/types/pattern.mjs +14 -0
- package/build/schema/types/patternProperties.d.mts +9 -0
- package/build/schema/types/patternProperties.mjs +15 -0
- package/build/schema/types/prefixItems.d.mts +8 -0
- package/build/schema/types/prefixItems.mjs +14 -0
- package/build/schema/types/properties.d.mts +9 -0
- package/build/schema/types/properties.mjs +15 -0
- package/build/schema/types/propertyNames.d.mts +9 -0
- package/build/schema/types/propertyNames.mjs +15 -0
- package/build/schema/types/ref.d.mts +9 -0
- package/build/schema/types/ref.mjs +13 -0
- package/build/schema/types/required.d.mts +9 -0
- package/build/schema/types/required.mjs +14 -0
- package/build/schema/types/schema.d.mts +9 -0
- package/build/schema/types/schema.mjs +14 -0
- package/build/schema/types/static.d.mts +115 -0
- package/build/schema/types/static.mjs +2 -0
- package/build/schema/types/then.d.mts +9 -0
- package/build/schema/types/then.mjs +14 -0
- package/build/schema/types/type.d.mts +9 -0
- package/build/schema/types/type.mjs +15 -0
- package/build/schema/types/unevaluatedItems.d.mts +9 -0
- package/build/schema/types/unevaluatedItems.mjs +14 -0
- package/build/schema/types/unevaluatedProperties.d.mts +9 -0
- package/build/schema/types/unevaluatedProperties.mjs +14 -0
- package/build/schema/types/uniqueItems.d.mts +9 -0
- package/build/schema/types/uniqueItems.mjs +13 -0
- package/build/system/arguments/arguments.d.mts +5 -0
- package/build/system/arguments/arguments.mjs +9 -0
- package/build/system/arguments/index.d.mts +1 -0
- package/build/system/arguments/index.mjs +1 -0
- package/build/system/environment/can-evaluate.d.mts +2 -0
- package/build/system/environment/can-evaluate.mjs +26 -0
- package/build/system/environment/environment.d.mts +1 -0
- package/build/system/environment/environment.mjs +1 -0
- package/build/system/environment/index.d.mts +1 -0
- package/build/system/environment/index.mjs +1 -0
- package/build/system/hashing/hash.d.mts +4 -0
- package/build/system/hashing/hash.mjs +232 -0
- package/build/system/hashing/index.d.mts +1 -0
- package/build/system/hashing/index.mjs +1 -0
- package/build/system/index.d.mts +4 -0
- package/build/system/index.mjs +4 -0
- package/build/system/locale/_config.d.mts +7 -0
- package/build/system/locale/_config.mjs +15 -0
- package/build/system/locale/_locale.d.mts +40 -0
- package/build/system/locale/_locale.mjs +40 -0
- package/build/system/locale/ar_001.d.mts +3 -0
- package/build/system/locale/ar_001.mjs +41 -0
- package/build/system/locale/bn_BD.d.mts +3 -0
- package/build/system/locale/bn_BD.mjs +41 -0
- package/build/system/locale/cs_CZ.d.mts +3 -0
- package/build/system/locale/cs_CZ.mjs +41 -0
- package/build/system/locale/de_DE.d.mts +3 -0
- package/build/system/locale/de_DE.mjs +41 -0
- package/build/system/locale/el_GR.d.mts +3 -0
- package/build/system/locale/el_GR.mjs +41 -0
- package/build/system/locale/en_US.d.mts +3 -0
- package/build/system/locale/en_US.mjs +40 -0
- package/build/system/locale/es_419.d.mts +3 -0
- package/build/system/locale/es_419.mjs +41 -0
- package/build/system/locale/es_AR.d.mts +3 -0
- package/build/system/locale/es_AR.mjs +41 -0
- package/build/system/locale/es_ES.d.mts +3 -0
- package/build/system/locale/es_ES.mjs +41 -0
- package/build/system/locale/es_MX.d.mts +3 -0
- package/build/system/locale/es_MX.mjs +41 -0
- package/build/system/locale/fa_IR.d.mts +3 -0
- package/build/system/locale/fa_IR.mjs +41 -0
- package/build/system/locale/fil_PH.d.mts +3 -0
- package/build/system/locale/fil_PH.mjs +41 -0
- package/build/system/locale/fr_CA.d.mts +3 -0
- package/build/system/locale/fr_CA.mjs +41 -0
- package/build/system/locale/fr_FR.d.mts +3 -0
- package/build/system/locale/fr_FR.mjs +41 -0
- package/build/system/locale/ha_NG.d.mts +3 -0
- package/build/system/locale/ha_NG.mjs +41 -0
- package/build/system/locale/hi_IN.d.mts +3 -0
- package/build/system/locale/hi_IN.mjs +41 -0
- package/build/system/locale/hu_HU.d.mts +3 -0
- package/build/system/locale/hu_HU.mjs +41 -0
- package/build/system/locale/id_ID.d.mts +3 -0
- package/build/system/locale/id_ID.mjs +41 -0
- package/build/system/locale/index.d.mts +1 -0
- package/build/system/locale/index.mjs +1 -0
- package/build/system/locale/it_IT.d.mts +3 -0
- package/build/system/locale/it_IT.mjs +41 -0
- package/build/system/locale/ja_JP.d.mts +3 -0
- package/build/system/locale/ja_JP.mjs +41 -0
- package/build/system/locale/ko_KR.d.mts +3 -0
- package/build/system/locale/ko_KR.mjs +41 -0
- package/build/system/locale/ms_MY.d.mts +3 -0
- package/build/system/locale/ms_MY.mjs +41 -0
- package/build/system/locale/nl_NL.d.mts +3 -0
- package/build/system/locale/nl_NL.mjs +41 -0
- package/build/system/locale/pl_PL.d.mts +3 -0
- package/build/system/locale/pl_PL.mjs +41 -0
- package/build/system/locale/pt_BR.d.mts +3 -0
- package/build/system/locale/pt_BR.mjs +41 -0
- package/build/system/locale/pt_PT.d.mts +3 -0
- package/build/system/locale/pt_PT.mjs +41 -0
- package/build/system/locale/ro_RO.d.mts +3 -0
- package/build/system/locale/ro_RO.mjs +41 -0
- package/build/system/locale/ru_RU.d.mts +3 -0
- package/build/system/locale/ru_RU.mjs +41 -0
- package/build/system/locale/sv_SE.d.mts +3 -0
- package/build/system/locale/sv_SE.mjs +41 -0
- package/build/system/locale/sw_TZ.d.mts +3 -0
- package/build/system/locale/sw_TZ.mjs +41 -0
- package/build/system/locale/th_TH.d.mts +3 -0
- package/build/system/locale/th_TH.mjs +41 -0
- package/build/system/locale/tr_TR.d.mts +3 -0
- package/build/system/locale/tr_TR.mjs +41 -0
- package/build/system/locale/uk_UA.d.mts +3 -0
- package/build/system/locale/uk_UA.mjs +41 -0
- package/build/system/locale/ur_PK.d.mts +3 -0
- package/build/system/locale/ur_PK.mjs +41 -0
- package/build/system/locale/vi_VN.d.mts +3 -0
- package/build/system/locale/vi_VN.mjs +41 -0
- package/build/system/locale/yo_NG.d.mts +3 -0
- package/build/system/locale/yo_NG.mjs +41 -0
- package/build/system/locale/zh_Hans.d.mts +3 -0
- package/build/system/locale/zh_Hans.mjs +41 -0
- package/build/system/locale/zh_Hant.d.mts +3 -0
- package/build/system/locale/zh_Hant.mjs +41 -0
- package/build/system/memory/assign.d.mts +14 -0
- package/build/system/memory/assign.mjs +10 -0
- package/build/system/memory/clone.d.mts +6 -0
- package/build/system/memory/clone.mjs +63 -0
- package/build/system/memory/create.d.mts +8 -0
- package/build/system/memory/create.mjs +23 -0
- package/build/system/memory/discard.d.mts +4 -0
- package/build/system/memory/discard.mjs +16 -0
- package/build/system/memory/index.d.mts +1 -0
- package/build/system/memory/index.mjs +1 -0
- package/build/system/memory/memory.d.mts +6 -0
- package/build/system/memory/memory.mjs +7 -0
- package/build/system/memory/metrics.d.mts +14 -0
- package/build/system/memory/metrics.mjs +8 -0
- package/build/system/memory/update.d.mts +7 -0
- package/build/system/memory/update.mjs +32 -0
- package/build/system/settings/index.d.mts +1 -0
- package/build/system/settings/index.mjs +1 -0
- package/build/system/settings/settings.d.mts +37 -0
- package/build/system/settings/settings.mjs +28 -0
- package/build/system/system.d.mts +6 -0
- package/build/system/system.mjs +6 -0
- package/build/system/unreachable/index.d.mts +1 -0
- package/build/system/unreachable/index.mjs +1 -0
- package/build/system/unreachable/unreachable.d.mts +3 -0
- package/build/system/unreachable/unreachable.mjs +6 -0
- package/build/type/action/_optional.d.mts +19 -0
- package/build/type/action/_optional.mjs +40 -0
- package/build/type/action/_readonly.d.mts +19 -0
- package/build/type/action/_readonly.mjs +40 -0
- package/build/type/action/awaited.d.mts +11 -0
- package/build/type/action/awaited.mjs +11 -0
- package/build/type/action/capitalize.d.mts +11 -0
- package/build/type/action/capitalize.mjs +11 -0
- package/build/type/action/conditional.d.mts +11 -0
- package/build/type/action/conditional.mjs +11 -0
- package/build/type/action/constructor-parameters.d.mts +11 -0
- package/build/type/action/constructor-parameters.mjs +11 -0
- package/build/type/action/evaluate.d.mts +11 -0
- package/build/type/action/evaluate.mjs +11 -0
- package/build/type/action/exclude.d.mts +11 -0
- package/build/type/action/exclude.mjs +11 -0
- package/build/type/action/extract.d.mts +11 -0
- package/build/type/action/extract.mjs +11 -0
- package/build/type/action/index.d.mts +26 -0
- package/build/type/action/index.mjs +26 -0
- package/build/type/action/indexed.d.mts +14 -0
- package/build/type/action/indexed.mjs +14 -0
- package/build/type/action/instance-type.d.mts +11 -0
- package/build/type/action/instance-type.mjs +11 -0
- package/build/type/action/interface.d.mts +14 -0
- package/build/type/action/interface.mjs +19 -0
- package/build/type/action/keyof.d.mts +11 -0
- package/build/type/action/keyof.mjs +11 -0
- package/build/type/action/lowercase.d.mts +11 -0
- package/build/type/action/lowercase.mjs +11 -0
- package/build/type/action/mapped.d.mts +12 -0
- package/build/type/action/mapped.mjs +11 -0
- package/build/type/action/module.d.mts +12 -0
- package/build/type/action/module.mjs +11 -0
- package/build/type/action/non-nullable.d.mts +11 -0
- package/build/type/action/non-nullable.mjs +11 -0
- package/build/type/action/omit.d.mts +14 -0
- package/build/type/action/omit.mjs +14 -0
- package/build/type/action/options.d.mts +12 -0
- package/build/type/action/options.mjs +11 -0
- package/build/type/action/parameters.d.mts +11 -0
- package/build/type/action/parameters.mjs +11 -0
- package/build/type/action/partial.d.mts +11 -0
- package/build/type/action/partial.mjs +11 -0
- package/build/type/action/pick.d.mts +14 -0
- package/build/type/action/pick.mjs +14 -0
- package/build/type/action/required.d.mts +11 -0
- package/build/type/action/required.mjs +11 -0
- package/build/type/action/return-type.d.mts +11 -0
- package/build/type/action/return-type.mjs +11 -0
- package/build/type/action/uncapitalize.d.mts +11 -0
- package/build/type/action/uncapitalize.mjs +11 -0
- package/build/type/action/uppercase.d.mts +11 -0
- package/build/type/action/uppercase.mjs +11 -0
- package/build/type/engine/awaited/index.d.mts +1 -0
- package/build/type/engine/awaited/index.mjs +1 -0
- package/build/type/engine/awaited/instantiate.d.mts +10 -0
- package/build/type/engine/awaited/instantiate.mjs +19 -0
- package/build/type/engine/call/instantiate.d.mts +20 -0
- package/build/type/engine/call/instantiate.mjs +38 -0
- package/build/type/engine/call/resolve-arguments.d.mts +13 -0
- package/build/type/engine/call/resolve-arguments.mjs +39 -0
- package/build/type/engine/call/resolve-target.d.mts +25 -0
- package/build/type/engine/call/resolve-target.mjs +27 -0
- package/build/type/engine/conditional/index.d.mts +1 -0
- package/build/type/engine/conditional/index.mjs +1 -0
- package/build/type/engine/conditional/instantiate.d.mts +10 -0
- package/build/type/engine/conditional/instantiate.mjs +19 -0
- package/build/type/engine/constructor-parameters/index.d.mts +1 -0
- package/build/type/engine/constructor-parameters/index.mjs +1 -0
- package/build/type/engine/constructor-parameters/instantiate.d.mts +14 -0
- package/build/type/engine/constructor-parameters/instantiate.mjs +21 -0
- package/build/type/engine/cyclic/candidates.d.mts +9 -0
- package/build/type/engine/cyclic/candidates.mjs +19 -0
- package/build/type/engine/cyclic/check.d.mts +24 -0
- package/build/type/engine/cyclic/check.mjs +54 -0
- package/build/type/engine/cyclic/dependencies.d.mts +25 -0
- package/build/type/engine/cyclic/dependencies.mjs +53 -0
- package/build/type/engine/cyclic/extends.d.mts +31 -0
- package/build/type/engine/cyclic/extends.mjs +53 -0
- package/build/type/engine/cyclic/index.d.mts +6 -0
- package/build/type/engine/cyclic/index.mjs +6 -0
- package/build/type/engine/cyclic/instantiate.d.mts +20 -0
- package/build/type/engine/cyclic/instantiate.mjs +29 -0
- package/build/type/engine/cyclic/target.d.mts +10 -0
- package/build/type/engine/cyclic/target.mjs +16 -0
- package/build/type/engine/enum/enum-to-union.d.mts +14 -0
- package/build/type/engine/enum/enum-to-union.mjs +24 -0
- package/build/type/engine/enum/index.d.mts +2 -0
- package/build/type/engine/enum/index.mjs +2 -0
- package/build/type/engine/enum/typescript-enum-to-enum-values.d.mts +7 -0
- package/build/type/engine/enum/typescript-enum-to-enum-values.mjs +6 -0
- package/build/type/engine/evaluate/broaden.d.mts +16 -0
- package/build/type/engine/evaluate/broaden.mjs +48 -0
- package/build/type/engine/evaluate/compare.d.mts +15 -0
- package/build/type/engine/evaluate/compare.mjs +21 -0
- package/build/type/engine/evaluate/composite.d.mts +30 -0
- package/build/type/engine/evaluate/composite.mjs +63 -0
- package/build/type/engine/evaluate/distribute.d.mts +26 -0
- package/build/type/engine/evaluate/distribute.mjs +53 -0
- package/build/type/engine/evaluate/evaluate.d.mts +11 -0
- package/build/type/engine/evaluate/evaluate.mjs +19 -0
- package/build/type/engine/evaluate/flatten.d.mts +6 -0
- package/build/type/engine/evaluate/flatten.mjs +11 -0
- package/build/type/engine/evaluate/index.d.mts +8 -0
- package/build/type/engine/evaluate/index.mjs +8 -0
- package/build/type/engine/evaluate/instantiate.d.mts +8 -0
- package/build/type/engine/evaluate/instantiate.mjs +17 -0
- package/build/type/engine/evaluate/narrow.d.mts +5 -0
- package/build/type/engine/evaluate/narrow.mjs +11 -0
- package/build/type/engine/exclude/index.d.mts +1 -0
- package/build/type/engine/exclude/index.mjs +1 -0
- package/build/type/engine/exclude/instantiate.d.mts +16 -0
- package/build/type/engine/exclude/instantiate.mjs +36 -0
- package/build/type/engine/extract/index.d.mts +1 -0
- package/build/type/engine/extract/index.mjs +1 -0
- package/build/type/engine/extract/instantiate.d.mts +16 -0
- package/build/type/engine/extract/instantiate.mjs +36 -0
- package/build/type/engine/helpers/index.d.mts +3 -0
- package/build/type/engine/helpers/index.mjs +3 -0
- package/build/type/engine/helpers/keys-to-indexer.d.mts +7 -0
- package/build/type/engine/helpers/keys-to-indexer.mjs +15 -0
- package/build/type/engine/helpers/keys.d.mts +3 -0
- package/build/type/engine/helpers/keys.mjs +8 -0
- package/build/type/engine/helpers/union.d.mts +7 -0
- package/build/type/engine/helpers/union.mjs +2 -0
- package/build/type/engine/index.d.mts +30 -0
- package/build/type/engine/index.mjs +36 -0
- package/build/type/engine/indexable/from-cyclic.d.mts +6 -0
- package/build/type/engine/indexable/from-cyclic.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 +5 -0
- package/build/type/engine/indexable/from-intersect.mjs +8 -0
- package/build/type/engine/indexable/from-literal.d.mts +3 -0
- package/build/type/engine/indexable/from-literal.mjs +5 -0
- 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 +17 -0
- package/build/type/engine/indexable/from-type.mjs +22 -0
- package/build/type/engine/indexable/from-union.d.mts +4 -0
- package/build/type/engine/indexable/from-union.mjs +7 -0
- package/build/type/engine/indexable/to-indexable-keys.d.mts +10 -0
- package/build/type/engine/indexable/to-indexable-keys.mjs +12 -0
- package/build/type/engine/indexable/to-indexable.d.mts +9 -0
- package/build/type/engine/indexable/to-indexable.mjs +14 -0
- package/build/type/engine/indexed/array-indexer.d.mts +12 -0
- package/build/type/engine/indexed/array-indexer.mjs +18 -0
- package/build/type/engine/indexed/from-array.d.mts +15 -0
- package/build/type/engine/indexed/from-array.mjs +26 -0
- package/build/type/engine/indexed/from-object.d.mts +9 -0
- package/build/type/engine/indexed/from-object.mjs +18 -0
- package/build/type/engine/indexed/from-tuple.d.mts +13 -0
- package/build/type/engine/indexed/from-tuple.mjs +28 -0
- package/build/type/engine/indexed/index.d.mts +1 -0
- package/build/type/engine/indexed/index.mjs +1 -0
- package/build/type/engine/indexed/instantiate.d.mts +21 -0
- package/build/type/engine/indexed/instantiate.mjs +37 -0
- package/build/type/engine/instance-type/index.d.mts +1 -0
- package/build/type/engine/instance-type/index.mjs +1 -0
- package/build/type/engine/instance-type/instantiate.d.mts +12 -0
- package/build/type/engine/instance-type/instantiate.mjs +20 -0
- package/build/type/engine/instantiate.d.mts +162 -0
- package/build/type/engine/instantiate.mjs +165 -0
- package/build/type/engine/interface/index.d.mts +1 -0
- package/build/type/engine/interface/index.mjs +1 -0
- package/build/type/engine/interface/instantiate.d.mts +16 -0
- package/build/type/engine/interface/instantiate.mjs +19 -0
- package/build/type/engine/intrinsics/from-literal.d.mts +5 -0
- package/build/type/engine/intrinsics/from-literal.mjs +9 -0
- package/build/type/engine/intrinsics/from-template-literal.d.mts +6 -0
- package/build/type/engine/intrinsics/from-template-literal.mjs +8 -0
- package/build/type/engine/intrinsics/from-type.d.mts +10 -0
- package/build/type/engine/intrinsics/from-type.mjs +13 -0
- package/build/type/engine/intrinsics/from-union.d.mts +6 -0
- package/build/type/engine/intrinsics/from-union.mjs +7 -0
- package/build/type/engine/intrinsics/index.d.mts +1 -0
- package/build/type/engine/intrinsics/index.mjs +1 -0
- package/build/type/engine/intrinsics/instantiate.d.mts +34 -0
- package/build/type/engine/intrinsics/instantiate.mjs +48 -0
- package/build/type/engine/intrinsics/mapping.d.mts +9 -0
- package/build/type/engine/intrinsics/mapping.mjs +4 -0
- package/build/type/engine/keyof/from-array.d.mts +4 -0
- package/build/type/engine/keyof/from-array.mjs +5 -0
- package/build/type/engine/keyof/from-object.d.mts +10 -0
- package/build/type/engine/keyof/from-object.mjs +20 -0
- package/build/type/engine/keyof/from-record.d.mts +4 -0
- package/build/type/engine/keyof/from-record.mjs +5 -0
- package/build/type/engine/keyof/from-tuple.d.mts +5 -0
- package/build/type/engine/keyof/from-tuple.mjs +7 -0
- package/build/type/engine/keyof/index.d.mts +1 -0
- package/build/type/engine/keyof/index.mjs +1 -0
- package/build/type/engine/keyof/instantiate.d.mts +25 -0
- package/build/type/engine/keyof/instantiate.mjs +42 -0
- package/build/type/engine/mapped/index.d.mts +1 -0
- package/build/type/engine/mapped/index.mjs +1 -0
- package/build/type/engine/mapped/instantiate.d.mts +28 -0
- package/build/type/engine/mapped/instantiate.mjs +47 -0
- package/build/type/engine/mapped/mapped-keys.d.mts +14 -0
- package/build/type/engine/mapped/mapped-keys.mjs +29 -0
- package/build/type/engine/module/index.d.mts +1 -0
- package/build/type/engine/module/index.mjs +1 -0
- package/build/type/engine/module/instantiate.d.mts +21 -0
- package/build/type/engine/module/instantiate.mjs +33 -0
- package/build/type/engine/non-nullable/index.d.mts +1 -0
- package/build/type/engine/non-nullable/index.mjs +1 -0
- package/build/type/engine/non-nullable/instantiate.d.mts +15 -0
- package/build/type/engine/non-nullable/instantiate.mjs +21 -0
- package/build/type/engine/object/collapse.d.mts +12 -0
- package/build/type/engine/object/collapse.mjs +14 -0
- package/build/type/engine/object/from-cyclic.d.mts +6 -0
- package/build/type/engine/object/from-cyclic.mjs +8 -0
- package/build/type/engine/object/from-intersect.d.mts +14 -0
- package/build/type/engine/object/from-intersect.mjs +17 -0
- package/build/type/engine/object/from-object.d.mts +3 -0
- package/build/type/engine/object/from-object.mjs +4 -0
- package/build/type/engine/object/from-tuple.d.mts +6 -0
- package/build/type/engine/object/from-tuple.mjs +9 -0
- package/build/type/engine/object/from-type.d.mts +14 -0
- package/build/type/engine/object/from-type.mjs +19 -0
- package/build/type/engine/object/from-union.d.mts +12 -0
- package/build/type/engine/object/from-union.mjs +26 -0
- package/build/type/engine/object/index.d.mts +1 -0
- package/build/type/engine/object/index.mjs +1 -0
- package/build/type/engine/omit/index.d.mts +1 -0
- package/build/type/engine/omit/index.mjs +1 -0
- package/build/type/engine/omit/instantiate.d.mts +16 -0
- package/build/type/engine/omit/instantiate.mjs +31 -0
- package/build/type/engine/options/index.d.mts +1 -0
- package/build/type/engine/options/index.mjs +1 -0
- package/build/type/engine/options/instantiate.d.mts +8 -0
- package/build/type/engine/options/instantiate.mjs +13 -0
- package/build/type/engine/parameters/index.d.mts +1 -0
- package/build/type/engine/parameters/index.mjs +1 -0
- package/build/type/engine/parameters/instantiate.d.mts +14 -0
- package/build/type/engine/parameters/instantiate.mjs +21 -0
- package/build/type/engine/partial/from-cyclic.d.mts +10 -0
- package/build/type/engine/partial/from-cyclic.mjs +11 -0
- package/build/type/engine/partial/from-intersect.d.mts +5 -0
- package/build/type/engine/partial/from-intersect.mjs +7 -0
- package/build/type/engine/partial/from-object.d.mts +8 -0
- package/build/type/engine/partial/from-object.mjs +11 -0
- package/build/type/engine/partial/from-type.d.mts +12 -0
- package/build/type/engine/partial/from-type.mjs +16 -0
- package/build/type/engine/partial/from-union.d.mts +5 -0
- package/build/type/engine/partial/from-union.mjs +7 -0
- package/build/type/engine/partial/index.d.mts +1 -0
- package/build/type/engine/partial/index.mjs +1 -0
- package/build/type/engine/partial/instantiate.d.mts +9 -0
- package/build/type/engine/partial/instantiate.mjs +14 -0
- package/build/type/engine/patterns/index.d.mts +2 -0
- package/build/type/engine/patterns/index.mjs +2 -0
- package/build/type/engine/patterns/pattern.d.mts +7 -0
- package/build/type/engine/patterns/pattern.mjs +13 -0
- package/build/type/engine/patterns/template.d.mts +7 -0
- package/build/type/engine/patterns/template.mjs +20 -0
- package/build/type/engine/pick/index.d.mts +1 -0
- package/build/type/engine/pick/index.mjs +1 -0
- package/build/type/engine/pick/instantiate.d.mts +17 -0
- package/build/type/engine/pick/instantiate.mjs +31 -0
- package/build/type/engine/record/from-key-any.d.mts +4 -0
- package/build/type/engine/record/from-key-any.mjs +6 -0
- package/build/type/engine/record/from-key-boolean.d.mts +7 -0
- package/build/type/engine/record/from-key-boolean.mjs +5 -0
- package/build/type/engine/record/from-key-enum.d.mts +6 -0
- package/build/type/engine/record/from-key-enum.mjs +8 -0
- package/build/type/engine/record/from-key-integer.d.mts +5 -0
- package/build/type/engine/record/from-key-integer.mjs +7 -0
- package/build/type/engine/record/from-key-intersect.d.mts +5 -0
- package/build/type/engine/record/from-key-intersect.mjs +8 -0
- package/build/type/engine/record/from-key-literal.d.mts +11 -0
- package/build/type/engine/record/from-key-literal.mjs +10 -0
- package/build/type/engine/record/from-key-number.d.mts +5 -0
- package/build/type/engine/record/from-key-number.mjs +7 -0
- package/build/type/engine/record/from-key-string.d.mts +5 -0
- package/build/type/engine/record/from-key-string.mjs +12 -0
- package/build/type/engine/record/from-key-template-literal.d.mts +8 -0
- package/build/type/engine/record/from-key-template-literal.mjs +12 -0
- package/build/type/engine/record/from-key-union.d.mts +20 -0
- package/build/type/engine/record/from-key-union.mjs +39 -0
- package/build/type/engine/record/from-key.d.mts +24 -0
- package/build/type/engine/record/from-key.mjs +40 -0
- package/build/type/engine/record/index.d.mts +1 -0
- package/build/type/engine/record/index.mjs +1 -0
- package/build/type/engine/record/instantiate.d.mts +9 -0
- package/build/type/engine/record/instantiate.mjs +16 -0
- package/build/type/engine/record/record-create.d.mts +3 -0
- package/build/type/engine/record/record-create.mjs +7 -0
- package/build/type/engine/ref/index.d.mts +1 -0
- package/build/type/engine/ref/index.mjs +1 -0
- package/build/type/engine/ref/instantiate.d.mts +6 -0
- package/build/type/engine/ref/instantiate.mjs +11 -0
- package/build/type/engine/required/from-cyclic.d.mts +10 -0
- package/build/type/engine/required/from-cyclic.mjs +11 -0
- package/build/type/engine/required/from-intersect.d.mts +5 -0
- package/build/type/engine/required/from-intersect.mjs +7 -0
- package/build/type/engine/required/from-object.d.mts +8 -0
- package/build/type/engine/required/from-object.mjs +11 -0
- package/build/type/engine/required/from-type.d.mts +12 -0
- package/build/type/engine/required/from-type.mjs +16 -0
- package/build/type/engine/required/from-union.d.mts +5 -0
- package/build/type/engine/required/from-union.mjs +7 -0
- package/build/type/engine/required/index.d.mts +1 -0
- package/build/type/engine/required/index.mjs +1 -0
- package/build/type/engine/required/instantiate.d.mts +9 -0
- package/build/type/engine/required/instantiate.mjs +14 -0
- package/build/type/engine/rest/index.d.mts +1 -0
- package/build/type/engine/rest/index.mjs +1 -0
- package/build/type/engine/rest/spread.d.mts +12 -0
- package/build/type/engine/rest/spread.mjs +19 -0
- package/build/type/engine/return-type/index.d.mts +1 -0
- package/build/type/engine/return-type/index.mjs +1 -0
- package/build/type/engine/return-type/instantiate.d.mts +11 -0
- package/build/type/engine/return-type/instantiate.mjs +18 -0
- package/build/type/engine/template-literal/create.d.mts +1 -0
- package/build/type/engine/template-literal/create.mjs +5 -0
- package/build/type/engine/template-literal/decode.d.mts +20 -0
- package/build/type/engine/template-literal/decode.mjs +73 -0
- package/build/type/engine/template-literal/encode.d.mts +31 -0
- package/build/type/engine/template-literal/encode.mjs +80 -0
- package/build/type/engine/template-literal/finite.d.mts +12 -0
- package/build/type/engine/template-literal/finite.mjs +30 -0
- package/build/type/engine/template-literal/index.d.mts +5 -0
- package/build/type/engine/template-literal/index.mjs +5 -0
- package/build/type/engine/template-literal/instantiate.d.mts +9 -0
- package/build/type/engine/template-literal/instantiate.mjs +14 -0
- package/build/type/engine/template-literal/static.d.mts +18 -0
- package/build/type/engine/template-literal/static.mjs +2 -0
- package/build/type/engine/tuple/to-object.d.mts +12 -0
- package/build/type/engine/tuple/to-object.mjs +13 -0
- package/build/type/extends/any.d.mts +9 -0
- package/build/type/extends/any.mjs +12 -0
- package/build/type/extends/array.d.mts +7 -0
- package/build/type/extends/array.mjs +9 -0
- package/build/type/extends/async-iterator.d.mts +7 -0
- package/build/type/extends/async-iterator.mjs +9 -0
- package/build/type/extends/bigint.d.mts +7 -0
- package/build/type/extends/bigint.mjs +9 -0
- package/build/type/extends/boolean.d.mts +7 -0
- package/build/type/extends/boolean.mjs +9 -0
- package/build/type/extends/constructor.d.mts +8 -0
- package/build/type/extends/constructor.mjs +16 -0
- package/build/type/extends/enum.d.mts +7 -0
- package/build/type/extends/enum.mjs +6 -0
- package/build/type/extends/extends-left.d.mts +55 -0
- package/build/type/extends/extends-left.mjs +83 -0
- package/build/type/extends/extends-right.d.mts +25 -0
- package/build/type/extends/extends-right.mjs +59 -0
- package/build/type/extends/extends.d.mts +11 -0
- package/build/type/extends/extends.mjs +15 -0
- package/build/type/extends/function.d.mts +8 -0
- package/build/type/extends/function.mjs +16 -0
- package/build/type/extends/index.d.mts +2 -0
- package/build/type/extends/index.mjs +2 -0
- package/build/type/extends/inference.d.mts +34 -0
- package/build/type/extends/inference.mjs +72 -0
- package/build/type/extends/integer.d.mts +8 -0
- package/build/type/extends/integer.mjs +10 -0
- package/build/type/extends/intersect.d.mts +6 -0
- package/build/type/extends/intersect.mjs +15 -0
- package/build/type/extends/iterator.d.mts +7 -0
- package/build/type/extends/iterator.mjs +9 -0
- package/build/type/extends/literal.d.mts +17 -0
- package/build/type/extends/literal.mjs +41 -0
- package/build/type/extends/never.d.mts +8 -0
- package/build/type/extends/never.mjs +9 -0
- package/build/type/extends/null.d.mts +7 -0
- package/build/type/extends/null.mjs +9 -0
- package/build/type/extends/number.d.mts +7 -0
- package/build/type/extends/number.mjs +9 -0
- package/build/type/extends/object.d.mts +25 -0
- package/build/type/extends/object.mjs +89 -0
- package/build/type/extends/parameters.d.mts +15 -0
- package/build/type/extends/parameters.mjs +37 -0
- package/build/type/extends/promise.d.mts +7 -0
- package/build/type/extends/promise.mjs +9 -0
- package/build/type/extends/result.d.mts +21 -0
- package/build/type/extends/result.mjs +33 -0
- package/build/type/extends/return-type.d.mts +7 -0
- package/build/type/extends/return-type.mjs +9 -0
- package/build/type/extends/string.d.mts +7 -0
- package/build/type/extends/string.mjs +9 -0
- package/build/type/extends/symbol.d.mts +7 -0
- package/build/type/extends/symbol.mjs +9 -0
- 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 +25 -0
- package/build/type/extends/tuple.mjs +82 -0
- package/build/type/extends/undefined.d.mts +8 -0
- package/build/type/extends/undefined.mjs +10 -0
- package/build/type/extends/union.d.mts +11 -0
- package/build/type/extends/union.mjs +36 -0
- package/build/type/extends/unknown.d.mts +9 -0
- package/build/type/extends/unknown.mjs +12 -0
- package/build/type/extends/void.d.mts +7 -0
- package/build/type/extends/void.mjs +9 -0
- package/build/type/index.d.mts +5 -0
- package/build/type/index.mjs +5 -0
- package/build/type/script/index.d.mts +1 -0
- package/build/type/script/index.mjs +1 -0
- package/build/type/script/mapping.d.mts +358 -0
- package/build/type/script/mapping.mjs +525 -0
- package/build/type/script/parser.d.mts +256 -0
- package/build/type/script/parser.mjs +132 -0
- package/build/type/script/script.d.mts +17 -0
- package/build/type/script/script.mjs +21 -0
- package/build/type/script/token/bigint.d.mts +8 -0
- package/build/type/script/token/bigint.mjs +20 -0
- package/build/type/script/token/const.d.mts +11 -0
- package/build/type/script/token/const.mjs +18 -0
- package/build/type/script/token/ident.d.mts +16 -0
- package/build/type/script/token/ident.mjs +35 -0
- package/build/type/script/token/index.d.mts +9 -0
- package/build/type/script/token/index.mjs +9 -0
- package/build/type/script/token/integer.d.mts +19 -0
- package/build/type/script/token/integer.mjs +45 -0
- package/build/type/script/token/internal/char.d.mts +73 -0
- package/build/type/script/token/internal/char.mjs +25 -0
- package/build/type/script/token/internal/guard.d.mts +1 -0
- package/build/type/script/token/internal/guard.mjs +15 -0
- package/build/type/script/token/internal/many.d.mts +7 -0
- package/build/type/script/token/internal/many.mjs +17 -0
- package/build/type/script/token/internal/optional.d.mts +5 -0
- package/build/type/script/token/internal/optional.mjs +12 -0
- package/build/type/script/token/internal/result.d.mts +2 -0
- package/build/type/script/token/internal/result.mjs +7 -0
- package/build/type/script/token/internal/take.d.mts +6 -0
- package/build/type/script/token/internal/take.mjs +19 -0
- package/build/type/script/token/internal/trim.d.mts +19 -0
- package/build/type/script/token/internal/trim.mjs +34 -0
- package/build/type/script/token/number.d.mts +20 -0
- package/build/type/script/token/number.mjs +65 -0
- package/build/type/script/token/span.d.mts +10 -0
- package/build/type/script/token/span.mjs +35 -0
- package/build/type/script/token/string.d.mts +11 -0
- package/build/type/script/token/string.mjs +24 -0
- package/build/type/script/token/until.d.mts +6 -0
- package/build/type/script/token/until.mjs +21 -0
- package/build/type/script/token/until_1.d.mts +5 -0
- package/build/type/script/token/until_1.mjs +16 -0
- package/build/type/types/_codec.d.mts +30 -0
- package/build/type/types/_codec.mjs +59 -0
- package/build/type/types/_optional.d.mts +16 -0
- package/build/type/types/_optional.mjs +27 -0
- package/build/type/types/_readonly.d.mts +16 -0
- package/build/type/types/_readonly.mjs +26 -0
- package/build/type/types/_refine.d.mts +19 -0
- package/build/type/types/_refine.mjs +20 -0
- package/build/type/types/any.d.mts +10 -0
- package/build/type/types/any.mjs +18 -0
- package/build/type/types/array.d.mts +16 -0
- package/build/type/types/array.mjs +24 -0
- package/build/type/types/async-iterator.d.mts +16 -0
- package/build/type/types/async-iterator.mjs +24 -0
- package/build/type/types/base.d.mts +40 -0
- package/build/type/types/base.mjs +78 -0
- package/build/type/types/bigint.d.mts +12 -0
- package/build/type/types/bigint.mjs +21 -0
- package/build/type/types/boolean.d.mts +11 -0
- package/build/type/types/boolean.mjs +17 -0
- package/build/type/types/call.d.mts +16 -0
- package/build/type/types/call.mjs +21 -0
- package/build/type/types/constructor.d.mts +18 -0
- package/build/type/types/constructor.mjs +24 -0
- package/build/type/types/cyclic.d.mts +16 -0
- package/build/type/types/cyclic.mjs +29 -0
- package/build/type/types/deferred.d.mts +12 -0
- package/build/type/types/deferred.mjs +16 -0
- package/build/type/types/enum.d.mts +15 -0
- package/build/type/types/enum.mjs +17 -0
- package/build/type/types/function.d.mts +18 -0
- package/build/type/types/function.mjs +24 -0
- package/build/type/types/generic.d.mts +13 -0
- package/build/type/types/generic.mjs +17 -0
- package/build/type/types/identifier.d.mts +11 -0
- package/build/type/types/identifier.mjs +17 -0
- package/build/type/types/index.d.mts +47 -0
- package/build/type/types/index.mjs +53 -0
- package/build/type/types/infer.d.mts +15 -0
- package/build/type/types/infer.mjs +20 -0
- package/build/type/types/integer.d.mts +12 -0
- package/build/type/types/integer.mjs +21 -0
- package/build/type/types/intersect.d.mts +15 -0
- package/build/type/types/intersect.mjs +24 -0
- package/build/type/types/iterator.d.mts +16 -0
- package/build/type/types/iterator.mjs +24 -0
- package/build/type/types/literal.d.mts +22 -0
- package/build/type/types/literal.mjs +41 -0
- package/build/type/types/never.d.mts +12 -0
- package/build/type/types/never.mjs +21 -0
- package/build/type/types/null.d.mts +11 -0
- package/build/type/types/null.mjs +17 -0
- package/build/type/types/number.d.mts +12 -0
- package/build/type/types/number.mjs +21 -0
- package/build/type/types/object.d.mts +17 -0
- package/build/type/types/object.mjs +27 -0
- package/build/type/types/parameter.d.mts +17 -0
- package/build/type/types/parameter.mjs +21 -0
- package/build/type/types/promise.d.mts +16 -0
- package/build/type/types/promise.mjs +24 -0
- package/build/type/types/properties.d.mts +42 -0
- package/build/type/types/properties.mjs +16 -0
- package/build/type/types/record.d.mts +44 -0
- package/build/type/types/record.mjs +61 -0
- package/build/type/types/ref.d.mts +13 -0
- package/build/type/types/ref.mjs +17 -0
- package/build/type/types/rest.d.mts +11 -0
- package/build/type/types/rest.mjs +17 -0
- package/build/type/types/schema.d.mts +199 -0
- package/build/type/types/schema.mjs +15 -0
- package/build/type/types/static.d.mts +47 -0
- package/build/type/types/static.mjs +3 -0
- package/build/type/types/string.d.mts +12 -0
- package/build/type/types/string.mjs +22 -0
- package/build/type/types/symbol.d.mts +11 -0
- package/build/type/types/symbol.mjs +17 -0
- package/build/type/types/template-literal.d.mts +24 -0
- package/build/type/types/template-literal.mjs +26 -0
- package/build/type/types/this.d.mts +14 -0
- package/build/type/types/this.mjs +17 -0
- package/build/type/types/tuple.d.mts +37 -0
- package/build/type/types/tuple.mjs +25 -0
- package/build/type/types/undefined.d.mts +11 -0
- package/build/type/types/undefined.mjs +17 -0
- package/build/type/types/union.d.mts +15 -0
- package/build/type/types/union.mjs +24 -0
- package/build/type/types/unknown.d.mts +10 -0
- package/build/type/types/unknown.mjs +17 -0
- package/build/type/types/unsafe.d.mts +10 -0
- package/build/type/types/unsafe.mjs +18 -0
- package/build/type/types/void.d.mts +11 -0
- package/build/type/types/void.mjs +17 -0
- package/build/typebox.d.mts +71 -0
- package/build/typebox.mjs +87 -0
- package/build/value/assert/assert.d.mts +8 -0
- package/build/value/assert/assert.mjs +27 -0
- package/build/value/assert/index.d.mts +1 -0
- package/build/value/assert/index.mjs +1 -0
- package/build/value/check/check.d.mts +5 -0
- package/build/value/check/check.mjs +11 -0
- package/build/value/check/index.d.mts +1 -0
- package/build/value/check/index.mjs +1 -0
- package/build/value/clean/additional.d.mts +2 -0
- package/build/value/clean/additional.mjs +6 -0
- package/build/value/clean/clean.d.mts +15 -0
- package/build/value/clean/clean.mjs +15 -0
- package/build/value/clean/from-array.d.mts +2 -0
- package/build/value/clean/from-array.mjs +8 -0
- package/build/value/clean/from-base.d.mts +2 -0
- package/build/value/clean/from-base.mjs +4 -0
- package/build/value/clean/from-cyclic.d.mts +2 -0
- package/build/value/clean/from-cyclic.mjs +6 -0
- package/build/value/clean/from-intersect.d.mts +2 -0
- package/build/value/clean/from-intersect.mjs +25 -0
- package/build/value/clean/from-object.d.mts +2 -0
- package/build/value/clean/from-object.mjs +31 -0
- package/build/value/clean/from-record.d.mts +2 -0
- package/build/value/clean/from-record.mjs +32 -0
- package/build/value/clean/from-ref.d.mts +2 -0
- package/build/value/clean/from-ref.mjs +8 -0
- package/build/value/clean/from-tuple.d.mts +2 -0
- package/build/value/clean/from-tuple.mjs +14 -0
- package/build/value/clean/from-type.d.mts +2 -0
- package/build/value/clean/from-type.mjs +23 -0
- package/build/value/clean/from-union.d.mts +2 -0
- package/build/value/clean/from-union.mjs +12 -0
- package/build/value/clean/index.d.mts +1 -0
- package/build/value/clean/index.mjs +1 -0
- package/build/value/clone/clone.d.mts +5 -0
- package/build/value/clone/clone.mjs +60 -0
- package/build/value/clone/index.d.mts +1 -0
- package/build/value/clone/index.mjs +1 -0
- package/build/value/codec/callback.d.mts +2 -0
- package/build/value/codec/callback.mjs +25 -0
- package/build/value/codec/decode.d.mts +19 -0
- package/build/value/codec/decode.mjs +48 -0
- package/build/value/codec/encode.d.mts +9 -0
- package/build/value/codec/encode.mjs +43 -0
- package/build/value/codec/from-array.d.mts +2 -0
- package/build/value/codec/from-array.mjs +38 -0
- package/build/value/codec/from-cyclic.d.mts +2 -0
- package/build/value/codec/from-cyclic.mjs +8 -0
- package/build/value/codec/from-intersect.d.mts +2 -0
- package/build/value/codec/from-intersect.mjs +28 -0
- package/build/value/codec/from-object.d.mts +2 -0
- package/build/value/codec/from-object.mjs +44 -0
- package/build/value/codec/from-record.d.mts +2 -0
- package/build/value/codec/from-record.mjs +44 -0
- package/build/value/codec/from-ref.d.mts +2 -0
- package/build/value/codec/from-ref.mjs +10 -0
- package/build/value/codec/from-tuple.d.mts +2 -0
- package/build/value/codec/from-tuple.mjs +35 -0
- package/build/value/codec/from-type.d.mts +2 -0
- package/build/value/codec/from-type.mjs +22 -0
- package/build/value/codec/from-union.d.mts +2 -0
- package/build/value/codec/from-union.mjs +42 -0
- package/build/value/codec/has.d.mts +5 -0
- package/build/value/codec/has.mjs +85 -0
- package/build/value/codec/index.d.mts +3 -0
- package/build/value/codec/index.mjs +3 -0
- package/build/value/convert/convert.d.mts +13 -0
- package/build/value/convert/convert.mjs +15 -0
- package/build/value/convert/from-additional.d.mts +6 -0
- package/build/value/convert/from-additional.mjs +18 -0
- package/build/value/convert/from-array.d.mts +2 -0
- package/build/value/convert/from-array.mjs +8 -0
- package/build/value/convert/from-base.d.mts +2 -0
- package/build/value/convert/from-base.mjs +4 -0
- package/build/value/convert/from-bigint.d.mts +2 -0
- package/build/value/convert/from-bigint.mjs +9 -0
- package/build/value/convert/from-boolean.d.mts +2 -0
- package/build/value/convert/from-boolean.mjs +9 -0
- package/build/value/convert/from-cyclic.d.mts +2 -0
- package/build/value/convert/from-cyclic.mjs +6 -0
- package/build/value/convert/from-enum.d.mts +2 -0
- package/build/value/convert/from-enum.mjs +7 -0
- package/build/value/convert/from-integer.d.mts +2 -0
- package/build/value/convert/from-integer.mjs +9 -0
- package/build/value/convert/from-intersect.d.mts +2 -0
- package/build/value/convert/from-intersect.mjs +7 -0
- package/build/value/convert/from-literal.d.mts +2 -0
- package/build/value/convert/from-literal.mjs +44 -0
- package/build/value/convert/from-null.d.mts +2 -0
- package/build/value/convert/from-null.mjs +9 -0
- package/build/value/convert/from-number.d.mts +2 -0
- package/build/value/convert/from-number.mjs +9 -0
- package/build/value/convert/from-object.d.mts +2 -0
- package/build/value/convert/from-object.mjs +23 -0
- package/build/value/convert/from-record.d.mts +2 -0
- package/build/value/convert/from-record.mjs +23 -0
- package/build/value/convert/from-ref.d.mts +2 -0
- package/build/value/convert/from-ref.mjs +8 -0
- package/build/value/convert/from-string.d.mts +2 -0
- package/build/value/convert/from-string.mjs +9 -0
- package/build/value/convert/from-template-literal.d.mts +2 -0
- package/build/value/convert/from-template-literal.mjs +7 -0
- package/build/value/convert/from-tuple.d.mts +2 -0
- package/build/value/convert/from-tuple.mjs +11 -0
- package/build/value/convert/from-type.d.mts +2 -0
- package/build/value/convert/from-type.mjs +45 -0
- package/build/value/convert/from-undefined.d.mts +2 -0
- package/build/value/convert/from-undefined.mjs +9 -0
- package/build/value/convert/from-union.d.mts +2 -0
- package/build/value/convert/from-union.mjs +13 -0
- package/build/value/convert/from-void.d.mts +2 -0
- package/build/value/convert/from-void.mjs +9 -0
- package/build/value/convert/index.d.mts +1 -0
- package/build/value/convert/index.mjs +1 -0
- package/build/value/convert/try/index.d.mts +1 -0
- package/build/value/convert/try/index.mjs +1 -0
- package/build/value/convert/try/try-bigint.d.mts +2 -0
- package/build/value/convert/try/try-bigint.mjs +74 -0
- package/build/value/convert/try/try-boolean.d.mts +2 -0
- package/build/value/convert/try/try-boolean.mjs +64 -0
- package/build/value/convert/try/try-null.d.mts +2 -0
- package/build/value/convert/try/try-null.mjs +61 -0
- package/build/value/convert/try/try-number.d.mts +2 -0
- package/build/value/convert/try/try-number.mjs +76 -0
- package/build/value/convert/try/try-result.d.mts +8 -0
- package/build/value/convert/try/try-result.mjs +18 -0
- package/build/value/convert/try/try-string.d.mts +2 -0
- package/build/value/convert/try/try-string.mjs +56 -0
- package/build/value/convert/try/try-undefined.d.mts +2 -0
- package/build/value/convert/try/try-undefined.mjs +61 -0
- package/build/value/convert/try/try.d.mts +7 -0
- package/build/value/convert/try/try.mjs +7 -0
- package/build/value/create/create.d.mts +5 -0
- package/build/value/create/create.mjs +11 -0
- package/build/value/create/error.d.mts +5 -0
- package/build/value/create/error.mjs +7 -0
- package/build/value/create/from-array.d.mts +2 -0
- package/build/value/create/from-array.mjs +10 -0
- package/build/value/create/from-async-iterator.d.mts +2 -0
- package/build/value/create/from-async-iterator.mjs +5 -0
- package/build/value/create/from-base.d.mts +2 -0
- package/build/value/create/from-base.mjs +4 -0
- package/build/value/create/from-bigint.d.mts +2 -0
- package/build/value/create/from-bigint.mjs +7 -0
- package/build/value/create/from-boolean.d.mts +2 -0
- package/build/value/create/from-boolean.mjs +4 -0
- package/build/value/create/from-constructor.d.mts +2 -0
- package/build/value/create/from-constructor.mjs +10 -0
- package/build/value/create/from-cyclic.d.mts +2 -0
- package/build/value/create/from-cyclic.mjs +6 -0
- package/build/value/create/from-default.d.mts +3 -0
- package/build/value/create/from-default.mjs +10 -0
- package/build/value/create/from-enum.d.mts +2 -0
- package/build/value/create/from-enum.mjs +6 -0
- package/build/value/create/from-function.d.mts +2 -0
- package/build/value/create/from-function.mjs +6 -0
- package/build/value/create/from-integer.d.mts +2 -0
- package/build/value/create/from-integer.mjs +8 -0
- package/build/value/create/from-intersect.d.mts +2 -0
- package/build/value/create/from-intersect.mjs +6 -0
- package/build/value/create/from-iterator.d.mts +2 -0
- package/build/value/create/from-iterator.mjs +5 -0
- package/build/value/create/from-literal.d.mts +2 -0
- package/build/value/create/from-literal.mjs +4 -0
- package/build/value/create/from-never.d.mts +2 -0
- package/build/value/create/from-never.mjs +5 -0
- package/build/value/create/from-null.d.mts +2 -0
- package/build/value/create/from-null.mjs +4 -0
- package/build/value/create/from-number.d.mts +2 -0
- package/build/value/create/from-number.mjs +8 -0
- package/build/value/create/from-object.d.mts +2 -0
- package/build/value/create/from-object.mjs +9 -0
- package/build/value/create/from-promise.d.mts +2 -0
- package/build/value/create/from-promise.mjs +5 -0
- package/build/value/create/from-record.d.mts +2 -0
- package/build/value/create/from-record.mjs +8 -0
- package/build/value/create/from-ref.d.mts +2 -0
- package/build/value/create/from-ref.mjs +9 -0
- package/build/value/create/from-string.d.mts +2 -0
- package/build/value/create/from-string.mjs +9 -0
- package/build/value/create/from-symbol.d.mts +2 -0
- package/build/value/create/from-symbol.mjs +4 -0
- package/build/value/create/from-template-literal.d.mts +2 -0
- package/build/value/create/from-template-literal.mjs +11 -0
- package/build/value/create/from-tuple.d.mts +2 -0
- package/build/value/create/from-tuple.mjs +5 -0
- package/build/value/create/from-type.d.mts +2 -0
- package/build/value/create/from-type.mjs +69 -0
- package/build/value/create/from-undefined.d.mts +2 -0
- package/build/value/create/from-undefined.mjs +4 -0
- package/build/value/create/from-union.d.mts +2 -0
- package/build/value/create/from-union.mjs +9 -0
- package/build/value/create/from-void.d.mts +2 -0
- package/build/value/create/from-void.mjs +4 -0
- package/build/value/create/index.d.mts +2 -0
- package/build/value/create/index.mjs +2 -0
- package/build/value/default/default.d.mts +13 -0
- package/build/value/default/default.mjs +15 -0
- package/build/value/default/from-array.d.mts +2 -0
- package/build/value/default/from-array.mjs +12 -0
- package/build/value/default/from-base.d.mts +2 -0
- package/build/value/default/from-base.mjs +5 -0
- package/build/value/default/from-cyclic.d.mts +2 -0
- package/build/value/default/from-cyclic.mjs +7 -0
- package/build/value/default/from-default.d.mts +3 -0
- package/build/value/default/from-default.mjs +13 -0
- package/build/value/default/from-intersect.d.mts +2 -0
- package/build/value/default/from-intersect.mjs +8 -0
- package/build/value/default/from-object.d.mts +2 -0
- package/build/value/default/from-object.mjs +30 -0
- package/build/value/default/from-record.d.mts +2 -0
- package/build/value/default/from-record.mjs +26 -0
- package/build/value/default/from-ref.d.mts +2 -0
- package/build/value/default/from-ref.mjs +9 -0
- package/build/value/default/from-tuple.d.mts +2 -0
- package/build/value/default/from-tuple.mjs +14 -0
- package/build/value/default/from-type.d.mts +2 -0
- package/build/value/default/from-type.mjs +27 -0
- package/build/value/default/from-union.d.mts +2 -0
- package/build/value/default/from-union.mjs +14 -0
- package/build/value/default/index.d.mts +1 -0
- package/build/value/default/index.mjs +1 -0
- package/build/value/delta/diff.d.mts +10 -0
- package/build/value/delta/diff.mjs +129 -0
- package/build/value/delta/edit.d.mts +24 -0
- package/build/value/delta/edit.mjs +17 -0
- package/build/value/delta/index.d.mts +3 -0
- package/build/value/delta/index.mjs +3 -0
- package/build/value/delta/patch.d.mts +8 -0
- package/build/value/delta/patch.mjs +42 -0
- package/build/value/equal/equal.d.mts +2 -0
- package/build/value/equal/equal.mjs +6 -0
- package/build/value/equal/index.d.mts +1 -0
- package/build/value/equal/index.mjs +1 -0
- package/build/value/errors/errors.d.mts +16 -0
- package/build/value/errors/errors.mjs +17 -0
- package/build/value/errors/index.d.mts +1 -0
- package/build/value/errors/index.mjs +1 -0
- package/build/value/hash/hash.d.mts +6 -0
- package/build/value/hash/hash.mjs +10 -0
- package/build/value/hash/index.d.mts +1 -0
- package/build/value/hash/index.mjs +1 -0
- package/build/value/index.d.mts +20 -0
- package/build/value/index.mjs +26 -0
- package/build/value/mutate/error.d.mts +3 -0
- package/build/value/mutate/error.mjs +6 -0
- package/build/value/mutate/from-array.d.mts +2 -0
- package/build/value/mutate/from-array.mjs +16 -0
- package/build/value/mutate/from-object.d.mts +2 -0
- package/build/value/mutate/from-object.mjs +27 -0
- package/build/value/mutate/from-unknown.d.mts +2 -0
- package/build/value/mutate/from-unknown.mjs +7 -0
- package/build/value/mutate/from-value.d.mts +2 -0
- package/build/value/mutate/from-value.mjs +12 -0
- package/build/value/mutate/index.d.mts +1 -0
- package/build/value/mutate/index.mjs +1 -0
- package/build/value/mutate/mutate.d.mts +9 -0
- package/build/value/mutate/mutate.mjs +39 -0
- package/build/value/parse/index.d.mts +1 -0
- package/build/value/parse/index.mjs +1 -0
- package/build/value/parse/parse.d.mts +20 -0
- package/build/value/parse/parse.mjs +47 -0
- package/build/value/pipeline/index.d.mts +1 -0
- package/build/value/pipeline/index.mjs +1 -0
- package/build/value/pipeline/pipeline.d.mts +10 -0
- package/build/value/pipeline/pipeline.mjs +15 -0
- package/build/value/pointer/index.d.mts +1 -0
- package/build/value/pointer/index.mjs +1 -0
- package/build/value/pointer/pointer.d.mts +17 -0
- package/build/value/pointer/pointer.mjs +137 -0
- package/build/value/repair/error.d.mts +7 -0
- package/build/value/repair/error.mjs +8 -0
- package/build/value/repair/from-array.d.mts +2 -0
- package/build/value/repair/from-array.mjs +39 -0
- package/build/value/repair/from-enum.d.mts +2 -0
- package/build/value/repair/from-enum.mjs +7 -0
- package/build/value/repair/from-intersect.d.mts +2 -0
- package/build/value/repair/from-intersect.mjs +7 -0
- package/build/value/repair/from-object.d.mts +2 -0
- package/build/value/repair/from-object.mjs +33 -0
- package/build/value/repair/from-record.d.mts +2 -0
- package/build/value/repair/from-record.mjs +33 -0
- package/build/value/repair/from-ref.d.mts +2 -0
- package/build/value/repair/from-ref.mjs +9 -0
- package/build/value/repair/from-template-literal.d.mts +2 -0
- package/build/value/repair/from-template-literal.mjs +7 -0
- package/build/value/repair/from-tuple.d.mts +2 -0
- package/build/value/repair/from-tuple.mjs +12 -0
- package/build/value/repair/from-type.d.mts +2 -0
- package/build/value/repair/from-type.mjs +59 -0
- package/build/value/repair/from-union.d.mts +2 -0
- package/build/value/repair/from-union.mjs +71 -0
- package/build/value/repair/from-unknown.d.mts +2 -0
- package/build/value/repair/from-unknown.mjs +12 -0
- package/build/value/repair/index.d.mts +1 -0
- package/build/value/repair/index.mjs +1 -0
- package/build/value/repair/repair.d.mts +17 -0
- package/build/value/repair/repair.mjs +20 -0
- package/build/value/value.d.mts +16 -0
- package/build/value/value.mjs +16 -0
- package/license +23 -0
- package/package.json +75 -7
- package/readme.md +235 -0
- package/index.ts +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
2
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
3
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
4
|
+
import { type TAny } from '../types/any.mjs';
|
|
5
|
+
import { type TEnum, type TEnumValue } from '../types/enum.mjs';
|
|
6
|
+
import { type TInfer } from '../types/infer.mjs';
|
|
7
|
+
import { type TIntersect } from '../types/intersect.mjs';
|
|
8
|
+
import { type TTemplateLiteral } from '../types/template-literal.mjs';
|
|
9
|
+
import { type TUnion } from '../types/union.mjs';
|
|
10
|
+
import { type TUnknown } from '../types/unknown.mjs';
|
|
11
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
12
|
+
import * as Result from './result.mjs';
|
|
13
|
+
import { type TTemplateLiteralDecode } from '../engine/template-literal/decode.mjs';
|
|
14
|
+
import { type TEnumValuesToUnion } from '../engine/enum/index.mjs';
|
|
15
|
+
type TExtendsRightInfer<Inferred extends TProperties, Name extends string, Left extends TSchema, Right extends TSchema, Result extends Result.TResult = (TExtendsLeft<Inferred, Left, Right> extends Result.TExtendsTrueLike<infer CheckInferred extends TProperties> ? Result.TExtendsTrue<Memory.TAssign<Memory.TAssign<Inferred, CheckInferred>, {
|
|
16
|
+
[_ in Name]: Left;
|
|
17
|
+
}>> : Result.TExtendsFalse)> = Result;
|
|
18
|
+
type TExtendsRightAny<Inferred extends TProperties, Left extends TSchema, Result extends Result.TResult = Result.TExtendsTrue<Inferred>> = Result;
|
|
19
|
+
type TExtendsRightEnum<Inferred extends TProperties, Left extends TSchema, Right extends TEnumValue[], Union extends TSchema = TEnumValuesToUnion<Right>> = TExtendsLeft<Inferred, Left, Union>;
|
|
20
|
+
type TExtendsRightIntersect<Inferred extends TProperties, Left extends TSchema, Right extends TSchema[]> = (Right extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft<Inferred, Left, Head> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsRightIntersect<Inferred, Left, Tail> : Result.TExtendsFalse : Result.TExtendsTrue<Inferred>);
|
|
21
|
+
type TExtendsRightTemplateLiteral<Inferred extends TProperties, Left extends TSchema, Right extends string, Decoded extends TSchema = TTemplateLiteralDecode<Right>> = TExtendsLeft<Inferred, Left, Decoded>;
|
|
22
|
+
type TExtendsRightUnion<Inferred extends TProperties, Left extends TSchema, Right extends TSchema[]> = (Right extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft<Inferred, Left, Head> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? Result.TExtendsTrue<Inferred> : TExtendsRightUnion<Inferred, Left, Tail> : Result.TExtendsFalse);
|
|
23
|
+
export type TExtendsRight<Inferred extends TProperties, Left extends TSchema, Right extends TSchema> = (Right extends TAny ? TExtendsRightAny<Inferred, Left> : Right extends TEnum<infer Values extends TEnumValue[]> ? TExtendsRightEnum<Inferred, Left, Values> : Right extends TInfer<infer Name extends string, infer Type extends TSchema> ? TExtendsRightInfer<Inferred, Name, Left, Type> : Right extends TTemplateLiteral<infer Pattern extends string> ? TExtendsRightTemplateLiteral<Inferred, Left, Pattern> : Right extends TIntersect<infer Types extends TSchema[]> ? TExtendsRightIntersect<Inferred, Left, Types> : Right extends TUnion<infer Types extends TSchema[]> ? TExtendsRightUnion<Inferred, Left, Types> : Right extends TUnknown ? Result.TExtendsTrue<Inferred> : Result.TExtendsFalse);
|
|
24
|
+
export declare function ExtendsRight<Inferred extends TProperties, Left extends TSchema, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsRight<Inferred, Left, Right>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
3
|
+
import { IsSchema } from '../types/schema.mjs';
|
|
4
|
+
import { IsAny } from '../types/any.mjs';
|
|
5
|
+
import { IsEnum } from '../types/enum.mjs';
|
|
6
|
+
import { IsInfer } from '../types/infer.mjs';
|
|
7
|
+
import { IsIntersect } from '../types/intersect.mjs';
|
|
8
|
+
import { IsTemplateLiteral } from '../types/template-literal.mjs';
|
|
9
|
+
import { IsUnion } from '../types/union.mjs';
|
|
10
|
+
import { IsUnknown } from '../types/unknown.mjs';
|
|
11
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
12
|
+
import * as Result from './result.mjs';
|
|
13
|
+
import { TemplateLiteralDecode } from '../engine/template-literal/decode.mjs';
|
|
14
|
+
import { EnumValuesToUnion } from '../engine/enum/index.mjs';
|
|
15
|
+
function ExtendsRightInfer(inferred, name, left, right) {
|
|
16
|
+
const check = ExtendsLeft(inferred, left, right);
|
|
17
|
+
return (Result.IsExtendsTrueLike(check)
|
|
18
|
+
? Result.ExtendsTrue(Memory.Assign(Memory.Assign(inferred, check.inferred), { [name]: left }))
|
|
19
|
+
: Result.ExtendsFalse());
|
|
20
|
+
}
|
|
21
|
+
function ExtendsRightAny(inferred, left) {
|
|
22
|
+
return Result.ExtendsTrue(inferred);
|
|
23
|
+
}
|
|
24
|
+
function ExtendsRightEnum(inferred, left, right) {
|
|
25
|
+
const union = EnumValuesToUnion(right);
|
|
26
|
+
return ExtendsLeft(inferred, left, union);
|
|
27
|
+
}
|
|
28
|
+
function ExtendsRightIntersect(inferred, left, right) {
|
|
29
|
+
const [head, ...tail] = right;
|
|
30
|
+
return (IsSchema(head) ? (() => {
|
|
31
|
+
const check = ExtendsLeft(inferred, left, head);
|
|
32
|
+
return Result.IsExtendsTrueLike(check)
|
|
33
|
+
? ExtendsRightIntersect(check.inferred, left, tail)
|
|
34
|
+
: Result.ExtendsFalse();
|
|
35
|
+
})() : Result.ExtendsTrue(inferred));
|
|
36
|
+
}
|
|
37
|
+
function ExtendsRightTemplateLiteral(inferred, left, right) {
|
|
38
|
+
const decoded = TemplateLiteralDecode(right);
|
|
39
|
+
return ExtendsLeft(inferred, left, decoded);
|
|
40
|
+
}
|
|
41
|
+
function ExtendsRightUnion(inferred, left, right) {
|
|
42
|
+
const [head, ...tail] = right;
|
|
43
|
+
return (IsSchema(head) ? (() => {
|
|
44
|
+
const check = ExtendsLeft(inferred, left, head);
|
|
45
|
+
return Result.IsExtendsTrueLike(check)
|
|
46
|
+
? Result.ExtendsTrue(check.inferred)
|
|
47
|
+
: ExtendsRightUnion(inferred, left, tail);
|
|
48
|
+
})() : Result.ExtendsFalse());
|
|
49
|
+
}
|
|
50
|
+
export function ExtendsRight(inferred, left, right) {
|
|
51
|
+
return (IsAny(right) ? ExtendsRightAny(inferred, left) :
|
|
52
|
+
IsEnum(right) ? ExtendsRightEnum(inferred, left, right.enum) :
|
|
53
|
+
IsInfer(right) ? ExtendsRightInfer(inferred, right.name, left, right.extends) :
|
|
54
|
+
IsIntersect(right) ? ExtendsRightIntersect(inferred, left, right.allOf) :
|
|
55
|
+
IsTemplateLiteral(right) ? ExtendsRightTemplateLiteral(inferred, left, right.pattern) :
|
|
56
|
+
IsUnion(right) ? ExtendsRightUnion(inferred, left, right.anyOf) :
|
|
57
|
+
IsUnknown(right) ? Result.ExtendsTrue(inferred) :
|
|
58
|
+
Result.ExtendsFalse());
|
|
59
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TCyclic } from '../types/cyclic.mjs';
|
|
4
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
5
|
+
import { type TCyclicExtends } from '../engine/cyclic/index.mjs';
|
|
6
|
+
type TNormal<Type extends TSchema> = (Type extends TCyclic ? TCyclicExtends<Type> : Type);
|
|
7
|
+
/** Performs a structural extends check on left and right types and yields inferred types on right if specified. */
|
|
8
|
+
export type TExtends<Inferred extends TProperties, Left extends TSchema, Right extends TSchema, NormalLeft extends TSchema = TNormal<Left>, NormalRight extends TSchema = TNormal<Right>> = TExtendsLeft<Inferred, NormalLeft, NormalRight>;
|
|
9
|
+
/** Performs a structural extends check on left and right types and yields inferred types on right if specified. */
|
|
10
|
+
export declare function Extends<Inferred extends TProperties, Left extends TSchema, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtends<Inferred, Left, Right>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsCyclic } from '../types/cyclic.mjs';
|
|
3
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
4
|
+
import { CyclicExtends } from '../engine/cyclic/index.mjs';
|
|
5
|
+
function Normal(type) {
|
|
6
|
+
return (IsCyclic(type)
|
|
7
|
+
? CyclicExtends(type)
|
|
8
|
+
: type);
|
|
9
|
+
}
|
|
10
|
+
/** Performs a structural extends check on left and right types and yields inferred types on right if specified. */
|
|
11
|
+
export function Extends(inferred, left, right) {
|
|
12
|
+
const normalLeft = Normal(left);
|
|
13
|
+
const normalRight = Normal(right);
|
|
14
|
+
return ExtendsLeft(inferred, normalLeft, normalRight);
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TFunction } from '../types/function.mjs';
|
|
4
|
+
import * as Result from './result.mjs';
|
|
5
|
+
import { type TExtendsParameters } from './parameters.mjs';
|
|
6
|
+
import { type TExtendsReturnType } from './return-type.mjs';
|
|
7
|
+
export type TExtendsFunction<Inferred extends TProperties, Parameters extends TSchema[], ReturnType extends TSchema, Right extends TSchema> = (Right extends TFunction<infer RightParamters extends TSchema[], infer RightReturnType extends TSchema> ? TExtendsParameters<Inferred, Parameters, RightParamters> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsReturnType<Inferred, ReturnType, RightReturnType> : Result.TExtendsFalse : Result.TExtendsFalse);
|
|
8
|
+
export declare function ExtendsFunction<Inferred extends TProperties, Parameters extends TSchema[], ReturnType extends TSchema, Right extends TSchema>(inferred: Inferred, parameters: [...Parameters], returnType: ReturnType, right: Right): TExtendsFunction<Inferred, Parameters, ReturnType, Right>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsFunction } from '../types/function.mjs';
|
|
3
|
+
import * as Result from './result.mjs';
|
|
4
|
+
// ------------------------------------------------------------------
|
|
5
|
+
// Parameters | ReturnType
|
|
6
|
+
// ------------------------------------------------------------------
|
|
7
|
+
import { ExtendsParameters } from './parameters.mjs';
|
|
8
|
+
import { ExtendsReturnType } from './return-type.mjs';
|
|
9
|
+
export function ExtendsFunction(inferred, parameters, returnType, right) {
|
|
10
|
+
return (IsFunction(right) ? (() => {
|
|
11
|
+
const check = ExtendsParameters(inferred, parameters, right.parameters);
|
|
12
|
+
return Result.IsExtendsTrueLike(check)
|
|
13
|
+
? ExtendsReturnType(check.inferred, returnType, right.returnType)
|
|
14
|
+
: Result.ExtendsFalse();
|
|
15
|
+
})() : Result.ExtendsFalse());
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type TUnreachable } from '../../system/unreachable/index.mjs';
|
|
2
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
3
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
4
|
+
import { type TArray } from '../types/array.mjs';
|
|
5
|
+
import { type TUnknown } from '../types/unknown.mjs';
|
|
6
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
7
|
+
import { type TTuple } from '../types/tuple.mjs';
|
|
8
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
9
|
+
import { type TUnion } from '../types/union.mjs';
|
|
10
|
+
import { type TInfer } from '../types/infer.mjs';
|
|
11
|
+
import { type TRest } from '../types/rest.mjs';
|
|
12
|
+
import * as Result from './result.mjs';
|
|
13
|
+
export interface TInferable<Name extends string = string, Type extends TSchema = TSchema> {
|
|
14
|
+
'~kind': 'Inferrable';
|
|
15
|
+
name: Name;
|
|
16
|
+
type: Type;
|
|
17
|
+
}
|
|
18
|
+
export declare function Inferrable<Name extends string, Type extends TSchema = TSchema>(name: Name, type: Type): never;
|
|
19
|
+
export declare function IsInferable(value: unknown): value is TInferable;
|
|
20
|
+
export type TTryRestInferable<Type extends TSchema, Result extends TInferable | undefined = (Type extends TRest<infer RestType extends TSchema> ? RestType extends TInfer<infer Name extends string, infer Type extends TSchema> ? Type extends TArray<infer Type extends TSchema> ? TInferable<Name, Type> : Type extends TUnknown ? TInferable<Name, Type> : undefined : TUnreachable : undefined)> = Result;
|
|
21
|
+
export declare function TryRestInferable<Type extends TSchema>(type: Type): TTryRestInferable<Type>;
|
|
22
|
+
export type TTryInferable<Type extends TSchema, Result extends TInferable | undefined = (Type extends TInfer<infer Name extends string, infer Type extends TSchema> ? TInferable<Name, Type> : undefined)> = Result;
|
|
23
|
+
export declare function TryInferable<Type extends TSchema>(type: Type): TTryInferable<Type>;
|
|
24
|
+
type TryInferResults<Rest extends TSchema[], Right extends TSchema, Result extends TSchema[] = []> = (Rest extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft<{}, Head, Right> extends Result.TExtendsTrueLike<TProperties> ? TryInferResults<Tail, Right, [...Result, Head]> : undefined : Result);
|
|
25
|
+
declare function TryInferResults<Rest extends TSchema[], Right extends TSchema>(rest: [...Rest], right: Right, result?: TSchema[]): TryInferResults<Rest, Right>;
|
|
26
|
+
export type TInferTupleResult<Inferred extends TProperties, Name extends string, Left extends TSchema[], Right extends TSchema, Results extends TSchema[] | undefined = TryInferResults<Left, Right>> = (Results extends [...infer Results extends TSchema[]] ? Result.TExtendsTrue<Memory.TAssign<Inferred, {
|
|
27
|
+
[_ in Name]: TTuple<Results>;
|
|
28
|
+
}>> : Result.TExtendsFalse);
|
|
29
|
+
export declare function InferTupleResult<Inferred extends TProperties, Name extends string, Left extends TSchema[], Right extends TSchema>(inferred: Inferred, name: Name, left: Left, right: Right): TInferTupleResult<Inferred, Name, Left, Right>;
|
|
30
|
+
export type TInferUnionResult<Inferred extends TProperties, Name extends string, Left extends TSchema[], Right extends TSchema, Results extends TSchema[] | undefined = TryInferResults<Left, Right>> = (Results extends [...infer Results extends TSchema[]] ? Result.TExtendsTrue<Memory.TAssign<Inferred, {
|
|
31
|
+
[_ in Name]: TUnion<Results>;
|
|
32
|
+
}>> : Result.TExtendsFalse);
|
|
33
|
+
export declare function InferUnionResult<Inferred extends TProperties, Name extends string, Left extends TSchema[], Right extends TSchema>(inferred: Inferred, name: Name, left: Left, right: Right): TInferUnionResult<Inferred, Name, Left, Right>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Unreachable } from '../../system/unreachable/index.mjs';
|
|
3
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
4
|
+
import { Guard } from '../../guard/index.mjs';
|
|
5
|
+
// ----------------------------------------------------------------------------
|
|
6
|
+
// Schematics
|
|
7
|
+
// ----------------------------------------------------------------------------
|
|
8
|
+
import { IsSchema } from '../types/schema.mjs';
|
|
9
|
+
import { IsArray } from '../types/array.mjs';
|
|
10
|
+
import { IsUnknown } from '../types/unknown.mjs';
|
|
11
|
+
import { Tuple } from '../types/tuple.mjs';
|
|
12
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
13
|
+
import { Union } from '../types/union.mjs';
|
|
14
|
+
// ----------------------------------------------------------------------------
|
|
15
|
+
// Operator
|
|
16
|
+
// ----------------------------------------------------------------------------
|
|
17
|
+
import { IsInfer } from '../types/infer.mjs';
|
|
18
|
+
import { IsRest } from '../types/rest.mjs';
|
|
19
|
+
import * as Result from './result.mjs';
|
|
20
|
+
// ----------------------------------------------------------------------------
|
|
21
|
+
// Factory
|
|
22
|
+
// ----------------------------------------------------------------------------
|
|
23
|
+
export function Inferrable(name, type) {
|
|
24
|
+
return Memory.Create({ '~kind': 'Inferrable' }, { name, type }, {});
|
|
25
|
+
}
|
|
26
|
+
// ----------------------------------------------------------------------------
|
|
27
|
+
// Guard
|
|
28
|
+
// ----------------------------------------------------------------------------
|
|
29
|
+
export function IsInferable(value) {
|
|
30
|
+
return Guard.IsObject(value)
|
|
31
|
+
&& Guard.HasPropertyKey(value, '~kind')
|
|
32
|
+
&& Guard.HasPropertyKey(value, 'name')
|
|
33
|
+
&& Guard.HasPropertyKey(value, 'type')
|
|
34
|
+
&& Guard.IsEqual(value["~kind"], 'Inferrable')
|
|
35
|
+
&& Guard.IsString(value.name)
|
|
36
|
+
&& Guard.IsObject(value.type);
|
|
37
|
+
}
|
|
38
|
+
export function TryRestInferable(type) {
|
|
39
|
+
return (IsRest(type)
|
|
40
|
+
? IsInfer(type.items)
|
|
41
|
+
? IsArray(type.items.extends) ? Inferrable(type.items.name, type.items.extends.items) :
|
|
42
|
+
IsUnknown(type.items.extends) ? Inferrable(type.items.name, type.items.extends) :
|
|
43
|
+
undefined
|
|
44
|
+
: Unreachable() // undefined
|
|
45
|
+
: undefined);
|
|
46
|
+
}
|
|
47
|
+
export function TryInferable(type) {
|
|
48
|
+
return (IsInfer(type) ? Inferrable(type.name, type.extends) :
|
|
49
|
+
undefined);
|
|
50
|
+
}
|
|
51
|
+
function TryInferResults(rest, right, result = []) {
|
|
52
|
+
const [head, ...tail] = rest;
|
|
53
|
+
return (IsSchema(head)
|
|
54
|
+
? (() => {
|
|
55
|
+
const check = ExtendsLeft({}, head, right);
|
|
56
|
+
return Result.IsExtendsTrueLike(check)
|
|
57
|
+
? TryInferResults(tail, right, [...result, head])
|
|
58
|
+
: undefined;
|
|
59
|
+
})() : result);
|
|
60
|
+
}
|
|
61
|
+
export function InferTupleResult(inferred, name, left, right) {
|
|
62
|
+
const results = TryInferResults(left, right);
|
|
63
|
+
return (Guard.IsArray(results)
|
|
64
|
+
? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Tuple(results) }))
|
|
65
|
+
: Result.ExtendsFalse());
|
|
66
|
+
}
|
|
67
|
+
export function InferUnionResult(inferred, name, left, right) {
|
|
68
|
+
const results = TryInferResults(left, right);
|
|
69
|
+
return (Guard.IsArray(results)
|
|
70
|
+
? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Union(results) }))
|
|
71
|
+
: Result.ExtendsFalse());
|
|
72
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TInteger } from '../types/integer.mjs';
|
|
4
|
+
import { type TNumber } from '../types/number.mjs';
|
|
5
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
6
|
+
import * as Result from './result.mjs';
|
|
7
|
+
export type TExtendsInteger<Inferred extends TProperties, Left extends TInteger, Right extends TSchema> = (Right extends TInteger ? Result.TExtendsTrue<Inferred> : Right extends TNumber ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, Left, Right>);
|
|
8
|
+
export declare function ExtendsInteger<Inferred extends TProperties, Left extends TInteger, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsInteger<Inferred, Left, Right>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsInteger } from '../types/integer.mjs';
|
|
3
|
+
import { IsNumber } from '../types/number.mjs';
|
|
4
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
5
|
+
import * as Result from './result.mjs';
|
|
6
|
+
export function ExtendsInteger(inferred, left, right) {
|
|
7
|
+
return (IsInteger(right) ? Result.ExtendsTrue(inferred) :
|
|
8
|
+
IsNumber(right) ? Result.ExtendsTrue(inferred) :
|
|
9
|
+
ExtendsRight(inferred, left, right));
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
2
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
3
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
4
|
+
import { type TEvaluateIntersect } from '../engine/evaluate/index.mjs';
|
|
5
|
+
export type TExtendsIntersect<Inferred extends TProperties, Left extends TSchema[], Right extends TSchema, Evaluated extends TSchema = TEvaluateIntersect<Left>> = TExtendsLeft<Inferred, Evaluated, Right>;
|
|
6
|
+
export declare function ExtendsIntersect<Inferred extends TProperties, Left extends TSchema[], Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsIntersect<Inferred, Left, Right>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
3
|
+
// ----------------------------------------------------------------------------
|
|
4
|
+
// ExtendsIntersect
|
|
5
|
+
//
|
|
6
|
+
// This function evaluates the intersection and continues. This is different
|
|
7
|
+
// to IntersectRight which MUST enumerate each type to derive Inferred. Left
|
|
8
|
+
// side types do not infer so it should be ok to do this.
|
|
9
|
+
//
|
|
10
|
+
// ----------------------------------------------------------------------------
|
|
11
|
+
import { EvaluateIntersect } from '../engine/evaluate/index.mjs';
|
|
12
|
+
export function ExtendsIntersect(inferred, left, right) {
|
|
13
|
+
const evaluated = EvaluateIntersect(left);
|
|
14
|
+
return ExtendsLeft(inferred, evaluated, right);
|
|
15
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TIterator } from '../types/iterator.mjs';
|
|
4
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
5
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
6
|
+
export type TExtendsIterator<Inferred extends TProperties, Left extends TSchema, Right extends TSchema> = (Right extends TIterator<infer Type extends TSchema> ? TExtendsLeft<Inferred, Left, Type> : TExtendsRight<Inferred, TIterator<Left>, Right>);
|
|
7
|
+
export declare function ExtendsIterator<Inferred extends TProperties, Left extends TSchema, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsIterator<Inferred, Left, Right>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Iterator, IsIterator } from '../types/iterator.mjs';
|
|
3
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
4
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
5
|
+
export function ExtendsIterator(inferred, left, right) {
|
|
6
|
+
return (IsIterator(right)
|
|
7
|
+
? ExtendsLeft(inferred, left, right.iteratorItems)
|
|
8
|
+
: ExtendsRight(inferred, Iterator(left), right));
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TLiteral, type TLiteralValue } from '../types/literal.mjs';
|
|
4
|
+
import { type TBigInt } from '../types/bigint.mjs';
|
|
5
|
+
import { type TBoolean } from '../types/boolean.mjs';
|
|
6
|
+
import { type TNumber } from '../types/number.mjs';
|
|
7
|
+
import { type TString } from '../types/string.mjs';
|
|
8
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
9
|
+
import * as Result from './result.mjs';
|
|
10
|
+
type TExtendsLiteralValue<Inferred extends TProperties, Left extends TLiteralValue, Right extends TLiteralValue> = (Left extends Right ? Result.TExtendsTrue<Inferred> : Result.TExtendsFalse);
|
|
11
|
+
type TExtendsLiteralBigInt<Inferred extends TProperties, Left extends bigint, Right extends TSchema> = (Right extends TLiteral<infer Value extends bigint> ? TExtendsLiteralValue<Inferred, Left, Value> : Right extends TBigInt ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, TLiteral<Left>, Right>);
|
|
12
|
+
type TExtendsLiteralBoolean<Inferred extends TProperties, Left extends boolean, Right extends TSchema> = (Right extends TLiteral<infer Value extends boolean> ? TExtendsLiteralValue<Inferred, Left, Value> : Right extends TBoolean ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, TLiteral<Left>, Right>);
|
|
13
|
+
type TExtendsLiteralNumber<Inferred extends TProperties, Left extends number, Right extends TSchema> = (Right extends TLiteral<infer Value extends number> ? TExtendsLiteralValue<Inferred, Left, Value> : Right extends TNumber ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, TLiteral<Left>, Right>);
|
|
14
|
+
type TExtendsLiteralString<Inferred extends TProperties, Left extends string, Right extends TSchema> = (Right extends TLiteral<infer Value extends string> ? TExtendsLiteralValue<Inferred, Left, Value> : Right extends TString ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, TLiteral<Left>, Right>);
|
|
15
|
+
export type TExtendsLiteral<Inferred extends TProperties, Left extends TLiteral, Right extends TSchema> = (Left extends TLiteral<infer Value extends bigint> ? TExtendsLiteralBigInt<Inferred, Value, Right> : Left extends TLiteral<infer Value extends boolean> ? TExtendsLiteralBoolean<Inferred, Value, Right> : Left extends TLiteral<infer Value extends number> ? TExtendsLiteralNumber<Inferred, Value, Right> : Left extends TLiteral<infer Value extends string> ? TExtendsLiteralString<Inferred, Value, Right> : TExtendsRight<Inferred, Left, Right>);
|
|
16
|
+
export declare function ExtendsLiteral<Inferred extends TProperties, Left extends TLiteral, Right extends TSchema>(inferred: TProperties, left: Left, right: Right): TExtendsLiteral<Inferred, Left, Right>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Guard } from '../../guard/index.mjs';
|
|
3
|
+
import { IsLiteral, Literal } from '../types/literal.mjs';
|
|
4
|
+
import { IsBigInt } from '../types/bigint.mjs';
|
|
5
|
+
import { IsBoolean } from '../types/boolean.mjs';
|
|
6
|
+
import { IsNumber } from '../types/number.mjs';
|
|
7
|
+
import { IsString } from '../types/string.mjs';
|
|
8
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
9
|
+
import * as Result from './result.mjs';
|
|
10
|
+
function ExtendsLiteralValue(inferred, left, right) {
|
|
11
|
+
return (left === right
|
|
12
|
+
? Result.ExtendsTrue(inferred)
|
|
13
|
+
: Result.ExtendsFalse());
|
|
14
|
+
}
|
|
15
|
+
function ExtendsLiteralBigInt(inferred, left, right) {
|
|
16
|
+
return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :
|
|
17
|
+
IsBigInt(right) ? Result.ExtendsTrue(inferred) :
|
|
18
|
+
ExtendsRight(inferred, Literal(left), right));
|
|
19
|
+
}
|
|
20
|
+
function ExtendsLiteralBoolean(inferred, left, right) {
|
|
21
|
+
return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :
|
|
22
|
+
IsBoolean(right) ? Result.ExtendsTrue(inferred) :
|
|
23
|
+
ExtendsRight(inferred, Literal(left), right));
|
|
24
|
+
}
|
|
25
|
+
function ExtendsLiteralNumber(inferred, left, right) {
|
|
26
|
+
return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :
|
|
27
|
+
IsNumber(right) ? Result.ExtendsTrue(inferred) :
|
|
28
|
+
ExtendsRight(inferred, Literal(left), right));
|
|
29
|
+
}
|
|
30
|
+
function ExtendsLiteralString(inferred, left, right) {
|
|
31
|
+
return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :
|
|
32
|
+
IsString(right) ? Result.ExtendsTrue(inferred) :
|
|
33
|
+
ExtendsRight(inferred, Literal(left), right));
|
|
34
|
+
}
|
|
35
|
+
export function ExtendsLiteral(inferred, left, right) {
|
|
36
|
+
return (Guard.IsBigInt(left.const) ? ExtendsLiteralBigInt(inferred, left.const, right) :
|
|
37
|
+
Guard.IsBoolean(left.const) ? ExtendsLiteralBoolean(inferred, left.const, right) :
|
|
38
|
+
Guard.IsNumber(left.const) ? ExtendsLiteralNumber(inferred, left.const, right) :
|
|
39
|
+
Guard.IsString(left.const) ? ExtendsLiteralString(inferred, left.const, right) :
|
|
40
|
+
ExtendsRight(inferred, left, right));
|
|
41
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TNever } from '../types/never.mjs';
|
|
4
|
+
import { type TInfer } from '../types/infer.mjs';
|
|
5
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
6
|
+
import * as Result from './result.mjs';
|
|
7
|
+
export type TExtendsNever<Inferred extends TProperties, Left extends TNever, Right extends TSchema> = (Right extends TInfer ? TExtendsRight<Inferred, Left, Right> : Result.TExtendsTrue<Inferred>);
|
|
8
|
+
export declare function ExtendsNever<Inferred extends TProperties, Left extends TNever, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsNever<Inferred, Left, Right>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsInfer } from '../types/infer.mjs';
|
|
3
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
4
|
+
import * as Result from './result.mjs';
|
|
5
|
+
export function ExtendsNever(inferred, left, right) {
|
|
6
|
+
return (IsInfer(right)
|
|
7
|
+
? ExtendsRight(inferred, left, right)
|
|
8
|
+
: Result.ExtendsTrue(inferred));
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TNull } from '../types/null.mjs';
|
|
4
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
5
|
+
import * as Result from './result.mjs';
|
|
6
|
+
export type TExtendsNull<Inferred extends TProperties, Left extends TNull, Right extends TSchema> = (Right extends TNull ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, Left, Right>);
|
|
7
|
+
export declare function ExtendsNull<Inferred extends TProperties, Left extends TNull, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsNull<Inferred, Left, Right>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsNull } from '../types/null.mjs';
|
|
3
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
4
|
+
import * as Result from './result.mjs';
|
|
5
|
+
export function ExtendsNull(inferred, left, right) {
|
|
6
|
+
return (IsNull(right)
|
|
7
|
+
? Result.ExtendsTrue(inferred)
|
|
8
|
+
: ExtendsRight(inferred, left, right));
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
2
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
3
|
+
import { type TNumber } from '../types/number.mjs';
|
|
4
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
5
|
+
import * as Result from './result.mjs';
|
|
6
|
+
export type TExtendsNumber<Inferred extends TProperties, Left extends TNumber, Right extends TSchema> = (Right extends TNumber ? Result.TExtendsTrue<Inferred> : TExtendsRight<Inferred, Left, Right>);
|
|
7
|
+
export declare function ExtendsNumber<Inferred extends TProperties, Left extends TNumber, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsNumber<Inferred, Left, Right>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { IsNumber } from '../types/number.mjs';
|
|
3
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
4
|
+
import * as Result from './result.mjs';
|
|
5
|
+
export function ExtendsNumber(inferred, left, right) {
|
|
6
|
+
return (IsNumber(right)
|
|
7
|
+
? Result.ExtendsTrue(inferred)
|
|
8
|
+
: ExtendsRight(inferred, left, right));
|
|
9
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type TUnreachable } from '../../system/unreachable/index.mjs';
|
|
2
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
3
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
4
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
5
|
+
import { type TOptional } from '../types/_optional.mjs';
|
|
6
|
+
import { type TInfer } from '../types/infer.mjs';
|
|
7
|
+
import { type TNever } from '../types/never.mjs';
|
|
8
|
+
import { type TObject } from '../types/object.mjs';
|
|
9
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
10
|
+
import { type TExtendsRight } from './extends-right.mjs';
|
|
11
|
+
import { type TUnionToTuple } from '../engine/helpers/union.mjs';
|
|
12
|
+
import * as Result from './result.mjs';
|
|
13
|
+
type TExtendsPropertyOptional<Inferred extends TProperties, Left extends TSchema, Right extends TSchema> = (Left extends TOptional<Left> ? Right extends TOptional<Right> ? Result.TExtendsTrue<Inferred> : Result.TExtendsFalse : Result.TExtendsTrue<Inferred>);
|
|
14
|
+
type TExtendsProperty<Inferred extends TProperties, Left extends TSchema, Right extends TSchema> = (Right extends TInfer<string, TNever> ? Result.TExtendsFalse : TExtendsLeft<Inferred, Left, Right> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsPropertyOptional<Inferred, Left, Right> : Result.TExtendsFalse);
|
|
15
|
+
type TExtractInferredProperties<Keys extends PropertyKey[], Properties extends Record<PropertyKey, Result.TResult>, Result extends TProperties = {}> = (Keys extends [infer Left extends PropertyKey, ...infer Right extends PropertyKey[]] ? Left extends keyof Properties ? Properties[Left] extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtractInferredProperties<Right, Properties, Result & Inferred> : TExtractInferredProperties<Right, Properties, Result> : TUnreachable : Result);
|
|
16
|
+
type TExtendsPropertiesComparer<Inferred extends TProperties, Left extends TProperties, Right extends TProperties, Properties extends Record<PropertyKey, Result.TExtendsTrue | Result.TExtendsFalse> = {
|
|
17
|
+
[RightKey in keyof Right]: (RightKey extends keyof Left ? TExtendsProperty<{}, Left[RightKey], Right[RightKey]> : Right[RightKey] extends TOptional<Right[RightKey]> ? Right[RightKey] extends TInfer ? Result.TExtendsTrue<Memory.TAssign<Inferred, {
|
|
18
|
+
[_ in Right[RightKey]['name']]: Right[RightKey]['extends'];
|
|
19
|
+
}>> : Result.TExtendsTrue<Inferred> : Result.TExtendsFalse);
|
|
20
|
+
}, Checked extends boolean = Properties[keyof Right] extends Result.TExtendsTrueLike ? true : false, Extracted extends TProperties = Checked extends true ? TExtractInferredProperties<TUnionToTuple<keyof Properties>, Properties> : {}> = (Checked extends true ? Result.TExtendsTrue<Extracted> : Result.TExtendsFalse);
|
|
21
|
+
type TExtendsProperties<Inferred extends TProperties, Left extends TProperties, Right extends TProperties, Compared extends Result.TResult = TExtendsPropertiesComparer<Inferred, Left, Right>> = (Compared extends Result.TExtendsTrueLike<infer ComparedInferred extends TProperties> ? Result.TExtendsTrue<Memory.TAssign<Inferred, ComparedInferred>> : Result.TExtendsFalse);
|
|
22
|
+
type TExtendsObjectToObject<Inferred extends TProperties, Left extends TProperties, Right extends TProperties> = (TExtendsProperties<Inferred, Left, Right>);
|
|
23
|
+
export type TExtendsObject<Inferred extends TProperties, Left extends TProperties, Right extends TSchema> = (Right extends TObject<infer Properties extends TProperties> ? TExtendsObjectToObject<Inferred, Left, Properties> : TExtendsRight<Inferred, TObject<Left>, Right>);
|
|
24
|
+
export declare function ExtendsObject<Inferred extends TProperties, Left extends TProperties, Right extends TSchema>(inferred: Inferred, left: Left, right: Right): TExtendsObject<Inferred, Left, Right>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// deno-fmt-ignore-file
|
|
2
|
+
import { Unreachable } from '../../system/unreachable/index.mjs';
|
|
3
|
+
import { Memory } from '../../system/memory/index.mjs';
|
|
4
|
+
import { Guard } from '../../guard/index.mjs';
|
|
5
|
+
import { IsOptional } from '../types/_optional.mjs';
|
|
6
|
+
import { IsInfer } from '../types/infer.mjs';
|
|
7
|
+
import { IsNever } from '../types/never.mjs';
|
|
8
|
+
import { IsObject, Object } from '../types/object.mjs';
|
|
9
|
+
import { ExtendsLeft } from './extends-left.mjs';
|
|
10
|
+
import { ExtendsRight } from './extends-right.mjs';
|
|
11
|
+
import * as Result from './result.mjs';
|
|
12
|
+
function ExtendsPropertyOptional(inferred, left, right) {
|
|
13
|
+
return (IsOptional(left)
|
|
14
|
+
? IsOptional(right)
|
|
15
|
+
? Result.ExtendsTrue(inferred)
|
|
16
|
+
: Result.ExtendsFalse()
|
|
17
|
+
: Result.ExtendsTrue(inferred));
|
|
18
|
+
}
|
|
19
|
+
function ExtendsProperty(inferred, left, right) {
|
|
20
|
+
return (
|
|
21
|
+
// Right TInfer<TNever> is TExtendsFalse
|
|
22
|
+
IsInfer(right) && IsNever(right.extends) ? Result.ExtendsFalse() : (() => {
|
|
23
|
+
const check = ExtendsLeft(inferred, left, right);
|
|
24
|
+
return (Result.IsExtendsTrueLike(check)
|
|
25
|
+
? ExtendsPropertyOptional(check.inferred, left, right)
|
|
26
|
+
: Result.ExtendsFalse());
|
|
27
|
+
})());
|
|
28
|
+
}
|
|
29
|
+
function ExtractInferredProperties(keys, properties) {
|
|
30
|
+
return keys.reduce((result, key) => {
|
|
31
|
+
return key in properties
|
|
32
|
+
? Result.IsExtendsTrueLike(properties[key])
|
|
33
|
+
// @ts-ignore 5.0.4 cannot see `.inferred`
|
|
34
|
+
? { ...result, ...properties[key].inferred }
|
|
35
|
+
: Unreachable() // result
|
|
36
|
+
: Unreachable(); // result
|
|
37
|
+
}, {});
|
|
38
|
+
}
|
|
39
|
+
function ExtendsPropertiesComparer(inferred, left, right) {
|
|
40
|
+
const properties = {};
|
|
41
|
+
for (const rightKey of Guard.Keys(right)) {
|
|
42
|
+
properties[rightKey] = (rightKey in left
|
|
43
|
+
// We don't consider the exterior Inferred as part of the property check as
|
|
44
|
+
// we don't want the exterior Context to override the Inferred Context for
|
|
45
|
+
// the Property Key. This override behavior is observed in the following
|
|
46
|
+
// case we want the inferred A to shadow the exterior A.
|
|
47
|
+
//
|
|
48
|
+
// const A = Type.Script(`{ x: 1, y: 1 }`)
|
|
49
|
+
// const S = Type.Script({ A }, `{
|
|
50
|
+
// [K in keyof A]: A extends {
|
|
51
|
+
// x: infer A,
|
|
52
|
+
// y: infer B
|
|
53
|
+
// } ? [A, B] <-- inferred 'A' shadows the exterior 'A'
|
|
54
|
+
// : never
|
|
55
|
+
// }`)
|
|
56
|
+
? ExtendsProperty({}, left[rightKey], right[rightKey])
|
|
57
|
+
// If the right key K is not in left, but the right property is optional
|
|
58
|
+
// then we say this property is permissable. This is because an optional
|
|
59
|
+
// property on right is the same as property missing in left. If the
|
|
60
|
+
// right is infer, then we just assign the extend type to inferred.
|
|
61
|
+
: IsOptional(right[rightKey])
|
|
62
|
+
? IsInfer(right[rightKey])
|
|
63
|
+
// @ts-ignore 5.0.1 - cannot observe extend in right[rightKey].extends
|
|
64
|
+
? Result.ExtendsTrue(Memory.Assign(inferred, { [right[rightKey].name]: right[rightKey].extends }))
|
|
65
|
+
: Result.ExtendsTrue(inferred)
|
|
66
|
+
: Result.ExtendsFalse());
|
|
67
|
+
}
|
|
68
|
+
// Check if all properties are ExtendsTrueLike
|
|
69
|
+
const checked = Guard.Values(properties).every(result => Result.IsExtendsTrueLike(result));
|
|
70
|
+
// Extract inferred results from properties, but only if the check is true.
|
|
71
|
+
const extracted = checked ? ExtractInferredProperties(Guard.Keys(properties), properties) : {};
|
|
72
|
+
return (checked
|
|
73
|
+
? Result.ExtendsTrue(extracted)
|
|
74
|
+
: Result.ExtendsFalse());
|
|
75
|
+
}
|
|
76
|
+
function ExtendsProperties(inferred, left, right) {
|
|
77
|
+
const compared = ExtendsPropertiesComparer(inferred, left, right);
|
|
78
|
+
return (Result.IsExtendsTrueLike(compared)
|
|
79
|
+
? Result.ExtendsTrue(Memory.Assign(inferred, compared.inferred))
|
|
80
|
+
: Result.ExtendsFalse());
|
|
81
|
+
}
|
|
82
|
+
function ExtendsObjectToObject(inferred, left, right) {
|
|
83
|
+
return ExtendsProperties(inferred, left, right);
|
|
84
|
+
}
|
|
85
|
+
export function ExtendsObject(inferred, left, right) {
|
|
86
|
+
return (IsObject(right)
|
|
87
|
+
? ExtendsObjectToObject(inferred, left, right.properties)
|
|
88
|
+
: ExtendsRight(inferred, Object(left), right));
|
|
89
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type TInfer } from '../types/infer.mjs';
|
|
2
|
+
import { type TSchema } from '../types/schema.mjs';
|
|
3
|
+
import { type TOptional } from '../types/_optional.mjs';
|
|
4
|
+
import { type TProperties } from '../types/properties.mjs';
|
|
5
|
+
import { type TExtendsLeft } from './extends-left.mjs';
|
|
6
|
+
import * as Result from './result.mjs';
|
|
7
|
+
type TParameterCompare<Inferred extends TProperties, Left extends TSchema, LeftRest extends TSchema[], Right extends TSchema, RightRest extends TSchema[], CheckLeft extends TSchema = Right extends TInfer ? Left : Right, CheckRight extends TSchema = Right extends TInfer ? Right : Left, IsLeftOptional extends boolean = Left extends TOptional ? true : false, IsRightOptional extends boolean = Right extends TOptional ? true : false> = ([
|
|
8
|
+
IsLeftOptional,
|
|
9
|
+
IsRightOptional
|
|
10
|
+
] extends [false, true] ? Result.TExtendsFalse : TExtendsLeft<Inferred, CheckLeft, CheckRight> extends Result.TExtendsTrueLike<infer Inferred extends TProperties> ? TExtendsParameters<Inferred, LeftRest, RightRest> : Result.TExtendsFalse);
|
|
11
|
+
type TParameterRight<Inferred extends TProperties, Left extends TSchema, LeftRest extends TSchema[], RightRest extends TSchema[]> = (RightRest extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TParameterCompare<Inferred, Left, LeftRest, Head, Tail> : Left extends TOptional ? Result.TExtendsTrue<Inferred> : Result.TExtendsFalse);
|
|
12
|
+
type TParameterLeft<Inferred extends TProperties, LeftRest extends TSchema[], RightRest extends TSchema[]> = (LeftRest extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TParameterRight<Inferred, Head, Tail, RightRest> : Result.TExtendsTrue<Inferred>);
|
|
13
|
+
export type TExtendsParameters<Inferred extends TProperties, Left extends TSchema[], Right extends TSchema[]> = TParameterLeft<Inferred, Left, Right>;
|
|
14
|
+
export declare function ExtendsParameters<Inferred extends TProperties, Left extends TSchema[], Right extends TSchema[]>(inferred: Inferred, left: Left, right: Right): TExtendsParameters<Inferred, Left, Right>;
|
|
15
|
+
export {};
|