type-plus 8.0.0-beta.0 → 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 (1212) 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 +10 -3
  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 +5 -2
  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.map +1 -1
  23. package/esm/array/array.reverse.js.map +1 -1
  24. package/esm/array/array.some.d.ts.map +1 -1
  25. package/esm/array/array.some.js.map +1 -1
  26. package/esm/array/array_plus.common_prop_keys.d.ts +8 -4
  27. package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -1
  28. package/esm/array/array_plus.common_prop_keys.js.map +1 -1
  29. package/esm/array/array_plus.concat.d.ts.map +1 -1
  30. package/esm/array/array_plus.concat.js.map +1 -1
  31. package/esm/array/array_plus.d.ts.map +1 -1
  32. package/esm/array/array_plus.drop_match.d.ts +1 -3
  33. package/esm/array/array_plus.drop_match.d.ts.map +1 -1
  34. package/esm/array/array_plus.drop_match.js.map +1 -1
  35. package/esm/array/array_plus.element_match.d.ts +5 -2
  36. package/esm/array/array_plus.element_match.d.ts.map +1 -1
  37. package/esm/array/array_plus.element_match.js.map +1 -1
  38. package/esm/array/array_plus.filter.d.ts +7 -3
  39. package/esm/array/array_plus.filter.d.ts.map +1 -1
  40. package/esm/array/array_plus.filter.js.map +1 -1
  41. package/esm/array/array_plus.find.d.ts +9 -6
  42. package/esm/array/array_plus.find.d.ts.map +1 -1
  43. package/esm/array/array_plus.find.js.map +1 -1
  44. package/esm/array/array_plus.index_at.d.ts +21 -7
  45. package/esm/array/array_plus.index_at.d.ts.map +1 -1
  46. package/esm/array/array_plus.index_at.js +82 -0
  47. package/esm/array/array_plus.index_at.js.map +1 -1
  48. package/esm/array/array_plus.is_index_out_of_bound.d.ts +6 -3
  49. package/esm/array/array_plus.is_index_out_of_bound.d.ts.map +1 -1
  50. package/esm/array/array_plus.is_index_out_of_bound.js.map +1 -1
  51. package/esm/array/array_plus.is_readonly.d.ts +9 -4
  52. package/esm/array/array_plus.is_readonly.d.ts.map +1 -1
  53. package/esm/array/array_plus.is_readonly.js.map +1 -1
  54. package/esm/array/array_plus.js.map +1 -1
  55. package/esm/array/array_plus.pad_start.d.ts.map +1 -1
  56. package/esm/array/array_plus.pad_start.js.map +1 -1
  57. package/esm/array/array_plus.split_at.d.ts +22 -12
  58. package/esm/array/array_plus.split_at.d.ts.map +1 -1
  59. package/esm/array/array_plus.split_at.js.map +1 -1
  60. package/esm/array/filter.d.ts.map +1 -1
  61. package/esm/array/filter.js.map +1 -1
  62. package/esm/array/find_first.d.ts +5 -2
  63. package/esm/array/find_first.d.ts.map +1 -1
  64. package/esm/array/find_first.js.map +1 -1
  65. package/esm/array/head.d.ts +6 -4
  66. package/esm/array/head.d.ts.map +1 -1
  67. package/esm/array/head.js.map +1 -1
  68. package/esm/array/intersect_of_props.d.ts.map +1 -1
  69. package/esm/array/intersect_of_props.js.map +1 -1
  70. package/esm/array/is_array.d.ts +89 -0
  71. package/esm/array/is_array.d.ts.map +1 -0
  72. package/esm/array/is_array.js +2 -0
  73. package/esm/array/is_array.js.map +1 -0
  74. package/esm/array/is_not_array.d.ts +89 -0
  75. package/esm/array/is_not_array.d.ts.map +1 -0
  76. package/esm/array/is_not_array.js +2 -0
  77. package/esm/array/is_not_array.js.map +1 -0
  78. package/esm/array/last.d.ts +6 -4
  79. package/esm/array/last.d.ts.map +1 -1
  80. package/esm/array/last.js.map +1 -1
  81. package/esm/array/literal_array.d.ts.map +1 -1
  82. package/esm/array/literal_array.js.map +1 -1
  83. package/esm/array/loose_array_type.d.ts +7 -4
  84. package/esm/array/loose_array_type.d.ts.map +1 -1
  85. package/esm/array/loose_array_type.js.map +1 -1
  86. package/esm/array/pad_start.d.ts.map +1 -1
  87. package/esm/array/pad_start.js.map +1 -1
  88. package/esm/array/reduce_while.d.ts.map +1 -1
  89. package/esm/array/reduce_while.js.map +1 -1
  90. package/esm/array/reverse.d.ts.map +1 -1
  91. package/esm/array/reverse.js.map +1 -1
  92. package/esm/array/union_of_props.d.ts.map +1 -1
  93. package/esm/array/union_of_props.js.map +1 -1
  94. package/esm/array/union_of_values.d.ts.map +1 -1
  95. package/esm/array/union_of_values.js.map +1 -1
  96. package/esm/assertion/assert_type.d.ts +2 -2
  97. package/esm/assertion/assert_type.d.ts.map +1 -1
  98. package/esm/assertion/assert_type.js +44 -47
  99. package/esm/assertion/assert_type.js.map +1 -1
  100. package/esm/bigint/cast.d.ts.map +1 -1
  101. package/esm/bigint/cast.js.map +1 -1
  102. package/esm/bigint/is_bigint.d.ts +97 -0
  103. package/esm/bigint/is_bigint.d.ts.map +1 -0
  104. package/esm/bigint/is_bigint.js +2 -0
  105. package/esm/bigint/is_bigint.js.map +1 -0
  106. package/esm/bigint/is_bigint_literal.d.ts +85 -0
  107. package/esm/bigint/is_bigint_literal.d.ts.map +1 -0
  108. package/esm/bigint/is_bigint_literal.js +2 -0
  109. package/esm/bigint/is_bigint_literal.js.map +1 -0
  110. package/esm/bigint/is_not_bigint.d.ts +94 -0
  111. package/esm/bigint/is_not_bigint.d.ts.map +1 -0
  112. package/esm/bigint/is_not_bigint.js +2 -0
  113. package/esm/bigint/is_not_bigint.js.map +1 -0
  114. package/esm/bigint/is_not_bigint_literal.d.ts +83 -0
  115. package/esm/bigint/is_not_bigint_literal.d.ts.map +1 -0
  116. package/esm/bigint/is_not_bigint_literal.js +2 -0
  117. package/esm/bigint/is_not_bigint_literal.js.map +1 -0
  118. package/esm/binary/Bit.d.ts.map +1 -1
  119. package/esm/binary/Bit.js.map +1 -1
  120. package/esm/binary/_binary.d.ts.map +1 -1
  121. package/esm/binary/_binary.js.map +1 -1
  122. package/esm/binary/index.d.ts.map +1 -1
  123. package/esm/binary/index.js.map +1 -1
  124. package/esm/boolean/is_boolean.d.ts +91 -0
  125. package/esm/boolean/is_boolean.d.ts.map +1 -0
  126. package/esm/boolean/is_boolean.js +2 -0
  127. package/esm/boolean/is_boolean.js.map +1 -0
  128. package/esm/boolean/is_false.d.ts +78 -0
  129. package/esm/boolean/is_false.d.ts.map +1 -0
  130. package/esm/boolean/is_false.js +2 -0
  131. package/esm/boolean/is_false.js.map +1 -0
  132. package/esm/boolean/is_not_boolean.d.ts +91 -0
  133. package/esm/boolean/is_not_boolean.d.ts.map +1 -0
  134. package/esm/boolean/is_not_boolean.js +2 -0
  135. package/esm/boolean/is_not_boolean.js.map +1 -0
  136. package/esm/boolean/is_not_false.d.ts +79 -0
  137. package/esm/boolean/is_not_false.d.ts.map +1 -0
  138. package/esm/boolean/is_not_false.js +2 -0
  139. package/esm/boolean/is_not_false.js.map +1 -0
  140. package/esm/boolean/is_not_true.d.ts +80 -0
  141. package/esm/boolean/is_not_true.d.ts.map +1 -0
  142. package/esm/boolean/is_not_true.js +2 -0
  143. package/esm/boolean/is_not_true.js.map +1 -0
  144. package/esm/boolean/is_true.d.ts +78 -0
  145. package/esm/boolean/is_true.d.ts.map +1 -0
  146. package/esm/boolean/is_true.js +2 -0
  147. package/esm/boolean/is_true.js.map +1 -0
  148. package/esm/class/AnyConstructor.d.ts +1 -1
  149. package/esm/class/AnyConstructor.d.ts.map +1 -1
  150. package/esm/class/AnyConstructor.js.map +1 -1
  151. package/esm/class/index.d.ts.map +1 -1
  152. package/esm/class/index.js.map +1 -1
  153. package/esm/class/isConstructor.d.ts +1 -1
  154. package/esm/class/isConstructor.d.ts.map +1 -1
  155. package/esm/class/isConstructor.js +2 -2
  156. package/esm/class/isConstructor.js.map +1 -1
  157. package/esm/composable_types.d.ts.map +1 -1
  158. package/esm/composable_types.js.map +1 -1
  159. package/esm/equal/equal.d.ts +9 -5
  160. package/esm/equal/equal.d.ts.map +1 -1
  161. package/esm/equal/equal.js.map +1 -1
  162. package/esm/equal/identity_equal.d.ts.map +1 -1
  163. package/esm/equal/identity_equal.js.map +1 -1
  164. package/esm/function/any_function.d.ts.map +1 -1
  165. package/esm/function/any_function.js.map +1 -1
  166. package/esm/function/extract_function.d.ts.map +1 -1
  167. package/esm/function/extract_function.js.map +1 -1
  168. package/esm/function/is_function.d.ts +61 -0
  169. package/esm/function/is_function.d.ts.map +1 -0
  170. package/esm/function/is_function.js +2 -0
  171. package/esm/function/is_function.js.map +1 -0
  172. package/esm/function/is_not_function.d.ts +73 -0
  173. package/esm/function/is_not_function.d.ts.map +1 -0
  174. package/esm/function/is_not_function.js +2 -0
  175. package/esm/function/is_not_function.js.map +1 -0
  176. package/esm/function/is_not_strict_function.d.ts +31 -0
  177. package/esm/function/is_not_strict_function.d.ts.map +1 -0
  178. package/esm/function/is_not_strict_function.js +2 -0
  179. package/esm/function/is_not_strict_function.js.map +1 -0
  180. package/esm/function/is_strict_function.d.ts +31 -0
  181. package/esm/function/is_strict_function.d.ts.map +1 -0
  182. package/esm/function/is_strict_function.js +2 -0
  183. package/esm/function/is_strict_function.js.map +1 -0
  184. package/esm/functional/ChainFn.d.ts.map +1 -1
  185. package/esm/functional/ChainFn.js.map +1 -1
  186. package/esm/functional/Maybe.d.ts +1 -1
  187. package/esm/functional/Maybe.d.ts.map +1 -1
  188. package/esm/functional/Maybe.js.map +1 -1
  189. package/esm/functional/compose.d.ts.map +1 -1
  190. package/esm/functional/compose.js +1 -0
  191. package/esm/functional/compose.js.map +1 -1
  192. package/esm/functional/context.d.ts.map +1 -1
  193. package/esm/functional/context.js +1 -1
  194. package/esm/functional/context.js.map +1 -1
  195. package/esm/functional/index.d.ts.map +1 -1
  196. package/esm/functional/index.js.map +1 -1
  197. package/esm/index.d.ts +79 -30
  198. package/esm/index.d.ts.map +1 -1
  199. package/esm/index.js.map +1 -1
  200. package/esm/json.d.ts.map +1 -1
  201. package/esm/json.js.map +1 -1
  202. package/esm/math/abs.d.ts +4 -5
  203. package/esm/math/abs.d.ts.map +1 -1
  204. package/esm/math/abs.js.map +1 -1
  205. package/esm/math/add.d.ts.map +1 -1
  206. package/esm/math/add.js.map +1 -1
  207. package/esm/math/greater_than.d.ts +1 -1
  208. package/esm/math/greater_than.d.ts.map +1 -1
  209. package/esm/math/greater_than.js.map +1 -1
  210. package/esm/math/index.d.ts +1 -1
  211. package/esm/math/index.d.ts.map +1 -1
  212. package/esm/math/index.js.map +1 -1
  213. package/esm/math/math_plus.d.ts.map +1 -1
  214. package/esm/math/math_plus.js.map +1 -1
  215. package/esm/math/math_plus.to_negative.d.ts.map +1 -1
  216. package/esm/math/math_plus.to_negative.js.map +1 -1
  217. package/esm/math/max.d.ts +1 -1
  218. package/esm/math/max.d.ts.map +1 -1
  219. package/esm/math/max.js.map +1 -1
  220. package/esm/math/multiply.d.ts.map +1 -1
  221. package/esm/math/multiply.js.map +1 -1
  222. package/esm/math/numeric_struct.d.ts +1 -1
  223. package/esm/math/numeric_struct.d.ts.map +1 -1
  224. package/esm/math/numeric_struct.js.map +1 -1
  225. package/esm/math/subtract.d.ts.map +1 -1
  226. package/esm/math/subtract.js.map +1 -1
  227. package/esm/mix_types/box.d.ts +20 -8
  228. package/esm/mix_types/box.d.ts.map +1 -1
  229. package/esm/mix_types/box.js.map +1 -1
  230. package/esm/mix_types/exclude.d.ts +19 -0
  231. package/esm/mix_types/exclude.d.ts.map +1 -0
  232. package/esm/mix_types/exclude.js +2 -0
  233. package/esm/mix_types/exclude.js.map +1 -0
  234. package/esm/mix_types/is_any_or_never.d.ts +28 -0
  235. package/esm/mix_types/is_any_or_never.d.ts.map +1 -0
  236. package/esm/mix_types/is_any_or_never.js +2 -0
  237. package/esm/mix_types/is_any_or_never.js.map +1 -0
  238. package/esm/mix_types/merge.d.ts +6 -6
  239. package/esm/mix_types/merge.d.ts.map +1 -1
  240. package/esm/mix_types/merge.js.map +1 -1
  241. package/esm/never/is_never.d.ts +59 -0
  242. package/esm/never/is_never.d.ts.map +1 -0
  243. package/esm/never/is_never.js +2 -0
  244. package/esm/never/is_never.js.map +1 -0
  245. package/esm/never/is_not_never.d.ts +59 -0
  246. package/esm/never/is_not_never.d.ts.map +1 -0
  247. package/esm/never/is_not_never.js +2 -0
  248. package/esm/never/is_not_never.js.map +1 -0
  249. package/esm/never/never.d.ts +75 -0
  250. package/esm/never/never.d.ts.map +1 -0
  251. package/esm/never/never.js +2 -0
  252. package/esm/never/never.js.map +1 -0
  253. package/esm/nodejs/index.d.ts.map +1 -1
  254. package/esm/nodejs/index.js.map +1 -1
  255. package/esm/nodejs/isNodeError.d.ts.map +1 -1
  256. package/esm/nodejs/isNodeError.js.map +1 -1
  257. package/esm/nominal/brand.d.ts.map +1 -1
  258. package/esm/nominal/brand.js +1 -3
  259. package/esm/nominal/brand.js.map +1 -1
  260. package/esm/nominal/constants.d.ts.map +1 -1
  261. package/esm/nominal/constants.js.map +1 -1
  262. package/esm/nominal/flavor.d.ts.map +1 -1
  263. package/esm/nominal/flavor.js +1 -3
  264. package/esm/nominal/flavor.js.map +1 -1
  265. package/esm/nominal/index.d.ts.map +1 -1
  266. package/esm/nominal/index.js.map +1 -1
  267. package/esm/nominal/nominal_match.d.ts.map +1 -1
  268. package/esm/nominal/nominal_match.js +1 -3
  269. package/esm/nominal/nominal_match.js.map +1 -1
  270. package/esm/null/is_not_null.d.ts +71 -0
  271. package/esm/null/is_not_null.d.ts.map +1 -0
  272. package/esm/null/is_not_null.js +2 -0
  273. package/esm/null/is_not_null.js.map +1 -0
  274. package/esm/null/is_null.d.ts +75 -0
  275. package/esm/null/is_null.d.ts.map +1 -0
  276. package/esm/null/is_null.js +2 -0
  277. package/esm/null/is_null.js.map +1 -0
  278. package/esm/number/cast.d.ts.map +1 -1
  279. package/esm/number/cast.js.map +1 -1
  280. package/esm/number/is_not_number.d.ts +84 -0
  281. package/esm/number/is_not_number.d.ts.map +1 -0
  282. package/esm/number/is_not_number.js +2 -0
  283. package/esm/number/is_not_number.js.map +1 -0
  284. package/esm/number/is_not_number_literal.d.ts +83 -0
  285. package/esm/number/is_not_number_literal.d.ts.map +1 -0
  286. package/esm/number/is_not_number_literal.js +2 -0
  287. package/esm/number/is_not_number_literal.js.map +1 -0
  288. package/esm/number/is_number.d.ts +87 -0
  289. package/esm/number/is_number.d.ts.map +1 -0
  290. package/esm/number/is_number.js +2 -0
  291. package/esm/number/is_number.js.map +1 -0
  292. package/esm/number/is_number_literal.d.ts +85 -0
  293. package/esm/number/is_number_literal.d.ts.map +1 -0
  294. package/esm/number/is_number_literal.js +2 -0
  295. package/esm/number/is_number_literal.js.map +1 -0
  296. package/esm/number/number_array.d.ts.map +1 -1
  297. package/esm/number/number_array.js.map +1 -1
  298. package/esm/number/number_plus.d.ts +11 -6
  299. package/esm/number/number_plus.d.ts.map +1 -1
  300. package/esm/number/number_plus.js +1 -0
  301. package/esm/number/number_plus.js.map +1 -1
  302. package/esm/numeric/cast.d.ts.map +1 -1
  303. package/esm/numeric/cast.js.map +1 -1
  304. package/esm/numeric/is_integer.d.ts +30 -0
  305. package/esm/numeric/is_integer.d.ts.map +1 -0
  306. package/esm/numeric/is_integer.js +2 -0
  307. package/esm/numeric/is_integer.js.map +1 -0
  308. package/esm/numeric/is_negative.d.ts +35 -0
  309. package/esm/numeric/is_negative.d.ts.map +1 -0
  310. package/esm/numeric/is_negative.js +2 -0
  311. package/esm/numeric/is_negative.js.map +1 -0
  312. package/esm/numeric/is_not_integer.d.ts +32 -0
  313. package/esm/numeric/is_not_integer.d.ts.map +1 -0
  314. package/esm/numeric/is_not_integer.js +2 -0
  315. package/esm/numeric/is_not_integer.js.map +1 -0
  316. package/esm/numeric/is_not_negative.d.ts +35 -0
  317. package/esm/numeric/is_not_negative.d.ts.map +1 -0
  318. package/esm/numeric/is_not_negative.js +2 -0
  319. package/esm/numeric/is_not_negative.js.map +1 -0
  320. package/esm/numeric/is_not_numeric.d.ts +19 -0
  321. package/esm/numeric/is_not_numeric.d.ts.map +1 -0
  322. package/esm/numeric/is_not_numeric.js +2 -0
  323. package/esm/numeric/is_not_numeric.js.map +1 -0
  324. package/esm/numeric/is_not_positive.d.ts +36 -0
  325. package/esm/numeric/is_not_positive.d.ts.map +1 -0
  326. package/esm/numeric/is_not_positive.js +2 -0
  327. package/esm/numeric/is_not_positive.js.map +1 -0
  328. package/esm/numeric/is_numeric.d.ts +19 -0
  329. package/esm/numeric/is_numeric.d.ts.map +1 -0
  330. package/esm/numeric/is_numeric.js +2 -0
  331. package/esm/numeric/is_numeric.js.map +1 -0
  332. package/esm/numeric/is_positive.d.ts +35 -0
  333. package/esm/numeric/is_positive.d.ts.map +1 -0
  334. package/esm/numeric/is_positive.js +2 -0
  335. package/esm/numeric/is_positive.js.map +1 -0
  336. package/esm/numeric/numeric_plus.d.ts +9 -4
  337. package/esm/numeric/numeric_plus.d.ts.map +1 -1
  338. package/esm/numeric/numeric_plus.js.map +1 -1
  339. package/esm/numeric/numeric_type.d.ts +0 -50
  340. package/esm/numeric/numeric_type.d.ts.map +1 -1
  341. package/esm/numeric/numeric_type.js.map +1 -1
  342. package/esm/object/ANotB.d.ts.map +1 -1
  343. package/esm/object/ANotB.js.map +1 -1
  344. package/esm/object/ExcludePropType.d.ts.map +1 -1
  345. package/esm/object/ExcludePropType.js.map +1 -1
  346. package/esm/object/IsDisjoint.d.ts.map +1 -1
  347. package/esm/object/IsDisjoint.js.map +1 -1
  348. package/esm/object/IsRecord.d.ts.map +1 -1
  349. package/esm/object/IsRecord.js.map +1 -1
  350. package/esm/object/KeyTypes.d.ts.map +1 -1
  351. package/esm/object/KeyTypes.js.map +1 -1
  352. package/esm/object/KeyofOptional.d.ts.map +1 -1
  353. package/esm/object/KeyofOptional.js.map +1 -1
  354. package/esm/object/KeysWithDiffType.d.ts +2 -2
  355. package/esm/object/KeysWithDiffType.d.ts.map +1 -1
  356. package/esm/object/KeysWithDiffType.js.map +1 -1
  357. package/esm/object/KnownKeys.d.ts.map +1 -1
  358. package/esm/object/KnownKeys.js.map +1 -1
  359. package/esm/object/Partial.d.ts.map +1 -1
  360. package/esm/object/Partial.js.map +1 -1
  361. package/esm/object/RecursiveIntersect.d.ts.map +1 -1
  362. package/esm/object/RecursiveIntersect.js.map +1 -1
  363. package/esm/object/RecursiveRequired.d.ts.map +1 -1
  364. package/esm/object/RecursiveRequired.js.map +1 -1
  365. package/esm/object/Required.d.ts +1 -2
  366. package/esm/object/Required.d.ts.map +1 -1
  367. package/esm/object/Required.js.map +1 -1
  368. package/esm/object/RequiredKeys.d.ts +2 -2
  369. package/esm/object/RequiredKeys.d.ts.map +1 -1
  370. package/esm/object/RequiredKeys.js.map +1 -1
  371. package/esm/object/SpreadRecord.d.ts.map +1 -1
  372. package/esm/object/SpreadRecord.js.map +1 -1
  373. package/esm/object/ValueOf.d.ts.map +1 -1
  374. package/esm/object/ValueOf.js.map +1 -1
  375. package/esm/object/any_record.d.ts.map +1 -1
  376. package/esm/object/any_record.js.map +1 -1
  377. package/esm/object/everyKey.d.ts.map +1 -1
  378. package/esm/object/everyKey.js.map +1 -1
  379. package/esm/object/facade.d.ts.map +1 -1
  380. package/esm/object/facade.js.map +1 -1
  381. package/esm/object/filterKey.d.ts.map +1 -1
  382. package/esm/object/filterKey.js.map +1 -1
  383. package/esm/object/findKey.d.ts.map +1 -1
  384. package/esm/object/findKey.js.map +1 -1
  385. package/esm/object/forEachKey.d.ts.map +1 -1
  386. package/esm/object/forEachKey.js +1 -1
  387. package/esm/object/forEachKey.js.map +1 -1
  388. package/esm/object/getField.d.ts.map +1 -1
  389. package/esm/object/getField.js.map +1 -1
  390. package/esm/object/hasKey.d.ts.map +1 -1
  391. package/esm/object/hasKey.js.map +1 -1
  392. package/esm/object/hasProperty.d.ts.map +1 -1
  393. package/esm/object/hasProperty.js.map +1 -1
  394. package/esm/object/index.d.ts +14 -15
  395. package/esm/object/index.d.ts.map +1 -1
  396. package/esm/object/index.js.map +1 -1
  397. package/esm/object/is_not_object.d.ts +119 -0
  398. package/esm/object/is_not_object.d.ts.map +1 -0
  399. package/esm/object/is_not_object.js +2 -0
  400. package/esm/object/is_not_object.js.map +1 -0
  401. package/esm/object/is_object.d.ts +104 -0
  402. package/esm/object/is_object.d.ts.map +1 -0
  403. package/esm/object/is_object.js +2 -0
  404. package/esm/object/is_object.js.map +1 -0
  405. package/esm/object/left_join.d.ts +0 -5
  406. package/esm/object/left_join.d.ts.map +1 -1
  407. package/esm/object/left_join.js.map +1 -1
  408. package/esm/object/mapKey.d.ts.map +1 -1
  409. package/esm/object/mapKey.js.map +1 -1
  410. package/esm/object/mapProperties.d.ts.map +1 -1
  411. package/esm/object/mapProperties.js.map +1 -1
  412. package/esm/object/merge.d.ts +47 -26
  413. package/esm/object/merge.d.ts.map +1 -1
  414. package/esm/object/merge.js.map +1 -1
  415. package/esm/object/object_plus.d.ts.map +1 -1
  416. package/esm/object/object_plus.js.map +1 -1
  417. package/esm/object/omit.d.ts +1 -1
  418. package/esm/object/omit.d.ts.map +1 -1
  419. package/esm/object/omit.js.map +1 -1
  420. package/esm/object/optional_key.d.ts +1 -1
  421. package/esm/object/optional_key.d.ts.map +1 -1
  422. package/esm/object/optional_key.js.map +1 -1
  423. package/esm/object/pick.d.ts.map +1 -1
  424. package/esm/object/pick.js.map +1 -1
  425. package/esm/object/properties.d.ts.map +1 -1
  426. package/esm/object/properties.js.map +1 -1
  427. package/esm/object/record.d.ts.map +1 -1
  428. package/esm/object/record.js.map +1 -1
  429. package/esm/object/recursive_partial.d.ts.map +1 -1
  430. package/esm/object/recursive_partial.js.map +1 -1
  431. package/esm/object/reduceKey.d.ts.map +1 -1
  432. package/esm/object/reduceKey.js.map +1 -1
  433. package/esm/object/replaceProperty.d.ts.map +1 -1
  434. package/esm/object/replaceProperty.js.map +1 -1
  435. package/esm/object/someKey.d.ts.map +1 -1
  436. package/esm/object/someKey.js.map +1 -1
  437. package/esm/object/split.d.ts +1 -2
  438. package/esm/object/split.d.ts.map +1 -1
  439. package/esm/object/split.js.map +1 -1
  440. package/esm/object/typeOverrideIncompatible.d.ts.map +1 -1
  441. package/esm/object/typeOverrideIncompatible.js +4 -6
  442. package/esm/object/typeOverrideIncompatible.js.map +1 -1
  443. package/esm/predicates/CanAssign.d.ts +12 -4
  444. package/esm/predicates/CanAssign.d.ts.map +1 -1
  445. package/esm/predicates/CanAssign.js.map +1 -1
  446. package/esm/predicates/Extends.d.ts +3 -0
  447. package/esm/predicates/Extends.d.ts.map +1 -1
  448. package/esm/predicates/Extends.js.map +1 -1
  449. package/esm/predicates/If.d.ts.map +1 -1
  450. package/esm/predicates/If.js.map +1 -1
  451. package/esm/predicates/IsEmptyObject.d.ts.map +1 -1
  452. package/esm/predicates/IsEmptyObject.js.map +1 -1
  453. package/esm/predicates/assignable.d.ts +89 -0
  454. package/esm/predicates/assignable.d.ts.map +1 -0
  455. package/esm/predicates/assignable.js +2 -0
  456. package/esm/predicates/assignable.js.map +1 -0
  457. package/esm/predicates/index.d.ts.map +1 -1
  458. package/esm/predicates/index.js.map +1 -1
  459. package/esm/predicates/literal.d.ts +1 -1
  460. package/esm/predicates/literal.d.ts.map +1 -1
  461. package/esm/predicates/literal.js.map +1 -1
  462. package/esm/predicates/logical.d.ts.map +1 -1
  463. package/esm/predicates/logical.js.map +1 -1
  464. package/esm/predicates/not_assignable.d.ts +89 -0
  465. package/esm/predicates/not_assignable.d.ts.map +1 -0
  466. package/esm/predicates/not_assignable.js +2 -0
  467. package/esm/predicates/not_assignable.js.map +1 -0
  468. package/esm/primitive.d.ts.map +1 -1
  469. package/esm/primitive.js.map +1 -1
  470. package/esm/promise/MaybePromise.d.ts.map +1 -1
  471. package/esm/promise/MaybePromise.js.map +1 -1
  472. package/esm/promise/PromiseValue.d.ts.map +1 -1
  473. package/esm/promise/PromiseValue.js.map +1 -1
  474. package/esm/promise/PromiseValueMerge.d.ts.map +1 -1
  475. package/esm/promise/PromiseValueMerge.js.map +1 -1
  476. package/esm/promise/index.d.ts +1 -1
  477. package/esm/promise/index.d.ts.map +1 -1
  478. package/esm/promise/index.js.map +1 -1
  479. package/esm/promise/isPromise.d.ts.map +1 -1
  480. package/esm/promise/isPromise.js.map +1 -1
  481. package/esm/promise/mapSeries.d.ts.map +1 -1
  482. package/esm/promise/mapSeries.js.map +1 -1
  483. package/esm/string/$extract_manipulated_string.d.ts +18 -0
  484. package/esm/string/$extract_manipulated_string.d.ts.map +1 -0
  485. package/esm/string/$extract_manipulated_string.js +2 -0
  486. package/esm/string/$extract_manipulated_string.js.map +1 -0
  487. package/esm/string/_string_type.d.ts +5 -0
  488. package/esm/string/_string_type.d.ts.map +1 -0
  489. package/esm/string/_string_type.js +2 -0
  490. package/esm/string/_string_type.js.map +1 -0
  491. package/esm/string/is_not_string.d.ts +84 -0
  492. package/esm/string/is_not_string.d.ts.map +1 -0
  493. package/esm/string/is_not_string.js +2 -0
  494. package/esm/string/is_not_string.js.map +1 -0
  495. package/esm/string/is_not_string_literal.d.ts +104 -0
  496. package/esm/string/is_not_string_literal.d.ts.map +1 -0
  497. package/esm/string/is_not_string_literal.js +2 -0
  498. package/esm/string/is_not_string_literal.js.map +1 -0
  499. package/esm/string/is_not_template_literal.d.ts +73 -0
  500. package/esm/string/is_not_template_literal.d.ts.map +1 -0
  501. package/esm/string/is_not_template_literal.js +2 -0
  502. package/esm/string/is_not_template_literal.js.map +1 -0
  503. package/esm/string/is_string.d.ts +83 -0
  504. package/esm/string/is_string.d.ts.map +1 -0
  505. package/esm/string/is_string.js +2 -0
  506. package/esm/string/is_string.js.map +1 -0
  507. package/esm/string/is_string_literal.d.ts +104 -0
  508. package/esm/string/is_string_literal.d.ts.map +1 -0
  509. package/esm/string/is_string_literal.js +2 -0
  510. package/esm/string/is_string_literal.js.map +1 -0
  511. package/esm/string/is_template_literal.d.ts +75 -0
  512. package/esm/string/is_template_literal.d.ts.map +1 -0
  513. package/esm/string/is_template_literal.js +2 -0
  514. package/esm/string/is_template_literal.js.map +1 -0
  515. package/esm/string/string.d.ts +1 -1
  516. package/esm/string/string.d.ts.map +1 -1
  517. package/esm/string/string.js.map +1 -1
  518. package/esm/string/string_plus.d.ts.map +1 -1
  519. package/esm/string/string_plus.js.map +1 -1
  520. package/esm/symbol/is_not_symbol.d.ts +71 -0
  521. package/esm/symbol/is_not_symbol.d.ts.map +1 -0
  522. package/esm/symbol/is_not_symbol.js +2 -0
  523. package/esm/symbol/is_not_symbol.js.map +1 -0
  524. package/esm/symbol/is_symbol.d.ts +73 -0
  525. package/esm/symbol/is_symbol.d.ts.map +1 -0
  526. package/esm/symbol/is_symbol.js +2 -0
  527. package/esm/symbol/is_symbol.js.map +1 -0
  528. package/esm/testing/stub.d.ts.map +1 -1
  529. package/esm/testing/stub.js.map +1 -1
  530. package/esm/testing/test_type.d.ts +84 -44
  531. package/esm/testing/test_type.d.ts.map +1 -1
  532. package/esm/testing/test_type.js.map +1 -1
  533. package/esm/tuple/common_prop_keys.d.ts.map +1 -1
  534. package/esm/tuple/common_prop_keys.js.map +1 -1
  535. package/esm/tuple/create_tuple.d.ts +2 -2
  536. package/esm/tuple/create_tuple.d.ts.map +1 -1
  537. package/esm/tuple/create_tuple.js.map +1 -1
  538. package/esm/tuple/drop.d.ts.map +1 -1
  539. package/esm/tuple/drop.js.map +1 -1
  540. package/esm/tuple/is_not_tuple.d.ts +78 -0
  541. package/esm/tuple/is_not_tuple.d.ts.map +1 -0
  542. package/esm/tuple/is_not_tuple.js +2 -0
  543. package/esm/tuple/is_not_tuple.js.map +1 -0
  544. package/esm/tuple/is_tuple.d.ts +76 -0
  545. package/esm/tuple/is_tuple.d.ts.map +1 -0
  546. package/esm/tuple/is_tuple.js +2 -0
  547. package/esm/tuple/is_tuple.js.map +1 -0
  548. package/esm/tuple/tail.d.ts.map +1 -1
  549. package/esm/tuple/tail.js.map +1 -1
  550. package/esm/tuple/tuple_plus.common_prop_keys.d.ts +8 -4
  551. package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -1
  552. package/esm/tuple/tuple_plus.common_prop_keys.js.map +1 -1
  553. package/esm/tuple/tuple_plus.d.ts.map +1 -1
  554. package/esm/tuple/tuple_plus.drop_match.d.ts.map +1 -1
  555. package/esm/tuple/tuple_plus.drop_match.js.map +1 -1
  556. package/esm/tuple/tuple_plus.filter.d.ts.map +1 -1
  557. package/esm/tuple/tuple_plus.filter.js.map +1 -1
  558. package/esm/tuple/tuple_plus.find.d.ts +8 -5
  559. package/esm/tuple/tuple_plus.find.d.ts.map +1 -1
  560. package/esm/tuple/tuple_plus.find.js.map +1 -1
  561. package/esm/tuple/tuple_plus.js.map +1 -1
  562. package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
  563. package/esm/tuple/tuple_plus.pad_start.js.map +1 -1
  564. package/esm/type/failed.d.ts.map +1 -1
  565. package/esm/type/failed.js.map +1 -1
  566. package/esm/type/no_infer.d.ts +4 -3
  567. package/esm/type/no_infer.d.ts.map +1 -1
  568. package/esm/type/no_infer.js.map +1 -1
  569. package/esm/type-guard/is_type.d.ts +1 -1
  570. package/esm/type-guard/is_type.d.ts.map +1 -1
  571. package/esm/type-guard/is_type.js +3 -7
  572. package/esm/type-guard/is_type.js.map +1 -1
  573. package/esm/type_plus/$equality.d.ts +12 -0
  574. package/esm/type_plus/$equality.d.ts.map +1 -0
  575. package/esm/type_plus/$equality.js +2 -0
  576. package/esm/type_plus/$equality.js.map +1 -0
  577. package/esm/type_plus/$error.d.ts +8 -0
  578. package/esm/type_plus/$error.d.ts.map +1 -0
  579. package/esm/type_plus/$error.js +2 -0
  580. package/esm/type_plus/$error.js.map +1 -0
  581. package/esm/type_plus/$infer_error.d.ts +21 -0
  582. package/esm/type_plus/$infer_error.d.ts.map +1 -0
  583. package/esm/type_plus/$infer_error.js +2 -0
  584. package/esm/type_plus/$infer_error.js.map +1 -0
  585. package/esm/type_plus/$merge_options.d.ts +11 -0
  586. package/esm/type_plus/$merge_options.d.ts.map +1 -0
  587. package/esm/type_plus/$merge_options.js +2 -0
  588. package/esm/type_plus/$merge_options.js.map +1 -0
  589. package/esm/type_plus/$resolve_options.d.ts +11 -0
  590. package/esm/type_plus/$resolve_options.d.ts.map +1 -0
  591. package/esm/type_plus/$resolve_options.js +2 -0
  592. package/esm/type_plus/$resolve_options.js.map +1 -0
  593. package/esm/type_plus/$special_type.d.ts +25 -0
  594. package/esm/type_plus/$special_type.d.ts.map +1 -0
  595. package/esm/type_plus/$special_type.js +2 -0
  596. package/esm/type_plus/$special_type.js.map +1 -0
  597. package/esm/type_plus/$type.d.ts +11 -0
  598. package/esm/type_plus/$type.d.ts.map +1 -0
  599. package/esm/type_plus/$type.js +2 -0
  600. package/esm/type_plus/$type.js.map +1 -0
  601. package/esm/type_plus/branch/$branch.d.ts +29 -0
  602. package/esm/type_plus/branch/$branch.d.ts.map +1 -0
  603. package/esm/type_plus/branch/$branch.js +2 -0
  604. package/esm/type_plus/branch/$branch.js.map +1 -0
  605. package/esm/type_plus/branch/$distributive.d.ts +19 -0
  606. package/esm/type_plus/branch/$distributive.d.ts.map +1 -0
  607. package/esm/type_plus/branch/$distributive.js +2 -0
  608. package/esm/type_plus/branch/$distributive.js.map +1 -0
  609. package/esm/type_plus/branch/$exact.d.ts +27 -0
  610. package/esm/type_plus/branch/$exact.d.ts.map +1 -0
  611. package/esm/type_plus/branch/$exact.js +2 -0
  612. package/esm/type_plus/branch/$exact.js.map +1 -0
  613. package/esm/type_plus/branch/$input_options.d.ts +10 -0
  614. package/esm/type_plus/branch/$input_options.d.ts.map +1 -0
  615. package/esm/type_plus/branch/$input_options.js +2 -0
  616. package/esm/type_plus/branch/$input_options.js.map +1 -0
  617. package/esm/type_plus/branch/$is_distributive.d.ts +6 -0
  618. package/esm/type_plus/branch/$is_distributive.d.ts.map +1 -0
  619. package/esm/type_plus/branch/$is_distributive.js +2 -0
  620. package/esm/type_plus/branch/$is_distributive.js.map +1 -0
  621. package/esm/type_plus/branch/$override.d.ts +21 -0
  622. package/esm/type_plus/branch/$override.d.ts.map +1 -0
  623. package/esm/type_plus/branch/$override.js +2 -0
  624. package/esm/type_plus/branch/$override.js.map +1 -0
  625. package/esm/type_plus/branch/$resolve_branch.d.ts +30 -0
  626. package/esm/type_plus/branch/$resolve_branch.d.ts.map +1 -0
  627. package/esm/type_plus/branch/$resolve_branch.js +2 -0
  628. package/esm/type_plus/branch/$resolve_branch.js.map +1 -0
  629. package/esm/type_plus/branch/$select.d.ts +79 -0
  630. package/esm/type_plus/branch/$select.d.ts.map +1 -0
  631. package/esm/type_plus/branch/$select.js +2 -0
  632. package/esm/type_plus/branch/$select.js.map +1 -0
  633. package/esm/type_plus/branch/$select_invert.d.ts +77 -0
  634. package/esm/type_plus/branch/$select_invert.d.ts.map +1 -0
  635. package/esm/type_plus/branch/$select_invert.js +2 -0
  636. package/esm/type_plus/branch/$select_invert.js.map +1 -0
  637. package/esm/type_plus/branch/$select_invert_strict.d.ts +78 -0
  638. package/esm/type_plus/branch/$select_invert_strict.d.ts.map +1 -0
  639. package/esm/type_plus/branch/$select_invert_strict.js +2 -0
  640. package/esm/type_plus/branch/$select_invert_strict.js.map +1 -0
  641. package/esm/type_plus/branch/$select_strict.d.ts +79 -0
  642. package/esm/type_plus/branch/$select_strict.d.ts.map +1 -0
  643. package/esm/type_plus/branch/$select_strict.js +2 -0
  644. package/esm/type_plus/branch/$select_strict.js.map +1 -0
  645. package/esm/type_plus/branch/$selection.d.ts +127 -0
  646. package/esm/type_plus/branch/$selection.d.ts.map +1 -0
  647. package/esm/type_plus/branch/$selection.js +2 -0
  648. package/esm/type_plus/branch/$selection.js.map +1 -0
  649. package/esm/type_plus/branch/$selection_options.d.ts +37 -0
  650. package/esm/type_plus/branch/$selection_options.d.ts.map +1 -0
  651. package/esm/type_plus/branch/$selection_options.js +2 -0
  652. package/esm/type_plus/branch/$selection_options.js.map +1 -0
  653. package/esm/undefined/has_undefined.d.ts +41 -0
  654. package/esm/undefined/has_undefined.d.ts.map +1 -0
  655. package/esm/undefined/has_undefined.js +2 -0
  656. package/esm/undefined/has_undefined.js.map +1 -0
  657. package/esm/undefined/is_not_undefined.d.ts +72 -0
  658. package/esm/undefined/is_not_undefined.d.ts.map +1 -0
  659. package/esm/undefined/is_not_undefined.js +2 -0
  660. package/esm/undefined/is_not_undefined.js.map +1 -0
  661. package/esm/undefined/is_undefined.d.ts +75 -0
  662. package/esm/undefined/is_undefined.d.ts.map +1 -0
  663. package/esm/undefined/is_undefined.js +2 -0
  664. package/esm/undefined/is_undefined.js.map +1 -0
  665. package/esm/union/union.d.ts +1 -1
  666. package/esm/union/union.d.ts.map +1 -1
  667. package/esm/union/union.js.map +1 -1
  668. package/esm/union/union_to_intersection.d.ts.map +1 -1
  669. package/esm/union/union_to_intersection.js.map +1 -1
  670. package/esm/union_keys.d.ts.map +1 -1
  671. package/esm/union_keys.js.map +1 -1
  672. package/esm/unknown/is_not_unknown.d.ts +53 -0
  673. package/esm/unknown/is_not_unknown.d.ts.map +1 -0
  674. package/esm/unknown/is_not_unknown.js +2 -0
  675. package/esm/unknown/is_not_unknown.js.map +1 -0
  676. package/esm/unknown/is_unknown.d.ts +53 -0
  677. package/esm/unknown/is_unknown.d.ts.map +1 -0
  678. package/esm/unknown/is_unknown.js +2 -0
  679. package/esm/unknown/is_unknown.js.map +1 -0
  680. package/esm/unknown/not_unknown_or.d.ts +30 -0
  681. package/esm/unknown/not_unknown_or.d.ts.map +1 -0
  682. package/esm/unknown/not_unknown_or.js +2 -0
  683. package/esm/unknown/not_unknown_or.js.map +1 -0
  684. package/esm/unknown/unknown.d.ts +55 -0
  685. package/esm/unknown/unknown.d.ts.map +1 -0
  686. package/esm/unknown/unknown.js +2 -0
  687. package/esm/unknown/unknown.js.map +1 -0
  688. package/esm/unpartial.d.ts.map +1 -1
  689. package/esm/unpartial.js.map +1 -1
  690. package/esm/utils/Widen.d.ts.map +1 -1
  691. package/esm/utils/Widen.js.map +1 -1
  692. package/esm/utils/as.d.ts.map +1 -1
  693. package/esm/utils/as.js.map +1 -1
  694. package/esm/utils/index.d.ts +0 -2
  695. package/esm/utils/index.d.ts.map +1 -1
  696. package/esm/utils/index.js.map +1 -1
  697. package/esm/utils/inspect.d.ts.map +1 -1
  698. package/esm/utils/inspect.js.map +1 -1
  699. package/esm/utils/options.d.ts +0 -13
  700. package/esm/utils/options.d.ts.map +1 -1
  701. package/esm/utils/options.js.map +1 -1
  702. package/esm/void/is_not_void.d.ts +78 -0
  703. package/esm/void/is_not_void.d.ts.map +1 -0
  704. package/esm/void/is_not_void.js +2 -0
  705. package/esm/void/is_not_void.js.map +1 -0
  706. package/esm/void/is_void.d.ts +79 -0
  707. package/esm/void/is_void.d.ts.map +1 -0
  708. package/esm/void/is_void.js +2 -0
  709. package/esm/void/is_void.js.map +1 -0
  710. package/package.json +27 -19
  711. package/readme.md +161 -160
  712. package/src/any/any.ts +46 -0
  713. package/src/any/is_any.ts +59 -0
  714. package/src/any/is_not_any.ts +59 -0
  715. package/src/any/readme.md +104 -0
  716. package/src/array/array.at.ts +40 -0
  717. package/src/array/array.entries.ts +28 -0
  718. package/src/array/array.find_last.ts +31 -0
  719. package/src/array/array_plus.common_prop_keys.ts +38 -0
  720. package/src/array/array_plus.drop_match.ts +16 -0
  721. package/src/array/array_plus.element_match.ts +61 -0
  722. package/src/array/array_plus.filter.ts +52 -0
  723. package/src/array/array_plus.find.ts +71 -0
  724. package/src/array/array_plus.index_at.ts +169 -0
  725. package/src/array/array_plus.is_index_out_of_bound.ts +24 -0
  726. package/src/array/array_plus.is_readonly.ts +50 -0
  727. package/src/array/array_plus.split_at.ts +79 -0
  728. package/src/array/find_first.ts +73 -0
  729. package/src/array/head.ts +45 -0
  730. package/src/array/is_array.ts +116 -0
  731. package/src/array/is_not_array.ts +114 -0
  732. package/src/array/last.ts +42 -0
  733. package/src/array/loose_array_type.ts +71 -0
  734. package/src/array/readme.md +567 -0
  735. package/src/assertion/assert_type.ts +117 -0
  736. package/src/bigint/is_bigint.ts +114 -0
  737. package/src/bigint/is_bigint_literal.ts +100 -0
  738. package/src/bigint/is_not_bigint.ts +110 -0
  739. package/src/bigint/is_not_bigint_literal.ts +101 -0
  740. package/src/bigint/readme.md +109 -0
  741. package/src/boolean/is_boolean.ts +126 -0
  742. package/src/boolean/is_false.ts +85 -0
  743. package/src/boolean/is_not_boolean.ts +109 -0
  744. package/src/boolean/is_not_false.ts +86 -0
  745. package/src/boolean/is_not_true.ts +86 -0
  746. package/src/boolean/is_true.ts +85 -0
  747. package/src/boolean/readme.md +430 -0
  748. package/src/class/AnyConstructor.ts +1 -0
  749. package/src/class/isConstructor.ts +34 -0
  750. package/src/equal/equal.ts +135 -0
  751. package/src/function/is_function.ts +62 -0
  752. package/src/function/is_not_function.ts +75 -0
  753. package/src/function/is_not_strict_function.ts +40 -0
  754. package/src/function/is_strict_function.ts +43 -0
  755. package/src/functional/Maybe.ts +22 -0
  756. package/src/functional/compose.ts +18 -0
  757. package/src/functional/context.ts +66 -0
  758. package/src/index.ts +139 -0
  759. package/src/math/abs.ts +23 -0
  760. package/src/math/greater_than.ts +12 -0
  761. package/src/math/index.ts +7 -0
  762. package/src/math/max.ts +13 -0
  763. package/src/math/numeric_struct.ts +656 -0
  764. package/src/mix_types/box.ts +74 -0
  765. package/src/mix_types/exclude.ts +18 -0
  766. package/src/mix_types/is_any_or_never.ts +31 -0
  767. package/src/mix_types/merge.ts +61 -0
  768. package/src/mix_types/readme.md +87 -0
  769. package/src/never/is_never.ts +62 -0
  770. package/src/never/is_not_never.ts +62 -0
  771. package/src/never/never.ts +78 -0
  772. package/src/never/readme.md +148 -0
  773. package/src/nominal/brand.ts +41 -0
  774. package/src/nominal/flavor.ts +51 -0
  775. package/src/nominal/nominal_match.ts +21 -0
  776. package/src/null/is_not_null.ts +79 -0
  777. package/src/null/is_null.ts +83 -0
  778. package/src/null/readme.md +107 -0
  779. package/src/number/is_not_number.ts +99 -0
  780. package/src/number/is_not_number_literal.ts +101 -0
  781. package/src/number/is_number.ts +103 -0
  782. package/src/number/is_number_literal.ts +100 -0
  783. package/src/number/number_plus.ts +13 -0
  784. package/src/number/readme.md +225 -0
  785. package/src/numeric/is_integer.ts +48 -0
  786. package/src/numeric/is_negative.ts +51 -0
  787. package/src/numeric/is_not_integer.ts +49 -0
  788. package/src/numeric/is_not_negative.ts +49 -0
  789. package/src/numeric/is_not_numeric.ts +21 -0
  790. package/src/numeric/is_not_positive.ts +50 -0
  791. package/src/numeric/is_numeric.ts +20 -0
  792. package/src/numeric/is_positive.ts +51 -0
  793. package/src/numeric/numeric_plus.ts +10 -0
  794. package/src/numeric/numeric_type.ts +10 -0
  795. package/src/object/KeysWithDiffType.ts +9 -0
  796. package/src/object/Required.ts +7 -0
  797. package/src/object/RequiredKeys.ts +8 -0
  798. package/src/object/forEachKey.ts +9 -0
  799. package/src/object/index.ts +38 -0
  800. package/src/object/is_not_object.ts +132 -0
  801. package/src/object/is_object.ts +119 -0
  802. package/src/object/left_join.ts +10 -0
  803. package/src/object/merge.ts +117 -0
  804. package/src/object/omit.ts +220 -0
  805. package/src/object/optional_key.ts +38 -0
  806. package/src/object/split.ts +202 -0
  807. package/src/object/typeOverrideIncompatible.ts +8 -0
  808. package/src/predicates/CanAssign.ts +61 -0
  809. package/src/predicates/Extends.ts +7 -0
  810. package/src/predicates/assignable.ts +102 -0
  811. package/src/predicates/index.ts +6 -0
  812. package/src/predicates/literal.ts +35 -0
  813. package/src/predicates/not_assignable.ts +100 -0
  814. package/src/promise/index.ts +5 -0
  815. package/src/string/$extract_manipulated_string.ts +45 -0
  816. package/src/string/_string_type.ts +11 -0
  817. package/src/string/is_not_string.ts +100 -0
  818. package/src/string/is_not_string_literal.ts +132 -0
  819. package/src/string/is_not_template_literal.ts +90 -0
  820. package/src/string/is_string.ts +101 -0
  821. package/src/string/is_string_literal.ts +132 -0
  822. package/src/string/is_template_literal.ts +91 -0
  823. package/src/string/string.ts +36 -0
  824. package/src/string/string_plus.ts +34 -0
  825. package/src/symbol/is_not_symbol.ts +78 -0
  826. package/src/symbol/is_symbol.ts +80 -0
  827. package/src/testing/stub.ts +81 -0
  828. package/src/testing/test_type.ts +313 -0
  829. package/src/tuple/create_tuple.ts +42 -0
  830. package/src/tuple/is_not_tuple.ts +101 -0
  831. package/src/tuple/is_tuple.ts +99 -0
  832. package/src/tuple/readme.md +282 -0
  833. package/src/tuple/tuple_plus.common_prop_keys.ts +50 -0
  834. package/src/tuple/tuple_plus.find.ts +89 -0
  835. package/src/type/no_infer.ts +28 -0
  836. package/src/type-guard/is_type.ts +48 -0
  837. package/src/type_plus/$equality.ts +14 -0
  838. package/src/type_plus/$error.ts +8 -0
  839. package/src/type_plus/$infer_error.ts +21 -0
  840. package/src/type_plus/$merge_options.ts +9 -0
  841. package/src/type_plus/$resolve_options.ts +16 -0
  842. package/src/type_plus/$special_type.ts +24 -0
  843. package/src/type_plus/$type.ts +10 -0
  844. package/src/type_plus/branch/$branch.ts +27 -0
  845. package/src/type_plus/branch/$distributive.ts +19 -0
  846. package/src/type_plus/branch/$exact.ts +34 -0
  847. package/src/type_plus/branch/$input_options.ts +9 -0
  848. package/src/type_plus/branch/$is_distributive.ts +12 -0
  849. package/src/type_plus/branch/$override.ts +22 -0
  850. package/src/type_plus/branch/$resolve_branch.ts +81 -0
  851. package/src/type_plus/branch/$select.ts +90 -0
  852. package/src/type_plus/branch/$select_invert.ts +88 -0
  853. package/src/type_plus/branch/$select_invert_strict.ts +88 -0
  854. package/src/type_plus/branch/$select_strict.ts +90 -0
  855. package/src/type_plus/branch/$selection.ts +135 -0
  856. package/src/type_plus/branch/$selection_options.ts +36 -0
  857. package/src/type_plus/readme.md +25 -0
  858. package/src/undefined/has_undefined.ts +44 -0
  859. package/src/undefined/is_not_undefined.ts +80 -0
  860. package/src/undefined/is_undefined.ts +82 -0
  861. package/src/undefined/readme.md +140 -0
  862. package/src/union/readme.md +81 -0
  863. package/src/union/union.ts +37 -0
  864. package/src/unknown/is_not_unknown.ts +57 -0
  865. package/src/unknown/is_unknown.ts +57 -0
  866. package/src/unknown/not_unknown_or.ts +29 -0
  867. package/src/unknown/readme.md +108 -0
  868. package/src/unknown/unknown.ts +58 -0
  869. package/src/utils/index.ts +61 -0
  870. package/src/utils/options.ts +15 -0
  871. package/src/void/is_not_void.ts +90 -0
  872. package/src/void/is_void.ts +91 -0
  873. package/src/void/readme.md +108 -0
  874. package/esm/any/any_type.d.ts +0 -63
  875. package/esm/any/any_type.d.ts.map +0 -1
  876. package/esm/any/any_type.js +0 -2
  877. package/esm/any/any_type.js.map +0 -1
  878. package/esm/array/array_type.d.ts +0 -66
  879. package/esm/array/array_type.d.ts.map +0 -1
  880. package/esm/array/array_type.js +0 -2
  881. package/esm/array/array_type.js.map +0 -1
  882. package/esm/array/strict_array_type.d.ts +0 -66
  883. package/esm/array/strict_array_type.d.ts.map +0 -1
  884. package/esm/array/strict_array_type.js +0 -2
  885. package/esm/array/strict_array_type.js.map +0 -1
  886. package/esm/bigint/bigint_type.d.ts +0 -54
  887. package/esm/bigint/bigint_type.d.ts.map +0 -1
  888. package/esm/bigint/bigint_type.js +0 -2
  889. package/esm/bigint/bigint_type.js.map +0 -1
  890. package/esm/bigint/strict_bigint_type.d.ts +0 -56
  891. package/esm/bigint/strict_bigint_type.d.ts.map +0 -1
  892. package/esm/bigint/strict_bigint_type.js +0 -2
  893. package/esm/bigint/strict_bigint_type.js.map +0 -1
  894. package/esm/boolean/boolean_type.d.ts +0 -56
  895. package/esm/boolean/boolean_type.d.ts.map +0 -1
  896. package/esm/boolean/boolean_type.js +0 -2
  897. package/esm/boolean/boolean_type.js.map +0 -1
  898. package/esm/boolean/false_type.d.ts +0 -49
  899. package/esm/boolean/false_type.d.ts.map +0 -1
  900. package/esm/boolean/false_type.js +0 -2
  901. package/esm/boolean/false_type.js.map +0 -1
  902. package/esm/boolean/strict_boolean_type.d.ts +0 -53
  903. package/esm/boolean/strict_boolean_type.d.ts.map +0 -1
  904. package/esm/boolean/strict_boolean_type.js +0 -2
  905. package/esm/boolean/strict_boolean_type.js.map +0 -1
  906. package/esm/boolean/true_type.d.ts +0 -49
  907. package/esm/boolean/true_type.d.ts.map +0 -1
  908. package/esm/boolean/true_type.js +0 -2
  909. package/esm/boolean/true_type.js.map +0 -1
  910. package/esm/function/function_type.d.ts +0 -59
  911. package/esm/function/function_type.d.ts.map +0 -1
  912. package/esm/function/function_type.js +0 -2
  913. package/esm/function/function_type.js.map +0 -1
  914. package/esm/function/strict_function_type.d.ts +0 -49
  915. package/esm/function/strict_function_type.d.ts.map +0 -1
  916. package/esm/function/strict_function_type.js +0 -2
  917. package/esm/function/strict_function_type.js.map +0 -1
  918. package/esm/mix_types/any_or_never_type.d.ts +0 -37
  919. package/esm/mix_types/any_or_never_type.d.ts.map +0 -1
  920. package/esm/mix_types/any_or_never_type.js +0 -2
  921. package/esm/mix_types/any_or_never_type.js.map +0 -1
  922. package/esm/never/never_type.d.ts +0 -62
  923. package/esm/never/never_type.d.ts.map +0 -1
  924. package/esm/never/never_type.js +0 -2
  925. package/esm/never/never_type.js.map +0 -1
  926. package/esm/null/null_type.d.ts +0 -50
  927. package/esm/null/null_type.d.ts.map +0 -1
  928. package/esm/null/null_type.js +0 -2
  929. package/esm/null/null_type.js.map +0 -1
  930. package/esm/number/number_type.d.ts +0 -50
  931. package/esm/number/number_type.d.ts.map +0 -1
  932. package/esm/number/number_type.js +0 -2
  933. package/esm/number/number_type.js.map +0 -1
  934. package/esm/number/strict_number_type.d.ts +0 -65
  935. package/esm/number/strict_number_type.d.ts.map +0 -1
  936. package/esm/number/strict_number_type.js +0 -2
  937. package/esm/number/strict_number_type.js.map +0 -1
  938. package/esm/numeric/integer.d.ts +0 -69
  939. package/esm/numeric/integer.d.ts.map +0 -1
  940. package/esm/numeric/integer.js +0 -2
  941. package/esm/numeric/integer.js.map +0 -1
  942. package/esm/numeric/negative.d.ts +0 -70
  943. package/esm/numeric/negative.d.ts.map +0 -1
  944. package/esm/numeric/negative.js +0 -2
  945. package/esm/numeric/negative.js.map +0 -1
  946. package/esm/numeric/positive.d.ts +0 -53
  947. package/esm/numeric/positive.d.ts.map +0 -1
  948. package/esm/numeric/positive.js +0 -2
  949. package/esm/numeric/positive.js.map +0 -1
  950. package/esm/object/OptionalKeys.d.ts +0 -8
  951. package/esm/object/OptionalKeys.d.ts.map +0 -1
  952. package/esm/object/OptionalKeys.js +0 -2
  953. package/esm/object/OptionalKeys.js.map +0 -1
  954. package/esm/object/is_strict_object.d.ts +0 -10
  955. package/esm/object/is_strict_object.d.ts.map +0 -1
  956. package/esm/object/is_strict_object.js +0 -2
  957. package/esm/object/is_strict_object.js.map +0 -1
  958. package/esm/object/object_type.d.ts +0 -54
  959. package/esm/object/object_type.d.ts.map +0 -1
  960. package/esm/object/object_type.js +0 -2
  961. package/esm/object/object_type.js.map +0 -1
  962. package/esm/string/strict_string_type.d.ts +0 -61
  963. package/esm/string/strict_string_type.d.ts.map +0 -1
  964. package/esm/string/strict_string_type.js +0 -2
  965. package/esm/string/strict_string_type.js.map +0 -1
  966. package/esm/string/string_type.d.ts +0 -58
  967. package/esm/string/string_type.d.ts.map +0 -1
  968. package/esm/string/string_type.js +0 -2
  969. package/esm/string/string_type.js.map +0 -1
  970. package/esm/symbol/symbol_type.d.ts +0 -50
  971. package/esm/symbol/symbol_type.d.ts.map +0 -1
  972. package/esm/symbol/symbol_type.js +0 -2
  973. package/esm/symbol/symbol_type.js.map +0 -1
  974. package/esm/tuple/tuple_type.d.ts +0 -77
  975. package/esm/tuple/tuple_type.d.ts.map +0 -1
  976. package/esm/tuple/tuple_type.js +0 -2
  977. package/esm/tuple/tuple_type.js.map +0 -1
  978. package/esm/type_plus/cases.d.ts +0 -13
  979. package/esm/type_plus/cases.d.ts.map +0 -1
  980. package/esm/type_plus/cases.js +0 -6
  981. package/esm/type_plus/cases.js.map +0 -1
  982. package/esm/undefined/undefined_type.d.ts +0 -53
  983. package/esm/undefined/undefined_type.d.ts.map +0 -1
  984. package/esm/undefined/undefined_type.js +0 -2
  985. package/esm/undefined/undefined_type.js.map +0 -1
  986. package/esm/unknown/unknown_type.d.ts +0 -63
  987. package/esm/unknown/unknown_type.d.ts.map +0 -1
  988. package/esm/unknown/unknown_type.js +0 -2
  989. package/esm/unknown/unknown_type.js.map +0 -1
  990. package/esm/utils/NonNull.d.ts +0 -2
  991. package/esm/utils/NonNull.d.ts.map +0 -1
  992. package/esm/utils/NonNull.js +0 -2
  993. package/esm/utils/NonNull.js.map +0 -1
  994. package/esm/utils/NonUndefined.d.ts +0 -2
  995. package/esm/utils/NonUndefined.d.ts.map +0 -1
  996. package/esm/utils/NonUndefined.js +0 -2
  997. package/esm/utils/NonUndefined.js.map +0 -1
  998. package/esm/void/void_type.d.ts +0 -43
  999. package/esm/void/void_type.d.ts.map +0 -1
  1000. package/esm/void/void_type.js +0 -2
  1001. package/esm/void/void_type.js.map +0 -1
  1002. package/ts/any/any_type.ts +0 -65
  1003. package/ts/any/readme.md +0 -110
  1004. package/ts/array/array.at.ts +0 -30
  1005. package/ts/array/array.entries.ts +0 -26
  1006. package/ts/array/array.find_last.ts +0 -29
  1007. package/ts/array/array_plus.common_prop_keys.ts +0 -35
  1008. package/ts/array/array_plus.drop_match.ts +0 -19
  1009. package/ts/array/array_plus.element_match.ts +0 -61
  1010. package/ts/array/array_plus.filter.ts +0 -49
  1011. package/ts/array/array_plus.find.ts +0 -71
  1012. package/ts/array/array_plus.index_at.ts +0 -69
  1013. package/ts/array/array_plus.is_index_out_of_bound.ts +0 -22
  1014. package/ts/array/array_plus.is_readonly.ts +0 -46
  1015. package/ts/array/array_plus.split_at.ts +0 -74
  1016. package/ts/array/array_type.ts +0 -75
  1017. package/ts/array/find_first.ts +0 -71
  1018. package/ts/array/head.ts +0 -40
  1019. package/ts/array/last.ts +0 -40
  1020. package/ts/array/loose_array_type.ts +0 -69
  1021. package/ts/array/readme.md +0 -567
  1022. package/ts/array/strict_array_type.ts +0 -75
  1023. package/ts/assertion/assert_type.ts +0 -119
  1024. package/ts/bigint/bigint_type.ts +0 -57
  1025. package/ts/bigint/readme.md +0 -51
  1026. package/ts/bigint/strict_bigint_type.ts +0 -61
  1027. package/ts/boolean/boolean_type.ts +0 -61
  1028. package/ts/boolean/false_type.ts +0 -53
  1029. package/ts/boolean/readme.md +0 -85
  1030. package/ts/boolean/strict_boolean_type.ts +0 -57
  1031. package/ts/boolean/true_type.ts +0 -53
  1032. package/ts/class/AnyConstructor.ts +0 -1
  1033. package/ts/class/isConstructor.ts +0 -34
  1034. package/ts/equal/equal.ts +0 -135
  1035. package/ts/function/function_type.ts +0 -64
  1036. package/ts/function/strict_function_type.ts +0 -53
  1037. package/ts/functional/Maybe.ts +0 -22
  1038. package/ts/functional/compose.ts +0 -17
  1039. package/ts/functional/context.ts +0 -66
  1040. package/ts/index.ts +0 -127
  1041. package/ts/math/abs.ts +0 -18
  1042. package/ts/math/greater_than.ts +0 -12
  1043. package/ts/math/index.ts +0 -7
  1044. package/ts/math/max.ts +0 -13
  1045. package/ts/math/numeric_struct.ts +0 -656
  1046. package/ts/mix_types/any_or_never_type.ts +0 -38
  1047. package/ts/mix_types/box.ts +0 -62
  1048. package/ts/mix_types/merge.ts +0 -61
  1049. package/ts/mix_types/readme.md +0 -74
  1050. package/ts/never/never_type.ts +0 -70
  1051. package/ts/never/readme.md +0 -37
  1052. package/ts/nominal/brand.ts +0 -43
  1053. package/ts/nominal/flavor.ts +0 -53
  1054. package/ts/nominal/nominal_match.ts +0 -22
  1055. package/ts/null/null_type.ts +0 -53
  1056. package/ts/null/readme.md +0 -24
  1057. package/ts/number/number_plus.ts +0 -20
  1058. package/ts/number/number_type.ts +0 -53
  1059. package/ts/number/readme.md +0 -47
  1060. package/ts/number/strict_number_type.ts +0 -69
  1061. package/ts/numeric/integer.ts +0 -75
  1062. package/ts/numeric/negative.ts +0 -101
  1063. package/ts/numeric/numeric_plus.ts +0 -12
  1064. package/ts/numeric/numeric_type.ts +0 -64
  1065. package/ts/numeric/positive.ts +0 -60
  1066. package/ts/object/KeysWithDiffType.ts +0 -9
  1067. package/ts/object/OptionalKeys.ts +0 -9
  1068. package/ts/object/Required.ts +0 -9
  1069. package/ts/object/RequiredKeys.ts +0 -8
  1070. package/ts/object/forEachKey.ts +0 -9
  1071. package/ts/object/index.ts +0 -38
  1072. package/ts/object/is_strict_object.ts +0 -14
  1073. package/ts/object/left_join.ts +0 -19
  1074. package/ts/object/merge.ts +0 -122
  1075. package/ts/object/object_type.ts +0 -57
  1076. package/ts/object/omit.ts +0 -222
  1077. package/ts/object/optional_key.ts +0 -38
  1078. package/ts/object/split.ts +0 -203
  1079. package/ts/object/typeOverrideIncompatible.ts +0 -10
  1080. package/ts/predicates/CanAssign.ts +0 -71
  1081. package/ts/predicates/Extends.ts +0 -4
  1082. package/ts/predicates/index.ts +0 -7
  1083. package/ts/predicates/literal.ts +0 -35
  1084. package/ts/promise/index.ts +0 -5
  1085. package/ts/string/strict_string_type.ts +0 -65
  1086. package/ts/string/string.ts +0 -36
  1087. package/ts/string/string_plus.ts +0 -33
  1088. package/ts/string/string_type.ts +0 -61
  1089. package/ts/symbol/symbol_type.ts +0 -53
  1090. package/ts/testing/stub.ts +0 -80
  1091. package/ts/testing/test_type.ts +0 -317
  1092. package/ts/tuple/create_tuple.ts +0 -42
  1093. package/ts/tuple/readme.md +0 -282
  1094. package/ts/tuple/tuple_plus.common_prop_keys.ts +0 -47
  1095. package/ts/tuple/tuple_plus.find.ts +0 -88
  1096. package/ts/tuple/tuple_type.ts +0 -106
  1097. package/ts/type/no_infer.ts +0 -27
  1098. package/ts/type-guard/is_type.ts +0 -52
  1099. package/ts/type_plus/cases.ts +0 -14
  1100. package/ts/undefined/readme.md +0 -18
  1101. package/ts/undefined/undefined_type.ts +0 -57
  1102. package/ts/union/readme.md +0 -81
  1103. package/ts/union/union.ts +0 -37
  1104. package/ts/unknown/readme.md +0 -27
  1105. package/ts/unknown/unknown_type.ts +0 -68
  1106. package/ts/utils/NonNull.ts +0 -1
  1107. package/ts/utils/NonUndefined.ts +0 -1
  1108. package/ts/utils/index.ts +0 -63
  1109. package/ts/utils/options.ts +0 -29
  1110. package/ts/void/readme.md +0 -26
  1111. package/ts/void/void_type.ts +0 -50
  1112. /package/{ts → src}/array/array.reverse.ts +0 -0
  1113. /package/{ts → src}/array/array.some.ts +0 -0
  1114. /package/{ts → src}/array/array_plus.concat.ts +0 -0
  1115. /package/{ts → src}/array/array_plus.pad_start.ts +0 -0
  1116. /package/{ts → src}/array/array_plus.ts +0 -0
  1117. /package/{ts → src}/array/filter.ts +0 -0
  1118. /package/{ts → src}/array/intersect_of_props.ts +0 -0
  1119. /package/{ts → src}/array/literal_array.ts +0 -0
  1120. /package/{ts → src}/array/pad_start.ts +0 -0
  1121. /package/{ts → src}/array/reduce_while.ts +0 -0
  1122. /package/{ts → src}/array/reverse.ts +0 -0
  1123. /package/{ts → src}/array/union_of_props.ts +0 -0
  1124. /package/{ts → src}/array/union_of_values.ts +0 -0
  1125. /package/{ts → src}/assertion/readme.md +0 -0
  1126. /package/{ts → src}/bigint/cast.ts +0 -0
  1127. /package/{ts → src}/binary/Bit.ts +0 -0
  1128. /package/{ts → src}/binary/_binary.ts +0 -0
  1129. /package/{ts → src}/binary/index.ts +0 -0
  1130. /package/{ts → src}/class/index.ts +0 -0
  1131. /package/{ts → src}/composable_types.ts +0 -0
  1132. /package/{ts → src}/equal/identity_equal.ts +0 -0
  1133. /package/{ts → src}/equal/readme.md +0 -0
  1134. /package/{ts → src}/function/any_function.ts +0 -0
  1135. /package/{ts → src}/function/extract_function.ts +0 -0
  1136. /package/{ts → src}/function/readme.md +0 -0
  1137. /package/{ts → src}/functional/ChainFn.ts +0 -0
  1138. /package/{ts → src}/functional/index.ts +0 -0
  1139. /package/{ts → src}/json.ts +0 -0
  1140. /package/{ts → src}/math/README.md +0 -0
  1141. /package/{ts → src}/math/add.ts +0 -0
  1142. /package/{ts → src}/math/math_plus.to_negative.ts +0 -0
  1143. /package/{ts → src}/math/math_plus.ts +0 -0
  1144. /package/{ts → src}/math/multiply.ts +0 -0
  1145. /package/{ts → src}/math/subtract.ts +0 -0
  1146. /package/{ts → src}/nodejs/index.ts +0 -0
  1147. /package/{ts → src}/nodejs/isNodeError.ts +0 -0
  1148. /package/{ts → src}/nominal/constants.ts +0 -0
  1149. /package/{ts → src}/nominal/index.ts +0 -0
  1150. /package/{ts → src}/number/cast.ts +0 -0
  1151. /package/{ts → src}/number/number_array.ts +0 -0
  1152. /package/{ts → src}/numeric/cast.ts +0 -0
  1153. /package/{ts → src}/numeric/readme.md +0 -0
  1154. /package/{ts → src}/object/ANotB.ts +0 -0
  1155. /package/{ts → src}/object/ExcludePropType.ts +0 -0
  1156. /package/{ts → src}/object/IsDisjoint.ts +0 -0
  1157. /package/{ts → src}/object/IsRecord.ts +0 -0
  1158. /package/{ts → src}/object/KeyTypes.ts +0 -0
  1159. /package/{ts → src}/object/KeyofOptional.ts +0 -0
  1160. /package/{ts → src}/object/KnownKeys.ts +0 -0
  1161. /package/{ts → src}/object/Partial.ts +0 -0
  1162. /package/{ts → src}/object/RecursiveIntersect.ts +0 -0
  1163. /package/{ts → src}/object/RecursiveRequired.ts +0 -0
  1164. /package/{ts → src}/object/SpreadRecord.ts +0 -0
  1165. /package/{ts → src}/object/ValueOf.ts +0 -0
  1166. /package/{ts → src}/object/any_record.ts +0 -0
  1167. /package/{ts → src}/object/everyKey.ts +0 -0
  1168. /package/{ts → src}/object/facade.ts +0 -0
  1169. /package/{ts → src}/object/filterKey.ts +0 -0
  1170. /package/{ts → src}/object/findKey.ts +0 -0
  1171. /package/{ts → src}/object/getField.ts +0 -0
  1172. /package/{ts → src}/object/hasKey.ts +0 -0
  1173. /package/{ts → src}/object/hasProperty.ts +0 -0
  1174. /package/{ts → src}/object/mapKey.ts +0 -0
  1175. /package/{ts → src}/object/mapProperties.ts +0 -0
  1176. /package/{ts → src}/object/object_plus.ts +0 -0
  1177. /package/{ts → src}/object/pick.ts +0 -0
  1178. /package/{ts → src}/object/properties.ts +0 -0
  1179. /package/{ts → src}/object/readme.md +0 -0
  1180. /package/{ts → src}/object/record.ts +0 -0
  1181. /package/{ts → src}/object/recursive_partial.ts +0 -0
  1182. /package/{ts → src}/object/reduceKey.ts +0 -0
  1183. /package/{ts → src}/object/replaceProperty.ts +0 -0
  1184. /package/{ts → src}/object/someKey.ts +0 -0
  1185. /package/{ts → src}/predicates/If.ts +0 -0
  1186. /package/{ts → src}/predicates/IsEmptyObject.ts +0 -0
  1187. /package/{ts → src}/predicates/logical.ts +0 -0
  1188. /package/{ts → src}/primitive.ts +0 -0
  1189. /package/{ts → src}/promise/MaybePromise.ts +0 -0
  1190. /package/{ts → src}/promise/PromiseValue.ts +0 -0
  1191. /package/{ts → src}/promise/PromiseValueMerge.ts +0 -0
  1192. /package/{ts → src}/promise/isPromise.ts +0 -0
  1193. /package/{ts → src}/promise/mapSeries.ts +0 -0
  1194. /package/{ts → src}/string/readme.md +0 -0
  1195. /package/{ts → src}/symbol/readme.md +0 -0
  1196. /package/{ts → src}/testing/readme.md +0 -0
  1197. /package/{ts → src}/tuple/common_prop_keys.ts +0 -0
  1198. /package/{ts → src}/tuple/drop.ts +0 -0
  1199. /package/{ts → src}/tuple/tail.ts +0 -0
  1200. /package/{ts → src}/tuple/tuple_plus.drop_match.ts +0 -0
  1201. /package/{ts → src}/tuple/tuple_plus.filter.ts +0 -0
  1202. /package/{ts → src}/tuple/tuple_plus.pad_start.ts +0 -0
  1203. /package/{ts → src}/tuple/tuple_plus.ts +0 -0
  1204. /package/{ts → src}/type/failed.ts +0 -0
  1205. /package/{ts → src}/type/readme.md +0 -0
  1206. /package/{ts → src}/type-guard/readme.md +0 -0
  1207. /package/{ts → src}/union/union_to_intersection.ts +0 -0
  1208. /package/{ts → src}/union_keys.ts +0 -0
  1209. /package/{ts → src}/unpartial.ts +0 -0
  1210. /package/{ts → src}/utils/Widen.ts +0 -0
  1211. /package/{ts → src}/utils/as.ts +0 -0
  1212. /package/{ts → src}/utils/inspect.ts +0 -0
@@ -1,656 +0,0 @@
1
- import type { Tail } from '../tuple/tail.js'
2
- import type { PadStart } from '../tuple/tuple_plus.pad_start.js'
3
- import type { Add as NumericAdd } from './add.js'
4
- import type { ToNegative } from './math_plus.to_negative.js'
5
-
6
- /**
7
- * Internal numeric representation to perform math operations.
8
- *
9
- * NumericStruct: `[Type, DigitsStruct]`
10
- * DigitsStruct: `[Sign, Digits, Exponent]`
11
- *
12
- * It is similar to the floating point representation with some minor differences.
13
- *
14
- * @template Type Type of the value, either `number` or `bigint`.
15
- * It captures the original type of the value,
16
- * so that at the end of the operation,
17
- * the value can be adjusted accordingly.
18
- *
19
- * @template Sign Sign of the value, either `+` or `-`.
20
- *
21
- * @template Digits Digits of the value.
22
- * It is a tuple of digits,
23
- * where each digits can range from 0 to 9 during input,
24
- * and range from -10 to 89 during operation.
25
- * The max 89 comes from multiplication:
26
- *
27
- * ```
28
- * 99 * 9
29
- * => [[ 9, 9], 0]
30
- * * [ [9], 0]
31
- * => [[ 81, 81], 0]
32
- * => [[ 89, 1], 0]
33
- * => [[ 8, 9, 1], 0]
34
- * ```
35
- *
36
- * While -10 comes from subtraction:
37
- *
38
- * ```
39
- * 100 - 99 = 1
40
- * => [[ 1, 0, 0], 0]
41
- * - [[ 9, 9], 0]
42
- * => [[ 1, -9, -9], 0]
43
- * => [[ 1,-10, 1], 0] // here, as in intermediate step
44
- * => [[ 0, 0, 1], 0]
45
- * => [[1], 0]
46
- * => 1
47
- * ```
48
- *
49
- *
50
- * Unlike floating point numbers, the digits length is not limited.
51
- *
52
- * @template Exponent Exponent is the negative exponent of the number.
53
- *
54
- * ```
55
- * 1.23 = 123e^-2 = [[1, 2, 3], 2]
56
- * 0.0123 = 123e^-4 = [[1, 2, 3], 4]
57
- * ```
58
- *
59
- * There are 2 kinds of `NumericStruct`:
60
- * - Normalized: The `NumericStruct` is clean and can be converted to/from `number` or `bigint`
61
- * - Not normalized: The `DigitsStruct` within the `NumericStruct` is normalized,
62
- * but may need to convert between `number` and `bigint`.\
63
- * e.g. bigint + float => float (if possible), number + number => bigint (too big)
64
- *
65
- * During operations, the `DigitsStruct` can be not normalized,
66
- * but each operation should always normalize the `DigitsStruct` before returning.
67
- * Each operations assume the input `DigitsStruct` is normalized.
68
- *
69
- * All operations are performed in similar way:
70
- *
71
- * value -> NormalizedNumericStruct -> operation(NormalizedDigitsStruct) -> NormalizedNumericStruct -> Value
72
- *
73
- * This allows the operations to be composable.
74
- * */
75
- export type NumericStruct = ['bigint' | 'number', DigitsStruct]
76
- // These are used to reference the NumericStruct values
77
- export type TYPE = 0
78
- export type DIGITS_STRUCT = 1
79
-
80
- export namespace NumericStruct {
81
- /**
82
- * Creates a `NumericStruct` from number or bigint `N`.
83
- */
84
- export type FromNumeric<N extends number | bigint, Fail = never> = N extends number
85
- ? number extends N
86
- ? Fail
87
- : ['number', DigitsStruct.FromNumber<N>]
88
- : N extends bigint
89
- ? bigint extends N
90
- ? Fail
91
- : ['bigint', DigitsStruct.FromBigint<N>]
92
- : never
93
-
94
- /**
95
- * Converts a `NumericStruct` to a number or bigint.
96
- *
97
- * It includes the normalization of the `NumericStruct`.
98
- */
99
- export type ToNumeric<M extends NumericStruct> = DigitsStruct.ToString<
100
- M[DIGITS_STRUCT]
101
- > extends infer S extends string
102
- ? M[TYPE] extends 'bigint'
103
- ? StringToBigint<S, StringToNumber<S, `The value '${S}' cannot be represented as bigint or number`>>
104
- : StringToNumber<S, StringToBigint<S, `The value '${S}' cannot be represented as bigint or number`>>
105
- : never
106
-
107
- export type Add<A extends NumericStruct, B extends NumericStruct> = [
108
- A[TYPE],
109
- DigitsStruct.Add<A[DIGITS_STRUCT], B[DIGITS_STRUCT]>
110
- ]
111
-
112
- export type Subtract<A extends NumericStruct, B extends NumericStruct> = [
113
- A[TYPE],
114
- DigitsStruct.Subtract<A[DIGITS_STRUCT], B[DIGITS_STRUCT]>
115
- ]
116
-
117
- export type Multiply<A extends NumericStruct, B extends NumericStruct> = [
118
- A[TYPE],
119
- DigitsStruct.Multiply<A[DIGITS_STRUCT], B[DIGITS_STRUCT]>
120
- ]
121
- }
122
-
123
- // TODO: move into `NumericHelpers`
124
- type StringToBigint<S extends string, Fail> = S extends `${infer N extends bigint}` ? N : Fail
125
-
126
- // TODO: move into `NumericHelpers`
127
- export type StringToNumber<S extends string, Fail> = S extends `${infer N extends number}`
128
- ? number extends N
129
- ? Fail
130
- : N
131
- : Fail
132
-
133
- export type DigitsStruct = [Sign: '+' | '-', Digits: number[], Exponent: number]
134
- // These are used to reference the DigitsStruct values
135
- export type SIGN = 0
136
- export type DIGITS = 1
137
- export type EXPONENT = 2
138
-
139
- export namespace DigitsStruct {
140
- /**
141
- * Creates a `DigitsStruct` from number `N`.
142
- *
143
- * @template N Number to create `DigitsStruct` from.
144
- */
145
- export type FromNumber<N extends number> = `${N}` extends `-${infer R}`
146
- ? R extends `${infer W}.${infer F}`
147
- ? [DigitArray.FromString<W>, DigitArray.FromString<F>] extends [
148
- infer WA extends number[],
149
- infer FA extends number[]
150
- ]
151
- ? ['-', DigitArray.TrimLeadingZeros<[...WA, ...FA]>, FA['length']]
152
- : never
153
- : ['-', DigitArray.FromString<R>, 0]
154
- : `${N}` extends `${infer W}.${infer F}`
155
- ? [DigitArray.FromString<W>, DigitArray.FromString<F>] extends [
156
- infer WA extends number[],
157
- infer FA extends number[]
158
- ]
159
- ? ['+', DigitArray.TrimLeadingZeros<[...WA, ...FA]>, FA['length']]
160
- : never
161
- : ['+', DigitArray.FromString<`${N}`>, 0]
162
-
163
- /**
164
- * Creates a `DigitsStruct` from bigint `N`.
165
- *
166
- * @template N Number to create `DigitsStruct` from.
167
- */
168
- export type FromBigint<N extends bigint> = `${N}` extends `-${infer R}`
169
- ? ['-', DigitArray.FromString<R>, 0]
170
- : ['+', DigitArray.FromString<`${N}`>, 0]
171
-
172
- /**
173
- * Converts a `DigitsStruct` to string.
174
- *
175
- * @template D A normalized `DigitsStruct`.
176
- */
177
- export type ToString<D extends DigitsStruct> = (
178
- PadStart<D[DIGITS], D[EXPONENT], 0> extends infer Padded extends number[]
179
- ? Padded['length'] extends D[EXPONENT]
180
- ? DigitArray.ToString<[0, '.', ...DigitArray.TrimTrailingZeros<Padded>]>
181
- : SplitFloat<Padded, D[EXPONENT]> extends [infer W extends number[], infer F extends number[]]
182
- ? F extends []
183
- ? DigitArray.ToString<W>
184
- : DigitArray.ToString<[...W, '.', ...DigitArray.TrimTrailingZeros<F>]>
185
- : never
186
- : never
187
- ) extends infer R
188
- ? R extends '0'
189
- ? R
190
- : R extends string
191
- ? D[SIGN] extends '-'
192
- ? `-${R}`
193
- : R
194
- : never
195
- : never
196
-
197
- /**
198
- * Splits DigitArray into the whole number and the fractional part.
199
- *
200
- * @note cannot use `ArrayPlus.SplitAt` as it causes infinite loop.
201
- */
202
- type SplitFloat<A extends number[], I extends number, F extends number[] = []> = I extends 0
203
- ? [A, []]
204
- : F['length'] extends I
205
- ? [A, F]
206
- : A extends [...infer H extends number[], infer T extends number]
207
- ? SplitFloat<H, I, [T, ...F]>
208
- : never
209
-
210
- /**
211
- * Normalizes a `DigitsStruct`.
212
- *
213
- * The normalization two two things:
214
- *
215
- * - if the first digit is negative, it will flip the sign.
216
- * - carry digits if the digit is negative or greater than 9.
217
- */
218
- export type Normalize<
219
- N extends DigitsStruct,
220
- R extends DigitsStruct = ['+', [], 0]
221
- > = `${N[DIGITS][0]}` extends `-${number}`
222
- ? Normalize<FlipSign<N>, R>
223
- : [N[SIGN], DigitArray.CarryDigits<N[DIGITS]>, N[EXPONENT]]
224
-
225
- type FlipSign<
226
- D extends DigitsStruct,
227
- I extends number[] = D[DIGITS],
228
- R extends number[] = []
229
- > = I extends []
230
- ? D[SIGN] extends '-'
231
- ? ['+', R, D[EXPONENT]]
232
- : ['-', R, D[EXPONENT]]
233
- : I extends [infer H extends number, ...infer T extends number[]]
234
- ? FlipSign<D, T, [...R, Digit.FlipSign<H>]>
235
- : never
236
-
237
- /**
238
- * Add `A` and `B`.
239
- *
240
- * @template A A normalized `DigitsStruct`.
241
- * @template B B normalized `DigitsStruct`.
242
- */
243
- export type Add<A extends DigitsStruct, B extends DigitsStruct> = Balance<A, B> extends [
244
- infer BA extends DigitsStruct,
245
- infer BB extends DigitsStruct
246
- ]
247
- ? [BA[SIGN], BB[SIGN]] extends ['+', '+']
248
- ? Normalize<['+', DigitArray.Add<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
249
- : [BA[SIGN], BB[SIGN]] extends ['+', '-']
250
- ? Normalize<['+', DigitArray.Subtract<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
251
- : [BA[SIGN], BB[SIGN]] extends ['-', '+']
252
- ? Normalize<['+', DigitArray.Subtract<BB[DIGITS], BA[DIGITS]>, BB[EXPONENT]]>
253
- : [BA[SIGN], BB[SIGN]] extends ['-', '-']
254
- ? Normalize<['-', DigitArray.Add<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
255
- : never
256
- : never
257
-
258
- export type Subtract<A extends DigitsStruct, B extends DigitsStruct> = Balance<A, B> extends [
259
- infer BA extends DigitsStruct,
260
- infer BB extends DigitsStruct
261
- ]
262
- ? [BA[SIGN], BB[SIGN]] extends ['+', '+']
263
- ? Normalize<['+', DigitArray.Subtract<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
264
- : [BA[SIGN], BB[SIGN]] extends ['+', '-']
265
- ? Normalize<['+', DigitArray.Add<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
266
- : [BA[SIGN], BB[SIGN]] extends ['-', '+']
267
- ? Normalize<['-', DigitArray.Add<BB[DIGITS], BA[DIGITS]>, BA[EXPONENT]]>
268
- : [BA[SIGN], BB[SIGN]] extends ['-', '-']
269
- ? Normalize<['-', DigitArray.Subtract<BA[DIGITS], BB[DIGITS]>, BA[EXPONENT]]>
270
- : never
271
- : never
272
-
273
- export type Multiply<A extends DigitsStruct, B extends DigitsStruct> = NumericAdd<
274
- A[EXPONENT],
275
- B[EXPONENT]
276
- > extends infer Exp extends number
277
- ? [A[SIGN], B[SIGN]] extends ['+', '+']
278
- ? Normalize<['+', DigitArray.Multiply<A[DIGITS], B[DIGITS]>, Exp]>
279
- : [A[SIGN], B[SIGN]] extends ['+', '-']
280
- ? Normalize<['-', DigitArray.Multiply<A[DIGITS], B[DIGITS]>, Exp]>
281
- : [A[SIGN], B[SIGN]] extends ['-', '+']
282
- ? Normalize<['-', DigitArray.Multiply<B[DIGITS], A[DIGITS]>, Exp]>
283
- : [A[SIGN], B[SIGN]] extends ['-', '-']
284
- ? Normalize<['+', DigitArray.Multiply<A[DIGITS], B[DIGITS]>, Exp]>
285
- : never
286
- : never
287
-
288
- /**
289
- * Balance the two structs for add/subtract.
290
- */
291
- export type Balance<A extends DigitsStruct, B extends DigitsStruct> = GetBalancePadding<
292
- A[EXPONENT],
293
- B[EXPONENT]
294
- > extends [infer Pads extends number[], infer Longer]
295
- ? Longer extends 'A'
296
- ? [A, [B[SIGN], DigitArray.TrimLeadingZeros<[...B[DIGITS], ...Pads]>, A[EXPONENT]]]
297
- : [[A[SIGN], DigitArray.TrimLeadingZeros<[...A[DIGITS], ...Pads]>, B[EXPONENT]], B]
298
- : never
299
-
300
- type GetBalancePadding<
301
- A extends number,
302
- B extends number,
303
- C extends number[] = [],
304
- R extends number[] = []
305
- > = A extends B
306
- ? [[], 'A']
307
- : R extends []
308
- ? // have not reach min yet
309
- C['length'] extends A
310
- ? GetBalancePadding<A, B, [0, ...C], [0]>
311
- : C['length'] extends B
312
- ? GetBalancePadding<A, B, [0, ...C], [0, ...R]>
313
- : GetBalancePadding<A, B, [0, ...C], []>
314
- : C['length'] extends A
315
- ? [R, 'A']
316
- : C['length'] extends B
317
- ? [R, 'B']
318
- : GetBalancePadding<A, B, [0, ...C], [0, ...R]>
319
-
320
- /**
321
- * This is used to align the `NumberStruct` during `Add/Subtract`.
322
- */
323
- export type GetMinPadEnd<
324
- A extends number,
325
- B extends number,
326
- R extends number[] = []
327
- > = R['length'] extends A ? [R, 'B'] : R['length'] extends B ? [R, 'A'] : GetMinPadEnd<A, B, [0, ...R]>
328
- }
329
-
330
- export namespace DigitArray {
331
- export type FromString<S extends string> = S extends `1${infer L}`
332
- ? [1, ...FromString<L>]
333
- : S extends `2${infer L}`
334
- ? [2, ...FromString<L>]
335
- : S extends `3${infer L}`
336
- ? [3, ...FromString<L>]
337
- : S extends `4${infer L}`
338
- ? [4, ...FromString<L>]
339
- : S extends `5${infer L}`
340
- ? [5, ...FromString<L>]
341
- : S extends `6${infer L}`
342
- ? [6, ...FromString<L>]
343
- : S extends `7${infer L}`
344
- ? [7, ...FromString<L>]
345
- : S extends `8${infer L}`
346
- ? [8, ...FromString<L>]
347
- : S extends `9${infer L}`
348
- ? [9, ...FromString<L>]
349
- : S extends `0${infer L}`
350
- ? [0, ...FromString<L>]
351
- : S extends `-1${infer L}`
352
- ? [-1, ...FromString<L>]
353
- : S extends `-2${infer L}`
354
- ? [-2, ...FromString<L>]
355
- : S extends `-3${infer L}`
356
- ? [-3, ...FromString<L>]
357
- : S extends `-4${infer L}`
358
- ? [-4, ...FromString<L>]
359
- : S extends `-5${infer L}`
360
- ? [-5, ...FromString<L>]
361
- : S extends `-6${infer L}`
362
- ? [-6, ...FromString<L>]
363
- : S extends `-7${infer L}`
364
- ? [-7, ...FromString<L>]
365
- : S extends `-8${infer L}`
366
- ? [-8, ...FromString<L>]
367
- : S extends `-9${infer L}`
368
- ? [-9, ...FromString<L>]
369
- : S extends `-0${infer L}`
370
- ? [-0, ...FromString<L>]
371
- : []
372
-
373
- export type ToString<A extends Array<number | string>> = number extends A['length']
374
- ? ''
375
- : A['length'] extends 0
376
- ? ''
377
- : `${A[0]}${ToString<Tail<A>>}`
378
-
379
- /**
380
- * [0, 0, -1] => [-1]
381
- *
382
- * This is used in various places so that there will be less computation,
383
- * and the sign bit can be handled properly.
384
- */
385
- export type TrimLeadingZeros<T extends number[]> = T extends [0]
386
- ? T
387
- : T extends [0, ...infer Tail extends number[]]
388
- ? TrimLeadingZeros<Tail>
389
- : T
390
- export type TrimTrailingZeros<T extends number[]> = T extends [0]
391
- ? T
392
- : T extends [...infer Tail extends number[], 0]
393
- ? TrimTrailingZeros<Tail>
394
- : T
395
-
396
- export type Add<A extends number[], B extends number[], R extends number[] = []> = A extends []
397
- ? B extends []
398
- ? R
399
- : B extends [...infer BH extends number[], infer BL extends number]
400
- ? Add<[], BH, [BL, ...R]>
401
- : never
402
- : B extends []
403
- ? A extends [...infer AH extends number[], infer AL extends number]
404
- ? Add<AH, [], [AL, ...R]>
405
- : never
406
- : [A, B] extends [
407
- [...infer AH extends number[], infer AL extends number],
408
- [...infer BH extends number[], infer BL extends number]
409
- ]
410
- ? Add<AH, BH, [Digit.Add<AL, BL>, ...R]>
411
- : never
412
-
413
- export type Subtract<A extends number[], B extends number[], R extends number[] = []> = A extends []
414
- ? B extends []
415
- ? TrimLeadingZeros<R>
416
- : B extends [...infer BH extends number[], infer BL extends number]
417
- ? Subtract<[], BH, [ToNegative<BL>, ...R]>
418
- : never
419
- : B extends []
420
- ? A extends [...infer AH extends number[], infer AL extends number]
421
- ? Subtract<AH, [], [AL, ...R]>
422
- : never
423
- : [A, B] extends [
424
- [...infer AH extends number[], infer AL extends number],
425
- [...infer BH extends number[], infer BL extends number]
426
- ]
427
- ? Subtract<AH, BH, [Digit.Subtract<AL, BL>, ...R]>
428
- : never
429
-
430
- export type Multiply<A extends number[], B extends number[], R extends number[][] = []> = B extends []
431
- ? RecursiveAdd<R>
432
- : B extends [infer Head extends number, ...infer Tail extends number[]]
433
- ? Multiply<A, Tail, [...R, CarryDigits<MultiplyArray<A, Head, Zeros<Tail['length']>>>]>
434
- : never
435
-
436
- type Zeros<N extends number, R extends number[] = []> = R['length'] extends N ? R : Zeros<N, [0, ...R]>
437
-
438
- type MultiplyArray<
439
- A extends number[],
440
- B extends number,
441
- Pad extends number[],
442
- R extends number[] = []
443
- > = B extends 0
444
- ? [0]
445
- : B extends 1
446
- ? [...A, ...Pad]
447
- : A extends []
448
- ? [...R, ...Pad]
449
- : A extends [infer H extends number, ...infer T extends number[]]
450
- ? MultiplyArray<T, B, Pad, [...R, Digit.Multiply<H, B>]>
451
- : never
452
-
453
- /**
454
- * Recursively add digit arrays.
455
- *
456
- * This is used in multiplication.
457
- */
458
- type RecursiveAdd<E extends number[][], R extends number[] = []> = E extends []
459
- ? R
460
- : E extends [infer H extends number[], ...infer T extends number[][]]
461
- ? RecursiveAdd<T, CarryDigits<Add<R, H>>>
462
- : never
463
-
464
- export type CarryDigits<N extends number[], R extends number[] = []> = N extends []
465
- ? TrimLeadingZeros<R>
466
- : N extends [infer Tail extends number]
467
- ? `${Tail}` extends `${infer T1 extends number}${infer T2 extends number}`
468
- ? CarryDigits<[], [T1, T2, ...R]>
469
- : `${Tail}` extends `-${infer T1 extends number}${infer T2 extends number}`
470
- ? `-${T1}` extends `${infer NT extends number}`
471
- ? CarryDigits<[], [NT, T2, ...R]>
472
- : never
473
- : CarryDigits<[], [Tail, ...R]>
474
- : N extends [infer Head extends number, infer Tail extends number]
475
- ? `${Tail}` extends `${infer T1 extends number}${infer T2 extends number}`
476
- ? CarryDigits<[Digit.Add<Head, T1>], [T2, ...R]>
477
- : `${Tail}` extends `-${infer T1 extends number}${infer T2 extends number}`
478
- ? `-${T1}` extends `${infer NT extends number}`
479
- ? CarryDigits<[Digit.Add<Head, NT>], [T2, ...R]>
480
- : never
481
- : `${Tail}` extends `-${number}`
482
- ? CarryDigits<[Digit.Add<Head, -1>], [Digit.Plus10[Tail], ...R]>
483
- : CarryDigits<[Head], [Tail, ...R]>
484
- : N extends [...infer Heads extends number[], infer Head extends number, infer Tail extends number]
485
- ? `${Tail}` extends `${infer T1 extends number}${infer T2 extends number}`
486
- ? CarryDigits<[...Heads, Digit.Add<Head, T1>], [T2, ...R]>
487
- : `${Tail}` extends `-${infer T1 extends number}${infer T2 extends number}`
488
- ? `-${T1}` extends `${infer NT extends number}`
489
- ? CarryDigits<[...Heads, Digit.Add<Head, NT>], [T2, ...R]>
490
- : never
491
- : `${Tail}` extends `-${number}`
492
- ? CarryDigits<[...Heads, Digit.Add<Head, -1>], [Digit.Plus10[Tail], ...R]>
493
- : CarryDigits<[...Heads, Head], [Tail, ...R]>
494
- : never
495
- }
496
-
497
- export namespace Digit {
498
- /**
499
- * Adds two `Digit`.
500
- *
501
- * add: A: 0 - 9, B: 0 - 9
502
- * normalize: [81, 81] -> [81 + 8, 1]
503
- */
504
- export type Add<A extends number, B extends number> = `${A}` extends `-${infer AD extends number}`
505
- ? `${B}` extends `-${infer BD extends number}`
506
- ? ToNegative<PositiveEntryAdd<AD, BD>>
507
- : Subtract<B, AD>
508
- : `${B}` extends `-${infer BD extends number}`
509
- ? Subtract<A, BD>
510
- : PositiveEntryAdd<A, B>
511
-
512
- export type FlipSign<T extends number> = T extends 0
513
- ? 0
514
- : `${T}` extends `-${infer R extends number}`
515
- ? R
516
- : `-${T}` extends `${infer R extends number}`
517
- ? R
518
- : never
519
-
520
- type PositiveEntryAdd<A extends number, B extends number> = [
521
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
522
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
523
- [2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
524
- [3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
525
- [4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
526
- [5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
527
- [6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
528
- [7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
529
- [8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
530
- [9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
531
- [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
532
- [11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
533
- [12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
534
- [13, 14, 15, 16, 17, 18, 19, 20, 21, 22],
535
- [14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
536
- [15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
537
- [16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
538
- [17, 18, 19, 20, 21, 22, 23, 24, 25, 26],
539
- [18, 19, 20, 21, 22, 23, 24, 25, 26, 27],
540
- [19, 20, 21, 22, 23, 24, 25, 26, 27, 28],
541
- [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
542
- [21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
543
- [22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
544
- [23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
545
- [24, 25, 26, 27, 28, 29, 30, 31, 32, 33],
546
- [25, 26, 27, 28, 29, 30, 31, 32, 33, 34],
547
- [26, 27, 28, 29, 30, 31, 32, 33, 34, 35],
548
- [27, 28, 29, 30, 31, 32, 33, 34, 35, 36],
549
- [28, 29, 30, 31, 32, 33, 34, 35, 36, 37],
550
- [29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
551
- [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
552
- [31, 32, 33, 34, 35, 36, 37, 38, 39, 40],
553
- [32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
554
- [33, 34, 35, 36, 37, 38, 39, 40, 41, 42],
555
- [34, 35, 36, 37, 38, 39, 40, 41, 42, 43],
556
- [35, 36, 37, 38, 39, 40, 41, 42, 43, 44],
557
- [36, 37, 38, 39, 40, 41, 42, 43, 44, 45],
558
- [37, 38, 39, 40, 41, 42, 43, 44, 45, 46],
559
- [38, 39, 40, 41, 42, 43, 44, 45, 46, 47],
560
- [39, 40, 41, 42, 43, 44, 45, 46, 47, 48],
561
- [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
562
- [41, 42, 43, 44, 45, 46, 47, 48, 49, 50],
563
- [42, 43, 44, 45, 46, 47, 48, 49, 50, 51],
564
- [43, 44, 45, 46, 47, 48, 49, 50, 51, 52],
565
- [44, 45, 46, 47, 48, 49, 50, 51, 52, 53],
566
- [45, 46, 47, 48, 49, 50, 51, 52, 53, 54],
567
- [46, 47, 48, 49, 50, 51, 52, 53, 54, 55],
568
- [47, 48, 49, 50, 51, 52, 53, 54, 55, 56],
569
- [48, 49, 50, 51, 52, 53, 54, 55, 56, 57],
570
- [49, 50, 51, 52, 53, 54, 55, 56, 57, 58],
571
- [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
572
- [51, 52, 53, 54, 55, 56, 57, 58, 59, 60],
573
- [52, 53, 54, 55, 56, 57, 58, 59, 60, 61],
574
- [53, 54, 55, 56, 57, 58, 59, 60, 61, 62],
575
- [54, 55, 56, 57, 58, 59, 60, 61, 62, 63],
576
- [55, 56, 57, 58, 59, 60, 61, 62, 63, 64],
577
- [56, 57, 58, 59, 60, 61, 62, 63, 64, 65],
578
- [57, 58, 59, 60, 61, 62, 63, 64, 65, 66],
579
- [58, 59, 60, 61, 62, 63, 64, 65, 66, 67],
580
- [59, 60, 61, 62, 63, 64, 65, 66, 67, 68],
581
- [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
582
- [61, 62, 63, 64, 65, 66, 67, 68, 69, 70],
583
- [62, 63, 64, 65, 66, 67, 68, 69, 70, 71],
584
- [63, 64, 65, 66, 67, 68, 69, 70, 71, 72],
585
- [64, 65, 66, 67, 68, 69, 70, 71, 72, 73],
586
- [65, 66, 67, 68, 69, 70, 71, 72, 73, 74],
587
- [66, 67, 68, 69, 70, 71, 72, 73, 74, 75],
588
- [67, 68, 69, 70, 71, 72, 73, 74, 75, 76],
589
- [68, 69, 70, 71, 72, 73, 74, 75, 76, 77],
590
- [69, 70, 71, 72, 73, 74, 75, 76, 77, 78],
591
- [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
592
- [71, 72, 73, 74, 75, 76, 77, 78, 79, 80],
593
- [72, 73, 74, 75, 76, 77, 78, 79, 80, 81],
594
- [73, 74, 75, 76, 77, 78, 79, 80, 81, 82],
595
- [74, 75, 76, 77, 78, 79, 80, 81, 82, 83],
596
- [75, 76, 77, 78, 79, 80, 81, 82, 83, 84],
597
- [76, 77, 78, 79, 80, 81, 82, 83, 84, 85],
598
- [77, 78, 79, 80, 81, 82, 83, 84, 85, 86],
599
- [78, 79, 80, 81, 82, 83, 84, 85, 86, 87],
600
- [79, 80, 81, 82, 83, 84, 85, 86, 87, 88],
601
- [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
602
- [81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
603
- ][A][B]
604
-
605
- /**
606
- * Subtract two positive numbers.
607
- * The number range from 0 to 81.
608
- */
609
- export type Subtract<A extends number, B extends number> = [`${A}`, `${B}`] extends [
610
- `${number}${infer A2 extends number}`,
611
- `${number}${infer B2 extends number}`
612
- ]
613
- ? Subtract<A2, B2>
614
- : `${A}` extends `${number}${infer A2 extends number}`
615
- ? Subtract<A2, B>
616
- : `${B}` extends `${number}${infer B2 extends number}`
617
- ? Subtract<A, B2>
618
- : SingleDigitSubtract<A, B>
619
-
620
- export type SingleDigitSubtract<A extends number, B extends number> = [
621
- [0, -1, -2, -3, -4, -5, -6, -7, -8, -9],
622
- [1, 0, -1, -2, -3, -4, -5, -6, -7, -8],
623
- [2, 1, 0, -1, -2, -3, -4, -5, -6, -7],
624
- [3, 2, 1, 0, -1, -2, -3, -4, -5, -6],
625
- [4, 3, 2, 1, 0, -1, -2, -3, -4, -5],
626
- [5, 4, 3, 2, 1, 0, -1, -2, -3, -4],
627
- [6, 5, 4, 3, 2, 1, 0, -1, -2, -3],
628
- [7, 6, 5, 4, 3, 2, 1, 0, -1, -2],
629
- [8, 7, 6, 5, 4, 3, 2, 1, 0, -1],
630
- [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
631
- ][A][B]
632
-
633
- export type Plus10 = { [k in number]: number } & {
634
- '-1': 9,
635
- '-2': 8,
636
- '-3': 7,
637
- '-4': 6,
638
- '-5': 5,
639
- '-6': 4,
640
- '-7': 3,
641
- '-8': 2,
642
- '-9': 1
643
- }
644
- export type Multiply<A extends number, B extends number> = [
645
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
646
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
647
- [0, 2, 4, 6, 8, 10, 12, 14, 16, 18],
648
- [0, 3, 6, 9, 12, 15, 18, 21, 24, 27],
649
- [0, 4, 8, 12, 16, 20, 24, 28, 32, 36],
650
- [0, 5, 10, 15, 20, 25, 30, 35, 40, 45],
651
- [0, 6, 12, 18, 24, 30, 36, 42, 48, 54],
652
- [0, 7, 14, 21, 28, 35, 42, 49, 56, 63],
653
- [0, 8, 16, 24, 32, 40, 48, 56, 64, 72],
654
- [0, 9, 18, 27, 36, 45, 54, 63, 72, 81]
655
- ][A][B]
656
- }
@@ -1,38 +0,0 @@
1
- import type { AnyType } from '../any/any_type.js'
2
- import type { NeverType } from '../never/never_type.js'
3
-
4
- /**
5
- * Parse `T` to ensure it is either exactly `any` or exactly `never`.
6
- *
7
- * 🌪️ *filter*
8
- * 🩳 *shortcut*
9
- *
10
- * @example
11
- * ```ts
12
- * type R = AnyOrNeverType<any> // any
13
- * type R = AnyOrNeverType<never> // never
14
- * type R = AnyOrNeverType<never, 1, 2> // 1
15
- *
16
- * type R = AnyOrNeverType<unknown> // never
17
- * type R = AnyOrNeverType<unknown, 1, 2> // 2
18
- * type R = AnyOrNeverType<string | boolean> // never
19
- * ```
20
- */
21
- export type AnyOrNeverType<T, Then = T, Else = never> = NeverType<T, Then, AnyType<T, Then, Else>>
22
-
23
- /**
24
- * Validate if `T` is either exactly `any` or exactly `never`.
25
- *
26
- * 🎭 *validate*
27
- * 🩳 *shortcut*
28
- *
29
- * @example
30
- * ```ts
31
- * type R = IsAnyOrNever<any> // true
32
- * type R = IsAnyOrNever<never> // true
33
- *
34
- * type R = IsAnyOrNever<1> // false
35
- * type R = IsAnyOrNever<unknown> // false
36
- * ```
37
- */
38
- export type IsAnyOrNever<T, Then = true, Else = false> = NeverType<T, Then, AnyType<T, Then, Else>>