type-plus 8.0.0-beta.4 → 8.0.0-beta.5

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 (200) hide show
  1. package/cjs/array/is_array.d.ts +4 -4
  2. package/cjs/array/is_array.d.ts.map +1 -1
  3. package/cjs/array/is_not_array.d.ts +4 -4
  4. package/cjs/array/is_not_array.d.ts.map +1 -1
  5. package/cjs/array/literal_array.js +2 -1
  6. package/cjs/array/literal_array.js.map +1 -1
  7. package/cjs/array/reduce_while.js +2 -1
  8. package/cjs/array/reduce_while.js.map +1 -1
  9. package/cjs/assertion/assert_type.d.ts +1 -1
  10. package/cjs/assertion/assert_type.d.ts.map +1 -1
  11. package/cjs/assertion/assert_type.js +2 -1
  12. package/cjs/assertion/assert_type.js.map +1 -1
  13. package/cjs/bigint/is_bigint.d.ts +4 -4
  14. package/cjs/bigint/is_bigint.d.ts.map +1 -1
  15. package/cjs/bigint/is_not_bigint.d.ts +3 -3
  16. package/cjs/bigint/is_not_bigint.d.ts.map +1 -1
  17. package/cjs/boolean/is_boolean.d.ts +4 -4
  18. package/cjs/boolean/is_boolean.d.ts.map +1 -1
  19. package/cjs/boolean/is_not_boolean.d.ts +3 -3
  20. package/cjs/boolean/is_not_boolean.d.ts.map +1 -1
  21. package/cjs/class/isConstructor.js +3 -2
  22. package/cjs/class/isConstructor.js.map +1 -1
  23. package/cjs/function/extract_function.d.ts.map +1 -1
  24. package/cjs/function/extract_function.js +2 -1
  25. package/cjs/function/extract_function.js.map +1 -1
  26. package/cjs/functional/Maybe.js +3 -2
  27. package/cjs/functional/Maybe.js.map +1 -1
  28. package/cjs/functional/compose.js +2 -1
  29. package/cjs/functional/compose.js.map +1 -1
  30. package/cjs/functional/context.js +2 -1
  31. package/cjs/functional/context.js.map +1 -1
  32. package/cjs/index.d.ts +2 -1
  33. package/cjs/index.d.ts.map +1 -1
  34. package/cjs/index.js.map +1 -1
  35. package/cjs/mix_types/merge.js +2 -1
  36. package/cjs/mix_types/merge.js.map +1 -1
  37. package/cjs/nodejs/isNodeError.js +2 -1
  38. package/cjs/nodejs/isNodeError.js.map +1 -1
  39. package/cjs/nominal/brand.js +2 -1
  40. package/cjs/nominal/brand.js.map +1 -1
  41. package/cjs/nominal/flavor.js +2 -1
  42. package/cjs/nominal/flavor.js.map +1 -1
  43. package/cjs/nominal/nominal_match.js +2 -1
  44. package/cjs/nominal/nominal_match.js.map +1 -1
  45. package/cjs/number/is_not_number.d.ts +3 -3
  46. package/cjs/number/is_not_number.d.ts.map +1 -1
  47. package/cjs/number/is_number.d.ts +3 -3
  48. package/cjs/number/is_number.d.ts.map +1 -1
  49. package/cjs/object/everyKey.js +2 -1
  50. package/cjs/object/everyKey.js.map +1 -1
  51. package/cjs/object/facade.js +2 -1
  52. package/cjs/object/facade.js.map +1 -1
  53. package/cjs/object/filterKey.js +2 -1
  54. package/cjs/object/filterKey.js.map +1 -1
  55. package/cjs/object/findKey.js +2 -1
  56. package/cjs/object/findKey.js.map +1 -1
  57. package/cjs/object/forEachKey.js +2 -1
  58. package/cjs/object/forEachKey.js.map +1 -1
  59. package/cjs/object/getField.js +2 -1
  60. package/cjs/object/getField.js.map +1 -1
  61. package/cjs/object/hasKey.js +2 -1
  62. package/cjs/object/hasKey.js.map +1 -1
  63. package/cjs/object/hasProperty.js +2 -1
  64. package/cjs/object/hasProperty.js.map +1 -1
  65. package/cjs/object/is_not_object.d.ts +4 -4
  66. package/cjs/object/is_not_object.d.ts.map +1 -1
  67. package/cjs/object/is_object.d.ts +4 -4
  68. package/cjs/object/is_object.d.ts.map +1 -1
  69. package/cjs/object/mapKey.js +2 -1
  70. package/cjs/object/mapKey.js.map +1 -1
  71. package/cjs/object/mapProperties.js +2 -1
  72. package/cjs/object/mapProperties.js.map +1 -1
  73. package/cjs/object/omit.js +2 -1
  74. package/cjs/object/omit.js.map +1 -1
  75. package/cjs/object/pick.js +2 -1
  76. package/cjs/object/pick.js.map +1 -1
  77. package/cjs/object/record.js +2 -1
  78. package/cjs/object/record.js.map +1 -1
  79. package/cjs/object/reduceKey.js +2 -2
  80. package/cjs/object/reduceKey.js.map +1 -1
  81. package/cjs/object/replaceProperty.js +2 -1
  82. package/cjs/object/replaceProperty.js.map +1 -1
  83. package/cjs/object/someKey.js +2 -1
  84. package/cjs/object/someKey.js.map +1 -1
  85. package/cjs/object/split.js +2 -1
  86. package/cjs/object/split.js.map +1 -1
  87. package/cjs/object/typeOverrideIncompatible.d.ts.map +1 -1
  88. package/cjs/object/typeOverrideIncompatible.js +2 -1
  89. package/cjs/object/typeOverrideIncompatible.js.map +1 -1
  90. package/cjs/predicates/CanAssign.js +2 -1
  91. package/cjs/predicates/CanAssign.js.map +1 -1
  92. package/cjs/promise/MaybePromise.js +2 -2
  93. package/cjs/promise/MaybePromise.js.map +1 -1
  94. package/cjs/promise/isPromise.js +2 -1
  95. package/cjs/promise/isPromise.js.map +1 -1
  96. package/cjs/promise/mapSeries.js +2 -1
  97. package/cjs/promise/mapSeries.js.map +1 -1
  98. package/cjs/string/is_not_string.d.ts +3 -3
  99. package/cjs/string/is_not_string.d.ts.map +1 -1
  100. package/cjs/string/is_not_string_literal.d.ts +4 -4
  101. package/cjs/string/is_not_string_literal.d.ts.map +1 -1
  102. package/cjs/string/is_string.d.ts +3 -3
  103. package/cjs/string/is_string.d.ts.map +1 -1
  104. package/cjs/string/is_string_literal.d.ts +4 -4
  105. package/cjs/string/is_string_literal.d.ts.map +1 -1
  106. package/cjs/testing/stub.d.ts +2 -2
  107. package/cjs/testing/stub.d.ts.map +1 -1
  108. package/cjs/testing/stub.js +2 -1
  109. package/cjs/testing/stub.js.map +1 -1
  110. package/cjs/tuple/drop.js +2 -1
  111. package/cjs/tuple/drop.js.map +1 -1
  112. package/cjs/type-guard/is_type.d.ts +2 -2
  113. package/cjs/type-guard/is_type.d.ts.map +1 -1
  114. package/cjs/type-guard/is_type.js +2 -1
  115. package/cjs/type-guard/is_type.js.map +1 -1
  116. package/cjs/type_plus/branch/$exact.d.ts +13 -22
  117. package/cjs/type_plus/branch/$exact.d.ts.map +1 -1
  118. package/cjs/type_plus/branch/$select.d.ts +3 -3
  119. package/cjs/type_plus/branch/$select.d.ts.map +1 -1
  120. package/cjs/union/sub_union.d.ts +6 -0
  121. package/cjs/union/sub_union.d.ts.map +1 -0
  122. package/cjs/union/sub_union.js +3 -0
  123. package/cjs/union/sub_union.js.map +1 -0
  124. package/cjs/union/union_to_intersection.js +2 -1
  125. package/cjs/union/union_to_intersection.js.map +1 -1
  126. package/cjs/utils/as.d.ts +1 -1
  127. package/cjs/utils/as.d.ts.map +1 -1
  128. package/cjs/utils/as.js +4 -3
  129. package/cjs/utils/as.js.map +1 -1
  130. package/cjs/utils/inspect.js +2 -1
  131. package/cjs/utils/inspect.js.map +1 -1
  132. package/esm/array/is_array.d.ts +4 -4
  133. package/esm/array/is_array.d.ts.map +1 -1
  134. package/esm/array/is_not_array.d.ts +4 -4
  135. package/esm/array/is_not_array.d.ts.map +1 -1
  136. package/esm/assertion/assert_type.d.ts +1 -1
  137. package/esm/assertion/assert_type.d.ts.map +1 -1
  138. package/esm/bigint/is_bigint.d.ts +4 -4
  139. package/esm/bigint/is_bigint.d.ts.map +1 -1
  140. package/esm/bigint/is_not_bigint.d.ts +3 -3
  141. package/esm/bigint/is_not_bigint.d.ts.map +1 -1
  142. package/esm/boolean/is_boolean.d.ts +4 -4
  143. package/esm/boolean/is_boolean.d.ts.map +1 -1
  144. package/esm/boolean/is_not_boolean.d.ts +3 -3
  145. package/esm/boolean/is_not_boolean.d.ts.map +1 -1
  146. package/esm/function/extract_function.d.ts.map +1 -1
  147. package/esm/index.d.ts +2 -1
  148. package/esm/index.d.ts.map +1 -1
  149. package/esm/index.js.map +1 -1
  150. package/esm/number/is_not_number.d.ts +3 -3
  151. package/esm/number/is_not_number.d.ts.map +1 -1
  152. package/esm/number/is_number.d.ts +3 -3
  153. package/esm/number/is_number.d.ts.map +1 -1
  154. package/esm/object/is_not_object.d.ts +4 -4
  155. package/esm/object/is_not_object.d.ts.map +1 -1
  156. package/esm/object/is_object.d.ts +4 -4
  157. package/esm/object/is_object.d.ts.map +1 -1
  158. package/esm/object/typeOverrideIncompatible.d.ts.map +1 -1
  159. package/esm/string/is_not_string.d.ts +3 -3
  160. package/esm/string/is_not_string.d.ts.map +1 -1
  161. package/esm/string/is_not_string_literal.d.ts +4 -4
  162. package/esm/string/is_not_string_literal.d.ts.map +1 -1
  163. package/esm/string/is_string.d.ts +3 -3
  164. package/esm/string/is_string.d.ts.map +1 -1
  165. package/esm/string/is_string_literal.d.ts +4 -4
  166. package/esm/string/is_string_literal.d.ts.map +1 -1
  167. package/esm/testing/stub.d.ts +2 -2
  168. package/esm/testing/stub.d.ts.map +1 -1
  169. package/esm/type-guard/is_type.d.ts +2 -2
  170. package/esm/type-guard/is_type.d.ts.map +1 -1
  171. package/esm/type_plus/branch/$exact.d.ts +13 -22
  172. package/esm/type_plus/branch/$exact.d.ts.map +1 -1
  173. package/esm/type_plus/branch/$select.d.ts +3 -3
  174. package/esm/type_plus/branch/$select.d.ts.map +1 -1
  175. package/esm/union/sub_union.d.ts +6 -0
  176. package/esm/union/sub_union.d.ts.map +1 -0
  177. package/esm/union/sub_union.js +2 -0
  178. package/esm/union/sub_union.js.map +1 -0
  179. package/esm/utils/as.d.ts +1 -1
  180. package/esm/utils/as.d.ts.map +1 -1
  181. package/package.json +16 -21
  182. package/readme.md +25 -24
  183. package/src/array/is_array.ts +4 -4
  184. package/src/array/is_not_array.ts +4 -4
  185. package/src/bigint/is_bigint.ts +4 -4
  186. package/src/bigint/is_not_bigint.ts +3 -3
  187. package/src/boolean/is_boolean.ts +4 -4
  188. package/src/boolean/is_not_boolean.ts +3 -3
  189. package/src/index.ts +3 -1
  190. package/src/number/is_not_number.ts +3 -3
  191. package/src/number/is_number.ts +3 -3
  192. package/src/object/is_not_object.ts +4 -4
  193. package/src/object/is_object.ts +4 -4
  194. package/src/string/is_not_string.ts +3 -3
  195. package/src/string/is_not_string_literal.ts +4 -4
  196. package/src/string/is_string.ts +3 -3
  197. package/src/string/is_string_literal.ts +4 -4
  198. package/src/type_plus/branch/$exact.ts +18 -28
  199. package/src/type_plus/branch/$select.ts +3 -3
  200. package/src/union/sub_union.ts +5 -0
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js';
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js';
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js';
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js';
6
- import type { $Exact } from '../type_plus/branch/$exact.js';
6
+ import type { $ExactOptions } from '../type_plus/branch/$exact.js';
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js';
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js';
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js';
@@ -60,7 +60,7 @@ export type IsString<T, $O extends IsString.$Options = {}> = $SpecialType<T, $Me
60
60
  $else: IsString.$<T, $O>;
61
61
  }>>;
62
62
  export declare namespace IsString {
63
- type $Options = $Equality.$Options & $Exact.$Options;
63
+ type $Options = $Equality.$Options & $ExactOptions;
64
64
  type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>;
65
65
  /**
66
66
  * 🧰 *type util*
@@ -74,7 +74,7 @@ export declare namespace IsString {
74
74
  $then: _D<T, $O>;
75
75
  $else: _N<T, $O>;
76
76
  }> : Assignable.$<T, string, $O>;
77
- type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options;
77
+ type $UtilOptions = Assignable.$UtilOptions & $ExactOptions;
78
78
  type _D<T, $O extends $UtilOptions> = T extends string & infer U ? U extends string ? $ResolveBranch<T, $O, [$Else]> : $ResolveBranch<T, $O, [$Then]> : $ResolveBranch<T, $O, [$Else]>;
79
79
  type _N<T, $O extends $UtilOptions> = [T] extends [string & infer U] ? U extends string ? $ResolveBranch<T, $O, [$Else]> : $ResolveBranch<T, $O, [$Then]> : $ResolveBranch<T, $O, [$Else]>;
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is_string.d.ts","sourceRoot":"","sources":["../../src/string/is_string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,QAAQ,GAAG,EAAE,IAAI,YAAY,CACxE,CAAC,EACD,aAAa,CACZ,EAAE,EACF;IACC,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACrC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CACxB,CACD,CACD,CAAA;AAED,yBAAiB,QAAQ,CAAC;IACzB,KAAY,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC3D,KAAY,OAAO,CAAC,EAAE,SAAS,QAAQ,GAAG,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAErE;;;;;;;OAOG;IACH,KAAY,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,IAAI,GAC3F,eAAe,CAAC,EAAE,EAAE;QAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;KAAE,CAAC,GAC3D,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IAE9B,KAAY,YAAY,GAAG,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAA;IAEpE,KAAY,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GACpE,CAAC,SAAS,MAAM,GACf,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC/B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,KAAY,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GACxE,CAAC,SAAS,MAAM,GACf,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC/B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;CACjC"}
1
+ {"version":3,"file":"is_string.d.ts","sourceRoot":"","sources":["../../src/string/is_string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,QAAQ,GAAG,EAAE,IAAI,YAAY,CACxE,CAAC,EACD,aAAa,CACZ,EAAE,EACF;IACC,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACrC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CACxB,CACD,CACD,CAAA;AAED,yBAAiB,QAAQ,CAAC;IACzB,KAAY,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAA;IACzD,KAAY,OAAO,CAAC,EAAE,SAAS,QAAQ,GAAG,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAErE;;;;;;;OAOG;IACH,KAAY,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,IAAI,GAC3F,eAAe,CAAC,EAAE,EAAE;QAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;KAAE,CAAC,GAC3D,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IAE9B,KAAY,YAAY,GAAG,UAAU,CAAC,YAAY,GAAG,aAAa,CAAA;IAElE,KAAY,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GACpE,CAAC,SAAS,MAAM,GACf,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC/B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,KAAY,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GACxE,CAAC,SAAS,MAAM,GACf,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC/B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;CACjC"}
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js';
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js';
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js';
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js';
6
- import type { $Exact } from '../type_plus/branch/$exact.js';
6
+ import type { $ExactDefault, $ExactOptions } from '../type_plus/branch/$exact.js';
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js';
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js';
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js';
@@ -72,7 +72,7 @@ export type IsStringLiteral<T, $O extends IsStringLiteral.$Options = {}> = $Spec
72
72
  $else: IsStringLiteral.$<T, $O>;
73
73
  }>>;
74
74
  export declare namespace IsStringLiteral {
75
- type $Options = $Equality.$Options & $Exact.$Options;
75
+ type $Options = $Equality.$Options & $ExactOptions;
76
76
  type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>;
77
77
  /**
78
78
  * 🧰 *type util*
@@ -82,14 +82,14 @@ export declare namespace IsStringLiteral {
82
82
  * This is a type util for building custom types.
83
83
  * It does not check against special types.
84
84
  */
85
- type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $Exact.$Default]> extends true ? $IsDistributive<$O, {
85
+ type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $ExactDefault]> extends true ? $IsDistributive<$O, {
86
86
  $then: _ED<T, $O>;
87
87
  $else: _EN<T, $O>;
88
88
  }> : $IsDistributive<$O, {
89
89
  $then: _D<T, $O>;
90
90
  $else: _N<T, $O>;
91
91
  }>;
92
- type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options;
92
+ type $UtilOptions = Assignable.$UtilOptions & $ExactOptions;
93
93
  type _ED<T, $O extends $SelectionOptions> = T extends string ? _E<T, $O> : $ResolveBranch<T, $O, [$Else]>;
94
94
  type _EN<T, $O extends $SelectionOptions> = [T] extends [string] ? _E<T, $O> : $ResolveBranch<T, $O, [$Else]>;
95
95
  type _E<T extends string, $O extends $SelectionOptions> = T extends string ? _StringType<T> extends infer R ? R extends 'stringLiteral' ? $ResolveBranch<T, $O, [$Then]> : $ResolveBranch<T, $O, [$Else]> : never : $ResolveBranch<T, $O, [$Else]>;
@@ -1 +1 @@
1
- {"version":3,"file":"is_string_literal.d.ts","sourceRoot":"","sources":["../../src/string/is_string_literal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"is_string_literal.d.ts","sourceRoot":"","sources":["../../src/string/is_string_literal.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@ import type { NoInfer } from '../type/no_infer.js';
11
11
  export declare function stub<T extends AnyFunction>(stub: T): T;
12
12
  export declare function stub<T>(stub: RecursivePartial<NoInfer<T>>): T;
13
13
  export declare namespace stub {
14
- var build: <T>(init: RecursivePartial<T> | ((stub?: RecursivePartial<T>) => RecursivePartial<T>)) => (stub?: RecursivePartial<T>) => T;
15
- var builder: <T>(init: RecursivePartial<T> | ((stub?: RecursivePartial<T>) => RecursivePartial<T>)) => {
14
+ var build: <T>(init: RecursivePartial<T> | ((stub?: RecursivePartial<T> | undefined) => RecursivePartial<T>)) => (stub?: RecursivePartial<T> | undefined) => T;
15
+ var builder: <T>(init: RecursivePartial<T> | ((stub?: RecursivePartial<T> | undefined) => RecursivePartial<T>)) => {
16
16
  /**
17
17
  * Adds an init object or handler to the builder.
18
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../src/testing/stub.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;gBAQL,CAAC,QACT,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAC/E,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;kBAmBnB,CAAC,QAAQ,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAQnG;;;;;;;WAOG;;QAIH;;WAEG"}
1
+ {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../src/testing/stub.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;;;QAqClB;;;;;;;WAOG;;QAIH;;WAEG"}
@@ -8,8 +8,8 @@ export declare function isType<T>(subject: T): subject is T;
8
8
  */
9
9
  export declare function isType<T>(subject: unknown, validator: (s: T) => unknown): subject is T;
10
10
  export declare namespace isType {
11
- var t: <T extends true>(subject?: T) => boolean;
12
- var f: <T extends false>(subject?: T) => boolean;
11
+ var t: <T extends true>(subject?: T | undefined) => boolean;
12
+ var f: <T extends false>(subject?: T | undefined) => boolean;
13
13
  var never: typeof isNever;
14
14
  var equal: <_C extends IsEqual<A, B>, A, B>() => void;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is_type.d.ts","sourceRoot":"","sources":["../../src/type-guard/is_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;AACnD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,IAAI,CAAC,CAAA;yBAAvE,MAAM;YAQV,CAAC,SAAS,IAAI,YAAY,CAAC;YAK3B,CAAC,SAAS,KAAK,YAAY,CAAC;;gBAyBxB,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;;AAvB9C;;;GAGG;AACH,iBAAS,OAAO,CAAC,EAAE,SAAS,KAAK,KAAK,OAAO,CAAA;AAC7C;;;GAGG;AACH,iBAAS,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,IAAI,KAAK,CAAA"}
1
+ {"version":3,"file":"is_type.d.ts","sourceRoot":"","sources":["../../src/type-guard/is_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;AACnD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,IAAI,CAAC,CAAA;yBAAvE,MAAM;;;;;;AAetB;;;GAGG;AACH,iBAAS,OAAO,CAAC,EAAE,SAAS,KAAK,KAAK,OAAO,CAAA;AAC7C;;;GAGG;AACH,iBAAS,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,IAAI,KAAK,CAAA"}
@@ -1,30 +1,21 @@
1
1
  import type { $ResolveOptions } from '../$resolve_options.js';
2
- import type { $Branch } from './$branch.js';
3
2
  import type { $InputOptions } from './$input_options.js';
4
3
  import type { $Else, $Then } from './$selection.js';
5
4
  /**
6
5
  * 🧰 *type util*
7
6
  *
8
- * Branch to handle exact comparison.
7
+ * `$Exact.$Options` enables customizing the behavior of the `$exact` branch.
8
+ *
9
+ * The `$exact` branch is used to handle when it is an exact comparison.
9
10
  */
10
- export type $Exact = $Branch<'$exact'>;
11
- export declare namespace $Exact {
12
- /**
13
- * 🧰 *type util*
14
- *
15
- * `$Exact.$Options` enables customizing the behavior of the `$exact` branch.
16
- *
17
- * The `$exact` branch is used to handle when it is an exact comparison.
18
- */
19
- type $Options = {
20
- exact?: boolean | undefined;
21
- };
22
- type $Default = {
23
- exact: false;
24
- };
25
- type $IsExact<$Opt extends $Options, $O extends $InputOptions<$Then | $Else> = {}> = $ResolveOptions<[
26
- $Opt['exact'],
27
- $Exact.$Default
28
- ]> extends true ? '$then' extends keyof $O ? $O['$then'] : true : '$else' extends keyof $O ? $O['$else'] : false;
29
- }
11
+ export type $ExactOptions = {
12
+ exact?: boolean | undefined;
13
+ };
14
+ export type $ExactDefault = {
15
+ exact: false;
16
+ };
17
+ export type $IsExact<$Opt extends $ExactOptions, $O extends $InputOptions<$Then | $Else> = {}> = $ResolveOptions<[
18
+ $Opt['exact'],
19
+ $ExactDefault
20
+ ]> extends true ? '$then' extends keyof $O ? $O['$then'] : true : '$else' extends keyof $O ? $O['$else'] : false;
30
21
  //# sourceMappingURL=$exact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"$exact.d.ts","sourceRoot":"","sources":["../../../src/type_plus/branch/$exact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtC,yBAAiB,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,KAAY,QAAQ,GAAG;QACtB,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAY,QAAQ,GAAG;QACtB,KAAK,EAAE,KAAK,CAAA;KACZ,CAAA;IAED,KAAY,QAAQ,CAAC,IAAI,SAAS,QAAQ,EAAE,EAAE,SAAS,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAC1G;QAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,CAAC,QAAQ;KAAC,CAChC,SAAS,IAAI,GACX,OAAO,SAAS,MAAM,EAAE,GACvB,EAAE,CAAC,OAAO,CAAC,GACX,IAAI,GACL,OAAO,SAAS,MAAM,EAAE,GACvB,EAAE,CAAC,OAAO,CAAC,GACX,KAAK,CAAA;CACT"}
1
+ {"version":3,"file":"$exact.d.ts","sourceRoot":"","sources":["../../../src/type_plus/branch/$exact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,aAAa,EAAE,EAAE,SAAS,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAC/G;IAAC,IAAI,CAAC,OAAO,CAAC;IAAE,aAAa;CAAC,CAC9B,SAAS,IAAI,GACX,OAAO,SAAS,MAAM,EAAE,GACvB,EAAE,CAAC,OAAO,CAAC,GACX,IAAI,GACL,OAAO,SAAS,MAAM,EAAE,GACvB,EAAE,CAAC,OAAO,CAAC,GACX,KAAK,CAAA"}
@@ -1,9 +1,9 @@
1
+ import type { $SpecialType } from '../$special_type.js';
1
2
  import type { $Any } from '../../any/any.js';
2
3
  import type { $Never } from '../../never/never.js';
3
4
  import type { $Unknown } from '../../unknown/unknown.js';
4
- import type { $SpecialType } from '../$special_type.js';
5
5
  import type { $DistributiveDefault, $DistributiveOptions } from './$distributive.js';
6
- import type { $Exact } from './$exact.js';
6
+ import type { $ExactOptions } from './$exact.js';
7
7
  import type { $InputOptions } from './$input_options.js';
8
8
  import type { $IsDistributive } from './$is_distributive.js';
9
9
  import type { $ResolveBranch } from './$resolve_branch.js';
@@ -67,7 +67,7 @@ export type $Select<T, U, $O extends $Select.$Options = {}> = $SpecialType<T, {
67
67
  $else: $ResolveBranch<T, $O, [$Else], $Select._<T, U, $O>>;
68
68
  }>;
69
69
  export declare namespace $Select {
70
- type $Options = $SelectionOptions & $DistributiveOptions & $InputOptions<$Any | $Unknown | $Never> & $Exact.$Options;
70
+ type $Options = $SelectionOptions & $DistributiveOptions & $InputOptions<$Any | $Unknown | $Never> & $ExactOptions;
71
71
  type $Default = $SelectionPredicate & $DistributiveDefault;
72
72
  type $Branch<$O extends $DistributiveOptions = $DistributiveDefault> = $SelectionBranch & $O;
73
73
  type _<T, U, $O extends $Select.$Options> = $IsDistributive<$O> extends true ? _D<T, U, $O> : _N<T, U, $O>;
@@ -1 +1 @@
1
- {"version":3,"file":"$select.d.ts","sourceRoot":"","sources":["../../../src/type_plus/branch/$select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$select.d.ts","sourceRoot":"","sources":["../../../src/type_plus/branch/$select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,YAAY,CACzE,CAAC,EACD;IACC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1C,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAClD,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC9C,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;CAC1D,CACD,CAAA;AAED,yBAAiB,OAAO,CAAC;IACxB,KAAY,QAAQ,GAAG,iBAAiB,GACvC,oBAAoB,GACpB,aAAa,CAAC,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,GACvC,aAAa,CAAA;IACd,KAAY,QAAQ,GAAG,mBAAmB,GAAG,oBAAoB,CAAA;IACjE,KAAY,OAAO,CAAC,EAAE,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,gBAAgB,GAAG,EAAE,CAAA;IACnG,KAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEjH,KAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAC5D,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,KAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAChE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAC9B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;CACjC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 🧰 *type util*
3
+ * Define a union type that is a subset of union type.
4
+ */
5
+ export type SubUnion<U, T extends U> = T;
6
+ //# sourceMappingURL=sub_union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub_union.d.ts","sourceRoot":"","sources":["../../src/union/sub_union.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sub_union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub_union.js","sourceRoot":"","sources":["../../src/union/sub_union.ts"],"names":[],"mappings":""}
package/esm/utils/as.d.ts CHANGED
@@ -5,6 +5,6 @@ export declare function asAny(subject: unknown): any;
5
5
  */
6
6
  export declare function amend<S>(subject: S): {
7
7
  union<T>(): T & S;
8
- intersect<T>(): T | S;
8
+ intersect<T_1>(): S | T_1;
9
9
  };
10
10
  //# sourceMappingURL=as.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"as.d.ts","sourceRoot":"","sources":["../../src/utils/as.ts"],"names":[],"mappings":"AAAA,wBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAEzC;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAE3C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;UAE3B,CAAC,KAAK,CAAC,GAAG,CAAC;cAGP,CAAC,KAAK,CAAC,GAAG,CAAC;EAItB"}
1
+ {"version":3,"file":"as.d.ts","sourceRoot":"","sources":["../../src/utils/as.ts"],"names":[],"mappings":"AAAA,wBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAEzC;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAE3C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;gBAErB,CAAC,GAAG,CAAC;;EAOlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-plus",
3
- "version": "8.0.0-beta.4",
3
+ "version": "8.0.0-beta.5",
4
4
  "description": "Provides additional types for TypeScript.",
5
5
  "keywords": [
6
6
  "assert",
@@ -44,19 +44,10 @@
44
44
  },
45
45
  "module": "./esm/index.js",
46
46
  "types": "./esm/index.d.ts",
47
- "typesVersions": {
48
- ">=5.4.0": {
49
- "*": [
50
- "*"
51
- ]
52
- }
53
- },
54
47
  "files": [
55
48
  "cjs",
56
49
  "esm",
57
50
  "src",
58
- "!src/types",
59
- "!src/type-checker",
60
51
  "!**/*.{spec,test,unit,accept,integrate,system,perf,stress}.*"
61
52
  ],
62
53
  "dependencies": {
@@ -67,22 +58,23 @@
67
58
  "@jest/globals": "^29.5.0",
68
59
  "@repobuddy/jest": "^4.0.0",
69
60
  "@repobuddy/typescript": "^2.0.0",
70
- "@size-limit/esbuild-why": "^9.0.0",
71
- "@size-limit/preset-small-lib": "^9.0.0",
72
- "@types/node": "^18.0.0",
73
- "@unional/fixture": "^3.0.0",
74
- "assertron": "^11.0.1",
61
+ "@size-limit/esbuild-why": "^11.1.5",
62
+ "@size-limit/preset-small-lib": "^11.1.5",
63
+ "@types/node": "^18.11.11",
64
+ "assertron": "^11.0.2",
75
65
  "cross-env": "^7.0.3",
76
66
  "depcheck": "^1.4.3",
77
67
  "jest": "^29.7.0",
78
68
  "jest-watch-suspend": "^1.1.2",
79
69
  "jest-watch-toggle-config-2": "^2.1.0",
80
70
  "jest-watch-typeahead": "^2.2.2",
81
- "npm-run-all2": "^6.0.0",
82
- "rimraf": "^5.0.5",
83
- "satisfier": "^5.2.2",
84
- "size-limit": "^9.0.0",
85
- "ts-jest": "^29.1.2"
71
+ "npm-run-all2": "^6.1.1",
72
+ "rimraf": "^6.0.0",
73
+ "size-limit": "^11.1.5",
74
+ "ts-5.4": "npm:typescript@~5.4.5",
75
+ "ts-5.5": "npm:typescript@~5.5.4",
76
+ "ts-jest": "^29.1.2",
77
+ "typescript": "^5.6.2"
86
78
  },
87
79
  "scripts": {
88
80
  "build": "run-p build:*",
@@ -96,7 +88,10 @@
96
88
  "nuke:local": "rimraf node_modules",
97
89
  "size": "size-limit",
98
90
  "test": "cross-env NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest",
99
- "test:type": "tsc --noEmit",
91
+ "test:type": "run-p test:type:*",
92
+ "test:type:latest": "./node_modules/typescript/bin/tsc --noEmit",
93
+ "test:type:54": "./node_modules/ts-5.4/bin/tsc -p tsconfig.ts54.json --noEmit",
94
+ "test:type:55": "./node_modules/ts-5.5/bin/tsc -p tsconfig.ts55.json --noEmit",
100
95
  "test:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest --watch",
101
96
  "verify": "npm-run-all clean -p build depcheck lint coverage -p size",
102
97
  "w": "cross-env NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest --watch",
package/readme.md CHANGED
@@ -8,44 +8,45 @@
8
8
 
9
9
  [![Visual Studio Code][vscode_image]][vscode_url]
10
10
 
11
- More than 200 type utilities for [TypeScript] for applications, library, and type-level programming.
11
+ More than 200 type utilities for [TypeScript] for applications, library,
12
+ and type-level programming.
12
13
 
13
14
  ## Table of Contents
14
15
 
15
16
  1. [Table of Contents](#table-of-contents)
16
17
  2. [Installation](#installation)
17
18
  3. [What's in the package?](#whats-in-the-package)
18
- 1. [Update organization](#update-organization)
19
- 2. [Update documentation](#update-documentation)
19
+ 1. [Update organization](#update-organization)
20
+ 2. [Update documentation](#update-documentation)
20
21
  4. [Assertion Function](#assertion-function)
21
- 1. [assertType](#asserttype)
22
+ 1. [assertType](#asserttype)
22
23
  5. [Type Guard](#type-guard)
23
24
  6. [Type Utilities](#type-utilities)
24
25
  7. [Type Specific Utilities](#type-specific-utilities)
25
- 1. [any](#any)
26
- 2. [Array](#array)
27
- 3. [union](#union)
28
- 4. [bigint](#bigint)
29
- 5. [boolean](#boolean)
30
- 6. [function](#function)
31
- 7. [never](#never)
32
- 8. [null](#null)
33
- 9. [number](#number)
34
- 10. [numeric](#numeric)
35
- 11. [object](#object)
36
- 12. [Promise](#promise)
37
- 13. [string](#string)
38
- 14. [symbol](#symbol)
39
- 15. [tuple](#tuple)
40
- 16. [undefined](#undefined)
41
- 17. [unknown](#unknown)
42
- 18. [void](#void)
26
+ 1. [any](#any)
27
+ 2. [Array](#array)
28
+ 3. [union](#union)
29
+ 4. [bigint](#bigint)
30
+ 5. [boolean](#boolean)
31
+ 6. [function](#function)
32
+ 7. [never](#never)
33
+ 8. [null](#null)
34
+ 9. [number](#number)
35
+ 10. [numeric](#numeric)
36
+ 11. [object](#object)
37
+ 12. [Promise](#promise)
38
+ 13. [string](#string)
39
+ 14. [symbol](#symbol)
40
+ 15. [tuple](#tuple)
41
+ 16. [undefined](#undefined)
42
+ 17. [unknown](#unknown)
43
+ 18. [void](#void)
43
44
  8. [Testing Utilities](#testing-utilities)
44
45
  9. [Constant Types](#constant-types)
45
46
  10. [JSON Support](#json-support)
46
47
  11. [Type manipulation](#type-manipulation)
47
48
  12. [Type Predicates](#type-predicates)
48
- 1. [Logical](#logical)
49
+ 1. [Logical](#logical)
49
50
  13. [Math](#math)
50
51
  14. [Utility Functions](#utility-functions)
51
52
  15. [Nominal Types](#nominal-types)
@@ -69,7 +70,7 @@ pnpm add type-plus
69
70
  With over 200 types in [type-plus],
70
71
  it can become difficult to find the types you need.
71
72
 
72
- Also, some of the types need to be updated as TypeScript continue to evolve.
73
+ Also, some types need to be updated as TypeScript continue to evolve.
73
74
 
74
75
  Currently, we are updating [type-plus] with the following objective:
75
76
 
@@ -2,7 +2,7 @@ import type { Assignable } from '../predicates/assignable.js'
2
2
  import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $SpecialType } from '../type_plus/$special_type.js'
5
- import type { $Exact } from '../type_plus/branch/$exact.js'
5
+ import type { $ExactOptions, $IsExact } from '../type_plus/branch/$exact.js'
6
6
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
7
7
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
8
8
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -72,7 +72,7 @@ export type IsArray<T, $O extends IsArray.$Options = {}> = $SpecialType<
72
72
  >
73
73
 
74
74
  export namespace IsArray {
75
- export type $Options = $Equality.$Options & $Exact.$Options
75
+ export type $Options = $Equality.$Options & $ExactOptions
76
76
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
77
77
 
78
78
  /**
@@ -83,7 +83,7 @@ export namespace IsArray {
83
83
  * This is a type util for building custom types.
84
84
  * It does not check against special types.
85
85
  */
86
- export type $<T, $O extends $UtilOptions> = $Exact.$IsExact<
86
+ export type $<T, $O extends $UtilOptions> = $IsExact<
87
87
  $O,
88
88
  {
89
89
  $then: $IsDistributive<
@@ -111,5 +111,5 @@ export namespace IsArray {
111
111
  }
112
112
  >
113
113
 
114
- export type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options
114
+ export type $UtilOptions = Assignable.$UtilOptions & $ExactOptions
115
115
  }
@@ -2,7 +2,7 @@ import type { NotAssignable } from '../predicates/not_assignable.js'
2
2
  import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $SpecialType } from '../type_plus/$special_type.js'
5
- import type { $Exact } from '../type_plus/branch/$exact.js'
5
+ import type { $ExactOptions, $IsExact } from '../type_plus/branch/$exact.js'
6
6
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
7
7
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
8
8
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -71,7 +71,7 @@ export type IsNotArray<T, $O extends IsNotArray.$Options = {}> = $SpecialType<
71
71
  >
72
72
  >
73
73
  export namespace IsNotArray {
74
- export type $Options = $Equality.$Options & $Exact.$Options
74
+ export type $Options = $Equality.$Options & $ExactOptions
75
75
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
76
76
 
77
77
  /**
@@ -82,7 +82,7 @@ export namespace IsNotArray {
82
82
  * This is a type util for building custom types.
83
83
  * It does not check against special types.
84
84
  */
85
- export type $<T, $O extends $UtilOptions> = $Exact.$IsExact<
85
+ export type $<T, $O extends $UtilOptions> = $IsExact<
86
86
  $O,
87
87
  {
88
88
  $then: $IsDistributive<
@@ -110,5 +110,5 @@ export namespace IsNotArray {
110
110
  }
111
111
  >
112
112
 
113
- export type $UtilOptions = NotAssignable.$UtilOptions & $Exact.$Options
113
+ export type $UtilOptions = NotAssignable.$UtilOptions & $ExactOptions
114
114
  }
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js'
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js'
6
- import type { $Exact } from '../type_plus/branch/$exact.js'
6
+ import type { $ExactDefault, $ExactOptions } from '../type_plus/branch/$exact.js'
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -82,7 +82,7 @@ export type IsBigint<T, $O extends IsBigint.$Options = {}> = $SpecialType<
82
82
  >
83
83
 
84
84
  export namespace IsBigint {
85
- export type $Options = $Equality.$Options & $Exact.$Options
85
+ export type $Options = $Equality.$Options & $ExactOptions
86
86
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
87
87
 
88
88
  /**
@@ -93,10 +93,10 @@ export namespace IsBigint {
93
93
  * This is a type util for building custom types.
94
94
  * It does not check against special types.
95
95
  */
96
- export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $Exact.$Default]> extends true
96
+ export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $ExactDefault]> extends true
97
97
  ? $IsDistributive<$O, { $then: _SD<T, $O>; $else: _SN<T, $O> }>
98
98
  : Assignable.$<T, bigint, $O>
99
- export type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options
99
+ export type $UtilOptions = Assignable.$UtilOptions & $ExactOptions
100
100
 
101
101
  export type _SD<T, $O extends $Options> = T extends bigint & infer U
102
102
  ? U extends bigint
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js'
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js'
6
- import type { $Exact } from '../type_plus/branch/$exact.js'
6
+ import type { $ExactOptions } from '../type_plus/branch/$exact.js'
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -79,7 +79,7 @@ export type IsNotBigint<T, $O extends IsNotBigint.$Options = {}> = $SpecialType<
79
79
  >
80
80
 
81
81
  export namespace IsNotBigint {
82
- export type $Options = $Equality.$Options & $Exact.$Options
82
+ export type $Options = $Equality.$Options & $ExactOptions
83
83
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
84
84
 
85
85
  /**
@@ -93,7 +93,7 @@ export namespace IsNotBigint {
93
93
  export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], false]> extends true
94
94
  ? $IsDistributive<$O, { $then: _SD<T, $O>; $else: _SN<T, $O> }>
95
95
  : NotAssignable.$<T, bigint, $O>
96
- export type $UtilOptions = NotAssignable.$UtilOptions & $Exact.$Options
96
+ export type $UtilOptions = NotAssignable.$UtilOptions & $ExactOptions
97
97
 
98
98
  export type _SD<T, $O extends $Options> = T extends bigint & infer U
99
99
  ? U extends bigint
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js'
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js'
6
- import type { $Exact } from '../type_plus/branch/$exact.js'
6
+ import type { $ExactDefault, $ExactOptions } from '../type_plus/branch/$exact.js'
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -70,7 +70,7 @@ export type IsBoolean<T, $O extends IsBoolean.$Options = {}> = $SpecialType<
70
70
  >
71
71
  >
72
72
  export namespace IsBoolean {
73
- export type $Options = $Equality.$Options & $Exact.$Options
73
+ export type $Options = $Equality.$Options & $ExactOptions
74
74
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
75
75
 
76
76
  /**
@@ -81,10 +81,10 @@ export namespace IsBoolean {
81
81
  * This is a type util for building custom types.
82
82
  * It does not check against special types.
83
83
  */
84
- export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $Exact.$Default]> extends true
84
+ export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $ExactDefault]> extends true
85
85
  ? $IsDistributive<$O, { $then: _SD<T, $O>; $else: _N<T, $O> }>
86
86
  : Assignable.$<T, boolean, $O>
87
- export type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options
87
+ export type $UtilOptions = Assignable.$UtilOptions & $ExactOptions
88
88
 
89
89
  export type _SD<T, $O extends $Options> = IsBoolean._DistributeMap<T> extends infer R
90
90
  ? ['aBcD' | 'AbCd' | 'abcd'] extends [R]
@@ -3,7 +3,7 @@ import type { $Equality } from '../type_plus/$equality.js'
3
3
  import type { $MergeOptions } from '../type_plus/$merge_options.js'
4
4
  import type { $ResolveOptions } from '../type_plus/$resolve_options.js'
5
5
  import type { $SpecialType } from '../type_plus/$special_type.js'
6
- import type { $Exact } from '../type_plus/branch/$exact.js'
6
+ import type { $ExactOptions } from '../type_plus/branch/$exact.js'
7
7
  import type { $IsDistributive } from '../type_plus/branch/$is_distributive.js'
8
8
  import type { $ResolveBranch } from '../type_plus/branch/$resolve_branch.js'
9
9
  import type { $Else, $Then } from '../type_plus/branch/$selection.js'
@@ -72,7 +72,7 @@ export type IsNotBoolean<T, $O extends IsNotBoolean.$Options = {}> = $SpecialTyp
72
72
  >
73
73
 
74
74
  export namespace IsNotBoolean {
75
- export type $Options = $Equality.$Options & $Exact.$Options
75
+ export type $Options = $Equality.$Options & $ExactOptions
76
76
  export type $Branch<$O extends $Options = {}> = $Equality.$Branch<$O>
77
77
 
78
78
  /**
@@ -86,7 +86,7 @@ export namespace IsNotBoolean {
86
86
  export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], false]> extends true
87
87
  ? $IsDistributive<$O, { $then: _D<T, $O>; $else: _N<T, $O> }>
88
88
  : NotAssignable.$<T, boolean, $O>
89
- export type $UtilOptions = NotAssignable.$UtilOptions & $Exact.$Options
89
+ export type $UtilOptions = NotAssignable.$UtilOptions & $ExactOptions
90
90
 
91
91
  export type _D<T, $O extends $Options> = IsBoolean._DistributeMap<T> extends infer R
92
92
  ? ['aBcD' | 'AbCd' | 'abcd'] extends [R]
package/src/index.ts CHANGED
@@ -73,11 +73,11 @@ export type * from './numeric/is_numeric.js'
73
73
  export type * from './numeric/is_positive.js'
74
74
  export * as NumericPlus from './numeric/numeric_plus.js'
75
75
  export type * from './numeric/numeric_type.js'
76
- export type { Required, RequiredExcept, RequiredPick } from './object/Required.js'
77
76
  export * from './object/index.js'
78
77
  export type * from './object/is_not_object.js'
79
78
  export type * from './object/is_object.js'
80
79
  export * as ObjectPlus from './object/object_plus.js'
80
+ export type { Required, RequiredExcept, RequiredPick } from './object/Required.js'
81
81
  export type * from './predicates/assignable.js'
82
82
  export * from './predicates/index.js'
83
83
  export type * from './predicates/not_assignable.js'
@@ -125,6 +125,7 @@ export type * from './type_plus/branch/$selection_options.js'
125
125
  export type * from './undefined/has_undefined.js'
126
126
  export type * from './undefined/is_not_undefined.js'
127
127
  export type * from './undefined/is_undefined.js'
128
+ export type * from './union/sub_union.js'
128
129
  export type { IsUnion, UnionType } from './union/union.js'
129
130
  export type { UnionKeys } from './union_keys.js'
130
131
  export type * from './unknown/is_not_unknown.js'
@@ -136,3 +137,4 @@ export * from './utils/index.js'
136
137
  export type { TypePlusOptions } from './utils/options.js'
137
138
  export type * from './void/is_not_void.js'
138
139
  export type * from './void/is_void.js'
140
+