inferred-types 0.45.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.map +1 -1
- 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 +3 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +3 -0
- package/dist/constants/tsconfig.tsbuildinfo +1 -1
- package/dist/inferred-types/index.cjs +1091 -733
- 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/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 +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -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 +4 -0
- package/dist/runtime/literals/index.d.ts.map +1 -1
- package/dist/runtime/literals/index.js +4 -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/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/youtube-meta.d.ts +8 -1
- package/dist/runtime/meta/youtube-meta.d.ts.map +1 -1
- package/dist/runtime/meta/youtube-meta.js +50 -2
- 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.d.ts +1 -1
- package/dist/runtime/runtime-types/shape.js +1 -1
- package/dist/runtime/tsconfig.tsbuildinfo +1 -1
- 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 +7 -0
- package/dist/runtime/type-guards/index.d.ts.map +1 -1
- package/dist/runtime/type-guards/index.js +7 -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/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 +1 -1
- package/dist/runtime/type-guards/network-tg.d.ts +9 -3
- package/dist/runtime/type-guards/network-tg.d.ts.map +1 -1
- package/dist/runtime/type-guards/network-tg.js +10 -1
- package/dist/runtime/type-guards/repos.d.ts +2 -2
- package/dist/runtime/type-guards/youtube.d.ts +4 -2
- package/dist/runtime/type-guards/youtube.d.ts.map +1 -1
- package/dist/runtime/type-guards/youtube.js +13 -3
- 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/WhenNever.js +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/Compare.d.ts +3 -3
- package/dist/types/boolean-logic/combinators/Compare.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/HasSameValues.d.ts +4 -3
- package/dist/types/boolean-logic/operators/HasSameValues.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/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/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/index.d.ts +3 -0
- package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
- package/dist/types/boolean-logic/operators/index.js +3 -0
- 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/StripLeading.d.ts +2 -2
- package/dist/types/string-literals/StripLeading.d.ts.map +1 -1
- package/dist/types/string-literals/StripUntil.d.ts +12 -0
- package/dist/types/string-literals/StripUntil.d.ts.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/types/string-literals/character-sets/index.d.ts.map +1 -1
- package/dist/types/string-literals/character-sets/index.js +1 -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/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/runtime/boolean-logic/handleDoneFn.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/{dictionary/PrivateKeys.js → base-types/fns/EscapeFunction.js} +0 -0
- /package/dist/types/{dictionary/PublicKeys.js → base-types/fns/OptionalParamFn.js} +0 -0
- /package/dist/types/{functions/Fn.js → boolean-logic/branching/IfUnset.js} +0 -0
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Contains, DoesExtend, IsEqual, StartsWith, TupleToUnion, EndsWith, Tuple, ErrorCondition, Extends, NumberLike, TypedFunction } from "../../index";
|
|
1
|
+
import { Contains, DoesExtend, IsEqual, StartsWith, TupleToUnion, EndsWith, Tuple, ErrorCondition, Extends, NumberLike, TypedFunction, IsGreaterThan, As, IsLessThan, WhenNever, And } from "../../index";
|
|
2
2
|
/**
|
|
3
3
|
* **ComparatorOperation**
|
|
4
4
|
*
|
|
@@ -35,13 +35,13 @@ export type Comparison<TOp extends ComparatorOperation = ComparatorOperation, TA
|
|
|
35
35
|
fn: TFn;
|
|
36
36
|
} : ErrorCondition<"invalid-comparison">;
|
|
37
37
|
type Unionize<T> = T extends readonly unknown[] ? TupleToUnion<T> : T;
|
|
38
|
-
type Process<TVal, TOp extends ComparatorOperation, TComparator> = TOp extends "extends" ? DoesExtend<TVal, Unionize<TComparator>> : TOp extends "equals" ? IsEqual<TVal, Unionize<TComparator>> : TOp extends "contains" ? [TVal] extends [string | number | Tuple] ? Contains<TVal, TComparator> : never : TOp extends "containsAll" ? [TVal] extends [Tuple] ? [TComparator] extends [string | number | readonly string[]] ? Contains<TVal, TComparator> : never : never : TOp extends "startsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? StartsWith<TVal, TComparator> : never : never : TOp extends "endsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? EndsWith<TVal, TComparator> : never : never : TOp extends "returnEquals" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : TOp extends "returnExtends" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : never;
|
|
38
|
+
type Process<TVal, TOp extends ComparatorOperation, TComparator> = TOp extends "extends" ? DoesExtend<TVal, Unionize<TComparator>> : TOp extends "equals" ? IsEqual<TVal, Unionize<TComparator>> : TOp extends "contains" ? [TVal] extends [string | number | Tuple] ? Contains<TVal, TComparator> : never : TOp extends "containsAll" ? [TVal] extends [Tuple] ? [TComparator] extends [string | number | readonly string[]] ? Contains<TVal, TComparator> : never : never : TOp extends "startsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? StartsWith<TVal, TComparator> : never : never : TOp extends "greaterThan" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsGreaterThan<As<TVal, NumberLike>, As<TComparator, NumberLike>> : never : TOp extends "lessThan" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsLessThan<As<TVal, NumberLike>, As<TComparator, NumberLike>> : never : TOp extends "endsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? EndsWith<TVal, TComparator> : never : never : TOp extends "returnEquals" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : TOp extends "returnExtends" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : never;
|
|
39
39
|
/**
|
|
40
40
|
* **Compare**`<TVal,TOp,TComparator>`
|
|
41
41
|
*
|
|
42
42
|
* Compares the value `TVal` with `TComparator` using
|
|
43
43
|
* the `TOp` _operator_.
|
|
44
44
|
*/
|
|
45
|
-
export type Compare<TVal, TOp extends ComparatorOperation, TComparator> = Process<TVal, TOp, TComparator
|
|
45
|
+
export type Compare<TVal, TOp extends ComparatorOperation, TComparator> = WhenNever<Process<TVal, TOp, TComparator>>;
|
|
46
46
|
export {};
|
|
47
47
|
//# sourceMappingURL=Compare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compare.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Compare.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,cAAc,EACd,OAAO,EACP,UAAU,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"Compare.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AfterFirst, ComparatorOperation, Compare, Container, Dictionary, First, IsEqual, NumberLike, Or, Values, WhenNever } from "../../index";
|
|
2
|
+
type Process<TElements extends readonly unknown[], TOp extends ComparatorOperation, TComparator> = [] extends TElements ? false : [WhenNever<Compare<First<TElements>, TOp, TComparator>>] extends [true] ? true : Process<AfterFirst<TElements>, TOp, TComparator>;
|
|
3
|
+
export type Some<TContainer extends Container, TOp extends "extends" | "equals" | "startsWith" | "endsWith" | "lessThan" | "greaterThan", TComparator extends Or<[
|
|
4
|
+
IsEqual<TOp, "startsWith">,
|
|
5
|
+
IsEqual<TOp, "endsWith">
|
|
6
|
+
]> extends true ? string : Or<[IsEqual<TOp, "lessThan">, IsEqual<TOp, "greaterThan">]> extends true ? NumberLike : unknown> = TContainer extends readonly unknown[] ? Process<TContainer, TOp, TComparator> : TContainer extends Dictionary ? Process<Values<TContainer>, TOp, TComparator> : never;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=Some.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Some.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Some.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,EACL,OAAO,EACP,UAAU,EACV,EAAE,EACF,MAAM,EACN,SAAS,EACV,oBAAwB;AAEzB,KAAK,OAAO,CACZ,SAAS,SAAS,SAAS,OAAO,EAAE,EACpC,GAAG,SAAS,mBAAmB,EAC/B,WAAW,IACP,EAAE,SAAS,SAAS,GACtB,KAAK,GACL,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACrE,IAAI,GACJ,OAAO,CACL,UAAU,CAAC,SAAS,CAAC,EACrB,GAAG,EACH,WAAW,CACZ,CAAC;AAGN,MAAM,MAAM,IAAI,CACd,UAAU,SAAS,SAAS,EAC5B,GAAG,SAAS,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,EACzF,WAAW,SAAS,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,EAAC,YAAY,CAAC;IAAE,OAAO,CAAC,GAAG,EAAC,UAAU,CAAC;CACnD,CAAC,SAAS,IAAI,GACb,MAAM,GACN,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,EAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GACtE,UAAU,GACV,OAAO,IACP,UAAU,SAAS,SAAS,OAAO,EAAE,GACvC,OAAO,CAAC,UAAU,EAAC,GAAG,EAAC,WAAW,CAAC,GACnC,UAAU,SAAS,UAAU,GAC7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAC7C,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FnWithDescription } from "../../index";
|
|
2
2
|
/**
|
|
3
3
|
* **AsDoneFn**`<T>`
|
|
4
4
|
*
|
|
5
5
|
* Narrows
|
|
6
6
|
*/
|
|
7
7
|
export type AsDoneFn<T> = T extends {
|
|
8
|
-
done:
|
|
8
|
+
done: FnWithDescription;
|
|
9
9
|
} ? T & {
|
|
10
10
|
done: () => unknown;
|
|
11
11
|
} : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsDoneFn.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/narrowing/AsDoneFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AsDoneFn.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/narrowing/AsDoneFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAwB;AAIpD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3D,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,OAAO,CAAA;CAAE,GAC3B,KAAK,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Api, Dictionary, ErrorCondition, EscapeFunction, FnProps, GetEscapeFunction, TypedFunction } from "../../index";
|
|
2
|
+
/**
|
|
3
|
+
* **HasEscapeFunction**`<T>`
|
|
4
|
+
*
|
|
5
|
+
* Checks whether the API surface passed in has an escape function defined.
|
|
6
|
+
*/
|
|
7
|
+
export type HasEscapeFunction<T extends Dictionary | TypedFunction | Api> = GetEscapeFunction<T> extends ErrorCondition ? false : true;
|
|
8
|
+
export type IsEscapeFunction<T> = T extends TypedFunction ? T extends EscapeFunction ? FnProps<T> extends {
|
|
9
|
+
escape: true;
|
|
10
|
+
} ? true : false : false : false;
|
|
11
|
+
//# sourceMappingURL=ApiOperators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiOperators.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/ApiOperators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,UAAU,EACV,cAAc,EACd,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,aAAa,EACd,oBAAwB;AAEzB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAC3B,CAAC,SAAS,UAAU,GAAG,aAAa,GAAG,GAAG,IACxC,iBAAiB,CAAC,CAAC,CAAC,SAAS,cAAc,GAC7C,KAAK,GACL,IAAI,CAAC;AAIP,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GACvD,CAAC,SAAS,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GACjC,IAAI,GACJ,KAAK,GACP,KAAK,GACP,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { And, Or } from "../../index";
|
|
1
|
+
import { And, Dictionary, Or, Values } from "../../index";
|
|
2
2
|
type Find<TList extends readonly unknown[], TComparator> = Or<{
|
|
3
3
|
[K in keyof TList]: [TList[K]] extends [TComparator] ? true : false;
|
|
4
4
|
}>;
|
|
5
5
|
type Compare<TList extends readonly unknown[], TComparator extends readonly unknown[]> = And<{
|
|
6
6
|
[K in keyof TList]: Find<TComparator, TList[K]> extends boolean ? Find<TComparator, TList[K]> : never;
|
|
7
7
|
}, true>;
|
|
8
|
+
type Process<TList extends readonly unknown[], TComparator extends readonly unknown[]> = TList["length"] extends TComparator["length"] ? Compare<TList, TComparator> : false;
|
|
8
9
|
/**
|
|
9
|
-
* **HasSameValues**`<
|
|
10
|
+
* **HasSameValues**`<TContainer,TComparator>`
|
|
10
11
|
*
|
|
11
12
|
* Boolean type utility which determines if the values in
|
|
12
13
|
* `TList` and `TComparator` are the same (even if the order
|
|
13
14
|
* is different).
|
|
14
15
|
*/
|
|
15
|
-
export type HasSameValues<
|
|
16
|
+
export type HasSameValues<TContainer extends readonly unknown[], TComparator extends readonly unknown[]> = TContainer extends readonly unknown[] ? Process<TContainer, TComparator> : TContainer extends Dictionary ? Process<Values<TContainer>, TComparator> : never;
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=HasSameValues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasSameValues.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/HasSameValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,oBAAwB;
|
|
1
|
+
{"version":3,"file":"HasSameValues.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/HasSameValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAwB;AAE9D,KAAK,IAAI,CACP,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,IACT,EAAE,CAAC;KACJ,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,KAAK;CACpE,CAAC,CAAC;AAEH,KAAK,OAAO,CACV,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,SAAS,SAAS,OAAO,EAAE,IACpC,GAAG,CAAC;KACL,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAC3D,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAC3B,KAAK;CACV,EAAE,IAAI,CAAC,CAAA;AAER,KAAK,OAAO,CACZ,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,SAAS,SAAS,OAAO,EAAE,IAClC,KAAK,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,QAAQ,CAAC,GAC/C,OAAO,CACP,KAAK,EACL,WAAW,CACZ,GACC,KAAK,CAAC;AAGR;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CACvB,UAAU,SAAS,SAAS,OAAO,EAAE,EACrC,WAAW,SAAS,SAAS,OAAO,EAAE,IACpC,UAAU,SAAS,SAAS,OAAO,EAAE,GACvC,OAAO,CAAC,UAAU,EAAC,WAAW,CAAC,GAC/B,UAAU,SAAS,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAC,WAAW,CAAC,GACvC,KAAK,CAAC"}
|