inferred-types 0.49.10 → 0.50.0

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.
Files changed (46) hide show
  1. package/dist/constants/Characters.d.ts +1 -1
  2. package/dist/constants/Characters.d.ts.map +1 -1
  3. package/dist/constants/Characters.js +2 -1
  4. package/dist/constants/tsconfig.tsbuildinfo +1 -1
  5. package/dist/inferred-types/index.cjs +38 -8
  6. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  7. package/dist/runtime/literals/index.d.ts +1 -0
  8. package/dist/runtime/literals/index.d.ts.map +1 -1
  9. package/dist/runtime/literals/index.js +1 -0
  10. package/dist/runtime/literals/pluralize.d.ts.map +1 -1
  11. package/dist/runtime/literals/pluralize.js +15 -13
  12. package/dist/runtime/literals/retainAfter.d.ts +19 -2
  13. package/dist/runtime/literals/retainAfter.d.ts.map +1 -1
  14. package/dist/runtime/literals/retainAfter.js +35 -5
  15. package/dist/runtime/literals/rightWhitespace.d.ts +9 -0
  16. package/dist/runtime/literals/rightWhitespace.d.ts.map +1 -0
  17. package/dist/runtime/literals/rightWhitespace.js +11 -0
  18. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  19. package/dist/types/boolean-logic/combinators/Compare.d.ts +10 -3
  20. package/dist/types/boolean-logic/combinators/Compare.d.ts.map +1 -1
  21. package/dist/types/lists/AsNumericArray.d.ts +16 -0
  22. package/dist/types/lists/AsNumericArray.d.ts.map +1 -0
  23. package/dist/types/lists/AsNumericArray.js +1 -0
  24. package/dist/types/lists/FilterByProp.d.ts +3 -17
  25. package/dist/types/lists/FilterByProp.d.ts.map +1 -1
  26. package/dist/types/lists/MaxLength.d.ts +17 -0
  27. package/dist/types/lists/MaxLength.d.ts.map +1 -0
  28. package/dist/types/lists/MaxLength.js +1 -0
  29. package/dist/types/lists/NumericSort.d.ts +65 -0
  30. package/dist/types/lists/NumericSort.d.ts.map +1 -0
  31. package/dist/types/lists/NumericSort.js +1 -0
  32. package/dist/types/lists/index.d.ts +3 -0
  33. package/dist/types/lists/index.d.ts.map +1 -1
  34. package/dist/types/lists/index.js +3 -0
  35. package/dist/types/string-literals/FindIndex.d.ts +68 -0
  36. package/dist/types/string-literals/FindIndex.d.ts.map +1 -0
  37. package/dist/types/string-literals/FindIndex.js +1 -0
  38. package/dist/types/string-literals/Pluralize.d.ts +6 -2
  39. package/dist/types/string-literals/Pluralize.d.ts.map +1 -1
  40. package/dist/types/string-literals/RetainAfter.d.ts +20 -8
  41. package/dist/types/string-literals/RetainAfter.d.ts.map +1 -1
  42. package/dist/types/string-literals/index.d.ts +1 -0
  43. package/dist/types/string-literals/index.d.ts.map +1 -1
  44. package/dist/types/string-literals/index.js +1 -0
  45. package/dist/types/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +1 -1
@@ -1,11 +1,18 @@
1
- import { Contains, DoesExtend, IsEqual, StartsWith, TupleToUnion, EndsWith, Tuple, ErrorCondition, Extends, NumberLike, TypedFunction, IsGreaterThan, As, IsLessThan, WhenNever, And } from "../../index";
1
+ import { Contains, DoesExtend, IsEqual, StartsWith, TupleToUnion, EndsWith, Tuple, ErrorCondition, Extends, NumberLike, TypedFunction, IsGreaterThan, As, IsLessThan, WhenNever, And, IsGreaterThanOrEqual, IsLessThanOrEqual } from "../../index";
2
+ /**
3
+ * comparison operators which require the base type to be a string
4
+ */
5
+ export type StringComparatorOperation = "startsWith" | "endsWith";
6
+ export type NumericComparatorOperation = "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual";
2
7
  /**
3
8
  * **ComparatorOperation**
4
9
  *
5
10
  * A union type providing various ways in which two values
6
11
  * can be compared.
12
+ *
13
+ * **Related:** `StringComparatorOperation`, `NumericComparatorOperation`
7
14
  */
8
- export type ComparatorOperation = "extends" | "equals" | "startsWith" | "endsWith" | "contains" | "containsAll" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "returnEquals" | "returnExtends";
15
+ export type ComparatorOperation = "extends" | "equals" | StringComparatorOperation | "contains" | "containsAll" | NumericComparatorOperation | "returnEquals" | "returnExtends";
9
16
  /**
10
17
  * **ParamsForComparison**`<T>`
11
18
  *
@@ -35,7 +42,7 @@ export type Comparison<TOp extends ComparatorOperation = ComparatorOperation, TA
35
42
  fn: TFn;
36
43
  } : ErrorCondition<"invalid-comparison">;
37
44
  type Unionize<T> = T extends readonly unknown[] ? TupleToUnion<T> : T;
38
- type Process<TVal, TOp extends ComparatorOperation, TComparator> = TOp extends "extends" ? DoesExtend<TVal, Unionize<TComparator>> : TOp extends "equals" ? IsEqual<TVal, Unionize<TComparator>> : TOp extends "contains" ? [TVal] extends [string | number | Tuple] ? Contains<TVal, TComparator> : never : TOp extends "containsAll" ? [TVal] extends [Tuple] ? [TComparator] extends [string | number | readonly string[]] ? Contains<TVal, TComparator> : never : never : TOp extends "startsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? StartsWith<TVal, TComparator> : never : never : TOp extends "greaterThan" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsGreaterThan<As<TVal, NumberLike>, As<TComparator, NumberLike>> : never : TOp extends "lessThan" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsLessThan<As<TVal, NumberLike>, As<TComparator, NumberLike>> : never : TOp extends "endsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? EndsWith<TVal, TComparator> : never : never : TOp extends "returnEquals" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : TOp extends "returnExtends" ? TVal extends ((...args: any[]) => any) ? IsEqual<ReturnType<TVal>, TComparator> : false : never;
45
+ type Process<TVal, TOp extends ComparatorOperation, TComparator> = TOp extends "extends" ? DoesExtend<TVal, Unionize<TComparator>> : TOp extends "equals" ? IsEqual<TVal, Unionize<TComparator>> : TOp extends "contains" ? [TVal] extends [string | number | Tuple] ? Contains<TVal, TComparator> : never : TOp extends "containsAll" ? [TVal] extends [Tuple] ? [TComparator] extends [string | number | readonly string[]] ? Contains<TVal, TComparator> : never : never : TOp extends "startsWith" ? [TVal] extends [string | number] ? [TComparator] extends [string | number | readonly string[]] ? StartsWith<TVal, TComparator> : never : never : TOp extends "greaterThan" ? And<[Extends<TComparator, NumberLike>, Extends<TVal, NumberLike>]> extends true ? IsGreaterThan<As<TVal, NumberLike>, As<TComparator, NumberLike>> : never : TOp extends "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;
39
46
  /**
40
47
  * **Compare**`<TVal,TOp,TComparator>`
41
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Compare.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Compare.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Compare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { RemoveNever } from "../containers";
2
+ import { NumberLike } from "../numeric-literals";
3
+ import { AsNumber } from "../type-conversion";
4
+ /**
5
+ * **AsNumericArray**`<T>`
6
+ *
7
+ * Converts into a numeric array:
8
+ *
9
+ * - `number` values are proxied through
10
+ * - `${number}` values are converted to a number
11
+ * - all other types are converted to `never` and removed
12
+ */
13
+ export type AsNumericArray<T> = T extends readonly unknown[] ? RemoveNever<{
14
+ [K in keyof T]: T[K] extends NumberLike ? AsNumber<T[K]> : never;
15
+ }> : never;
16
+ //# sourceMappingURL=AsNumericArray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsNumericArray.d.ts","sourceRoot":"","sources":["../../../src/types/lists/AsNumericArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,OAAO,EAAE,GAC1D,WAAW,CAAC;KACX,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACd,KAAK;CACV,CAAC,GACA,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,11 +1,11 @@
1
- import { ComparatorOperation, Compare, IsArray, IfNever, If, TupleToUnion, RemoveNever, IsDotPath, Throw, Get } from "../index";
1
+ import { ComparatorOperation, Compare, IfNever, RemoveNever, IsDotPath, Throw, Get } from "../index";
2
2
  /**
3
3
  * Iterates over each element of the Tuple
4
4
  */
5
5
  type SingleFilter<TList extends readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation, Result extends unknown[] = []> = TList extends [infer Head, ...infer Rest] ? [
6
6
  Compare<Get<Head, TProp>, TOp, TComparator>
7
7
  ] extends [true] ? SingleFilter<Rest, TComparator, TProp, TOp, Result> : SingleFilter<Rest, TComparator, TProp, TOp, [...Result, Head]> : Result;
8
- type Process<TList extends unknown[] | readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter<TList, TComparator, TProp, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter<[...TList], TComparator, TProp, TOp>> : never;
8
+ type Process<TList extends readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation> = TList extends unknown[] ? SingleFilter<TList, TComparator, TProp, TOp> : TList extends readonly unknown[] ? Readonly<SingleFilter<[...TList], TComparator, TProp, TOp>> : never;
9
9
  /**
10
10
  * **FilterByProp**`<TList, TComparator, TProp, [TOp]>`
11
11
  *
@@ -16,22 +16,8 @@ type Process<TList extends unknown[] | readonly unknown[], TComparator, TProp ex
16
16
  * - How the list is _compared_ depends on `TOp` which defaults to "extends"
17
17
  * - other values include "equals", "does-not-extend", "does-not-equal"
18
18
  *
19
- * By default `TOp` is set to _extends_ which ensures that those values in the list which
20
- * _extend_ `TValue` are retained but the remaining filtered out.
21
- *
22
- * ```ts
23
- * type T = [1,"foo",3];
24
- * // [1,3]
25
- * type T2 = Filter<T, string>;
26
- * ```
27
- * - `TComparator` can be single value or a Tuple of values
28
- * - in the case of a Tuple of values being found in `TComparator`, an "OR" operation
29
- * will be used ... meaning that the elements in `TList` will be kept if an element
30
- * extends _any_ of the `TFilter` entries
31
- * - any non-container based value in `TList` will be discarded
32
- *
33
19
  * **Related:** `RetainByProp`, `Filter`, `RetainFromList`, `RemoveFromList`, `FilterProps`
34
20
  */
35
- export type FilterByProp<TList extends readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation = "extends"> = IsDotPath<TProp> extends false ? Throw<"invalid-dot-path", `the property value TProp must be a valid dotpath but "${TProp}" is not valid!`> : TList extends readonly unknown[] ? IfNever<TComparator, RemoveNever<TList>, If<IsArray<TComparator>, Process<TList, TupleToUnion<TComparator>, TProp, TOp>, Process<TList, TComparator, TProp, TOp>>> : never;
21
+ export type FilterByProp<TList extends readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation = "extends"> = IsDotPath<TProp> extends false ? Throw<"invalid-dot-path", `the property value TProp must be a valid dotpath but "${TProp}" is not valid!`> : TList extends readonly unknown[] ? IfNever<TComparator, RemoveNever<TList>, TComparator extends any[] ? Process<TList, TComparator[number], TProp, TOp> : Process<TList, TComparator, TProp, TOp>> : never;
36
22
  export {};
37
23
  //# sourceMappingURL=FilterByProp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterByProp.d.ts","sourceRoot":"","sources":["../../../src/types/lists/FilterByProp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,OAAO,EACP,EAAE,EACF,YAAY,EACZ,WAAW,EACX,SAAS,EACT,KAAK,EACL,GAAG,EACJ,iBAAwB;AAGzB;;GAEG;AACH,KAAK,YAAY,CACf,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,EAC/B,MAAM,SAAS,OAAO,EAAE,GAAG,EAAE,IAC3B,KAAK,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACzC;IAAC,OAAO,CACN,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAChB,GAAG,EACH,WAAW,CACZ;CAAC,SAAS,CAAC,IAAI,CAAC,GACf,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GACnD,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAChE,MAAM,CAAC;AAGX,KAAK,OAAO,CACV,KAAK,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAC5C,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,IAC7B,KAAK,SAAS,OAAO,EAAE,GACzB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,GAE5C,KAAK,SAAS,SAAS,OAAO,EAAE,GAC5B,QAAQ,CACN,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAClD,GACD,KAAK,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,GAAG,SAAS,IACzC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,GAChC,KAAK,CAAC,kBAAkB,EAAE,yDAAyD,KAAK,iBAAiB,CAAC,GAE1G,KAAK,SAAS,SAAS,OAAO,EAAE,GAChC,OAAO,CACL,WAAW,EACX,WAAW,CAAC,KAAK,CAAC,EAClB,EAAE,CACA,OAAO,CAAC,WAAW,CAAC,EACpB,OAAO,CACL,KAAK,EACL,YAAY,CAAC,WAAW,CAAC,EACzB,KAAK,EACL,GAAG,CACJ,EACD,OAAO,CACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,GAAG,CACJ,CACF,CACF,GACD,KAAK,CAAC"}
1
+ {"version":3,"file":"FilterByProp.d.ts","sourceRoot":"","sources":["../../../src/types/lists/FilterByProp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,WAAW,EACX,SAAS,EACT,KAAK,EACL,GAAG,EACJ,iBAAwB;AAGzB;;GAEG;AACH,KAAK,YAAY,CACf,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,EAC/B,MAAM,SAAS,OAAO,EAAE,GAAG,EAAE,IAC3B,KAAK,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACzC;IACE,OAAO,CACL,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAChB,GAAG,EACH,WAAW,CACZ;CACF,SAAS,CAAC,IAAI,CAAC,GACd,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GACnD,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAChE,MAAM,CAAC;AAIX,KAAK,OAAO,CACV,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,IAC5B,KAAK,SAAS,OAAO,EAAE,GAC1B,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,GAE5C,KAAK,SAAS,SAAS,OAAO,EAAE,GAC5B,QAAQ,CACN,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAClD,GACD,KAAK,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,WAAW,EACX,KAAK,SAAS,MAAM,EACpB,GAAG,SAAS,mBAAmB,GAAG,SAAS,IACzC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,GAChC,KAAK,CAAC,kBAAkB,EAAE,yDAAyD,KAAK,iBAAiB,CAAC,GAE1G,KAAK,SAAS,SAAS,OAAO,EAAE,GAChC,OAAO,CACL,WAAW,EACX,WAAW,CAAC,KAAK,CAAC,EAClB,WAAW,SAAS,GAAG,EAAE,GACrB,OAAO,CACL,KAAK,EACL,WAAW,CAAC,MAAM,CAAC,EACnB,KAAK,EACL,GAAG,CACJ,GACD,OAAO,CACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,GAAG,CACJ,CACJ,GACH,KAAK,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { IsGreaterThan } from "../boolean-logic";
2
+ import { If } from "../boolean-logic/branching/If";
3
+ import { StrLen } from "../string-literals";
4
+ import { AfterFirst } from "./AfterFirst";
5
+ import { First } from "./First";
6
+ 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>;
7
+ /**
8
+ * **MaxLength**`<T>`
9
+ *
10
+ * Utility which reduces a tuple of strings to only the
11
+ * string which is longest.
12
+ */
13
+ export type MaxLength<T> = T extends readonly string[] ? Reduce<{
14
+ [K in keyof T]: T[K] extends string ? [T[K], StrLen<T[K]>] : never;
15
+ }> : never;
16
+ export {};
17
+ //# sourceMappingURL=MaxLength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaxLength.d.ts","sourceRoot":"","sources":["../../../src/types/lists/MaxLength.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,KAAK,MAAM,CACX,CAAC,SAAS,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,EACvC,IAAI,SAAS,MAAM,GAAG,CAAC,EACvB,IAAI,SAAS,MAAM,GAAG,EAAE,IACpB,EAAE,SAAS,CAAC,GACd,IAAI,GACJ,MAAM,CACJ,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,GACjD,EAAE,CACA,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EACxB,GAAG,EACH,IAAI,CACL,GACD,IAAI,EACN,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,GACnE,EAAE,CACA,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EACxB,GAAG,EACH,IAAI,CACL,GACD,IAAI,CACP,CAAA;AAEH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACvB,CAAC,SAAS,SAAS,MAAM,EAAE,GACzB,MAAM,CAAC;KACN,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpB,KAAK;CACR,CAAC,GACF,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
1
+ import { Container } from "../base-types";
2
+ import { As, IsStringLiteral } from "../boolean-logic";
3
+ import { IsEqual } from "../boolean-logic/operators/IsEqual";
4
+ import { Get } from "../dictionary/Get";
5
+ import { AsNumericArray } from "./AsNumericArray";
6
+ import { RetainByProp } from "./RetainByProp";
7
+ import { Reverse } from "./Reverse";
8
+ type Iterator<N, iterator extends number[] = []> = iterator['length'] extends N ? iterator : Iterator<N, [any, ...iterator]>;
9
+ type Drop1<xs extends any[]> = xs extends [any, ...infer tail] ? tail : [];
10
+ type LessThanOrEqual<a extends number[], b extends number[]> = [
11
+ a,
12
+ b
13
+ ] extends [[], [any, ...any]] ? true : [a, b] extends [[any, ...any], []] ? false : [a, b] extends [[], []] ? true : LessThanOrEqual<Drop1<a>, Drop1<b>>;
14
+ type GreaterThan<a extends number[], b extends number[]> = [
15
+ a,
16
+ b
17
+ ] extends [[], [any, ...any]] ? false : [a, b] extends [[any, ...any], []] ? true : [a, b] extends [[], []] ? false : GreaterThan<Drop1<a>, Drop1<b>>;
18
+ type FilterLessThanOrEqual<TVal, TValues extends number[], TOut extends number[] = []> = TValues extends [infer head, ...infer tail extends number[]] ? LessThanOrEqual<Iterator<TVal>, Iterator<head>> extends true ? [...TOut, head, ...FilterLessThanOrEqual<TVal, tail, TOut>] : [...TOut, ...FilterLessThanOrEqual<TVal, tail, TOut>] : [];
19
+ type FilterGreaterThan<TVal, TValues extends number[], TOut extends number[] = []> = TValues extends [infer head, ...infer tail extends number[]] ? GreaterThan<Iterator<TVal>, Iterator<head>> extends true ? [...TOut, head, ...FilterGreaterThan<TVal, tail, TOut>] : [...TOut, ...FilterGreaterThan<TVal, tail, TOut>] : [];
20
+ /**
21
+ * Local Sort for values at root (aka, not offset)
22
+ */
23
+ type _Sort<TValues extends readonly number[], TReverse extends boolean> = TValues extends [infer head, ...infer tail extends number[]] ? TReverse extends true ? [
24
+ ..._Sort<FilterLessThanOrEqual<head, tail>, TReverse>,
25
+ head,
26
+ ..._Sort<FilterGreaterThan<head, tail>, TReverse>
27
+ ] : [
28
+ ..._Sort<FilterGreaterThan<head, tail>, TReverse>,
29
+ head,
30
+ ..._Sort<FilterLessThanOrEqual<head, tail>, TReverse>
31
+ ] : [];
32
+ type _SortOffset<TContainers extends readonly Container[], TOffset extends string> = TContainers extends [infer head extends Container, ...infer rest extends Container[]] ? [
33
+ ..._SortOffset<As<RetainByProp<rest, Get<head, TOffset>, TOffset, "lessThanOrEqual">, Container[]>, TOffset>,
34
+ head,
35
+ ..._SortOffset<As<RetainByProp<rest, Get<head, TOffset>, TOffset, "greaterThan">, Container[]>, TOffset>
36
+ ] : [];
37
+ export type NumericSupportOptions<TOrder extends "ASC" | "DESC" | undefined = "ASC" | "DESC" | undefined, TOffset extends string | undefined = string | undefined> = {
38
+ /**
39
+ * by default this is set to sort by _ascending_ order but this can be
40
+ * reversed by changing order to `DESC`.
41
+ */
42
+ order?: TOrder;
43
+ /**
44
+ * by default, the sorting will expect the numeric value to exist
45
+ * as the base type, however, if you are using some sort of "container"
46
+ * object you may prefer to _offset_
47
+ */
48
+ offset?: TOffset;
49
+ };
50
+ /**
51
+ * **NumericSort**`<TValues, [TOpt]>`
52
+ *
53
+ * Sorts the values in a tuple numerically.
54
+ *
55
+ * - _values_ can be a `number` or `${number}`
56
+ *
57
+ * Options:
58
+ * - `order`: defaults to `ASC` but can be set to `DESC`
59
+ * - `offset`: if you have _containers_ as values, you can specify an offset to use to look for the numeric value
60
+ */
61
+ export type NumericSort<TValues extends any[], TOpt extends NumericSupportOptions = NumericSupportOptions> = IsStringLiteral<TOpt["offset"]> extends true ? [IsEqual<TOpt["order"], "ASC">] extends [true] ? _SortOffset<TValues, As<TOpt["offset"], string>> : Reverse<_SortOffset<TValues, As<TOpt["offset"], string>>> : _Sort<AsNumericArray<TValues>, [
62
+ IsEqual<TOpt["order"], "DESC">
63
+ ] extends [true] ? true : false>;
64
+ export {};
65
+ //# sourceMappingURL=NumericSort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericSort.d.ts","sourceRoot":"","sources":["../../../src/types/lists/NumericSort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -13,6 +13,7 @@ export * from "./FilterLiterals";
13
13
  export * from "./FilterWideTypes";
14
14
  export * from "./Length";
15
15
  export * from "./Last";
16
+ export * from "./MaxLength";
16
17
  export * from "./IndexOf";
17
18
  export * from "./UnionFromProp";
18
19
  export * from "./Flatten";
@@ -43,4 +44,6 @@ export * from "./ToCSV";
43
44
  export * from "./Push";
44
45
  export * from "./TakeFirst";
45
46
  export * from "./TakeLast";
47
+ export * from "./NumericSort";
48
+ export * from "./AsNumericArray";
46
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/lists/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/lists/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -18,6 +18,7 @@ export * from "./FilterLiterals.js";
18
18
  export * from "./FilterWideTypes.js";
19
19
  export * from "./Length.js";
20
20
  export * from "./Last.js";
21
+ export * from "./MaxLength.js";
21
22
  export * from "./IndexOf.js";
22
23
  export * from "./UnionFromProp.js";
23
24
  export * from "./Flatten.js";
@@ -48,6 +49,8 @@ export * from "./ToCSV.js";
48
49
  export * from "./Push.js";
49
50
  export * from "./TakeFirst.js";
50
51
  export * from "./TakeLast.js";
52
+ export * from "./NumericSort.js";
53
+ export * from "./AsNumericArray.js";
51
54
  // #endregion auto-indexed files
52
55
  // see https://github.com/inocan-group/do-devops/docs/autoindex.md
53
56
  // for more info
@@ -0,0 +1,68 @@
1
+ import { ComparatorOperation, Compare } from "../boolean-logic";
2
+ import { AfterFirst, First, Last } from "../lists";
3
+ import { Increment } from "../numeric-literals";
4
+ import { Chars } from "./Chars";
5
+ type _FindIndexes<TContent extends readonly unknown[], TFind, TOp extends ComparatorOperation = "extends", TIdx extends number = 0, TResults extends readonly number[] = []> = [] extends TContent ? TResults : _FindIndexes<AfterFirst<TContent>, TFind, TOp, Increment<TIdx>, Compare<First<TContent>, TOp, TFind> extends true ? [
6
+ ...TResults,
7
+ TIdx
8
+ ] : TResults>;
9
+ /**
10
+ * **FindIndexes**
11
+ *
12
+ * Utility which returns all _indexes_ in `TContent`
13
+ * where `TFind` is found.
14
+ *
15
+ * - by default, the comparision operation is "extends" but
16
+ * you can change this with `TOp`.
17
+ * - the content (`TContent`) can be either a string or a tuple
18
+ *
19
+ * **Related:** `FindFirstIndex`, `FindLastIndex`, `FindIndexesWithMeta`
20
+ */
21
+ export type FindIndexes<TContent extends string | readonly unknown[], TFind, TOp extends ComparatorOperation = "extends"> = TContent extends string ? _FindIndexes<Chars<TContent>, TFind, TOp> : TContent extends readonly unknown[] ? _FindIndexes<TContent, TFind, TOp> : never;
22
+ /**
23
+ * **FindFirstIndex**`<TContent,TFind,[TOp]>`
24
+ *
25
+ * Utility which returns the _first_ index in the content
26
+ * which matches the
27
+ */
28
+ export type FindFirstIndex<TContent extends string | readonly unknown[], TFind, TOp extends ComparatorOperation = "extends"> = First<FindIndexes<TContent, TFind, TOp>>;
29
+ export type FindLastIndex<TContent extends string | readonly unknown[], TFind, TOp extends ComparatorOperation = "extends"> = Last<FindIndexes<TContent, TFind, TOp>>;
30
+ export type FindIndexMetaOfString = {
31
+ start: number;
32
+ end: number;
33
+ break: unknown;
34
+ };
35
+ export type FindIndexMetaOfTuple = {
36
+ index: number;
37
+ break: unknown;
38
+ };
39
+ type _FindIndexesWithMeta__String<TOriginal extends readonly unknown[], TContent extends readonly unknown[], TFind, TOp extends ComparatorOperation = "extends", TIdx extends number = 0, TResults extends readonly FindIndexMetaOfString[] | [] = []> = [] extends TContent ? TResults : _FindIndexesWithMeta__String<TOriginal, AfterFirst<TContent>, TFind, TOp, Increment<TIdx>, Compare<First<TContent>, TOp, TFind> extends true ? [
40
+ ...TResults,
41
+ {
42
+ start: TIdx;
43
+ end: Increment<TIdx>;
44
+ break: TOriginal[TIdx];
45
+ }
46
+ ] : TResults>;
47
+ type _FindIndexesWithMeta__Tuple<TOriginal extends readonly unknown[], TContent extends readonly unknown[], TFind, TOp extends ComparatorOperation = "extends", TIdx extends number = 0, TResults extends readonly FindIndexMetaOfTuple[] | [] = []> = [] extends TContent ? TResults : _FindIndexesWithMeta__Tuple<TOriginal, AfterFirst<TContent>, TFind, TOp, Increment<TIdx>, Compare<First<TContent>, TOp, TFind> extends true ? [
48
+ ...TResults,
49
+ {
50
+ index: TIdx;
51
+ break: TOriginal[TIdx];
52
+ }
53
+ ] : TResults>;
54
+ /**
55
+ * **FindIndexesWithMeta**
56
+ *
57
+ * Utility which returns all _indexes_ in `TContent`
58
+ * where `TFind` is found.
59
+ *
60
+ * - by default, the comparision operation is "extends" but
61
+ * you can change this with `TOp`.
62
+ * - the content (`TContent`) can be either a string or a tuple
63
+ *
64
+ * **Related:** `FindFirstIndex`, `FindLastIndex`
65
+ */
66
+ export type FindIndexesWithMeta<TContent extends string | readonly unknown[], TFind, TOp extends ComparatorOperation = "extends"> = TContent extends string ? _FindIndexesWithMeta__String<Chars<TContent>, Chars<TContent>, TFind, TOp> : TContent extends readonly unknown[] ? _FindIndexesWithMeta__Tuple<TContent, TContent, TFind, TOp> : never;
67
+ export {};
68
+ //# sourceMappingURL=FindIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindIndex.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/FindIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { PLURAL_EXCEPTIONS } from "../../constants/index";
2
- import { Consonant, IsStringLiteral, EnsureTrailing, StripTrailing } from "../index";
2
+ import { Consonant, IsStringLiteral, EnsureTrailing, StripTrailing, Whitespace, TrimRight, Join, RightWhitespace } from "../index";
3
3
  type ExceptionLookup = typeof PLURAL_EXCEPTIONS;
4
4
  type SingularNoun = "s" | "sh" | "ch" | "x" | "z" | "o";
5
5
  type F = "f" | "fe";
@@ -34,12 +34,16 @@ type PluralizeEnding_F<T extends string> = T extends `${infer HEAD}${F}` ? `${HE
34
34
  * singular nouns should have "es" added to the end
35
35
  */
36
36
  type PluralizeEndingIn_Y<T extends string> = EnsureTrailing<StripTrailing<T, "y">, "ies">;
37
+ type _Pluralize<T extends string> = IsException<T> extends true ? PluralException<T> : T extends EndsIn_IS<T> ? PluralizeEndingIn_IS<T> : T extends EndsInSingularNoun<T> ? PluralizeEndingSingularNoun<T> : T extends EndsIn_F<T> ? PluralizeEnding_F<T> : T extends EndsIn_Y<T> ? PluralizeEndingIn_Y<T> : `${T}s`;
37
38
  /**
38
39
  * **Pluralize**`<T>`
39
40
  *
40
41
  * Pluralizes the word `T`, using _language rules_ on pluralization for English as well as
41
42
  * leveraging many known exceptions to the linguistic rules.
42
43
  */
43
- export type Pluralize<T extends string> = IsStringLiteral<T> extends true ? IsException<T> extends true ? PluralException<T> : T extends EndsIn_IS<T> ? PluralizeEndingIn_IS<T> : T extends EndsInSingularNoun<T> ? PluralizeEndingSingularNoun<T> : T extends EndsIn_F<T> ? PluralizeEnding_F<T> : T extends EndsIn_Y<T> ? PluralizeEndingIn_Y<T> : `${T}s` : string;
44
+ export type Pluralize<T extends string> = IsStringLiteral<T> extends true ? T extends `${string}${Whitespace}` ? Join<[
45
+ _Pluralize<TrimRight<T>>,
46
+ RightWhitespace<T>
47
+ ]> : _Pluralize<T> : string;
44
48
  export {};
45
49
  //# sourceMappingURL=Pluralize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pluralize.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/Pluralize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,8BAA4B;AACxD,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACd,iBAAwB;AAEzB,KAAK,eAAe,GAAG,OAAO,iBAAiB,CAAC;AAEhD,KAAK,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxD,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACpB,KAAK,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC;AAEzB,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpF;;;GAGG;AACH,KAAK,eAAe,CAClB,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,MAAM,eAAe,GAC/B,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CAAC;AAEV,mDAAmD;AACnD,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvE,yDAAyD;AACzD,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,YAAY,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAE7F,0DAA0D;AAC1D,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,uEAAuE;AACvE,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,KAAK,oBAAoB,CACvB,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC;AAEpD;;GAEG;AACH,KAAK,2BAA2B,CAC9B,CAAC,SAAS,MAAM,IACd,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,KAAK,iBAAiB,CACpB,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC;AAErD;;GAEG;AACH,KAAK,mBAAmB,CACtB,CAAC,SAAS,MAAM,IACd,cAAc,CAAC,aAAa,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAGhD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,MAAM,IACd,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,eAAe,CAAC,CAAC,CAAC,GAClB,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACpB,oBAAoB,CAAC,CAAC,CAAC,GACvB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAC7B,2BAA2B,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GACnB,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GACnB,mBAAmB,CAAC,CAAC,CAAC,GACtB,GAAG,CAAC,GAAG,GACjB,MAAM,CAAC"}
1
+ {"version":3,"file":"Pluralize.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/Pluralize.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,30 @@
1
- import { IfAllLiteral } from "../index";
1
+ import { If, IfAllLiteral, IsNever, IsTrue, IsUnion, MaxLength, UnionToTuple } from "../index";
2
+ type _RetainAfter<TStr extends string, TBreak extends string, TInclude extends boolean = false> = IfAllLiteral<[
3
+ TStr,
4
+ TBreak
5
+ ], TBreak extends any ? TStr extends `${string}${TBreak}${infer Rest}` ? If<IsTrue<TInclude>, `${TBreak}${Rest}`, Rest> : never : never, string>;
2
6
  /**
3
- * **RetainAfter**`<TStr, TBreak>`
7
+ * **RetainAfter**`<TStr, TBreak, [TInclude]>`
8
+ *
9
+ * Receives a string `TStr` and _retains_ characters after
10
+ * the first occurrence of `TBreak` is found.
4
11
  *
5
- * Receives a string `TStr` and truncates all characters in
6
- * the first occurrence of `TBreak` and all remaining chars.
12
+ * By default the first `TBreak` found will _not_ be included
13
+ * in the returned string but you can set `TInclude` to true
14
+ * to reverse this behavior.
7
15
  *
8
16
  * ### Example
9
17
  * ```ts
10
- * // "world"
11
- * type T = RetainAfter<"hello world", " ">;
18
+ * // "blue green"
19
+ * type T = RetainAfter<"red blue green", " ">;
20
+ * // " blue green"
21
+ * type T2 = RetainAfter<"red blue green", " ", true>;
12
22
  * ```
13
23
  */
14
- export type RetainAfter<TStr extends string, TBreak extends string> = IfAllLiteral<[
24
+ export 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<_RetainAfter<TStr, TBreak, TInclude>>> : _RetainAfter<TStr, TBreak, TInclude>;
25
+ export type RetainAfterLast<TStr extends string, TBreak extends string, TInclude extends boolean = false> = IfAllLiteral<[
15
26
  TStr,
16
27
  TBreak
17
- ], TStr extends `${string}${TBreak}${infer REST}` ? `${REST}` : TStr, string>;
28
+ ], TStr extends `${string}${infer Break extends TBreak}${infer REST}` ? If<IsTrue<TInclude>, `${Break}${REST}`, `${REST}`> : TStr, string>;
29
+ export {};
18
30
  //# sourceMappingURL=RetainAfter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RetainAfter.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/RetainAfter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAwB;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,IACnB,YAAY,CACd;IAAC,IAAI;IAAE,MAAM;CAAC,EACd,IAAI,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE,GAC1C,GAAG,IAAI,EAAE,GACT,IAAI,EACR,MAAM,CACP,CAAA"}
1
+ {"version":3,"file":"RetainAfter.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/RetainAfter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EACF,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACb,iBAAwB;AAEzB,KAAK,YAAY,CACf,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B,YAAY,CAChB;IAAC,IAAI;IAAE,MAAM;CAAC,EACd,MAAM,SAAS,GAAG,GAChB,IAAI,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE,GAC5C,EAAE,CACA,MAAM,CAAC,QAAQ,CAAC,EAChB,GAAG,MAAM,GAAG,IAAI,EAAE,EAClB,IAAI,CACL,GACD,KAAK,GACP,KAAK,EACP,MAAM,CACL,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B,OAAO,CAAC,YAAY,CAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,GAC1D,EAAE,GACF,OAAO,CAAC,YAAY,CAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,GACxD,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,GAC3D,YAAY,CAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;AAGrC,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B,YAAY,CACd;IAAC,IAAI;IAAE,MAAM;CAAC,EACd,IAAI,SAAS,GAAG,MAAM,GAAG,MAAM,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,EAAE,GAC9D,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,GAClD,IAAI,EACR,MAAM,CACP,CAAA"}
@@ -11,6 +11,7 @@ export * from "./EmptyString";
11
11
  export * from "./EmptyStringOr";
12
12
  export * from "./EnsureTrailing";
13
13
  export * from "./FirstChar";
14
+ export * from "./FindIndex";
14
15
  export * from "./LastChar";
15
16
  export * from "./AfterFirstChar";
16
17
  export * from "./IsCapitalized";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/index.ts"],"names":[],"mappings":"AAMA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/string-literals/index.ts"],"names":[],"mappings":"AAMA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -16,6 +16,7 @@ export * from "./EmptyString.js";
16
16
  export * from "./EmptyStringOr.js";
17
17
  export * from "./EnsureTrailing.js";
18
18
  export * from "./FirstChar.js";
19
+ export * from "./FindIndex.js";
19
20
  export * from "./LastChar.js";
20
21
  export * from "./AfterFirstChar.js";
21
22
  export * from "./IsCapitalized.js";