inferred-types 0.43.6 → 0.45.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 (177) hide show
  1. package/dist/constants/NetworkConstants.d.ts +29 -0
  2. package/dist/constants/NetworkConstants.d.ts.map +1 -0
  3. package/dist/constants/NetworkConstants.js +83 -0
  4. package/dist/constants/RepoConstants.d.ts +31 -0
  5. package/dist/constants/RepoConstants.d.ts.map +1 -0
  6. package/dist/constants/RepoConstants.js +48 -0
  7. package/dist/constants/index.d.ts +2 -1
  8. package/dist/constants/index.d.ts.map +1 -1
  9. package/dist/constants/index.js +2 -1
  10. package/dist/constants/tsconfig.tsbuildinfo +1 -1
  11. package/dist/inferred-types/index.cjs +646 -312
  12. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  13. package/dist/runtime/dictionary/valuesOf.d.ts +1 -1
  14. package/dist/runtime/dictionary/valuesOf.d.ts.map +1 -1
  15. package/dist/runtime/dictionary/withKeys.d.ts +1 -1
  16. package/dist/runtime/index.d.ts +1 -0
  17. package/dist/runtime/index.d.ts.map +1 -1
  18. package/dist/runtime/index.js +1 -0
  19. package/dist/runtime/literals/index.d.ts +1 -0
  20. package/dist/runtime/literals/index.d.ts.map +1 -1
  21. package/dist/runtime/literals/index.js +1 -0
  22. package/dist/runtime/literals/takeNumericCharacters.d.ts +9 -0
  23. package/dist/runtime/literals/takeNumericCharacters.d.ts.map +1 -0
  24. package/dist/runtime/literals/takeNumericCharacters.js +12 -0
  25. package/dist/runtime/meta/index.d.ts +3 -0
  26. package/dist/runtime/meta/index.d.ts.map +1 -0
  27. package/dist/runtime/meta/index.js +2 -0
  28. package/dist/runtime/meta/urlMeta.d.ts +52 -0
  29. package/dist/runtime/meta/urlMeta.d.ts.map +1 -0
  30. package/dist/runtime/meta/urlMeta.js +57 -0
  31. package/dist/runtime/meta/youtube-meta.d.ts +31 -0
  32. package/dist/runtime/meta/youtube-meta.d.ts.map +1 -0
  33. package/dist/runtime/meta/youtube-meta.js +19 -0
  34. package/dist/runtime/runtime-types/parse.d.ts +1 -1
  35. package/dist/runtime/runtime-types/shape-helpers/getTokenData.d.ts +1 -1
  36. package/dist/runtime/runtime-types/shape-helpers/getTokenName.d.ts +1 -1
  37. package/dist/runtime/runtime-types/shape-helpers/singletons.d.ts.map +1 -1
  38. package/dist/runtime/runtime-types/shape-helpers/singletons.js +1 -1
  39. package/dist/runtime/runtime-types/shape.d.ts +1 -1
  40. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  41. package/dist/runtime/type-conversion/asChars.d.ts +8 -0
  42. package/dist/runtime/type-conversion/asChars.d.ts.map +1 -0
  43. package/dist/runtime/type-conversion/asChars.js +8 -0
  44. package/dist/runtime/type-conversion/index.d.ts +2 -0
  45. package/dist/runtime/type-conversion/index.d.ts.map +1 -1
  46. package/dist/runtime/type-conversion/index.js +2 -0
  47. package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts +14 -0
  48. package/dist/runtime/type-conversion/ip6GroupExpansion.d.ts.map +1 -0
  49. package/dist/runtime/type-conversion/ip6GroupExpansion.js +15 -0
  50. package/dist/runtime/type-guards/index.d.ts +4 -0
  51. package/dist/runtime/type-guards/index.d.ts.map +1 -1
  52. package/dist/runtime/type-guards/index.js +4 -0
  53. package/dist/runtime/type-guards/isHexadecimal.d.ts +8 -0
  54. package/dist/runtime/type-guards/isHexadecimal.d.ts.map +1 -0
  55. package/dist/runtime/type-guards/isHexadecimal.js +13 -0
  56. package/dist/runtime/type-guards/isUrl.d.ts +20 -4
  57. package/dist/runtime/type-guards/isUrl.d.ts.map +1 -1
  58. package/dist/runtime/type-guards/isUrl.js +29 -9
  59. package/dist/runtime/type-guards/network-tg.d.ts +48 -0
  60. package/dist/runtime/type-guards/network-tg.d.ts.map +1 -0
  61. package/dist/runtime/type-guards/network-tg.js +85 -0
  62. package/dist/runtime/type-guards/repos.d.ts +45 -0
  63. package/dist/runtime/type-guards/repos.d.ts.map +1 -0
  64. package/dist/runtime/type-guards/repos.js +77 -0
  65. package/dist/runtime/type-guards/youtube.d.ts +42 -0
  66. package/dist/runtime/type-guards/youtube.d.ts.map +1 -0
  67. package/dist/runtime/type-guards/youtube.js +74 -0
  68. package/dist/types/{numeric-literals/ValueCallback.d.ts → api/api.d.ts} +1 -1
  69. package/dist/types/api/api.d.ts.map +1 -0
  70. package/dist/types/api/index.d.ts +2 -0
  71. package/dist/types/api/index.d.ts.map +1 -0
  72. package/dist/types/api/index.js +1 -0
  73. package/dist/types/boolean-logic/branching/OnPass.d.ts +29 -0
  74. package/dist/types/boolean-logic/branching/OnPass.d.ts.map +1 -0
  75. package/dist/types/boolean-logic/branching/index.d.ts +1 -0
  76. package/dist/types/boolean-logic/branching/index.d.ts.map +1 -1
  77. package/dist/types/boolean-logic/branching/index.js +1 -0
  78. package/dist/types/boolean-logic/combinators/And.d.ts +1 -1
  79. package/dist/types/boolean-logic/combinators/And.d.ts.map +1 -1
  80. package/dist/types/boolean-logic/combinators/Not.d.ts +5 -6
  81. package/dist/types/boolean-logic/combinators/Not.d.ts.map +1 -1
  82. package/dist/types/boolean-logic/operators/Extends.d.ts +2 -1
  83. package/dist/types/boolean-logic/operators/Extends.d.ts.map +1 -1
  84. package/dist/types/boolean-logic/operators/IsBoolean.d.ts +2 -1
  85. package/dist/types/boolean-logic/operators/IsBoolean.d.ts.map +1 -1
  86. package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts +9 -0
  87. package/dist/types/boolean-logic/operators/IsCssHexadecimal.d.ts.map +1 -0
  88. package/dist/types/boolean-logic/operators/IsCssHexadecimal.js +1 -0
  89. package/dist/types/boolean-logic/operators/IsEqual.d.ts +7 -1
  90. package/dist/types/boolean-logic/operators/IsEqual.d.ts.map +1 -1
  91. package/dist/types/boolean-logic/operators/IsLessThan.d.ts +13 -0
  92. package/dist/types/boolean-logic/operators/IsLessThan.d.ts.map +1 -0
  93. package/dist/types/boolean-logic/operators/IsLessThan.js +1 -0
  94. package/dist/types/boolean-logic/operators/IsNever.d.ts +2 -1
  95. package/dist/types/boolean-logic/operators/IsNever.d.ts.map +1 -1
  96. package/dist/types/boolean-logic/operators/IsNumber.d.ts +2 -2
  97. package/dist/types/boolean-logic/operators/IsNumber.d.ts.map +1 -1
  98. package/dist/types/boolean-logic/operators/IsString.d.ts +2 -2
  99. package/dist/types/boolean-logic/operators/IsString.d.ts.map +1 -1
  100. package/dist/types/boolean-logic/operators/IsUrl.d.ts +35 -0
  101. package/dist/types/boolean-logic/operators/IsUrl.d.ts.map +1 -0
  102. package/dist/types/boolean-logic/operators/IsUrl.js +1 -0
  103. package/dist/types/boolean-logic/operators/Network-operators.d.ts +71 -0
  104. package/dist/types/boolean-logic/operators/Network-operators.d.ts.map +1 -0
  105. package/dist/types/boolean-logic/operators/Network-operators.js +1 -0
  106. package/dist/types/boolean-logic/operators/YouTube-operators.d.ts +32 -0
  107. package/dist/types/boolean-logic/operators/YouTube-operators.d.ts.map +1 -0
  108. package/dist/types/boolean-logic/operators/YouTube-operators.js +1 -0
  109. package/dist/types/boolean-logic/operators/index.d.ts +4 -1
  110. package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
  111. package/dist/types/boolean-logic/operators/index.js +4 -1
  112. package/dist/types/index.d.ts +1 -0
  113. package/dist/types/index.d.ts.map +1 -1
  114. package/dist/types/index.js +1 -0
  115. package/dist/types/literals/ExpandRecursively.d.ts +7 -1
  116. package/dist/types/literals/ExpandRecursively.d.ts.map +1 -1
  117. package/dist/types/literals/Shape.d.ts +1 -1
  118. package/dist/types/literals/Shape.d.ts.map +1 -1
  119. package/dist/types/numeric-literals/index.d.ts +0 -1
  120. package/dist/types/numeric-literals/index.d.ts.map +1 -1
  121. package/dist/types/numeric-literals/index.js +0 -1
  122. package/dist/types/string-literals/RetainUntil.d.ts +33 -0
  123. package/dist/types/string-literals/RetainUntil.d.ts.map +1 -0
  124. package/dist/types/string-literals/RetainUntil.js +1 -0
  125. package/dist/types/string-literals/Split.d.ts +3 -3
  126. package/dist/types/string-literals/Split.d.ts.map +1 -1
  127. package/dist/types/string-literals/StripAfter.d.ts +2 -2
  128. package/dist/types/string-literals/StripAfter.d.ts.map +1 -1
  129. package/dist/types/string-literals/StripBefore.d.ts +2 -2
  130. package/dist/types/string-literals/StripBefore.d.ts.map +1 -1
  131. package/dist/types/string-literals/StripUntil.d.ts +6 -0
  132. package/dist/types/string-literals/StripUntil.d.ts.map +1 -0
  133. package/dist/types/string-literals/StripUntil.js +1 -0
  134. package/dist/types/string-literals/character-sets/DomainName.d.ts +26 -18
  135. package/dist/types/string-literals/character-sets/DomainName.d.ts.map +1 -1
  136. package/dist/types/string-literals/character-sets/InlineSvg.d.ts +2 -2
  137. package/dist/types/string-literals/character-sets/InlineSvg.d.ts.map +1 -1
  138. package/dist/types/string-literals/character-sets/IpAddress.d.ts +28 -4
  139. package/dist/types/string-literals/character-sets/IpAddress.d.ts.map +1 -1
  140. package/dist/types/string-literals/character-sets/Optional.d.ts +14 -0
  141. package/dist/types/string-literals/character-sets/Optional.d.ts.map +1 -0
  142. package/dist/types/string-literals/character-sets/Optional.js +1 -0
  143. package/dist/types/string-literals/character-sets/Repos.d.ts +108 -0
  144. package/dist/types/string-literals/character-sets/Repos.d.ts.map +1 -0
  145. package/dist/types/string-literals/character-sets/Repos.js +1 -0
  146. package/dist/types/string-literals/character-sets/Url.d.ts +208 -6
  147. package/dist/types/string-literals/character-sets/Url.d.ts.map +1 -1
  148. package/dist/types/string-literals/character-sets/Url.js +1 -0
  149. package/dist/types/string-literals/character-sets/YouTube.d.ts +127 -0
  150. package/dist/types/string-literals/character-sets/YouTube.d.ts.map +1 -0
  151. package/dist/types/string-literals/character-sets/YouTube.js +1 -0
  152. package/dist/types/string-literals/character-sets/index.d.ts +4 -0
  153. package/dist/types/string-literals/character-sets/index.d.ts.map +1 -1
  154. package/dist/types/string-literals/character-sets/index.js +4 -0
  155. package/dist/types/string-literals/index.d.ts +2 -0
  156. package/dist/types/string-literals/index.d.ts.map +1 -1
  157. package/dist/types/string-literals/index.js +2 -0
  158. package/dist/types/tsconfig.tsbuildinfo +1 -1
  159. package/dist/types/type-conversion/MergeObjects.d.ts.map +1 -1
  160. package/dist/types/type-conversion/RetainChars.d.ts +15 -0
  161. package/dist/types/type-conversion/RetainChars.d.ts.map +1 -0
  162. package/dist/types/type-conversion/RetainChars.js +1 -0
  163. package/dist/types/type-conversion/StripChars.d.ts +18 -0
  164. package/dist/types/type-conversion/StripChars.d.ts.map +1 -0
  165. package/dist/types/type-conversion/StripChars.js +1 -0
  166. package/dist/types/type-conversion/index.d.ts +2 -0
  167. package/dist/types/type-conversion/index.d.ts.map +1 -1
  168. package/dist/types/type-conversion/index.js +2 -0
  169. package/package.json +9 -9
  170. package/dist/constants/TCP_IP.d.ts +0 -11
  171. package/dist/constants/TCP_IP.d.ts.map +0 -1
  172. package/dist/constants/TCP_IP.js +0 -10
  173. package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts +0 -9
  174. package/dist/types/boolean-logic/operators/IsHexadecimal.d.ts.map +0 -1
  175. package/dist/types/numeric-literals/ValueCallback.d.ts.map +0 -1
  176. /package/dist/types/{boolean-logic/operators/IsHexadecimal.js → api/api.js} +0 -0
  177. /package/dist/types/{numeric-literals/ValueCallback.js → boolean-logic/branching/OnPass.js} +0 -0
@@ -0,0 +1,2 @@
1
+ export * from "./api";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./api.js";
@@ -0,0 +1,29 @@
1
+ import { AfterFirst, As, ExpandDictionary, First, Keys, ObjectKey, IsErrorCondition, IsFalse, IsNever } from "../../index";
2
+ import { Constant } from "../../../constants/index";
3
+ export type OnPassRemap<TNever = unknown, TFalse = unknown, TError = unknown> = {
4
+ never: TNever;
5
+ false: TFalse;
6
+ error: TError;
7
+ };
8
+ type Merge<A extends Partial<OnPassRemap>, TKeys extends readonly (ObjectKey & keyof A)[], TConfig extends OnPassRemap = {
9
+ never: never;
10
+ false: false;
11
+ error: Constant<"not-set">;
12
+ }> = [] extends TKeys ? TConfig : Merge<A, AfterFirst<TKeys>, As<ExpandDictionary<Record<First<TKeys>, A[First<TKeys>]> & Omit<TConfig, First<TKeys>>>, OnPassRemap>>;
13
+ type Process<TTest, TPass, TRemap extends OnPassRemap<unknown, unknown, unknown>> = [IsNever<TTest>] extends [true] ? TRemap["never"] : [IsErrorCondition<TTest>] extends [true] ? TRemap["error"] extends Constant<"not-set"> ? TTest : TRemap["error"] : [IsFalse<TTest>] extends [true] ? TRemap["false"] : TPass;
14
+ /**
15
+ * **OnPass**`<TTest, TPass,[TRemap],[TFalse]>`
16
+ *
17
+ * Branching utility which evaluates `TTest` for being
18
+ * `never`, `false`, or an `ErrorCondition` and
19
+ * passes that through when it occurs.
20
+ *
21
+ * In all other cases, the type of `TPass` is proxied through
22
+ * as the type.
23
+ *
24
+ * - the `TRemap` allows you to remap error conditions
25
+ * as well if needed
26
+ */
27
+ export type OnPass<TTest, TPass, TRemap extends Partial<OnPassRemap<unknown, unknown, unknown>> = OnPassRemap<never, false, Constant<"not-set">>> = Process<TTest, TPass, TRemap extends OnPassRemap<never, false, Constant<"not-set">> ? TRemap : Merge<TRemap, Keys<TRemap>>>;
28
+ export {};
29
+ //# sourceMappingURL=OnPass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnPass.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/OnPass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,KAAK,EACL,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,OAAO,EACR,oBAAwB;AACzB,OAAO,EAAE,QAAQ,EAAE,iCAA4B;AAE/C,MAAM,MAAM,WAAW,CACrB,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,IACd;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAA;AAED,KAAK,KAAK,CACR,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,EAC9B,KAAK,SAAS,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,EAC9C,OAAO,SAAS,WAAW,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAAE,IACtF,EAAE,SAAS,KAAK,GAChB,OAAO,GACP,KAAK,CACL,CAAC,EACD,UAAU,CAAC,KAAK,CAAC,EACjB,EAAE,CAAC,gBAAgB,CACjB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GACnC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9B,EAAE,WAAW,CAAC,CAChB,CAAC;AAGJ,KAAK,OAAO,CACV,KAAK,EACL,KAAK,EACL,MAAM,SAAS,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IACnD,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC/B,MAAM,CAAC,OAAO,CAAC,GACf,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACxC,MAAM,CAAC,OAAO,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GACrE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC/B,MAAM,CAAC,OAAO,CAAC,GACf,KAAK,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,MAAM,CAChB,KAAK,EACL,KAAK,EACL,MAAM,SAAS,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAG/G,OAAO,CACL,KAAK,EACL,KAAK,EACL,MAAM,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,GAC3D,MAAM,GACN,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC9B,CAAC"}
@@ -10,4 +10,5 @@ export * from "./Handle";
10
10
  export * from "./Default";
11
11
  export * from "./Iff";
12
12
  export * from "./Fail";
13
+ export * from "./OnPass";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/branching/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
@@ -10,3 +10,4 @@ export * from "./Handle.js";
10
10
  export * from "./Default.js";
11
11
  export * from "./Iff.js";
12
12
  export * from "./Fail.js";
13
+ export * from "./OnPass.js";
@@ -6,6 +6,6 @@ type Process<TConditions extends readonly boolean[], TBooleanSeen extends boolea
6
6
  * Allows an array of conditions which are either ARE a boolean value or a
7
7
  * function which evaluates to a boolean value to be logically AND'd together.
8
8
  */
9
- export type And<TConditions extends readonly (boolean | LogicFunction)[], TEmpty extends boolean = false> = IsEqual<TConditions, []> extends true ? TEmpty : LogicalReturns<TConditions> extends readonly boolean[] ? Process<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never;
9
+ export type And<TConditions, TEmpty extends boolean = false> = TConditions extends readonly (boolean | LogicFunction)[] ? IsEqual<TConditions, []> extends true ? TEmpty : LogicalReturns<TConditions> extends readonly boolean[] ? Process<LogicalReturns<TConditions>, NarrowlyContains<LogicalReturns<TConditions>, boolean>> : never : never;
10
10
  export {};
11
11
  //# sourceMappingURL=And.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"And.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/And.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,oBAAwB;AAEzB,KAAK,OAAO,CACV,WAAW,SAAS,SAAS,OAAO,EAAE,EACtC,YAAY,SAAS,OAAO,IAC1B,EAAE,SAAS,WAAW,GACxB,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAC1C,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClC,KAAK,GACL,OAAO,CACL,UAAU,CAAC,WAAW,CAAC,EACvB,YAAY,CACb,CAAC;AAGN;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CACb,WAAW,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,EACxD,MAAM,SAAS,OAAO,GAAG,KAAK,IAC5B,OAAO,CAAC,WAAW,EAAC,EAAE,CAAC,SAAS,IAAI,GACtC,MAAM,GACN,cAAc,CAAC,WAAW,CAAC,SAAS,SAAS,OAAO,EAAE,GACpD,OAAO,CACL,cAAc,CAAC,WAAW,CAAC,EAC3B,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAC,OAAO,CAAC,CACtD,GACD,KAAK,CAAC"}
1
+ {"version":3,"file":"And.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/And.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,oBAAwB;AAEzB,KAAK,OAAO,CACV,WAAW,SAAS,SAAS,OAAO,EAAE,EACtC,YAAY,SAAS,OAAO,IAC1B,EAAE,SAAS,WAAW,GACxB,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAC1C,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClC,KAAK,GACL,OAAO,CACL,UAAU,CAAC,WAAW,CAAC,EACvB,YAAY,CACb,CAAC;AAGN;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CACb,WAAW,EACX,MAAM,SAAS,OAAO,GAAG,KAAK,IAC5B,WAAW,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,GAE1D,OAAO,CAAC,WAAW,EAAC,EAAE,CAAC,SAAS,IAAI,GACpC,MAAM,GACN,cAAc,CAAC,WAAW,CAAC,SAAS,SAAS,OAAO,EAAE,GACpD,OAAO,CACL,cAAc,CAAC,WAAW,CAAC,EAC3B,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAC,OAAO,CAAC,CACtD,GACD,KAAK,GACP,KAAK,CAAC"}
@@ -1,15 +1,14 @@
1
- import { LogicFunction, IsFalse, IsTrue, IsErrorCondition, AfterFirst, First, IsEqual, IsNever } from "../../index";
2
- 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] ? ReturnType<LogicFunction> : never;
1
+ import { LogicFunction, IsFalse, IsTrue, AfterFirst, First, IsEqual, IsNever, As } from "../../index";
2
+ 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;
3
3
  type NegateTuple<TTuple extends readonly (boolean | LogicFunction)[], TResults extends readonly (boolean | LogicFunction)[] = []> = [] extends TTuple ? IsEqual<TResults, [], false, TResults> : NegateTuple<AfterFirst<TTuple>, [
4
4
  ...TResults,
5
- Negate<First<TTuple>>
5
+ First<TTuple> extends LogicFunction ? Negate<ReturnType<First<TTuple>>> : Negate<First<TTuple>>
6
6
  ]>;
7
- type Process<TVal, TError = never> = IsErrorCondition<TVal> extends true ? TError : [IsNever<TVal>] extends [true] ? never : [TVal] extends [boolean] ? Negate<TVal> : TVal extends readonly (boolean | LogicFunction)[] ? NegateTuple<TVal> : never;
8
7
  /**
9
8
  * **Not**`<T,[TError]>`
10
9
  *
11
10
  * A boolean negation that can work on both a single value or an
12
- * array of values.
11
+ * tuple of values.
13
12
  *
14
13
  * ```ts
15
14
  * // false
@@ -18,6 +17,6 @@ type Process<TVal, TError = never> = IsErrorCondition<TVal> extends true ? TErro
18
17
  * type Multi = Not<[true,false,boolean]>;
19
18
  * ```
20
19
  */
21
- export type Not<TVal, TError = never> = Process<TVal, TError> extends boolean | readonly unknown[] ? Process<TVal, TError> : never;
20
+ export 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;
22
21
  export {};
23
22
  //# sourceMappingURL=Not.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Not.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Not.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACR,oBAAwB;AAIzB,KAAK,MAAM,CACT,IAAI,IACF,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,GAC5B,KAAK,GACL,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GACtB,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,GAAI,IAAI,GAAG,OAAO,GAC9C,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAC5B,UAAU,CAAC,aAAa,CAAC,GACzB,KAAK,CAAC;AAEZ,KAAK,WAAW,CACd,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,EACnD,QAAQ,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,EAAE,IACxD,EAAE,SAAS,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GACtC,WAAW,CACT,UAAU,CAAC,MAAM,CAAC,EAClB;IAAC,GAAG,QAAQ;IAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAAE,CACtC,CAAC;AAEJ,KAAK,OAAO,CACZ,IAAI,EACJ,MAAM,GAAG,KAAK,IACV,gBAAgB,CAAC,IAAI,CAAC,SAAS,IAAI,GACrC,MAAM,GACN,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAC5B,KAAK,GACL,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GACtB,MAAM,CAAC,IAAI,CAAC,GACb,IAAI,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,GAC9C,WAAW,CAAC,IAAI,CAAC,GACjB,KAAK,CAAC;AAEd;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAAG,CACb,IAAI,EACJ,MAAM,GAAG,KAAK,IACZ,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC,SAAS,OAAO,GAAG,SAAS,OAAO,EAAE,GAC3D,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GACrB,KAAK,CAAC"}
1
+ {"version":3,"file":"Not.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/combinators/Not.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,EACH,oBAAwB;AAIzB,KAAK,MAAM,CACT,IAAI,IACF,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,GAC5B,KAAK,GACL,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GACtB,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,GAAI,IAAI,GAAG,OAAO,GAC9C,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAC5B,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GACjC,KAAK,CAAC;AAEZ,KAAK,WAAW,CACd,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,EACnD,QAAQ,SAAS,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,EAAE,IACxD,EAAE,SAAS,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GACtC,WAAW,CACT,UAAU,CAAC,MAAM,CAAC,EAClB;IACE,GAAG,QAAQ;IACT,KAAK,CAAC,MAAM,CAAC,SAAS,aAAa,GAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB,CACF,CAAC;AAIJ;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAAG,CACb,IAAI,EACJ,WAAW,SAAS,OAAO,GAAG,KAAK,IACjC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GACzC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAC9B,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,GACrC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC,GACrD,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC,GACzC,WAAW,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { DoesExtend } from "./DoesExtend";
2
+ import { IsNever } from "./IsNever";
2
3
  /**
3
4
  * **Extends**`<T,U>`
4
5
  *
5
6
  * A boolean operator which checks whether `T` extends `U` and returns
6
7
  * **true** or **false**. This is an _alias_ for `DoesExtend`.
7
8
  */
8
- export type Extends<T, U> = DoesExtend<T, U>;
9
+ export type Extends<T, U> = IsNever<T> extends true ? IsNever<U> extends true ? true : false : DoesExtend<T, U>;
9
10
  //# sourceMappingURL=Extends.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Extends.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/Extends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Extends.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/Extends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAChD,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACrB,IAAI,GACJ,KAAK,GACP,UAAU,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC"}
@@ -1,7 +1,8 @@
1
+ import { WidenUnion, IsUnion } from "../../index";
1
2
  /**
2
3
  * **IsBoolean**
3
4
  *
4
5
  * Boolean type utility which detects literal or wide boolean type.
5
6
  */
6
- export type IsBoolean<T> = [T] extends [boolean] ? true : false;
7
+ export type IsBoolean<T> = [IsUnion<T>] extends [true] ? [WidenUnion<T>] extends [boolean] ? true : [string] extends [WidenUnion<T>] ? boolean : false : [T] extends [boolean] ? true : false;
7
8
  //# sourceMappingURL=IsBoolean.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsBoolean.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsBoolean.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"IsBoolean.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,UAAU,EAAE,OAAO,EAAE,oBAAwB;AACvD;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACpD,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAC/B,IAAI,GACJ,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAC9B,OAAO,GACP,KAAK,GACT,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IsHexadecimal, IsStringLiteral } from "../../index";
2
+ /**
3
+ * **IsHexadecimal**`<T>`
4
+ *
5
+ * Ensures that `T` is a valid hexadecimal and converts to **never**
6
+ * otherwise.
7
+ */
8
+ export type IsCssHexadecimal<T> = T extends string ? IsStringLiteral<T> extends true ? T extends `#${infer Rest}` ? IsHexadecimal<Rest> : false : boolean : false;
9
+ //# sourceMappingURL=IsCssHexadecimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsCssHexadecimal.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsCssHexadecimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAuB;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAChD,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GACxB,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,GACP,OAAO,GACT,KAAK,CAAC"}
@@ -1,7 +1,13 @@
1
1
  /**
2
- * **Equal**`<X,Y>`
2
+ * **IsEqual**`<X,Y>`
3
3
  *
4
4
  * Type utility which tests whether two types -- `X` and `Y` -- are exactly the same type
5
5
  */
6
6
  export type IsEqual<X, Y, TRUE = true, FALSE = false> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? TRUE : FALSE;
7
+ /**
8
+ * **Equals**`<X,Y>`
9
+ *
10
+ * Type utility which tests whether two types -- `X` and `Y` -- are exactly the same type
11
+ */
12
+ export type Equals<X, Y, TTrue = true, TFalse = false> = IsEqual<X, Y, TTrue, TFalse>;
7
13
  //# sourceMappingURL=IsEqual.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsEqual.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsEqual.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,CACjB,CAAC,EACD,CAAC,EACD,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,KAAK,IACX,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GACnE,IAAI,GACJ,KAAK,CAAC"}
1
+ {"version":3,"file":"IsEqual.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsEqual.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,MAAM,OAAO,CACjB,CAAC,EACD,CAAC,EACD,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,KAAK,IACX,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GACnE,IAAI,GACJ,KAAK,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,KAAK,GAAG,IAAI,EAAC,MAAM,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAC,CAAC,EAAC,KAAK,EAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { AsNumber } from "../../index";
2
+ type Calc<A extends number, B extends number, Count extends 1[] = []> = Count["length"] extends B ? false : Count["length"] extends A ? true : Calc<A, B, [...Count, 1]>;
3
+ /**
4
+ * **IsLessThan**`<A,B>`
5
+ *
6
+ * Boolean type operator which determines whether `A`
7
+ * is _less than_ `B`.
8
+ *
9
+ * **Note:** does not take negative numbers into account
10
+ */
11
+ export type IsLessThan<A extends number | `${number}`, B extends number | `${number}`> = Calc<AsNumber<A>, AsNumber<B>>;
12
+ export {};
13
+ //# sourceMappingURL=IsLessThan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsLessThan.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsLessThan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,oBAAwB;AAE3C,KAAK,IAAI,CACP,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,CAAC,EAAE,GAAG,EAAE,IAExB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,KAAK,GACL,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvB,IAAI,GACJ,IAAI,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,EAAE,EAC9B,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,EAAE,IAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,8 @@
1
+ import { As } from "../narrowing/As";
1
2
  /**
2
3
  * **IsNever**`<T>`
3
4
  *
4
5
  * Boolean type utility which check whether `T` is of type _never_.
5
6
  */
6
- export type IsNever<T> = [T] extends never[] ? true : false;
7
+ export type IsNever<T> = As<[T] extends [never] ? true : false, boolean>;
7
8
  //# sourceMappingURL=IsNever.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsNever.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsNever.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"IsNever.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsNever.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
- import { IsUnion } from "./IsUnion";
1
+ import { IsUnion, WidenUnion } from "../../index";
2
2
  /**
3
3
  * **IsNumber**`<T>`
4
4
  *
5
5
  * Boolean type utility testing whether `T` is a numeric type.
6
6
  */
7
- export type IsNumber<T> = IsUnion<T> extends true ? [number] extends [T] ? boolean : false : [T] extends [number] ? true : false;
7
+ export type IsNumber<T> = [IsUnion<T>] extends [true] ? WidenUnion<T> extends number ? true : number extends WidenUnion<T> ? boolean : false : [T] extends [number] ? true : false;
8
8
  //# sourceMappingURL=IsNumber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsNumber.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/C,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAClB,OAAO,GACP,KAAK,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"IsNumber.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,oBAAwB;AAEtD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACnD,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,GAC1B,IAAI,GACJ,MAAM,SAAS,UAAU,CAAC,CAAC,CAAC,GAC1B,OAAO,GACP,KAAK,GACT,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
@@ -1,9 +1,9 @@
1
- import { IsUnion } from "./IsUnion";
1
+ import { WidenUnion, IsUnion } from "../../index";
2
2
  /**
3
3
  * **IsString**
4
4
  *
5
5
  * Type utility which returns true/false based on whether `T` is a
6
6
  * string (wide or narrow).
7
7
  */
8
- export type IsString<T> = IsUnion<T> extends true ? [string] extends [T] ? boolean : false : [T] extends [string] ? true : false;
8
+ export type IsString<T> = [IsUnion<T>] extends [true] ? WidenUnion<T> extends string ? true : string extends WidenUnion<T> ? boolean : false : [T] extends [string] ? true : false;
9
9
  //# sourceMappingURL=IsString.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsString.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/C,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAClB,OAAO,GACP,KAAK,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"IsString.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,UAAU,EAAE,OAAO,EAAE,oBAAwB;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACnD,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,GAC1B,IAAI,GACJ,MAAM,SAAS,UAAU,CAAC,CAAC,CAAC,GAC1B,OAAO,GACP,KAAK,GACT,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { And, As, AsString, Equals, Extends, GetUrlPath, GetUrlSource, IsNever, IsString, IsStringLiteral, NetworkProtocol, NetworkProtocolPrefix, Not, Or } from "../../index";
2
+ export type HasUrlPath<T extends string> = And<[
3
+ IsString<T>,
4
+ Not<IsNever<GetUrlPath<T>>>,
5
+ Or<[
6
+ Extends<GetUrlPath<T>, "">,
7
+ Extends<GetUrlPath<T>, `/${string}`>,
8
+ Equals<GetUrlPath<T>, string>
9
+ ]>
10
+ ]>;
11
+ export type HasUrlSource<T> = Not<IsNever<GetUrlSource<AsString<T>>>>;
12
+ export type HasNetworkProtocolReference<TTest extends string, TProto extends NetworkProtocol> = Extends<TTest, `${NetworkProtocolPrefix<TProto>}${string}`>;
13
+ /**
14
+ * **IsUrl**`<TTest,[TProtocol]>`
15
+ *
16
+ * Boolean operator which tests whether the passed in `TTest`
17
+ * is a valid URL.
18
+ *
19
+ * **Note:** by default it will only check the `https` protocol
20
+ * but you can choose any set `TProtocol` with anything from `NetworkProtocol`
21
+ * if you like.
22
+ *
23
+ * **Note:** you can add **optional** as a part of the protocol union
24
+ * type and it will then accept the protocols you've selected or a URL
25
+ * without a protocol.
26
+ */
27
+ export type IsUrl<TTest, TProtocol extends NetworkProtocol | "optional" = "https"> = IsString<TTest> extends true ? IsStringLiteral<TTest> extends true ? And<[
28
+ Or<[
29
+ HasNetworkProtocolReference<AsString<TTest>, As<TProtocol, NetworkProtocol>>,
30
+ Extends<"optional", TProtocol>
31
+ ]>,
32
+ HasUrlPath<AsString<TTest>>,
33
+ HasUrlSource<AsString<TTest>>
34
+ ]> : boolean : false;
35
+ //# sourceMappingURL=IsUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsUrl.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/IsUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,EAAE,EACF,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,GAAG,EACH,EAAE,EACH,oBAAwB;AAGzB,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC;IAC7C,QAAQ,CAAC,CAAC,CAAC;IACX,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,EAAE,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,2BAA2B,CACrC,KAAK,SAAS,MAAM,EACpB,MAAM,SAAS,eAAe,IAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,KAAK,CACf,KAAK,EACL,SAAS,SAAS,eAAe,GAAG,UAAU,GAAG,OAAO,IACtD,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,GAC9B,eAAe,CAAC,KAAK,CAAC,SAAS,IAAI,GACjC,GAAG,CAAC;IACF,EAAE,CAAC;QACD,2BAA2B,CACzB,QAAQ,CAAC,KAAK,CAAC,EACf,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAC/B;QACD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B,CAAC;IACF,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;CAC9B,CAAC,GACF,OAAO,GACV,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ import { AfterFirst, And, BeforeLast, First, GetUrlQueryParams, HasOtherCharacters, Ip4Address, Ip4Octet, Ip6AddressFull, Ip6AddressLoose, Ip6GroupExpansion, IsGreaterThan, IsLessThan, IsStringLiteral, Last, Length, LowerAlphaChar, NumericChar, Split } from "../../index";
2
+ /**
3
+ * **IsIp4Octet**`<T>`
4
+ *
5
+ * Checks whether `T` is a valid IPv4Octet.
6
+ */
7
+ export type IsIp4Octet<T> = T extends number ? IsIp4Octet<`${T}`> : T extends string ? IsStringLiteral<T> extends true ? T extends Ip4Octet ? true : false : boolean : false;
8
+ /**
9
+ * **IsHexadecimal**`<T>`
10
+ *
11
+ * Boolean operator which tests the string `T` to ensure
12
+ * all characters are valid hexadecimal digits/chars.
13
+ */
14
+ export type IsHexadecimal<T> = T extends string ? IsStringLiteral<T> extends true ? HasOtherCharacters<Lowercase<T>, NumericChar | "a" | "b" | "c" | "d" | "e" | "f"> extends true ? false : true : boolean : false;
15
+ /**
16
+ * **IsIp6HexGroup**`<T>`
17
+ *
18
+ * Tests whether `T` is a valid hexadecimal group for an IP6
19
+ * Group. To be valid means:
20
+ *
21
+ * - each digit must be a hexadecimal digit
22
+ * - There will be between 1 and 4 digits
23
+ */
24
+ export type IsIp6HexGroup<T> = T extends string ? IsStringLiteral<T> extends true ? IsLessThan<Length<T>, 5> extends true ? IsGreaterThan<Length<T>, 0> extends true ? IsHexadecimal<T> : false : false : boolean : false;
25
+ type DeepOctetCheck<T extends readonly string[]> = [] extends T ? true : IsIp4Octet<First<T>> extends true ? DeepOctetCheck<AfterFirst<T>> : false;
26
+ /**
27
+ * **IsIp4Address**`<T>`
28
+ *
29
+ * Validates that `T` is a _valid_ IPv4 address by:
30
+ *
31
+ * - making sure the basic `${number}.${number}.${number}.${number}`
32
+ * - and then that each octet is a valid number between 0 and 255
33
+ */
34
+ export type IsIp4Address<T> = T extends string ? IsStringLiteral<T> extends true ? T extends Ip4Address ? Split<T, ".">["length"] extends 4 ? DeepOctetCheck<Split<T, ".">> : false : false : boolean : never;
35
+ type _EachGroup<T extends readonly string[]> = {
36
+ [K in keyof T]: IsIp6HexGroup<T[K]>;
37
+ };
38
+ export type IsIp6Address<T> = T extends string ? IsStringLiteral<T> extends true ? T extends Ip6AddressFull ? And<_EachGroup<Split<T, ":">>> : Ip6GroupExpansion<T> extends Ip6AddressFull ? And<_EachGroup<Split<Ip6GroupExpansion<T>, ":">>> : false : boolean : false;
39
+ /**
40
+ * **IsIpAddress**`<T>`
41
+ *
42
+ * A boolean operator which validates that `T` is either a V4 or V6 IP
43
+ * Address.
44
+ */
45
+ export type IsIpAddress<T> = T extends string ? IsStringLiteral<T> extends true ? IsIp4Address<T> extends true ? true : IsIp6Address<T> extends true ? true : false : boolean : false;
46
+ /**
47
+ * **HasIpAddress**`<T>`
48
+ *
49
+ * a boolean operator which tests whether a string literal `T` has an IP address
50
+ * in it.
51
+ */
52
+ export type HasIpAddress<T> = T extends string ? IsStringLiteral<T> extends true ? T extends `${string}${infer IpAddress extends Ip4Address | Ip6AddressLoose}${string}` ? IsIp4Address<IpAddress> : false : boolean : never;
53
+ type _TLD<T extends string> = Length<T> extends 0 ? false : Length<T> extends 1 ? false : HasOtherCharacters<Lowercase<T>, LowerAlphaChar> extends true ? false : true;
54
+ type _BeforeTLD<T extends readonly string[]> = [] extends T ? true : HasOtherCharacters<Lowercase<First<T>>, LowerAlphaChar | NumericChar | "-" | "_"> extends true ? false : _BeforeTLD<AfterFirst<T>>;
55
+ /**
56
+ * **IsDomainName**`<T>`
57
+ *
58
+ * Checks whether `T` is a valid DNS domain name.
59
+ */
60
+ export type IsDomainName<T> = T extends string ? IsStringLiteral<T> extends true ? T extends `${string}.${string}` ? _TLD<Last<Split<T, ".">>> extends true ? _BeforeTLD<BeforeLast<Split<T, ".">>> extends true ? true : false : false : false : boolean : never;
61
+ /**
62
+ * **HasQueryParameter**`<T,P>`
63
+ *
64
+ * Checks whether the URL in `T` has a query parameter with the key of `P`.
65
+ */
66
+ export type HasQueryParameter<T extends string, P extends string> = And<[
67
+ IsStringLiteral<T>,
68
+ IsStringLiteral<P>
69
+ ]> extends true ? GetUrlQueryParams<T> extends `${string}${P}=${string}` ? true : false : boolean;
70
+ export {};
71
+ //# sourceMappingURL=Network-operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Network-operators.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/Network-operators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { YouTubeVideoUrl, YouTubeUrl, IsStringLiteral, GetUrlQueryParams, YouTubePlaylistUrl } from "../../index";
2
+ type VideoUrlKind = "single-video" | "video-in-playlist" | "both";
3
+ /**
4
+ * **IsYouTubeUrl**`<T>`
5
+ *
6
+ * Boolean operator which returns _true_ when the string is a
7
+ * possible YouTube URL.
8
+ */
9
+ export type IsYouTubeUrl<T> = [T] extends [string] ? [IsStringLiteral<T>] extends [true] ? [T] extends [YouTubeUrl] ? true : false : boolean : false;
10
+ type _VideoKind<TQueryParams extends string, TKind extends VideoUrlKind> = TQueryParams extends `${string}list=${string}` ? TKind extends "single-video" ? false : true : TKind extends "video-in-playlist" ? false : true;
11
+ /**
12
+ * **IsYouTubeVideoUrl**`<TTest,[TKind]>`
13
+ *
14
+ * Boolean operator which returns _true_ when the string is a
15
+ * possible YouTube URL which is for playing a video.
16
+ *
17
+ * **Note:** by default any URL which plays a video is allowed but
18
+ * you can change `TKind` to "single-video" or "video-in-playlist"
19
+ * to isolate to just one of the play styles.
20
+ *
21
+ * **Related:** `IsYouTubeUrl`, `YouTubeVideoUrl`
22
+ */
23
+ export type IsYouTubeVideoUrl<TTest, TKind extends VideoUrlKind = "both"> = [TTest] extends [string] ? [IsStringLiteral<TTest>] extends [true] ? [TTest] extends [YouTubeVideoUrl] ? _VideoKind<GetUrlQueryParams<TTest>, TKind> : false : boolean : false;
24
+ /**
25
+ * **IsYouTubeUrl**`<T>`
26
+ *
27
+ * Boolean operator which returns _true_ when the string is a
28
+ * possible YouTube URL.
29
+ */
30
+ export type IsYouTubePlaylist<T> = [T] extends [string] ? [IsStringLiteral<T>] extends [true] ? [T] extends [YouTubePlaylistUrl] ? true : false : boolean : false;
31
+ export {};
32
+ //# sourceMappingURL=YouTube-operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YouTube-operators.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/YouTube-operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAwB;AAEtH,KAAK,YAAY,GAAE,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAChD,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACjC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GACtB,IAAI,GACJ,KAAK,GACP,OAAO,GACT,KAAK,CAAC;AAER,KAAK,UAAU,CACb,YAAY,SAAS,MAAM,EAC3B,KAAK,SAAS,YAAY,IACxB,YAAY,SAAS,GAAG,MAAM,QAAQ,MAAM,EAAE,GAChD,KAAK,SAAS,cAAc,GAC1B,KAAK,GACL,IAAI,GACN,KAAK,SAAS,mBAAmB,GAC/B,KAAK,GACL,IAAI,CAAC;AAGT;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,CAC3B,KAAK,EACL,KAAK,SAAS,YAAY,GAAG,MAAM,IACjC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAC1B,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACrC,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,GAC/B,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAC3C,KAAK,GACP,OAAO,GACT,KAAK,CAAC;AAGR;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACrD,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACjC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAC9B,IAAI,GACJ,KAAK,GACP,OAAO,GACT,KAAK,CAAC"}
@@ -32,6 +32,7 @@ export * from "./IsObjectLiteral";
32
32
  export * from "./IsTuple";
33
33
  export * from "./IsNothing";
34
34
  export * from "./IsGreaterThan";
35
+ export * from "./IsLessThan";
35
36
  export * from "./IsDotPath";
36
37
  export * from "./IsSingularNoun";
37
38
  export * from "./IsAllLowercase";
@@ -84,7 +85,9 @@ export * from "./IsLiteralUnion";
84
85
  export * from "./IsNonLiteralUnion";
85
86
  export * from "./HasRequiredProps";
86
87
  export * from "./IsValidDotPath";
87
- export * from "./IsHexadecimal";
88
+ export * from "./IsCssHexadecimal";
88
89
  export * from "./IsFloat";
89
90
  export * from "./IsInteger";
91
+ export * from "./IsUrl";
92
+ export * from "./Network-operators";
90
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/index.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export * from "./IsObjectLiteral.js";
32
32
  export * from "./IsTuple.js";
33
33
  export * from "./IsNothing.js";
34
34
  export * from "./IsGreaterThan.js";
35
+ export * from "./IsLessThan.js";
35
36
  export * from "./IsDotPath.js";
36
37
  export * from "./IsSingularNoun.js";
37
38
  export * from "./IsAllLowercase.js";
@@ -84,6 +85,8 @@ export * from "./IsLiteralUnion.js";
84
85
  export * from "./IsNonLiteralUnion.js";
85
86
  export * from "./HasRequiredProps.js";
86
87
  export * from "./IsValidDotPath.js";
87
- export * from "./IsHexadecimal.js";
88
+ export * from "./IsCssHexadecimal.js";
88
89
  export * from "./IsFloat.js";
89
90
  export * from "./IsInteger.js";
91
+ export * from "./IsUrl.js";
92
+ export * from "./Network-operators.js";
@@ -1,3 +1,4 @@
1
+ export * from "./api/index";
1
2
  export * from "./base-types/index";
2
3
  export * from "./boolean-logic/index";
3
4
  export * from "./classes/index";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAOA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  // hash-code: fbd4603a
5
5
  // file exports
6
6
  // directory exports
7
+ export * from "./api/index.js";
7
8
  export * from "./base-types/index.js";
8
9
  export * from "./boolean-logic/index.js";
9
10
  export * from "./classes/index.js";
@@ -1,8 +1,14 @@
1
- import { AfterFirst, AnyFunction, AsLiteralFn, AsNarrowingFn, Dictionary, First, FnProps, IsNarrowingFn, TypedFunction } from "../index";
1
+ import { AfterFirst, AnyFunction, AsLiteralFn, AsNarrowingFn, Decrement, Dictionary, First, FnProps, IsNarrowingFn, IsUnion, Tuple, TupleToUnion, TypedFunction, UnionToTuple } from "../index";
2
+ type _ExpandTuple<TLength extends number, TContent extends Tuple, TTuple extends Tuple = []> = TLength extends 0 ? Readonly<TTuple> : _ExpandTuple<Decrement<TLength>, AfterFirst<TContent>, [
3
+ ...TTuple,
4
+ First<TContent>
5
+ ]>;
2
6
  type ExpandParameters<TFn extends TypedFunction, TParams extends readonly unknown[], TResults extends readonly unknown[] = []> = [] extends TParams ? IsNarrowingFn<TFn> extends true ? AsNarrowingFn<TResults, ReturnType<TFn>, ExpandDictionary<FnProps<TFn>>> : AsLiteralFn<TResults, ReturnType<TFn>, ExpandDictionary<FnProps<TFn>>> : ExpandParameters<TFn, AfterFirst<TParams>, [
3
7
  ...TResults,
4
8
  First<TParams> extends Dictionary ? ExpandDictionary<First<TParams>> : First<TParams>
5
9
  ]>;
10
+ export type ExpandTuple<T> = T extends Tuple ? _ExpandTuple<T["length"], T> : T;
11
+ export type ExpandUnion<T> = IsUnion<T> extends true ? TupleToUnion<ExpandTuple<UnionToTuple<T>>> : T;
6
12
  /**
7
13
  * Recursively goes over an object based structure and tries to reduce
8
14
  * it down to just a simple key/value type.
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandRecursively.d.ts","sourceRoot":"","sources":["../../../src/types/literals/ExpandRecursively.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAa,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAS,aAAa,EAAE,iBAAwB;AAclK,KAAK,gBAAgB,CACnB,GAAG,SAAS,aAAa,EACzB,OAAO,SAAS,SAAS,OAAO,EAAE,EAClC,QAAQ,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,IACtC,EAAE,SAAS,OAAO,GACpB,aAAa,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,aAAa,CAAC,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GACtE,WAAW,CAAC,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GACtE,gBAAgB,CACd,GAAG,EACH,UAAU,CAAC,OAAO,CAAC,EACnB;IACE,GAAG,QAAQ;IACX,KAAK,CAAC,OAAO,CAAC,SAAS,UAAU,GAC7B,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAChC,KAAK,CAAC,OAAO,CAAC;CACnB,CACF,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,GACnD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACtC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACxB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxC,CAAC,CAAC,CAAC,CAAC,GACN,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B,GACD,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,GAClD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACtC,CAAC,CAAC,CAAC,CAAC,GACJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B,GACD,CAAC,CAAC"}
1
+ {"version":3,"file":"ExpandRecursively.d.ts","sourceRoot":"","sources":["../../../src/types/literals/ExpandRecursively.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAwB;AAEvM,KAAK,YAAY,CACf,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,KAAK,EACtB,MAAM,SAAS,KAAK,GAAG,EAAE,IACvB,OAAO,SAAS,CAAC,GACjB,QAAQ,CAAC,MAAM,CAAC,GAChB,YAAY,CACV,SAAS,CAAC,OAAO,CAAC,EAClB,UAAU,CAAC,QAAQ,CAAC,EACpB;IAAC,GAAG,MAAM;IAAE,KAAK,CAAC,QAAQ,CAAC;CAAC,CAC/B,CAAC;AAEJ,KAAK,gBAAgB,CACnB,GAAG,SAAS,aAAa,EACzB,OAAO,SAAS,SAAS,OAAO,EAAE,EAClC,QAAQ,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,IACtC,EAAE,SAAS,OAAO,GACpB,aAAa,CAAC,GAAG,CAAC,SAAS,IAAI,GAC7B,aAAa,CAAC,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GACtE,WAAW,CAAC,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GACtE,gBAAgB,CACd,GAAG,EACH,UAAU,CAAC,OAAO,CAAC,EACnB;IACE,GAAG,QAAQ;IACX,KAAK,CAAC,OAAO,CAAC,SAAS,UAAU,GAC7B,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAChC,KAAK,CAAC,OAAO,CAAC;CACnB,CACF,CAAC;AAEJ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAC1C,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,GAC3B,CAAC,CAAC;AAEJ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAClD,YAAY,CACV,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC7B,GACD,CAAC,CACF;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,GACnD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACtC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACxB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxC,CAAC,CAAC,CAAC,CAAC,GACN,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B,GACD,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,GAClD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACtC,CAAC,CAAC,CAAC,CAAC,GACJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B,GACD,CAAC,CAAC"}
@@ -9,7 +9,7 @@ type Narrow = Exclude<Narrowable, symbol>;
9
9
  * are produced as the runtime representation of a type by utilities
10
10
  * like the `ShapeApi` and the `shape()` runtime function.
11
11
  */
12
- export type Shape = `<<${TypeTokenKind}${string}>>`;
12
+ export type Shape<T extends TypeTokenKind = TypeTokenKind> = `<<${T}${string}>>`;
13
13
  /**
14
14
  * **ShapeAddOrDone**`<TTuple, TMakeUnion>`
15
15
  *