inferred-types 0.55.19 → 0.55.21

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.
@@ -3011,17 +3011,17 @@ declare const TW_HUE: {
3011
3011
  readonly stone: 273;
3012
3012
  };
3013
3013
  declare const TW_LUMINOSITY: {
3014
- readonly 50: 97.78;
3015
- readonly 100: 93.56;
3016
- readonly 200: 88.11;
3017
- readonly 300: 82.67;
3018
- readonly 400: 74.22;
3019
- readonly 500: 64.78;
3020
- readonly 600: 57.33;
3021
- readonly 700: 46.89;
3022
- readonly 800: 39.44;
3023
- readonly 900: 32;
3024
- readonly 950: 23.78;
3014
+ readonly "50": 97.78;
3015
+ readonly "100": 93.56;
3016
+ readonly "200": 88.11;
3017
+ readonly "300": 82.67;
3018
+ readonly "400": 74.22;
3019
+ readonly "500": 64.78;
3020
+ readonly "600": 57.33;
3021
+ readonly "700": 46.89;
3022
+ readonly "800": 39.44;
3023
+ readonly "900": 32;
3024
+ readonly "950": 23.78;
3025
3025
  };
3026
3026
  /**
3027
3027
  * **TW_CHROMA**
@@ -3032,17 +3032,17 @@ declare const TW_LUMINOSITY: {
3032
3032
  * **Related:** `TW_CHROMA_50`, `TW_CHROMA_100`, ...
3033
3033
  */
3034
3034
  declare const TW_CHROMA: {
3035
- readonly 50: 0.0108;
3036
- readonly 100: 0.0321;
3037
- readonly 200: 0.0609;
3038
- readonly 300: 0.0908;
3039
- readonly 400: 0.1398;
3040
- readonly 500: 0.1472;
3041
- readonly 600: 0.1299;
3042
- readonly 700: 0.1067;
3043
- readonly 800: 0.0898;
3044
- readonly 900: 0.0726;
3045
- readonly 950: 0.054;
3035
+ readonly "50": 0.0108;
3036
+ readonly "100": 0.0321;
3037
+ readonly "200": 0.0609;
3038
+ readonly "300": 0.0908;
3039
+ readonly "400": 0.1398;
3040
+ readonly "500": 0.1472;
3041
+ readonly "600": 0.1299;
3042
+ readonly "700": 0.1067;
3043
+ readonly "800": 0.0898;
3044
+ readonly "900": 0.0726;
3045
+ readonly "950": 0.054;
3046
3046
  };
3047
3047
  /**
3048
3048
  * The list of "targets" where Tailwind color string references
@@ -3773,23 +3773,23 @@ type ValidChars<T extends readonly string[]> = [] extends T ? true : First<T> ex
3773
3773
  */
3774
3774
  type IsVariable<T extends string> = T extends Variable ? ValidChars<Chars<T>> extends true ? true : false : false;
3775
3775
 
3776
- type Process$1z<TVal, TDefault> = TVal extends Something ? TVal : TDefault;
3776
+ type Process$1A<TVal, TDefault> = TVal extends Something ? TVal : TDefault;
3777
3777
  /**
3778
3778
  * **Default**`<TVal,TDefault,[TProtect]>`
3779
3779
  *
3780
3780
  * Branching operator which allows giving a value `TVal` a _default value_ when
3781
3781
  * it's value is either `null` or `undefined`.
3782
3782
  */
3783
- type Default<TVal, TDefault> = Process$1z<TVal, TDefault>;
3783
+ type Default<TVal, TDefault> = Process$1A<TVal, TDefault>;
3784
3784
 
3785
- type Process$1y<TConditions extends readonly boolean[], TBooleanSeen extends boolean> = [] extends TConditions ? IfEqual<TBooleanSeen, true, boolean, true> : [First<TConditions>] extends [false] ? false : Process$1y<AfterFirst<TConditions>, TBooleanSeen>;
3785
+ type Process$1z<TConditions extends readonly boolean[], TBooleanSeen extends boolean> = [] extends TConditions ? IfEqual<TBooleanSeen, true, boolean, true> : [First<TConditions>] extends [false] ? false : Process$1z<AfterFirst<TConditions>, TBooleanSeen>;
3786
3786
  /**
3787
3787
  * **And**`<TConditions, [TEmpty]>`
3788
3788
  *
3789
3789
  * Allows an array of conditions which are either ARE a boolean value or a
3790
3790
  * function which evaluates to a boolean value to be logically AND'd together.
3791
3791
  */
3792
- type And<TConditions, TEmpty extends boolean = false> = TConditions extends readonly (boolean | LogicFunction)[] ? IsEqual<TConditions, []> extends true ? TEmpty : LogicalReturns<TConditions> extends readonly boolean[] ? Process$1y<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never : never;
3792
+ type And<TConditions, TEmpty extends boolean = false> = TConditions extends readonly (boolean | LogicFunction)[] ? IsEqual<TConditions, []> extends true ? TEmpty : LogicalReturns<TConditions> extends readonly boolean[] ? Process$1z<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never : never;
3793
3793
 
3794
3794
  /**
3795
3795
  * comparison operators which require the base type to be a string
@@ -3806,14 +3806,14 @@ type NumericComparatorOperation = "greaterThan" | "greaterThanOrEqual" | "lessTh
3806
3806
  */
3807
3807
  type ComparatorOperation = "extends" | "equals" | StringComparatorOperation | "contains" | "containsAll" | NumericComparatorOperation | "returnEquals" | "returnExtends";
3808
3808
  type Unionize<T> = T extends readonly unknown[] ? TupleToUnion<T> : T;
3809
- type Process$1x<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 "greaterThanOrEqual" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsGreaterThanOrEqual<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 "lessThanOrEqual" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsLessThanOrEqual<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;
3809
+ type Process$1y<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 "greaterThanOrEqual" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsGreaterThanOrEqual<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 "lessThanOrEqual" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsLessThanOrEqual<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;
3810
3810
  /**
3811
3811
  * **Compare**`<TVal,TOp,TComparator>`
3812
3812
  *
3813
3813
  * Compares the value `TVal` with `TComparator` using
3814
3814
  * the `TOp` _operator_.
3815
3815
  */
3816
- type Compare$1<TVal, TOp extends ComparatorOperation, TComparator> = WhenNever<Process$1x<TVal, TOp, TComparator>>;
3816
+ type Compare$1<TVal, TOp extends ComparatorOperation, TComparator> = WhenNever<Process$1y<TVal, TOp, TComparator>>;
3817
3817
 
3818
3818
  type Negate<TVal> = IsNever<TVal> extends true ? never : [TVal] extends [boolean] ? IsTrue<TVal> extends true ? false : IsFalse<TVal> extends true ? true : boolean : [TVal] extends [LogicFunction] ? Negate<ReturnType<LogicFunction>> : never;
3819
3819
  type NegateTuple<TTuple extends readonly (boolean | LogicFunction)[], TResults extends readonly (boolean | LogicFunction)[] = []> = [] extends TTuple ? IsEqual<TResults, [], false, TResults> : NegateTuple<AfterFirst<TTuple>, [
@@ -3835,7 +3835,7 @@ type NegateTuple<TTuple extends readonly (boolean | LogicFunction)[], TResults e
3835
3835
  */
3836
3836
  type Not<TVal, TNotBoolean extends boolean = false> = [TVal] extends [boolean] ? Exclude<As<Negate<TVal>, boolean>, any[]> : [TVal] extends [LogicFunction] ? As<Negate<ReturnType<TVal>>, boolean> : [TVal] extends [readonly (LogicFunction | boolean)[]] ? As<NegateTuple<TVal>, readonly boolean[]> : TNotBoolean;
3837
3837
 
3838
- type Process$1w<TConditions extends readonly boolean[], TBooleanSean extends boolean> = NarrowlyContains<TConditions, true> extends true ? true : [IsEqual<TBooleanSean, true>] extends [true] ? boolean : false;
3838
+ type Process$1x<TConditions extends readonly boolean[], TBooleanSean extends boolean> = NarrowlyContains<TConditions, true> extends true ? true : [IsEqual<TBooleanSean, true>] extends [true] ? boolean : false;
3839
3839
  type ConditionError<TErr> = TErr extends ErrorCondition ? ProxyError<TErr, "Or", "TConditions"> : never;
3840
3840
  /**
3841
3841
  * **Or**`<TConditions, [TEmpty]>`
@@ -3848,16 +3848,16 @@ type ConditionError<TErr> = TErr extends ErrorCondition ? ProxyError<TErr, "Or",
3848
3848
  *
3849
3849
  * **Related:** `And`
3850
3850
  */
3851
- type Or<TConditions, TEmpty extends boolean = false> = IsNever<TConditions> extends true ? Throw<"invalid-never", `Or<TConditions> received "never" for it's conditions!`, "Or"> : IsEqual<TConditions, []> extends true ? TEmpty : TConditions extends readonly (boolean | LogicFunction)[] ? LogicalReturns<TConditions> extends readonly boolean[] ? Process$1w<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never : IsErrorCondition<TConditions> extends true ? ConditionError<TConditions> : Throw<"invalid-conditions", `The conditions passed to Or<TConditions> were invalid!`, "Or", {
3851
+ type Or<TConditions, TEmpty extends boolean = false> = IsNever<TConditions> extends true ? Throw<"invalid-never", `Or<TConditions> received "never" for it's conditions!`, "Or"> : IsEqual<TConditions, []> extends true ? TEmpty : TConditions extends readonly (boolean | LogicFunction)[] ? LogicalReturns<TConditions> extends readonly boolean[] ? Process$1x<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never : IsErrorCondition<TConditions> extends true ? ConditionError<TConditions> : Throw<"invalid-conditions", `The conditions passed to Or<TConditions> were invalid!`, "Or", {
3852
3852
  library: "inferred-types/constants";
3853
3853
  value: TConditions;
3854
3854
  }>;
3855
3855
 
3856
- type Process$1v<TElements extends readonly unknown[], TOp extends ComparatorOperation, TComparator> = [] extends TElements ? false : [WhenNever<Compare$1<First<TElements>, TOp, TComparator>>] extends [true] ? true : Process$1v<AfterFirst<TElements>, TOp, TComparator>;
3856
+ type Process$1w<TElements extends readonly unknown[], TOp extends ComparatorOperation, TComparator> = [] extends TElements ? false : [WhenNever<Compare$1<First<TElements>, TOp, TComparator>>] extends [true] ? true : Process$1w<AfterFirst<TElements>, TOp, TComparator>;
3857
3857
  type Some<TContainer extends Container, TOp extends "extends" | "equals" | "startsWith" | "endsWith" | "lessThan" | "greaterThan", TComparator extends Or<[
3858
3858
  IsEqual<TOp, "startsWith">,
3859
3859
  IsEqual<TOp, "endsWith">
3860
- ]> extends true ? string : Or<[IsEqual<TOp, "lessThan">, IsEqual<TOp, "greaterThan">]> extends true ? NumberLike : unknown> = TContainer extends readonly unknown[] ? Process$1v<TContainer, TOp, TComparator> : TContainer extends Dictionary ? Process$1v<Values<TContainer>, TOp, TComparator> : never;
3860
+ ]> extends true ? string : Or<[IsEqual<TOp, "lessThan">, IsEqual<TOp, "greaterThan">]> extends true ? NumberLike : unknown> = TContainer extends readonly unknown[] ? Process$1w<TContainer, TOp, TComparator> : TContainer extends Dictionary ? Process$1w<Values<TContainer>, TOp, TComparator> : never;
3861
3861
 
3862
3862
  type AllAcc<TList extends readonly unknown[], TExtend> = [] extends TList ? true : If<Extends<First<TList>, TExtend>, AllAcc<AfterFirst<TList>, TExtend>, false>;
3863
3863
  /**
@@ -3948,11 +3948,11 @@ type Contains<TContent extends string | number | readonly unknown[], TComparator
3948
3948
  type DoesExtend<TValue, TExtends> = IsNever<TValue> extends true ? false : [TValue] extends [TExtends] ? true : false;
3949
3949
 
3950
3950
  type Test$1<TValue extends string, TComparator extends string> = TValue extends `${string}${TComparator}` ? true : false;
3951
- type Process$1u<TValue extends string, TComparator extends string> = IsStringLiteral<TComparator> extends true ? IsStringLiteral<TValue> extends true ? Test$1<TValue, TComparator> : boolean : boolean;
3951
+ type Process$1v<TValue extends string, TComparator extends string> = IsStringLiteral<TComparator> extends true ? IsStringLiteral<TValue> extends true ? Test$1<TValue, TComparator> : boolean : boolean;
3952
3952
  type ProcessEach$1<TValue extends string, TComparator extends readonly string[]> = Or<{
3953
- [K in keyof TComparator]: Process$1u<TValue, TComparator[K]>;
3953
+ [K in keyof TComparator]: Process$1v<TValue, TComparator[K]>;
3954
3954
  }>;
3955
- type PreProcess$4<TValue extends string, TComparator extends string | readonly string[]> = TComparator extends readonly string[] ? ProcessEach$1<TValue, TComparator> : TComparator extends string ? Process$1u<TValue, TComparator> : never;
3955
+ type PreProcess$4<TValue extends string, TComparator extends string | readonly string[]> = TComparator extends readonly string[] ? ProcessEach$1<TValue, TComparator> : TComparator extends string ? Process$1v<TValue, TComparator> : never;
3956
3956
  /**
3957
3957
  * **EndsWith**<TValue, TComparator>
3958
3958
  *
@@ -3989,13 +3989,13 @@ type _HasArray<TList extends readonly unknown[]> = [] extends TList ? false : Is
3989
3989
  */
3990
3990
  type HasArray<TList extends readonly unknown[]> = _HasArray<TList>;
3991
3991
 
3992
- type Process$1t<TStr extends string, TChars extends string, _TOp extends "any" | "all"> = TStr extends `${string}${TChars}${string}` ? true : false;
3992
+ type Process$1u<TStr extends string, TChars extends string, _TOp extends "any" | "all"> = TStr extends `${string}${TChars}${string}` ? true : false;
3993
3993
  type ProcessTuple$4<TStr extends string, TChars extends readonly string[], TOp extends "any" | "all"> = TOp extends "any" ? Or<{
3994
3994
  [K in keyof TChars]: TStr extends `${string}${TChars[K]}${string}` ? true : false;
3995
3995
  }> : And<{
3996
3996
  [K in keyof TChars]: TStr extends `${string}${TChars[K]}${string}` ? true : false;
3997
3997
  }>;
3998
- type PreProcess$3<TStr extends string, TChars extends string, TOp extends "any" | "all"> = IsUnion<TChars> extends true ? UnionToTuple$1<TChars> extends readonly string[] ? ProcessTuple$4<TStr, UnionToTuple$1<TChars>, TOp> : never : Process$1t<TStr, TChars, TOp>;
3998
+ type PreProcess$3<TStr extends string, TChars extends string, TOp extends "any" | "all"> = IsUnion<TChars> extends true ? UnionToTuple$1<TChars> extends readonly string[] ? ProcessTuple$4<TStr, UnionToTuple$1<TChars>, TOp> : never : Process$1u<TStr, TChars, TOp>;
3999
3999
  /**
4000
4000
  * **HasCharacters**`<TStr,TChars>`
4001
4001
  *
@@ -4009,7 +4009,7 @@ type PreProcess$3<TStr extends string, TChars extends string, TOp extends "any"
4009
4009
  */
4010
4010
  type HasCharacters<TStr extends string, TChars extends string | readonly string[], TOp extends "any" | "all" = "any"> = IsStringLiteral<TStr> extends true ? TChars extends string ? IsStringLiteral<TChars> extends true ? PreProcess$3<TStr, TChars, TOp> : boolean : TChars extends readonly string[] ? AllStringLiterals<AsArray<TChars>> extends true ? ProcessTuple$4<TStr, TChars, TOp> : boolean : boolean : boolean;
4011
4011
 
4012
- type Process$1s<TStr extends string, TChars extends string> = ReplaceAll<TStr, TChars, ""> extends "" ? false : true;
4012
+ type Process$1t<TStr extends string, TChars extends string> = ReplaceAll<TStr, TChars, ""> extends "" ? false : true;
4013
4013
  /**
4014
4014
  * **HasOtherCharacters**`<TStr,TChars>`
4015
4015
  *
@@ -4021,7 +4021,7 @@ type Process$1s<TStr extends string, TChars extends string> = ReplaceAll<TStr, T
4021
4021
  *
4022
4022
  * **Related:** `HasCharacters`
4023
4023
  */
4024
- type HasOtherCharacters<TStr extends string, TChars extends string | readonly string[]> = [IsWideType<TStr>] extends [true] ? boolean : [TChars] extends [string] ? IsWideType<TChars> extends true ? boolean : Process$1s<TStr, TChars> : TChars extends readonly string[] ? Process$1s<TStr, TupleToUnion<TChars>> : never;
4024
+ type HasOtherCharacters<TStr extends string, TChars extends string | readonly string[]> = [IsWideType<TStr>] extends [true] ? boolean : [TChars] extends [string] ? IsWideType<TChars> extends true ? boolean : Process$1t<TStr, TChars> : TChars extends readonly string[] ? Process$1t<TStr, TupleToUnion<TChars>> : never;
4025
4025
 
4026
4026
  /**
4027
4027
  * **HasParameters**`<T>`
@@ -4261,7 +4261,7 @@ type Validations<T> = IsStringLiteral<T> extends true ? true : IsNumericLiteral<
4261
4261
  */
4262
4262
  type IsLiteral<T> = [IsUnion<T>] extends [true] ? false : Validations<T>;
4263
4263
 
4264
- type Process$1p<T> = UnionToTuple$1<T> extends readonly unknown[] ? RetainLiterals<UnionToTuple$1<T>>["length"] extends UnionToTuple$1<T>["length"] ? true : false : never;
4264
+ type Process$1q<T> = UnionToTuple$1<T> extends readonly unknown[] ? RetainLiterals<UnionToTuple$1<T>>["length"] extends UnionToTuple$1<T>["length"] ? true : false : never;
4265
4265
  /**
4266
4266
  * **IsLiteralUnion**`<T>`
4267
4267
  *
@@ -4270,7 +4270,7 @@ type Process$1p<T> = UnionToTuple$1<T> extends readonly unknown[] ? RetainLitera
4270
4270
  *
4271
4271
  * **Related:** `IsLiteralUnion`, `IsWideUnion`
4272
4272
  */
4273
- type IsLiteralUnion<T> = [IsUnion<T>] extends [true] ? Process$1p<T> : false;
4273
+ type IsLiteralUnion<T> = [IsUnion<T>] extends [true] ? Process$1q<T> : false;
4274
4274
 
4275
4275
  /**
4276
4276
  * **IsNarrowingFn**`<TFn>`
@@ -4389,7 +4389,7 @@ type IsSingleChar<T> = T extends string ? Length<T> extends 1 ? true : If<IsStri
4389
4389
  */
4390
4390
  type IsString<T> = [IsUnion<T>] extends [true] ? WidenUnion<T> extends string ? true : string extends WidenUnion<T> ? boolean : false : [T] extends [string] ? true : false;
4391
4391
 
4392
- type Process$1m<T, TNever> = [IsNever<T>] extends [true] ? TNever : [IsEqual<T, true>] extends [true] ? true : false;
4392
+ type Process$1n<T, TNever> = [IsNever<T>] extends [true] ? TNever : [IsEqual<T, true>] extends [true] ? true : false;
4393
4393
  /**
4394
4394
  * **IsTrue**`<T,[TNever]>`
4395
4395
  *
@@ -4403,9 +4403,9 @@ type Process$1m<T, TNever> = [IsNever<T>] extends [true] ? TNever : [IsEqual<T,
4403
4403
  * type F2 = IsTrue<"foobar">;
4404
4404
  * ```
4405
4405
  */
4406
- type IsTrue<T, TNever = never> = Process$1m<T, TNever>;
4406
+ type IsTrue<T, TNever = never> = Process$1n<T, TNever>;
4407
4407
 
4408
- type Process$1l<T> = [IsNever<T>] extends [true] ? false : T extends readonly unknown[] ? number extends T["length"] ? false : true : false;
4408
+ type Process$1m<T> = [IsNever<T>] extends [true] ? false : T extends readonly unknown[] ? number extends T["length"] ? false : true : false;
4409
4409
  /**
4410
4410
  * **IsTuple**`<T>`
4411
4411
  *
@@ -4418,7 +4418,7 @@ type Process$1l<T> = [IsNever<T>] extends [true] ? false : T extends readonly un
4418
4418
  * - types such as `string[]`, etc. are _not_ tuples as they
4419
4419
  * do not discretely specify a length of elements
4420
4420
  */
4421
- type IsTuple<T> = Process$1l<T> extends boolean ? Process$1l<T> : never;
4421
+ type IsTuple<T> = Process$1m<T> extends boolean ? Process$1m<T> : never;
4422
4422
 
4423
4423
  /**
4424
4424
  * **IsUndefined**
@@ -4570,7 +4570,7 @@ type InvalidNever = Throw<"invalid-never", `The value of T when calling IsWideTy
4570
4570
  */
4571
4571
  type IsWideType<T, TNever = InvalidNever> = [IsNever<T>] extends [true] ? TNever : [T] extends [ErrorCondition] ? ProxyError<T, "IsWideType"> : IsWideScalar<T> extends true ? true : IsWideContainer<T> extends true ? true : IsWideUnion<T> extends true ? true : false;
4572
4572
 
4573
- type Process$1k<T extends readonly unknown[]> = {
4573
+ type Process$1l<T extends readonly unknown[]> = {
4574
4574
  [K in keyof T]: IsWideType<T[K]> extends true ? true : Or<[IsUndefined<T[K]>, IsNull<T[K]>]> extends true ? true : false;
4575
4575
  };
4576
4576
  /**
@@ -4581,7 +4581,7 @@ type Process$1k<T extends readonly unknown[]> = {
4581
4581
  *
4582
4582
  * **Related:** `IsNonLiteralUnion`
4583
4583
  */
4584
- type IsWideUnion<T> = [IsUnion<T>] extends [true] ? [Process$1k<UnionToTuple$1<T>>] extends [readonly true[]] ? true : false : false;
4584
+ type IsWideUnion<T> = [IsUnion<T>] extends [true] ? [Process$1l<UnionToTuple$1<T>>] extends [readonly true[]] ? true : false : false;
4585
4585
 
4586
4586
  type Overlap<TKeys extends readonly ObjectKey[], TComparator extends AnyObject> = [] extends TKeys ? false : First<TKeys> extends keyof TComparator ? true : Overlap<AfterFirst<TKeys>, TComparator>;
4587
4587
  /**
@@ -4670,7 +4670,7 @@ type HasQueryParameter<T extends string, P extends string> = And<[
4670
4670
  ]> extends true ? GetUrlQueryParams<T> extends `${string}${P}=${string}` ? true : false : boolean;
4671
4671
 
4672
4672
  type Check<TValue extends string, TComparator extends string | number> = TValue extends `${TComparator}${string}` ? true : false;
4673
- type Process$1j<TValue extends string, TComparator extends string | number | readonly string[]> = TComparator extends readonly string[] ? Check<[
4673
+ type Process$1k<TValue extends string, TComparator extends string | number | readonly string[]> = TComparator extends readonly string[] ? Check<[
4674
4674
  TValue
4675
4675
  ] extends [number] ? `${TValue}` : TValue, TupleToUnion<TComparator>> : Check<[
4676
4676
  TValue
@@ -4689,9 +4689,9 @@ type Process$1j<TValue extends string, TComparator extends string | number | rea
4689
4689
  * - this can be much more type efficient for unions with lots of characters
4690
4690
  * - if you need larger pattern matches then use a Tuple for `TComparator`
4691
4691
  */
4692
- type StartsWith<TValue extends string | number, TComparator extends string | number | readonly string[]> = [IsWideType<TValue>] extends [true] ? boolean : [IsWideType<TComparator>] extends [true] ? boolean : IsEqual<Process$1j<AsString<TValue>, TComparator>, boolean> extends true ? true : Process$1j<AsString<TValue>, TComparator>;
4692
+ type StartsWith<TValue extends string | number, TComparator extends string | number | readonly string[]> = [IsWideType<TValue>] extends [true] ? boolean : [IsWideType<TComparator>] extends [true] ? boolean : IsEqual<Process$1k<AsString<TValue>, TComparator>, boolean> extends true ? true : Process$1k<AsString<TValue>, TComparator>;
4693
4693
 
4694
- type Process$1i<T extends readonly unknown[]> = HasArray<T> extends true ? true : false;
4694
+ type Process$1j<T extends readonly unknown[]> = HasArray<T> extends true ? true : false;
4695
4695
  /**
4696
4696
  * **UnionHasArray**`<T>`
4697
4697
  *
@@ -4701,7 +4701,7 @@ type Process$1i<T extends readonly unknown[]> = HasArray<T> extends true ? true
4701
4701
  * - and that one of the elements of the union is an array
4702
4702
  * of some sort.
4703
4703
  */
4704
- type UnionHasArray<T> = IsUnion<T> extends true ? Process$1i<UnionToTuple$1<T>> : false;
4704
+ type UnionHasArray<T> = IsUnion<T> extends true ? Process$1j<UnionToTuple$1<T>> : false;
4705
4705
 
4706
4706
  type ShouldFail<TTest> = [IsNever<TTest>] extends [true] ? true : [IsFalse<TTest>] extends [true] ? true : false;
4707
4707
  type Iterate$8<TTest extends readonly unknown[]> = Or<{
@@ -4811,8 +4811,8 @@ type Merge$1<TUser extends Partial<OnPassRemap>, TKeys extends readonly (ObjectK
4811
4811
  false: false;
4812
4812
  error: Constant$1<"not-set">;
4813
4813
  }> = [] extends TKeys ? TConfig : Merge$1<TUser, AfterFirst<TKeys>, As<ExpandDictionary<Record<First<TKeys>, TUser[First<TKeys>]> & Omit<TConfig, First<TKeys>>>, OnPassRemap>>;
4814
- type Process$1g<TTest, TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [IsNever<TTest>] extends [true] ? TRemap["never"] : [IsErrorCondition<TTest>] extends [true] ? TRemap["error"] extends Constant$1<"not-set"> ? TTest : TRemap["error"] : [IsFalse<TTest>] extends [true] ? TRemap["false"] : TPass;
4815
- type Iterate$7<TTest extends readonly unknown[], TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [] extends TTest ? TPass : Process$1g<First<TTest>, TPass, TRemap> extends TPass ? Iterate$7<AfterFirst<TTest>, TPass, TRemap> : Process$1g<First<TTest>, TPass, TRemap>;
4814
+ type Process$1h<TTest, TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [IsNever<TTest>] extends [true] ? TRemap["never"] : [IsErrorCondition<TTest>] extends [true] ? TRemap["error"] extends Constant$1<"not-set"> ? TTest : TRemap["error"] : [IsFalse<TTest>] extends [true] ? TRemap["false"] : TPass;
4815
+ type Iterate$7<TTest extends readonly unknown[], TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [] extends TTest ? TPass : Process$1h<First<TTest>, TPass, TRemap> extends TPass ? Iterate$7<AfterFirst<TTest>, TPass, TRemap> : Process$1h<First<TTest>, TPass, TRemap>;
4816
4816
  /**
4817
4817
  * **OnPass**`<TTest, TPass,[TRemap],[TFalse]>`
4818
4818
  *
@@ -4826,7 +4826,7 @@ type Iterate$7<TTest extends readonly unknown[], TPass, TRemap extends OnPassRem
4826
4826
  * - the `TRemap` allows you to remap error conditions
4827
4827
  * as well if needed
4828
4828
  */
4829
- type OnPass<TTest, TPass, TRemap extends Partial<OnPassRemap<unknown, unknown, unknown>> = OnPassRemap<never, false, Constant$1<"not-set">>> = TTest extends readonly unknown[] ? Iterate$7<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant$1<"not-set">> ? TRemap : Merge$1<TRemap, Keys<TRemap>>> : Process$1g<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant$1<"not-set">> ? TRemap : Merge$1<TRemap, Keys<TRemap>>>;
4829
+ type OnPass<TTest, TPass, TRemap extends Partial<OnPassRemap<unknown, unknown, unknown>> = OnPassRemap<never, false, Constant$1<"not-set">>> = TTest extends readonly unknown[] ? Iterate$7<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant$1<"not-set">> ? TRemap : Merge$1<TRemap, Keys<TRemap>>> : Process$1h<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant$1<"not-set">> ? TRemap : Merge$1<TRemap, Keys<TRemap>>>;
4830
4830
 
4831
4831
  /**
4832
4832
  * **WhenNever**`<T, [TMapTo]>`
@@ -4905,13 +4905,13 @@ type RemoveEmpty<T> = T extends Tuple ? As<RemoveMarked<ProcessTup<T>>, readonly
4905
4905
 
4906
4906
  type Marked$2 = typeof MARKED;
4907
4907
  type _Keys$4<T extends object> = UnionToTuple$1<keyof RemoveIndexKeys<T>> extends readonly ObjectKey[] ? UnionToTuple$1<keyof RemoveIndexKeys<T>> : never;
4908
- type Process$1e<T extends Container, TKeys extends readonly PropertyKey[], TResults extends Container = T extends readonly unknown[] ? [] : EmptyObject> = [] extends TKeys ? TResults : First<TKeys> extends keyof T ? DoesExtend<T[First<TKeys>], Marked$2> extends true ? Process$1e<T, AfterFirst<TKeys>, TResults> : Process$1e<T, AfterFirst<TKeys>, First<TKeys> extends keyof T ? TResults extends readonly unknown[] ? [...TResults, T[First<TKeys>]] : TResults extends Dictionary ? TResults & Record<First<TKeys>, T[First<TKeys>]> : never : never> : never;
4908
+ type Process$1f<T extends Container, TKeys extends readonly PropertyKey[], TResults extends Container = T extends readonly unknown[] ? [] : EmptyObject> = [] extends TKeys ? TResults : First<TKeys> extends keyof T ? DoesExtend<T[First<TKeys>], Marked$2> extends true ? Process$1f<T, AfterFirst<TKeys>, TResults> : Process$1f<T, AfterFirst<TKeys>, First<TKeys> extends keyof T ? TResults extends readonly unknown[] ? [...TResults, T[First<TKeys>]] : TResults extends Dictionary ? TResults & Record<First<TKeys>, T[First<TKeys>]> : never : never> : never;
4909
4909
  /**
4910
4910
  * **RemoveMarked**`<T>`
4911
4911
  *
4912
4912
  * Removes all values in `T` which extends `Constant<"Marked">`
4913
4913
  */
4914
- type RemoveMarked<T extends Container> = Process$1e<T, T extends Tuple ? NumericKeys<T> : _Keys$4<T>>;
4914
+ type RemoveMarked<T extends Container> = Process$1f<T, T extends Tuple ? NumericKeys<T> : _Keys$4<T>>;
4915
4915
 
4916
4916
  /**
4917
4917
  * **RemoveIndexKeys**`<T>`
@@ -4949,7 +4949,7 @@ type _AsArray<T> = T extends Tuple ? Mutable<T> : If<IsUndefined<T>, [
4949
4949
  */
4950
4950
  type AsArray<T> = _AsArray<T> extends any[] ? _AsArray<T> : never;
4951
4951
 
4952
- type Process$1d<T extends `${number}`> = If<IsStringLiteral<T>, StripLeading<T, "-">, string>;
4952
+ type Process$1e<T extends `${number}`> = If<IsStringLiteral<T>, StripLeading<T, "-">, string>;
4953
4953
  /**
4954
4954
  * **Abs**`<T>`
4955
4955
  *
@@ -4958,7 +4958,7 @@ type Process$1d<T extends `${number}`> = If<IsStringLiteral<T>, StripLeading<T,
4958
4958
  * - you can pass in a numeric string literal and it perform ABS func while
4959
4959
  * preserving string literal type
4960
4960
  */
4961
- type Abs<T extends NumberLike> = T extends number ? AsNumber<Process$1d<`${T}`>> : T extends `${number}` ? Process$1d<T> : never;
4961
+ type Abs<T extends NumberLike> = T extends number ? AsNumber<Process$1e<`${T}`>> : T extends `${number}` ? Process$1e<T> : never;
4962
4962
 
4963
4963
  /**
4964
4964
  * **NumericChar**
@@ -4982,13 +4982,13 @@ type GrowExp<A extends any[], N extends number, P extends any[][], L extends num
4982
4982
  type MapItemType<T, I> = {
4983
4983
  [K in keyof T]: I;
4984
4984
  };
4985
- type Process$1c<T, N extends number> = N extends 0 ? [] : MapItemType<GrowExp<[0], N, []>, T>;
4985
+ type Process$1d<T, N extends number> = N extends 0 ? [] : MapItemType<GrowExp<[0], N, []>, T>;
4986
4986
  /**
4987
4987
  * **FixedLengthArray**`<T,N>`
4988
4988
  *
4989
4989
  * Creates a fixed length `<N>` array of a given type `<T>`
4990
4990
  */
4991
- type FixedLengthArray<T, N extends number> = Process$1c<T, N> extends readonly unknown[] ? Process$1c<T, N> : never;
4991
+ type FixedLengthArray<T, N extends number> = Process$1d<T, N> extends readonly unknown[] ? Process$1d<T, N> : never;
4992
4992
 
4993
4993
  /**
4994
4994
  * **ParseInt**`<T>`
@@ -5011,7 +5011,7 @@ type ParseInt<T> = T extends `${infer N extends number}` ? N : never;
5011
5011
  */
5012
5012
  type AsNumber<T> = T extends number ? T : T extends `${number}` ? ParseInt<T> : never;
5013
5013
 
5014
- type Process$1b<TTuple extends readonly string[], TSeparator extends string, TResult extends string = ""> = [] extends TTuple ? TResult : Process$1b<AfterFirst<TTuple>, TSeparator, TResult extends "" ? First<TTuple> extends "" ? TResult : `${First<TTuple>}` : First<TTuple> extends "" ? TResult : `${TResult}${TSeparator}${First<TTuple>}`>;
5014
+ type Process$1c<TTuple extends readonly string[], TSeparator extends string, TResult extends string = ""> = [] extends TTuple ? TResult : Process$1c<AfterFirst<TTuple>, TSeparator, TResult extends "" ? First<TTuple> extends "" ? TResult : `${First<TTuple>}` : First<TTuple> extends "" ? TResult : `${TResult}${TSeparator}${First<TTuple>}`>;
5015
5015
  type Slicer<TTuple extends readonly unknown[], TMax extends number | null, TEllipsis extends string | false> = TMax extends number ? TakeFirst<TTuple, TMax> extends readonly unknown[] ? TEllipsis extends string ? ToStringArray<[...TakeFirst<TTuple, TMax>, TEllipsis]> : ToStringArray<TakeFirst<TTuple, TMax>> : never : ToStringArray<TTuple>;
5016
5016
  /**
5017
5017
  * **Join**`<TArr,[TSeparator],[TMax]>`
@@ -5026,7 +5026,7 @@ type Slicer<TTuple extends readonly unknown[], TMax extends number | null, TElli
5026
5026
  *
5027
5027
  * **Related:** `Concat<TArr>`
5028
5028
  */
5029
- type Join<TTuple extends readonly unknown[], TSeparator extends string = "", TMax extends number | null = null, TEllipsis extends string | false = "..."> = ToStringArray<TTuple> extends readonly string[] ? TMax extends number ? IsGreaterThan<TTuple["length"], TMax> extends true ? Process$1b<Slicer<TTuple, TMax, TEllipsis>, TSeparator> : Process$1b<ToStringArray<TTuple>, TSeparator> : Process$1b<ToStringArray<TTuple>, TSeparator> : never;
5029
+ type Join<TTuple extends readonly unknown[], TSeparator extends string = "", TMax extends number | null = null, TEllipsis extends string | false = "..."> = ToStringArray<TTuple> extends readonly string[] ? TMax extends number ? IsGreaterThan<TTuple["length"], TMax> extends true ? Process$1c<Slicer<TTuple, TMax, TEllipsis>, TSeparator> : Process$1c<ToStringArray<TTuple>, TSeparator> : Process$1c<ToStringArray<TTuple>, TSeparator> : never;
5030
5030
 
5031
5031
  /**
5032
5032
  * **AsString**<T>
@@ -5112,9 +5112,9 @@ type RightMostDigit<s extends string> = s extends `${infer rest}${NumericChar}`
5112
5112
  type SumStrings<left extends string, right extends string, accumulatedResultDigits extends string = "", carry extends boolean = false> = "" extends left ? "" extends right ? carry extends true ? `1${accumulatedResultDigits}` : accumulatedResultDigits : RightMostDigit<right> extends RightMostDigitResult<infer remainingRight, infer rightDigit> ? SumSingleDigits<"0", rightDigit, carry> extends SingleDigitSumResult<infer resultDigit, infer resultCarry> ? SumStrings<"", remainingRight, `${resultDigit}${accumulatedResultDigits}`, resultCarry> : never : never : "" extends right ? RightMostDigit<left> extends RightMostDigitResult<infer remainingLeft, infer leftDigit> ? SumSingleDigits<"0", leftDigit, carry> extends SingleDigitSumResult<infer resultDigit, infer resultCarry> ? SumStrings<remainingLeft, "", `${resultDigit}${accumulatedResultDigits}`, resultCarry> : never : never : RightMostDigit<left> extends RightMostDigitResult<infer remainingLeft, infer leftDigit> ? RightMostDigit<right> extends RightMostDigitResult<infer remainingRight, infer rightDigit> ? SumSingleDigits<leftDigit, rightDigit, carry> extends SingleDigitSumResult<infer resultDigit, infer resultCarry> ? SumStrings<remainingLeft, remainingRight, `${resultDigit}${accumulatedResultDigits}`, resultCarry> : never : never : never;
5113
5113
  type _Subtract<TValue extends `${number}`, TCountArr extends readonly unknown[]> = [] extends TCountArr ? TValue : _Subtract<Decrement<TValue>, AfterFirst<TCountArr>>;
5114
5114
  type AddNegatives<A extends `${number}`, B extends `${number}`> = SumStrings<A, B>;
5115
- type Process$1a<A extends `${number}`, B extends `${number}`> = And<[IsNegativeNumber<A>, IsNegativeNumber<B>]> extends true ? `-${AddNegatives<Abs<A>, Abs<B>>}` : IsNegativeNumber<B> extends true ? FixedLengthArray<unknown, AsNumber<Abs<B>>> extends readonly unknown[] ? _Subtract<A, FixedLengthArray<unknown, AsNumber<Abs<B>>>> : never : IsNegativeNumber<A> extends true ? FixedLengthArray<unknown, AsNumber<Abs<A>>> extends readonly unknown[] ? _Subtract<B, FixedLengthArray<unknown, AsNumber<Abs<A>>>> : never : SumStrings<A, B>;
5115
+ type Process$1b<A extends `${number}`, B extends `${number}`> = And<[IsNegativeNumber<A>, IsNegativeNumber<B>]> extends true ? `-${AddNegatives<Abs<A>, Abs<B>>}` : IsNegativeNumber<B> extends true ? FixedLengthArray<unknown, AsNumber<Abs<B>>> extends readonly unknown[] ? _Subtract<A, FixedLengthArray<unknown, AsNumber<Abs<B>>>> : never : IsNegativeNumber<A> extends true ? FixedLengthArray<unknown, AsNumber<Abs<A>>> extends readonly unknown[] ? _Subtract<B, FixedLengthArray<unknown, AsNumber<Abs<A>>>> : never : SumStrings<A, B>;
5116
5116
  type CheckWide<A extends NumberLike, B extends NumberLike> = IsWideType<A> extends true ? true : IsWideType<B> extends true ? true : false;
5117
- type PreProcess$2<A extends NumberLike, B extends NumberLike> = CheckWide<A, B> extends true ? Or<[IsString<A>, IsString<A>]> extends true ? string : number : Or<[IsWideType<A>, IsWideType<B>]> extends true ? If<IsString<A>, string, number> : A extends `${number}` ? B extends `${number}` ? As<Process$1a<A, B>, `${number}`> : As<Process$1a<A, AsString<B>>, `${number}`> : A extends number ? B extends number ? AsNumber<Process$1a<`${A}`, `${B}`>> : AsNumber<Process$1a<`${A}`, As<B, `${number}`>>> : never;
5117
+ type PreProcess$2<A extends NumberLike, B extends NumberLike> = CheckWide<A, B> extends true ? Or<[IsString<A>, IsString<A>]> extends true ? string : number : Or<[IsWideType<A>, IsWideType<B>]> extends true ? If<IsString<A>, string, number> : A extends `${number}` ? B extends `${number}` ? As<Process$1b<A, B>, `${number}`> : As<Process$1b<A, AsString<B>>, `${number}`> : A extends number ? B extends number ? AsNumber<Process$1b<`${A}`, `${B}`>> : AsNumber<Process$1b<`${A}`, As<B, `${number}`>>> : never;
5118
5118
  /**
5119
5119
  * **Add**`<A,B>`
5120
5120
  *
@@ -5309,7 +5309,7 @@ type ProxyError<TError extends ErrorCondition, TUtility extends string, TGeneric
5309
5309
  * Iterates over each element of the Tuple
5310
5310
  */
5311
5311
  type SingleFilter$3<TList extends readonly unknown[], TFilter, TOp extends ComparatorOperation, Result extends unknown[] = []> = TList extends [infer Head, ...infer Rest] ? [Compare$1<Head, TOp, TFilter>] extends [true] ? SingleFilter$3<Rest, TFilter, TOp, Result> : SingleFilter$3<Rest, TFilter, TOp, [...Result, Head]> : Result;
5312
- type Process$17<TList extends unknown[] | readonly unknown[], TFilter, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter$3<TList, TFilter, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter$3<[...TList], TFilter, TOp>> : never;
5312
+ type Process$18<TList extends unknown[] | readonly unknown[], TFilter, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter$3<TList, TFilter, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter$3<[...TList], TFilter, TOp>> : never;
5313
5313
  /**
5314
5314
  * **Filter**`<TList, TComparator, [TOp]>`
5315
5315
  *
@@ -5333,7 +5333,7 @@ type Process$17<TList extends unknown[] | readonly unknown[], TFilter, TOp exten
5333
5333
  *
5334
5334
  * **Related:** `RetainFromList`, `RemoveFromList`
5335
5335
  */
5336
- type Filter<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation = "extends"> = TList extends readonly unknown[] ? IfNever<TComparator, RemoveNever<TList>, If<IsArray<TComparator>, Process$17<TList, TupleToUnion<TComparator>, TOp>, Process$17<TList, TComparator, TOp>>> : never;
5336
+ type Filter<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation = "extends"> = TList extends readonly unknown[] ? IfNever<TComparator, RemoveNever<TList>, If<IsArray<TComparator>, Process$18<TList, TupleToUnion<TComparator>, TOp>, Process$18<TList, TComparator, TOp>>> : never;
5337
5337
 
5338
5338
  /**
5339
5339
  * Converts a Tuple type into a _union_ of the tuple elements
@@ -5443,7 +5443,7 @@ type _DU<T extends string> = T extends Lowercase<T> ? T : `-${Lowercase<T>}`;
5443
5443
  */
5444
5444
  type DashUppercase<T extends string> = HasUppercase<T> extends false ? T : T extends `${infer C0}${infer C1}${infer R}` ? `${_DU<C0>}${_DU<C1>}${DashUppercase<R>}` : T extends `${infer C0}${infer R}` ? `${_DU<C0>}${DashUppercase<R>}` : "";
5445
5445
 
5446
- type Process$15<TString extends string, TPreserve extends boolean = false> = TPreserve extends true ? Concat<[
5446
+ type Process$16<TString extends string, TPreserve extends boolean = false> = TPreserve extends true ? Concat<[
5447
5447
  LeftWhitespace<TString>,
5448
5448
  KebabCase<TString, false>,
5449
5449
  RightWhitespace<TString>
@@ -5463,7 +5463,7 @@ type Process$15<TString extends string, TPreserve extends boolean = false> = TPr
5463
5463
  * type Dash = Dasherize<"\n foo bar \t">;
5464
5464
  * ```
5465
5465
  */
5466
- type KebabCase<TString extends string, TPreserve extends boolean = false> = Process$15<TString, TPreserve> extends string ? Process$15<TString, TPreserve> : never;
5466
+ type KebabCase<TString extends string, TPreserve extends boolean = false> = Process$16<TString, TPreserve> extends string ? Process$16<TString, TPreserve> : never;
5467
5467
 
5468
5468
  /**
5469
5469
  * **LowerAllCaps**`<T>
@@ -7140,7 +7140,7 @@ type PhoneCountryLookup = Mutable<[...typeof PHONE_COUNTRY_CODES]>;
7140
7140
  */
7141
7141
  type PhoneCountryCode = FirstOfEach<PhoneCountryLookup>;
7142
7142
 
7143
- type Process$14<T extends string, _TDelimiter extends PhoneNumberDelimiter = PhoneNumberDelimiter> = OnPass<[
7143
+ type Process$15<T extends string, _TDelimiter extends PhoneNumberDelimiter = PhoneNumberDelimiter> = OnPass<[
7144
7144
  ], T>;
7145
7145
  /**
7146
7146
  * **PhoneNumber**`<[T]>`
@@ -7161,7 +7161,7 @@ type Process$14<T extends string, _TDelimiter extends PhoneNumberDelimiter = Pho
7161
7161
  *
7162
7162
  * - Related: `PhoneNumberWithCountryCode`, `UsPhoneNumber`
7163
7163
  */
7164
- type PhoneNumber<T extends number | string | null = null, TDelimiter extends PhoneNumberDelimiter = PhoneNumberDelimiter> = T extends null ? LocalPhoneNumber<TDelimiter> | CountryPhoneNumber<TDelimiter> | InternationalPhoneNumber<TDelimiter> : IsStringLiteral<T> extends true ? Process$14<As<T, string>, TDelimiter> : IsNumericLiteral<T> extends true ? Process$14<`${As<T, number>}`, TDelimiter> : T extends string ? string | ErrorCondition<"invalid-phone-number"> : T extends number ? number | ErrorCondition<"invalid-phone-number"> : never;
7164
+ type PhoneNumber<T extends number | string | null = null, TDelimiter extends PhoneNumberDelimiter = PhoneNumberDelimiter> = T extends null ? LocalPhoneNumber<TDelimiter> | CountryPhoneNumber<TDelimiter> | InternationalPhoneNumber<TDelimiter> : IsStringLiteral<T> extends true ? Process$15<As<T, string>, TDelimiter> : IsNumericLiteral<T> extends true ? Process$15<`${As<T, number>}`, TDelimiter> : T extends string ? string | ErrorCondition<"invalid-phone-number"> : T extends number ? number | ErrorCondition<"invalid-phone-number"> : never;
7165
7165
  type PhoneNumberWithCountryCode = `+${PhoneCountryCode} ${string}`;
7166
7166
  type Sep = "." | " " | "-";
7167
7167
  type AreaCode = `(${number}) ` | `${number}${Sep}`;
@@ -7857,7 +7857,7 @@ type YouTubeVideosInPlaylist = `https://www.youtube.com/playlist?${string}list=$
7857
7857
  */
7858
7858
  type GetYouTubePageType<T> = T extends YouTubeUrl ? T extends YouTubeHome ? "home" : T extends YouTubeVideoUrl ? HasQueryParameter<T, "list"> extends true ? T extends YouTubeShareUrl ? HasQueryParameter<T, "t"> extends true ? "play::video::in-list::share-link::with-timestamp" : "play::video::in-list::share-link" : "play::video::in-list" : T extends YouTubeShareUrl ? HasQueryParameter<T, "t"> extends true ? "play::video::solo::share-link::with-timestamp" : "play::video::solo::share-link" : "play::video::solo" : T extends YouTubeCreatorUrl ? GetUrlPath<T> extends `${string}/videos` ? "creator::videos" : GetUrlPath<T> extends `${string}/playlists` ? "creator::playlists" : Last<Split<GetUrlPath<T>, "/">> extends `@${string}` ? "creator::featured" : GetUrlPath<T> extends `${string}/featured` ? "creator::featured" : "creator::other" : T extends YouTubeFeedUrl ? T extends YouTubeFeedUrl<"history"> ? "feed::history" : T extends YouTubeFeedUrl<"playlists"> ? "feed::playlists" : T extends YouTubeFeedUrl<"liked"> ? "feed::liked" : T extends YouTubeFeedUrl<"subscriptions"> ? "feed::subscriptions" : T extends YouTubeFeedUrl<"trending"> ? "feed::trending" : "feed::other" : T extends YouTubeVideosInPlaylist ? "playlist::show" : "other" : never;
7859
7859
 
7860
- type Process$12<TStr extends string, TResult extends readonly string[] = []> = IsStringLiteral<TStr> extends true ? IsEqual<TStr["length"], 0> extends true ? [] : TStr extends `${infer Char}${infer Rest}` ? Process$12<Rest, [
7860
+ type Process$13<TStr extends string, TResult extends readonly string[] = []> = IsStringLiteral<TStr> extends true ? IsEqual<TStr["length"], 0> extends true ? [] : TStr extends `${infer Char}${infer Rest}` ? Process$13<Rest, [
7861
7861
  ...TResult,
7862
7862
  Char
7863
7863
  ]> : TResult : string;
@@ -7866,10 +7866,10 @@ type Process$12<TStr extends string, TResult extends readonly string[] = []> = I
7866
7866
  *
7867
7867
  * Takes a literal string and converts it to an array of characters.
7868
7868
  */
7869
- type Chars<TStr extends string> = IsStringLiteral<TStr> extends true ? Process$12<TStr> extends readonly string[] ? Process$12<TStr> : never : readonly string[];
7869
+ type Chars<TStr extends string> = IsStringLiteral<TStr> extends true ? Process$13<TStr> extends readonly string[] ? Process$13<TStr> : never : readonly string[];
7870
7870
 
7871
7871
  type ElementLiteral<T> = [T] extends [string] ? IsStringLiteral<T> extends true ? T : string : [T] extends [number] ? IsNumericLiteral<T> extends true ? T : `${number}` : [T] extends [boolean] ? IsBooleanLiteral<T> extends true ? T : `${boolean}` : never;
7872
- type Process$11<T extends Tuple, Result extends string = ""> = [] extends T ? Result : Process$11<AfterFirst<T>, `${Result}${ElementLiteral<First<T>>}`>;
7872
+ type Process$12<T extends Tuple, Result extends string = ""> = [] extends T ? Result : Process$12<AfterFirst<T>, `${Result}${ElementLiteral<First<T>>}`>;
7873
7873
  /**
7874
7874
  * **Concat**`<T>`
7875
7875
  *
@@ -7885,7 +7885,7 @@ type Process$11<T extends Tuple, Result extends string = ""> = [] extends T ? Re
7885
7885
  *
7886
7886
  * **Related:** `Join<TArr,TWith>`
7887
7887
  */
7888
- type Concat<T extends readonly unknown[]> = Process$11<T>;
7888
+ type Concat<T extends readonly unknown[]> = Process$12<T>;
7889
7889
 
7890
7890
  /**
7891
7891
  * The ISO8601 standard means of representing a _timezone_. `Z` by itself represents UTC.
@@ -7946,9 +7946,9 @@ type Iso8601Time<TExplicit extends IsoExplicitness = "both", TZ extends Timezone
7946
7946
  */
7947
7947
  type Iso8601DateTime<TZ extends Timezone | "" = Timezone | ""> = `${number}-${number}-${number}T${number}:${number}:${number}${TZ}`;
7948
7948
 
7949
- type Process$10<TContent extends string, TLeading extends string> = TContent extends `${TLeading}${string}` ? TContent : `${TLeading}${TContent}`;
7949
+ type Process$11<TContent extends string, TLeading extends string> = TContent extends `${TLeading}${string}` ? TContent : `${TLeading}${TContent}`;
7950
7950
  type IterateOver$1<TContent extends readonly (string | number)[], TLeading extends string | number> = {
7951
- [K in keyof TContent]: TContent[K] extends string ? Process$10<TContent[K], AsStringUnion<TLeading>> : TContent[K] extends number ? AsNumber<Process$10<`${TContent[K]}`, AsStringUnion<TLeading>>> : never;
7951
+ [K in keyof TContent]: TContent[K] extends string ? Process$11<TContent[K], AsStringUnion<TLeading>> : TContent[K] extends number ? AsNumber<Process$11<`${TContent[K]}`, AsStringUnion<TLeading>>> : never;
7952
7952
  };
7953
7953
  type WideContent<TContent extends string | number, TLeading extends string | number> = IsString<TContent> extends true ? `${TLeading}${string}` : number;
7954
7954
  type WideLeading<TContent extends string | number, TLeading extends string | number> = TContent extends string ? `${TLeading}${TContent}` : number;
@@ -7973,7 +7973,7 @@ type WideLeading<TContent extends string | number, TLeading extends string | num
7973
7973
  *
7974
7974
  * **Related:** `EnsureLeadingEvery`, `EnsureTrailing`, `EnsureSurround`, `Surround`
7975
7975
  */
7976
- type EnsureLeading<TContent extends string | number | readonly (string | number)[], TLeading extends string | number> = TContent extends readonly (string | number)[] ? IterateOver$1<TContent, TLeading> : IsWideType<TContent> extends true ? WideContent<As<TContent, string | number>, TLeading> : IsWideType<TLeading> extends true ? WideLeading<As<TContent, string | number>, TLeading> : TContent extends string ? Process$10<TContent, AsStringUnion<TLeading>> : TContent extends number ? AsNumber<Process$10<`${TContent}`, AsStringUnion<TLeading>>> : never;
7976
+ type EnsureLeading<TContent extends string | number | readonly (string | number)[], TLeading extends string | number> = TContent extends readonly (string | number)[] ? IterateOver$1<TContent, TLeading> : IsWideType<TContent> extends true ? WideContent<As<TContent, string | number>, TLeading> : IsWideType<TLeading> extends true ? WideLeading<As<TContent, string | number>, TLeading> : TContent extends string ? Process$11<TContent, AsStringUnion<TLeading>> : TContent extends number ? AsNumber<Process$11<`${TContent}`, AsStringUnion<TLeading>>> : never;
7977
7977
 
7978
7978
  /**
7979
7979
  * **EnsureSurround**
@@ -8535,7 +8535,7 @@ type TypeStrength = "strong" | "simple";
8535
8535
  type StripSlash<T extends readonly string[]> = {
8536
8536
  [K in keyof T]: T[K] extends `/${infer Middle}/` ? Middle : T[K] extends `/${infer Trailing}` ? Trailing : T[K] extends `${infer Leading}/` ? Leading : T[K];
8537
8537
  };
8538
- type Process$Z<TPath extends string, TFirst extends string, TLast extends string> = TFirst extends `/${string}` ? TLast extends `${string}/` ? `/${TPath}/` : `/${TPath}` : TLast extends `${string}/` ? `${TPath}/` : TPath;
8538
+ type Process$_<TPath extends string, TFirst extends string, TLast extends string> = TFirst extends `/${string}` ? TLast extends `${string}/` ? `/${TPath}/` : `/${TPath}` : TLast extends `${string}/` ? `${TPath}/` : TPath;
8539
8539
  /**
8540
8540
  * **PathJoin**`<T,U>`
8541
8541
  *
@@ -8549,7 +8549,7 @@ type Process$Z<TPath extends string, TFirst extends string, TLast extends string
8549
8549
  * `EnsureStarting<T>`, and `StripStarting<T>` to further shape
8550
8550
  * the type.
8551
8551
  */
8552
- type PathJoin<TSegments extends readonly string[]> = StripSlash<TSegments> extends readonly string[] ? Process$Z<Join<StripSlash<TSegments>, "/">, First<TSegments>, Last<TSegments>> : never;
8552
+ type PathJoin<TSegments extends readonly string[]> = StripSlash<TSegments> extends readonly string[] ? Process$_<Join<StripSlash<TSegments>, "/">, First<TSegments>, Last<TSegments>> : never;
8553
8553
 
8554
8554
  type ExceptionLookup = typeof PLURAL_EXCEPTIONS;
8555
8555
  type SingularNoun = "s" | "sh" | "ch" | "x" | "z" | "o";
@@ -8621,7 +8621,7 @@ type _RetainAfter<TStr extends string, TBreak extends string, TInclude extends b
8621
8621
  */
8622
8622
  type RetainAfter<TStr extends string, TBreak extends string, TInclude extends boolean = false> = IsNever<_RetainAfter<TStr, TBreak, TInclude>> extends true ? "" : IsUnion<_RetainAfter<TStr, TBreak, TInclude>> extends true ? MaxLength<UnionToTuple$1<_RetainAfter<TStr, TBreak, TInclude>>> : _RetainAfter<TStr, TBreak, TInclude>;
8623
8623
 
8624
- type Process$Y<TChars extends readonly string[], TOp extends "is" | "not", TComparator extends string, TInclude extends boolean = false, TResult extends string = ""> = [] extends TChars ? TResult : First<TChars> extends TComparator ? TOp extends "is" ? Process$Y<AfterFirst<TChars>, TOp, TComparator, TInclude, `${TResult}${First<TChars>}`> : If<TInclude, `${TResult}${First<TChars>}`, TResult> : TOp extends "is" ? If<TInclude, `${TResult}${First<TChars>}`, TResult> : Process$Y<AfterFirst<TChars>, TOp, TComparator, TInclude, `${TResult}${First<TChars>}`>;
8624
+ type Process$Z<TChars extends readonly string[], TOp extends "is" | "not", TComparator extends string, TInclude extends boolean = false, TResult extends string = ""> = [] extends TChars ? TResult : First<TChars> extends TComparator ? TOp extends "is" ? Process$Z<AfterFirst<TChars>, TOp, TComparator, TInclude, `${TResult}${First<TChars>}`> : If<TInclude, `${TResult}${First<TChars>}`, TResult> : TOp extends "is" ? If<TInclude, `${TResult}${First<TChars>}`, TResult> : Process$Z<AfterFirst<TChars>, TOp, TComparator, TInclude, `${TResult}${First<TChars>}`>;
8625
8625
  /**
8626
8626
  * **RetainUntil**`<TContent,TComparator>`
8627
8627
  *
@@ -8635,7 +8635,7 @@ type Process$Y<TChars extends readonly string[], TOp extends "is" | "not", TComp
8635
8635
  *
8636
8636
  * **Related:** `RetainWhile`
8637
8637
  */
8638
- type RetainUntil<TContent extends string, TComparator extends string, TInclude extends boolean = false> = Process$Y<Chars<TContent>, "not", TComparator, TInclude>;
8638
+ type RetainUntil<TContent extends string, TComparator extends string, TInclude extends boolean = false> = Process$Z<Chars<TContent>, "not", TComparator, TInclude>;
8639
8639
  /**
8640
8640
  * **RetainWhile**`<TContent,TComparator>`
8641
8641
  *
@@ -8649,7 +8649,7 @@ type RetainUntil<TContent extends string, TComparator extends string, TInclude e
8649
8649
  *
8650
8650
  * **Related:** `RetainUntil`
8651
8651
  */
8652
- type RetainWhile<TContent extends string, TComparator extends string> = Process$Y<Chars<TContent>, "is", TComparator>;
8652
+ type RetainWhile<TContent extends string, TComparator extends string> = Process$Z<Chars<TContent>, "is", TComparator>;
8653
8653
 
8654
8654
  type Policy = "omit" | "before" | "after";
8655
8655
  type Postfix<T extends string> = ["postfix", T];
@@ -8666,7 +8666,7 @@ type EachBlock<TContent extends readonly (string | Postfix<string>)[], TSep exte
8666
8666
  First<TContent>
8667
8667
  ]>;
8668
8668
  type Iterate$3<TContent extends readonly (string | Postfix<string>)[], TSep extends readonly string[], TPolicy extends Policy> = [] extends TSep ? FixPostfix<Filter<TContent, "", "equals">> : Iterate$3<EachBlock<TContent, First<TSep>, TPolicy>, AfterFirst<TSep>, TPolicy>;
8669
- type Process$X<TContent extends string, TSep extends string | readonly string[], TPolicy extends Policy = "omit"> = IsLiteral<TSep> extends true ? TSep extends "" ? ErrMsg<"invalid-separator", `Split<T>: an empty string was used as a separator. Use Chars<T> if you want to split a string into characters!`> : TSep extends readonly string[] ? Iterate$3<[TContent], TSep, TPolicy> : TSep extends string ? Convert$3<TContent, TSep, TPolicy> extends readonly (string | Postfix<string>)[] ? FixPostfix<Convert$3<TContent, TSep, TPolicy>> : never : never : never;
8669
+ type Process$Y<TContent extends string, TSep extends string | readonly string[], TPolicy extends Policy = "omit"> = IsLiteral<TSep> extends true ? TSep extends "" ? ErrMsg<"invalid-separator", `Split<T>: an empty string was used as a separator. Use Chars<T> if you want to split a string into characters!`> : TSep extends readonly string[] ? Iterate$3<[TContent], TSep, TPolicy> : TSep extends string ? Convert$3<TContent, TSep, TPolicy> extends readonly (string | Postfix<string>)[] ? FixPostfix<Convert$3<TContent, TSep, TPolicy>> : never : never : never;
8670
8670
  /**
8671
8671
  * **Split**`<TContent,TSep,[TPolicy]>`
8672
8672
  *
@@ -8681,7 +8681,7 @@ type Process$X<TContent extends string, TSep extends string | readonly string[],
8681
8681
  * than `SplitAlt` but there are instances where `SplitAlt` is more performant
8682
8682
  * in inference.
8683
8683
  */
8684
- type Split<TContent extends string, TSep extends string | readonly string[], TPolicy extends Policy = "omit"> = IsStringLiteral<TContent> extends true ? IsUnion<TSep> extends true ? UnionToTuple$1<TSep> extends readonly string[] ? Split<TContent, UnionToTuple$1<TSep>, TPolicy> : ErrMsg<"invalid-union"> : Process$X<TContent, TSep, TPolicy> : string[];
8684
+ type Split<TContent extends string, TSep extends string | readonly string[], TPolicy extends Policy = "omit"> = IsStringLiteral<TContent> extends true ? IsUnion<TSep> extends true ? UnionToTuple$1<TSep> extends readonly string[] ? Split<TContent, UnionToTuple$1<TSep>, TPolicy> : ErrMsg<"invalid-union"> : Process$Y<TContent, TSep, TPolicy> : string[];
8685
8685
 
8686
8686
  type UnionPolicy = "omit" | "include";
8687
8687
  type UnionSplit<TContent extends readonly string[], TSep extends string, TUnionPolicy extends UnionPolicy, TResult extends readonly string[] = []> = [] extends TContent ? TResult : UnionSplit<AfterFirst<TContent>, // advance to next character
@@ -8696,8 +8696,8 @@ type LiteralSplit<TContent extends string, TSep extends string, TUnionPolicy ext
8696
8696
  ...TResults,
8697
8697
  TUnionPolicy extends "omit" ? Block : `${Block}${TSep}`
8698
8698
  ]> : Filter<[...TResults, TContent], "">;
8699
- type Process$W<TContent extends string, TSep extends string | readonly string[], TUnionPolicy extends UnionPolicy = "omit"> = IsWideType<TContent> extends true ? string : TSep extends readonly string[] ? TupleToUnion<TSep> extends string ? Chars<TContent> extends readonly string[] ? UnionSplit<Chars<TContent>, TupleToUnion<TSep>, TUnionPolicy> : never : never : TSep extends string ? LiteralSplit<TContent, TSep, TUnionPolicy> : never;
8700
- type PreProcess$1<TContent extends string, TSep extends string | readonly string[], TUnionPolicy extends UnionPolicy = "omit"> = IsUnion<TSep> extends true ? UnionToTuple$1<TSep> extends readonly string[] ? Process$W<TContent, UnionToTuple$1<TSep>, TUnionPolicy> : never : Process$W<TContent, TSep, TUnionPolicy>;
8699
+ type Process$X<TContent extends string, TSep extends string | readonly string[], TUnionPolicy extends UnionPolicy = "omit"> = IsWideType<TContent> extends true ? string : TSep extends readonly string[] ? TupleToUnion<TSep> extends string ? Chars<TContent> extends readonly string[] ? UnionSplit<Chars<TContent>, TupleToUnion<TSep>, TUnionPolicy> : never : never : TSep extends string ? LiteralSplit<TContent, TSep, TUnionPolicy> : never;
8700
+ type PreProcess$1<TContent extends string, TSep extends string | readonly string[], TUnionPolicy extends UnionPolicy = "omit"> = IsUnion<TSep> extends true ? UnionToTuple$1<TSep> extends readonly string[] ? Process$X<TContent, UnionToTuple$1<TSep>, TUnionPolicy> : never : Process$X<TContent, TSep, TUnionPolicy>;
8701
8701
  /**
8702
8702
  * **SplitAlt**`<TContent,TSep,[TPolicy]>`
8703
8703
  *
@@ -8737,7 +8737,7 @@ type StripAfter<TStr extends string, TBreak extends string> = IsStringLiteral<TS
8737
8737
  */
8738
8738
  type StripBefore<TStr extends string, TBreak extends string> = IsStringLiteral<TStr> extends true ? IsStringLiteral<TBreak> extends true ? TStr extends `${string}${TBreak}${infer REST}` ? `${REST}` : TStr : string : string;
8739
8739
 
8740
- type Process$V<TContent extends string, TStrip extends string> = And<[IsStringLiteral<TContent>, IsStringLiteral<TStrip>]> extends true ? TContent extends `${TStrip & string}${infer After}` ? After : TContent : string;
8740
+ type Process$W<TContent extends string, TStrip extends string> = And<[IsStringLiteral<TContent>, IsStringLiteral<TStrip>]> extends true ? TContent extends `${TStrip & string}${infer After}` ? After : TContent : string;
8741
8741
  /**
8742
8742
  * **StripLeading**`<T, U>`
8743
8743
  *
@@ -8754,9 +8754,9 @@ type Process$V<TContent extends string, TStrip extends string> = And<[IsStringLi
8754
8754
  * - if `T` is a non-string type then no transformation will be done
8755
8755
  * - same applies to `U`
8756
8756
  */
8757
- type StripLeading<TContent extends string | number, TStrip extends string | number> = TContent extends number ? AsNumber<Process$V<`${TContent}`, AsStringUnion<TStrip>>> : TContent extends string ? Process$V<TContent, AsStringUnion<TStrip>> : never;
8757
+ type StripLeading<TContent extends string | number, TStrip extends string | number> = TContent extends number ? AsNumber<Process$W<`${TContent}`, AsStringUnion<TStrip>>> : TContent extends string ? Process$W<TContent, AsStringUnion<TStrip>> : never;
8758
8758
 
8759
- type Process$U<TContent extends string, TSurround extends string> = TContent extends `${TSurround}${infer REMAIN}` ? REMAIN extends `${infer LEADING}${TSurround}` ? LEADING : REMAIN : TContent extends `${infer LEADING}${TSurround}` ? LEADING : TContent;
8759
+ type Process$V<TContent extends string, TSurround extends string> = TContent extends `${TSurround}${infer REMAIN}` ? REMAIN extends `${infer LEADING}${TSurround}` ? LEADING : REMAIN : TContent extends `${infer LEADING}${TSurround}` ? LEADING : TContent;
8760
8760
  /**
8761
8761
  * **StripSurround**`<TContent, TSurround>`
8762
8762
  *
@@ -8768,9 +8768,9 @@ type Process$U<TContent extends string, TSurround extends string> = TContent ext
8768
8768
  * type Hello = StripSurround<"(Hi there)", "(" | ")">;
8769
8769
  * ```
8770
8770
  */
8771
- type StripSurround<TContent extends string | number, TSurround extends string | number> = IsWideType<TContent> extends true ? TContent : TContent extends string ? Process$U<TContent, AsStringUnion<TSurround>> : AsNumber<Process$U<`${TContent}`, AsStringUnion<TSurround>>>;
8771
+ type StripSurround<TContent extends string | number, TSurround extends string | number> = IsWideType<TContent> extends true ? TContent : TContent extends string ? Process$V<TContent, AsStringUnion<TSurround>> : AsNumber<Process$V<`${TContent}`, AsStringUnion<TSurround>>>;
8772
8772
 
8773
- type Process$T<TContent extends string, TStrip extends string> = And<[IsStringLiteral<TContent>, IsStringLiteral<TStrip>]> extends true ? TContent extends `${infer Before}${TStrip}` ? Before : TContent : string;
8773
+ type Process$U<TContent extends string, TStrip extends string> = And<[IsStringLiteral<TContent>, IsStringLiteral<TStrip>]> extends true ? TContent extends `${infer Before}${TStrip}` ? Before : TContent : string;
8774
8774
  /**
8775
8775
  * **StripEnding**`<TContent, TStrip>`
8776
8776
  *
@@ -8784,23 +8784,23 @@ type Process$T<TContent extends string, TStrip extends string> = And<[IsStringLi
8784
8784
  * type R = StripEnding<T,U>;
8785
8785
  * ```
8786
8786
  */
8787
- type StripTrailing<TContent extends string | number, TStrip extends string | number> = TContent extends number ? AsNumber<Process$T<`${TContent}`, `${TStrip}`> extends `${number}` ? Process$T<`${TContent}`, `${TStrip}`> : never> : TContent extends string ? Process$T<`${TContent}`, `${TStrip}`> extends string ? Process$T<`${TContent}`, `${TStrip}`> : never : never;
8787
+ type StripTrailing<TContent extends string | number, TStrip extends string | number> = TContent extends number ? AsNumber<Process$U<`${TContent}`, `${TStrip}`> extends `${number}` ? Process$U<`${TContent}`, `${TStrip}`> : never> : TContent extends string ? Process$U<`${TContent}`, `${TStrip}`> extends string ? Process$U<`${TContent}`, `${TStrip}`> : never : never;
8788
8788
 
8789
- type Process$S<TChars extends readonly string[], TOp extends "is" | "not", TComparator extends string, TResult extends string> = [] extends TChars ? TResult : First<TChars> extends TComparator ? TOp extends "is" ? Process$S<AfterFirst<TChars>, TOp, TComparator, Shift<TResult> extends string ? Shift<TResult> : ""> : TResult : TOp extends "is" ? TResult : Process$S<AfterFirst<TChars>, TOp, TComparator, Shift<TResult> extends string ? Shift<TResult> : "">;
8789
+ type Process$T<TChars extends readonly string[], TOp extends "is" | "not", TComparator extends string, TResult extends string> = [] extends TChars ? TResult : First<TChars> extends TComparator ? TOp extends "is" ? Process$T<AfterFirst<TChars>, TOp, TComparator, Shift<TResult> extends string ? Shift<TResult> : ""> : TResult : TOp extends "is" ? TResult : Process$T<AfterFirst<TChars>, TOp, TComparator, Shift<TResult> extends string ? Shift<TResult> : "">;
8790
8790
  /**
8791
8791
  * **StripUntil**`<TContent,TComparator>`
8792
8792
  *
8793
8793
  * Strip characters from the start of `TContent` _until_ a
8794
8794
  * character extends `TComparator`.
8795
8795
  */
8796
- type StripUntil<TContent extends string, TComparator extends string> = Process$S<Chars<TContent>, "not", TComparator, TContent>;
8796
+ type StripUntil<TContent extends string, TComparator extends string> = Process$T<Chars<TContent>, "not", TComparator, TContent>;
8797
8797
  /**
8798
8798
  * **StripWhile**`<TContent,TComparator>`
8799
8799
  *
8800
8800
  * Strip characters from the start of `TContent` _while_ those
8801
8801
  * characters extend `TComparator`.
8802
8802
  */
8803
- type StripWhile<TContent extends string, TComparator extends string> = Process$S<Chars<TContent>, "is", TComparator, TContent>;
8803
+ type StripWhile<TContent extends string, TComparator extends string> = Process$T<Chars<TContent>, "is", TComparator, TContent>;
8804
8804
 
8805
8805
  type Compute<TStr extends string, TLen extends Tuple = []> = TStr extends `${infer _Char}${infer Rest}` ? Compute<Rest, [...TLen, unknown]> : TLen["length"];
8806
8806
  /**
@@ -8811,9 +8811,9 @@ type Compute<TStr extends string, TLen extends Tuple = []> = TStr extends `${inf
8811
8811
  */
8812
8812
  type StrLen<T extends string> = Compute<T>;
8813
8813
 
8814
- type Process$R<TContent extends string, TPrefix extends string, TPostfix extends string> = `${TPrefix}${TContent}${TPostfix}`;
8814
+ type Process$S<TContent extends string, TPrefix extends string, TPostfix extends string> = `${TPrefix}${TContent}${TPostfix}`;
8815
8815
  type ProcessEach<TContent extends readonly string[], TPrefix extends string, TPostfix extends string> = {
8816
- [K in keyof TContent]: Process$R<TContent[K], TPrefix, TPostfix>;
8816
+ [K in keyof TContent]: Process$S<TContent[K], TPrefix, TPostfix>;
8817
8817
  };
8818
8818
  /**
8819
8819
  * **Surround**`<TContent,TPrefix,TPostfix>`
@@ -8828,7 +8828,7 @@ type ProcessEach<TContent extends readonly string[], TPrefix extends string, TPo
8828
8828
  * type T2 = Surround<["one","two"], "<",">">;
8829
8829
  * ```
8830
8830
  */
8831
- type Surround<TContent extends string | number | readonly (string | number)[], TPrefix extends string, TPostfix extends string> = TContent extends number ? Surround<`${TContent}`, TPrefix, TPostfix> : TContent extends readonly unknown[] ? TContent extends readonly string[] ? ProcessEach<TContent, TPrefix, TPostfix> : ProcessEach<ToStringArray<TContent> extends readonly string[] ? ToStringArray<TContent> : never, TPrefix, TPostfix> : TContent extends string ? Process$R<TContent, TPrefix, TPostfix> : never;
8831
+ type Surround<TContent extends string | number | readonly (string | number)[], TPrefix extends string, TPostfix extends string> = TContent extends number ? Surround<`${TContent}`, TPrefix, TPostfix> : TContent extends readonly unknown[] ? TContent extends readonly string[] ? ProcessEach<TContent, TPrefix, TPostfix> : ProcessEach<ToStringArray<TContent> extends readonly string[] ? ToStringArray<TContent> : never, TPrefix, TPostfix> : TContent extends string ? Process$S<TContent, TPrefix, TPostfix> : never;
8832
8832
 
8833
8833
  type CivilianTwoDigitHour = "10" | "11" | "12";
8834
8834
  type TimeResolution = "HH:MM" | "HH:MM:SS" | "HH:MM:SS.ms";
@@ -9010,7 +9010,7 @@ type TypeSubtype = `${string}/${string}` & {
9010
9010
  brand: "type-subtype";
9011
9011
  };
9012
9012
 
9013
- type Process$Q<T> = T extends NumberLike ? AsNumber<T> : T extends BooleanLike ? AsBoolean<T> : T;
9013
+ type Process$R<T> = T extends NumberLike ? AsNumber<T> : T extends BooleanLike ? AsBoolean<T> : T;
9014
9014
  /**
9015
9015
  * **UnderlyingType**`<T>`
9016
9016
  *
@@ -9023,8 +9023,8 @@ type Process$Q<T> = T extends NumberLike ? AsNumber<T> : T extends BooleanLike ?
9023
9023
  * In all other cases it simply proxies the type of `T` through.
9024
9024
  */
9025
9025
  type UnderlyingType<T> = T extends readonly unknown[] ? {
9026
- [K in keyof T]: Process$Q<T[K]>;
9027
- } : Process$Q<T>;
9026
+ [K in keyof T]: Process$R<T[K]>;
9027
+ } : Process$R<T>;
9028
9028
 
9029
9029
  /**
9030
9030
  * **JsonValue**`<T>`
@@ -9101,7 +9101,7 @@ type MutableArray<T extends readonly unknown[]> = [
9101
9101
  */
9102
9102
  type Mutable<T> = [T] extends [readonly unknown[]] ? MutableArray<T> : [T] extends [boolean] ? T : [IsObjectLiteral<T>] extends [true] ? MutableObject<T> : T;
9103
9103
 
9104
- type Process$O<TSource extends AnyObject, TKeys extends readonly (ObjectKey & keyof TSource)[], TTuple extends readonly KeyValue[] = []> = [] extends TKeys ? TTuple : Process$O<TSource, AfterFirst<TKeys>, [
9104
+ type Process$P<TSource extends AnyObject, TKeys extends readonly (ObjectKey & keyof TSource)[], TTuple extends readonly KeyValue[] = []> = [] extends TKeys ? TTuple : Process$P<TSource, AfterFirst<TKeys>, [
9105
9105
  ...TTuple,
9106
9106
  {
9107
9107
  key: First<TKeys>;
@@ -9125,10 +9125,10 @@ type Compact<TSource extends AnyObject, TKeys extends readonly (ObjectKey & keyo
9125
9125
  * type C = ObjectToTuple< foo: 1 }, true>;
9126
9126
  * ```
9127
9127
  */
9128
- type ObjectToTuple<TObj extends AnyObject, TCompact extends boolean = false> = TObj extends ExplicitlyEmptyObject ? [] : IsWideContainer<TObj> extends true ? TCompact extends false ? KeyValue[] : Record<ObjectKey, any>[] : TCompact extends false ? Process$O<TObj, As<Keys<TObj>, readonly (ObjectKey & keyof TObj)[]>> : Compact<TObj, As<Keys<TObj>, readonly (ObjectKey & keyof TObj)[]>>;
9128
+ type ObjectToTuple<TObj extends AnyObject, TCompact extends boolean = false> = TObj extends ExplicitlyEmptyObject ? [] : IsWideContainer<TObj> extends true ? TCompact extends false ? KeyValue[] : Record<ObjectKey, any>[] : TCompact extends false ? Process$P<TObj, As<Keys<TObj>, readonly (ObjectKey & keyof TObj)[]>> : Compact<TObj, As<Keys<TObj>, readonly (ObjectKey & keyof TObj)[]>>;
9129
9129
 
9130
9130
  type Prefix$2<T extends boolean> = T extends true ? "\n " : "";
9131
- type Process$N<T extends readonly Record<ObjectKey, any>[], E extends boolean> = Join<{
9131
+ type Process$O<T extends readonly Record<ObjectKey, any>[], E extends boolean> = Join<{
9132
9132
  [K in keyof T]: T[K] extends Record<infer Key extends string, infer Value> ? `${Prefix$2<E>}${Key}: ${AsString<Value>}` : never;
9133
9133
  }, "; ">;
9134
9134
  /**
@@ -9138,10 +9138,10 @@ type Process$N<T extends readonly Record<ObjectKey, any>[], E extends boolean> =
9138
9138
  *
9139
9139
  * **Related:** `ObjectToJsString`, `ObjectToJsonString`, `ObjectToTuple`
9140
9140
  */
9141
- type ObjectToCssString<TObj extends AnyObject, TExpand extends boolean = false> = TObj extends ExplicitlyEmptyObject ? "{}" : IsWideContainer<TObj> extends true ? string : Surround<Process$N<ObjectToTuple<TObj, true>, false>, TExpand extends false ? "{ " : "{", TExpand extends false ? " }" : "\n}">;
9141
+ type ObjectToCssString<TObj extends AnyObject, TExpand extends boolean = false> = TObj extends ExplicitlyEmptyObject ? "{}" : IsWideContainer<TObj> extends true ? string : Surround<Process$O<ObjectToTuple<TObj, true>, false>, TExpand extends false ? "{ " : "{", TExpand extends false ? " }" : "\n}">;
9142
9142
 
9143
9143
  type Prefix<T extends boolean> = T extends true ? "\n " : "";
9144
- type Process$K<T extends readonly Record<ObjectKey, any>[], E extends boolean> = Join<{
9144
+ type Process$L<T extends readonly Record<ObjectKey, any>[], E extends boolean> = Join<{
9145
9145
  [K in keyof T]: T[K] extends Record<infer Key extends string, infer Value> ? Value extends AnyObject ? `${Prefix<E>}${Key} ${AsString<Value>}` : never : never;
9146
9146
  }, "\n ">;
9147
9147
  /**
@@ -9151,7 +9151,7 @@ type Process$K<T extends readonly Record<ObjectKey, any>[], E extends boolean> =
9151
9151
  *
9152
9152
  * **Related:** `ObjectToJsString`, `ObjectToJsonString`, `ObjectToTuple`, `ObjectToCssString`
9153
9153
  */
9154
- type ObjectToKeyframeString<TObj extends AnyObject, TExpand extends boolean = false> = TObj extends ExplicitlyEmptyObject ? "{}" : IsWideContainer<TObj> extends true ? string : Surround<Process$K<ObjectToTuple<TObj, true>, false>, TExpand extends false ? "{ " : "{\n ", TExpand extends false ? " }" : "\n}">;
9154
+ type ObjectToKeyframeString<TObj extends AnyObject, TExpand extends boolean = false> = TObj extends ExplicitlyEmptyObject ? "{}" : IsWideContainer<TObj> extends true ? string : Surround<Process$L<ObjectToTuple<TObj, true>, false>, TExpand extends false ? "{ " : "{\n ", TExpand extends false ? " }" : "\n}">;
9155
9155
 
9156
9156
  /**
9157
9157
  * **RemoveIndex**`<T>`
@@ -9186,9 +9186,9 @@ type RemoveIndex<T extends Record<any, any>> = {
9186
9186
  */
9187
9187
  type Replace<TText extends string, TFind extends string, TReplace extends string> = TText extends "" ? If<IsEqual<TFind, "">, TReplace, ""> : TFind extends "" ? TText : TText extends `${infer F}${TFind}${infer E}` ? `${F}${TReplace}${E}` : TText;
9188
9188
 
9189
- type Process$J<TText extends string, TFind extends string, TReplace extends string> = Replace<TText, TFind, TReplace> extends `${string}${TFind}${string}` ? Process$J<Replace<TText, TFind, TReplace>, TFind, TReplace> : Replace<TText, TFind, TReplace>;
9190
- type Iterate$2<TText extends string, TFind extends readonly string[], TReplace extends string> = [] extends TFind ? TText : Iterate$2<Process$J<TText, First<TFind>, TReplace>, AfterFirst<TFind>, TReplace>;
9191
- type Singular<TText extends string, TFind extends string, TReplace extends string> = IsStringLiteral<TText> extends true ? IsStringLiteral<TFind> extends true ? IsUnion<TFind> extends true ? UnionToTuple$1<TFind> extends readonly string[] ? Iterate$2<TText, UnionToTuple$1<TFind>, TReplace> : never : Process$J<TText, TFind, TReplace> : string : string;
9189
+ type Process$K<TText extends string, TFind extends string, TReplace extends string> = Replace<TText, TFind, TReplace> extends `${string}${TFind}${string}` ? Process$K<Replace<TText, TFind, TReplace>, TFind, TReplace> : Replace<TText, TFind, TReplace>;
9190
+ type Iterate$2<TText extends string, TFind extends readonly string[], TReplace extends string> = [] extends TFind ? TText : Iterate$2<Process$K<TText, First<TFind>, TReplace>, AfterFirst<TFind>, TReplace>;
9191
+ type Singular<TText extends string, TFind extends string, TReplace extends string> = IsStringLiteral<TText> extends true ? IsStringLiteral<TFind> extends true ? IsUnion<TFind> extends true ? UnionToTuple$1<TFind> extends readonly string[] ? Iterate$2<TText, UnionToTuple$1<TFind>, TReplace> : never : Process$K<TText, TFind, TReplace> : string : string;
9192
9192
  type Multiple<TText extends readonly string[], TFind extends string, TReplace extends string, TResult extends readonly string[] = []> = [] extends TText ? TResult : Multiple<AfterFirst<TText>, TFind, TReplace, [
9193
9193
  ...TResult,
9194
9194
  ReplaceAll<First<TText>, TFind, TReplace>
@@ -9212,7 +9212,7 @@ type Multiple<TText extends readonly string[], TFind extends string, TReplace ex
9212
9212
  */
9213
9213
  type ReplaceAll<TText extends string | readonly string[], TFind extends string, TReplace extends string> = TText extends readonly string[] ? IsLiteral<TText> extends true ? Multiple<TText, TFind, TReplace> : string[] : TText extends string ? Singular<TText, TFind, TReplace> : never;
9214
9214
 
9215
- type Process$I<TChars extends readonly string[], TRetain extends string> = RemoveMarked<{
9215
+ type Process$J<TChars extends readonly string[], TRetain extends string> = RemoveMarked<{
9216
9216
  [K in keyof TChars]: TChars[K] extends TRetain ? TChars[K] : Constant$1<"Marked">;
9217
9217
  }>;
9218
9218
  /**
@@ -9222,7 +9222,7 @@ type Process$I<TChars extends readonly string[], TRetain extends string> = Remov
9222
9222
  * of the characters in `TRetain` _retained_ while all
9223
9223
  * other characters are removed.
9224
9224
  */
9225
- type RetainChars<TContent extends string, TRetain extends string> = Or<[IsWideType<TContent>, IsWideType<TRetain>]> extends true ? string : Process$I<Chars<TContent>, TRetain> extends readonly string[] ? Join<Process$I<Chars<TContent>, TRetain>> : never;
9225
+ type RetainChars<TContent extends string, TRetain extends string> = Or<[IsWideType<TContent>, IsWideType<TRetain>]> extends true ? string : Process$J<Chars<TContent>, TRetain> extends readonly string[] ? Join<Process$J<Chars<TContent>, TRetain>> : never;
9226
9226
 
9227
9227
  /**
9228
9228
  * Provides the _left_ whitespace of a string
@@ -9236,7 +9236,7 @@ type RightWhitespace<S extends string> = string extends S ? string : Replace<S,
9236
9236
  type Strip<TChars extends readonly string[], TStrip extends string> = {
9237
9237
  [K in keyof TChars]: TChars[K] extends TStrip ? Marked$3 : TChars[K];
9238
9238
  };
9239
- type Process$H<TChars extends readonly string[], TStrip extends string> = As<RemoveMarked<Strip<TChars, TStrip>>, readonly string[]>;
9239
+ type Process$I<TChars extends readonly string[], TStrip extends string> = As<RemoveMarked<Strip<TChars, TStrip>>, readonly string[]>;
9240
9240
  /**
9241
9241
  * **StripChars**`<TContent,TStrip>`
9242
9242
  *
@@ -9247,7 +9247,7 @@ type Process$H<TChars extends readonly string[], TStrip extends string> = As<Rem
9247
9247
  * of single characters or this will throw
9248
9248
  * `ErrorCondition<"invalid-strip-char">`
9249
9249
  */
9250
- type StripChars<TContent extends string, TStrip extends string> = Or<[IsWideType<TContent>, IsWideType<TStrip>]> extends true ? string : Chars<TContent> extends readonly string[] ? Concat<Process$H<Chars<TContent>, TStrip>> extends string ? Concat<Process$H<Chars<TContent>, TStrip>> : never : never;
9250
+ type StripChars<TContent extends string, TStrip extends string> = Or<[IsWideType<TContent>, IsWideType<TStrip>]> extends true ? string : Chars<TContent> extends readonly string[] ? Concat<Process$I<Chars<TContent>, TStrip>> extends string ? Concat<Process$I<Chars<TContent>, TStrip>> : never : never;
9251
9251
 
9252
9252
  /**
9253
9253
  * **ToNumber**`<T>`
@@ -9290,7 +9290,7 @@ type ToStringArray<T extends Tuple> = {
9290
9290
  [K in keyof T]: AsString<T[K]>;
9291
9291
  } : never;
9292
9292
 
9293
- type Process$G<S extends string> = string extends S ? string : S extends `${Whitespace}${infer Right}` ? Process$G<Right> : S extends `${infer Left}${Whitespace}` ? Process$G<Left> : S;
9293
+ type Process$H<S extends string> = string extends S ? string : S extends `${Whitespace}${infer Right}` ? Process$H<Right> : S extends `${infer Left}${Whitespace}` ? Process$H<Left> : S;
9294
9294
  /**
9295
9295
  * Trims off blank spaces, `\n` and `\t` characters from both sides of a _string literal_.
9296
9296
  * ```ts
@@ -9300,7 +9300,7 @@ type Process$G<S extends string> = string extends S ? string : S extends `${Whit
9300
9300
  * type T = Trim<string>;
9301
9301
  * ```
9302
9302
  */
9303
- type Trim<S extends string> = Process$G<S> extends string ? Process$G<S> : never;
9303
+ type Trim<S extends string> = Process$H<S> extends string ? Process$H<S> : never;
9304
9304
 
9305
9305
  /**
9306
9306
  * Trims off whitespace on left of string
@@ -9375,10 +9375,10 @@ type GetKeys$1<T extends AnyFunction> = FnProps<T> extends Dictionary ? Keys<FnP
9375
9375
  * Widens any _scalar_ type `T`.
9376
9376
  */
9377
9377
  type WidenScalar<T extends Scalar> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends symbol ? symbol : T extends null ? null : never;
9378
- type Process$D<T> = T extends Scalar ? WidenScalar<T> : T extends unknown[] ? T extends (infer Type)[] ? IsUnion<Type> extends true ? WidenUnion<Type>[] : Type extends unknown[] ? WidenTuple<Type> : T : never : T extends AnyFunction ? GetKeys$1<T>["length"] extends 0 ? RemoveFnProps<T> : RemoveFnProps<T> & ExpandRecursively<WidenObj<FnProps<T>, GetKeys$1<T>>> : T;
9379
- type WidenObj<T extends Dictionary, TKeys extends readonly (keyof T)[], TResults extends Dictionary = EmptyObject> = [] extends TKeys ? TResults : WidenObj<T, AfterFirst<TKeys>, TResults & Record<First<TKeys>, T[First<TKeys>] extends TypedFunction ? WidenFn<IsNarrowingFn<T[First<TKeys>]>, Parameters<T[First<TKeys>]>, ReturnType<T[First<TKeys>]>, ExpandDictionary<FnProps<T[First<TKeys>]>>> : IsLiteral<T[First<TKeys>]> extends true ? WidenLiteral<T[First<TKeys>]> : Process$D<T[First<TKeys>]>>>;
9378
+ type Process$E<T> = T extends Scalar ? WidenScalar<T> : T extends unknown[] ? T extends (infer Type)[] ? IsUnion<Type> extends true ? WidenUnion<Type>[] : Type extends unknown[] ? WidenTuple<Type> : T : never : T extends AnyFunction ? GetKeys$1<T>["length"] extends 0 ? RemoveFnProps<T> : RemoveFnProps<T> & ExpandRecursively<WidenObj<FnProps<T>, GetKeys$1<T>>> : T;
9379
+ type WidenObj<T extends Dictionary, TKeys extends readonly (keyof T)[], TResults extends Dictionary = EmptyObject> = [] extends TKeys ? TResults : WidenObj<T, AfterFirst<TKeys>, TResults & Record<First<TKeys>, T[First<TKeys>] extends TypedFunction ? WidenFn<IsNarrowingFn<T[First<TKeys>]>, Parameters<T[First<TKeys>]>, ReturnType<T[First<TKeys>]>, ExpandDictionary<FnProps<T[First<TKeys>]>>> : IsLiteral<T[First<TKeys>]> extends true ? WidenLiteral<T[First<TKeys>]> : Process$E<T[First<TKeys>]>>>;
9380
9380
  type WidenTuple<T extends readonly unknown[]> = {
9381
- [K in keyof T]: IsLiteral<T[K]> extends true ? WidenLiteral<T[K]> : Process$D<T[K]>;
9381
+ [K in keyof T]: IsLiteral<T[K]> extends true ? WidenLiteral<T[K]> : Process$E<T[K]>;
9382
9382
  };
9383
9383
  type WidenFnParams<T extends readonly unknown[]> = {
9384
9384
  [K in keyof T]: IsLiteral<T[K]> extends true ? WidenLiteral<T[K]> : IsLiteralUnion<T[K]> extends true ? WidenUnion<T[K]> : T[K];
@@ -9411,10 +9411,10 @@ type WidenContainer<T extends Container, TForce extends boolean = false> = [
9411
9411
  * **Note:** should you want the container values to be fully widened you
9412
9412
  * can set `TForce` to true.
9413
9413
  */
9414
- type Widen<T, TForce extends boolean = false> = [IsUnion<T>] extends [true] ? WidenUnion<T> : T extends Container ? WidenContainer<T, TForce> : T extends Scalar ? WidenScalar<T> : Process$D<T>;
9414
+ type Widen<T, TForce extends boolean = false> = [IsUnion<T>] extends [true] ? WidenUnion<T> : T extends Container ? WidenContainer<T, TForce> : T extends Scalar ? WidenScalar<T> : Process$E<T>;
9415
9415
 
9416
9416
  type Tighten<T extends string> = T extends ` ${infer Rest extends string}` ? T extends ` ${infer Double extends string}` ? Double : Rest : T;
9417
- type Process$C<T extends string, Result extends readonly unknown[] = []> = T extends `${infer Element},${infer Rest}` ? Process$C<Rest, [
9417
+ type Process$D<T extends string, Result extends readonly unknown[] = []> = T extends `${infer Element},${infer Rest}` ? Process$D<Rest, [
9418
9418
  ...Result,
9419
9419
  Tighten<Element> extends NumberLike ? AsNumber<Tighten<Element>> : Tighten<Element>
9420
9420
  ]> : [
@@ -9445,7 +9445,7 @@ type ProcessUnionStr<T extends string, Result extends string | number = never> =
9445
9445
  *
9446
9446
  * **Related:** `CsvToTupleStr`, `CsvToUnion`
9447
9447
  */
9448
- type CsvToTuple<T extends string> = Process$C<T>;
9448
+ type CsvToTuple<T extends string> = Process$D<T>;
9449
9449
  /**
9450
9450
  * **CsvToTupleStr**`<T>`
9451
9451
  *
@@ -9610,12 +9610,12 @@ type WideFlatten<T> = T extends (infer Type)[] ? Type extends unknown[] ? Type :
9610
9610
  * Just returns `TList` "as is" if it's not a a Tuple or
9611
9611
  * Union type.
9612
9612
  */
9613
- type Process$w<TList, TLevel extends 1 | 2 | 3 = 1> = TList extends readonly unknown[] ? IsTuple<TList> extends true ? FlattenTuple<TList, TLevel> : WideFlatten<TList> : IsUnion<TList> extends true ? FlattenUnion<TList> : TList;
9613
+ type Process$x<TList, TLevel extends 1 | 2 | 3 = 1> = TList extends readonly unknown[] ? IsTuple<TList> extends true ? FlattenTuple<TList, TLevel> : WideFlatten<TList> : IsUnion<TList> extends true ? FlattenUnion<TList> : TList;
9614
9614
  /**
9615
9615
  * converts a wide array to a scalar and tuple
9616
9616
  * to a union type
9617
9617
  */
9618
- type ToScalar<TList, TLevel extends 1 | 2 | 3> = [IsTuple<Process$w<TList>>] extends [true] ? TupleToUnion<Process$w<TList, TLevel>> : Process$w<TList, TLevel> extends (infer Type)[] ? Type : never;
9618
+ type ToScalar<TList, TLevel extends 1 | 2 | 3> = [IsTuple<Process$x<TList>>] extends [true] ? TupleToUnion<Process$x<TList, TLevel>> : Process$x<TList, TLevel> extends (infer Type)[] ? Type : never;
9619
9619
  type IterateScalar<T extends readonly unknown[], TLevel extends 1 | 2 | 3> = TupleToUnion<{
9620
9620
  [K in keyof T]: T[K] extends unknown[] ? ToScalar<T[K], TLevel> : T[K];
9621
9621
  }>;
@@ -9631,15 +9631,15 @@ type IterateScalar<T extends readonly unknown[], TLevel extends 1 | 2 | 3> = Tup
9631
9631
  * if you set `ToScalar` to `true` then it will flatten right out of being an array
9632
9632
  * into a union type
9633
9633
  */
9634
- type Flatten<TList, TLevel extends 1 | 2 | 3 = 1, ToScalar extends boolean = false> = [ToScalar] extends [false] ? Process$w<TList, TLevel> : [
9635
- IsUnion<Process$w<TList, TLevel>>
9636
- ] extends [true] ? IterateScalar<UnionToTuple$1<Process$w<TList, TLevel>>, TLevel> : [IsTuple<Process$w<TList, TLevel>>] extends [true] ? TupleToUnion<Process$w<TList, TLevel>> : Process$w<TList, TLevel> extends (infer Type)[] ? Type : never;
9634
+ type Flatten<TList, TLevel extends 1 | 2 | 3 = 1, ToScalar extends boolean = false> = [ToScalar] extends [false] ? Process$x<TList, TLevel> : [
9635
+ IsUnion<Process$x<TList, TLevel>>
9636
+ ] extends [true] ? IterateScalar<UnionToTuple$1<Process$x<TList, TLevel>>, TLevel> : [IsTuple<Process$x<TList, TLevel>>] extends [true] ? TupleToUnion<Process$x<TList, TLevel>> : Process$x<TList, TLevel> extends (infer Type)[] ? Type : never;
9637
9637
 
9638
9638
  /**
9639
9639
  * extract props from functions
9640
9640
  */
9641
9641
  type F<T> = T extends TypedFunction ? FnProps<T> : T;
9642
- type Process$v<TList extends readonly unknown[], TKey extends string> = RemoveNever<{
9642
+ type Process$w<TList extends readonly unknown[], TKey extends string> = RemoveNever<{
9643
9643
  [K in keyof TList]: [TKey] extends [keyof F<TList[K]>] ? [IndexOf<F<TList[K]>, TKey>] extends [undefined] ? never : IndexOf<F<TList[K]>, TKey> : [IsValidDotPath<F<TList[K]>, TKey>] extends [true] ? Mutable<Get$1<F<TList[K]>, TKey, never>> : never;
9644
9644
  }>;
9645
9645
  /**
@@ -9661,7 +9661,7 @@ type Process$v<TList extends readonly unknown[], TKey extends string> = RemoveNe
9661
9661
  * ], "name">
9662
9662
  * ```
9663
9663
  */
9664
- type GetEach<TList extends readonly unknown[], TKey extends string | null> = TKey extends null ? TList : TKey extends "" ? TList : IsReadonlyArray<TList> extends true ? Readonly<Process$v<[...TList], Exclude<TKey, null>>> : Process$v<TList, Exclude<TKey, null>>;
9664
+ type GetEach<TList extends readonly unknown[], TKey extends string | null> = TKey extends null ? TList : TKey extends "" ? TList : IsReadonlyArray<TList> extends true ? Readonly<Process$w<[...TList], Exclude<TKey, null>>> : Process$w<TList, Exclude<TKey, null>>;
9665
9665
 
9666
9666
  type Override<TValue, TOverride> = TOverride extends Constant$1<"no-override"> ? TValue : TValue extends ErrorCondition<"invalid-index"> ? TOverride : TValue;
9667
9667
  type NegativeIndex<TValue extends readonly unknown[], TIdx extends number> = Decrement<Abs<TIdx>> extends number ? If<IsValidIndex<TValue, Decrement<Abs<TIdx>>>, TValue[Decrement<Abs<TIdx>>], Throw<"invalid-index", `Use of a negative index [${AsString<TIdx>}] was unsuccessful in matching a valid index`, "IndexOf", {
@@ -9686,7 +9686,7 @@ type HandleObj<TValue extends Dictionary, TIdx extends PropertyKey> = TIdx exten
9686
9686
  key: TIdx;
9687
9687
  library: "inferred-types/constants";
9688
9688
  }>;
9689
- type Process$u<TValue, TIdx extends PropertyKey | null> = If<IsNull<TIdx>, TValue, TValue extends readonly unknown[] ? If<IsValidIndex<TValue, AsPropertyKey<TIdx>>, HandleArr<TValue, AsPropertyKey<TIdx>>, Throw<"invalid-index", `Call to IndexOf<DescribeType<TValue>,${AsString<TIdx>}> is not allowed as an tuple based container must receive either null or numeric index value.`, "IndexOf", {
9689
+ type Process$v<TValue, TIdx extends PropertyKey | null> = If<IsNull<TIdx>, TValue, TValue extends readonly unknown[] ? If<IsValidIndex<TValue, AsPropertyKey<TIdx>>, HandleArr<TValue, AsPropertyKey<TIdx>>, Throw<"invalid-index", `Call to IndexOf<DescribeType<TValue>,${AsString<TIdx>}> is not allowed as an tuple based container must receive either null or numeric index value.`, "IndexOf", {
9690
9690
  library: "inferred-types/constants";
9691
9691
  container: TValue;
9692
9692
  key: TIdx;
@@ -9715,7 +9715,7 @@ type Process$u<TValue, TIdx extends PropertyKey | null> = If<IsNull<TIdx>, TValu
9715
9715
  * **Errors:** produces an `ErrorCondition<"invalid-index">` when an a bad index value
9716
9716
  * is passed in for the given container
9717
9717
  */
9718
- type IndexOf<TValue, TIdx extends PropertyKey | null, TOverride = Constant$1<"no-override">> = TIdx extends null ? TValue : Override<Process$u<TValue, TIdx>, TOverride>;
9718
+ type IndexOf<TValue, TIdx extends PropertyKey | null, TOverride = Constant$1<"no-override">> = TIdx extends null ? TValue : Override<Process$v<TValue, TIdx>, TOverride>;
9719
9719
 
9720
9720
  /**
9721
9721
  * **Last**`<TList, [TEmpty]>`
@@ -9777,14 +9777,14 @@ interface FnMeta<TFn extends AnyFunction = AnyFunction, TArgs extends readonly a
9777
9777
  isNarrowingFn: IsNarrowingFn<TFn>;
9778
9778
  }
9779
9779
 
9780
- type Process$s<T extends AnyFunction> = IsEqual<T, Function> extends true ? EmptyObject : keyof T extends ObjectKey ? Pick<T, keyof T> : never;
9780
+ type Process$t<T extends AnyFunction> = IsEqual<T, Function> extends true ? EmptyObject : keyof T extends ObjectKey ? Pick<T, keyof T> : never;
9781
9781
  /**
9782
9782
  * **FnProps**`<T>`
9783
9783
  *
9784
9784
  * Return a dictionary of key/value pairs from a function. If no key/value
9785
9785
  * pairs are assigned to the function base then an empty object is returned.
9786
9786
  */
9787
- type FnProps<T extends AnyFunction> = Process$s<T>;
9787
+ type FnProps<T extends AnyFunction> = Process$t<T>;
9788
9788
 
9789
9789
  type FnDefn = [fn: AnyFunction] | [fn: AnyFunction, desc: string] | [fn: AnyFunction, props: Record<ObjectKey, unknown>];
9790
9790
  /**
@@ -10703,7 +10703,7 @@ interface VueRef<T = any> {
10703
10703
  value: T;
10704
10704
  }
10705
10705
 
10706
- type Process$r<TValues extends readonly (boolean | LogicFunction)[], _TParams extends readonly unknown[] = []> = {
10706
+ type Process$s<TValues extends readonly (boolean | LogicFunction)[], _TParams extends readonly unknown[] = []> = {
10707
10707
  [K in keyof TValues]: TValues[K] extends ((...args: any[]) => boolean) ? ReturnType<TValues[K]> : TValues[K];
10708
10708
  };
10709
10709
  /**
@@ -10716,7 +10716,7 @@ type Process$r<TValues extends readonly (boolean | LogicFunction)[], _TParams ex
10716
10716
  *
10717
10717
  * **Related**: `ReturnTypes` and `TruthyReturns`
10718
10718
  */
10719
- type LogicalReturns<TValues extends readonly (boolean | LogicFunction)[], _TParams extends readonly unknown[] = []> = Process$r<TValues, _TParams> extends readonly boolean[] ? Process$r<TValues, _TParams> : never;
10719
+ type LogicalReturns<TValues extends readonly (boolean | LogicFunction)[], _TParams extends readonly unknown[] = []> = Process$s<TValues, _TParams> extends readonly boolean[] ? Process$s<TValues, _TParams> : never;
10720
10720
 
10721
10721
  type Reduce<T extends readonly ([string, number])[], TMax extends number = 0, TVal extends string = ""> = [] extends T ? TVal : Reduce<AfterFirst<T>, First<T> extends [string, infer Len extends number] ? If<IsGreaterThan<Len, TMax>, Len, TMax> : TMax, First<T> extends [infer Val extends string, infer Len extends number] ? If<IsGreaterThan<Len, TMax>, Val, TVal> : TVal>;
10722
10722
  /**
@@ -10736,7 +10736,7 @@ type Recurse<TList extends Tuple, TResults extends Tuple = []> = [] extends TLis
10736
10736
  type Convert$1<TList extends Tuple> = Length<TList> extends 0 ? number[] : Recurse<{
10737
10737
  [K in keyof TList]: K;
10738
10738
  }>;
10739
- type Process$q<TList extends Tuple> = If<IsReadonlyArray<TList>, TList["length"] extends 0 ? number[] : Readonly<Convert$1<TList>>, Convert$1<TList>>;
10739
+ type Process$r<TList extends Tuple> = If<IsReadonlyArray<TList>, TList["length"] extends 0 ? number[] : Readonly<Convert$1<TList>>, Convert$1<TList>>;
10740
10740
  /**
10741
10741
  * **NumericKeys**<`TList`>
10742
10742
  *
@@ -10751,7 +10751,7 @@ type Process$q<TList extends Tuple> = If<IsReadonlyArray<TList>, TList["length"]
10751
10751
  *
10752
10752
  * **Related:** `Keys`
10753
10753
  */
10754
- type NumericKeys<TList extends Tuple> = Process$q<TList> extends readonly number[] ? Process$q<TList> : never;
10754
+ type NumericKeys<TList extends Tuple> = Process$r<TList> extends readonly number[] ? Process$r<TList> : never;
10755
10755
 
10756
10756
  type _Get<T, K, Acc = never> = K extends `${infer A}.${infer B}` ? A extends keyof T ? _Get<T[A], B, _Get<T[A], B>> : Acc : K extends keyof T ? _Get<T[K], K, T[K]> : Acc;
10757
10757
  /**
@@ -10785,7 +10785,7 @@ type _Pop<TVal extends Tuple> = TVal extends [...(infer Rest), unknown] ? Rest :
10785
10785
  */
10786
10786
  type Pop<TList extends Tuple | string> = TList extends string ? IsWideType<TList> extends true ? string : IsStringLiteral<TList> extends true ? TList extends string ? TList extends "" ? "" : Chars<TList> extends readonly string[] ? Concat<_Pop<Chars<TList>>> : never : never : string : _Pop<Exclude<TList, string>>;
10787
10787
 
10788
- type Process$o<TList extends readonly unknown[], TValue> = [
10788
+ type Process$p<TList extends readonly unknown[], TValue> = [
10789
10789
  ...TList,
10790
10790
  TValue
10791
10791
  ];
@@ -10796,13 +10796,13 @@ type Process$o<TList extends readonly unknown[], TValue> = [
10796
10796
  *
10797
10797
  * - If you want to make the push conditional you can add `TCondition`
10798
10798
  */
10799
- type Push<TList extends readonly unknown[], TVal, TCondition = true> = [TCondition] extends [true] ? As<Process$o<TList, TVal>, readonly unknown[]> : TList;
10799
+ type Push<TList extends readonly unknown[], TVal, TCondition = true> = [TCondition] extends [true] ? As<Process$p<TList, TVal>, readonly unknown[]> : TList;
10800
10800
 
10801
10801
  /**
10802
10802
  * Iterates over each element of the Tuple
10803
10803
  */
10804
10804
  type SingleFilter<TList extends readonly unknown[], TFilter, TOp extends ComparatorOperation, Result extends unknown[] = []> = TList extends [infer Head, ...infer Rest] ? [Compare$1<Head, TOp, TFilter>] extends [true] ? SingleFilter<Rest, TFilter, TOp, [...Result, Head]> : SingleFilter<Rest, TFilter, TOp, Result> : Result;
10805
- type Process$n<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter<TList, TComparator, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter<[...TList], TComparator, TOp>> : never;
10805
+ type Process$o<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter<TList, TComparator, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter<[...TList], TComparator, TOp>> : never;
10806
10806
  type PrepList<T extends readonly unknown[], O extends ComparatorOperation> = Or<[
10807
10807
  IsEqual<O, "contains">,
10808
10808
  IsEqual<O, "startsWith">,
@@ -10821,9 +10821,9 @@ type PrepList<T extends readonly unknown[], O extends ComparatorOperation> = Or<
10821
10821
  *
10822
10822
  * **Related:** `Filter`
10823
10823
  */
10824
- type Retain<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation = "extends"> = PrepList<TList, TOp> extends readonly unknown[] ? [TComparator] extends [unknown[]] ? Process$n<PrepList<TList, TOp>, TupleToUnion<TComparator>, TOp> : Process$n<PrepList<TList, TOp>, TComparator, TOp> : never;
10824
+ type Retain<TList extends readonly unknown[], TComparator, TOp extends ComparatorOperation = "extends"> = PrepList<TList, TOp> extends readonly unknown[] ? [TComparator] extends [unknown[]] ? Process$o<PrepList<TList, TOp>, TupleToUnion<TComparator>, TOp> : Process$o<PrepList<TList, TOp>, TComparator, TOp> : never;
10825
10825
 
10826
- type Process$m<T extends readonly unknown[]> = RemoveMarked<{
10826
+ type Process$n<T extends readonly unknown[]> = RemoveMarked<{
10827
10827
  [K in keyof T]: If<IsLiteral<T[K]>, T[K], Constant$1<"Marked">>;
10828
10828
  }>;
10829
10829
  /**
@@ -10836,7 +10836,7 @@ type Process$m<T extends readonly unknown[]> = RemoveMarked<{
10836
10836
  *
10837
10837
  * **Related:** `Retain`, `FilterLiterals`, `RetainWideTypes`
10838
10838
  */
10839
- type RetainLiterals<T extends readonly unknown[]> = Process$m<T> extends readonly unknown[] ? Process$m<T> : never;
10839
+ type RetainLiterals<T extends readonly unknown[]> = Process$n<T> extends readonly unknown[] ? Process$n<T> : never;
10840
10840
 
10841
10841
  /**
10842
10842
  * **Second**`<T, [ELSE]>`
@@ -10877,8 +10877,8 @@ type RemoveStart<TList extends readonly unknown[], TStart extends number> = TSta
10877
10877
  ...(infer REST)
10878
10878
  ] ? REST : Throw<"invalid-start-index">;
10879
10879
  type TruncateAtLen<TList extends readonly unknown[], TLen extends number> = IsNegativeNumber<TLen> extends true ? If<IsGreaterThan<Abs<TLen>, TList["length"]>, never, TakeFirst<TList, Add<TList["length"], TLen>>> : If<IsGreaterThanOrEqual<TLen, TList["length"]>, TList, TakeFirst<TList, TLen>>;
10880
- type Process$k<TList extends readonly unknown[], TStart extends number, TLen extends number | undefined> = TList extends readonly unknown[] ? RemoveStart<TList, TStart> extends readonly unknown[] ? If<IsNumericLiteral<TLen>, TruncateAtLen<RemoveStart<TList, TStart>, As<TLen, number>>, RemoveStart<TList, TStart>> : RemoveStart<TList, TStart> : never;
10881
- type PreProcess<TList extends readonly unknown[], TStart extends number, TLen extends number | undefined = undefined> = TList extends string ? Chars<TList> extends readonly string[] ? Concat<As<Process$k<Chars<TList>, TStart, TLen>, readonly string[]>> : never : TList extends readonly unknown[] ? Process$k<TList, TStart, TLen> : never;
10880
+ type Process$l<TList extends readonly unknown[], TStart extends number, TLen extends number | undefined> = TList extends readonly unknown[] ? RemoveStart<TList, TStart> extends readonly unknown[] ? If<IsNumericLiteral<TLen>, TruncateAtLen<RemoveStart<TList, TStart>, As<TLen, number>>, RemoveStart<TList, TStart>> : RemoveStart<TList, TStart> : never;
10881
+ type PreProcess<TList extends readonly unknown[], TStart extends number, TLen extends number | undefined = undefined> = TList extends string ? Chars<TList> extends readonly string[] ? Concat<As<Process$l<Chars<TList>, TStart, TLen>, readonly string[]>> : never : TList extends readonly unknown[] ? Process$l<TList, TStart, TLen> : never;
10882
10882
  /**
10883
10883
  * **Slice**`<TList, TStart, TLen>`
10884
10884
  *
@@ -10892,7 +10892,7 @@ type PreProcess<TList extends readonly unknown[], TStart extends number, TLen ex
10892
10892
  */
10893
10893
  type Slice<TList extends readonly unknown[] | string, TStart extends number, TLen extends number | undefined = undefined> = TList extends string ? Concat<As<PreProcess<Chars<TList>, TStart, TLen>, readonly string[]>> : TList extends readonly unknown[] ? PreProcess<TList, TStart, TLen> extends readonly unknown[] ? PreProcess<TList, TStart, TLen> : never : never;
10894
10894
 
10895
- type Process$j<TContent extends readonly unknown[], TLen extends number, TIdx extends number = 0, TResult extends readonly unknown[] = []> = [] extends TContent ? TResult : If<IsGreaterThanOrEqual<TIdx, TLen>, TResult, Process$j<AfterFirst<TContent>, TLen, Increment<TIdx>, [
10895
+ type Process$k<TContent extends readonly unknown[], TLen extends number, TIdx extends number = 0, TResult extends readonly unknown[] = []> = [] extends TContent ? TResult : If<IsGreaterThanOrEqual<TIdx, TLen>, TResult, Process$k<AfterFirst<TContent>, TLen, Increment<TIdx>, [
10896
10896
  ...TResult,
10897
10897
  First<TContent>
10898
10898
  ]>>;
@@ -10909,7 +10909,7 @@ type Process$j<TContent extends readonly unknown[], TLen extends number, TIdx ex
10909
10909
  * - if you want a precise length, then set `THandle` to "throw" and
10910
10910
  * an error will be thrown.
10911
10911
  */
10912
- type TakeFirst<TContent extends readonly unknown[], TLen extends number, THandle extends "ignore" | "throw" = "ignore"> = If<IsGreaterThan<TLen, TContent["length"]>, If<THandle extends "ignore" ? true : false, TContent, Throw<"invalid-length", `TakeFirst<TContent,TLen> was called where the length of TLen(${TLen}) was greater than the length of the content (${TContent["length"]})!`>>, If<IsEqual<TLen, TContent["length"]>, TContent, Process$j<TContent, TLen>>>;
10912
+ type TakeFirst<TContent extends readonly unknown[], TLen extends number, THandle extends "ignore" | "throw" = "ignore"> = If<IsGreaterThan<TLen, TContent["length"]>, If<THandle extends "ignore" ? true : false, TContent, Throw<"invalid-length", `TakeFirst<TContent,TLen> was called where the length of TLen(${TLen}) was greater than the length of the content (${TContent["length"]})!`>>, If<IsEqual<TLen, TContent["length"]>, TContent, Process$k<TContent, TLen>>>;
10913
10913
 
10914
10914
  type _Keys$2<T extends object> = UnionToTuple$1<keyof RemoveIndexKeys<T>> extends readonly ObjectKey[] ? UnionToTuple$1<keyof RemoveIndexKeys<T>> : never;
10915
10915
  type ProcessObj$1<T extends Container, TKeys extends readonly PropertyKey[], TResults extends Dictionary = EmptyObject> = [] extends TKeys ? TResults : First<TKeys> extends keyof T ? IfNever<T[First<TKeys>], ProcessObj$1<T, AfterFirst<TKeys>, TResults>, ProcessObj$1<T, AfterFirst<TKeys>, First<TKeys> extends keyof T ? TResults extends readonly unknown[] ? [...TResults, T[First<TKeys>]] : TResults extends Dictionary ? TResults & Record<First<TKeys>, T[First<TKeys>]> : never : never>> : never;
@@ -10925,7 +10925,7 @@ type _Keys<T extends object> = UnionToTuple$1<keyof RemoveIndexKeys<T>>;
10925
10925
  type GetKeys<T extends object> = IsVueRef<T> extends true ? ["value"] : _Keys<T> extends [symbol] ? ObjectKey[] : _Keys<T> extends [] ? UnionToTuple$1<keyof T> extends [ObjectKey] ? (keyof T)[] : ObjectKey[] : _Keys<T>;
10926
10926
  type ProcessObj<TContainer extends object> = GetKeys<TContainer>;
10927
10927
  type ProcessTuple<TContainer extends readonly unknown[]> = NumericKeys<TContainer> extends readonly number[] ? NumericKeys<TContainer> : never;
10928
- type Process$g<TContainer extends AnyObject> = [IsObjectLiteral<RemoveIndexKeys<TContainer>>] extends [true] ? ProcessObj<RemoveIndexKeys<TContainer>> extends readonly (keyof TContainer & ObjectKey)[] ? As<ProcessObj<RemoveIndexKeys<TContainer>>, readonly ObjectKey[]> : never : ObjectKey[];
10928
+ type Process$h<TContainer extends AnyObject> = [IsObjectLiteral<RemoveIndexKeys<TContainer>>] extends [true] ? ProcessObj<RemoveIndexKeys<TContainer>> extends readonly (keyof TContainer & ObjectKey)[] ? As<ProcessObj<RemoveIndexKeys<TContainer>>, readonly ObjectKey[]> : never : ObjectKey[];
10929
10929
  /**
10930
10930
  * **Keys**`<TContainer>`
10931
10931
  *
@@ -10942,7 +10942,7 @@ type Process$g<TContainer extends AnyObject> = [IsObjectLiteral<RemoveIndexKeys<
10942
10942
  *
10943
10943
  * **Related:** `ValidKey`, `PublicKeys`
10944
10944
  */
10945
- type Keys<TContainer extends Tuple | AnyObject> = TContainer extends Tuple ? ProcessTuple<TContainer> : TContainer extends AnyObject ? Process$g<TContainer> extends readonly ObjectKey[] ? Process$g<TContainer> : never : never;
10945
+ type Keys<TContainer extends Tuple | AnyObject> = TContainer extends Tuple ? ProcessTuple<TContainer> : TContainer extends AnyObject ? Process$h<TContainer> extends readonly ObjectKey[] ? Process$h<TContainer> : never : never;
10946
10946
 
10947
10947
  type ProcessTupleKeys<TObj extends AnyObject, TKeys extends readonly ObjectKey[]> = ExpandDictionary<WithoutKeys<TObj, TKeys> & {
10948
10948
  [K in keyof WithKeys<TObj, TKeys>]?: K extends keyof TObj ? TObj[K] : never;
@@ -11020,7 +11020,7 @@ interface ConstrainedObjectIdentity<TConstraint extends AnyObject> {
11020
11020
  asCallback: ConstrainedObjectCallback<TConstraint>;
11021
11021
  }
11022
11022
 
11023
- type Process$e<TKeys extends readonly string[], TValue, TObj extends Dictionary = EmptyObject> = [] extends TKeys ? TObj : Process$e<AfterFirst<TKeys>, TValue, TObj & Record<First<TKeys>, TValue>>;
11023
+ type Process$f<TKeys extends readonly string[], TValue, TObj extends Dictionary = EmptyObject> = [] extends TKeys ? TObj : Process$f<AfterFirst<TKeys>, TValue, TObj & Record<First<TKeys>, TValue>>;
11024
11024
  /**
11025
11025
  * **CreateKV**`<TKeys,[TValue]>`
11026
11026
  *
@@ -11028,7 +11028,7 @@ type Process$e<TKeys extends readonly string[], TValue, TObj extends Dictionary
11028
11028
  * as `TKeys` and with all properties set to the value
11029
11029
  * of `TValue` (which defaults to `unknown`)
11030
11030
  */
11031
- type CreateKV<TKeys extends readonly string[], TValue = unknown> = ExpandRecursively<Process$e<TKeys, TValue>>;
11031
+ type CreateKV<TKeys extends readonly string[], TValue = unknown> = ExpandRecursively<Process$f<TKeys, TValue>>;
11032
11032
 
11033
11033
  /**
11034
11034
  * the _optional_ variants of the `SimpleScalarToken` type
@@ -11628,7 +11628,7 @@ type SKeys<T extends AnyObject> = IsVueRef<T> extends true ? ["value"] : _SKeys<
11628
11628
  */
11629
11629
  type TakeProp<TTest, TProp extends PropertyKey, TElse = undefined> = TProp extends keyof TTest ? TTest[TProp] : TElse;
11630
11630
 
11631
- type Process$4<TKeys extends readonly ObjectKey[], TObj extends Record<ObjectKey, unknown>, TResult extends readonly unknown[] = []> = [] extends TKeys ? TResult : Process$4<AfterFirst<TKeys>, TObj, [
11631
+ type Process$5<TKeys extends readonly ObjectKey[], TObj extends Record<ObjectKey, unknown>, TResult extends readonly unknown[] = []> = [] extends TKeys ? TResult : Process$5<AfterFirst<TKeys>, TObj, [
11632
11632
  ...TResult,
11633
11633
  First<TKeys> extends keyof TObj ? TObj[First<TKeys>] : never
11634
11634
  ]>;
@@ -11640,7 +11640,7 @@ type Process$4<TKeys extends readonly ObjectKey[], TObj extends Record<ObjectKey
11640
11640
  * - for **tuples** this is just a _proxy_ of the type
11641
11641
  * - for _wide_ types like `string[]`
11642
11642
  */
11643
- type Values<T extends Container> = T extends Tuple ? T : T extends Dictionary ? Process$4<Keys<T> extends readonly ObjectKey[] ? Keys<T> : never, T> : T extends TypedFunction ? [T] : [];
11643
+ type Values<T extends Container> = T extends Tuple ? T : T extends Dictionary ? Process$5<Keys<T> extends readonly ObjectKey[] ? Keys<T> : never, T> : T extends TypedFunction ? [T] : [];
11644
11644
 
11645
11645
  type MakeIntoUnion<K extends PropertyKey | readonly PropertyKey[]> = K extends readonly PropertyKey[] ? TupleToUnion<K> : K;
11646
11646
  type MakeNumericIndex<T> = T;
@@ -11663,7 +11663,7 @@ type MakeNumericIndex<T> = T;
11663
11663
  */
11664
11664
  type WithKeys<T extends AnyObject | Tuple, K extends PropertyKey | readonly PropertyKey[]> = ExpandRecursively<UnionToIntersection<MakeIntoUnion<K> extends keyof T ? T extends Tuple ? MakeNumericIndex<Pick<T, MakeIntoUnion<K>>> : Pick<T, MakeIntoUnion<K>> : never>>;
11665
11665
 
11666
- type Process$3<TObj extends Dictionary, TKeys extends ObjectKey> = [] extends TKeys ? TObj : Omit<TObj, TKeys>;
11666
+ type Process$4<TObj extends Dictionary, TKeys extends ObjectKey> = [] extends TKeys ? TObj : Omit<TObj, TKeys>;
11667
11667
  /**
11668
11668
  * **WithoutKeys**`<TObj, TKeys>`
11669
11669
  *
@@ -11671,7 +11671,7 @@ type Process$3<TObj extends Dictionary, TKeys extends ObjectKey> = [] extends TK
11671
11671
  * functionally equivalent to the `Omit<T,U>` built-in but rather than
11672
11672
  * taking a union type it takes an array of keys.
11673
11673
  */
11674
- type WithoutKeys<TObj extends Dictionary, TKeys extends ObjectKey | readonly ObjectKey[]> = TKeys extends readonly ObjectKey[] ? Process$3<TObj, TupleToUnion<TKeys>> : ExpandDictionary<Process$3<TObj, TKeys extends readonly ObjectKey[] ? TupleToUnion<TKeys> : TKeys>>;
11674
+ type WithoutKeys<TObj extends Dictionary, TKeys extends ObjectKey | readonly ObjectKey[]> = TKeys extends readonly ObjectKey[] ? Process$4<TObj, TupleToUnion<TKeys>> : ExpandDictionary<Process$4<TObj, TKeys extends readonly ObjectKey[] ? TupleToUnion<TKeys> : TKeys>>;
11675
11675
 
11676
11676
  /**
11677
11677
  * **WithoutValue**
@@ -11690,7 +11690,7 @@ type WithoutKeys<TObj extends Dictionary, TKeys extends ObjectKey | readonly Obj
11690
11690
  type WithoutValue<TObj extends AnyObject, TValue extends Narrowable> = ExpandRecursively<Pick<TObj, KeysWithoutValue<TObj, TValue>>>;
11691
11691
 
11692
11692
  type Marked$1 = typeof MARKED;
11693
- type Process$2<TObj extends Dictionary, TValue, TOp extends "equals" | "extends"> = RemoveMarked<{
11693
+ type Process$3<TObj extends Dictionary, TValue, TOp extends "equals" | "extends"> = RemoveMarked<{
11694
11694
  [K in keyof TObj]: If<Compare$1<TObj[K], TOp, TValue>, TObj[K], Marked$1>;
11695
11695
  }>;
11696
11696
  /**
@@ -11706,7 +11706,7 @@ type Process$2<TObj extends Dictionary, TValue, TOp extends "equals" | "extends"
11706
11706
  *
11707
11707
  * **Related:** `WithoutValue`, `WithKeys`, `WithoutKeys`
11708
11708
  */
11709
- type WithValue<TObj extends Dictionary, TValue, TOp extends "equals" | "extends" = "extends"> = ExpandRecursively<Process$2<TObj, TValue, TOp>>;
11709
+ type WithValue<TObj extends Dictionary, TValue, TOp extends "equals" | "extends" = "extends"> = ExpandRecursively<Process$3<TObj, TValue, TOp>>;
11710
11710
 
11711
11711
  /** Converts a single KeyValue into a one-key object */
11712
11712
  type KeyValueToObj<KV extends {
@@ -11740,7 +11740,7 @@ interface KeyValue<K = ObjectKey, V = any> {
11740
11740
  value: V;
11741
11741
  }
11742
11742
 
11743
- type Process$1<TObj extends AnyObject, TKeys extends readonly (ObjectKey & keyof TObj)[], TKv extends readonly KeyValue[] = []> = [] extends TKeys ? TKv : Process$1<TObj, AfterFirst<TKeys>, [
11743
+ type Process$2<TObj extends AnyObject, TKeys extends readonly (ObjectKey & keyof TObj)[], TKv extends readonly KeyValue[] = []> = [] extends TKeys ? TKv : Process$2<TObj, AfterFirst<TKeys>, [
11744
11744
  ...TKv,
11745
11745
  {
11746
11746
  key: First<TKeys>;
@@ -11769,7 +11769,7 @@ type Process$1<TObj extends AnyObject, TKeys extends readonly (ObjectKey & keyof
11769
11769
  *
11770
11770
  * **Related:** `KeyValue`, `FromKv`
11771
11771
  */
11772
- type ToKv<TObj extends AnyObject, TKeys extends (readonly (ObjectKey & keyof TObj)[]) | false = As<Keys<TObj>, (readonly (ObjectKey & keyof TObj)[])>> = IsObjectLiteral<TObj> extends true ? TKeys extends readonly (ObjectKey & keyof TObj)[] ? Process$1<TObj, TKeys> : Array<{
11772
+ type ToKv<TObj extends AnyObject, TKeys extends (readonly (ObjectKey & keyof TObj)[]) | false = As<Keys<TObj>, (readonly (ObjectKey & keyof TObj)[])>> = IsObjectLiteral<TObj> extends true ? TKeys extends readonly (ObjectKey & keyof TObj)[] ? Process$2<TObj, TKeys> : Array<{
11773
11773
  [K in keyof TObj]: {
11774
11774
  key: K;
11775
11775
  value: TObj[K];
@@ -11896,7 +11896,7 @@ type Intersection<A extends readonly unknown[], B extends readonly unknown[], TD
11896
11896
 
11897
11897
  type Get<TValue, TDeref extends PropertyKey | never> = IfNever<TDeref, TValue, // just proxy value back
11898
11898
  TDeref extends keyof TValue ? TValue[TDeref] : TValue extends Container ? never : TValue>;
11899
- type Process<TValues extends readonly unknown[], TDeref extends string | number | never, TResults extends readonly unknown[] = []> = [] extends TValues ? TResults : Process<AfterFirst<TValues>, TDeref, Push<TResults, First<TResults>, IsScalar<First<TValues>> extends true ? Not<Contains<TResults, First<TValues>>> : Not<Contains<As<IsNever<TDeref> extends true ? TResults : GetEach<TResults, AsString<TDeref>>, string | number | readonly unknown[]>, Get<First<TValues>, TDeref>>>>>;
11899
+ type Process$1<TValues extends readonly unknown[], TDeref extends string | number | never, TResults extends readonly unknown[] = []> = [] extends TValues ? TResults : Process$1<AfterFirst<TValues>, TDeref, Push<TResults, First<TResults>, IsScalar<First<TValues>> extends true ? Not<Contains<TResults, First<TValues>>> : Not<Contains<As<IsNever<TDeref> extends true ? TResults : GetEach<TResults, AsString<TDeref>>, string | number | readonly unknown[]>, Get<First<TValues>, TDeref>>>>>;
11900
11900
  /**
11901
11901
  * **Unique**`<TList, [TDeref]>`
11902
11902
  *
@@ -11913,7 +11913,7 @@ type Process<TValues extends readonly unknown[], TDeref extends string | number
11913
11913
  * type FooBar = Unique<["foo","foo","bar"]>;
11914
11914
  * ```
11915
11915
  */
11916
- type Unique<TList extends readonly unknown[], TDeref extends string | number | never = never> = IfNever<TDeref, UnionToTuple$1<TupleToUnion<TList>>, Process<TList, TDeref>>;
11916
+ type Unique<TList extends readonly unknown[], TDeref extends string | number | never = never> = IfNever<TDeref, UnionToTuple$1<TupleToUnion<TList>>, Process$1<TList, TDeref>>;
11917
11917
 
11918
11918
  /**
11919
11919
  * **UniqueKeys**`<L,R>`
@@ -12962,11 +12962,15 @@ declare function capitalize<T extends string>(str: T): Capitalize<T>;
12962
12962
  */
12963
12963
  declare function cssColor<TColorSpace extends CssColorSpace, TV1 extends ColorFnValue, TV2 extends ColorFnValue, TV3 extends ColorFnValue, TOp extends undefined | ColorFnOptOpacity>(color: TColorSpace, v1: TV1, v2: TV2, v3: TV3, opacity?: TOp): CssColorFn<TColorSpace, TV1, TV2, TV3, TOp extends ` / ${number}` ? TOp : "">;
12964
12964
 
12965
- type Rtn$1<TColor extends TwColor, TLum extends TwLuminosity> = TLum extends keyof TwLuminosityLookup ? TLum extends keyof TwChromaLookup ? TColor extends keyof TwHue ? `oklch(${TwLuminosityLookup[TLum]} ${TwChromaLookup[TLum]} ${TwHue[TColor]}) ` : never : never : never;
12965
+ type Rtn$1<TColor extends TwColor, TLum extends TwLuminosity> = TLum extends keyof TwLuminosityLookup ? TLum extends keyof TwChromaLookup ? TColor extends keyof TwHue ? `oklch(${TwLuminosityLookup[TLum]} ${TwChromaLookup[TLum]} ${TwHue[TColor]})` : never : never : never;
12966
12966
  /**
12967
+ * **twColor**`(color, luminosity)` => `oklch(...)`
12968
+ *
12967
12969
  * Provides a Tailwind Color using the `oklch` color
12968
12970
  * specification. The output is intended to put into
12969
12971
  * a CSS property.
12972
+ *
12973
+ * **Related:** `twColorRgb()`
12970
12974
  */
12971
12975
  declare function twColor<TColor extends TwColor, TLum extends TwLuminosity>(color: TColor, luminosity: TLum): Rtn$1<TColor, TLum>;
12972
12976