inferred-types 0.44.0 → 0.45.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/Characters.d.ts +2 -0
- package/dist/constants/Characters.d.ts.map +1 -0
- package/dist/constants/Characters.js +5 -0
- package/dist/constants/NetworkConstants.d.ts +29 -0
- package/dist/constants/NetworkConstants.d.ts.map +1 -0
- package/dist/constants/NetworkConstants.js +83 -0
- package/dist/constants/Phone.d.ts +8 -0
- package/dist/constants/Phone.d.ts.map +1 -0
- package/dist/constants/Phone.js +262 -0
- package/dist/constants/ProxmoxConstants.d.ts +2 -0
- package/dist/constants/ProxmoxConstants.d.ts.map +1 -0
- package/dist/constants/ProxmoxConstants.js +3 -0
- package/dist/constants/index.d.ts +4 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +4 -1
- package/dist/constants/tsconfig.tsbuildinfo +1 -1
- package/dist/inferred-types/index.cjs +1657 -1029
- package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/api/defineApi.d.ts +56 -0
- package/dist/runtime/api/defineApi.d.ts.map +1 -0
- package/dist/runtime/api/defineApi.js +97 -0
- package/dist/runtime/api/handleDoneFn.d.ts.map +1 -0
- package/dist/runtime/api/index.d.ts +3 -0
- package/dist/runtime/api/index.d.ts.map +1 -0
- package/dist/runtime/api/index.js +2 -0
- package/dist/runtime/boolean-logic/ifArrayPartial.d.ts +1 -1
- package/dist/runtime/boolean-logic/ifArrayPartial.d.ts.map +1 -1
- package/dist/runtime/boolean-logic/ifArrayPartial.js +1 -1
- package/dist/runtime/boolean-logic/ifLength.d.ts.map +1 -1
- package/dist/runtime/boolean-logic/ifScalar.d.ts.map +1 -1
- package/dist/runtime/boolean-logic/ifScalar.js +1 -1
- package/dist/runtime/boolean-logic/index.d.ts +0 -1
- package/dist/runtime/boolean-logic/index.d.ts.map +1 -1
- package/dist/runtime/boolean-logic/index.js +0 -1
- package/dist/runtime/dictionary/defineOptions.d.ts +26 -0
- package/dist/runtime/dictionary/defineOptions.d.ts.map +1 -0
- package/dist/runtime/dictionary/defineOptions.js +30 -0
- package/dist/runtime/dictionary/keysOf.d.ts +1 -1
- package/dist/runtime/dictionary/keysOf.d.ts.map +1 -1
- package/dist/runtime/dictionary/withKeys.d.ts +1 -1
- package/dist/runtime/errors/KindError.d.ts +2 -2
- package/dist/runtime/errors/KindError.d.ts.map +1 -1
- package/dist/runtime/functions/index.d.ts +1 -0
- package/dist/runtime/functions/index.d.ts.map +1 -1
- package/dist/runtime/functions/index.js +1 -0
- package/dist/runtime/functions/wrapFn.d.ts +2 -0
- package/dist/runtime/functions/wrapFn.d.ts.map +1 -0
- package/dist/runtime/functions/wrapFn.js +24 -0
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -10
- package/dist/runtime/lists/find.d.ts +1 -1
- package/dist/runtime/lists/find.d.ts.map +1 -1
- package/dist/runtime/lists/intersection.d.ts.map +1 -1
- package/dist/runtime/lists/intersection.js +2 -1
- package/dist/runtime/literals/asPhoneNumber.d.ts +10 -0
- package/dist/runtime/literals/asPhoneNumber.d.ts.map +1 -0
- package/dist/runtime/literals/asPhoneNumber.js +62 -0
- package/dist/runtime/literals/index.d.ts +5 -0
- package/dist/runtime/literals/index.d.ts.map +1 -1
- package/dist/runtime/literals/index.js +5 -0
- package/dist/runtime/literals/retainChars.d.ts +16 -0
- package/dist/runtime/literals/retainChars.d.ts.map +1 -0
- package/dist/runtime/literals/retainChars.js +17 -0
- package/dist/runtime/literals/retainWhile.d.ts +11 -0
- package/dist/runtime/literals/retainWhile.d.ts.map +1 -0
- package/dist/runtime/literals/retainWhile.js +12 -0
- package/dist/runtime/literals/stripChars.d.ts +10 -0
- package/dist/runtime/literals/stripChars.d.ts.map +1 -0
- package/dist/runtime/literals/stripChars.js +11 -0
- package/dist/runtime/literals/stripLeading.d.ts +3 -3
- package/dist/runtime/literals/stripLeading.d.ts.map +1 -1
- package/dist/runtime/literals/stripLeading.js +5 -5
- package/dist/runtime/literals/takeNumericCharacters.d.ts +9 -0
- package/dist/runtime/literals/takeNumericCharacters.d.ts.map +1 -0
- package/dist/runtime/literals/takeNumericCharacters.js +12 -0
- package/dist/runtime/literals/unset.d.ts +8 -0
- package/dist/runtime/literals/unset.d.ts.map +1 -0
- package/dist/runtime/literals/unset.js +14 -0
- package/dist/runtime/meta/index.d.ts +3 -0
- package/dist/runtime/meta/index.d.ts.map +1 -0
- package/dist/runtime/meta/index.js +2 -0
- package/dist/runtime/meta/urlMeta.d.ts +52 -0
- package/dist/runtime/meta/urlMeta.d.ts.map +1 -0
- package/dist/runtime/meta/urlMeta.js +57 -0
- package/dist/runtime/meta/youtube-meta.d.ts +38 -0
- package/dist/runtime/meta/youtube-meta.d.ts.map +1 -0
- package/dist/runtime/meta/youtube-meta.js +67 -0
- package/dist/runtime/runtime-types/dict.d.ts +2 -2
- package/dist/runtime/runtime-types/dict.d.ts.map +1 -1
- package/dist/runtime/runtime-types/ip6Prefix.d.ts +1 -1
- package/dist/runtime/runtime-types/parse.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/getTokenData.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/getTokenName.d.ts +1 -1
- package/dist/runtime/runtime-types/shape-helpers/singletons.d.ts.map +1 -1
- package/dist/runtime/runtime-types/shape-helpers/singletons.js +1 -1
- package/dist/runtime/runtime-types/shape.d.ts +1 -1
- package/dist/runtime/runtime-types/shape.js +1 -1
- package/dist/runtime/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/type-conversion/asChars.d.ts +8 -0
- package/dist/runtime/type-conversion/asChars.d.ts.map +1 -0
- package/dist/runtime/type-conversion/asChars.js +8 -0
- package/dist/runtime/type-conversion/index.d.ts +2 -0
- package/dist/runtime/type-conversion/index.d.ts.map +1 -1
- package/dist/runtime/type-conversion/index.js +2 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts +14 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts.map +1 -0
- package/dist/runtime/type-conversion/ip6GroupExpansion.js +15 -0
- package/dist/runtime/type-guards/api-tg.d.ts +33 -0
- package/dist/runtime/type-guards/api-tg.d.ts.map +1 -0
- package/dist/runtime/type-guards/api-tg.js +38 -0
- package/dist/runtime/type-guards/hasWhitespace.d.ts +7 -0
- package/dist/runtime/type-guards/hasWhitespace.d.ts.map +1 -0
- package/dist/runtime/type-guards/hasWhitespace.js +11 -0
- package/dist/runtime/type-guards/index.d.ts +11 -0
- package/dist/runtime/type-guards/index.d.ts.map +1 -1
- package/dist/runtime/type-guards/index.js +11 -0
- package/dist/runtime/type-guards/isConstant.d.ts +6 -0
- package/dist/runtime/type-guards/isConstant.d.ts.map +1 -1
- package/dist/runtime/type-guards/isConstant.js +12 -2
- package/dist/runtime/type-guards/isEmail.d.ts +7 -0
- package/dist/runtime/type-guards/isEmail.d.ts.map +1 -0
- package/dist/runtime/type-guards/isEmail.js +11 -0
- package/dist/runtime/type-guards/isHexadecimal.d.ts +8 -0
- package/dist/runtime/type-guards/isHexadecimal.d.ts.map +1 -0
- package/dist/runtime/type-guards/isHexadecimal.js +13 -0
- package/dist/runtime/type-guards/isPhoneNumber.d.ts +14 -0
- package/dist/runtime/type-guards/isPhoneNumber.d.ts.map +1 -0
- package/dist/runtime/type-guards/isPhoneNumber.js +26 -0
- package/dist/runtime/type-guards/isSpecificConstant.js +2 -3
- package/dist/runtime/type-guards/isTrimmable.d.ts +7 -0
- package/dist/runtime/type-guards/isTrimmable.d.ts.map +1 -0
- package/dist/runtime/type-guards/isTrimmable.js +9 -0
- package/dist/runtime/type-guards/isUnset.d.ts +18 -0
- package/dist/runtime/type-guards/isUnset.d.ts.map +1 -0
- package/dist/runtime/type-guards/isUnset.js +23 -0
- package/dist/runtime/type-guards/isUrl.d.ts +2 -4
- package/dist/runtime/type-guards/isUrl.d.ts.map +1 -1
- package/dist/runtime/type-guards/isUrl.js +2 -3
- package/dist/runtime/type-guards/network-tg.d.ts +54 -0
- package/dist/runtime/type-guards/network-tg.d.ts.map +1 -0
- package/dist/runtime/type-guards/network-tg.js +94 -0
- package/dist/runtime/type-guards/repos.d.ts +6 -6
- package/dist/runtime/type-guards/repos.d.ts.map +1 -1
- package/dist/runtime/type-guards/youtube.d.ts +44 -0
- package/dist/runtime/type-guards/youtube.d.ts.map +1 -0
- package/dist/runtime/type-guards/youtube.js +84 -0
- package/dist/types/api/api.d.ts +96 -37
- package/dist/types/api/api.d.ts.map +1 -1
- package/dist/types/base-types/fns/EscapeFunction.d.ts +22 -0
- package/dist/types/base-types/fns/EscapeFunction.d.ts.map +1 -0
- package/dist/types/base-types/fns/OptionalParamFn.d.ts +30 -0
- package/dist/types/base-types/fns/OptionalParamFn.d.ts.map +1 -0
- package/dist/types/base-types/fns/index.d.ts +2 -0
- package/dist/types/base-types/fns/index.d.ts.map +1 -1
- package/dist/types/base-types/fns/index.js +2 -0
- package/dist/types/boolean-logic/branching/If.d.ts +2 -3
- package/dist/types/boolean-logic/branching/If.d.ts.map +1 -1
- package/dist/types/boolean-logic/branching/IfUnset.d.ts +12 -0
- package/dist/types/boolean-logic/branching/IfUnset.d.ts.map +1 -0
- package/dist/types/boolean-logic/branching/OnPass.d.ts +4 -3
- package/dist/types/boolean-logic/branching/OnPass.d.ts.map +1 -1
- package/dist/types/boolean-logic/branching/WhenNever.d.ts +11 -0
- package/dist/types/boolean-logic/branching/WhenNever.d.ts.map +1 -0
- package/dist/types/boolean-logic/branching/index.d.ts +2 -0
- package/dist/types/boolean-logic/branching/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/branching/index.js +2 -0
- package/dist/types/boolean-logic/combinators/And.d.ts +1 -1
- package/dist/types/boolean-logic/combinators/And.d.ts.map +1 -1
- package/dist/types/boolean-logic/combinators/Compare.d.ts +3 -3
- package/dist/types/boolean-logic/combinators/Compare.d.ts.map +1 -1
- package/dist/types/boolean-logic/combinators/Not.d.ts +5 -6
- package/dist/types/boolean-logic/combinators/Not.d.ts.map +1 -1
- package/dist/types/boolean-logic/combinators/Some.d.ts +8 -0
- package/dist/types/boolean-logic/combinators/Some.d.ts.map +1 -0
- package/dist/types/boolean-logic/combinators/Some.js +1 -0
- package/dist/types/boolean-logic/combinators/index.d.ts +1 -0
- package/dist/types/boolean-logic/combinators/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/combinators/index.js +1 -0
- package/dist/types/boolean-logic/narrowing/AsDoneFn.d.ts +2 -2
- package/dist/types/boolean-logic/narrowing/AsDoneFn.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/ApiOperators.d.ts +11 -0
- package/dist/types/boolean-logic/operators/ApiOperators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/ApiOperators.js +1 -0
- package/dist/types/boolean-logic/operators/Extends.d.ts +2 -1
- package/dist/types/boolean-logic/operators/Extends.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/HasSameValues.d.ts +4 -3
- package/dist/types/boolean-logic/operators/HasSameValues.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsBoolean.d.ts +2 -1
- package/dist/types/boolean-logic/operators/IsBoolean.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts +9 -0
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsCssHexadecimal.js +1 -0
- package/dist/types/boolean-logic/operators/IsEqual.d.ts +7 -1
- package/dist/types/boolean-logic/operators/IsEqual.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsGreaterThan.d.ts +2 -2
- package/dist/types/boolean-logic/operators/IsGreaterThan.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsLessThan.d.ts +13 -0
- package/dist/types/boolean-logic/operators/IsLessThan.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsLessThan.js +1 -0
- package/dist/types/boolean-logic/operators/IsNever.d.ts +2 -1
- package/dist/types/boolean-logic/operators/IsNever.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsNumber.d.ts +2 -2
- package/dist/types/boolean-logic/operators/IsNumber.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsString.d.ts +2 -2
- package/dist/types/boolean-logic/operators/IsString.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/IsUnset.d.ts +9 -0
- package/dist/types/boolean-logic/operators/IsUnset.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsUnset.js +1 -0
- package/dist/types/boolean-logic/operators/IsUrl.d.ts +35 -0
- package/dist/types/boolean-logic/operators/IsUrl.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/IsUrl.js +1 -0
- package/dist/types/boolean-logic/operators/Network-operators.d.ts +71 -0
- package/dist/types/boolean-logic/operators/Network-operators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/Network-operators.js +1 -0
- package/dist/types/boolean-logic/operators/PhoneOperators.d.ts +33 -0
- package/dist/types/boolean-logic/operators/PhoneOperators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/PhoneOperators.js +1 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.d.ts +32 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.d.ts.map +1 -0
- package/dist/types/boolean-logic/operators/YouTube-operators.js +1 -0
- package/dist/types/boolean-logic/operators/index.d.ts +7 -1
- package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/index.js +7 -1
- package/dist/types/dictionary/Keys.d.ts +58 -4
- package/dist/types/dictionary/Keys.d.ts.map +1 -1
- package/dist/types/dictionary/KvFn.d.ts +2 -2
- package/dist/types/dictionary/KvFn.d.ts.map +1 -1
- package/dist/types/dictionary/MakeKeysOptional.d.ts +12 -3
- package/dist/types/dictionary/MakeKeysOptional.d.ts.map +1 -1
- package/dist/types/dictionary/MakeKeysRequired.d.ts +14 -0
- package/dist/types/dictionary/MakeKeysRequired.d.ts.map +1 -0
- package/dist/types/dictionary/MakeKeysRequired.js +1 -0
- package/dist/types/dictionary/OptionalKeys.d.ts +19 -4
- package/dist/types/dictionary/OptionalKeys.d.ts.map +1 -1
- package/dist/types/dictionary/OptionalKeys.js +1 -0
- package/dist/types/dictionary/RequiredKeys.d.ts +14 -6
- package/dist/types/dictionary/RequiredKeys.d.ts.map +1 -1
- package/dist/types/dictionary/Values.d.ts +2 -2
- package/dist/types/dictionary/Values.d.ts.map +1 -1
- package/dist/types/dictionary/index.d.ts +1 -2
- package/dist/types/dictionary/index.d.ts.map +1 -1
- package/dist/types/dictionary/index.js +1 -2
- package/dist/types/errors/KindError.d.ts +1 -1
- package/dist/types/errors/KindError.d.ts.map +1 -1
- package/dist/types/functions/FnFrom.d.ts +5 -0
- package/dist/types/functions/FnFrom.d.ts.map +1 -1
- package/dist/types/functions/{Fn.d.ts → FnWithDescription.d.ts} +2 -2
- package/dist/types/functions/FnWithDescription.d.ts.map +1 -0
- package/dist/types/functions/FnWithDescription.js +1 -0
- package/dist/types/functions/WrapperFn.d.ts +23 -0
- package/dist/types/functions/WrapperFn.d.ts.map +1 -0
- package/dist/types/functions/WrapperFn.js +1 -0
- package/dist/types/functions/index.d.ts +2 -1
- package/dist/types/functions/index.d.ts.map +1 -1
- package/dist/types/functions/index.js +2 -1
- package/dist/types/lists/ConvertSet.d.ts +2 -2
- package/dist/types/lists/ConvertSet.d.ts.map +1 -1
- package/dist/types/lists/Find.d.ts +7 -18
- package/dist/types/lists/Find.d.ts.map +1 -1
- package/dist/types/literals/DoneFnTuple.d.ts +3 -3
- package/dist/types/literals/DoneFnTuple.d.ts.map +1 -1
- package/dist/types/literals/Unset.d.ts +13 -0
- package/dist/types/literals/Unset.d.ts.map +1 -0
- package/dist/types/literals/Unset.js +1 -0
- package/dist/types/literals/index.d.ts +1 -0
- package/dist/types/literals/index.d.ts.map +1 -1
- package/dist/types/literals/index.js +1 -0
- package/dist/types/numeric-literals/NumberLike.d.ts +1 -1
- package/dist/types/numeric-literals/NumberLike.d.ts.map +1 -1
- package/dist/types/string-literals/Proxmox.d.ts +7 -0
- package/dist/types/string-literals/Proxmox.d.ts.map +1 -0
- package/dist/types/string-literals/Proxmox.js +1 -0
- package/dist/types/string-literals/RetainUntil.d.ts +33 -0
- package/dist/types/string-literals/RetainUntil.d.ts.map +1 -0
- package/dist/types/string-literals/RetainUntil.js +1 -0
- package/dist/types/string-literals/Split.d.ts +3 -3
- package/dist/types/string-literals/Split.d.ts.map +1 -1
- package/dist/types/string-literals/StripAfter.d.ts +2 -2
- package/dist/types/string-literals/StripAfter.d.ts.map +1 -1
- package/dist/types/string-literals/StripBefore.d.ts +2 -2
- package/dist/types/string-literals/StripBefore.d.ts.map +1 -1
- package/dist/types/string-literals/StripLeading.d.ts +2 -2
- package/dist/types/string-literals/StripLeading.d.ts.map +1 -1
- package/dist/types/string-literals/StripUntil.d.ts +18 -0
- package/dist/types/string-literals/StripUntil.d.ts.map +1 -0
- package/dist/types/string-literals/StripUntil.js +1 -0
- package/dist/types/string-literals/character-sets/DomainName.d.ts +17 -18
- package/dist/types/string-literals/character-sets/DomainName.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/IpAddress.d.ts +28 -4
- package/dist/types/string-literals/character-sets/IpAddress.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/Optional.d.ts +14 -0
- package/dist/types/string-literals/character-sets/Optional.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/Optional.js +1 -0
- package/dist/types/string-literals/character-sets/Repos.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/Url.d.ts +85 -37
- package/dist/types/string-literals/character-sets/Url.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/Url.js +1 -0
- package/dist/types/string-literals/character-sets/Whitespace.d.ts +3 -1
- package/dist/types/string-literals/character-sets/Whitespace.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/YouTube.d.ts +127 -0
- package/dist/types/string-literals/character-sets/YouTube.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/YouTube.js +1 -0
- package/dist/types/string-literals/character-sets/index.d.ts +3 -0
- package/dist/types/string-literals/character-sets/index.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/index.js +3 -0
- package/dist/types/string-literals/character-sets/phone.d.ts +192 -0
- package/dist/types/string-literals/character-sets/phone.d.ts.map +1 -0
- package/dist/types/string-literals/character-sets/phone.js +1 -0
- package/dist/types/string-literals/index.d.ts +2 -0
- package/dist/types/string-literals/index.d.ts.map +1 -1
- package/dist/types/string-literals/index.js +2 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/type-conversion/ReduceValues.d.ts +19 -0
- package/dist/types/type-conversion/ReduceValues.d.ts.map +1 -0
- package/dist/types/type-conversion/ReduceValues.js +1 -0
- package/dist/types/type-conversion/ReturnValues.d.ts +10 -6
- package/dist/types/type-conversion/ReturnValues.d.ts.map +1 -1
- package/dist/types/type-conversion/Trim.d.ts +3 -1
- package/dist/types/type-conversion/Trim.d.ts.map +1 -1
- package/dist/types/type-conversion/UnionFilter.d.ts +2 -2
- package/dist/types/type-conversion/UnionFilter.d.ts.map +1 -1
- package/dist/types/type-conversion/form-fields.d.ts +5 -1
- package/dist/types/type-conversion/form-fields.d.ts.map +1 -1
- package/dist/types/type-conversion/index.d.ts +1 -0
- package/dist/types/type-conversion/index.d.ts.map +1 -1
- package/dist/types/type-conversion/index.js +1 -0
- package/package.json +17 -11
- package/dist/constants/Network.d.ts +0 -22
- package/dist/constants/Network.d.ts.map +0 -1
- package/dist/constants/Network.js +0 -21
- package/dist/runtime/boolean-logic/handleDoneFn.d.ts.map +0 -1
- package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts +0 -9
- package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts.map +0 -1
- package/dist/types/dictionary/PrivateKeys.d.ts +0 -17
- package/dist/types/dictionary/PrivateKeys.d.ts.map +0 -1
- package/dist/types/dictionary/PublicKeys.d.ts +0 -10
- package/dist/types/dictionary/PublicKeys.d.ts.map +0 -1
- package/dist/types/functions/Fn.d.ts.map +0 -1
- /package/dist/runtime/{boolean-logic → api}/handleDoneFn.d.ts +0 -0
- /package/dist/runtime/{boolean-logic → api}/handleDoneFn.js +0 -0
- /package/dist/types/{boolean-logic/operators/IsHexadecimal.js → base-types/fns/EscapeFunction.js} +0 -0
- /package/dist/types/{dictionary/PrivateKeys.js → base-types/fns/OptionalParamFn.js} +0 -0
- /package/dist/types/{dictionary/PublicKeys.js → boolean-logic/branching/IfUnset.js} +0 -0
- /package/dist/types/{functions/Fn.js → boolean-logic/branching/WhenNever.js} +0 -0
|
@@ -16,30 +16,30 @@ export declare const isRepoSource: <T>(v: T) => v is T & ("github" | "bitbucket"
|
|
|
16
16
|
* `v 1.0.12` are allowed.
|
|
17
17
|
* - by default the `allowPrefix` option is set to false
|
|
18
18
|
*/
|
|
19
|
-
export declare const isSemanticVersion: <T, P extends boolean>(v: T, allowPrefix?: P) => v is T & `${[P] extends [true] ? import("../../types/index").OptionalSpace | "v
|
|
19
|
+
export declare const isSemanticVersion: <T, P extends boolean>(v: T, allowPrefix?: P) => v is T & `${[P] extends [true] ? "v" | import("../../types/index").OptionalSpace | "v " : ""}${number}.${number}.${number}`;
|
|
20
20
|
/**
|
|
21
21
|
* **isRepoUrl**`(val)`
|
|
22
22
|
*
|
|
23
23
|
* Type guard which validates that the value passed in is a valid Repo URL
|
|
24
24
|
*/
|
|
25
|
-
export declare const isRepoUrl: <T>(val: T) => val is T & (`https://github.com/${string}` | "https://github.com" | `https://github.io/${string}` | "https://github.io" | `https://bitbucket.com/${string}` | "https://bitbucket.com" | `https://gitlab.com/${string}` | "https://gitlab.com" | `https://aws.amazon.com/codecommit/${string}`);
|
|
25
|
+
export declare const isRepoUrl: <T>(val: T) => val is T & (`https://github.com/${string}` | "https://github.com" | `https://github.com?${string}` | `https://github.io/${string}` | "https://github.io" | `https://github.io?${string}` | `https://bitbucket.com/${string}` | "https://bitbucket.com" | `https://bitbucket.com?${string}` | `https://gitlab.com/${string}` | "https://gitlab.com" | `https://gitlab.com?${string}` | `https://aws.amazon.com/codecommit/${string}` | `https://aws.amazon.com/codecommit/?${string}`);
|
|
26
26
|
/**
|
|
27
27
|
* **isGithubUrl**`(val)`
|
|
28
28
|
*
|
|
29
29
|
* Type guard which validates that the value passed in is a valid Github URL
|
|
30
30
|
*/
|
|
31
|
-
export declare const isGithubUrl: <T>(val: T) => val is T & (`https://github.com/${string}` | "https://github.com" | `https://github.io/${string}` | "https://github.io");
|
|
32
|
-
export declare const isGithubRepoUrl: <T>(val: T) => val is T & (`https://github.com/${string}/0${string}` | `https://github.com/${string}/1${string}` | `https://github.com/${string}/2${string}` | `https://github.com/${string}/3${string}` | `https://github.com/${string}/4${string}` | `https://github.com/${string}/5${string}` | `https://github.com/${string}/6${string}` | `https://github.com/${string}/7${string}` | `https://github.com/${string}/8${string}` | `https://github.com/${string}/9${string}` | `https://github.com/${string}/
|
|
31
|
+
export declare const isGithubUrl: <T>(val: T) => val is T & (`https://github.com/${string}` | "https://github.com" | `https://github.com?${string}` | `https://github.io/${string}` | "https://github.io" | `https://github.io?${string}`);
|
|
32
|
+
export declare const isGithubRepoUrl: <T>(val: T) => val is T & (`https://github.com/${string}/0${string}` | `https://github.com/${string}/1${string}` | `https://github.com/${string}/2${string}` | `https://github.com/${string}/3${string}` | `https://github.com/${string}/4${string}` | `https://github.com/${string}/5${string}` | `https://github.com/${string}/6${string}` | `https://github.com/${string}/7${string}` | `https://github.com/${string}/8${string}` | `https://github.com/${string}/9${string}` | `https://github.com/${string}/A${string}` | `https://github.com/${string}/B${string}` | `https://github.com/${string}/C${string}` | `https://github.com/${string}/D${string}` | `https://github.com/${string}/E${string}` | `https://github.com/${string}/F${string}` | `https://github.com/${string}/G${string}` | `https://github.com/${string}/H${string}` | `https://github.com/${string}/I${string}` | `https://github.com/${string}/J${string}` | `https://github.com/${string}/K${string}` | `https://github.com/${string}/L${string}` | `https://github.com/${string}/M${string}` | `https://github.com/${string}/N${string}` | `https://github.com/${string}/O${string}` | `https://github.com/${string}/P${string}` | `https://github.com/${string}/Q${string}` | `https://github.com/${string}/R${string}` | `https://github.com/${string}/S${string}` | `https://github.com/${string}/T${string}` | `https://github.com/${string}/U${string}` | `https://github.com/${string}/V${string}` | `https://github.com/${string}/W${string}` | `https://github.com/${string}/X${string}` | `https://github.com/${string}/Y${string}` | `https://github.com/${string}/Z${string}` | `https://github.com/${string}/a${string}` | `https://github.com/${string}/b${string}` | `https://github.com/${string}/c${string}` | `https://github.com/${string}/d${string}` | `https://github.com/${string}/e${string}` | `https://github.com/${string}/f${string}` | `https://github.com/${string}/g${string}` | `https://github.com/${string}/h${string}` | `https://github.com/${string}/i${string}` | `https://github.com/${string}/j${string}` | `https://github.com/${string}/k${string}` | `https://github.com/${string}/l${string}` | `https://github.com/${string}/m${string}` | `https://github.com/${string}/n${string}` | `https://github.com/${string}/o${string}` | `https://github.com/${string}/p${string}` | `https://github.com/${string}/q${string}` | `https://github.com/${string}/r${string}` | `https://github.com/${string}/s${string}` | `https://github.com/${string}/t${string}` | `https://github.com/${string}/u${string}` | `https://github.com/${string}/v${string}` | `https://github.com/${string}/w${string}` | `https://github.com/${string}/x${string}` | `https://github.com/${string}/y${string}` | `https://github.com/${string}/z${string}`);
|
|
33
33
|
/**
|
|
34
34
|
* **isBitbucketUrl**`(val)`
|
|
35
35
|
*
|
|
36
36
|
* Type guard which validates that the value passed in is a valid BitBucket URL
|
|
37
37
|
*/
|
|
38
|
-
export declare const isBitbucketUrl: <T>(val: T) => val is T & (`https://bitbucket.com/${string}` | "https://bitbucket.com");
|
|
38
|
+
export declare const isBitbucketUrl: <T>(val: T) => val is T & (`https://bitbucket.com/${string}` | "https://bitbucket.com" | `https://bitbucket.com?${string}`);
|
|
39
39
|
/**
|
|
40
40
|
* **isCodeCommitUrl**`(val)`
|
|
41
41
|
*
|
|
42
42
|
* Type guard which validates that the value passed in is a valid AWS Code Commit URL
|
|
43
43
|
*/
|
|
44
|
-
export declare const isCodeCommitUrl: <T>(val: T) => val is T & `https://aws.amazon.com/codecommit/${string}
|
|
44
|
+
export declare const isCodeCommitUrl: <T>(val: T) => val is T & (`https://aws.amazon.com/codecommit/${string}` | `https://aws.amazon.com/codecommit/?${string}`);
|
|
45
45
|
//# sourceMappingURL=repos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repos.d.ts","sourceRoot":"","sources":["../../../src/runtime/type-guards/repos.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,SAAU,CAAC,0EAEnC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,4BAC1B,CAAC,gBACU,CAAC,gIAcf,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"repos.d.ts","sourceRoot":"","sources":["../../../src/runtime/type-guards/repos.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,SAAU,CAAC,0EAEnC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,4BAC1B,CAAC,gBACU,CAAC,gIAcf,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAY,CAAC,0dAMlC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,WAAY,CAAC,8LAMpC,CAAA;AAED,eAAO,MAAM,eAAe,WAAY,CAAC,urFAMxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,WAAY,CAAC,iHAMvC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,CAAC,gHAMxC,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { YouTubeCreatorUrl, YouTubeFeedType, YouTubeFeedUrl, YouTubePlaylistUrl } from "../../types/index";
|
|
2
|
+
/**
|
|
3
|
+
* **isYouTubeUrl**`(val)`
|
|
4
|
+
*
|
|
5
|
+
* Type guard which checks whether the passed in value is a valid
|
|
6
|
+
* YouTube URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isYouTubeUrl: <T>(val: T) => val is T & (`https://www.youtube.com/${string}` | "https://www.youtube.com" | `https://www.youtube.com?${string}` | `https://youtube.com/${string}` | "https://youtube.com" | `https://youtube.com?${string}` | `https://youtu.be/${string}` | "https://youtu.be" | `https://youtu.be?${string}`);
|
|
9
|
+
/**
|
|
10
|
+
* **isYouTubeShareUrl**`(val)`
|
|
11
|
+
*
|
|
12
|
+
* Type guard which checks whether the passed in value is a URL
|
|
13
|
+
* from YouTube's _URL shortening_ site `https://youtu.be`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const isYouTubeShareUrl: <T>(val: T) => val is T & (`https://youtu.be/${string}` | "https://youtu.be" | `https://youtu.be?${string}`);
|
|
16
|
+
/**
|
|
17
|
+
* **isYouTubeVideoUrl**`(val)`
|
|
18
|
+
*
|
|
19
|
+
* Type guard which checks whether the passed in value is a valid
|
|
20
|
+
* YouTube URL _which plays video_.
|
|
21
|
+
*/
|
|
22
|
+
export declare const isYouTubeVideoUrl: <T>(val: T) => val is T & (`https://www.youtube.com/${string}` | "https://www.youtube.com" | `https://www.youtube.com?${string}` | `https://youtube.com/${string}` | "https://youtube.com" | `https://youtube.com?${string}` | `https://youtu.be/${string}` | "https://youtu.be" | `https://youtu.be?${string}`);
|
|
23
|
+
/**
|
|
24
|
+
* **isYouTubePlaylistUrl**`(val)`
|
|
25
|
+
*
|
|
26
|
+
* Type guard which checks whether the passed in value is a valid
|
|
27
|
+
* YouTube URL which points to a "playlist" on the platform.
|
|
28
|
+
*/
|
|
29
|
+
export declare const isYouTubePlaylistUrl: <T>(val: T) => val is T & YouTubePlaylistUrl;
|
|
30
|
+
/**
|
|
31
|
+
* **isYouTubeFeedUrl**`(val,[kind])**
|
|
32
|
+
*
|
|
33
|
+
* Type guard which checks whether the passed in value is a valid
|
|
34
|
+
* YouTube URL which responds with "feed" content. This is content
|
|
35
|
+
* which is available to a logged in user and helps them see lists
|
|
36
|
+
* of videos related to their settings.
|
|
37
|
+
*
|
|
38
|
+
* By default any "feed" URL is matched but you can narrow that down
|
|
39
|
+
* to a specific feed type by specifying the `kind` variable.
|
|
40
|
+
*/
|
|
41
|
+
export declare const isYouTubeFeedUrl: <T, U extends YouTubeFeedType = YouTubeFeedType>(val: T, type?: U) => val is T & YouTubeFeedUrl<U>;
|
|
42
|
+
export declare const isYouTubeCreatorUrl: <T extends string>(url: T) => url is T & YouTubeCreatorUrl;
|
|
43
|
+
export declare const isYouTubeVideosInPlaylist: <T>(val: T) => val is T & `https://www.youtube.com/playlist?${string}list=${string}`;
|
|
44
|
+
//# sourceMappingURL=youtube.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../../src/runtime/type-guards/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,kBAAkB,EAInB,0BAAwB;AAKzB;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAY,CAAC,sSAMrC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAC,kGAEzC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WAAY,CAAC,sSAM1C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,WAAY,CAAC,kCAS7C,CAAA;AAeD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,wDAIvB,CAAC,SACC,CAAC,iCAMR,CAAA;AAED,eAAO,MAAM,mBAAmB,0BACzB,CAAC,iCAOP,CAAA;AAED,eAAO,MAAM,yBAAyB,WAAY,CAAC,0EAKlD,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { isString } from "./isString.js";
|
|
2
|
+
import { isUndefined } from "./isUndefined.js";
|
|
3
|
+
import { hasUrlQueryParameter } from "./network-tg.js";
|
|
4
|
+
/**
|
|
5
|
+
* **isYouTubeUrl**`(val)`
|
|
6
|
+
*
|
|
7
|
+
* Type guard which checks whether the passed in value is a valid
|
|
8
|
+
* YouTube URL.
|
|
9
|
+
*/
|
|
10
|
+
export const isYouTubeUrl = (val) => {
|
|
11
|
+
return isString(val) && (val.startsWith("https://www.youtube.com") ||
|
|
12
|
+
val.startsWith("https://youtube.com") ||
|
|
13
|
+
val.startsWith("https://youtu.be"));
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* **isYouTubeShareUrl**`(val)`
|
|
17
|
+
*
|
|
18
|
+
* Type guard which checks whether the passed in value is a URL
|
|
19
|
+
* from YouTube's _URL shortening_ site `https://youtu.be`.
|
|
20
|
+
*/
|
|
21
|
+
export const isYouTubeShareUrl = (val) => {
|
|
22
|
+
return isString(val) && val.startsWith(`https://youtu.be`);
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* **isYouTubeVideoUrl**`(val)`
|
|
26
|
+
*
|
|
27
|
+
* Type guard which checks whether the passed in value is a valid
|
|
28
|
+
* YouTube URL _which plays video_.
|
|
29
|
+
*/
|
|
30
|
+
export const isYouTubeVideoUrl = (val) => {
|
|
31
|
+
return isString(val) && (val.startsWith("https://www.youtube.com") ||
|
|
32
|
+
val.startsWith("https://youtube.com") ||
|
|
33
|
+
val.startsWith("https://youtu.be"));
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* **isYouTubePlaylistUrl**`(val)`
|
|
37
|
+
*
|
|
38
|
+
* Type guard which checks whether the passed in value is a valid
|
|
39
|
+
* YouTube URL which points to a "playlist" on the platform.
|
|
40
|
+
*/
|
|
41
|
+
export const isYouTubePlaylistUrl = (val) => {
|
|
42
|
+
return isString(val) && (val === `https://www.youtube.com/feed/playlists` ||
|
|
43
|
+
val === `https://youtube.com/feed/playlists` ||
|
|
44
|
+
val === `https://www.youtube.com/channel/playlists` ||
|
|
45
|
+
val === `https://youtube.com/channel/playlists` ||
|
|
46
|
+
(val.startsWith(`https://www.youtube.com/@`) && val.endsWith(`/playlists`)) ||
|
|
47
|
+
(val.startsWith(`https://youtube.com/@`) && val.endsWith(`/playlists`)));
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* maps the "feed type" to a URL path
|
|
51
|
+
*/
|
|
52
|
+
const feed_map = (type) => {
|
|
53
|
+
return isUndefined(type)
|
|
54
|
+
? `/feed`
|
|
55
|
+
: type === "liked"
|
|
56
|
+
? `/playlist?list=LL`
|
|
57
|
+
: ["history", "playlists", "trending", "subscriptions"].includes(type)
|
|
58
|
+
? `/feed/${type}`
|
|
59
|
+
: `/feed/`;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* **isYouTubeFeedUrl**`(val,[kind])**
|
|
63
|
+
*
|
|
64
|
+
* Type guard which checks whether the passed in value is a valid
|
|
65
|
+
* YouTube URL which responds with "feed" content. This is content
|
|
66
|
+
* which is available to a logged in user and helps them see lists
|
|
67
|
+
* of videos related to their settings.
|
|
68
|
+
*
|
|
69
|
+
* By default any "feed" URL is matched but you can narrow that down
|
|
70
|
+
* to a specific feed type by specifying the `kind` variable.
|
|
71
|
+
*/
|
|
72
|
+
export const isYouTubeFeedUrl = (val, type = undefined) => {
|
|
73
|
+
return isString(val) && (val.startsWith(`https://www.youtube.com${feed_map(type)}`) ||
|
|
74
|
+
val.startsWith(`https://youtube.com${feed_map(type)}`));
|
|
75
|
+
};
|
|
76
|
+
export const isYouTubeCreatorUrl = (url) => {
|
|
77
|
+
return isString(url) && (url.startsWith(`https://www.youtube.com/@`) ||
|
|
78
|
+
url.startsWith(`https://youtube.com/@`) ||
|
|
79
|
+
url.startsWith(`https://www.youtube.com/channel/`));
|
|
80
|
+
};
|
|
81
|
+
export const isYouTubeVideosInPlaylist = (val) => {
|
|
82
|
+
return isString(val) && (val.startsWith(`https://www.youtube.com/playlist?`) ||
|
|
83
|
+
val.startsWith(`https://youtube.com/playlist?`)) && hasUrlQueryParameter(val, "list");
|
|
84
|
+
};
|
package/dist/types/api/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dictionary, EmptyObject, TypedFunction,
|
|
1
|
+
import { Dictionary, EmptyObject, TypedFunction, Values, Throw, AfterFirst, First, ExpandRecursively, TupleToUnion, Unset, PublicKeyOf, IfUnset, KeyOf, Fail, Extends, UpsertKeyValue, Tuple, ReduceValues, IsEscapeFunction, RemoveNever, If, WhenNever, HasEscapeFunction, ErrorCondition } from "../index";
|
|
2
2
|
/**
|
|
3
3
|
* **ValueCallback**`<TVal, TReturn>`
|
|
4
4
|
*
|
|
@@ -10,16 +10,16 @@ import { Dictionary, EmptyObject, TypedFunction, Contains, IsNever, Values, Thro
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
export type ValueCallback<TVal, TReturn> = <V extends TVal>(v: V) => TReturn;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
13
|
+
type _GetEscapeFunction<T extends readonly unknown[]> = WhenNever<First<RemoveNever<{
|
|
14
|
+
[K in keyof T]: If<IsEscapeFunction<T[K]>, T[K], never>;
|
|
15
|
+
}>>, Throw<"no-escape-function">>;
|
|
16
16
|
/**
|
|
17
|
-
* **
|
|
17
|
+
* **GetEscapeFunction**`<T>`
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
* Gets an escape function from an `Api` and from a `Dictionary | TypeFunction`
|
|
20
|
+
* if it exists. If it does not exist then returns an ErrorCondition.
|
|
20
21
|
*/
|
|
21
|
-
export type
|
|
22
|
-
export type GetEscapeFunction<T extends Dictionary | TypedFunction> = T extends Dictionary ? FindExtends<Values<T>, EscapeFunction> extends TypedFunction ? FindExtends<Values<T>, EscapeFunction> : never : T extends TypedFunction ? T extends EscapeFunction ? T : never : never;
|
|
22
|
+
export type GetEscapeFunction<T extends Dictionary | TypedFunction | Api> = T extends Api ? _GetEscapeFunction<Values<T["surface"]>> : _GetEscapeFunction<Values<T>>;
|
|
23
23
|
export type FluentState<T> = {
|
|
24
24
|
state: T;
|
|
25
25
|
config: {
|
|
@@ -39,28 +39,73 @@ type ExpandFluentFns<TFluentState extends FluentState<any>, TFns extends readonl
|
|
|
39
39
|
* Defines the callback loop necessary to manage state via a
|
|
40
40
|
* Fluent API.
|
|
41
41
|
*/
|
|
42
|
-
type FluentApi<TSurface extends Dictionary | TypedFunction, TState, TFluentFns extends readonly FluentFn<TState, any, any>[]> = <T extends FluentState<TState>>(state: T) => ExpandRecursively<TSurface & ExpandFluentFns<FluentState<TState>, TFluentFns>>;
|
|
42
|
+
export type FluentApi<TSurface extends Dictionary | TypedFunction, TState, TFluentFns extends readonly FluentFn<TState, any, any>[]> = <T extends FluentState<TState>>(state: T) => ExpandRecursively<TSurface & ExpandFluentFns<FluentState<TState>, TFluentFns>>;
|
|
43
|
+
/**
|
|
44
|
+
* **ApiState**
|
|
45
|
+
*
|
|
46
|
+
* For API's which manage state, the state should be a Dictionary
|
|
47
|
+
* or Tuple in shape.
|
|
48
|
+
*/
|
|
49
|
+
export type ApiState = Dictionary | Tuple;
|
|
43
50
|
/**
|
|
44
|
-
* **
|
|
51
|
+
* **ApiConfig**`<TSurface,TState>`
|
|
45
52
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
53
|
+
* The configuration of your API provides opportunities to
|
|
54
|
+
* show or mask various parts of your surface area based on
|
|
55
|
+
* the current _state_ you are in.
|
|
48
56
|
*/
|
|
49
|
-
export type
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
]>;
|
|
54
|
-
done: () => FluentApi<TSurface, TState, TFluentFns>;
|
|
57
|
+
export type ApiConfig<TSurface extends ApiSurface<Api> = ApiSurface<Api>, TState extends ApiState = ApiState> = {
|
|
58
|
+
callOnce: readonly string[];
|
|
59
|
+
called: readonly string[];
|
|
60
|
+
mask: ((state: TState, called: readonly string[]) => readonly (KeyOf<TSurface>)[]);
|
|
55
61
|
};
|
|
56
|
-
|
|
57
|
-
|
|
62
|
+
/**
|
|
63
|
+
* **ApiOptions**`<[TSurface]>`
|
|
64
|
+
*
|
|
65
|
+
* The _options_ which go into defining an API surface.
|
|
66
|
+
*/
|
|
67
|
+
export type ApiOptions<TSurface extends Dictionary | TypedFunction | Unset = Unset> = {
|
|
58
68
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
69
|
+
* any _state_ which the API is managing (making it a `FluentApi`)
|
|
70
|
+
*
|
|
71
|
+
* @default Unset;
|
|
61
72
|
*/
|
|
62
|
-
|
|
73
|
+
state: Unset | Dictionary;
|
|
74
|
+
/**
|
|
75
|
+
* An array of _keys_ to the API surface which should only be allowed
|
|
76
|
+
* to be called once (and will be _masked_ thereafter from runtime).
|
|
77
|
+
*
|
|
78
|
+
* **Note:** _this only really makes sense when you're managing state_.
|
|
79
|
+
*/
|
|
80
|
+
callOnce: IfUnset<TSurface, readonly PropertyKey[], readonly PublicKeyOf<AsApi<TSurface>>[]>;
|
|
63
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* **Api**
|
|
84
|
+
*
|
|
85
|
+
* An API definition typically created via `AsApi<TSurface,TOpts>` which is
|
|
86
|
+
* not responsible for managing state.
|
|
87
|
+
*
|
|
88
|
+
* **Related:** `FluentApi`, `AsFluentApi`
|
|
89
|
+
*/
|
|
90
|
+
export type Api<TSurface extends Dictionary | TypedFunction = Dictionary | TypedFunction> = {
|
|
91
|
+
_kind: "api";
|
|
92
|
+
surface: TSurface;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* **ApiReturn**
|
|
96
|
+
*
|
|
97
|
+
* The expected/desired types that could result from calling the API's
|
|
98
|
+
* _endpoints_.
|
|
99
|
+
*
|
|
100
|
+
* Note: this does not consider the possibility of a user
|
|
101
|
+
*/
|
|
102
|
+
export type ApiReturn<T extends Api> = "surface" extends keyof T ? T["surface"] extends Dictionary ? TupleToUnion<ReduceValues<T["surface"]>> : never : unknown;
|
|
103
|
+
/**
|
|
104
|
+
* **ApiSurface**`<T>`
|
|
105
|
+
*
|
|
106
|
+
* Extracts the API's surface area from an `Api`.
|
|
107
|
+
*/
|
|
108
|
+
export type ApiSurface<T extends Api> = T["surface"];
|
|
64
109
|
/**
|
|
65
110
|
* **ApiCallback**`<TSurface,[TOpts]>`
|
|
66
111
|
*
|
|
@@ -72,28 +117,42 @@ export type ApiCallbackOptions<TProxy extends readonly (Scalar | ShapeCallback)[
|
|
|
72
117
|
*
|
|
73
118
|
* **Related:** `HandleApiCallback`, `ApiCallbackInfo`
|
|
74
119
|
*/
|
|
75
|
-
export type ApiCallback<
|
|
120
|
+
export type ApiCallback<TApi extends Api> = <TCall extends (api: ApiSurface<TApi>) => unknown>(cb: TCall) => ReturnType<TCall>;
|
|
76
121
|
/**
|
|
77
|
-
* **
|
|
122
|
+
* **Api**`<TSurface>`
|
|
78
123
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
124
|
+
* Validates a candidate for a _stateless_ API and returns it as an `Api<TSurface>`
|
|
125
|
+
* if valid. If not valid you'll get a `ErrorCondition`.
|
|
81
126
|
*/
|
|
82
|
-
export type
|
|
127
|
+
export type AsApi<TSurface extends Dictionary | TypedFunction> = HasEscapeFunction<TSurface> extends true ? Api<TSurface> : Throw<"no-escape-function">;
|
|
128
|
+
export type ApiStateInitializer<TApi> = <T extends Dictionary>(state: T) => TApi;
|
|
83
129
|
/**
|
|
84
|
-
*
|
|
130
|
+
* A builder API for defining _stateless_ API's.
|
|
85
131
|
*
|
|
86
|
-
*
|
|
87
|
-
|
|
132
|
+
* Note: ironically this is **not** a stateless API.
|
|
133
|
+
*/
|
|
134
|
+
export type DefineStatelessApi<T extends Dictionary = EmptyObject, _C extends {
|
|
135
|
+
called: readonly KeyOf<T>[];
|
|
136
|
+
callOnce: ["escapeFunction"];
|
|
137
|
+
} = {
|
|
138
|
+
called: [];
|
|
139
|
+
callOnce: ["escapeFunction"];
|
|
140
|
+
}> = ({
|
|
141
|
+
escapeFunction: (state: T) => <TKey extends string, TFn extends () => unknown>(key: Fail<TKey, Extends<TKey, KeyOf<T>>>, fn: TFn) => ReturnType<TFn>;
|
|
142
|
+
addFn: (state: T) => <TKey extends string, TFn extends TypedFunction>(key: Fail<TKey, KeyOf<T>>, fn: TFn) => ExpandRecursively<T["surface"] & Record<TKey, TFn>> extends T["surface"] ? UpsertKeyValue<T, "surface", ExpandRecursively<T["surface"] & Record<TKey, TFn>>> : never;
|
|
143
|
+
});
|
|
144
|
+
/**
|
|
145
|
+
* **ApiEscape**`<T>`
|
|
146
|
+
*
|
|
147
|
+
* Given a `T` which extends `Api` or `ApiCallback`, this utility will expose
|
|
148
|
+
* the escape function.
|
|
88
149
|
*/
|
|
89
|
-
export type
|
|
150
|
+
export type ApiEscape<T extends Dictionary | TypedFunction | ApiCallback<Api>> = T extends ApiCallback<Api> ? T extends TypedFunction ? Parameters<T>[0] extends Dictionary | TypedFunction ? GetEscapeFunction<Parameters<T>[0]> : never : never : GetEscapeFunction<T>;
|
|
90
151
|
/**
|
|
91
|
-
* **
|
|
152
|
+
* **ApiHandler**`<TApi,THandle>`
|
|
92
153
|
*
|
|
93
|
-
*
|
|
94
|
-
* it either proxies that value through if the user completed
|
|
95
|
-
* the API calling, or calls the _escape function_ if not.
|
|
154
|
+
* An API handler for a specific API
|
|
96
155
|
*/
|
|
97
|
-
export type
|
|
156
|
+
export type ApiHandler<TApi extends Api, _THandle extends (t: unknown, e: ErrorCondition) => unknown> = (api: TApi) => <R>(result: R) => unknown;
|
|
98
157
|
export {};
|
|
99
158
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ExpandDictionary, ExpandRecursively, FnProps } from "../..";
|
|
2
|
+
/**
|
|
3
|
+
* **EscapeFunction**`<[T]>`
|
|
4
|
+
*
|
|
5
|
+
* An escape function is a function which takes no parameters and
|
|
6
|
+
* marks itself by setting the key `escape` to the value **true**.
|
|
7
|
+
*
|
|
8
|
+
* If this utility is used with a generic it will ensure that the function
|
|
9
|
+
* has the `escape` property set. If no generic is used then it will just
|
|
10
|
+
* present a generalized shape for escape functions.
|
|
11
|
+
* ```ts
|
|
12
|
+
* // () => string & {escape: true}
|
|
13
|
+
* type Esc = EscapeFunction<() => string>;
|
|
14
|
+
* // () => unknown & {escape: true}
|
|
15
|
+
* type Esc2 = EscapeFunction;
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export type EscapeFunction = () => any & {
|
|
19
|
+
escape: true;
|
|
20
|
+
};
|
|
21
|
+
export type AsEscapeFunction<T> = T extends EscapeFunction ? ExpandRecursively<T & ExpandDictionary<Record<"escape", true> & FnProps<T>>> : never;
|
|
22
|
+
//# sourceMappingURL=EscapeFunction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EscapeFunction.d.ts","sourceRoot":"","sources":["../../../../src/types/base-types/fns/EscapeFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,GAAG;IAAC,MAAM,EAAE,IAAI,CAAA;CAAC,CAAC;AAExD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,GACxD,iBAAiB,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3E,KAAK,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { If, Some, Throw, TypedFunction } from "../../index";
|
|
2
|
+
/**
|
|
3
|
+
* **OptionalParamFn**
|
|
4
|
+
*
|
|
5
|
+
* A function which either has _no_ parameters or any parameters it
|
|
6
|
+
* does have are _optional_ in a way that it is safe to call it without
|
|
7
|
+
* any parameters.
|
|
8
|
+
*
|
|
9
|
+
* To make the runtime aware of this flexibility, a property `optionalParams`
|
|
10
|
+
* must be set to **true**. To convert a regular function to be this kind of
|
|
11
|
+
* function you can use the `AsOptionalParamFn` utility.
|
|
12
|
+
*/
|
|
13
|
+
export type OptionalParamFn = ((() => any) | ((p1?: any, p2?: any, p3?: any, p4?: any) => any)) & {
|
|
14
|
+
optionalParams: true;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* **AsOptionalParamFn**`<T>`
|
|
18
|
+
*
|
|
19
|
+
* Converts the function passed in into a `OptionalParamFn` where possible and
|
|
20
|
+
* converts to `ErrorCondition<"invalid-conversion">` otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export type AsOptionalParamFn<T extends TypedFunction> = Parameters<T>["length"] extends 0 ? T & {
|
|
23
|
+
optionalParams: true;
|
|
24
|
+
} : If<Some<Parameters<T>, "extends", undefined>, Throw<"invalid-conversion", `To convert to a OptionalParamFn, a function must have _no_ required Parameters but required params were found!`, `AsOptionalParamFn`, {
|
|
25
|
+
library: "inferred-types";
|
|
26
|
+
params: Parameters<T>;
|
|
27
|
+
}>, T & {
|
|
28
|
+
optionalParams: true;
|
|
29
|
+
}>;
|
|
30
|
+
//# sourceMappingURL=OptionalParamFn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionalParamFn.d.ts","sourceRoot":"","sources":["../../../../src/types/base-types/fns/OptionalParamFn.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EACF,IAAI,EACJ,KAAK,EACL,aAAa,EACd,oBAAwB;AAGzB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAC,GAAG,KAAK,GAAG,CAAC,CAC/D,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,CAAC;AAI7B;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACxF,CAAC,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,GAC5B,EAAE,CACA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EACzC,KAAK,CACH,oBAAoB,EAAE,gHAAgH,EACtI,mBAAmB,EACnB;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAAE,CACrD,EACD,CAAC,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,CAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/base-types/fns/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/base-types/fns/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ErrorCondition, IsBoolean, IsBooleanLiteral, IsFalse, IsNever, IsTrue, LogicFunction,
|
|
1
|
+
import { ErrorCondition, IsBoolean, IsBooleanLiteral, IsFalse, IsNever, IsTrue, LogicFunction, Throw } from "../../index";
|
|
2
2
|
type InvalidTest<TTest> = Throw<"invalid-test", `Call of If<TTest, ...> received an invalid TTest that does not evaluate to a boolean type!`, "If", {
|
|
3
3
|
library: "inferred-types";
|
|
4
4
|
test: TTest;
|
|
5
5
|
}>;
|
|
6
|
-
type ReceivedError<TTest extends ErrorCondition> = ProxyError<TTest, "If", "TTest">;
|
|
7
6
|
/**
|
|
8
7
|
* **If**`<TTest,[TIf],[TElse],[TMaybe]>`
|
|
9
8
|
*
|
|
10
9
|
* Branching utility which tests `TTest` for a boolean value.
|
|
11
10
|
*/
|
|
12
|
-
export type If<TTest, TIf = true, TElse = false, TMaybe = TIf | TElse, TNever = never> = [IsNever<TTest>] extends [true] ? TNever : [TTest] extends [ErrorCondition] ?
|
|
11
|
+
export type If<TTest, TIf = true, TElse = false, TMaybe = TIf | TElse, TNever = never, TError = never> = [IsNever<TTest>] extends [true] ? TNever : [TTest] extends [ErrorCondition] ? TError : [TTest] extends [boolean] ? [IsTrue<TTest>] extends [true] ? TIf : [IsBooleanLiteral<TTest>] extends [true] ? TElse : TMaybe : [TTest] extends [LogicFunction] ? [IsTrue<ReturnType<TTest>>] extends [true] ? TIf : [IsFalse<ReturnType<TTest>>] extends [true] ? TElse : [IsBoolean<ReturnType<TTest>>] extends [true] ? TMaybe : never : InvalidTest<TTest>;
|
|
13
12
|
export {};
|
|
14
13
|
//# sourceMappingURL=If.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/If.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/If.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAG,oBAAwB;AAE/H,KAAK,WAAW,CAAC,KAAK,IAAI,KAAK,CAC7B,cAAc,EACd,4FAA4F,EAC5F,IAAI,EACJ;IACE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb,CACF,CAAA;AAeD;;;;GAIG;AACH,MAAM,MAAM,EAAE,CACZ,KAAK,EACL,GAAG,GAAG,IAAI,EACV,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,GAAG,GAAG,KAAK,EACpB,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,KAAK,IACX,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAClC,MAAM,GACN,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAC9B,MAAM,GACR,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GACvB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC5B,GAAG,GACH,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACtC,KAAK,GACL,MAAM,GACV,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAC7B,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACxC,GAAG,GACL,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACzC,KAAK,GACL,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC3C,MAAM,GACN,KAAK,GACT,WAAW,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IsUndefined, Unset } from "../../index";
|
|
2
|
+
/**
|
|
3
|
+
* **IfUnset**`<TTest,TElse,[TIf]>`
|
|
4
|
+
*
|
|
5
|
+
* Branching utility which will proxy _any_ type through except
|
|
6
|
+
* for those set with `Unset<[T]>`.
|
|
7
|
+
*
|
|
8
|
+
* When `Unset` is found then it will be replaced with `TElse`.
|
|
9
|
+
*/
|
|
10
|
+
export type IfUnset<TTest, TElse, TIf = TTest> = TTest extends Unset ? TElse : Exclude<TIf, Unset>;
|
|
11
|
+
export type IfUnsetOrUndefined<TTest, TElse, TIf = TTest> = TTest extends Unset ? TElse : IsUndefined<TTest> extends true ? TElse : Exclude<TIf, Unset | undefined>;
|
|
12
|
+
//# sourceMappingURL=IfUnset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IfUnset.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/IfUnset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,EACN,oBAAwB;AAGzB;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,CACjB,KAAK,EACL,KAAK,EACL,GAAG,GAAG,KAAK,IACT,KAAK,SAAS,KAAK,GACrB,KAAK,GACL,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAGtB,MAAM,MAAM,kBAAkB,CAC9B,KAAK,EACL,KAAK,EACL,GAAG,GAAG,KAAK,IACP,KAAK,SAAS,KAAK,GACrB,KAAK,GACL,WAAW,CAAC,KAAK,CAAC,SAAS,IAAI,GAC/B,KAAK,GACL,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC"}
|
|
@@ -5,12 +5,13 @@ export type OnPassRemap<TNever = unknown, TFalse = unknown, TError = unknown> =
|
|
|
5
5
|
false: TFalse;
|
|
6
6
|
error: TError;
|
|
7
7
|
};
|
|
8
|
-
type Merge<
|
|
8
|
+
type Merge<TUser extends Partial<OnPassRemap>, TKeys extends readonly (ObjectKey & keyof TUser)[], TConfig extends OnPassRemap = {
|
|
9
9
|
never: never;
|
|
10
10
|
false: false;
|
|
11
11
|
error: Constant<"not-set">;
|
|
12
|
-
}> = [] extends TKeys ? TConfig : Merge<
|
|
12
|
+
}> = [] extends TKeys ? TConfig : Merge<TUser, AfterFirst<TKeys>, As<ExpandDictionary<Record<First<TKeys>, TUser[First<TKeys>]> & Omit<TConfig, First<TKeys>>>, OnPassRemap>>;
|
|
13
13
|
type Process<TTest, TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [IsNever<TTest>] extends [true] ? TRemap["never"] : [IsErrorCondition<TTest>] extends [true] ? TRemap["error"] extends Constant<"not-set"> ? TTest : TRemap["error"] : [IsFalse<TTest>] extends [true] ? TRemap["false"] : TPass;
|
|
14
|
+
type Iterate<TTest extends readonly unknown[], TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [] extends TTest ? TPass : Process<First<TTest>, TPass, TRemap> extends TPass ? Iterate<AfterFirst<TTest>, TPass, TRemap> : Process<First<TTest>, TPass, TRemap>;
|
|
14
15
|
/**
|
|
15
16
|
* **OnPass**`<TTest, TPass,[TRemap],[TFalse]>`
|
|
16
17
|
*
|
|
@@ -24,6 +25,6 @@ type Process<TTest, TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>
|
|
|
24
25
|
* - the `TRemap` allows you to remap error conditions
|
|
25
26
|
* as well if needed
|
|
26
27
|
*/
|
|
27
|
-
export type OnPass<TTest, TPass, TRemap extends Partial<OnPassRemap<unknown, unknown, unknown>> = OnPassRemap<never, false, Constant<"not-set">>> = Process<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant<"not-set">> ? TRemap : Merge<TRemap, Keys<TRemap>>>;
|
|
28
|
+
export type OnPass<TTest, TPass, TRemap extends Partial<OnPassRemap<unknown, unknown, unknown>> = OnPassRemap<never, false, Constant<"not-set">>> = TTest extends readonly unknown[] ? Iterate<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant<"not-set">> ? TRemap : Merge<TRemap, Keys<TRemap>>> : Process<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant<"not-set">> ? TRemap : Merge<TRemap, Keys<TRemap>>>;
|
|
28
29
|
export {};
|
|
29
30
|
//# sourceMappingURL=OnPass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnPass.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/OnPass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,KAAK,EACL,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,OAAO,EACR,oBAAwB;AACzB,OAAO,EAAE,QAAQ,EAAE,iCAA4B;AAE/C,MAAM,MAAM,WAAW,CACrB,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,IACd;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAA;AAED,KAAK,KAAK,CACR,
|
|
1
|
+
{"version":3,"file":"OnPass.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/OnPass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IsNever } from "../operators";
|
|
2
|
+
/**
|
|
3
|
+
* **WhenNever**`<T, [TMapTo]>`
|
|
4
|
+
*
|
|
5
|
+
* When `T` is _never_ this utility will map it to `TMapTo`; in all
|
|
6
|
+
* other cases it just proxies `T` through.
|
|
7
|
+
*
|
|
8
|
+
* **Note:** if not specified, `TMapTo` will be set to **false**.
|
|
9
|
+
*/
|
|
10
|
+
export type WhenNever<T, TMapTo = false> = IsNever<T> extends true ? TMapTo : T;
|
|
11
|
+
//# sourceMappingURL=WhenNever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WhenNever.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/WhenNever.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,MAAM,GAAG,KAAK,IACZ,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,MAAM,GACN,CAAC,CAAC"}
|