type-plus 7.6.2 → 8.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1980) hide show
  1. package/esm/any/any.d.ts +49 -0
  2. package/esm/any/any.d.ts.map +1 -0
  3. package/esm/any/any.js +2 -0
  4. package/esm/any/any.js.map +1 -0
  5. package/esm/any/is_any.d.ts +55 -0
  6. package/esm/any/is_any.d.ts.map +1 -0
  7. package/esm/any/is_any.js +2 -0
  8. package/esm/any/is_any.js.map +1 -0
  9. package/esm/any/is_not_any.d.ts +55 -0
  10. package/esm/any/is_not_any.d.ts.map +1 -0
  11. package/esm/any/is_not_any.js +2 -0
  12. package/esm/any/is_not_any.js.map +1 -0
  13. package/esm/array/array.at.d.ts +11 -4
  14. package/esm/array/array.at.d.ts.map +1 -1
  15. package/esm/array/array.at.js.map +1 -1
  16. package/esm/array/array.entries.d.ts +6 -3
  17. package/esm/array/array.entries.d.ts.map +1 -1
  18. package/esm/array/array.entries.js.map +1 -1
  19. package/esm/array/array.find_last.d.ts +5 -2
  20. package/esm/array/array.find_last.d.ts.map +1 -1
  21. package/esm/array/array.find_last.js.map +1 -1
  22. package/esm/array/array.reverse.d.ts +5 -1
  23. package/esm/array/array.reverse.d.ts.map +1 -1
  24. package/esm/array/array.reverse.js.map +1 -1
  25. package/esm/array/array.some.d.ts +7 -7
  26. package/esm/array/array.some.d.ts.map +1 -1
  27. package/esm/array/array.some.js.map +1 -1
  28. package/esm/array/array_plus.common_prop_keys.d.ts +9 -5
  29. package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -1
  30. package/esm/array/array_plus.common_prop_keys.js.map +1 -1
  31. package/esm/array/array_plus.concat.d.ts +1 -1
  32. package/esm/array/array_plus.concat.d.ts.map +1 -1
  33. package/esm/array/array_plus.concat.js.map +1 -1
  34. package/esm/array/array_plus.d.ts +3 -1
  35. package/esm/array/array_plus.d.ts.map +1 -1
  36. package/esm/array/array_plus.drop_match.d.ts +4 -3
  37. package/esm/array/array_plus.drop_match.d.ts.map +1 -1
  38. package/esm/array/array_plus.drop_match.js.map +1 -1
  39. package/esm/array/array_plus.element_match.d.ts +15 -12
  40. package/esm/array/array_plus.element_match.d.ts.map +1 -1
  41. package/esm/array/array_plus.element_match.js.map +1 -1
  42. package/esm/array/array_plus.filter.d.ts +28 -1
  43. package/esm/array/array_plus.filter.d.ts.map +1 -1
  44. package/esm/array/array_plus.filter.js +1 -0
  45. package/esm/array/array_plus.filter.js.map +1 -1
  46. package/esm/array/array_plus.find.d.ts +17 -14
  47. package/esm/array/array_plus.find.d.ts.map +1 -1
  48. package/esm/array/array_plus.find.js.map +1 -1
  49. package/esm/array/array_plus.index_at.d.ts +42 -0
  50. package/esm/array/array_plus.index_at.d.ts.map +1 -0
  51. package/esm/array/array_plus.index_at.js +84 -0
  52. package/esm/array/array_plus.index_at.js.map +1 -0
  53. package/esm/array/array_plus.is_index_out_of_bound.d.ts +21 -0
  54. package/esm/array/array_plus.is_index_out_of_bound.d.ts.map +1 -0
  55. package/esm/array/array_plus.is_index_out_of_bound.js +2 -0
  56. package/esm/array/array_plus.is_index_out_of_bound.js.map +1 -0
  57. package/esm/array/array_plus.is_readonly.d.ts +35 -0
  58. package/esm/array/array_plus.is_readonly.d.ts.map +1 -0
  59. package/esm/array/array_plus.is_readonly.js +2 -0
  60. package/esm/array/array_plus.is_readonly.js.map +1 -0
  61. package/esm/array/array_plus.js.map +1 -1
  62. package/esm/array/array_plus.pad_start.d.ts +1 -1
  63. package/esm/array/array_plus.pad_start.d.ts.map +1 -1
  64. package/esm/array/array_plus.pad_start.js.map +1 -1
  65. package/esm/array/array_plus.split_at.d.ts +23 -13
  66. package/esm/array/array_plus.split_at.d.ts.map +1 -1
  67. package/esm/array/array_plus.split_at.js.map +1 -1
  68. package/esm/array/filter.d.ts +2 -2
  69. package/esm/array/filter.d.ts.map +1 -1
  70. package/esm/array/filter.js.map +1 -1
  71. package/esm/array/find_first.d.ts +10 -7
  72. package/esm/array/find_first.d.ts.map +1 -1
  73. package/esm/array/find_first.js.map +1 -1
  74. package/esm/array/head.d.ts +7 -5
  75. package/esm/array/head.d.ts.map +1 -1
  76. package/esm/array/head.js.map +1 -1
  77. package/esm/array/intersect_of_props.d.ts +1 -1
  78. package/esm/array/intersect_of_props.d.ts.map +1 -1
  79. package/esm/array/intersect_of_props.js.map +1 -1
  80. package/esm/array/is_array.d.ts +89 -0
  81. package/esm/array/is_array.d.ts.map +1 -0
  82. package/esm/array/is_array.js +2 -0
  83. package/esm/array/is_array.js.map +1 -0
  84. package/esm/array/is_not_array.d.ts +89 -0
  85. package/esm/array/is_not_array.d.ts.map +1 -0
  86. package/esm/array/is_not_array.js +2 -0
  87. package/esm/array/is_not_array.js.map +1 -0
  88. package/esm/array/last.d.ts +7 -5
  89. package/esm/array/last.d.ts.map +1 -1
  90. package/esm/array/last.js.map +1 -1
  91. package/esm/array/literal_array.d.ts.map +1 -1
  92. package/esm/array/literal_array.js.map +1 -1
  93. package/esm/array/loose_array_type.d.ts +65 -0
  94. package/esm/array/loose_array_type.d.ts.map +1 -0
  95. package/esm/array/loose_array_type.js +2 -0
  96. package/esm/array/loose_array_type.js.map +1 -0
  97. package/esm/array/pad_start.d.ts +1 -1
  98. package/esm/array/pad_start.d.ts.map +1 -1
  99. package/esm/array/pad_start.js.map +1 -1
  100. package/esm/array/reduce_while.d.ts.map +1 -1
  101. package/esm/array/reduce_while.js.map +1 -1
  102. package/esm/array/reverse.d.ts.map +1 -1
  103. package/esm/array/reverse.js.map +1 -1
  104. package/esm/array/union_of_props.d.ts +2 -2
  105. package/esm/array/union_of_props.d.ts.map +1 -1
  106. package/esm/array/union_of_props.js.map +1 -1
  107. package/esm/array/union_of_values.d.ts +2 -2
  108. package/esm/array/union_of_values.d.ts.map +1 -1
  109. package/esm/array/union_of_values.js.map +1 -1
  110. package/esm/assertion/assert_type.d.ts +2 -2
  111. package/esm/assertion/assert_type.d.ts.map +1 -1
  112. package/esm/assertion/assert_type.js +44 -47
  113. package/esm/assertion/assert_type.js.map +1 -1
  114. package/esm/bigint/cast.d.ts.map +1 -1
  115. package/esm/bigint/cast.js.map +1 -1
  116. package/esm/bigint/is_bigint.d.ts +97 -0
  117. package/esm/bigint/is_bigint.d.ts.map +1 -0
  118. package/esm/bigint/is_bigint.js +2 -0
  119. package/esm/bigint/is_bigint.js.map +1 -0
  120. package/esm/bigint/is_bigint_literal.d.ts +85 -0
  121. package/esm/bigint/is_bigint_literal.d.ts.map +1 -0
  122. package/esm/bigint/is_bigint_literal.js +2 -0
  123. package/esm/bigint/is_bigint_literal.js.map +1 -0
  124. package/esm/bigint/is_not_bigint.d.ts +94 -0
  125. package/esm/bigint/is_not_bigint.d.ts.map +1 -0
  126. package/esm/bigint/is_not_bigint.js +2 -0
  127. package/esm/bigint/is_not_bigint.js.map +1 -0
  128. package/esm/bigint/is_not_bigint_literal.d.ts +83 -0
  129. package/esm/bigint/is_not_bigint_literal.d.ts.map +1 -0
  130. package/esm/bigint/is_not_bigint_literal.js +2 -0
  131. package/esm/bigint/is_not_bigint_literal.js.map +1 -0
  132. package/esm/binary/Bit.d.ts.map +1 -1
  133. package/esm/binary/Bit.js.map +1 -1
  134. package/esm/binary/_binary.d.ts.map +1 -1
  135. package/esm/binary/_binary.js.map +1 -1
  136. package/esm/binary/index.d.ts.map +1 -1
  137. package/esm/binary/index.js.map +1 -1
  138. package/esm/boolean/is_boolean.d.ts +91 -0
  139. package/esm/boolean/is_boolean.d.ts.map +1 -0
  140. package/esm/boolean/is_boolean.js +2 -0
  141. package/esm/boolean/is_boolean.js.map +1 -0
  142. package/esm/boolean/is_false.d.ts +78 -0
  143. package/esm/boolean/is_false.d.ts.map +1 -0
  144. package/esm/boolean/is_false.js +2 -0
  145. package/esm/boolean/is_false.js.map +1 -0
  146. package/esm/boolean/is_not_boolean.d.ts +91 -0
  147. package/esm/boolean/is_not_boolean.d.ts.map +1 -0
  148. package/esm/boolean/is_not_boolean.js +2 -0
  149. package/esm/boolean/is_not_boolean.js.map +1 -0
  150. package/esm/boolean/is_not_false.d.ts +79 -0
  151. package/esm/boolean/is_not_false.d.ts.map +1 -0
  152. package/esm/boolean/is_not_false.js +2 -0
  153. package/esm/boolean/is_not_false.js.map +1 -0
  154. package/esm/boolean/is_not_true.d.ts +80 -0
  155. package/esm/boolean/is_not_true.d.ts.map +1 -0
  156. package/esm/boolean/is_not_true.js +2 -0
  157. package/esm/boolean/is_not_true.js.map +1 -0
  158. package/esm/boolean/is_true.d.ts +78 -0
  159. package/esm/boolean/is_true.d.ts.map +1 -0
  160. package/esm/boolean/is_true.js +2 -0
  161. package/esm/boolean/is_true.js.map +1 -0
  162. package/esm/class/AnyConstructor.d.ts +1 -1
  163. package/esm/class/AnyConstructor.d.ts.map +1 -1
  164. package/esm/class/AnyConstructor.js.map +1 -1
  165. package/esm/class/index.d.ts.map +1 -1
  166. package/esm/class/index.js.map +1 -1
  167. package/esm/class/isConstructor.d.ts +1 -1
  168. package/esm/class/isConstructor.d.ts.map +1 -1
  169. package/esm/class/isConstructor.js +2 -2
  170. package/esm/class/isConstructor.js.map +1 -1
  171. package/esm/composable_types.d.ts.map +1 -1
  172. package/esm/composable_types.js.map +1 -1
  173. package/esm/equal/equal.d.ts +10 -6
  174. package/esm/equal/equal.d.ts.map +1 -1
  175. package/esm/equal/equal.js.map +1 -1
  176. package/esm/equal/identity_equal.d.ts +6 -0
  177. package/esm/equal/identity_equal.d.ts.map +1 -0
  178. package/esm/equal/identity_equal.js +2 -0
  179. package/esm/equal/identity_equal.js.map +1 -0
  180. package/esm/function/any_function.d.ts.map +1 -1
  181. package/esm/function/any_function.js.map +1 -1
  182. package/esm/function/extract_function.d.ts.map +1 -1
  183. package/esm/function/extract_function.js.map +1 -1
  184. package/esm/function/is_function.d.ts +61 -0
  185. package/esm/function/is_function.d.ts.map +1 -0
  186. package/esm/function/is_function.js +2 -0
  187. package/esm/function/is_function.js.map +1 -0
  188. package/esm/function/is_not_function.d.ts +73 -0
  189. package/esm/function/is_not_function.d.ts.map +1 -0
  190. package/esm/function/is_not_function.js +2 -0
  191. package/esm/function/is_not_function.js.map +1 -0
  192. package/esm/function/is_not_strict_function.d.ts +31 -0
  193. package/esm/function/is_not_strict_function.d.ts.map +1 -0
  194. package/esm/function/is_not_strict_function.js +2 -0
  195. package/esm/function/is_not_strict_function.js.map +1 -0
  196. package/esm/function/is_strict_function.d.ts +31 -0
  197. package/esm/function/is_strict_function.d.ts.map +1 -0
  198. package/esm/function/is_strict_function.js +2 -0
  199. package/esm/function/is_strict_function.js.map +1 -0
  200. package/esm/functional/ChainFn.d.ts.map +1 -1
  201. package/esm/functional/ChainFn.js.map +1 -1
  202. package/esm/functional/Maybe.d.ts +1 -1
  203. package/esm/functional/Maybe.d.ts.map +1 -1
  204. package/esm/functional/Maybe.js.map +1 -1
  205. package/esm/functional/compose.d.ts.map +1 -1
  206. package/esm/functional/compose.js +1 -0
  207. package/esm/functional/compose.js.map +1 -1
  208. package/esm/functional/context.d.ts.map +1 -1
  209. package/esm/functional/context.js +1 -1
  210. package/esm/functional/context.js.map +1 -1
  211. package/esm/functional/index.d.ts.map +1 -1
  212. package/esm/functional/index.js.map +1 -1
  213. package/esm/index.d.ts +83 -28
  214. package/esm/index.d.ts.map +1 -1
  215. package/esm/index.js +2 -0
  216. package/esm/index.js.map +1 -1
  217. package/esm/json.d.ts.map +1 -1
  218. package/esm/json.js.map +1 -1
  219. package/esm/math/abs.d.ts +4 -5
  220. package/esm/math/abs.d.ts.map +1 -1
  221. package/esm/math/abs.js.map +1 -1
  222. package/esm/math/add.d.ts.map +1 -1
  223. package/esm/math/add.js.map +1 -1
  224. package/esm/math/greater_than.d.ts +1 -1
  225. package/esm/math/greater_than.d.ts.map +1 -1
  226. package/esm/math/greater_than.js.map +1 -1
  227. package/esm/math/index.d.ts +1 -1
  228. package/esm/math/index.d.ts.map +1 -1
  229. package/esm/math/index.js.map +1 -1
  230. package/esm/math/math_plus.d.ts.map +1 -1
  231. package/esm/math/math_plus.js.map +1 -1
  232. package/esm/math/math_plus.to_negative.d.ts.map +1 -1
  233. package/esm/math/math_plus.to_negative.js.map +1 -1
  234. package/esm/math/max.d.ts +1 -1
  235. package/esm/math/max.d.ts.map +1 -1
  236. package/esm/math/max.js.map +1 -1
  237. package/esm/math/multiply.d.ts.map +1 -1
  238. package/esm/math/multiply.js.map +1 -1
  239. package/esm/math/numeric_struct.d.ts.map +1 -1
  240. package/esm/math/numeric_struct.js.map +1 -1
  241. package/esm/math/subtract.d.ts.map +1 -1
  242. package/esm/math/subtract.js.map +1 -1
  243. package/esm/mix_types/box.d.ts +47 -0
  244. package/esm/mix_types/box.d.ts.map +1 -0
  245. package/esm/mix_types/box.js +2 -0
  246. package/esm/mix_types/box.js.map +1 -0
  247. package/esm/mix_types/exclude.d.ts +19 -0
  248. package/esm/mix_types/exclude.d.ts.map +1 -0
  249. package/esm/mix_types/exclude.js +2 -0
  250. package/esm/mix_types/exclude.js.map +1 -0
  251. package/esm/mix_types/is_any_or_never.d.ts +28 -0
  252. package/esm/mix_types/is_any_or_never.d.ts.map +1 -0
  253. package/esm/mix_types/is_any_or_never.js +2 -0
  254. package/esm/mix_types/is_any_or_never.js.map +1 -0
  255. package/esm/mix_types/merge.d.ts +38 -0
  256. package/esm/mix_types/merge.d.ts.map +1 -0
  257. package/esm/mix_types/merge.js +14 -0
  258. package/esm/mix_types/merge.js.map +1 -0
  259. package/esm/never/is_never.d.ts +59 -0
  260. package/esm/never/is_never.d.ts.map +1 -0
  261. package/esm/never/is_never.js +2 -0
  262. package/esm/never/is_never.js.map +1 -0
  263. package/esm/never/is_not_never.d.ts +59 -0
  264. package/esm/never/is_not_never.d.ts.map +1 -0
  265. package/esm/never/is_not_never.js +2 -0
  266. package/esm/never/is_not_never.js.map +1 -0
  267. package/esm/never/never.d.ts +75 -0
  268. package/esm/never/never.d.ts.map +1 -0
  269. package/esm/never/never.js +2 -0
  270. package/esm/never/never.js.map +1 -0
  271. package/esm/nodejs/index.d.ts.map +1 -1
  272. package/esm/nodejs/index.js.map +1 -1
  273. package/esm/nodejs/isNodeError.d.ts.map +1 -1
  274. package/esm/nodejs/isNodeError.js.map +1 -1
  275. package/esm/nominal/brand.d.ts.map +1 -1
  276. package/esm/nominal/brand.js +1 -3
  277. package/esm/nominal/brand.js.map +1 -1
  278. package/esm/nominal/constants.d.ts.map +1 -1
  279. package/esm/nominal/constants.js.map +1 -1
  280. package/esm/nominal/flavor.d.ts.map +1 -1
  281. package/esm/nominal/flavor.js +1 -3
  282. package/esm/nominal/flavor.js.map +1 -1
  283. package/esm/nominal/index.d.ts.map +1 -1
  284. package/esm/nominal/index.js.map +1 -1
  285. package/esm/nominal/nominal_match.d.ts.map +1 -1
  286. package/esm/nominal/nominal_match.js +1 -3
  287. package/esm/nominal/nominal_match.js.map +1 -1
  288. package/esm/null/is_not_null.d.ts +71 -0
  289. package/esm/null/is_not_null.d.ts.map +1 -0
  290. package/esm/null/is_not_null.js +2 -0
  291. package/esm/null/is_not_null.js.map +1 -0
  292. package/esm/null/is_null.d.ts +75 -0
  293. package/esm/null/is_null.d.ts.map +1 -0
  294. package/esm/null/is_null.js +2 -0
  295. package/esm/null/is_null.js.map +1 -0
  296. package/esm/number/cast.d.ts.map +1 -1
  297. package/esm/number/cast.js.map +1 -1
  298. package/esm/number/is_not_number.d.ts +84 -0
  299. package/esm/number/is_not_number.d.ts.map +1 -0
  300. package/esm/number/is_not_number.js +2 -0
  301. package/esm/number/is_not_number.js.map +1 -0
  302. package/esm/number/is_not_number_literal.d.ts +83 -0
  303. package/esm/number/is_not_number_literal.d.ts.map +1 -0
  304. package/esm/number/is_not_number_literal.js +2 -0
  305. package/esm/number/is_not_number_literal.js.map +1 -0
  306. package/esm/number/is_number.d.ts +87 -0
  307. package/esm/number/is_number.d.ts.map +1 -0
  308. package/esm/number/is_number.js +2 -0
  309. package/esm/number/is_number.js.map +1 -0
  310. package/esm/number/is_number_literal.d.ts +85 -0
  311. package/esm/number/is_number_literal.d.ts.map +1 -0
  312. package/esm/number/is_number_literal.js +2 -0
  313. package/esm/number/is_number_literal.js.map +1 -0
  314. package/esm/number/number_array.d.ts.map +1 -1
  315. package/esm/number/number_array.js.map +1 -1
  316. package/esm/number/number_plus.d.ts +11 -6
  317. package/esm/number/number_plus.d.ts.map +1 -1
  318. package/esm/number/number_plus.js +1 -0
  319. package/esm/number/number_plus.js.map +1 -1
  320. package/esm/numeric/cast.d.ts.map +1 -1
  321. package/esm/numeric/cast.js.map +1 -1
  322. package/esm/numeric/is_integer.d.ts +30 -0
  323. package/esm/numeric/is_integer.d.ts.map +1 -0
  324. package/esm/numeric/is_integer.js +2 -0
  325. package/esm/numeric/is_integer.js.map +1 -0
  326. package/esm/numeric/is_negative.d.ts +35 -0
  327. package/esm/numeric/is_negative.d.ts.map +1 -0
  328. package/esm/numeric/is_negative.js +2 -0
  329. package/esm/numeric/is_negative.js.map +1 -0
  330. package/esm/numeric/is_not_integer.d.ts +32 -0
  331. package/esm/numeric/is_not_integer.d.ts.map +1 -0
  332. package/esm/numeric/is_not_integer.js +2 -0
  333. package/esm/numeric/is_not_integer.js.map +1 -0
  334. package/esm/numeric/is_not_negative.d.ts +35 -0
  335. package/esm/numeric/is_not_negative.d.ts.map +1 -0
  336. package/esm/numeric/is_not_negative.js +2 -0
  337. package/esm/numeric/is_not_negative.js.map +1 -0
  338. package/esm/numeric/is_not_numeric.d.ts +19 -0
  339. package/esm/numeric/is_not_numeric.d.ts.map +1 -0
  340. package/esm/numeric/is_not_numeric.js +2 -0
  341. package/esm/numeric/is_not_numeric.js.map +1 -0
  342. package/esm/numeric/is_not_positive.d.ts +36 -0
  343. package/esm/numeric/is_not_positive.d.ts.map +1 -0
  344. package/esm/numeric/is_not_positive.js +2 -0
  345. package/esm/numeric/is_not_positive.js.map +1 -0
  346. package/esm/numeric/is_numeric.d.ts +19 -0
  347. package/esm/numeric/is_numeric.d.ts.map +1 -0
  348. package/esm/numeric/is_numeric.js +2 -0
  349. package/esm/numeric/is_numeric.js.map +1 -0
  350. package/esm/numeric/is_positive.d.ts +35 -0
  351. package/esm/numeric/is_positive.d.ts.map +1 -0
  352. package/esm/numeric/is_positive.js +2 -0
  353. package/esm/numeric/is_positive.js.map +1 -0
  354. package/esm/numeric/numeric_plus.d.ts +9 -4
  355. package/esm/numeric/numeric_plus.d.ts.map +1 -1
  356. package/esm/numeric/numeric_plus.js.map +1 -1
  357. package/esm/numeric/numeric_type.d.ts +0 -50
  358. package/esm/numeric/numeric_type.d.ts.map +1 -1
  359. package/esm/numeric/numeric_type.js.map +1 -1
  360. package/esm/object/ANotB.d.ts +1 -1
  361. package/esm/object/ANotB.d.ts.map +1 -1
  362. package/esm/object/ANotB.js.map +1 -1
  363. package/esm/object/ExcludePropType.d.ts.map +1 -1
  364. package/esm/object/ExcludePropType.js.map +1 -1
  365. package/esm/object/IsDisjoint.d.ts +1 -1
  366. package/esm/object/IsDisjoint.d.ts.map +1 -1
  367. package/esm/object/IsDisjoint.js.map +1 -1
  368. package/esm/object/IsRecord.d.ts.map +1 -1
  369. package/esm/object/IsRecord.js.map +1 -1
  370. package/esm/object/KeyTypes.d.ts.map +1 -1
  371. package/esm/object/KeyTypes.js.map +1 -1
  372. package/esm/object/KeyofOptional.d.ts.map +1 -1
  373. package/esm/object/KeyofOptional.js.map +1 -1
  374. package/esm/object/KeysWithDiffType.d.ts +2 -2
  375. package/esm/object/KeysWithDiffType.d.ts.map +1 -1
  376. package/esm/object/KeysWithDiffType.js.map +1 -1
  377. package/esm/object/KnownKeys.d.ts.map +1 -1
  378. package/esm/object/KnownKeys.js.map +1 -1
  379. package/esm/object/Partial.d.ts.map +1 -1
  380. package/esm/object/Partial.js.map +1 -1
  381. package/esm/object/RecursiveIntersect.d.ts +2 -2
  382. package/esm/object/RecursiveIntersect.d.ts.map +1 -1
  383. package/esm/object/RecursiveIntersect.js.map +1 -1
  384. package/esm/object/RecursiveRequired.d.ts +1 -1
  385. package/esm/object/RecursiveRequired.d.ts.map +1 -1
  386. package/esm/object/RecursiveRequired.js.map +1 -1
  387. package/esm/object/Required.d.ts +1 -2
  388. package/esm/object/Required.d.ts.map +1 -1
  389. package/esm/object/Required.js.map +1 -1
  390. package/esm/object/RequiredKeys.d.ts +2 -2
  391. package/esm/object/RequiredKeys.d.ts.map +1 -1
  392. package/esm/object/RequiredKeys.js.map +1 -1
  393. package/esm/object/SpreadRecord.d.ts.map +1 -1
  394. package/esm/object/SpreadRecord.js.map +1 -1
  395. package/esm/object/ValueOf.d.ts.map +1 -1
  396. package/esm/object/ValueOf.js.map +1 -1
  397. package/esm/object/any_record.d.ts +3 -0
  398. package/esm/object/any_record.d.ts.map +1 -0
  399. package/esm/object/any_record.js +2 -0
  400. package/esm/object/any_record.js.map +1 -0
  401. package/esm/object/everyKey.d.ts.map +1 -1
  402. package/esm/object/everyKey.js.map +1 -1
  403. package/esm/object/facade.d.ts +1 -1
  404. package/esm/object/facade.d.ts.map +1 -1
  405. package/esm/object/facade.js.map +1 -1
  406. package/esm/object/filterKey.d.ts.map +1 -1
  407. package/esm/object/filterKey.js.map +1 -1
  408. package/esm/object/findKey.d.ts.map +1 -1
  409. package/esm/object/findKey.js.map +1 -1
  410. package/esm/object/forEachKey.d.ts.map +1 -1
  411. package/esm/object/forEachKey.js +1 -1
  412. package/esm/object/forEachKey.js.map +1 -1
  413. package/esm/object/getField.d.ts.map +1 -1
  414. package/esm/object/getField.js.map +1 -1
  415. package/esm/object/hasKey.d.ts +1 -1
  416. package/esm/object/hasKey.d.ts.map +1 -1
  417. package/esm/object/hasKey.js.map +1 -1
  418. package/esm/object/hasProperty.d.ts.map +1 -1
  419. package/esm/object/hasProperty.js.map +1 -1
  420. package/esm/object/index.d.ts +15 -16
  421. package/esm/object/index.d.ts.map +1 -1
  422. package/esm/object/index.js.map +1 -1
  423. package/esm/object/is_not_object.d.ts +119 -0
  424. package/esm/object/is_not_object.d.ts.map +1 -0
  425. package/esm/object/is_not_object.js +2 -0
  426. package/esm/object/is_not_object.js.map +1 -0
  427. package/esm/object/is_object.d.ts +104 -0
  428. package/esm/object/is_object.d.ts.map +1 -0
  429. package/esm/object/is_object.js +2 -0
  430. package/esm/object/is_object.js.map +1 -0
  431. package/esm/object/left_join.d.ts +1 -6
  432. package/esm/object/left_join.d.ts.map +1 -1
  433. package/esm/object/left_join.js.map +1 -1
  434. package/esm/object/mapKey.d.ts.map +1 -1
  435. package/esm/object/mapKey.js.map +1 -1
  436. package/esm/object/mapProperties.d.ts +1 -1
  437. package/esm/object/mapProperties.d.ts.map +1 -1
  438. package/esm/object/mapProperties.js.map +1 -1
  439. package/esm/object/merge.d.ts +80 -0
  440. package/esm/object/merge.d.ts.map +1 -0
  441. package/esm/object/merge.js +2 -0
  442. package/esm/object/merge.js.map +1 -0
  443. package/esm/object/object_plus.d.ts +2 -0
  444. package/esm/object/object_plus.d.ts.map +1 -0
  445. package/esm/object/object_plus.js +2 -0
  446. package/esm/object/object_plus.js.map +1 -0
  447. package/esm/object/omit.d.ts +1 -8
  448. package/esm/object/omit.d.ts.map +1 -1
  449. package/esm/object/omit.js.map +1 -1
  450. package/esm/object/optional_key.d.ts +2 -2
  451. package/esm/object/optional_key.d.ts.map +1 -1
  452. package/esm/object/optional_key.js.map +1 -1
  453. package/esm/object/pick.d.ts +1 -1
  454. package/esm/object/pick.d.ts.map +1 -1
  455. package/esm/object/pick.js.map +1 -1
  456. package/esm/object/properties.d.ts.map +1 -1
  457. package/esm/object/properties.js.map +1 -1
  458. package/esm/object/record.d.ts.map +1 -1
  459. package/esm/object/record.js.map +1 -1
  460. package/esm/object/recursive_partial.d.ts +1 -1
  461. package/esm/object/recursive_partial.d.ts.map +1 -1
  462. package/esm/object/recursive_partial.js.map +1 -1
  463. package/esm/object/reduceKey.d.ts.map +1 -1
  464. package/esm/object/reduceKey.js.map +1 -1
  465. package/esm/object/replaceProperty.d.ts +1 -1
  466. package/esm/object/replaceProperty.d.ts.map +1 -1
  467. package/esm/object/replaceProperty.js.map +1 -1
  468. package/esm/object/someKey.d.ts.map +1 -1
  469. package/esm/object/someKey.js.map +1 -1
  470. package/esm/object/split.d.ts +2 -3
  471. package/esm/object/split.d.ts.map +1 -1
  472. package/esm/object/split.js.map +1 -1
  473. package/esm/object/typeOverrideIncompatible.d.ts.map +1 -1
  474. package/esm/object/typeOverrideIncompatible.js +4 -6
  475. package/esm/object/typeOverrideIncompatible.js.map +1 -1
  476. package/esm/predicates/CanAssign.d.ts +12 -4
  477. package/esm/predicates/CanAssign.d.ts.map +1 -1
  478. package/esm/predicates/CanAssign.js.map +1 -1
  479. package/esm/predicates/Extends.d.ts +3 -0
  480. package/esm/predicates/Extends.d.ts.map +1 -1
  481. package/esm/predicates/Extends.js.map +1 -1
  482. package/esm/predicates/If.d.ts.map +1 -1
  483. package/esm/predicates/If.js.map +1 -1
  484. package/esm/predicates/IsEmptyObject.d.ts.map +1 -1
  485. package/esm/predicates/IsEmptyObject.js.map +1 -1
  486. package/esm/predicates/assignable.d.ts +89 -0
  487. package/esm/predicates/assignable.d.ts.map +1 -0
  488. package/esm/predicates/assignable.js +2 -0
  489. package/esm/predicates/assignable.js.map +1 -0
  490. package/esm/predicates/index.d.ts.map +1 -1
  491. package/esm/predicates/index.js.map +1 -1
  492. package/esm/predicates/literal.d.ts +1 -1
  493. package/esm/predicates/literal.d.ts.map +1 -1
  494. package/esm/predicates/literal.js.map +1 -1
  495. package/esm/predicates/logical.d.ts.map +1 -1
  496. package/esm/predicates/logical.js.map +1 -1
  497. package/esm/predicates/not_assignable.d.ts +89 -0
  498. package/esm/predicates/not_assignable.d.ts.map +1 -0
  499. package/esm/predicates/not_assignable.js +2 -0
  500. package/esm/predicates/not_assignable.js.map +1 -0
  501. package/esm/primitive.d.ts.map +1 -1
  502. package/esm/primitive.js.map +1 -1
  503. package/esm/promise/MaybePromise.d.ts.map +1 -1
  504. package/esm/promise/MaybePromise.js.map +1 -1
  505. package/esm/promise/PromiseValue.d.ts.map +1 -1
  506. package/esm/promise/PromiseValue.js.map +1 -1
  507. package/esm/promise/PromiseValueMerge.d.ts.map +1 -1
  508. package/esm/promise/PromiseValueMerge.js.map +1 -1
  509. package/esm/promise/index.d.ts +1 -1
  510. package/esm/promise/index.d.ts.map +1 -1
  511. package/esm/promise/index.js.map +1 -1
  512. package/esm/promise/isPromise.d.ts.map +1 -1
  513. package/esm/promise/isPromise.js.map +1 -1
  514. package/esm/promise/mapSeries.d.ts.map +1 -1
  515. package/esm/promise/mapSeries.js.map +1 -1
  516. package/esm/string/$extract_manipulated_string.d.ts +18 -0
  517. package/esm/string/$extract_manipulated_string.d.ts.map +1 -0
  518. package/esm/string/$extract_manipulated_string.js +2 -0
  519. package/esm/string/$extract_manipulated_string.js.map +1 -0
  520. package/esm/string/_string_type.d.ts +5 -0
  521. package/esm/string/_string_type.d.ts.map +1 -0
  522. package/esm/string/_string_type.js +2 -0
  523. package/esm/string/_string_type.js.map +1 -0
  524. package/esm/string/is_not_string.d.ts +84 -0
  525. package/esm/string/is_not_string.d.ts.map +1 -0
  526. package/esm/string/is_not_string.js +2 -0
  527. package/esm/string/is_not_string.js.map +1 -0
  528. package/esm/string/is_not_string_literal.d.ts +104 -0
  529. package/esm/string/is_not_string_literal.d.ts.map +1 -0
  530. package/esm/string/is_not_string_literal.js +2 -0
  531. package/esm/string/is_not_string_literal.js.map +1 -0
  532. package/esm/string/is_not_template_literal.d.ts +73 -0
  533. package/esm/string/is_not_template_literal.d.ts.map +1 -0
  534. package/esm/string/is_not_template_literal.js +2 -0
  535. package/esm/string/is_not_template_literal.js.map +1 -0
  536. package/esm/string/is_string.d.ts +83 -0
  537. package/esm/string/is_string.d.ts.map +1 -0
  538. package/esm/string/is_string.js +2 -0
  539. package/esm/string/is_string.js.map +1 -0
  540. package/esm/string/is_string_literal.d.ts +104 -0
  541. package/esm/string/is_string_literal.d.ts.map +1 -0
  542. package/esm/string/is_string_literal.js +2 -0
  543. package/esm/string/is_string_literal.js.map +1 -0
  544. package/esm/string/is_template_literal.d.ts +75 -0
  545. package/esm/string/is_template_literal.d.ts.map +1 -0
  546. package/esm/string/is_template_literal.js +2 -0
  547. package/esm/string/is_template_literal.js.map +1 -0
  548. package/esm/string/string.d.ts +1 -1
  549. package/esm/string/string.d.ts.map +1 -1
  550. package/esm/string/string.js.map +1 -1
  551. package/esm/string/string_plus.d.ts.map +1 -1
  552. package/esm/string/string_plus.js.map +1 -1
  553. package/esm/symbol/is_not_symbol.d.ts +71 -0
  554. package/esm/symbol/is_not_symbol.d.ts.map +1 -0
  555. package/esm/symbol/is_not_symbol.js +2 -0
  556. package/esm/symbol/is_not_symbol.js.map +1 -0
  557. package/esm/symbol/is_symbol.d.ts +73 -0
  558. package/esm/symbol/is_symbol.d.ts.map +1 -0
  559. package/esm/symbol/is_symbol.js +2 -0
  560. package/esm/symbol/is_symbol.js.map +1 -0
  561. package/esm/testing/stub.d.ts.map +1 -1
  562. package/esm/testing/stub.js.map +1 -1
  563. package/esm/testing/test_type.d.ts +84 -44
  564. package/esm/testing/test_type.d.ts.map +1 -1
  565. package/esm/testing/test_type.js.map +1 -1
  566. package/esm/tuple/common_prop_keys.d.ts +1 -1
  567. package/esm/tuple/common_prop_keys.d.ts.map +1 -1
  568. package/esm/tuple/common_prop_keys.js.map +1 -1
  569. package/esm/tuple/create_tuple.d.ts +2 -2
  570. package/esm/tuple/create_tuple.d.ts.map +1 -1
  571. package/esm/tuple/create_tuple.js.map +1 -1
  572. package/esm/tuple/drop.d.ts +8 -8
  573. package/esm/tuple/drop.d.ts.map +1 -1
  574. package/esm/tuple/drop.js.map +1 -1
  575. package/esm/tuple/is_not_tuple.d.ts +78 -0
  576. package/esm/tuple/is_not_tuple.d.ts.map +1 -0
  577. package/esm/tuple/is_not_tuple.js +2 -0
  578. package/esm/tuple/is_not_tuple.js.map +1 -0
  579. package/esm/tuple/is_tuple.d.ts +76 -0
  580. package/esm/tuple/is_tuple.d.ts.map +1 -0
  581. package/esm/tuple/is_tuple.js +2 -0
  582. package/esm/tuple/is_tuple.js.map +1 -0
  583. package/esm/tuple/tail.d.ts +1 -1
  584. package/esm/tuple/tail.d.ts.map +1 -1
  585. package/esm/tuple/tail.js.map +1 -1
  586. package/esm/tuple/tuple_plus.common_prop_keys.d.ts +9 -5
  587. package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -1
  588. package/esm/tuple/tuple_plus.common_prop_keys.js.map +1 -1
  589. package/esm/tuple/tuple_plus.d.ts.map +1 -1
  590. package/esm/tuple/tuple_plus.drop_match.d.ts.map +1 -1
  591. package/esm/tuple/tuple_plus.drop_match.js.map +1 -1
  592. package/esm/tuple/tuple_plus.filter.d.ts +1 -1
  593. package/esm/tuple/tuple_plus.filter.d.ts.map +1 -1
  594. package/esm/tuple/tuple_plus.filter.js.map +1 -1
  595. package/esm/tuple/tuple_plus.find.d.ts +21 -18
  596. package/esm/tuple/tuple_plus.find.d.ts.map +1 -1
  597. package/esm/tuple/tuple_plus.find.js.map +1 -1
  598. package/esm/tuple/tuple_plus.js.map +1 -1
  599. package/esm/tuple/tuple_plus.pad_start.d.ts +3 -3
  600. package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
  601. package/esm/tuple/tuple_plus.pad_start.js.map +1 -1
  602. package/esm/type/failed.d.ts.map +1 -1
  603. package/esm/type/failed.js.map +1 -1
  604. package/esm/type/no_infer.d.ts +4 -3
  605. package/esm/type/no_infer.d.ts.map +1 -1
  606. package/esm/type/no_infer.js.map +1 -1
  607. package/esm/type-guard/is_type.d.ts +1 -1
  608. package/esm/type-guard/is_type.d.ts.map +1 -1
  609. package/esm/type-guard/is_type.js +3 -7
  610. package/esm/type-guard/is_type.js.map +1 -1
  611. package/esm/type_plus/$equality.d.ts +12 -0
  612. package/esm/type_plus/$equality.d.ts.map +1 -0
  613. package/esm/type_plus/$equality.js +2 -0
  614. package/esm/type_plus/$equality.js.map +1 -0
  615. package/esm/type_plus/$error.d.ts +8 -0
  616. package/esm/type_plus/$error.d.ts.map +1 -0
  617. package/esm/type_plus/$error.js +2 -0
  618. package/esm/type_plus/$error.js.map +1 -0
  619. package/esm/type_plus/$infer_error.d.ts +21 -0
  620. package/esm/type_plus/$infer_error.d.ts.map +1 -0
  621. package/esm/type_plus/$infer_error.js +2 -0
  622. package/esm/type_plus/$infer_error.js.map +1 -0
  623. package/esm/type_plus/$merge_options.d.ts +11 -0
  624. package/esm/type_plus/$merge_options.d.ts.map +1 -0
  625. package/esm/type_plus/$merge_options.js +2 -0
  626. package/esm/type_plus/$merge_options.js.map +1 -0
  627. package/esm/type_plus/$resolve_options.d.ts +11 -0
  628. package/esm/type_plus/$resolve_options.d.ts.map +1 -0
  629. package/esm/type_plus/$resolve_options.js +2 -0
  630. package/esm/type_plus/$resolve_options.js.map +1 -0
  631. package/esm/type_plus/$special_type.d.ts +25 -0
  632. package/esm/type_plus/$special_type.d.ts.map +1 -0
  633. package/esm/type_plus/$special_type.js +2 -0
  634. package/esm/type_plus/$special_type.js.map +1 -0
  635. package/esm/type_plus/$type.d.ts +11 -0
  636. package/esm/type_plus/$type.d.ts.map +1 -0
  637. package/esm/type_plus/$type.js +2 -0
  638. package/esm/type_plus/$type.js.map +1 -0
  639. package/esm/type_plus/branch/$branch.d.ts +29 -0
  640. package/esm/type_plus/branch/$branch.d.ts.map +1 -0
  641. package/esm/type_plus/branch/$branch.js +2 -0
  642. package/esm/type_plus/branch/$branch.js.map +1 -0
  643. package/esm/type_plus/branch/$distributive.d.ts +19 -0
  644. package/esm/type_plus/branch/$distributive.d.ts.map +1 -0
  645. package/esm/type_plus/branch/$distributive.js +2 -0
  646. package/esm/type_plus/branch/$distributive.js.map +1 -0
  647. package/esm/type_plus/branch/$exact.d.ts +27 -0
  648. package/esm/type_plus/branch/$exact.d.ts.map +1 -0
  649. package/esm/type_plus/branch/$exact.js +2 -0
  650. package/esm/type_plus/branch/$exact.js.map +1 -0
  651. package/esm/type_plus/branch/$input_options.d.ts +10 -0
  652. package/esm/type_plus/branch/$input_options.d.ts.map +1 -0
  653. package/esm/type_plus/branch/$input_options.js +2 -0
  654. package/esm/type_plus/branch/$input_options.js.map +1 -0
  655. package/esm/type_plus/branch/$is_distributive.d.ts +6 -0
  656. package/esm/type_plus/branch/$is_distributive.d.ts.map +1 -0
  657. package/esm/type_plus/branch/$is_distributive.js +2 -0
  658. package/esm/type_plus/branch/$is_distributive.js.map +1 -0
  659. package/esm/type_plus/branch/$override.d.ts +21 -0
  660. package/esm/type_plus/branch/$override.d.ts.map +1 -0
  661. package/esm/type_plus/branch/$override.js +2 -0
  662. package/esm/type_plus/branch/$override.js.map +1 -0
  663. package/esm/type_plus/branch/$resolve_branch.d.ts +30 -0
  664. package/esm/type_plus/branch/$resolve_branch.d.ts.map +1 -0
  665. package/esm/type_plus/branch/$resolve_branch.js +2 -0
  666. package/esm/type_plus/branch/$resolve_branch.js.map +1 -0
  667. package/esm/type_plus/branch/$select.d.ts +79 -0
  668. package/esm/type_plus/branch/$select.d.ts.map +1 -0
  669. package/esm/type_plus/branch/$select.js +2 -0
  670. package/esm/type_plus/branch/$select.js.map +1 -0
  671. package/esm/type_plus/branch/$select_invert.d.ts +77 -0
  672. package/esm/type_plus/branch/$select_invert.d.ts.map +1 -0
  673. package/esm/type_plus/branch/$select_invert.js +2 -0
  674. package/esm/type_plus/branch/$select_invert.js.map +1 -0
  675. package/esm/type_plus/branch/$select_invert_strict.d.ts +78 -0
  676. package/esm/type_plus/branch/$select_invert_strict.d.ts.map +1 -0
  677. package/esm/type_plus/branch/$select_invert_strict.js +2 -0
  678. package/esm/type_plus/branch/$select_invert_strict.js.map +1 -0
  679. package/esm/type_plus/branch/$select_strict.d.ts +79 -0
  680. package/esm/type_plus/branch/$select_strict.d.ts.map +1 -0
  681. package/esm/type_plus/branch/$select_strict.js +2 -0
  682. package/esm/type_plus/branch/$select_strict.js.map +1 -0
  683. package/esm/type_plus/branch/$selection.d.ts +127 -0
  684. package/esm/type_plus/branch/$selection.d.ts.map +1 -0
  685. package/esm/type_plus/branch/$selection.js +2 -0
  686. package/esm/type_plus/branch/$selection.js.map +1 -0
  687. package/esm/type_plus/branch/$selection_options.d.ts +37 -0
  688. package/esm/type_plus/branch/$selection_options.d.ts.map +1 -0
  689. package/esm/type_plus/branch/$selection_options.js +2 -0
  690. package/esm/type_plus/branch/$selection_options.js.map +1 -0
  691. package/esm/undefined/has_undefined.d.ts +41 -0
  692. package/esm/undefined/has_undefined.d.ts.map +1 -0
  693. package/esm/undefined/has_undefined.js +2 -0
  694. package/esm/undefined/has_undefined.js.map +1 -0
  695. package/esm/undefined/is_not_undefined.d.ts +72 -0
  696. package/esm/undefined/is_not_undefined.d.ts.map +1 -0
  697. package/esm/undefined/is_not_undefined.js +2 -0
  698. package/esm/undefined/is_not_undefined.js.map +1 -0
  699. package/esm/undefined/is_undefined.d.ts +75 -0
  700. package/esm/undefined/is_undefined.d.ts.map +1 -0
  701. package/esm/undefined/is_undefined.js +2 -0
  702. package/esm/undefined/is_undefined.js.map +1 -0
  703. package/esm/union/union.d.ts +1 -1
  704. package/esm/union/union.d.ts.map +1 -1
  705. package/esm/union/union.js.map +1 -1
  706. package/esm/union/union_to_intersection.d.ts.map +1 -1
  707. package/esm/union/union_to_intersection.js.map +1 -1
  708. package/esm/union_keys.d.ts.map +1 -1
  709. package/esm/union_keys.js.map +1 -1
  710. package/esm/unknown/is_not_unknown.d.ts +53 -0
  711. package/esm/unknown/is_not_unknown.d.ts.map +1 -0
  712. package/esm/unknown/is_not_unknown.js +2 -0
  713. package/esm/unknown/is_not_unknown.js.map +1 -0
  714. package/esm/unknown/is_unknown.d.ts +53 -0
  715. package/esm/unknown/is_unknown.d.ts.map +1 -0
  716. package/esm/unknown/is_unknown.js +2 -0
  717. package/esm/unknown/is_unknown.js.map +1 -0
  718. package/esm/unknown/not_unknown_or.d.ts +30 -0
  719. package/esm/unknown/not_unknown_or.d.ts.map +1 -0
  720. package/esm/unknown/not_unknown_or.js +2 -0
  721. package/esm/unknown/not_unknown_or.js.map +1 -0
  722. package/esm/unknown/unknown.d.ts +55 -0
  723. package/esm/unknown/unknown.d.ts.map +1 -0
  724. package/esm/unknown/unknown.js +2 -0
  725. package/esm/unknown/unknown.js.map +1 -0
  726. package/esm/unpartial.d.ts.map +1 -1
  727. package/esm/unpartial.js.map +1 -1
  728. package/esm/utils/Widen.d.ts.map +1 -1
  729. package/esm/utils/Widen.js.map +1 -1
  730. package/esm/utils/as.d.ts.map +1 -1
  731. package/esm/utils/as.js.map +1 -1
  732. package/esm/utils/index.d.ts +0 -2
  733. package/esm/utils/index.d.ts.map +1 -1
  734. package/esm/utils/index.js.map +1 -1
  735. package/esm/utils/inspect.d.ts.map +1 -1
  736. package/esm/utils/inspect.js.map +1 -1
  737. package/esm/utils/options.d.ts +14 -9
  738. package/esm/utils/options.d.ts.map +1 -1
  739. package/esm/utils/options.js.map +1 -1
  740. package/esm/void/is_not_void.d.ts +78 -0
  741. package/esm/void/is_not_void.d.ts.map +1 -0
  742. package/esm/void/is_not_void.js +2 -0
  743. package/esm/void/is_not_void.js.map +1 -0
  744. package/esm/void/is_void.d.ts +79 -0
  745. package/esm/void/is_void.d.ts.map +1 -0
  746. package/esm/void/is_void.js +2 -0
  747. package/esm/void/is_void.js.map +1 -0
  748. package/package.json +31 -33
  749. package/readme.md +1376 -0
  750. package/src/any/any.ts +46 -0
  751. package/src/any/is_any.ts +59 -0
  752. package/src/any/is_not_any.ts +59 -0
  753. package/src/any/readme.md +104 -0
  754. package/src/array/array.at.ts +40 -0
  755. package/src/array/array.entries.ts +28 -0
  756. package/src/array/array.find_last.ts +31 -0
  757. package/src/array/array.reverse.ts +25 -0
  758. package/src/array/array.some.ts +67 -0
  759. package/src/array/array_plus.common_prop_keys.ts +38 -0
  760. package/src/array/array_plus.concat.ts +15 -0
  761. package/src/array/array_plus.drop_match.ts +16 -0
  762. package/src/array/array_plus.element_match.ts +61 -0
  763. package/src/array/array_plus.filter.ts +52 -0
  764. package/src/array/array_plus.find.ts +71 -0
  765. package/src/array/array_plus.index_at.ts +169 -0
  766. package/src/array/array_plus.is_index_out_of_bound.ts +24 -0
  767. package/src/array/array_plus.is_readonly.ts +50 -0
  768. package/src/array/array_plus.pad_start.ts +13 -0
  769. package/src/array/array_plus.split_at.ts +79 -0
  770. package/src/array/array_plus.ts +16 -0
  771. package/src/array/filter.ts +32 -0
  772. package/src/array/find_first.ts +73 -0
  773. package/src/array/head.ts +45 -0
  774. package/src/array/intersect_of_props.ts +21 -0
  775. package/src/array/is_array.ts +116 -0
  776. package/src/array/is_not_array.ts +114 -0
  777. package/src/array/last.ts +42 -0
  778. package/src/array/loose_array_type.ts +71 -0
  779. package/src/array/pad_start.ts +39 -0
  780. package/src/array/readme.md +567 -0
  781. package/src/array/union_of_props.ts +17 -0
  782. package/src/array/union_of_values.ts +14 -0
  783. package/src/assertion/assert_type.ts +117 -0
  784. package/src/bigint/is_bigint.ts +114 -0
  785. package/src/bigint/is_bigint_literal.ts +100 -0
  786. package/src/bigint/is_not_bigint.ts +110 -0
  787. package/src/bigint/is_not_bigint_literal.ts +101 -0
  788. package/src/bigint/readme.md +109 -0
  789. package/src/boolean/is_boolean.ts +126 -0
  790. package/src/boolean/is_false.ts +85 -0
  791. package/src/boolean/is_not_boolean.ts +109 -0
  792. package/src/boolean/is_not_false.ts +86 -0
  793. package/src/boolean/is_not_true.ts +86 -0
  794. package/src/boolean/is_true.ts +85 -0
  795. package/src/boolean/readme.md +430 -0
  796. package/src/class/AnyConstructor.ts +1 -0
  797. package/src/class/isConstructor.ts +34 -0
  798. package/src/equal/equal.ts +135 -0
  799. package/src/equal/identity_equal.ts +9 -0
  800. package/src/function/is_function.ts +62 -0
  801. package/src/function/is_not_function.ts +75 -0
  802. package/src/function/is_not_strict_function.ts +40 -0
  803. package/src/function/is_strict_function.ts +43 -0
  804. package/src/functional/Maybe.ts +22 -0
  805. package/src/functional/compose.ts +18 -0
  806. package/src/functional/context.ts +66 -0
  807. package/src/index.ts +139 -0
  808. package/src/math/abs.ts +23 -0
  809. package/src/math/greater_than.ts +12 -0
  810. package/src/math/index.ts +7 -0
  811. package/src/math/max.ts +13 -0
  812. package/src/math/numeric_struct.ts +656 -0
  813. package/src/mix_types/box.ts +74 -0
  814. package/src/mix_types/exclude.ts +18 -0
  815. package/src/mix_types/is_any_or_never.ts +31 -0
  816. package/src/mix_types/merge.ts +61 -0
  817. package/src/mix_types/readme.md +87 -0
  818. package/src/never/is_never.ts +62 -0
  819. package/src/never/is_not_never.ts +62 -0
  820. package/src/never/never.ts +78 -0
  821. package/src/never/readme.md +148 -0
  822. package/src/nominal/brand.ts +41 -0
  823. package/src/nominal/flavor.ts +51 -0
  824. package/src/nominal/nominal_match.ts +21 -0
  825. package/src/null/is_not_null.ts +79 -0
  826. package/src/null/is_null.ts +83 -0
  827. package/src/null/readme.md +107 -0
  828. package/src/number/is_not_number.ts +99 -0
  829. package/src/number/is_not_number_literal.ts +101 -0
  830. package/src/number/is_number.ts +103 -0
  831. package/src/number/is_number_literal.ts +100 -0
  832. package/src/number/number_plus.ts +13 -0
  833. package/src/number/readme.md +225 -0
  834. package/src/numeric/is_integer.ts +48 -0
  835. package/src/numeric/is_negative.ts +51 -0
  836. package/src/numeric/is_not_integer.ts +49 -0
  837. package/src/numeric/is_not_negative.ts +49 -0
  838. package/src/numeric/is_not_numeric.ts +21 -0
  839. package/src/numeric/is_not_positive.ts +50 -0
  840. package/src/numeric/is_numeric.ts +20 -0
  841. package/src/numeric/is_positive.ts +51 -0
  842. package/src/numeric/numeric_plus.ts +10 -0
  843. package/src/numeric/numeric_type.ts +10 -0
  844. package/src/object/ANotB.ts +12 -0
  845. package/src/object/IsDisjoint.ts +12 -0
  846. package/src/object/KeysWithDiffType.ts +9 -0
  847. package/src/object/KnownKeys.ts +17 -0
  848. package/src/object/RecursiveIntersect.ts +25 -0
  849. package/src/object/RecursiveRequired.ts +9 -0
  850. package/src/object/Required.ts +7 -0
  851. package/src/object/RequiredKeys.ts +8 -0
  852. package/src/object/facade.ts +214 -0
  853. package/src/object/forEachKey.ts +9 -0
  854. package/src/object/hasKey.ts +7 -0
  855. package/src/object/index.ts +38 -0
  856. package/src/object/is_not_object.ts +132 -0
  857. package/src/object/is_object.ts +119 -0
  858. package/src/object/left_join.ts +10 -0
  859. package/src/object/mapProperties.ts +22 -0
  860. package/src/object/merge.ts +117 -0
  861. package/src/object/object_plus.ts +1 -0
  862. package/src/object/omit.ts +220 -0
  863. package/src/object/optional_key.ts +38 -0
  864. package/src/object/pick.ts +220 -0
  865. package/src/object/readme.md +79 -0
  866. package/src/object/record.ts +23 -0
  867. package/src/object/recursive_partial.ts +39 -0
  868. package/src/object/replaceProperty.ts +11 -0
  869. package/src/object/split.ts +202 -0
  870. package/src/object/typeOverrideIncompatible.ts +8 -0
  871. package/src/predicates/CanAssign.ts +61 -0
  872. package/src/predicates/Extends.ts +7 -0
  873. package/src/predicates/assignable.ts +102 -0
  874. package/src/predicates/index.ts +6 -0
  875. package/src/predicates/literal.ts +35 -0
  876. package/src/predicates/not_assignable.ts +100 -0
  877. package/src/promise/index.ts +5 -0
  878. package/src/string/$extract_manipulated_string.ts +45 -0
  879. package/src/string/_string_type.ts +11 -0
  880. package/src/string/is_not_string.ts +100 -0
  881. package/src/string/is_not_string_literal.ts +132 -0
  882. package/src/string/is_not_template_literal.ts +90 -0
  883. package/src/string/is_string.ts +101 -0
  884. package/src/string/is_string_literal.ts +132 -0
  885. package/src/string/is_template_literal.ts +91 -0
  886. package/src/string/string.ts +36 -0
  887. package/src/string/string_plus.ts +34 -0
  888. package/src/symbol/is_not_symbol.ts +78 -0
  889. package/src/symbol/is_symbol.ts +80 -0
  890. package/src/testing/stub.ts +81 -0
  891. package/src/testing/test_type.ts +313 -0
  892. package/src/tuple/common_prop_keys.ts +41 -0
  893. package/src/tuple/create_tuple.ts +42 -0
  894. package/src/tuple/drop.ts +125 -0
  895. package/src/tuple/is_not_tuple.ts +101 -0
  896. package/src/tuple/is_tuple.ts +99 -0
  897. package/src/tuple/readme.md +282 -0
  898. package/src/tuple/tail.ts +10 -0
  899. package/src/tuple/tuple_plus.common_prop_keys.ts +50 -0
  900. package/src/tuple/tuple_plus.filter.ts +29 -0
  901. package/src/tuple/tuple_plus.find.ts +89 -0
  902. package/src/tuple/tuple_plus.pad_start.ts +61 -0
  903. package/src/type/no_infer.ts +28 -0
  904. package/src/type-guard/is_type.ts +48 -0
  905. package/src/type_plus/$equality.ts +14 -0
  906. package/src/type_plus/$error.ts +8 -0
  907. package/src/type_plus/$infer_error.ts +21 -0
  908. package/src/type_plus/$merge_options.ts +9 -0
  909. package/src/type_plus/$resolve_options.ts +16 -0
  910. package/src/type_plus/$special_type.ts +24 -0
  911. package/src/type_plus/$type.ts +10 -0
  912. package/src/type_plus/branch/$branch.ts +27 -0
  913. package/src/type_plus/branch/$distributive.ts +19 -0
  914. package/src/type_plus/branch/$exact.ts +34 -0
  915. package/src/type_plus/branch/$input_options.ts +9 -0
  916. package/src/type_plus/branch/$is_distributive.ts +12 -0
  917. package/src/type_plus/branch/$override.ts +22 -0
  918. package/src/type_plus/branch/$resolve_branch.ts +81 -0
  919. package/src/type_plus/branch/$select.ts +90 -0
  920. package/src/type_plus/branch/$select_invert.ts +88 -0
  921. package/src/type_plus/branch/$select_invert_strict.ts +88 -0
  922. package/src/type_plus/branch/$select_strict.ts +90 -0
  923. package/src/type_plus/branch/$selection.ts +135 -0
  924. package/src/type_plus/branch/$selection_options.ts +36 -0
  925. package/src/type_plus/readme.md +25 -0
  926. package/src/undefined/has_undefined.ts +44 -0
  927. package/src/undefined/is_not_undefined.ts +80 -0
  928. package/src/undefined/is_undefined.ts +82 -0
  929. package/src/undefined/readme.md +140 -0
  930. package/src/union/readme.md +81 -0
  931. package/src/union/union.ts +37 -0
  932. package/src/unknown/is_not_unknown.ts +57 -0
  933. package/src/unknown/is_unknown.ts +57 -0
  934. package/src/unknown/not_unknown_or.ts +29 -0
  935. package/src/unknown/readme.md +108 -0
  936. package/src/unknown/unknown.ts +58 -0
  937. package/src/utils/index.ts +61 -0
  938. package/src/utils/options.ts +15 -0
  939. package/src/void/is_not_void.ts +90 -0
  940. package/src/void/is_void.ts +91 -0
  941. package/src/void/readme.md +108 -0
  942. package/README.md +0 -1356
  943. package/cjs/any/any_type.d.ts +0 -63
  944. package/cjs/any/any_type.d.ts.map +0 -1
  945. package/cjs/any/any_type.js +0 -3
  946. package/cjs/any/any_type.js.map +0 -1
  947. package/cjs/array/array.at.d.ts +0 -20
  948. package/cjs/array/array.at.d.ts.map +0 -1
  949. package/cjs/array/array.at.js +0 -3
  950. package/cjs/array/array.at.js.map +0 -1
  951. package/cjs/array/array.entries.d.ts +0 -18
  952. package/cjs/array/array.entries.d.ts.map +0 -1
  953. package/cjs/array/array.entries.js +0 -3
  954. package/cjs/array/array.entries.js.map +0 -1
  955. package/cjs/array/array.find_last.d.ts +0 -19
  956. package/cjs/array/array.find_last.d.ts.map +0 -1
  957. package/cjs/array/array.find_last.js +0 -3
  958. package/cjs/array/array.find_last.js.map +0 -1
  959. package/cjs/array/array.reverse.d.ts +0 -2
  960. package/cjs/array/array.reverse.d.ts.map +0 -1
  961. package/cjs/array/array.reverse.js +0 -3
  962. package/cjs/array/array.reverse.js.map +0 -1
  963. package/cjs/array/array.some.d.ts +0 -33
  964. package/cjs/array/array.some.d.ts.map +0 -1
  965. package/cjs/array/array.some.js +0 -3
  966. package/cjs/array/array.some.js.map +0 -1
  967. package/cjs/array/array_index.d.ts +0 -37
  968. package/cjs/array/array_index.d.ts.map +0 -1
  969. package/cjs/array/array_index.js +0 -3
  970. package/cjs/array/array_index.js.map +0 -1
  971. package/cjs/array/array_plus.common_prop_keys.d.ts +0 -27
  972. package/cjs/array/array_plus.common_prop_keys.d.ts.map +0 -1
  973. package/cjs/array/array_plus.common_prop_keys.js +0 -3
  974. package/cjs/array/array_plus.common_prop_keys.js.map +0 -1
  975. package/cjs/array/array_plus.concat.d.ts +0 -16
  976. package/cjs/array/array_plus.concat.d.ts.map +0 -1
  977. package/cjs/array/array_plus.concat.js +0 -3
  978. package/cjs/array/array_plus.concat.js.map +0 -1
  979. package/cjs/array/array_plus.d.ts +0 -15
  980. package/cjs/array/array_plus.d.ts.map +0 -1
  981. package/cjs/array/array_plus.drop_match.d.ts +0 -4
  982. package/cjs/array/array_plus.drop_match.d.ts.map +0 -1
  983. package/cjs/array/array_plus.drop_match.js +0 -3
  984. package/cjs/array/array_plus.drop_match.js.map +0 -1
  985. package/cjs/array/array_plus.element_match.d.ts +0 -44
  986. package/cjs/array/array_plus.element_match.d.ts.map +0 -1
  987. package/cjs/array/array_plus.element_match.js +0 -3
  988. package/cjs/array/array_plus.element_match.js.map +0 -1
  989. package/cjs/array/array_plus.filter.d.ts +0 -2
  990. package/cjs/array/array_plus.filter.d.ts.map +0 -1
  991. package/cjs/array/array_plus.filter.js +0 -3
  992. package/cjs/array/array_plus.filter.js.map +0 -1
  993. package/cjs/array/array_plus.find.d.ts +0 -57
  994. package/cjs/array/array_plus.find.d.ts.map +0 -1
  995. package/cjs/array/array_plus.find.js +0 -3
  996. package/cjs/array/array_plus.find.js.map +0 -1
  997. package/cjs/array/array_plus.js +0 -3
  998. package/cjs/array/array_plus.js.map +0 -1
  999. package/cjs/array/array_plus.pad_start.d.ts +0 -5
  1000. package/cjs/array/array_plus.pad_start.d.ts.map +0 -1
  1001. package/cjs/array/array_plus.pad_start.js +0 -3
  1002. package/cjs/array/array_plus.pad_start.js.map +0 -1
  1003. package/cjs/array/array_plus.split_at.d.ts +0 -40
  1004. package/cjs/array/array_plus.split_at.d.ts.map +0 -1
  1005. package/cjs/array/array_plus.split_at.js +0 -3
  1006. package/cjs/array/array_plus.split_at.js.map +0 -1
  1007. package/cjs/array/array_type.d.ts +0 -66
  1008. package/cjs/array/array_type.d.ts.map +0 -1
  1009. package/cjs/array/array_type.js +0 -3
  1010. package/cjs/array/array_type.js.map +0 -1
  1011. package/cjs/array/filter.d.ts +0 -29
  1012. package/cjs/array/filter.d.ts.map +0 -1
  1013. package/cjs/array/filter.js +0 -3
  1014. package/cjs/array/filter.js.map +0 -1
  1015. package/cjs/array/find_first.d.ts +0 -62
  1016. package/cjs/array/find_first.d.ts.map +0 -1
  1017. package/cjs/array/find_first.js +0 -3
  1018. package/cjs/array/find_first.js.map +0 -1
  1019. package/cjs/array/head.d.ts +0 -31
  1020. package/cjs/array/head.d.ts.map +0 -1
  1021. package/cjs/array/head.js +0 -3
  1022. package/cjs/array/head.js.map +0 -1
  1023. package/cjs/array/intersect_of_props.d.ts +0 -14
  1024. package/cjs/array/intersect_of_props.d.ts.map +0 -1
  1025. package/cjs/array/intersect_of_props.js +0 -3
  1026. package/cjs/array/intersect_of_props.js.map +0 -1
  1027. package/cjs/array/last.d.ts +0 -30
  1028. package/cjs/array/last.d.ts.map +0 -1
  1029. package/cjs/array/last.js +0 -3
  1030. package/cjs/array/last.js.map +0 -1
  1031. package/cjs/array/literal_array.d.ts +0 -8
  1032. package/cjs/array/literal_array.d.ts.map +0 -1
  1033. package/cjs/array/literal_array.js +0 -13
  1034. package/cjs/array/literal_array.js.map +0 -1
  1035. package/cjs/array/pad_start.d.ts +0 -32
  1036. package/cjs/array/pad_start.d.ts.map +0 -1
  1037. package/cjs/array/pad_start.js +0 -3
  1038. package/cjs/array/pad_start.js.map +0 -1
  1039. package/cjs/array/reduce_while.d.ts +0 -8
  1040. package/cjs/array/reduce_while.d.ts.map +0 -1
  1041. package/cjs/array/reduce_while.js +0 -21
  1042. package/cjs/array/reduce_while.js.map +0 -1
  1043. package/cjs/array/reverse.d.ts +0 -7
  1044. package/cjs/array/reverse.d.ts.map +0 -1
  1045. package/cjs/array/reverse.js +0 -3
  1046. package/cjs/array/reverse.js.map +0 -1
  1047. package/cjs/array/union_of_props.d.ts +0 -12
  1048. package/cjs/array/union_of_props.d.ts.map +0 -1
  1049. package/cjs/array/union_of_props.js +0 -3
  1050. package/cjs/array/union_of_props.js.map +0 -1
  1051. package/cjs/array/union_of_values.d.ts +0 -10
  1052. package/cjs/array/union_of_values.d.ts.map +0 -1
  1053. package/cjs/array/union_of_values.js +0 -3
  1054. package/cjs/array/union_of_values.js.map +0 -1
  1055. package/cjs/assertion/assert_type.d.ts +0 -40
  1056. package/cjs/assertion/assert_type.d.ts.map +0 -1
  1057. package/cjs/assertion/assert_type.js +0 -113
  1058. package/cjs/assertion/assert_type.js.map +0 -1
  1059. package/cjs/bigint/bigint_type.d.ts +0 -54
  1060. package/cjs/bigint/bigint_type.d.ts.map +0 -1
  1061. package/cjs/bigint/bigint_type.js +0 -3
  1062. package/cjs/bigint/bigint_type.js.map +0 -1
  1063. package/cjs/bigint/cast.d.ts +0 -10
  1064. package/cjs/bigint/cast.d.ts.map +0 -1
  1065. package/cjs/bigint/cast.js +0 -3
  1066. package/cjs/bigint/cast.js.map +0 -1
  1067. package/cjs/bigint/strict_bigint_type.d.ts +0 -56
  1068. package/cjs/bigint/strict_bigint_type.d.ts.map +0 -1
  1069. package/cjs/bigint/strict_bigint_type.js +0 -3
  1070. package/cjs/bigint/strict_bigint_type.js.map +0 -1
  1071. package/cjs/binary/Bit.d.ts +0 -6
  1072. package/cjs/binary/Bit.d.ts.map +0 -1
  1073. package/cjs/binary/Bit.js +0 -3
  1074. package/cjs/binary/Bit.js.map +0 -1
  1075. package/cjs/binary/_binary.d.ts +0 -2
  1076. package/cjs/binary/_binary.d.ts.map +0 -1
  1077. package/cjs/binary/_binary.js +0 -3
  1078. package/cjs/binary/_binary.js.map +0 -1
  1079. package/cjs/binary/index.d.ts +0 -3
  1080. package/cjs/binary/index.d.ts.map +0 -1
  1081. package/cjs/binary/index.js +0 -6
  1082. package/cjs/binary/index.js.map +0 -1
  1083. package/cjs/boolean/boolean_type.d.ts +0 -56
  1084. package/cjs/boolean/boolean_type.d.ts.map +0 -1
  1085. package/cjs/boolean/boolean_type.js +0 -3
  1086. package/cjs/boolean/boolean_type.js.map +0 -1
  1087. package/cjs/boolean/false_type.d.ts +0 -49
  1088. package/cjs/boolean/false_type.d.ts.map +0 -1
  1089. package/cjs/boolean/false_type.js +0 -3
  1090. package/cjs/boolean/false_type.js.map +0 -1
  1091. package/cjs/boolean/strict_boolean_type.d.ts +0 -53
  1092. package/cjs/boolean/strict_boolean_type.d.ts.map +0 -1
  1093. package/cjs/boolean/strict_boolean_type.js +0 -3
  1094. package/cjs/boolean/strict_boolean_type.js.map +0 -1
  1095. package/cjs/boolean/true_type.d.ts +0 -49
  1096. package/cjs/boolean/true_type.d.ts.map +0 -1
  1097. package/cjs/boolean/true_type.js +0 -3
  1098. package/cjs/boolean/true_type.js.map +0 -1
  1099. package/cjs/class/AnyConstructor.d.ts +0 -2
  1100. package/cjs/class/AnyConstructor.d.ts.map +0 -1
  1101. package/cjs/class/AnyConstructor.js +0 -3
  1102. package/cjs/class/AnyConstructor.js.map +0 -1
  1103. package/cjs/class/index.d.ts +0 -3
  1104. package/cjs/class/index.d.ts.map +0 -1
  1105. package/cjs/class/index.js +0 -18
  1106. package/cjs/class/index.js.map +0 -1
  1107. package/cjs/class/isConstructor.d.ts +0 -18
  1108. package/cjs/class/isConstructor.d.ts.map +0 -1
  1109. package/cjs/class/isConstructor.js +0 -35
  1110. package/cjs/class/isConstructor.js.map +0 -1
  1111. package/cjs/composable_types.d.ts +0 -9
  1112. package/cjs/composable_types.d.ts.map +0 -1
  1113. package/cjs/composable_types.js +0 -3
  1114. package/cjs/composable_types.js.map +0 -1
  1115. package/cjs/equal/equal.d.ts +0 -99
  1116. package/cjs/equal/equal.d.ts.map +0 -1
  1117. package/cjs/equal/equal.js +0 -3
  1118. package/cjs/equal/equal.js.map +0 -1
  1119. package/cjs/function/any_function.d.ts +0 -2
  1120. package/cjs/function/any_function.d.ts.map +0 -1
  1121. package/cjs/function/any_function.js +0 -3
  1122. package/cjs/function/any_function.js.map +0 -1
  1123. package/cjs/function/extract_function.d.ts +0 -24
  1124. package/cjs/function/extract_function.d.ts.map +0 -1
  1125. package/cjs/function/extract_function.js +0 -13
  1126. package/cjs/function/extract_function.js.map +0 -1
  1127. package/cjs/function/function_type.d.ts +0 -59
  1128. package/cjs/function/function_type.d.ts.map +0 -1
  1129. package/cjs/function/function_type.js +0 -3
  1130. package/cjs/function/function_type.js.map +0 -1
  1131. package/cjs/function/strict_function_type.d.ts +0 -49
  1132. package/cjs/function/strict_function_type.d.ts.map +0 -1
  1133. package/cjs/function/strict_function_type.js +0 -3
  1134. package/cjs/function/strict_function_type.js.map +0 -1
  1135. package/cjs/functional/ChainFn.d.ts +0 -6
  1136. package/cjs/functional/ChainFn.d.ts.map +0 -1
  1137. package/cjs/functional/ChainFn.js +0 -3
  1138. package/cjs/functional/ChainFn.js.map +0 -1
  1139. package/cjs/functional/Maybe.d.ts +0 -13
  1140. package/cjs/functional/Maybe.d.ts.map +0 -1
  1141. package/cjs/functional/Maybe.js +0 -17
  1142. package/cjs/functional/Maybe.js.map +0 -1
  1143. package/cjs/functional/compose.d.ts +0 -12
  1144. package/cjs/functional/compose.d.ts.map +0 -1
  1145. package/cjs/functional/compose.js +0 -16
  1146. package/cjs/functional/compose.js.map +0 -1
  1147. package/cjs/functional/context.d.ts +0 -40
  1148. package/cjs/functional/context.d.ts.map +0 -1
  1149. package/cjs/functional/context.js +0 -32
  1150. package/cjs/functional/context.js.map +0 -1
  1151. package/cjs/functional/index.d.ts +0 -4
  1152. package/cjs/functional/index.d.ts.map +0 -1
  1153. package/cjs/functional/index.js +0 -19
  1154. package/cjs/functional/index.js.map +0 -1
  1155. package/cjs/index.d.ts +0 -84
  1156. package/cjs/index.d.ts.map +0 -1
  1157. package/cjs/index.js +0 -45
  1158. package/cjs/index.js.map +0 -1
  1159. package/cjs/json.d.ts +0 -12
  1160. package/cjs/json.d.ts.map +0 -1
  1161. package/cjs/json.js +0 -14
  1162. package/cjs/json.js.map +0 -1
  1163. package/cjs/math/abs.d.ts +0 -6
  1164. package/cjs/math/abs.d.ts.map +0 -1
  1165. package/cjs/math/abs.js +0 -3
  1166. package/cjs/math/abs.js.map +0 -1
  1167. package/cjs/math/add.d.ts +0 -7
  1168. package/cjs/math/add.d.ts.map +0 -1
  1169. package/cjs/math/add.js +0 -3
  1170. package/cjs/math/add.js.map +0 -1
  1171. package/cjs/math/greater_than.d.ts +0 -4
  1172. package/cjs/math/greater_than.d.ts.map +0 -1
  1173. package/cjs/math/greater_than.js +0 -3
  1174. package/cjs/math/greater_than.js.map +0 -1
  1175. package/cjs/math/index.d.ts +0 -7
  1176. package/cjs/math/index.d.ts.map +0 -1
  1177. package/cjs/math/index.js +0 -3
  1178. package/cjs/math/index.js.map +0 -1
  1179. package/cjs/math/math_plus.d.ts +0 -5
  1180. package/cjs/math/math_plus.d.ts.map +0 -1
  1181. package/cjs/math/math_plus.js +0 -3
  1182. package/cjs/math/math_plus.js.map +0 -1
  1183. package/cjs/math/math_plus.to_negative.d.ts +0 -13
  1184. package/cjs/math/math_plus.to_negative.d.ts.map +0 -1
  1185. package/cjs/math/math_plus.to_negative.js +0 -3
  1186. package/cjs/math/math_plus.to_negative.js.map +0 -1
  1187. package/cjs/math/max.d.ts +0 -4
  1188. package/cjs/math/max.d.ts.map +0 -1
  1189. package/cjs/math/max.js +0 -3
  1190. package/cjs/math/max.js.map +0 -1
  1191. package/cjs/math/multiply.d.ts +0 -6
  1192. package/cjs/math/multiply.d.ts.map +0 -1
  1193. package/cjs/math/multiply.js +0 -3
  1194. package/cjs/math/multiply.js.map +0 -1
  1195. package/cjs/math/numeric_struct.d.ts +0 -1480
  1196. package/cjs/math/numeric_struct.d.ts.map +0 -1
  1197. package/cjs/math/numeric_struct.js +0 -3
  1198. package/cjs/math/numeric_struct.js.map +0 -1
  1199. package/cjs/math/subtract.d.ts +0 -7
  1200. package/cjs/math/subtract.d.ts.map +0 -1
  1201. package/cjs/math/subtract.js +0 -3
  1202. package/cjs/math/subtract.js.map +0 -1
  1203. package/cjs/merge.d.ts +0 -55
  1204. package/cjs/merge.d.ts.map +0 -1
  1205. package/cjs/merge.js +0 -18
  1206. package/cjs/merge.js.map +0 -1
  1207. package/cjs/mix_types/any_or_never_type.d.ts +0 -37
  1208. package/cjs/mix_types/any_or_never_type.d.ts.map +0 -1
  1209. package/cjs/mix_types/any_or_never_type.js +0 -3
  1210. package/cjs/mix_types/any_or_never_type.js.map +0 -1
  1211. package/cjs/never/never_type.d.ts +0 -62
  1212. package/cjs/never/never_type.d.ts.map +0 -1
  1213. package/cjs/never/never_type.js +0 -3
  1214. package/cjs/never/never_type.js.map +0 -1
  1215. package/cjs/nodejs/index.d.ts +0 -2
  1216. package/cjs/nodejs/index.d.ts.map +0 -1
  1217. package/cjs/nodejs/index.js +0 -18
  1218. package/cjs/nodejs/index.js.map +0 -1
  1219. package/cjs/nodejs/isNodeError.d.ts +0 -31
  1220. package/cjs/nodejs/isNodeError.d.ts.map +0 -1
  1221. package/cjs/nodejs/isNodeError.js +0 -13
  1222. package/cjs/nodejs/isNodeError.js.map +0 -1
  1223. package/cjs/nominal/brand.d.ts +0 -23
  1224. package/cjs/nominal/brand.d.ts.map +0 -1
  1225. package/cjs/nominal/brand.js +0 -20
  1226. package/cjs/nominal/brand.js.map +0 -1
  1227. package/cjs/nominal/constants.d.ts +0 -3
  1228. package/cjs/nominal/constants.d.ts.map +0 -1
  1229. package/cjs/nominal/constants.js +0 -6
  1230. package/cjs/nominal/constants.js.map +0 -1
  1231. package/cjs/nominal/flavor.d.ts +0 -31
  1232. package/cjs/nominal/flavor.d.ts.map +0 -1
  1233. package/cjs/nominal/flavor.js +0 -20
  1234. package/cjs/nominal/flavor.js.map +0 -1
  1235. package/cjs/nominal/index.d.ts +0 -4
  1236. package/cjs/nominal/index.d.ts.map +0 -1
  1237. package/cjs/nominal/index.js +0 -20
  1238. package/cjs/nominal/index.js.map +0 -1
  1239. package/cjs/nominal/nominal_match.d.ts +0 -5
  1240. package/cjs/nominal/nominal_match.d.ts.map +0 -1
  1241. package/cjs/nominal/nominal_match.js +0 -13
  1242. package/cjs/nominal/nominal_match.js.map +0 -1
  1243. package/cjs/null/null_type.d.ts +0 -50
  1244. package/cjs/null/null_type.d.ts.map +0 -1
  1245. package/cjs/null/null_type.js +0 -3
  1246. package/cjs/null/null_type.js.map +0 -1
  1247. package/cjs/number/cast.d.ts +0 -10
  1248. package/cjs/number/cast.d.ts.map +0 -1
  1249. package/cjs/number/cast.js +0 -3
  1250. package/cjs/number/cast.js.map +0 -1
  1251. package/cjs/number/number_array.d.ts +0 -1
  1252. package/cjs/number/number_array.d.ts.map +0 -1
  1253. package/cjs/number/number_array.js +0 -16
  1254. package/cjs/number/number_array.js.map +0 -1
  1255. package/cjs/number/number_plus.d.ts +0 -7
  1256. package/cjs/number/number_plus.d.ts.map +0 -1
  1257. package/cjs/number/number_plus.js +0 -3
  1258. package/cjs/number/number_plus.js.map +0 -1
  1259. package/cjs/number/number_type.d.ts +0 -50
  1260. package/cjs/number/number_type.d.ts.map +0 -1
  1261. package/cjs/number/number_type.js +0 -3
  1262. package/cjs/number/number_type.js.map +0 -1
  1263. package/cjs/number/strict_number_type.d.ts +0 -65
  1264. package/cjs/number/strict_number_type.d.ts.map +0 -1
  1265. package/cjs/number/strict_number_type.js +0 -3
  1266. package/cjs/number/strict_number_type.js.map +0 -1
  1267. package/cjs/numeric/cast.d.ts +0 -27
  1268. package/cjs/numeric/cast.d.ts.map +0 -1
  1269. package/cjs/numeric/cast.js +0 -3
  1270. package/cjs/numeric/cast.js.map +0 -1
  1271. package/cjs/numeric/integer.d.ts +0 -69
  1272. package/cjs/numeric/integer.d.ts.map +0 -1
  1273. package/cjs/numeric/integer.js +0 -3
  1274. package/cjs/numeric/integer.js.map +0 -1
  1275. package/cjs/numeric/negative.d.ts +0 -70
  1276. package/cjs/numeric/negative.d.ts.map +0 -1
  1277. package/cjs/numeric/negative.js +0 -3
  1278. package/cjs/numeric/negative.js.map +0 -1
  1279. package/cjs/numeric/numeric_plus.d.ts +0 -5
  1280. package/cjs/numeric/numeric_plus.d.ts.map +0 -1
  1281. package/cjs/numeric/numeric_plus.js +0 -3
  1282. package/cjs/numeric/numeric_plus.js.map +0 -1
  1283. package/cjs/numeric/numeric_type.d.ts +0 -59
  1284. package/cjs/numeric/numeric_type.d.ts.map +0 -1
  1285. package/cjs/numeric/numeric_type.js +0 -3
  1286. package/cjs/numeric/numeric_type.js.map +0 -1
  1287. package/cjs/numeric/positive.d.ts +0 -53
  1288. package/cjs/numeric/positive.d.ts.map +0 -1
  1289. package/cjs/numeric/positive.js +0 -3
  1290. package/cjs/numeric/positive.js.map +0 -1
  1291. package/cjs/object/ANotB.d.ts +0 -9
  1292. package/cjs/object/ANotB.d.ts.map +0 -1
  1293. package/cjs/object/ANotB.js +0 -3
  1294. package/cjs/object/ANotB.js.map +0 -1
  1295. package/cjs/object/AnyRecord.d.ts +0 -3
  1296. package/cjs/object/AnyRecord.d.ts.map +0 -1
  1297. package/cjs/object/AnyRecord.js +0 -3
  1298. package/cjs/object/AnyRecord.js.map +0 -1
  1299. package/cjs/object/ExcludePropType.d.ts +0 -7
  1300. package/cjs/object/ExcludePropType.d.ts.map +0 -1
  1301. package/cjs/object/ExcludePropType.js +0 -3
  1302. package/cjs/object/ExcludePropType.js.map +0 -1
  1303. package/cjs/object/IsDisjoint.d.ts +0 -9
  1304. package/cjs/object/IsDisjoint.d.ts.map +0 -1
  1305. package/cjs/object/IsDisjoint.js +0 -3
  1306. package/cjs/object/IsDisjoint.js.map +0 -1
  1307. package/cjs/object/IsRecord.d.ts +0 -2
  1308. package/cjs/object/IsRecord.d.ts.map +0 -1
  1309. package/cjs/object/IsRecord.js +0 -3
  1310. package/cjs/object/IsRecord.js.map +0 -1
  1311. package/cjs/object/KeyTypes.d.ts +0 -7
  1312. package/cjs/object/KeyTypes.d.ts.map +0 -1
  1313. package/cjs/object/KeyTypes.js +0 -3
  1314. package/cjs/object/KeyTypes.js.map +0 -1
  1315. package/cjs/object/KeyofOptional.d.ts +0 -6
  1316. package/cjs/object/KeyofOptional.d.ts.map +0 -1
  1317. package/cjs/object/KeyofOptional.js +0 -3
  1318. package/cjs/object/KeyofOptional.js.map +0 -1
  1319. package/cjs/object/KeysWithDiffType.d.ts +0 -7
  1320. package/cjs/object/KeysWithDiffType.d.ts.map +0 -1
  1321. package/cjs/object/KeysWithDiffType.js +0 -3
  1322. package/cjs/object/KeysWithDiffType.js.map +0 -1
  1323. package/cjs/object/KnownKeys.d.ts +0 -7
  1324. package/cjs/object/KnownKeys.d.ts.map +0 -1
  1325. package/cjs/object/KnownKeys.js +0 -6
  1326. package/cjs/object/KnownKeys.js.map +0 -1
  1327. package/cjs/object/OptionalKeys.d.ts +0 -8
  1328. package/cjs/object/OptionalKeys.d.ts.map +0 -1
  1329. package/cjs/object/OptionalKeys.js +0 -3
  1330. package/cjs/object/OptionalKeys.js.map +0 -1
  1331. package/cjs/object/Partial.d.ts +0 -22
  1332. package/cjs/object/Partial.d.ts.map +0 -1
  1333. package/cjs/object/Partial.js +0 -3
  1334. package/cjs/object/Partial.js.map +0 -1
  1335. package/cjs/object/RecursiveIntersect.d.ts +0 -16
  1336. package/cjs/object/RecursiveIntersect.d.ts.map +0 -1
  1337. package/cjs/object/RecursiveIntersect.js +0 -3
  1338. package/cjs/object/RecursiveIntersect.js.map +0 -1
  1339. package/cjs/object/RecursiveRequired.d.ts +0 -5
  1340. package/cjs/object/RecursiveRequired.d.ts.map +0 -1
  1341. package/cjs/object/RecursiveRequired.js +0 -3
  1342. package/cjs/object/RecursiveRequired.js.map +0 -1
  1343. package/cjs/object/Required.d.ts +0 -7
  1344. package/cjs/object/Required.d.ts.map +0 -1
  1345. package/cjs/object/Required.js +0 -4
  1346. package/cjs/object/Required.js.map +0 -1
  1347. package/cjs/object/RequiredKeys.d.ts +0 -7
  1348. package/cjs/object/RequiredKeys.d.ts.map +0 -1
  1349. package/cjs/object/RequiredKeys.js +0 -3
  1350. package/cjs/object/RequiredKeys.js.map +0 -1
  1351. package/cjs/object/SpreadRecord.d.ts +0 -3
  1352. package/cjs/object/SpreadRecord.d.ts.map +0 -1
  1353. package/cjs/object/SpreadRecord.js +0 -3
  1354. package/cjs/object/SpreadRecord.js.map +0 -1
  1355. package/cjs/object/ValueOf.d.ts +0 -2
  1356. package/cjs/object/ValueOf.d.ts.map +0 -1
  1357. package/cjs/object/ValueOf.js +0 -3
  1358. package/cjs/object/ValueOf.js.map +0 -1
  1359. package/cjs/object/everyKey.d.ts +0 -3
  1360. package/cjs/object/everyKey.d.ts.map +0 -1
  1361. package/cjs/object/everyKey.js +0 -8
  1362. package/cjs/object/everyKey.js.map +0 -1
  1363. package/cjs/object/facade.d.ts +0 -17
  1364. package/cjs/object/facade.d.ts.map +0 -1
  1365. package/cjs/object/facade.js +0 -27
  1366. package/cjs/object/facade.js.map +0 -1
  1367. package/cjs/object/filterKey.d.ts +0 -3
  1368. package/cjs/object/filterKey.d.ts.map +0 -1
  1369. package/cjs/object/filterKey.js +0 -10
  1370. package/cjs/object/filterKey.js.map +0 -1
  1371. package/cjs/object/findKey.d.ts +0 -3
  1372. package/cjs/object/findKey.d.ts.map +0 -1
  1373. package/cjs/object/findKey.js +0 -10
  1374. package/cjs/object/findKey.js.map +0 -1
  1375. package/cjs/object/forEachKey.d.ts +0 -3
  1376. package/cjs/object/forEachKey.d.ts.map +0 -1
  1377. package/cjs/object/forEachKey.js +0 -8
  1378. package/cjs/object/forEachKey.js.map +0 -1
  1379. package/cjs/object/getField.d.ts +0 -4
  1380. package/cjs/object/getField.d.ts.map +0 -1
  1381. package/cjs/object/getField.js +0 -8
  1382. package/cjs/object/getField.js.map +0 -1
  1383. package/cjs/object/hasKey.d.ts +0 -4
  1384. package/cjs/object/hasKey.d.ts.map +0 -1
  1385. package/cjs/object/hasKey.js +0 -8
  1386. package/cjs/object/hasKey.js.map +0 -1
  1387. package/cjs/object/hasProperty.d.ts +0 -3
  1388. package/cjs/object/hasProperty.d.ts.map +0 -1
  1389. package/cjs/object/hasProperty.js +0 -8
  1390. package/cjs/object/hasProperty.js.map +0 -1
  1391. package/cjs/object/index.d.ts +0 -39
  1392. package/cjs/object/index.d.ts.map +0 -1
  1393. package/cjs/object/index.js +0 -36
  1394. package/cjs/object/index.js.map +0 -1
  1395. package/cjs/object/left_join.d.ts +0 -15
  1396. package/cjs/object/left_join.d.ts.map +0 -1
  1397. package/cjs/object/left_join.js +0 -3
  1398. package/cjs/object/left_join.js.map +0 -1
  1399. package/cjs/object/mapKey.d.ts +0 -3
  1400. package/cjs/object/mapKey.d.ts.map +0 -1
  1401. package/cjs/object/mapKey.js +0 -10
  1402. package/cjs/object/mapKey.js.map +0 -1
  1403. package/cjs/object/mapProperties.d.ts +0 -14
  1404. package/cjs/object/mapProperties.d.ts.map +0 -1
  1405. package/cjs/object/mapProperties.js +0 -17
  1406. package/cjs/object/mapProperties.js.map +0 -1
  1407. package/cjs/object/object_type.d.ts +0 -54
  1408. package/cjs/object/object_type.d.ts.map +0 -1
  1409. package/cjs/object/object_type.js +0 -3
  1410. package/cjs/object/object_type.js.map +0 -1
  1411. package/cjs/object/omit.d.ts +0 -29
  1412. package/cjs/object/omit.d.ts.map +0 -1
  1413. package/cjs/object/omit.js +0 -14
  1414. package/cjs/object/omit.js.map +0 -1
  1415. package/cjs/object/optional_key.d.ts +0 -35
  1416. package/cjs/object/optional_key.d.ts.map +0 -1
  1417. package/cjs/object/optional_key.js +0 -3
  1418. package/cjs/object/optional_key.js.map +0 -1
  1419. package/cjs/object/pick.d.ts +0 -29
  1420. package/cjs/object/pick.d.ts.map +0 -1
  1421. package/cjs/object/pick.js +0 -14
  1422. package/cjs/object/pick.js.map +0 -1
  1423. package/cjs/object/properties.d.ts +0 -7
  1424. package/cjs/object/properties.d.ts.map +0 -1
  1425. package/cjs/object/properties.js +0 -3
  1426. package/cjs/object/properties.js.map +0 -1
  1427. package/cjs/object/record.d.ts +0 -17
  1428. package/cjs/object/record.d.ts.map +0 -1
  1429. package/cjs/object/record.js +0 -9
  1430. package/cjs/object/record.js.map +0 -1
  1431. package/cjs/object/recursive_partial.d.ts +0 -29
  1432. package/cjs/object/recursive_partial.d.ts.map +0 -1
  1433. package/cjs/object/recursive_partial.js +0 -4
  1434. package/cjs/object/recursive_partial.js.map +0 -1
  1435. package/cjs/object/reduceKey.d.ts +0 -7
  1436. package/cjs/object/reduceKey.d.ts.map +0 -1
  1437. package/cjs/object/reduceKey.js +0 -12
  1438. package/cjs/object/reduceKey.js.map +0 -1
  1439. package/cjs/object/replaceProperty.d.ts +0 -6
  1440. package/cjs/object/replaceProperty.d.ts.map +0 -1
  1441. package/cjs/object/replaceProperty.js +0 -8
  1442. package/cjs/object/replaceProperty.js.map +0 -1
  1443. package/cjs/object/someKey.d.ts +0 -3
  1444. package/cjs/object/someKey.d.ts.map +0 -1
  1445. package/cjs/object/someKey.js +0 -10
  1446. package/cjs/object/someKey.js.map +0 -1
  1447. package/cjs/object/split.d.ts +0 -76
  1448. package/cjs/object/split.d.ts.map +0 -1
  1449. package/cjs/object/split.js +0 -12
  1450. package/cjs/object/split.js.map +0 -1
  1451. package/cjs/object/typeOverrideIncompatible.d.ts +0 -3
  1452. package/cjs/object/typeOverrideIncompatible.d.ts.map +0 -1
  1453. package/cjs/object/typeOverrideIncompatible.js +0 -13
  1454. package/cjs/object/typeOverrideIncompatible.js.map +0 -1
  1455. package/cjs/package.json +0 -3
  1456. package/cjs/predicates/CanAssign.d.ts +0 -45
  1457. package/cjs/predicates/CanAssign.d.ts.map +0 -1
  1458. package/cjs/predicates/CanAssign.js +0 -8
  1459. package/cjs/predicates/CanAssign.js.map +0 -1
  1460. package/cjs/predicates/Extends.d.ts +0 -5
  1461. package/cjs/predicates/Extends.d.ts.map +0 -1
  1462. package/cjs/predicates/Extends.js +0 -3
  1463. package/cjs/predicates/Extends.js.map +0 -1
  1464. package/cjs/predicates/If.d.ts +0 -2
  1465. package/cjs/predicates/If.d.ts.map +0 -1
  1466. package/cjs/predicates/If.js +0 -3
  1467. package/cjs/predicates/If.js.map +0 -1
  1468. package/cjs/predicates/IsEmptyObject.d.ts +0 -2
  1469. package/cjs/predicates/IsEmptyObject.d.ts.map +0 -1
  1470. package/cjs/predicates/IsEmptyObject.js +0 -3
  1471. package/cjs/predicates/IsEmptyObject.js.map +0 -1
  1472. package/cjs/predicates/index.d.ts +0 -7
  1473. package/cjs/predicates/index.d.ts.map +0 -1
  1474. package/cjs/predicates/index.js +0 -18
  1475. package/cjs/predicates/index.js.map +0 -1
  1476. package/cjs/predicates/literal.d.ts +0 -22
  1477. package/cjs/predicates/literal.d.ts.map +0 -1
  1478. package/cjs/predicates/literal.js +0 -3
  1479. package/cjs/predicates/literal.js.map +0 -1
  1480. package/cjs/predicates/logical.d.ts +0 -5
  1481. package/cjs/predicates/logical.d.ts.map +0 -1
  1482. package/cjs/predicates/logical.js +0 -3
  1483. package/cjs/predicates/logical.js.map +0 -1
  1484. package/cjs/primitive.d.ts +0 -5
  1485. package/cjs/primitive.d.ts.map +0 -1
  1486. package/cjs/primitive.js +0 -3
  1487. package/cjs/primitive.js.map +0 -1
  1488. package/cjs/promise/MaybePromise.d.ts +0 -22
  1489. package/cjs/promise/MaybePromise.d.ts.map +0 -1
  1490. package/cjs/promise/MaybePromise.js +0 -12
  1491. package/cjs/promise/MaybePromise.js.map +0 -1
  1492. package/cjs/promise/PromiseValue.d.ts +0 -13
  1493. package/cjs/promise/PromiseValue.d.ts.map +0 -1
  1494. package/cjs/promise/PromiseValue.js +0 -3
  1495. package/cjs/promise/PromiseValue.js.map +0 -1
  1496. package/cjs/promise/PromiseValueMerge.d.ts +0 -5
  1497. package/cjs/promise/PromiseValueMerge.d.ts.map +0 -1
  1498. package/cjs/promise/PromiseValueMerge.js +0 -3
  1499. package/cjs/promise/PromiseValueMerge.js.map +0 -1
  1500. package/cjs/promise/index.d.ts +0 -6
  1501. package/cjs/promise/index.d.ts.map +0 -1
  1502. package/cjs/promise/index.js +0 -20
  1503. package/cjs/promise/index.js.map +0 -1
  1504. package/cjs/promise/isPromise.d.ts +0 -2
  1505. package/cjs/promise/isPromise.d.ts.map +0 -1
  1506. package/cjs/promise/isPromise.js +0 -9
  1507. package/cjs/promise/isPromise.js.map +0 -1
  1508. package/cjs/promise/mapSeries.d.ts +0 -2
  1509. package/cjs/promise/mapSeries.d.ts.map +0 -1
  1510. package/cjs/promise/mapSeries.js +0 -8
  1511. package/cjs/promise/mapSeries.js.map +0 -1
  1512. package/cjs/string/strict_string_type.d.ts +0 -61
  1513. package/cjs/string/strict_string_type.d.ts.map +0 -1
  1514. package/cjs/string/strict_string_type.js +0 -3
  1515. package/cjs/string/strict_string_type.js.map +0 -1
  1516. package/cjs/string/string.d.ts +0 -24
  1517. package/cjs/string/string.d.ts.map +0 -1
  1518. package/cjs/string/string.js +0 -3
  1519. package/cjs/string/string.js.map +0 -1
  1520. package/cjs/string/string_plus.d.ts +0 -27
  1521. package/cjs/string/string_plus.d.ts.map +0 -1
  1522. package/cjs/string/string_plus.js +0 -3
  1523. package/cjs/string/string_plus.js.map +0 -1
  1524. package/cjs/string/string_type.d.ts +0 -58
  1525. package/cjs/string/string_type.d.ts.map +0 -1
  1526. package/cjs/string/string_type.js +0 -3
  1527. package/cjs/string/string_type.js.map +0 -1
  1528. package/cjs/symbol/symbol_type.d.ts +0 -50
  1529. package/cjs/symbol/symbol_type.d.ts.map +0 -1
  1530. package/cjs/symbol/symbol_type.js +0 -3
  1531. package/cjs/symbol/symbol_type.js.map +0 -1
  1532. package/cjs/testing/stub.d.ts +0 -31
  1533. package/cjs/testing/stub.d.ts.map +0 -1
  1534. package/cjs/testing/stub.js +0 -60
  1535. package/cjs/testing/stub.js.map +0 -1
  1536. package/cjs/testing/test_type.d.ts +0 -310
  1537. package/cjs/testing/test_type.d.ts.map +0 -1
  1538. package/cjs/testing/test_type.js +0 -16
  1539. package/cjs/testing/test_type.js.map +0 -1
  1540. package/cjs/tuple/common_prop_keys.d.ts +0 -34
  1541. package/cjs/tuple/common_prop_keys.d.ts.map +0 -1
  1542. package/cjs/tuple/common_prop_keys.js +0 -3
  1543. package/cjs/tuple/common_prop_keys.js.map +0 -1
  1544. package/cjs/tuple/create_tuple.d.ts +0 -28
  1545. package/cjs/tuple/create_tuple.d.ts.map +0 -1
  1546. package/cjs/tuple/create_tuple.js +0 -3
  1547. package/cjs/tuple/create_tuple.js.map +0 -1
  1548. package/cjs/tuple/drop.d.ts +0 -91
  1549. package/cjs/tuple/drop.d.ts.map +0 -1
  1550. package/cjs/tuple/drop.js +0 -13
  1551. package/cjs/tuple/drop.js.map +0 -1
  1552. package/cjs/tuple/tail.d.ts +0 -6
  1553. package/cjs/tuple/tail.d.ts.map +0 -1
  1554. package/cjs/tuple/tail.js +0 -3
  1555. package/cjs/tuple/tail.js.map +0 -1
  1556. package/cjs/tuple/tuple_plus.common_prop_keys.d.ts +0 -28
  1557. package/cjs/tuple/tuple_plus.common_prop_keys.d.ts.map +0 -1
  1558. package/cjs/tuple/tuple_plus.common_prop_keys.js +0 -3
  1559. package/cjs/tuple/tuple_plus.common_prop_keys.js.map +0 -1
  1560. package/cjs/tuple/tuple_plus.d.ts +0 -6
  1561. package/cjs/tuple/tuple_plus.d.ts.map +0 -1
  1562. package/cjs/tuple/tuple_plus.drop_match.d.ts +0 -6
  1563. package/cjs/tuple/tuple_plus.drop_match.d.ts.map +0 -1
  1564. package/cjs/tuple/tuple_plus.drop_match.js +0 -3
  1565. package/cjs/tuple/tuple_plus.drop_match.js.map +0 -1
  1566. package/cjs/tuple/tuple_plus.filter.d.ts +0 -13
  1567. package/cjs/tuple/tuple_plus.filter.d.ts.map +0 -1
  1568. package/cjs/tuple/tuple_plus.filter.js +0 -3
  1569. package/cjs/tuple/tuple_plus.filter.js.map +0 -1
  1570. package/cjs/tuple/tuple_plus.find.d.ts +0 -64
  1571. package/cjs/tuple/tuple_plus.find.d.ts.map +0 -1
  1572. package/cjs/tuple/tuple_plus.find.js +0 -3
  1573. package/cjs/tuple/tuple_plus.find.js.map +0 -1
  1574. package/cjs/tuple/tuple_plus.js +0 -3
  1575. package/cjs/tuple/tuple_plus.js.map +0 -1
  1576. package/cjs/tuple/tuple_plus.pad_start.d.ts +0 -28
  1577. package/cjs/tuple/tuple_plus.pad_start.d.ts.map +0 -1
  1578. package/cjs/tuple/tuple_plus.pad_start.js +0 -3
  1579. package/cjs/tuple/tuple_plus.pad_start.js.map +0 -1
  1580. package/cjs/tuple/tuple_type.d.ts +0 -77
  1581. package/cjs/tuple/tuple_type.d.ts.map +0 -1
  1582. package/cjs/tuple/tuple_type.js +0 -3
  1583. package/cjs/tuple/tuple_type.js.map +0 -1
  1584. package/cjs/type/failed.d.ts +0 -32
  1585. package/cjs/type/failed.d.ts.map +0 -1
  1586. package/cjs/type/failed.js +0 -3
  1587. package/cjs/type/failed.js.map +0 -1
  1588. package/cjs/type/no_infer.d.ts +0 -27
  1589. package/cjs/type/no_infer.d.ts.map +0 -1
  1590. package/cjs/type/no_infer.js +0 -3
  1591. package/cjs/type/no_infer.js.map +0 -1
  1592. package/cjs/type-guard/is_type.d.ts +0 -27
  1593. package/cjs/type-guard/is_type.d.ts.map +0 -1
  1594. package/cjs/type-guard/is_type.js +0 -32
  1595. package/cjs/type-guard/is_type.js.map +0 -1
  1596. package/cjs/undefined/undefined_type.d.ts +0 -53
  1597. package/cjs/undefined/undefined_type.d.ts.map +0 -1
  1598. package/cjs/undefined/undefined_type.js +0 -3
  1599. package/cjs/undefined/undefined_type.js.map +0 -1
  1600. package/cjs/union/union.d.ts +0 -33
  1601. package/cjs/union/union.d.ts.map +0 -1
  1602. package/cjs/union/union.js +0 -3
  1603. package/cjs/union/union.js.map +0 -1
  1604. package/cjs/union/union_to_intersection.d.ts +0 -3
  1605. package/cjs/union/union_to_intersection.d.ts.map +0 -1
  1606. package/cjs/union/union_to_intersection.js +0 -8
  1607. package/cjs/union/union_to_intersection.js.map +0 -1
  1608. package/cjs/union_keys.d.ts +0 -6
  1609. package/cjs/union_keys.d.ts.map +0 -1
  1610. package/cjs/union_keys.js +0 -3
  1611. package/cjs/union_keys.js.map +0 -1
  1612. package/cjs/unknown/unknown_type.d.ts +0 -63
  1613. package/cjs/unknown/unknown_type.d.ts.map +0 -1
  1614. package/cjs/unknown/unknown_type.js +0 -3
  1615. package/cjs/unknown/unknown_type.js.map +0 -1
  1616. package/cjs/unpartial.d.ts +0 -2
  1617. package/cjs/unpartial.d.ts.map +0 -1
  1618. package/cjs/unpartial.js +0 -8
  1619. package/cjs/unpartial.js.map +0 -1
  1620. package/cjs/utils/NonNull.d.ts +0 -2
  1621. package/cjs/utils/NonNull.d.ts.map +0 -1
  1622. package/cjs/utils/NonNull.js +0 -3
  1623. package/cjs/utils/NonNull.js.map +0 -1
  1624. package/cjs/utils/NonUndefined.d.ts +0 -2
  1625. package/cjs/utils/NonUndefined.d.ts.map +0 -1
  1626. package/cjs/utils/NonUndefined.js +0 -3
  1627. package/cjs/utils/NonUndefined.js.map +0 -1
  1628. package/cjs/utils/Widen.d.ts +0 -6
  1629. package/cjs/utils/Widen.d.ts.map +0 -1
  1630. package/cjs/utils/Widen.js +0 -3
  1631. package/cjs/utils/Widen.js.map +0 -1
  1632. package/cjs/utils/as.d.ts +0 -10
  1633. package/cjs/utils/as.d.ts.map +0 -1
  1634. package/cjs/utils/as.js +0 -26
  1635. package/cjs/utils/as.js.map +0 -1
  1636. package/cjs/utils/index.d.ts +0 -43
  1637. package/cjs/utils/index.d.ts.map +0 -1
  1638. package/cjs/utils/index.js +0 -19
  1639. package/cjs/utils/index.js.map +0 -1
  1640. package/cjs/utils/inspect.d.ts +0 -5
  1641. package/cjs/utils/inspect.d.ts.map +0 -1
  1642. package/cjs/utils/inspect.js +0 -13
  1643. package/cjs/utils/inspect.js.map +0 -1
  1644. package/cjs/utils/options.d.ts +0 -10
  1645. package/cjs/utils/options.d.ts.map +0 -1
  1646. package/cjs/utils/options.js +0 -3
  1647. package/cjs/utils/options.js.map +0 -1
  1648. package/cjs/void/void_type.d.ts +0 -43
  1649. package/cjs/void/void_type.d.ts.map +0 -1
  1650. package/cjs/void/void_type.js +0 -3
  1651. package/cjs/void/void_type.js.map +0 -1
  1652. package/esm/any/any_type.d.ts +0 -63
  1653. package/esm/any/any_type.d.ts.map +0 -1
  1654. package/esm/any/any_type.js +0 -2
  1655. package/esm/any/any_type.js.map +0 -1
  1656. package/esm/array/array_index.d.ts +0 -37
  1657. package/esm/array/array_index.d.ts.map +0 -1
  1658. package/esm/array/array_index.js +0 -2
  1659. package/esm/array/array_index.js.map +0 -1
  1660. package/esm/array/array_type.d.ts +0 -66
  1661. package/esm/array/array_type.d.ts.map +0 -1
  1662. package/esm/array/array_type.js +0 -2
  1663. package/esm/array/array_type.js.map +0 -1
  1664. package/esm/bigint/bigint_type.d.ts +0 -54
  1665. package/esm/bigint/bigint_type.d.ts.map +0 -1
  1666. package/esm/bigint/bigint_type.js +0 -2
  1667. package/esm/bigint/bigint_type.js.map +0 -1
  1668. package/esm/bigint/strict_bigint_type.d.ts +0 -56
  1669. package/esm/bigint/strict_bigint_type.d.ts.map +0 -1
  1670. package/esm/bigint/strict_bigint_type.js +0 -2
  1671. package/esm/bigint/strict_bigint_type.js.map +0 -1
  1672. package/esm/boolean/boolean_type.d.ts +0 -56
  1673. package/esm/boolean/boolean_type.d.ts.map +0 -1
  1674. package/esm/boolean/boolean_type.js +0 -2
  1675. package/esm/boolean/boolean_type.js.map +0 -1
  1676. package/esm/boolean/false_type.d.ts +0 -49
  1677. package/esm/boolean/false_type.d.ts.map +0 -1
  1678. package/esm/boolean/false_type.js +0 -2
  1679. package/esm/boolean/false_type.js.map +0 -1
  1680. package/esm/boolean/strict_boolean_type.d.ts +0 -53
  1681. package/esm/boolean/strict_boolean_type.d.ts.map +0 -1
  1682. package/esm/boolean/strict_boolean_type.js +0 -2
  1683. package/esm/boolean/strict_boolean_type.js.map +0 -1
  1684. package/esm/boolean/true_type.d.ts +0 -49
  1685. package/esm/boolean/true_type.d.ts.map +0 -1
  1686. package/esm/boolean/true_type.js +0 -2
  1687. package/esm/boolean/true_type.js.map +0 -1
  1688. package/esm/function/function_type.d.ts +0 -59
  1689. package/esm/function/function_type.d.ts.map +0 -1
  1690. package/esm/function/function_type.js +0 -2
  1691. package/esm/function/function_type.js.map +0 -1
  1692. package/esm/function/strict_function_type.d.ts +0 -49
  1693. package/esm/function/strict_function_type.d.ts.map +0 -1
  1694. package/esm/function/strict_function_type.js +0 -2
  1695. package/esm/function/strict_function_type.js.map +0 -1
  1696. package/esm/merge.d.ts +0 -55
  1697. package/esm/merge.d.ts.map +0 -1
  1698. package/esm/merge.js +0 -14
  1699. package/esm/merge.js.map +0 -1
  1700. package/esm/mix_types/any_or_never_type.d.ts +0 -37
  1701. package/esm/mix_types/any_or_never_type.d.ts.map +0 -1
  1702. package/esm/mix_types/any_or_never_type.js +0 -2
  1703. package/esm/mix_types/any_or_never_type.js.map +0 -1
  1704. package/esm/never/never_type.d.ts +0 -62
  1705. package/esm/never/never_type.d.ts.map +0 -1
  1706. package/esm/never/never_type.js +0 -2
  1707. package/esm/never/never_type.js.map +0 -1
  1708. package/esm/null/null_type.d.ts +0 -50
  1709. package/esm/null/null_type.d.ts.map +0 -1
  1710. package/esm/null/null_type.js +0 -2
  1711. package/esm/null/null_type.js.map +0 -1
  1712. package/esm/number/number_type.d.ts +0 -50
  1713. package/esm/number/number_type.d.ts.map +0 -1
  1714. package/esm/number/number_type.js +0 -2
  1715. package/esm/number/number_type.js.map +0 -1
  1716. package/esm/number/strict_number_type.d.ts +0 -65
  1717. package/esm/number/strict_number_type.d.ts.map +0 -1
  1718. package/esm/number/strict_number_type.js +0 -2
  1719. package/esm/number/strict_number_type.js.map +0 -1
  1720. package/esm/numeric/integer.d.ts +0 -69
  1721. package/esm/numeric/integer.d.ts.map +0 -1
  1722. package/esm/numeric/integer.js +0 -2
  1723. package/esm/numeric/integer.js.map +0 -1
  1724. package/esm/numeric/negative.d.ts +0 -70
  1725. package/esm/numeric/negative.d.ts.map +0 -1
  1726. package/esm/numeric/negative.js +0 -2
  1727. package/esm/numeric/negative.js.map +0 -1
  1728. package/esm/numeric/positive.d.ts +0 -53
  1729. package/esm/numeric/positive.d.ts.map +0 -1
  1730. package/esm/numeric/positive.js +0 -2
  1731. package/esm/numeric/positive.js.map +0 -1
  1732. package/esm/object/AnyRecord.d.ts +0 -3
  1733. package/esm/object/AnyRecord.d.ts.map +0 -1
  1734. package/esm/object/AnyRecord.js +0 -2
  1735. package/esm/object/AnyRecord.js.map +0 -1
  1736. package/esm/object/OptionalKeys.d.ts +0 -8
  1737. package/esm/object/OptionalKeys.d.ts.map +0 -1
  1738. package/esm/object/OptionalKeys.js +0 -2
  1739. package/esm/object/OptionalKeys.js.map +0 -1
  1740. package/esm/object/object_type.d.ts +0 -54
  1741. package/esm/object/object_type.d.ts.map +0 -1
  1742. package/esm/object/object_type.js +0 -2
  1743. package/esm/object/object_type.js.map +0 -1
  1744. package/esm/string/strict_string_type.d.ts +0 -61
  1745. package/esm/string/strict_string_type.d.ts.map +0 -1
  1746. package/esm/string/strict_string_type.js +0 -2
  1747. package/esm/string/strict_string_type.js.map +0 -1
  1748. package/esm/string/string_type.d.ts +0 -58
  1749. package/esm/string/string_type.d.ts.map +0 -1
  1750. package/esm/string/string_type.js +0 -2
  1751. package/esm/string/string_type.js.map +0 -1
  1752. package/esm/symbol/symbol_type.d.ts +0 -50
  1753. package/esm/symbol/symbol_type.d.ts.map +0 -1
  1754. package/esm/symbol/symbol_type.js +0 -2
  1755. package/esm/symbol/symbol_type.js.map +0 -1
  1756. package/esm/tuple/tuple_type.d.ts +0 -77
  1757. package/esm/tuple/tuple_type.d.ts.map +0 -1
  1758. package/esm/tuple/tuple_type.js +0 -2
  1759. package/esm/tuple/tuple_type.js.map +0 -1
  1760. package/esm/undefined/undefined_type.d.ts +0 -53
  1761. package/esm/undefined/undefined_type.d.ts.map +0 -1
  1762. package/esm/undefined/undefined_type.js +0 -2
  1763. package/esm/undefined/undefined_type.js.map +0 -1
  1764. package/esm/unknown/unknown_type.d.ts +0 -63
  1765. package/esm/unknown/unknown_type.d.ts.map +0 -1
  1766. package/esm/unknown/unknown_type.js +0 -2
  1767. package/esm/unknown/unknown_type.js.map +0 -1
  1768. package/esm/utils/NonNull.d.ts +0 -2
  1769. package/esm/utils/NonNull.d.ts.map +0 -1
  1770. package/esm/utils/NonNull.js +0 -2
  1771. package/esm/utils/NonNull.js.map +0 -1
  1772. package/esm/utils/NonUndefined.d.ts +0 -2
  1773. package/esm/utils/NonUndefined.d.ts.map +0 -1
  1774. package/esm/utils/NonUndefined.js +0 -2
  1775. package/esm/utils/NonUndefined.js.map +0 -1
  1776. package/esm/void/void_type.d.ts +0 -43
  1777. package/esm/void/void_type.d.ts.map +0 -1
  1778. package/esm/void/void_type.js +0 -2
  1779. package/esm/void/void_type.js.map +0 -1
  1780. package/ts/any/any_type.ts +0 -65
  1781. package/ts/any/readme.md +0 -110
  1782. package/ts/array/array.at.ts +0 -30
  1783. package/ts/array/array.entries.ts +0 -26
  1784. package/ts/array/array.find_last.ts +0 -29
  1785. package/ts/array/array.reverse.ts +0 -16
  1786. package/ts/array/array.some.ts +0 -67
  1787. package/ts/array/array_index.ts +0 -83
  1788. package/ts/array/array_plus.common_prop_keys.ts +0 -35
  1789. package/ts/array/array_plus.concat.ts +0 -15
  1790. package/ts/array/array_plus.drop_match.ts +0 -16
  1791. package/ts/array/array_plus.element_match.ts +0 -61
  1792. package/ts/array/array_plus.filter.ts +0 -5
  1793. package/ts/array/array_plus.find.ts +0 -71
  1794. package/ts/array/array_plus.pad_start.ts +0 -13
  1795. package/ts/array/array_plus.split_at.ts +0 -74
  1796. package/ts/array/array_plus.ts +0 -14
  1797. package/ts/array/array_type.ts +0 -71
  1798. package/ts/array/filter.ts +0 -32
  1799. package/ts/array/find_first.ts +0 -71
  1800. package/ts/array/head.ts +0 -40
  1801. package/ts/array/intersect_of_props.ts +0 -21
  1802. package/ts/array/last.ts +0 -38
  1803. package/ts/array/pad_start.ts +0 -39
  1804. package/ts/array/readme.md +0 -497
  1805. package/ts/array/union_of_props.ts +0 -17
  1806. package/ts/array/union_of_values.ts +0 -14
  1807. package/ts/assertion/assert_type.ts +0 -119
  1808. package/ts/bigint/bigint_type.ts +0 -57
  1809. package/ts/bigint/readme.md +0 -51
  1810. package/ts/bigint/strict_bigint_type.ts +0 -61
  1811. package/ts/boolean/boolean_type.ts +0 -61
  1812. package/ts/boolean/false_type.ts +0 -53
  1813. package/ts/boolean/readme.md +0 -85
  1814. package/ts/boolean/strict_boolean_type.ts +0 -57
  1815. package/ts/boolean/true_type.ts +0 -53
  1816. package/ts/class/AnyConstructor.ts +0 -1
  1817. package/ts/class/isConstructor.ts +0 -34
  1818. package/ts/equal/equal.ts +0 -142
  1819. package/ts/function/function_type.ts +0 -64
  1820. package/ts/function/strict_function_type.ts +0 -53
  1821. package/ts/functional/Maybe.ts +0 -22
  1822. package/ts/functional/compose.ts +0 -17
  1823. package/ts/functional/context.ts +0 -66
  1824. package/ts/index.ts +0 -121
  1825. package/ts/math/abs.ts +0 -18
  1826. package/ts/math/greater_than.ts +0 -12
  1827. package/ts/math/index.ts +0 -7
  1828. package/ts/math/max.ts +0 -13
  1829. package/ts/math/numeric_struct.ts +0 -656
  1830. package/ts/merge.ts +0 -72
  1831. package/ts/mix_types/any_or_never_type.ts +0 -38
  1832. package/ts/mix_types/readme.md +0 -40
  1833. package/ts/never/never_type.ts +0 -70
  1834. package/ts/never/readme.md +0 -37
  1835. package/ts/nominal/brand.ts +0 -43
  1836. package/ts/nominal/flavor.ts +0 -53
  1837. package/ts/nominal/nominal_match.ts +0 -22
  1838. package/ts/null/null_type.ts +0 -53
  1839. package/ts/null/readme.md +0 -24
  1840. package/ts/number/number_plus.ts +0 -20
  1841. package/ts/number/number_type.ts +0 -53
  1842. package/ts/number/readme.md +0 -47
  1843. package/ts/number/strict_number_type.ts +0 -69
  1844. package/ts/numeric/integer.ts +0 -75
  1845. package/ts/numeric/negative.ts +0 -101
  1846. package/ts/numeric/numeric_plus.ts +0 -12
  1847. package/ts/numeric/numeric_type.ts +0 -64
  1848. package/ts/numeric/positive.ts +0 -60
  1849. package/ts/object/ANotB.ts +0 -12
  1850. package/ts/object/IsDisjoint.ts +0 -12
  1851. package/ts/object/KeysWithDiffType.ts +0 -9
  1852. package/ts/object/KnownKeys.ts +0 -17
  1853. package/ts/object/OptionalKeys.ts +0 -9
  1854. package/ts/object/RecursiveIntersect.ts +0 -25
  1855. package/ts/object/RecursiveRequired.ts +0 -9
  1856. package/ts/object/Required.ts +0 -9
  1857. package/ts/object/RequiredKeys.ts +0 -8
  1858. package/ts/object/facade.ts +0 -214
  1859. package/ts/object/forEachKey.ts +0 -9
  1860. package/ts/object/hasKey.ts +0 -7
  1861. package/ts/object/index.ts +0 -38
  1862. package/ts/object/left_join.ts +0 -19
  1863. package/ts/object/mapProperties.ts +0 -22
  1864. package/ts/object/object_type.ts +0 -57
  1865. package/ts/object/omit.ts +0 -224
  1866. package/ts/object/optional_key.ts +0 -38
  1867. package/ts/object/pick.ts +0 -220
  1868. package/ts/object/readme.md +0 -65
  1869. package/ts/object/record.ts +0 -23
  1870. package/ts/object/recursive_partial.ts +0 -39
  1871. package/ts/object/replaceProperty.ts +0 -11
  1872. package/ts/object/split.ts +0 -203
  1873. package/ts/object/typeOverrideIncompatible.ts +0 -10
  1874. package/ts/predicates/CanAssign.ts +0 -71
  1875. package/ts/predicates/Extends.ts +0 -4
  1876. package/ts/predicates/index.ts +0 -7
  1877. package/ts/predicates/literal.ts +0 -35
  1878. package/ts/promise/index.ts +0 -5
  1879. package/ts/string/strict_string_type.ts +0 -65
  1880. package/ts/string/string.ts +0 -36
  1881. package/ts/string/string_plus.ts +0 -33
  1882. package/ts/string/string_type.ts +0 -61
  1883. package/ts/symbol/symbol_type.ts +0 -53
  1884. package/ts/testing/stub.ts +0 -80
  1885. package/ts/testing/test_type.ts +0 -317
  1886. package/ts/tuple/common_prop_keys.ts +0 -41
  1887. package/ts/tuple/create_tuple.ts +0 -42
  1888. package/ts/tuple/drop.ts +0 -125
  1889. package/ts/tuple/readme.md +0 -282
  1890. package/ts/tuple/tail.ts +0 -12
  1891. package/ts/tuple/tuple_plus.common_prop_keys.ts +0 -47
  1892. package/ts/tuple/tuple_plus.filter.ts +0 -29
  1893. package/ts/tuple/tuple_plus.find.ts +0 -88
  1894. package/ts/tuple/tuple_plus.pad_start.ts +0 -58
  1895. package/ts/tuple/tuple_type.ts +0 -106
  1896. package/ts/type/no_infer.ts +0 -27
  1897. package/ts/type-guard/is_type.ts +0 -52
  1898. package/ts/undefined/readme.md +0 -18
  1899. package/ts/undefined/undefined_type.ts +0 -57
  1900. package/ts/union/readme.md +0 -81
  1901. package/ts/union/union.ts +0 -37
  1902. package/ts/unknown/readme.md +0 -27
  1903. package/ts/unknown/unknown_type.ts +0 -68
  1904. package/ts/utils/NonNull.ts +0 -1
  1905. package/ts/utils/NonUndefined.ts +0 -1
  1906. package/ts/utils/index.ts +0 -63
  1907. package/ts/utils/options.ts +0 -10
  1908. package/ts/void/readme.md +0 -26
  1909. package/ts/void/void_type.ts +0 -50
  1910. /package/{ts → src}/array/literal_array.ts +0 -0
  1911. /package/{ts → src}/array/reduce_while.ts +0 -0
  1912. /package/{ts → src}/array/reverse.ts +0 -0
  1913. /package/{ts → src}/assertion/readme.md +0 -0
  1914. /package/{ts → src}/bigint/cast.ts +0 -0
  1915. /package/{ts → src}/binary/Bit.ts +0 -0
  1916. /package/{ts → src}/binary/_binary.ts +0 -0
  1917. /package/{ts → src}/binary/index.ts +0 -0
  1918. /package/{ts → src}/class/index.ts +0 -0
  1919. /package/{ts → src}/composable_types.ts +0 -0
  1920. /package/{ts → src}/equal/readme.md +0 -0
  1921. /package/{ts → src}/function/any_function.ts +0 -0
  1922. /package/{ts → src}/function/extract_function.ts +0 -0
  1923. /package/{ts → src}/function/readme.md +0 -0
  1924. /package/{ts → src}/functional/ChainFn.ts +0 -0
  1925. /package/{ts → src}/functional/index.ts +0 -0
  1926. /package/{ts → src}/json.ts +0 -0
  1927. /package/{ts → src}/math/README.md +0 -0
  1928. /package/{ts → src}/math/add.ts +0 -0
  1929. /package/{ts → src}/math/math_plus.to_negative.ts +0 -0
  1930. /package/{ts → src}/math/math_plus.ts +0 -0
  1931. /package/{ts → src}/math/multiply.ts +0 -0
  1932. /package/{ts → src}/math/subtract.ts +0 -0
  1933. /package/{ts → src}/nodejs/index.ts +0 -0
  1934. /package/{ts → src}/nodejs/isNodeError.ts +0 -0
  1935. /package/{ts → src}/nominal/constants.ts +0 -0
  1936. /package/{ts → src}/nominal/index.ts +0 -0
  1937. /package/{ts → src}/number/cast.ts +0 -0
  1938. /package/{ts → src}/number/number_array.ts +0 -0
  1939. /package/{ts → src}/numeric/cast.ts +0 -0
  1940. /package/{ts → src}/numeric/readme.md +0 -0
  1941. /package/{ts → src}/object/ExcludePropType.ts +0 -0
  1942. /package/{ts → src}/object/IsRecord.ts +0 -0
  1943. /package/{ts → src}/object/KeyTypes.ts +0 -0
  1944. /package/{ts → src}/object/KeyofOptional.ts +0 -0
  1945. /package/{ts → src}/object/Partial.ts +0 -0
  1946. /package/{ts → src}/object/SpreadRecord.ts +0 -0
  1947. /package/{ts → src}/object/ValueOf.ts +0 -0
  1948. /package/{ts/object/AnyRecord.ts → src/object/any_record.ts} +0 -0
  1949. /package/{ts → src}/object/everyKey.ts +0 -0
  1950. /package/{ts → src}/object/filterKey.ts +0 -0
  1951. /package/{ts → src}/object/findKey.ts +0 -0
  1952. /package/{ts → src}/object/getField.ts +0 -0
  1953. /package/{ts → src}/object/hasProperty.ts +0 -0
  1954. /package/{ts → src}/object/mapKey.ts +0 -0
  1955. /package/{ts → src}/object/properties.ts +0 -0
  1956. /package/{ts → src}/object/reduceKey.ts +0 -0
  1957. /package/{ts → src}/object/someKey.ts +0 -0
  1958. /package/{ts → src}/predicates/If.ts +0 -0
  1959. /package/{ts → src}/predicates/IsEmptyObject.ts +0 -0
  1960. /package/{ts → src}/predicates/logical.ts +0 -0
  1961. /package/{ts → src}/primitive.ts +0 -0
  1962. /package/{ts → src}/promise/MaybePromise.ts +0 -0
  1963. /package/{ts → src}/promise/PromiseValue.ts +0 -0
  1964. /package/{ts → src}/promise/PromiseValueMerge.ts +0 -0
  1965. /package/{ts → src}/promise/isPromise.ts +0 -0
  1966. /package/{ts → src}/promise/mapSeries.ts +0 -0
  1967. /package/{ts → src}/string/readme.md +0 -0
  1968. /package/{ts → src}/symbol/readme.md +0 -0
  1969. /package/{ts → src}/testing/readme.md +0 -0
  1970. /package/{ts → src}/tuple/tuple_plus.drop_match.ts +0 -0
  1971. /package/{ts → src}/tuple/tuple_plus.ts +0 -0
  1972. /package/{ts → src}/type/failed.ts +0 -0
  1973. /package/{ts → src}/type/readme.md +0 -0
  1974. /package/{ts → src}/type-guard/readme.md +0 -0
  1975. /package/{ts → src}/union/union_to_intersection.ts +0 -0
  1976. /package/{ts → src}/union_keys.ts +0 -0
  1977. /package/{ts → src}/unpartial.ts +0 -0
  1978. /package/{ts → src}/utils/Widen.ts +0 -0
  1979. /package/{ts → src}/utils/as.ts +0 -0
  1980. /package/{ts → src}/utils/inspect.ts +0 -0
package/readme.md ADDED
@@ -0,0 +1,1376 @@
1
+ # type-plus
2
+
3
+ [![NPM version][npm_image]][npm_url]
4
+ [![NPM downloads][downloads_image]][npm_url]
5
+
6
+ [![Release][github_release]][github_action_url]
7
+ [![Codecov][codecov_image]][codecov_url]
8
+
9
+ [![Visual Studio Code][vscode_image]][vscode_url]
10
+
11
+ More than 200 type utilities for [TypeScript] for applications, library, and type-level programming.
12
+
13
+ ## Table of Contents
14
+
15
+ 1. [Table of Contents](#table-of-contents)
16
+ 2. [Installation](#installation)
17
+ 3. [What's in the package?](#whats-in-the-package)
18
+ 1. [Update organization](#update-organization)
19
+ 2. [Update documentation](#update-documentation)
20
+ 4. [Assertion Function](#assertion-function)
21
+ 1. [assertType](#asserttype)
22
+ 5. [Type Guard](#type-guard)
23
+ 6. [Type Utilities](#type-utilities)
24
+ 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)
43
+ 8. [Testing Utilities](#testing-utilities)
44
+ 9. [Constant Types](#constant-types)
45
+ 10. [JSON Support](#json-support)
46
+ 11. [Type manipulation](#type-manipulation)
47
+ 12. [Type Predicates](#type-predicates)
48
+ 1. [Logical](#logical)
49
+ 13. [Math](#math)
50
+ 14. [Utility Functions](#utility-functions)
51
+ 15. [Nominal Types](#nominal-types)
52
+ 16. [Functional Types](#functional-types)
53
+ 17. [Attribution](#attribution)
54
+ 18. [Useful Tips](#useful-tips)
55
+ 19. [Similar projects](#similar-projects)
56
+
57
+ ## Installation
58
+
59
+ ```sh
60
+ npm install type-plus
61
+
62
+ yarn add type-plus
63
+
64
+ pnpm add type-plus
65
+ ```
66
+
67
+ ## What's in the package?
68
+
69
+ With over 200 types in [type-plus],
70
+ it can become difficult to find the types you need.
71
+
72
+ Also, some of the types need to be updated as TypeScript continue to evolve.
73
+
74
+ Currently, we are updating [type-plus] with the following objective:
75
+
76
+ - Update organization
77
+ - Update documentation
78
+ - Clean up and deprecate types
79
+ - Upgrade TypeScript from 5.0.4 to 5.1 (potential breaking changes)
80
+
81
+ ### Update organization
82
+
83
+ Top-level exports of [type-plus] will contain types and functions that do not expect the input to be a specific type. For example,
84
+
85
+ - `assertType()`, `isType()`, and `testType()`
86
+ - Type filters and predicates such as `AnyType` or `IsArray`
87
+
88
+ It can also have types and functions for specific types if it is a common convention,
89
+ or the is no ambiguity, or for backwards compatibility purpose.
90
+
91
+ Other type specific utilities will be added under their respective `*Plus` namespaces such as `ArrayPlus.At` or `NumberPlus.Positive`.
92
+
93
+ ### Update documentation
94
+
95
+ Each type and utility function in [type-plus] will be updated to include examples and tags to indicate its category and behavior.
96
+
97
+ Each tag has an associated icon:
98
+
99
+ - 👽 *alias*: Alias of another type
100
+ - 🚦 *assertion*: assertion function
101
+ - 🔢 *customizable*: the behavior of the type is customizable.
102
+ - 💀 *deprecated*: deprecated and will be removed soon
103
+ - 🌪️ *filter*: a.k.a. *parse* These types perform some kind of test. If the input passes the test, the input is returned. Otherwise, it returns `never`
104
+ - 🛡️ *guard*: type guard function
105
+ - 💥 *immediate*: the effect of the type can be observed immediately during development
106
+ - ㊙️ *internal*: the type is internal and should not be used directly
107
+ - 🏃 *runtime*: the function has runtime effect
108
+ - 🩳 *shortcut*: Shortcut or convenient types
109
+ - 🧪 *testing*: the type or function are designed for test
110
+ - ⚗️ *transform*: these types transforms the input to another category
111
+ - 🧰 *type util*: types for building types
112
+ - 🦴 *utilities*: provide various functionalities
113
+ - 🎭 *predicate*: a.k.a. *predicate* or *logical*. These types perform some kind of test. If the input passes the test, it returns `true` or `false`
114
+
115
+ ## Assertion Function
116
+
117
+ [Assertion Functions][assertion_functions] are special functions that asserts certain conditions of your program.
118
+
119
+ It is introduced in TypeScript 3.7.
120
+
121
+ They throw an error if the condition is not met, and return nothing otherwise.
122
+
123
+ These assertion functions are typically used in runtime,
124
+ so that that type of the value can be narrowed down.
125
+
126
+ ### assertType
127
+
128
+ [`assertType`](./src/assertion/assert_type.ts) provides a generic assertion function,
129
+ as well as many assertion functions for builtin types.
130
+
131
+ > [`assertType<T>(subject)`](./src/assertion/readme.md#asserttype)
132
+
133
+ 💀 deprecated. Use `assertType.as()` instead.
134
+
135
+ `assertType<T>(subject, validator)`:
136
+
137
+ 🚦`assertion`: assert the `subject` is type `T` with the specified `validator`.
138
+
139
+ If `subject` fails the assertion,
140
+ a standard `TypeError` will be thrown and provide better error info.
141
+ For example:
142
+
143
+ ```ts
144
+ const s: unknown = 1
145
+
146
+ // TypeError: subject fails to satisfy s => typeof s === 'boolean'
147
+ assertType<boolean>(s, s => typeof s === 'boolean')
148
+ ```
149
+
150
+ The message beautification is provided by [`tersify`](https://github.com/unional/tersify).
151
+
152
+ > [`assertType.isUndefined()`](./src/assertion/readme.md#asserttype)
153
+
154
+ 🚦`assertion`: assert the `subject` is `undefined`.
155
+
156
+ > [`assertType.noUndefined()`](./src/assertion/readme.md#asserttype)
157
+
158
+ 🚦`assertion`: assert the `subject` is not `undefined`.
159
+
160
+ > [`assertType.isNull()`](./src/assertion/readme.md#asserttype)
161
+
162
+ 🚦`assertion`: assert the `subject` is `null`.
163
+
164
+ > [`assertType.noNull()`](./src/assertion/readme.md#asserttype)
165
+
166
+ 🚦`assertion`: assert the `subject` is not `null`.
167
+
168
+ > [`assertType.isNumber()`](./src/assertion/readme.md#asserttype)
169
+
170
+ 🚦`assertion`: assert the `subject` is `number`.
171
+
172
+ > [`assertType.noNumber()`](./src/assertion/readme.md#asserttype)
173
+
174
+ 🚦`assertion`: assert the `subject` is not `number`.
175
+
176
+ > [`assertType.isBoolean()`](./src/assertion/readme.md#asserttype)
177
+
178
+ 🚦`assertion`: assert the `subject` is `boolean`.
179
+
180
+ > [`assertType.noBoolean()`](./src/assertion/readme.md#asserttype)
181
+
182
+ 🚦`assertion`: assert the `subject` is not `boolean`.
183
+
184
+ > [`assertType.isTrue()`](./src/assertion/readme.md#asserttype)
185
+
186
+ 🚦`assertion`: assert the `subject` is `true`.
187
+
188
+ > [`assertType.noTrue()`](./src/assertion/readme.md#asserttype)
189
+
190
+ 🚦`assertion`: assert the `subject` is not `true`.
191
+
192
+ > [`assertType.isFalse()`](./src/assertion/readme.md#asserttype)
193
+
194
+ 🚦`assertion`: assert the `subject` is `false`.
195
+
196
+ > [`assertType.noFalse()`](./src/assertion/readme.md#asserttype)
197
+
198
+ 🚦`assertion`: assert the `subject` is not `false`.
199
+
200
+ > [`assertType.isString()`](./src/assertion/readme.md#asserttype)
201
+
202
+ 🚦`assertion`: assert the `subject` is `string`.
203
+
204
+ > [`assertType.noString()`](./src/assertion/readme.md#asserttype)
205
+
206
+ 🚦`assertion`: assert the `subject` is not `string`.
207
+
208
+ > [`assertType.isFunction()`](./src/assertion/readme.md#asserttype)
209
+
210
+ 🚦`assertion`: assert the `subject` is `function`.
211
+
212
+ > [`assertType.noFunction()`](./src/assertion/readme.md#asserttype)
213
+
214
+ 🚦`assertion`: assert the `subject` is not `function`.
215
+
216
+ > [`assertType.isError()`](./src/assertion/readme.md#asserttype)
217
+
218
+ 🚦`assertion`: assert the `subject` is an `Error`.
219
+
220
+ > [`assertType.noError()`](./src/assertion/readme.md#asserttype)
221
+
222
+ 🚦`assertion`: assert the `subject` is not an `Error`.
223
+
224
+ > [`assertType.isConstructor()`](./src/assertion/readme.md#asserttype)
225
+
226
+ 💀 deprecated. It does not work in all cases.
227
+
228
+ It passes for function that can be called with `new`.
229
+ If the subject is an arrow function, it can still return true after compilation.
230
+
231
+ > [`assertType.isNever()`](./src/assertion/readme.md#asserttype)
232
+
233
+ 🚦`assertion`: assert the `subject` is `never`.
234
+
235
+ > [`assertType.custom()`](./src/assertion/readme.md#asserttype)
236
+
237
+ 🚦`assertion`: creates a custom assertion function.
238
+
239
+ Using it to create a custom assertion function that provides better error messages.
240
+
241
+ The message beautification is provided by [`tersify`](https://github.com/unional/tersify).
242
+
243
+ > [`assertType.as<T>()`](./src/assertion/readme.md#asserttype)
244
+
245
+ 🚦`assertion`: assert the `subject` as `T` without validator.
246
+
247
+ This works similar to manual assertion `;(subject as T)`
248
+
249
+ ## Type Guard
250
+
251
+ [User-defined type guard functions][type_guard] is a function which its return type is specified as `x is T`.
252
+
253
+ > [`isType()`](./src/type-guard/readme.md#istype)
254
+
255
+ 🛡️ `guard`: a generic type guard function
256
+
257
+ > [`isType.t()`](./src/type-guard/readme.md#istype)
258
+
259
+ 💀 `deprecated`: use `testType.true()` instead.
260
+
261
+ > [`isType.f()`](./src/type-guard/readme.md#istype)
262
+
263
+ 💀 `deprecated`: use `testType.false()` instead.
264
+
265
+ > [`isType.never()`](./src/type-guard/readme.md#istype)
266
+
267
+ 💀 `deprecated`: use `testType.never()` instead.
268
+
269
+ > [`isType.equal()`](./src/type-guard/readme.md#istype)
270
+
271
+ 💀 `deprecated`: use `testType.equal()` instead.
272
+
273
+ ## Type Utilities
274
+
275
+ > `Equal<A, B, Then = true, Else = false>`
276
+
277
+ 💀 deprecated. use `IsEqual` instead. This will be converted to a ↪️ `parse`.
278
+
279
+ > `IsEqual<A, B, Then = true, Else = false>`
280
+
281
+ ⭕ `predicate`: if `A` and `B` are the same.
282
+
283
+ > `NotEqual<A, B, Then = true, Else = false>`
284
+
285
+ 💀 deprecated. use `IsNotEqual` instead. This will be converted to a ↪️ `parse`.
286
+
287
+ > `IsNotEqual<A, B, Then = true, Else = false>`:
288
+
289
+ ⭕ `predicate`: check if `A` and `B` are not the same.
290
+
291
+ > `Extendable<A, B, Then = A, Else = never>`
292
+
293
+ ↪️ `parse`: check if `A` extends `B`.
294
+
295
+ > `IsExtend<A, B, Then = true, Else = false>`
296
+
297
+ ⭕ `predicate`: check if `A` extends `B`.
298
+
299
+ > `NotExtendable<A, B, Then = A, Else = never>`:
300
+
301
+ ↪️ `parse`: check if `A` not extends `B`.
302
+
303
+ > `IsNotExtend<A, B, Then = true, Else = false>`:
304
+
305
+ ⭕ `predicate`: check if `A` not extends `B`.
306
+
307
+ > `IsAssign<A, B, Then = true, Else = false>`
308
+
309
+ 💀 `deprecated`: use `CanAssign` instead.
310
+
311
+ > `CanAssign<A, B, Then = true, Else = false>`:
312
+
313
+ ⭕ `predicate`: check can `A` assign to `B`.
314
+
315
+ A typical usage is using it with `assertType`:
316
+
317
+ ```ts
318
+ assertType.isFalse(false as CanAssign<boolean, { a: string }>)
319
+ assertType.isTrue(true as CanAssign<{ a:string, b:number }, { a: string }>)
320
+ ```
321
+
322
+ > `StrictCanAssign<A, B, Then = true, Else = false>`
323
+
324
+ ⭕ `predicate`: can `A` strictly assign to `B`
325
+
326
+ When `A` is a union, all branches must be assignable to `B`.
327
+
328
+ ```ts
329
+ StrictCanAssign<number | string, number> // false
330
+ StrictCanAssign<number | string, number | string> // true
331
+ ```
332
+
333
+ > `canAssign<T>(): (subject) => true`
334
+
335
+ ⭕💻 `predicate`, `compile-time`
336
+
337
+ Returns a compile-time validating function to ensure `subject` is assignable to `T`.
338
+
339
+ ```ts
340
+ const isConfig = canAssign<{ a: string }>()
341
+ assertType.isTrue(isConfig({ a: 'a' }))
342
+ ```
343
+
344
+ > `canAssign<T>(false): (subject) => false`:
345
+
346
+ ⭕💻 `predicate`, `compile-time`
347
+
348
+ Returns a compile-time validating function to ensure `subject` is not assignable to `T`.
349
+
350
+ ```ts
351
+ const notA = canAssign<{ a: string }>(false)
352
+ assertType.isTrue(notA({ a: 1 }))
353
+
354
+ notA({ a: '' }) // TypeScript complains
355
+ ```
356
+
357
+ ## Type Specific Utilities
358
+
359
+ [type-plus](./README.md) privides type checking utilities for every type.
360
+
361
+ Each type has at least 4 type checks.
362
+ Using `string` as an example, there are `StringType<T>`, `IsString<T>`, `NotStringType<T>`, and `IsNotString<T>`.
363
+
364
+ Some types will have more checks, such as `boolean` has `StrictBooleanType<T>`, `TrueType<T>`, `FalseType<T>`.
365
+
366
+ You can learn more in their respective sections:
367
+
368
+ - [any](./src/any/readme.md)
369
+ - [array](./src/array/readme.md)
370
+ - [bigint](./src/bigint/readme.md)
371
+ - [boolean](./src/boolean/readme.md)
372
+ - [function](./src/function/readme.md)
373
+ - [never](./src/never/readme.md)
374
+ - [null](./src/null/readme.md)
375
+ - [number](./src/number/readme.md)
376
+ - [object](./src/object/readme.md)
377
+ - [string](./src/string/readme.md)
378
+ - [symbol](./src/symbol/readme.md)
379
+ - [tuple](./src/tuple/readme.md)
380
+ - [undefined](./src/undefined/readme.md)
381
+ - [unknown](./src/unknown/readme.md)
382
+ - [void](./src/void/readme.md)
383
+ - [mix types](./src/mix-types/readme.md)
384
+
385
+ ### [any](./src/any/readme.md)
386
+
387
+ - [`AnyType`](./src/any/readme.md#anytype)
388
+ - [`IsAny`](./src/any/readme.md#isany)
389
+ - [`NotAnyType`](./src/any/readme.md#notanytype)
390
+ - [`IsNotAny`](./src/any/readme.md#isnotany)
391
+ - [`AnyOrNeverType`](./src/mix_types/readme.md#anyornevertype)
392
+ - [`IsAnyOrNever`](./src/mix_types/readme.md#isanyornever)
393
+
394
+ ### [Array](./src/array/readme.md)
395
+
396
+ - 🌪️[`ArrayType`](./src/array/readme.md#arraytype): Filter `T` to ensure it is an array, excluding tuple.
397
+ - 🎭[`IsArray`](./src/array/readme.md#isarray): Validate that `T` is an array, excluding tuple.
398
+ - 🌪️[`NotArrayType`](./src/array/readme.md#notarraytype): Filter `T` to ensure it is not an array, excluding tuple.
399
+ - 🎭[`IsNotArrayType`](./src/array/readme.md#isnotarraytype): Validate that `T` is not an array, excluding tuple.
400
+ - 🦴[`At`](./src/array/readme.md#at): Gets the type of the array or tuple at positive or negative index `N`.
401
+ - 🦴💀[`Concat`](./src/array/readme.md#concat): Concats two arrays or tuples.
402
+ - 🦴🔢[`FindFirst`](./src/array/readme.md#findfirst): Find the first type in the array or tuple `A` that matches `Criteria`.
403
+ - [`FindLast`](./src/array/readme.md#findlast)
404
+ - [`Some`](./src/array/readme.md#some)
405
+ - ⚗️[`Filter`](./src/array/readme.md#filter): Filter the array or tuple `A`, keeping entries satisfying `Criteria`.
406
+ - ⚗️👽[`KeepMatch`](./src/array/readme.md#keepmatch): Keeps entries satisfying `Criteria` in array or tuple `A`.
407
+ - 🦴🔢[`Head`](./src/array/readme.md#head): Gets the first entry in the tuple or the type of array `T`.
408
+ - [`IntersectOfProps`](./src/array/readme.md#intersectofprops)
409
+ - [`MapToProp`](./src/array/readme.md#maptoprop)
410
+ - 🦴🔢[`Last`](./src/array/readme.md#last): Gets the last entry in the tuple or the type of array `T`.
411
+ - [`literalArray`](./src/array/readme.md#literalarray)
412
+ - [`PadStart`](./src/array/readme.md#padstart)
413
+ - [`reduceWhile`](./src/array/readme.md#reducewhile)
414
+ - [`Reverse`](./src/array/readme.md#reverse)
415
+ - [`PropUnion`](./src/array/readme.md#propunion)
416
+ - [`UnionOfProps`](./src/array/readme.md#unionofprops)
417
+ - [`UnionOfValues`](./src/array/readme.md#unionofvalues)
418
+ - [`ArrayPlus.At`](./src/array/readme.md#arrayplusat)
419
+ - [`ArrayPlus.Concat`](./src/array/readme.md#arrayplusconcat)
420
+ - [`ArrayPlus.Entries`](./src/array/readme.md#arrayplusentries)
421
+ - 🦴🔢[`ArrayPlus.Find`](./src/array/readme.md#arrayplusfind): Finds the type in array `A` that matches `Criteria`.
422
+ - [`ArrayPlus.FindLast`](./src/array/readme.md#arrayplusfindlast)
423
+ - [`ArrayPlus.Reverse`](./src/array/readme.md#arrayplusreverse)
424
+ - [`ArrayPlus.SplitAt`](./src/array/readme.md#arrayplussplitat)
425
+ - [`ArrayPlus.Some`](./src/array/readme.md#arrayplussome)
426
+
427
+ ### [union](./src/union/readme.md)
428
+
429
+ - [`IsUnion`](./src/union//readme.md#isunion)
430
+ - [`UnionType`](./src/union/readme.md#uniontype)
431
+
432
+ ### bigint
433
+
434
+ > [`BigintType<T, Then = T, Else = never>`](./src/bigint/bigint_type.ts#L15)
435
+
436
+ ↪️ `parse`: if `T` is `bigint` or bigint literal.
437
+
438
+ > [`IsBigint<T, Then = true, Else = false>`](./src/bigint/bigint_type.ts#L33)
439
+
440
+ ⭕ `predicate`: if `T` is `bigint` or bigint literal.
441
+
442
+ > [`NotBigintType<T, Then = T, Else = never>`](./src/bigint/bigint_type.ts#L47)
443
+
444
+ ↪️ `parse`: if `T` is not `bigint` or bigint literal.
445
+
446
+ > [`IsNotBigInt<T, Then = true, Else = false>`](./src/bigint/bigint_type.ts#L61)
447
+
448
+ ⭕ `predicate`: if `T` is not `bigint` or bigint literal.
449
+
450
+ > [`StrictBigintType<T, Then = T, Else = never>`](./src/bigint/strict_bigint_type.ts#L15)
451
+
452
+ ↪️ `parse`: if `T` is exactly `bigint`.
453
+
454
+ > [`IsStrictBigint<T, Then = true, Else = false>`](./src/bigint/strict_bigint_type.ts#L33)
455
+
456
+ ⭕ `predicate`: if `T` is exactly `bigint`.
457
+
458
+ > [`NotStrictBigintType<T, Then = T, Else = never>`](./src/bigint/strict_bigint_type.ts#L47)
459
+
460
+ ↪️ `parse`: if `T` is not exactly `bigint`.
461
+
462
+ > [`IsNotStrictBigint<T, Then = true, Else = false>`](./src/bigint/strict_bigint_type.ts#L61)
463
+
464
+ ⭕ `predicate`: if `T` is not exactly `bigint`.
465
+
466
+ ### boolean
467
+
468
+ > [`BooleanType<T>`](./src/boolean/readme.md#type-checking)
469
+
470
+ ↪️ `parse`: `T === boolean`.
471
+
472
+ > [`IsBoolean<T>`](./src/boolean/readme.md#type-checking)
473
+
474
+ ⭕ `predicate`: `T === boolean`
475
+
476
+ > [`NotBooleanType<T>`](./src/boolean/readme.md#type-checking)
477
+
478
+ ↪️ `parse`: `T !== boolean`.
479
+
480
+ > [`IsNotBoolean<T>`](./src/boolean/readme.md#type-checking)
481
+
482
+ ⭕ `predicate`: `T !== boolean`
483
+
484
+ ### function
485
+
486
+ > [`FunctionType<T>`](./src/function/readme.md#type-checking)
487
+
488
+ ↪️ `parse`: `T === function`.
489
+
490
+ > [`IsFunction<T>`](./src/function/readme.md#type-checking)
491
+
492
+ ⭕ `predicate`: `T === function`
493
+
494
+ > [`NotFunctionType<T>`](./src/function/readme.md#type-checking)
495
+
496
+ ↪️ `parse`: `T !== function`.
497
+
498
+ > [`IsNotFunction<T>`](./src/function/readme.md#type-checking)
499
+
500
+ ⭕ `predicate`: `T !== function`
501
+
502
+ > `AnyFunction<P, R>`
503
+
504
+ 🔨 `utilities`: a generic type for any function
505
+
506
+ > `ExtractFunction<F>`
507
+
508
+ 🔨 `utilities`: extract the function signature from a type `F`.
509
+
510
+ > `extractFunction(fn: F)`
511
+
512
+ 🔨 `utilities`: adjust type of `fn` to its function signature only.
513
+
514
+ > `inspect<T>(value: T, inspector?: (v: T) => void)`
515
+
516
+ 🔨 `utilities`: inspect a value and return it. Inspector defaults to `console.dir()`
517
+
518
+ ### never
519
+
520
+ > [`NeverType<T>`](./src/never/readme.md#type-checking)
521
+
522
+ ↪️ `parse`: `T === never`.
523
+
524
+ > [`IsNever<T>`](./src/never/readme.md#type-checking)
525
+
526
+ ⭕ `predicate`: `T === never`
527
+
528
+ > [`NotNeverType<T>`](./src/never/readme.md#type-checking)
529
+
530
+ ↪️ `parse`: `T !== never`.
531
+
532
+ > [`IsNotNever<T>`](./src/never/readme.md#type-checking)
533
+
534
+ ⭕ `predicate`: `T !== never`
535
+
536
+ ### null
537
+
538
+ > [`NullType<T>`](./src/null/readme.md#type-checking)
539
+
540
+ ↪️ `parse`: `T === null`.
541
+
542
+ > [`IsNull<T>`](./src/null/readme.md#type-checking)
543
+
544
+ ⭕ `predicate`: `T === null`
545
+
546
+ > [`NotNullType<T>`](./src/null/readme.md#type-checking)
547
+
548
+ ↪️ `parse`: `T !== null`.
549
+
550
+ > [`IsNotNull<T>`](./src/null/readme.md#type-checking)
551
+
552
+ ⭕ `predicate`: `T !== null`
553
+
554
+ ### number
555
+
556
+ > [`NumberType<T, Then = N, Else = never>`](./src/number/number_type.ts#L14)
557
+
558
+ ↪️ `parse`: is the type `T` `number`.
559
+
560
+ > [`IsNumber<T, Then = true, Else = false>`](./src/number/number_type.ts#L27)
561
+
562
+ ⭕ `predicate`: is the type `T` `number`.
563
+
564
+ > [`NotNumberType<T, Then = T, Else = never>`](./src/number/number_type.ts#L40)
565
+
566
+ ↪️ `parse`: is the type `T` not `number`.
567
+
568
+ > [`IsNotNumber<T, Then = true, Else = false>`](./src/number/number_type.ts#L53)
569
+
570
+ ⭕ `predicate`: is the type `T` not `number`.
571
+
572
+ > [`StrictNumberType<T, Then = N, Else = never>`](./src/number/strict_number_type.ts#L19)
573
+
574
+ ↪️ `parse`: is the type `T` exactly `number`.
575
+
576
+ > [`IsStrictNumber<T, Then = true, Else = false>`](./src/number/strict_number_type.ts#L41)
577
+
578
+ ⭕ `predicate`: is the type `T` exactly `number`.
579
+
580
+ > [`NotStrictNumberType<T, Then = T, Else = never>`](./src/number/strict_number_type.ts#L55)
581
+
582
+ ↪️ `parse`: is the type `T` not exactly `number`.
583
+
584
+ > [`IsNotStrictNumber<T, Then = true, Else = false>`](./src/number/strict_number_type.ts#L69)
585
+
586
+ ⭕ `predicate`: is the type `T` not exactly `number`.
587
+
588
+ ### numeric
589
+
590
+ > [`Numeric`](./src/numeric/numeric_type.ts#L4)
591
+
592
+ 📘 `definition`: `number | bigint`.
593
+
594
+ > [`Zero`](ts/numeric_plus/numeric_type.ts#L9)
595
+
596
+ 📘 `definition`: `0 | 0n`
597
+
598
+ > [`Integer<N, Then = N, Else = never>`](./src/numeric/integer.ts#L15)
599
+
600
+ ↪️ `parse`: is integer.
601
+
602
+ > [`IsInteger<N, Then = true, Else = false>`](./src/numeric/integer.ts#L32)
603
+
604
+ ⭕ `predicate`: is integer.
605
+
606
+ > [`NotInteger<N, Then = N, Else = never>`](./src/numeric/integer.ts#L45)
607
+
608
+ ↪️ `parse`: is not integer.
609
+
610
+ > [`IsNotInteger<N, Then = true, Else = false>`](./src/numeric/integer.ts#L60)
611
+
612
+ ⭕ `predicate`: is not integer.
613
+
614
+ > [`IsWhole<N, Then = true, Else = false>`](./src/numeric/integer.ts#L75)
615
+
616
+ 💀⭕ `deprecated`, `predicate`: is integer. Use `IsInteger` instead.
617
+
618
+ > [`Negative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L19)
619
+
620
+ ↪️ `parse`: is negative.
621
+
622
+ > [`IsNegative<N, Then = true, Else = false>`](./src/numeric/negative.ts#L53)
623
+
624
+ ⭕ `predicate`: is negative.
625
+
626
+ > [`NonNegative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L69)
627
+
628
+ ↪️ `parse`: is not negative.
629
+
630
+ > [`IsNonNegative<N, Then = N, Else = never>`](./src/numeric/negative.ts#L101)
631
+
632
+ ⭕ `predicate`: is not negative.
633
+
634
+ > [`Positive<N, Then = N, Else = never>`](./src/numeric/positive.ts#15)
635
+
636
+ ↪️ `parse`: is positive.
637
+
638
+ > [`IsPositive<N, Then = true, Else = false>`](./src/numeric/positive.ts#L36)
639
+
640
+ ⭕ `predicate`: is positive.
641
+
642
+ > [`NotPositive<N, Then = N, Else = never>`](./src/numeric/positive.ts#48)
643
+
644
+ ↪️ `parse`: is not positive.
645
+
646
+ > [`IsNotPositive<N, Then = true, Else = false>`](./src/numeric/positive.ts#L60)
647
+
648
+ ⭕ `predicate`: is not positive.
649
+
650
+ ### object
651
+
652
+ > `filterKey()`
653
+
654
+ 🔨 `utilities`: type adjusted filter by key.
655
+
656
+ > `findKey()`
657
+
658
+ 🔨 `utilities`: type adjusted find by key.
659
+
660
+ > `forEachKey()`
661
+
662
+ 🔨 `utilities`: type adjusted for each by key.
663
+
664
+ > `HasKey<T, K>`
665
+
666
+ 🔨 `utilities`: predicate type checking `T` has key `K`.
667
+
668
+ > `hasKey()`
669
+
670
+ 🔨 `utilities`: function of `HasKey`.
671
+
672
+ > `IsRecord<T>`
673
+
674
+ 🔨 `utilities`: `logical` predicate for `Record`.
675
+
676
+ > `KeysWithDiffTypes<A, B>`
677
+
678
+ 🔨 `utilities`: gets the keys common in `A` and `B` but with different value type.
679
+
680
+ > `mapKey()`
681
+
682
+ 🔨 `utilities`: type adjusted map by key.
683
+
684
+ > `RecordValue<R>`
685
+
686
+ 🔨 `utilities`: gets the value type `T`from `Record<any, T>`
687
+
688
+ [video](https://www.youtube.com/watch?v=1J7xK6FUqPw).
689
+
690
+ > `reduceByKey()`
691
+
692
+ 🔨 `utilities`: type adjusted reduce by key.
693
+
694
+ > `someKey()`
695
+
696
+ 🔨 `utilities`: type adjusted some by key.
697
+
698
+ > `SpreadRecord<A, B>`
699
+
700
+ 🔨 `utilities`: type for `{...a, ...b}` when both `a` and `b` are `Record`\
701
+ for array, just do `[...A, ...B]`.
702
+
703
+ ### Promise
704
+
705
+ > `AwaitedProp<T, V>`
706
+
707
+ 🔨 `utilities`: `Awaited` on specified props `P` in `T`.
708
+
709
+ > `isPromise<R>(subject: any)`
710
+
711
+ 🔨 `utilities`: `isPromise()` type guard.
712
+
713
+ > `MaybePromise<T>`
714
+
715
+ 🔨 `utilities`: Alias of `T | Promise<T>`.
716
+
717
+ > `PromiseValue<P>`
718
+
719
+ 🔨 `utilities`: Gets the type within the Promise.
720
+
721
+ > `PromiseValueMerge<P1, P2, ...P9>`
722
+
723
+ 🔨 `utilities`: Merge the values of multiple promises.
724
+
725
+ > `mapSeries()`
726
+
727
+ 🔨 `utilities`: Similar to `bluebird.mapSeries()` but works with `async`/`await`.
728
+
729
+ > `transformMaybePromise(value, transformer)`
730
+
731
+ 🔨 `utilities`: Apply the `transformer` to the `value`.\
732
+ It is also exported under `MaybePromise.transform()`.
733
+
734
+ ### string
735
+
736
+ > [`StringType<T>`](ts/string/readme.md#type-checking)
737
+
738
+ ↪️ `parse`: is `string`.
739
+
740
+ > [`IsString<T>`](ts/string/readme.md#type-checking)
741
+
742
+ ⭕ `predicate`: is `string`.
743
+
744
+ > [`NotStringType<T>`](ts/string/readme.md#type-checking)
745
+
746
+ ↪️ `parse`: is not `string`.
747
+
748
+ > [`IsNotString<T>`](ts/string/readme.md#type-checking)
749
+
750
+ ⭕ `predicate`: is not `string`.
751
+
752
+ ### symbol
753
+
754
+ > [`SymbolType<T>`](ts/symbol/readme.md#type-checking)
755
+
756
+ ↪️ `parse`: is `symbol`.
757
+
758
+ > [`IsSymbol<T>`](ts/symbol/readme.md#type-checking)
759
+
760
+ ⭕ `predicate`: is `symbol`.
761
+
762
+ > [`NotSymbolType<T>`](ts/symbol/readme.md#type-checking)
763
+
764
+ ↪️ `parse`: is not `symbol`.
765
+
766
+ > [`IsNotSymbol<T>`](ts/symbol/readme.md#type-checking)
767
+
768
+ ⭕ `predicate`: is not `symbol`.
769
+
770
+ ### tuple
771
+
772
+ - 🌪️ [`TupleType`](./src/tuple/readme.md#tupletype): Filter `T` to ensure it is a tuple, excluding array.
773
+ - 🎭 [`IsTuple`](./src/tuple/readme.md#istuple): Validate that `T` is a tuple, excluding array.
774
+ - 🌪️ [`NotTupleType`](./src/tuple/readme.md#nottupletype): Filter `T` to ensure it is not an tuple, excluding array.
775
+ - 🎭 [`IsNotTuple`](./src/tuple/readme.md#isnottupletype): Validate that `T` is not an tuple, excluding array.
776
+ - ⚗️🔢[`CommonPropKeys`](./src/tuple/readme.md#commonpropkeys): Gets the common property keys of the elements in tuple `T`.
777
+ - ⚗️💀`CommonKeys`: Deprecated. Please use `CommonPropKeys` instead.
778
+ - ⚗️🔢[`DropFirst`](./src/tuple/readme.md#dropfirst): Drops the first entry in the tuple`T`.
779
+ - ⚗️🔢[`DropLast`](./src/tuple/readme.md#droplast): Drops the last entry in the tuple`T`.
780
+
781
+ > `CreateTuple<L, T>`
782
+
783
+ 🔨 `utilities`: creates `tuple<T>` with `L` number of elements.
784
+
785
+ > `drop(array, value)`
786
+
787
+ 🔨 `utilities`: drop a particular value from an array.
788
+
789
+ > `DropMatch<A, Criteria>`
790
+
791
+ 🔨 `utilities`: drops entries matching `Criteria` in array or tuple `A`.
792
+
793
+ > `DropUndefined<A>`
794
+
795
+ 🔨 `utilities`: drop undefined entries from array of tuple `A`.
796
+
797
+ ### undefined
798
+
799
+ > [`UndefinedType<T>`](./src/undefined/readme.md#type-checking)
800
+
801
+ ↪️ `parse`: `T === undefined`.
802
+
803
+ > [`IsUndefined<T>`](./src/undefined/readme.md#type-checking)
804
+
805
+ ⭕ `predicate`: `T === undefined`
806
+
807
+ > [`NotUndefinedType<T>`](./src/undefined/readme.md#type-checking)
808
+
809
+ ↪️ `parse`: `T !== undefined`.
810
+
811
+ > [`IsNotUndefined<T>`](./src/undefined/readme.md#type-checking)
812
+
813
+ ⭕ `predicate`: `T !== undefined`
814
+
815
+ ### unknown
816
+
817
+ > [`UnknownType<T>`](./src/unknown/readme.md#type-checking)
818
+
819
+ ↪️ `parse`: `T === unknown`.
820
+
821
+ > [`IsUnknown<T>`](./src/unknown/readme.md#type-checking)
822
+
823
+ ⭕ `predicate`: `T === unknown`
824
+
825
+ > [`NotUnknownType<T>`](./src/unknown/readme.md#type-checking)
826
+
827
+ ↪️ `parse`: `T !== unknown`.
828
+
829
+ > [`IsNotUnknown<T>`](./src/unknown/readme.md#type-checking)
830
+
831
+ ⭕ `predicate`: `T !== unknown`
832
+
833
+ ### void
834
+
835
+ > [`VoidType<T>`](./src/void/readme.md#type-checking)
836
+
837
+ ↪️ `parse`: `T === void`.
838
+
839
+ > [`IsVoid<T>`](./src/void/readme.md#type-checking)
840
+
841
+ ⭕ `predicate`: `T === void`
842
+
843
+ > [`NotVoidType<T>`](./src/void/readme.md#type-checking)
844
+
845
+ ↪️ `parse`: `T !== void`.
846
+
847
+ > [`IsNotVoid<T>`](./src/void/readme.md#type-checking)
848
+
849
+ ⭕ `predicate`: `T !== void`
850
+
851
+ ## Testing Utilities
852
+
853
+ [type-plus](./README.md) privides some testing utilities to help you test your types.
854
+
855
+ One of the key utilities is [`testType`](./src/testing/readme.md#testtype).
856
+
857
+ ```ts
858
+ import { testType } from 'type-plus'
859
+
860
+ testType.any<T>(true) // T is `any`
861
+ testType.equal<A, B>(true) // A is equal to B
862
+ testType.never<T>(false) // T is not `never`
863
+ ```
864
+
865
+ You can learn more about them in the [docs](./src/testing/readme.md).
866
+
867
+ ## Constant Types
868
+
869
+ > `KeyTypes`
870
+
871
+ 📘 `definition`: type of all keys.
872
+
873
+ > `PrimitiveTypes`
874
+
875
+ 📘 `definition`: all primitive types, including `Function`, `symbol`, and `bigint`.
876
+
877
+ > `ComposableTypes`
878
+
879
+ 📘 `definition`: Types that can contain custom properties. i.e. `object`, `array`, `function`.
880
+
881
+ > `NonComposableTypes`
882
+
883
+ 📘 `definition`: Types that cannot contain custom properties. i.e. not composable.
884
+
885
+ ## JSON Support
886
+
887
+ > `JSONPrimitive`
888
+
889
+ 📘 `definition`: primitive types valid in JSON
890
+
891
+ > `JSONObject`
892
+
893
+ 📘 `definition`: JSON object
894
+
895
+ > `JSONArray`
896
+
897
+ 📘 `definition`: JSON array
898
+
899
+ > `JSONTypes`
900
+
901
+ 📘 `definition`: all JSON compatible types.
902
+
903
+ > `JSONTypes.get<T>(obj, ...props)`
904
+
905
+ 🔨 `utilities`: get a cast value in JSON
906
+
907
+ ```ts
908
+ import { JSONTypes } from 'type-plus'
909
+
910
+ const someJson: JSONTypes = { a: { b: ['z', { c: 'miku' }]}}
911
+
912
+ JSONTypes.get<string>(someJson, 'a', 'b', 1, 'c') // miku
913
+ ```
914
+
915
+ ## Type manipulation
916
+
917
+ > `ANotB<A, B>`
918
+
919
+ 🔨 `utilities`: get object with properties in `A` and not in `B`, including properties with a different value type.
920
+
921
+ > `BNotA<A, B>`
922
+
923
+ 🔨 `utilities`: flip of `ANotB`
924
+
925
+ > `as<T>(subject)`
926
+
927
+ 🔨 `utilities`: assert `subject` as `T`. Avoid ASI issues such as `;(x as T).abc`
928
+
929
+ > `asAny(subject)`
930
+
931
+ 🔨 `utilities`: assert `subject` as `any`. Avoid ASI issue such as `;(x as any).abc`
932
+
933
+ > `EitherAnd<A, B, [C, D]>`
934
+
935
+ 💀🔨 `deprecated`,`utilities`: Renamed to `EitherOrBoth`. combines 2 to 4 types as `A | B | (A & B)`.
936
+
937
+ This is useful for combining options.
938
+
939
+ > `EitherOrBoth<A, B, [C, D]>`
940
+
941
+ 🔨 `utilities`: combines 2 to 4 types as `A | B | (A & B)`.
942
+
943
+ This is useful for combining options [video](https://youtu.be/jBxx03NT4Ik).
944
+
945
+ > `Except<T, K>`
946
+
947
+ 💀🔨 `deprecated`,`utilities`: same as `Omit<T, K>`.
948
+
949
+ > `ExcludePropType<T, U>`
950
+
951
+ 🔨 `utilities`: excludes type `U` from properties in `T`.
952
+
953
+ > `KeyofOptional<T>`
954
+
955
+ 🔨 `utilities`: `keyof` that works with `Record<any, any> | undefined`.
956
+
957
+ > `KnownKeys<T>`
958
+
959
+ 🔨 `utilities`: extract known (defined) keys from type `T`.
960
+
961
+ > `LeftJoin<A, B>`
962
+
963
+ 🔨 `utilities`: left join `A` with `B`
964
+
965
+ > `NonNull<T>`
966
+
967
+ 🔨 `utilities`: remove `null`
968
+
969
+ > `NonNullable<T>` (built-in)
970
+
971
+ 🔨 `utilities`: adjust the type not to nullable
972
+
973
+ > `NonUndefined<T>`
974
+
975
+ 🔨 `utilities`: remove `undefined`
976
+
977
+ > `Omit<T, K>`
978
+
979
+ 🔨 `utilities`: From `T`, pick a set of properties whose keys are not in the union `K`. This is the opposite of `Pick<T, K>`.
980
+
981
+ > `OptionalKeys<T>`
982
+
983
+ 🔨 `utilities`: gets keys of optional properties in `T`.
984
+
985
+ > `PartialExcept<T, U>`
986
+
987
+ 💀🔨 `deprecated`,`utilities`: same as `PartialOmit<T, U>`.
988
+
989
+ > `PartialOmit<T, U>`
990
+
991
+ 🔨 `utilities`: makes the properties not specified in `U` becomes optional.
992
+
993
+ > `PartialPick<T, U>`
994
+
995
+ 🔨 `utilities`: makes the properties specified in `U` becomes optional.
996
+
997
+ > `Pick<T, K>`
998
+
999
+ 🔨 `utilities`: pick properties `K` from `T`. Works with unions.
1000
+
1001
+ > `RecursivePartial<T>`
1002
+
1003
+ 🔨 `utilities`: make type `T` optional recursively.
1004
+
1005
+ > `RecursiveRequired<T>`
1006
+
1007
+ 🔨 `utilities`: make type `T` required recursively.
1008
+
1009
+ > `ReplaceProperty<T, K, V>`
1010
+
1011
+ 🔨 `utilities`: replace property `K` in `T` with `V`.
1012
+
1013
+ > `RequiredKeys<T>`
1014
+
1015
+ 🔨 `utilities`: gets keys of required properties in `T`.
1016
+
1017
+ > `RequiredPick<T, U>`
1018
+
1019
+ 🔨 `utilities`: makes the properties specified in `U` become required.
1020
+
1021
+ > `RequiredExcept<T, U>`
1022
+
1023
+ 🔨 `utilities`: makes the properties not specified in `U` become required.
1024
+
1025
+ > `RecursiveIntersect<T, U>`
1026
+
1027
+ 🔨 `utilities`: intersect type `U` onto `T` recursively.
1028
+
1029
+ > `ValueOf<T>`
1030
+
1031
+ 🔨 `utilities`: type of the value of the properties of `T`.
1032
+
1033
+ > `Widen<T>`
1034
+
1035
+ 🔨 `utilities`: widen literal types.
1036
+
1037
+ PropType
1038
+
1039
+ 💀 ...no helper type for this. Just do `YourType['propName']`.
1040
+
1041
+ ## Type Predicates
1042
+
1043
+ Type predicates are type alias that returns `true` or `false`.
1044
+ They can be used to compose complex types.
1045
+
1046
+ > `HasKey<T, K>`
1047
+
1048
+ 🔨 `utilities`: predicate type checking `T` has key `K`.
1049
+
1050
+ > `IsAny<T>`
1051
+
1052
+ 🔨 `utilities`: `T === any` (updated to impl: [expect-type]).
1053
+
1054
+ > `IsBoolean<T>`
1055
+
1056
+ 🔨 `utilities`: check for `boolean`, but not for `true` nor `false`.
1057
+
1058
+ > `IsDisjoint<A, B>`
1059
+
1060
+ 🔨 `utilities`: is `A` and `B` is a disjoint set.
1061
+
1062
+ > `IsEmptyObject<T>`
1063
+
1064
+ 🔨 `utilities`: is `T === {}`.
1065
+
1066
+ > `IsLiteral<T>`
1067
+
1068
+ 🔨 `utilities`: is `T` a literal type (literal string or number).
1069
+
1070
+ ### Logical
1071
+
1072
+ > `If<Condition, Then = true, Else = false>`
1073
+
1074
+ 🔨 `utilities`: if statement
1075
+
1076
+ > `And<A, B, Then = true, Else = false>`
1077
+
1078
+ 🔨 `utilities`: logical `AND`
1079
+
1080
+ > `Or<A, B, Then = true, Else = false>`
1081
+
1082
+ 🔨 `utilities`: logical `OR`
1083
+
1084
+ > `Xor<A, B, Then = true, Else = false>`
1085
+
1086
+ 🔨 `utilities`: logical `XOR`
1087
+
1088
+ > `Not<X, Then = true, Else = false>`
1089
+
1090
+ 🔨 `utilities`: logical `NOT`
1091
+
1092
+ Note that these types work correctly with the `boolean` type.
1093
+ e.g.:
1094
+
1095
+ ```ts
1096
+ type R = And<boolean, true> // boolean
1097
+ type R = Not<boolean> // boolean`
1098
+ ```
1099
+
1100
+ There is a problem with generic distribution: <https://github.com/microsoft/TypeScript/issues/41053>
1101
+ So you may encounter some weird behavior if your logic is complex.
1102
+
1103
+ ## Math
1104
+
1105
+ The math types in `type-plus` works with most numeric types.
1106
+
1107
+ It works with `number` and `bigint`, positive and negative number, including floating point numbers.
1108
+
1109
+ It will cast the type between `number` and `bigint` if needed.
1110
+
1111
+ > `Abs<N, Fail = never>`
1112
+
1113
+ 🔨 `utilities`: `Abs(N)`.
1114
+
1115
+ > `Max<A, B, Fail = never>`
1116
+
1117
+ 🔨 `utilities`: `max(A, B)`
1118
+
1119
+ > `GreaterThan<A, B>`
1120
+
1121
+ 🔨 `utilities`: `A > B`.
1122
+
1123
+ > `Add<A, B>`
1124
+
1125
+ 🔨 `utilities`: `A + B`.
1126
+
1127
+ > `Subtract<A, B>`
1128
+
1129
+ 🔨 `utilities`: `A > B`.
1130
+
1131
+ > `Increment<A>`
1132
+
1133
+ 🔨 `utilities`: alias of `Add<A, 1>`.
1134
+
1135
+ > `Decrement<A>`
1136
+
1137
+ 🔨 `utilities`: alias of `Subtract<A, 1>`.
1138
+
1139
+ > `Multiply<A, B`
1140
+
1141
+ 🔨 `utilities`: `A * B`.
1142
+
1143
+ ## Utility Functions
1144
+
1145
+ > `amend(subject)...`
1146
+
1147
+ 🔨 `utilities`: amend subject as union or intersect of `T`.
1148
+
1149
+ > `facade(subject, ...props)`
1150
+
1151
+ 🔨 `utilities`: create a facade of `subject`.
1152
+
1153
+ > `getField(subject, key, defaultValue)`
1154
+
1155
+ 🔨 `utilities`: get a field from a subject. Works against nullable and optional subject.
1156
+
1157
+ > `hasKey()`
1158
+
1159
+ 🔨 `utilities`: function of `HasKey`.
1160
+
1161
+ > `hasProperty(value, prop)`
1162
+
1163
+ 🔨 `utilities`: assert `value` has property `prop`. This will pick the correct union type.
1164
+
1165
+ > `isConstructor(subject)`
1166
+
1167
+ 🔨 `utilities`: type guard `subject` is a constructor.
1168
+
1169
+ > `isSystemError(code, err)`
1170
+
1171
+ 🔨 `utilities`: type guard `err` with NodeJS error code.
1172
+
1173
+ > `omit(obj, ...props)`
1174
+
1175
+ 🔨 `utilities`: omit properties from `obj`.
1176
+
1177
+ > `pick(obj, ...props)`
1178
+
1179
+ 🔨 `utilities`: pick properties from `obj`.
1180
+
1181
+ > `record<K, V>(value?)`
1182
+
1183
+ 🔨 `utilities`: create a `Record<K, V>` without extra object prototype.
1184
+
1185
+ > `record<R>(value?)`
1186
+
1187
+ 🔨 `utilities`: create a record `R` (e.g. `{ a: number }`) without extra object prototype.
1188
+
1189
+ > `required(...)`
1190
+
1191
+ 🔨 `utilities`: merge options and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
1192
+
1193
+ > `requiredDeep(...)`
1194
+
1195
+ 🔨 `utilities`: merge options deeply and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
1196
+
1197
+ > `split(target, ...splitters)`
1198
+
1199
+ 🔨 `utilities`: split one object into multiple objects.
1200
+
1201
+ > `stub<T>(value)`
1202
+
1203
+ 🔨 `utilities`: stub a particular type `T`.
1204
+
1205
+ > `stub.build<T>(init?)`
1206
+
1207
+ 🔨 `utilities`: build a stub for particular type `T`.
1208
+
1209
+ > `typeOverrideIncompatible<T>()`
1210
+
1211
+ 🔨 `utilities`: override only the incompatible portion between two types.
1212
+
1213
+ ```ts
1214
+ type A = {
1215
+ foo: boolean,
1216
+ bar: string,
1217
+ baz: string
1218
+ }
1219
+
1220
+ const overrider = typeOverrideIncompatible<A>()
1221
+ const source = {
1222
+ foo: 1,
1223
+ bar: 'bar',
1224
+ baz: 'baz'
1225
+ }
1226
+
1227
+ // only the `foo` property is available to override.
1228
+ overrider(source, { foo: !!source.foo })
1229
+ ```
1230
+
1231
+ > `unpartial()`
1232
+
1233
+ 🔨 `utilities`: merge options and remove `Partial<T>` values. From [`unpartial`](https://github.com/unional/unpartial)
1234
+
1235
+ > `context()`
1236
+
1237
+ 🔨 `utilities`: a context builder.
1238
+
1239
+ This is useful to build context for functional programming.
1240
+ It is a sync version of the `AsyncContext` from [async-fp](https://unional/async-fp).
1241
+
1242
+ ```ts
1243
+ import { context } from 'type-plus'
1244
+
1245
+ // { a: 1, b: 2 }
1246
+ const ctx = context({ a: 1 })
1247
+ .extend(c => ({ b: c.a + 1 }))
1248
+ .build()
1249
+ ```
1250
+
1251
+ ## Nominal Types
1252
+
1253
+ The TypeScript type system is structural.
1254
+
1255
+ In some cases, we want to express a type with nominal behavior.
1256
+ `type-plus` provides two kinds of nominal types: `Brand` and `Flavor`.
1257
+
1258
+ `Brand<B, T>`:
1259
+
1260
+ `brand(type, subject?)`:
1261
+
1262
+ Branded nominal type is the stronger nominal type of the two.
1263
+ It disallows unbranded type assigned to it:
1264
+
1265
+ ```ts
1266
+ const a = brand('a', { a: 1 })
1267
+ const b = { a: 1 }
1268
+ a = b // error
1269
+ ```
1270
+
1271
+ `subject` can be any type, from primitive to strings to objects.
1272
+
1273
+ `brand(type)`:
1274
+
1275
+ If you do not provide `subject`, `brand(type)` will return a brand creator,
1276
+ so that you can use it to create multiple branded values:
1277
+
1278
+ ```ts
1279
+ const nike = brand('nike')
1280
+ const shirt = nike('shirt')
1281
+ const socks = nike('socks')
1282
+ ```
1283
+
1284
+ `Flavor<F, T>`:
1285
+
1286
+ `flavor(type, subject?)`:
1287
+
1288
+ The key difference between `Flavor` and `Brand` is that
1289
+ unflavored type can be assigned to `Flavor`:
1290
+
1291
+ ```ts
1292
+ let f = flavor('orange', 'soda')
1293
+ f = 'mist' // ok
1294
+ ```
1295
+
1296
+ Also, `Brand` of the same name can be assigned to `Flavor`,
1297
+ but `Flavor` of the same name cannot be assigned to `Brand`.
1298
+
1299
+ `nominalMatch(a, b)`:
1300
+
1301
+ 🔨 `utilities`: compare if the two values are nominally equal.
1302
+
1303
+ Works with both `Brand` and `Flavor`.
1304
+
1305
+ ```ts
1306
+ const b1 = brand('x', 1)
1307
+ const b2 = brand('y', 1)
1308
+
1309
+ nominalMatch(b1, b2) // false
1310
+ ```
1311
+
1312
+ ## Functional Types
1313
+
1314
+ > `ChainFn<T>: T`
1315
+
1316
+ 🔨 `utilities`: chain function that returns the input type.
1317
+
1318
+ > `compose(...fns): F`
1319
+
1320
+ 🔨 `utilities`: compose functions
1321
+
1322
+ ## Attribution
1323
+
1324
+ Some code in this library is created by other people in the TypeScript community.
1325
+ I'm merely adding them in and maybe making some adjustments.
1326
+ Whenever possible, I add attribution to the person who created those **codes** in the file.
1327
+
1328
+ ## Useful Tips
1329
+
1330
+ > <https://github.com/microsoft/TypeScript/wiki/Performance>
1331
+
1332
+ ## Similar projects
1333
+
1334
+ - [expect-type]: Compile-time tests for types
1335
+ - [hotscript]: Higher-order TypeScript
1336
+ - [spec.ts]: write tests for your types!
1337
+ - [ts-calc]: compute with typescript type system, part of [hotscript]
1338
+ - [ts-essentials]: all essential TypeScript types in one place.
1339
+ - [ts-expect]: Checks values in TypeScript match expectations.
1340
+ - [ts-toolbelt]: TypeScript's largest utility library.
1341
+ - [type-fest]: a collection of essential TypeScript types.
1342
+ - [type-zoo]: a modest type lib usable today.
1343
+ - [typepark]: a new type collection offering tuple manipulation and `Pipe`.
1344
+ - [typelevel-ts]: a type lib by [@gcanti], author of several FP libraries in TS.
1345
+ - [typical]: a playground of type-level operations for TypeScript.
1346
+ - [utility-types]: collection of utility types, complementing TypeScript build-in mapped types ans aliases.
1347
+ - [earl]: Ergonomic, modern and type-safe assertion library for TypeScript
1348
+
1349
+ [@gcanti]: https://github.com/gcanti
1350
+ [codecov_image]: https://codecov.io/gh/unional/type-plus/branch/master/graph/badge.svg
1351
+ [codecov_url]: https://codecov.io/gh/unional/type-plus
1352
+ [downloads_image]: https://img.shields.io/npm/dm/type-plus.svg?style=flat
1353
+ [earl]: https://github.com/l2beat/earl
1354
+ [expect-type]: https://github.com/mmkal/expect-type
1355
+ [github_action_url]: https://github.com/unional/type-plus/actions
1356
+ [github_release]: https://github.com/unional/type-plus/workflows/release/badge.svg
1357
+ [hotscript]: https://github.com/gvergnaud/hotscript
1358
+ [npm_image]: https://img.shields.io/npm/v/type-plus.svg?style=flat
1359
+ [npm_url]: https://npmjs.org/package/type-plus
1360
+ [spec.ts]: https://github.com/aleclarson/spec.ts
1361
+ [ts-calc]: https://github.com/ecyrbe/ts-calc
1362
+ [ts-essentials]: https://github.com/ts-essentials/ts-essentials
1363
+ [ts-expect]: https://github.com/TypeStrong/ts-expect
1364
+ [ts-toolbelt]: https://github.com/millsp/ts-toolbelt
1365
+ [type-fest]: https://github.com/sindresorhus/type-fest
1366
+ [type-plus]: https://github.com/unional/type-plus
1367
+ [type-zoo]: https://github.com/pelotom/type-zoo
1368
+ [typelevel-ts]: https://github.com/gcanti/typelevel-ts
1369
+ [typepark]: https://github.com/kgtkr/typepark
1370
+ [TypeScript]: https://www.typescriptlang.org
1371
+ [typical]: https://github.com/KiaraGrouwstra/typical
1372
+ [utility-types]: https://github.com/piotrwitek/utility-types
1373
+ [vscode_image]: https://img.shields.io/badge/vscode-ready-green.svg
1374
+ [vscode_url]: https://code.visualstudio.com/
1375
+ [assertion_functions]: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions
1376
+ [type_guard]: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates