type-plus 6.8.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +1053 -356
  2. package/cjs/array/{array.d.ts → array.at.d.ts} +4 -14
  3. package/cjs/array/array.at.d.ts.map +1 -0
  4. package/cjs/array/{pad_left.js → array.at.js} +1 -1
  5. package/cjs/array/array.at.js.map +1 -0
  6. package/cjs/array/array.concat.d.ts +13 -0
  7. package/cjs/array/array.concat.d.ts.map +1 -0
  8. package/cjs/array/array.concat.js +3 -0
  9. package/cjs/array/array.concat.js.map +1 -0
  10. package/cjs/array/array.entries.d.ts +17 -0
  11. package/cjs/array/array.entries.d.ts.map +1 -0
  12. package/cjs/array/array.entries.js +3 -0
  13. package/cjs/array/array.entries.js.map +1 -0
  14. package/cjs/array/array.find.d.ts +21 -0
  15. package/cjs/array/array.find.d.ts.map +1 -0
  16. package/cjs/array/{find_first.js → array.find.js} +1 -1
  17. package/cjs/array/array.find.js.map +1 -0
  18. package/cjs/array/array.find_last.d.ts +17 -0
  19. package/cjs/array/array.find_last.d.ts.map +1 -0
  20. package/cjs/array/array.find_last.js +3 -0
  21. package/cjs/array/array.find_last.js.map +1 -0
  22. package/cjs/array/array.reverse.d.ts +2 -0
  23. package/cjs/array/array.reverse.d.ts.map +1 -0
  24. package/cjs/array/array.reverse.js +3 -0
  25. package/cjs/array/array.reverse.js.map +1 -0
  26. package/cjs/array/array.some.d.ts +29 -0
  27. package/cjs/array/array.some.d.ts.map +1 -0
  28. package/cjs/array/array.some.js +3 -0
  29. package/cjs/array/array.some.js.map +1 -0
  30. package/cjs/array/array_index.d.ts +8 -8
  31. package/cjs/array/array_index.d.ts.map +1 -1
  32. package/cjs/array/array_plus.d.ts +9 -1
  33. package/cjs/array/array_plus.d.ts.map +1 -1
  34. package/cjs/array/array_plus.split_at.d.ts +30 -0
  35. package/cjs/array/array_plus.split_at.d.ts.map +1 -0
  36. package/cjs/array/array_plus.split_at.js +3 -0
  37. package/cjs/array/array_plus.split_at.js.map +1 -0
  38. package/cjs/array/drop.d.ts +2 -2
  39. package/cjs/array/drop.d.ts.map +1 -1
  40. package/cjs/array/index.d.ts +4 -5
  41. package/cjs/array/index.d.ts.map +1 -1
  42. package/cjs/array/index.js +4 -5
  43. package/cjs/array/index.js.map +1 -1
  44. package/cjs/array/pad_start.d.ts +32 -0
  45. package/cjs/array/pad_start.d.ts.map +1 -0
  46. package/cjs/array/{find_last.js → pad_start.js} +1 -1
  47. package/cjs/array/pad_start.js.map +1 -0
  48. package/cjs/assertion/assert_type.d.ts +3 -0
  49. package/cjs/assertion/assert_type.d.ts.map +1 -1
  50. package/cjs/assertion/assert_type.js +3 -0
  51. package/cjs/assertion/assert_type.js.map +1 -1
  52. package/cjs/bigint/cast.d.ts +10 -0
  53. package/cjs/bigint/cast.d.ts.map +1 -0
  54. package/cjs/{array/some.js → bigint/cast.js} +1 -1
  55. package/cjs/bigint/cast.js.map +1 -0
  56. package/cjs/equal/equal.d.ts +51 -3
  57. package/cjs/equal/equal.d.ts.map +1 -1
  58. package/cjs/functional/Maybe.d.ts +2 -2
  59. package/cjs/functional/Maybe.d.ts.map +1 -1
  60. package/cjs/index.d.ts +16 -7
  61. package/cjs/index.d.ts.map +1 -1
  62. package/cjs/index.js +6 -1
  63. package/cjs/index.js.map +1 -1
  64. package/cjs/math/abs.d.ts +6 -0
  65. package/cjs/math/abs.d.ts.map +1 -0
  66. package/cjs/math/{Add.js → abs.js} +1 -1
  67. package/cjs/math/abs.js.map +1 -0
  68. package/cjs/math/add.d.ts +7 -0
  69. package/cjs/math/add.d.ts.map +1 -0
  70. package/cjs/math/{Max.js → add.js} +1 -1
  71. package/cjs/math/add.js.map +1 -0
  72. package/cjs/math/greater_than.d.ts +4 -0
  73. package/cjs/math/greater_than.d.ts.map +1 -0
  74. package/cjs/math/greater_than.js +3 -0
  75. package/cjs/math/greater_than.js.map +1 -0
  76. package/cjs/math/index.d.ts +6 -6
  77. package/cjs/math/index.d.ts.map +1 -1
  78. package/cjs/math/math_plus.d.ts +5 -0
  79. package/cjs/math/math_plus.d.ts.map +1 -0
  80. package/cjs/math/math_plus.js +3 -0
  81. package/cjs/math/math_plus.js.map +1 -0
  82. package/cjs/math/math_plus.to_negative.d.ts +13 -0
  83. package/cjs/math/math_plus.to_negative.d.ts.map +1 -0
  84. package/cjs/math/math_plus.to_negative.js +3 -0
  85. package/cjs/math/math_plus.to_negative.js.map +1 -0
  86. package/cjs/math/max.d.ts +4 -0
  87. package/cjs/math/max.d.ts.map +1 -0
  88. package/cjs/math/{Abs.js → max.js} +1 -1
  89. package/cjs/math/max.js.map +1 -0
  90. package/cjs/math/multiply.d.ts +6 -0
  91. package/cjs/math/multiply.d.ts.map +1 -0
  92. package/cjs/{array/array.js → math/multiply.js} +1 -1
  93. package/cjs/math/multiply.js.map +1 -0
  94. package/cjs/math/numeric_struct.d.ts +1469 -0
  95. package/cjs/math/numeric_struct.d.ts.map +1 -0
  96. package/cjs/math/numeric_struct.js +3 -0
  97. package/cjs/math/numeric_struct.js.map +1 -0
  98. package/cjs/math/subtract.d.ts +7 -0
  99. package/cjs/math/subtract.d.ts.map +1 -0
  100. package/cjs/math/subtract.js +3 -0
  101. package/cjs/math/subtract.js.map +1 -0
  102. package/cjs/nominal/brand.js +2 -2
  103. package/cjs/nominal/brand.js.map +1 -1
  104. package/cjs/nominal/flavor.js +2 -2
  105. package/cjs/nominal/flavor.js.map +1 -1
  106. package/cjs/number/cast.d.ts +10 -0
  107. package/cjs/number/cast.d.ts.map +1 -0
  108. package/cjs/number/cast.js +3 -0
  109. package/cjs/number/cast.js.map +1 -0
  110. package/cjs/number/number_array.d.ts +0 -2
  111. package/cjs/number/number_array.d.ts.map +1 -1
  112. package/cjs/number/number_array.js +14 -1
  113. package/cjs/number/number_array.js.map +1 -1
  114. package/cjs/number/number_plus.d.ts +4 -5
  115. package/cjs/number/number_plus.d.ts.map +1 -1
  116. package/cjs/number/strict_number_type.d.ts +12 -0
  117. package/cjs/number/strict_number_type.d.ts.map +1 -1
  118. package/cjs/numeric/cast.d.ts +27 -0
  119. package/cjs/numeric/cast.d.ts.map +1 -0
  120. package/cjs/numeric/cast.js +3 -0
  121. package/cjs/numeric/cast.js.map +1 -0
  122. package/{esm/number → cjs/numeric}/integer.d.ts +2 -0
  123. package/cjs/numeric/integer.d.ts.map +1 -0
  124. package/cjs/{number → numeric}/integer.js.map +1 -1
  125. package/cjs/numeric/negative.d.ts.map +1 -0
  126. package/cjs/{number → numeric}/negative.js.map +1 -1
  127. package/cjs/numeric/numeric_plus.d.ts +5 -0
  128. package/cjs/numeric/numeric_plus.d.ts.map +1 -0
  129. package/cjs/numeric/numeric_plus.js +3 -0
  130. package/cjs/numeric/numeric_plus.js.map +1 -0
  131. package/cjs/numeric/numeric_type.d.ts.map +1 -0
  132. package/cjs/{number → numeric}/numeric_type.js.map +1 -1
  133. package/cjs/{number → numeric}/positive.d.ts +2 -2
  134. package/cjs/numeric/positive.d.ts.map +1 -0
  135. package/cjs/{number → numeric}/positive.js.map +1 -1
  136. package/cjs/object/ANotB.d.ts +3 -3
  137. package/cjs/object/ANotB.d.ts.map +1 -1
  138. package/cjs/object/Partial.d.ts +6 -0
  139. package/cjs/object/Partial.d.ts.map +1 -1
  140. package/cjs/object/Required.d.ts +4 -0
  141. package/cjs/object/Required.d.ts.map +1 -1
  142. package/cjs/object/index.d.ts +1 -1
  143. package/cjs/object/index.d.ts.map +1 -1
  144. package/cjs/object/object_type.d.ts +1 -1
  145. package/cjs/object/split.d.ts +3 -1
  146. package/cjs/object/split.d.ts.map +1 -1
  147. package/cjs/object/split.js.map +1 -1
  148. package/cjs/predicates/CanAssign.d.ts +35 -0
  149. package/cjs/predicates/CanAssign.d.ts.map +1 -1
  150. package/cjs/predicates/CanAssign.js.map +1 -1
  151. package/cjs/predicates/Extends.d.ts +2 -2
  152. package/cjs/predicates/Extends.d.ts.map +1 -1
  153. package/cjs/predicates/index.d.ts +0 -1
  154. package/cjs/predicates/index.d.ts.map +1 -1
  155. package/cjs/predicates/index.js +0 -1
  156. package/cjs/predicates/index.js.map +1 -1
  157. package/cjs/testing/stub.d.ts.map +1 -1
  158. package/cjs/testing/stub.js +4 -3
  159. package/cjs/testing/stub.js.map +1 -1
  160. package/cjs/testing/test_type.d.ts +125 -50
  161. package/cjs/testing/test_type.d.ts.map +1 -1
  162. package/cjs/testing/test_type.js +4 -141
  163. package/cjs/testing/test_type.js.map +1 -1
  164. package/cjs/tuple/create_tuple.d.ts +28 -0
  165. package/cjs/tuple/create_tuple.d.ts.map +1 -0
  166. package/cjs/{array → tuple}/create_tuple.js.map +1 -1
  167. package/cjs/tuple/tuple_plus.d.ts +2 -0
  168. package/cjs/tuple/tuple_plus.d.ts.map +1 -0
  169. package/cjs/tuple/tuple_plus.js +18 -0
  170. package/cjs/tuple/tuple_plus.js.map +1 -0
  171. package/cjs/tuple/tuple_plus.pad_start.d.ts +22 -0
  172. package/cjs/tuple/tuple_plus.pad_start.d.ts.map +1 -0
  173. package/cjs/tuple/tuple_plus.pad_start.js +3 -0
  174. package/cjs/tuple/tuple_plus.pad_start.js.map +1 -0
  175. package/cjs/{predicates/isType.d.ts → type-guard/is_type.d.ts} +5 -3
  176. package/cjs/type-guard/is_type.d.ts.map +1 -0
  177. package/cjs/{predicates/isType.js → type-guard/is_type.js} +8 -2
  178. package/cjs/type-guard/is_type.js.map +1 -0
  179. package/esm/array/{array.d.ts → array.at.d.ts} +4 -14
  180. package/esm/array/array.at.d.ts.map +1 -0
  181. package/esm/array/array.at.js +2 -0
  182. package/esm/array/array.at.js.map +1 -0
  183. package/esm/array/array.concat.d.ts +13 -0
  184. package/esm/array/array.concat.d.ts.map +1 -0
  185. package/esm/array/array.concat.js +2 -0
  186. package/esm/array/array.concat.js.map +1 -0
  187. package/esm/array/array.entries.d.ts +17 -0
  188. package/esm/array/array.entries.d.ts.map +1 -0
  189. package/esm/array/array.entries.js +2 -0
  190. package/esm/array/array.entries.js.map +1 -0
  191. package/esm/array/array.find.d.ts +21 -0
  192. package/esm/array/array.find.d.ts.map +1 -0
  193. package/esm/array/array.find.js +2 -0
  194. package/esm/array/array.find.js.map +1 -0
  195. package/esm/array/array.find_last.d.ts +17 -0
  196. package/esm/array/array.find_last.d.ts.map +1 -0
  197. package/esm/array/array.find_last.js +2 -0
  198. package/esm/array/array.find_last.js.map +1 -0
  199. package/esm/array/array.reverse.d.ts +2 -0
  200. package/esm/array/array.reverse.d.ts.map +1 -0
  201. package/esm/array/array.reverse.js +2 -0
  202. package/esm/array/array.reverse.js.map +1 -0
  203. package/esm/array/array.some.d.ts +29 -0
  204. package/esm/array/array.some.d.ts.map +1 -0
  205. package/esm/array/array.some.js +2 -0
  206. package/esm/array/array.some.js.map +1 -0
  207. package/esm/array/array_index.d.ts +8 -8
  208. package/esm/array/array_index.d.ts.map +1 -1
  209. package/esm/array/array_plus.d.ts +9 -1
  210. package/esm/array/array_plus.d.ts.map +1 -1
  211. package/esm/array/array_plus.split_at.d.ts +30 -0
  212. package/esm/array/array_plus.split_at.d.ts.map +1 -0
  213. package/esm/array/array_plus.split_at.js +2 -0
  214. package/esm/array/array_plus.split_at.js.map +1 -0
  215. package/esm/array/drop.d.ts +2 -2
  216. package/esm/array/drop.d.ts.map +1 -1
  217. package/esm/array/index.d.ts +4 -5
  218. package/esm/array/index.d.ts.map +1 -1
  219. package/esm/array/index.js +4 -5
  220. package/esm/array/index.js.map +1 -1
  221. package/esm/array/pad_start.d.ts +32 -0
  222. package/esm/array/pad_start.d.ts.map +1 -0
  223. package/esm/array/pad_start.js +2 -0
  224. package/esm/array/pad_start.js.map +1 -0
  225. package/esm/assertion/assert_type.d.ts +3 -0
  226. package/esm/assertion/assert_type.d.ts.map +1 -1
  227. package/esm/assertion/assert_type.js +3 -0
  228. package/esm/assertion/assert_type.js.map +1 -1
  229. package/esm/bigint/cast.d.ts +10 -0
  230. package/esm/bigint/cast.d.ts.map +1 -0
  231. package/esm/bigint/cast.js +2 -0
  232. package/esm/bigint/cast.js.map +1 -0
  233. package/esm/equal/equal.d.ts +51 -3
  234. package/esm/equal/equal.d.ts.map +1 -1
  235. package/esm/functional/Maybe.d.ts +2 -2
  236. package/esm/functional/Maybe.d.ts.map +1 -1
  237. package/esm/index.d.ts +16 -7
  238. package/esm/index.d.ts.map +1 -1
  239. package/esm/index.js +5 -0
  240. package/esm/index.js.map +1 -1
  241. package/esm/math/abs.d.ts +6 -0
  242. package/esm/math/abs.d.ts.map +1 -0
  243. package/esm/math/abs.js +2 -0
  244. package/esm/math/abs.js.map +1 -0
  245. package/esm/math/add.d.ts +7 -0
  246. package/esm/math/add.d.ts.map +1 -0
  247. package/esm/math/add.js +2 -0
  248. package/esm/math/add.js.map +1 -0
  249. package/esm/math/greater_than.d.ts +4 -0
  250. package/esm/math/greater_than.d.ts.map +1 -0
  251. package/esm/math/greater_than.js +2 -0
  252. package/esm/math/greater_than.js.map +1 -0
  253. package/esm/math/index.d.ts +6 -6
  254. package/esm/math/index.d.ts.map +1 -1
  255. package/esm/math/math_plus.d.ts +5 -0
  256. package/esm/math/math_plus.d.ts.map +1 -0
  257. package/esm/math/math_plus.js +2 -0
  258. package/esm/math/math_plus.js.map +1 -0
  259. package/esm/math/math_plus.to_negative.d.ts +13 -0
  260. package/esm/math/math_plus.to_negative.d.ts.map +1 -0
  261. package/esm/math/math_plus.to_negative.js +2 -0
  262. package/esm/math/math_plus.to_negative.js.map +1 -0
  263. package/esm/math/max.d.ts +4 -0
  264. package/esm/math/max.d.ts.map +1 -0
  265. package/esm/math/max.js +2 -0
  266. package/esm/math/max.js.map +1 -0
  267. package/esm/math/multiply.d.ts +6 -0
  268. package/esm/math/multiply.d.ts.map +1 -0
  269. package/esm/math/multiply.js +2 -0
  270. package/esm/math/multiply.js.map +1 -0
  271. package/esm/math/numeric_struct.d.ts +1469 -0
  272. package/esm/math/numeric_struct.d.ts.map +1 -0
  273. package/esm/math/numeric_struct.js +2 -0
  274. package/esm/math/numeric_struct.js.map +1 -0
  275. package/esm/math/subtract.d.ts +7 -0
  276. package/esm/math/subtract.d.ts.map +1 -0
  277. package/esm/math/subtract.js +2 -0
  278. package/esm/math/subtract.js.map +1 -0
  279. package/esm/nominal/brand.js +1 -1
  280. package/esm/nominal/brand.js.map +1 -1
  281. package/esm/nominal/flavor.js +1 -1
  282. package/esm/nominal/flavor.js.map +1 -1
  283. package/esm/number/cast.d.ts +10 -0
  284. package/esm/number/cast.d.ts.map +1 -0
  285. package/esm/number/cast.js +2 -0
  286. package/esm/number/cast.js.map +1 -0
  287. package/esm/number/number_array.d.ts +1 -2
  288. package/esm/number/number_array.d.ts.map +1 -1
  289. package/esm/number/number_array.js +14 -0
  290. package/esm/number/number_array.js.map +1 -1
  291. package/esm/number/number_plus.d.ts +4 -5
  292. package/esm/number/number_plus.d.ts.map +1 -1
  293. package/esm/number/strict_number_type.d.ts +12 -0
  294. package/esm/number/strict_number_type.d.ts.map +1 -1
  295. package/esm/numeric/cast.d.ts +27 -0
  296. package/esm/numeric/cast.d.ts.map +1 -0
  297. package/esm/numeric/cast.js +2 -0
  298. package/esm/numeric/cast.js.map +1 -0
  299. package/{cjs/number → esm/numeric}/integer.d.ts +2 -0
  300. package/esm/numeric/integer.d.ts.map +1 -0
  301. package/esm/{number → numeric}/integer.js.map +1 -1
  302. package/esm/numeric/negative.d.ts.map +1 -0
  303. package/esm/{number → numeric}/negative.js.map +1 -1
  304. package/esm/numeric/numeric_plus.d.ts +5 -0
  305. package/esm/numeric/numeric_plus.d.ts.map +1 -0
  306. package/esm/numeric/numeric_plus.js +2 -0
  307. package/esm/numeric/numeric_plus.js.map +1 -0
  308. package/esm/numeric/numeric_type.d.ts.map +1 -0
  309. package/esm/{number → numeric}/numeric_type.js.map +1 -1
  310. package/esm/{number → numeric}/positive.d.ts +2 -2
  311. package/esm/numeric/positive.d.ts.map +1 -0
  312. package/esm/{number → numeric}/positive.js.map +1 -1
  313. package/esm/object/ANotB.d.ts +3 -3
  314. package/esm/object/ANotB.d.ts.map +1 -1
  315. package/esm/object/Partial.d.ts +6 -0
  316. package/esm/object/Partial.d.ts.map +1 -1
  317. package/esm/object/Required.d.ts +4 -0
  318. package/esm/object/Required.d.ts.map +1 -1
  319. package/esm/object/index.d.ts +1 -1
  320. package/esm/object/index.d.ts.map +1 -1
  321. package/esm/object/object_type.d.ts +1 -1
  322. package/esm/object/split.d.ts +3 -1
  323. package/esm/object/split.d.ts.map +1 -1
  324. package/esm/object/split.js.map +1 -1
  325. package/esm/predicates/CanAssign.d.ts +35 -0
  326. package/esm/predicates/CanAssign.d.ts.map +1 -1
  327. package/esm/predicates/CanAssign.js.map +1 -1
  328. package/esm/predicates/Extends.d.ts +2 -2
  329. package/esm/predicates/Extends.d.ts.map +1 -1
  330. package/esm/predicates/index.d.ts +0 -1
  331. package/esm/predicates/index.d.ts.map +1 -1
  332. package/esm/predicates/index.js +0 -1
  333. package/esm/predicates/index.js.map +1 -1
  334. package/esm/testing/stub.d.ts.map +1 -1
  335. package/esm/testing/stub.js +4 -3
  336. package/esm/testing/stub.js.map +1 -1
  337. package/esm/testing/test_type.d.ts +125 -50
  338. package/esm/testing/test_type.d.ts.map +1 -1
  339. package/esm/testing/test_type.js +4 -141
  340. package/esm/testing/test_type.js.map +1 -1
  341. package/esm/tuple/create_tuple.d.ts +28 -0
  342. package/esm/tuple/create_tuple.d.ts.map +1 -0
  343. package/esm/{array → tuple}/create_tuple.js.map +1 -1
  344. package/esm/tuple/tuple_plus.d.ts +2 -0
  345. package/esm/tuple/tuple_plus.d.ts.map +1 -0
  346. package/esm/tuple/tuple_plus.js +2 -0
  347. package/esm/tuple/tuple_plus.js.map +1 -0
  348. package/esm/tuple/tuple_plus.pad_start.d.ts +22 -0
  349. package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -0
  350. package/esm/tuple/tuple_plus.pad_start.js +2 -0
  351. package/esm/tuple/tuple_plus.pad_start.js.map +1 -0
  352. package/esm/{predicates/isType.d.ts → type-guard/is_type.d.ts} +5 -3
  353. package/esm/type-guard/is_type.d.ts.map +1 -0
  354. package/esm/{predicates/isType.js → type-guard/is_type.js} +8 -2
  355. package/esm/type-guard/is_type.js.map +1 -0
  356. package/package.json +3 -3
  357. package/ts/array/{array.ts → array.at.ts} +10 -15
  358. package/ts/array/array.concat.ts +12 -0
  359. package/ts/array/array.entries.ts +24 -0
  360. package/ts/array/array.find.ts +32 -0
  361. package/ts/array/array.find_last.ts +27 -0
  362. package/ts/array/array.reverse.ts +16 -0
  363. package/ts/array/array.some.ts +53 -0
  364. package/ts/array/array_index.ts +16 -10
  365. package/ts/array/array_plus.split_at.ts +47 -0
  366. package/ts/array/array_plus.ts +9 -1
  367. package/ts/array/drop.ts +2 -2
  368. package/ts/array/index.ts +4 -5
  369. package/ts/array/pad_start.ts +43 -0
  370. package/ts/array/readme.md +184 -4
  371. package/ts/assertion/assert_type.ts +6 -0
  372. package/ts/assertion/readme.md +132 -1
  373. package/ts/bigint/cast.ts +13 -0
  374. package/ts/bigint/readme.md +17 -17
  375. package/ts/equal/equal.ts +53 -3
  376. package/ts/equal/readme.md +30 -16
  377. package/ts/functional/Maybe.ts +2 -2
  378. package/ts/index.ts +22 -24
  379. package/ts/math/README.md +97 -7
  380. package/ts/math/abs.ts +18 -0
  381. package/ts/math/add.ts +14 -0
  382. package/ts/math/greater_than.ts +12 -0
  383. package/ts/math/index.ts +7 -6
  384. package/ts/math/math_plus.to_negative.ts +22 -0
  385. package/ts/math/math_plus.ts +4 -0
  386. package/ts/math/max.ts +13 -0
  387. package/ts/math/multiply.ts +12 -0
  388. package/ts/math/numeric_struct.ts +658 -0
  389. package/ts/math/subtract.ts +14 -0
  390. package/ts/nominal/brand.ts +1 -1
  391. package/ts/nominal/flavor.ts +1 -1
  392. package/ts/number/cast.ts +17 -0
  393. package/ts/number/number_array.ts +14 -14
  394. package/ts/number/number_plus.ts +6 -6
  395. package/ts/number/readme.md +0 -108
  396. package/ts/number/strict_number_type.ts +12 -0
  397. package/ts/numeric/cast.ts +28 -0
  398. package/ts/{number → numeric}/integer.ts +2 -0
  399. package/ts/numeric/numeric_plus.ts +12 -0
  400. package/ts/{number → numeric}/positive.ts +2 -2
  401. package/ts/numeric/readme.md +115 -0
  402. package/ts/object/ANotB.ts +3 -3
  403. package/ts/object/Partial.ts +5 -0
  404. package/ts/object/Required.ts +4 -0
  405. package/ts/object/index.ts +1 -1
  406. package/ts/object/object_type.ts +1 -1
  407. package/ts/object/split.ts +3 -1
  408. package/ts/predicates/CanAssign.ts +46 -0
  409. package/ts/predicates/Extends.ts +2 -2
  410. package/ts/predicates/index.ts +0 -1
  411. package/ts/testing/stub.ts +7 -4
  412. package/ts/testing/test_type.ts +131 -88
  413. package/ts/tuple/create_tuple.ts +42 -0
  414. package/ts/tuple/readme.md +11 -10
  415. package/ts/tuple/tuple_plus.pad_start.ts +42 -0
  416. package/ts/tuple/tuple_plus.ts +1 -0
  417. package/ts/{predicates/isType.ts → type-guard/is_type.ts} +11 -3
  418. package/ts/type-guard/readme.md +37 -0
  419. package/cjs/array/array.d.ts.map +0 -1
  420. package/cjs/array/array.js.map +0 -1
  421. package/cjs/array/create_tuple.d.ts +0 -11
  422. package/cjs/array/create_tuple.d.ts.map +0 -1
  423. package/cjs/array/find_first.d.ts +0 -6
  424. package/cjs/array/find_first.d.ts.map +0 -1
  425. package/cjs/array/find_first.js.map +0 -1
  426. package/cjs/array/find_last.d.ts +0 -2
  427. package/cjs/array/find_last.d.ts.map +0 -1
  428. package/cjs/array/find_last.js.map +0 -1
  429. package/cjs/array/pad_left.d.ts +0 -6
  430. package/cjs/array/pad_left.d.ts.map +0 -1
  431. package/cjs/array/pad_left.js.map +0 -1
  432. package/cjs/array/some.d.ts +0 -8
  433. package/cjs/array/some.d.ts.map +0 -1
  434. package/cjs/array/some.js.map +0 -1
  435. package/cjs/math/Abs.d.ts +0 -3
  436. package/cjs/math/Abs.d.ts.map +0 -1
  437. package/cjs/math/Abs.js.map +0 -1
  438. package/cjs/math/Add.d.ts +0 -19
  439. package/cjs/math/Add.d.ts.map +0 -1
  440. package/cjs/math/Add.js.map +0 -1
  441. package/cjs/math/Digit.d.ts +0 -100
  442. package/cjs/math/Digit.d.ts.map +0 -1
  443. package/cjs/math/Digit.js +0 -3
  444. package/cjs/math/Digit.js.map +0 -1
  445. package/cjs/math/GreaterThan.d.ts +0 -13
  446. package/cjs/math/GreaterThan.d.ts.map +0 -1
  447. package/cjs/math/GreaterThan.js +0 -3
  448. package/cjs/math/GreaterThan.js.map +0 -1
  449. package/cjs/math/Max.d.ts +0 -4
  450. package/cjs/math/Max.d.ts.map +0 -1
  451. package/cjs/math/Max.js.map +0 -1
  452. package/cjs/math/Subtract.d.ts +0 -19
  453. package/cjs/math/Subtract.d.ts.map +0 -1
  454. package/cjs/math/Subtract.js +0 -3
  455. package/cjs/math/Subtract.js.map +0 -1
  456. package/cjs/number/integer.d.ts.map +0 -1
  457. package/cjs/number/negative.d.ts.map +0 -1
  458. package/cjs/number/numeric_type.d.ts.map +0 -1
  459. package/cjs/number/positive.d.ts.map +0 -1
  460. package/cjs/predicates/isType.d.ts.map +0 -1
  461. package/cjs/predicates/isType.js.map +0 -1
  462. package/esm/array/array.d.ts.map +0 -1
  463. package/esm/array/array.js +0 -2
  464. package/esm/array/array.js.map +0 -1
  465. package/esm/array/create_tuple.d.ts +0 -11
  466. package/esm/array/create_tuple.d.ts.map +0 -1
  467. package/esm/array/find_first.d.ts +0 -6
  468. package/esm/array/find_first.d.ts.map +0 -1
  469. package/esm/array/find_first.js +0 -2
  470. package/esm/array/find_first.js.map +0 -1
  471. package/esm/array/find_last.d.ts +0 -2
  472. package/esm/array/find_last.d.ts.map +0 -1
  473. package/esm/array/find_last.js +0 -2
  474. package/esm/array/find_last.js.map +0 -1
  475. package/esm/array/pad_left.d.ts +0 -6
  476. package/esm/array/pad_left.d.ts.map +0 -1
  477. package/esm/array/pad_left.js +0 -2
  478. package/esm/array/pad_left.js.map +0 -1
  479. package/esm/array/some.d.ts +0 -8
  480. package/esm/array/some.d.ts.map +0 -1
  481. package/esm/array/some.js +0 -2
  482. package/esm/array/some.js.map +0 -1
  483. package/esm/math/Abs.d.ts +0 -3
  484. package/esm/math/Abs.d.ts.map +0 -1
  485. package/esm/math/Abs.js +0 -2
  486. package/esm/math/Abs.js.map +0 -1
  487. package/esm/math/Add.d.ts +0 -19
  488. package/esm/math/Add.d.ts.map +0 -1
  489. package/esm/math/Add.js +0 -2
  490. package/esm/math/Add.js.map +0 -1
  491. package/esm/math/Digit.d.ts +0 -100
  492. package/esm/math/Digit.d.ts.map +0 -1
  493. package/esm/math/Digit.js +0 -2
  494. package/esm/math/Digit.js.map +0 -1
  495. package/esm/math/GreaterThan.d.ts +0 -13
  496. package/esm/math/GreaterThan.d.ts.map +0 -1
  497. package/esm/math/GreaterThan.js +0 -2
  498. package/esm/math/GreaterThan.js.map +0 -1
  499. package/esm/math/Max.d.ts +0 -4
  500. package/esm/math/Max.d.ts.map +0 -1
  501. package/esm/math/Max.js +0 -2
  502. package/esm/math/Max.js.map +0 -1
  503. package/esm/math/Subtract.d.ts +0 -19
  504. package/esm/math/Subtract.d.ts.map +0 -1
  505. package/esm/math/Subtract.js +0 -2
  506. package/esm/math/Subtract.js.map +0 -1
  507. package/esm/number/integer.d.ts.map +0 -1
  508. package/esm/number/negative.d.ts.map +0 -1
  509. package/esm/number/numeric_type.d.ts.map +0 -1
  510. package/esm/number/positive.d.ts.map +0 -1
  511. package/esm/predicates/isType.d.ts.map +0 -1
  512. package/esm/predicates/isType.js.map +0 -1
  513. package/ts/array/create_tuple.ts +0 -17
  514. package/ts/array/find_first.ts +0 -16
  515. package/ts/array/find_last.ts +0 -11
  516. package/ts/array/pad_left.ts +0 -16
  517. package/ts/array/some.ts +0 -33
  518. package/ts/math/Abs.ts +0 -7
  519. package/ts/math/Add.ts +0 -58
  520. package/ts/math/Digit.ts +0 -152
  521. package/ts/math/GreaterThan.ts +0 -55
  522. package/ts/math/Max.ts +0 -10
  523. package/ts/math/Subtract.ts +0 -57
  524. /package/cjs/{number → numeric}/integer.js +0 -0
  525. /package/cjs/{number → numeric}/negative.d.ts +0 -0
  526. /package/cjs/{number → numeric}/negative.js +0 -0
  527. /package/cjs/{number → numeric}/numeric_type.d.ts +0 -0
  528. /package/cjs/{number → numeric}/numeric_type.js +0 -0
  529. /package/cjs/{number → numeric}/positive.js +0 -0
  530. /package/cjs/{array → tuple}/create_tuple.js +0 -0
  531. /package/esm/{number → numeric}/integer.js +0 -0
  532. /package/esm/{number → numeric}/negative.d.ts +0 -0
  533. /package/esm/{number → numeric}/negative.js +0 -0
  534. /package/esm/{number → numeric}/numeric_type.d.ts +0 -0
  535. /package/esm/{number → numeric}/numeric_type.js +0 -0
  536. /package/esm/{number → numeric}/positive.js +0 -0
  537. /package/esm/{array → tuple}/create_tuple.js +0 -0
  538. /package/ts/{number → numeric}/negative.ts +0 -0
  539. /package/ts/{number → numeric}/numeric_type.ts +0 -0
@@ -1,19 +0,0 @@
1
- import type { PadLeft, Some, Tail } from '../array/index.js';
2
- import type { IsInteger } from '../number/integer.js';
3
- import type { IsPositive } from '../number/positive.js';
4
- import type { And } from '../predicates/index.js';
5
- import type { Digit, DigitArray } from './Digit.js';
6
- import type { Max } from './Max.js';
7
- export type Subtract<A extends number, B extends number, Fail = never> = And<And<IsPositive<A>, IsInteger<A>>, And<IsPositive<B>, IsInteger<B>>> extends true ? DigitArray.Shift10<DigitArray.FromNumber<A>> extends infer DA ? DA extends number[] ? DigitArray.FromNumber<B> extends infer DB ? DB extends number[] ? Max<DA['length'], DB['length']> extends infer M ? M extends number ? PadLeft<DA, M, 0> extends infer PDA ? PDA extends number[] ? PadLeft<DB, M, 0> extends infer PDB ? PDB extends number[] ? Subtract.DigitArray<[], PDA, PDB> extends infer Result ? Result extends number[] ? Some<Result, never, 'strict'> extends true ? Fail : DigitArray.ToNumber<Result> : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail : Fail;
8
- export declare namespace Subtract {
9
- type DigitArray<R extends number[], A extends number[], B extends number[]> = A['length'] extends 0 ? R : DigitArray<[...R, Digit<A[0], B[0]>], Tail<A>, Tail<B>>;
10
- type Digit<A extends number, B extends number> = Digit.ToTuple[A] extends [
11
- ...infer U,
12
- ...Digit.ToTuple[B]
13
- ] ? U['length'] : never;
14
- }
15
- /**
16
- * A - 1
17
- */
18
- export type Decrement<A extends number, Fail = never> = Subtract<A, 1, Fail>;
19
- //# sourceMappingURL=Subtract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Subtract.d.ts","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,CAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAChC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAChC,SAAS,IAAI,GACX,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5D,EAAE,SAAS,MAAM,EAAE,GAClB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACxC,EAAE,SAAS,MAAM,EAAE,GAClB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAC9C,CAAC,SAAS,MAAM,GACf,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAClC,GAAG,SAAS,MAAM,EAAE,GACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,MAAM,GACrD,MAAM,SAAS,MAAM,EAAE,GACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,GACzC,IAAI,GACJ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,GACL,IAAI,CAAA;AAEP,yBAAiB,QAAQ,CAAC;IACzB,KAAY,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvG,CAAC,GACD,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1D,KAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,MAAM,CAAC;QACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACnB,GACE,CAAC,CAAC,QAAQ,CAAC,GACX,KAAK,CAAA;CACR;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Subtract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Subtract.js","sourceRoot":"","sources":["../../ts/math/Subtract.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"integer.d.ts","sourceRoot":"","sources":["../../ts/number/integer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,YAAY,CAC5D,CAAC,EACD,IAAI,EACJ;IAAC,CAAC;CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CACzE,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"negative.d.ts","sourceRoot":"","sources":["../../ts/number/negative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACtD,CAAC,EACD,IAAI,GAAG,IAAI,EACX,OAAO,CACN,CAAC,EACD,IAAI,EACJ;IAAC,MAAM;IAAE,CAAC;CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAC5B,IAAI,GACJ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAC/B,IAAI,GACJ,CAAC,SAAS,IAAI,GACd,IAAI,GACJ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,GAC7B,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC1B,IAAI,GACJ,IAAI,GACL,IAAI,CACP,CACD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACzD,CAAC,EACD,IAAI,GAAG,IAAI,EACX,OAAO,CACN,CAAC,EACD,IAAI,EACJ;IAAC,MAAM;IAAE,CAAC;CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAC5B,IAAI,GACJ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAC/B,IAAI,GACJ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,GAC7B,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAC1B,IAAI,GACJ,IAAI,GACL,IAAI,CACP,CACD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"numeric_type.d.ts","sourceRoot":"","sources":["../../ts/number/numeric_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;AAE/G;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"positive.d.ts","sourceRoot":"","sources":["../../ts/number/positive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACtD,CAAC,EACD,IAAI,GAAG,IAAI,EACX,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAChG,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9E;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5E;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isType.d.ts","sourceRoot":"","sources":["../../ts/predicates/isType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;AACnD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,IAAI,CAAC,CAAA;yBAAvE,MAAM;;;;;;AAatB;;GAEG;AACH,iBAAS,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,OAAO,CAAA;AAC5C;;GAEG;AACH,iBAAS,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,IAAI,KAAK,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isType.js","sourceRoot":"","sources":["../../ts/predicates/isType.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,SAAmC;IAC3E,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,CAAC,GAAG,UAA0B,OAAW;IAC/C,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,CAAC,GAAG,UAA2B,OAAW;IAChD,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,CAAA;AAClD,CAAC,CAAA;AAUD,SAAS,OAAO,CAAC,OAAiB;IACjC,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,GAAG,OAAO,CAAA;AAEtB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,GAAG,cAA0C,CAAC,CAAA"}
@@ -1,17 +0,0 @@
1
- import type { DigitArray } from '../math/index.js'
2
- import type { IsInteger } from '../number/integer.js'
3
- import type { IsPositive } from '../number/positive.js'
4
-
5
- /**
6
- * Creates `Tuple<T>` with `L` number of elements.
7
- * @note Other cool implementations by @lazytype, @jcalz:
8
- * @see https://github.com/microsoft/TypeScript/issues/26223#issuecomment-674514787
9
- * @see https://github.com/microsoft/TypeScript/issues/47874#issuecomment-1039157322
10
- */
11
- export type CreateTuple<L extends number, T = unknown, Fail = never> = number extends L
12
- ? T[]
13
- : IsPositive<L> extends true
14
- ? IsInteger<L> extends true
15
- ? DigitArray.ToTuple<[], DigitArray.FromNumber<L>, T>
16
- : Fail
17
- : Fail
@@ -1,16 +0,0 @@
1
- export type FindFirst<A extends Array<any>, Criteria> = number extends A['length']
2
- ? A[0] extends Criteria
3
- ? A[0]
4
- : never
5
- : A['length'] extends 0
6
- ? never
7
- : A extends [any, ...infer Tail]
8
- ? A[0] extends Criteria
9
- ? A[0]
10
- : FindFirst<Tail, Criteria>
11
- : never
12
-
13
- /**
14
- * @deprecated use FindFirst
15
- */
16
- export type First<A extends any[], Criteria> = FindFirst<A, Criteria>
@@ -1,11 +0,0 @@
1
- export type FindLast<A extends Array<any>, Criteria> = number extends A['length']
2
- ? A[0] extends Criteria
3
- ? A[0]
4
- : never
5
- : A['length'] extends 0
6
- ? never
7
- : A extends [...infer Heads, infer Last]
8
- ? Last extends Criteria
9
- ? Last
10
- : FindLast<Heads, Criteria>
11
- : never
@@ -1,16 +0,0 @@
1
- import type { IsAny } from '../any/any_type.js'
2
- import type { Equal } from '../equal/equal.js'
3
- import type { CreateTuple } from './create_tuple.js'
4
- import type { UnionOfValues } from './union_of_values.js'
5
-
6
- export type PadLeft<A extends any[], Total extends number, PadWith = any> = number extends A['length']
7
- ? IsAny<UnionOfValues<A>> extends true
8
- ? A
9
- : Equal<UnionOfValues<A>, PadWith> extends true
10
- ? A
11
- : PadLeft<[...CreateTuple<Total, PadWith>, ...A], Total, PadWith>
12
- : CreateTuple<Total, any> extends [...infer U, ...A]
13
- ? number extends U['length']
14
- ? A
15
- : [...CreateTuple<U['length'], PadWith>, ...A]
16
- : A
package/ts/array/some.ts DELETED
@@ -1,33 +0,0 @@
1
- import type { Equal } from '../equal/equal.js'
2
- import type { Tail } from './tail.js'
3
- import type { UnionOfValues } from './union_of_values.js'
4
-
5
- export type Some<
6
- A extends any[],
7
- Criteria,
8
- Mode extends 'strict' | 'loose' = 'loose',
9
- Then = true,
10
- Else = false
11
- > = Mode extends 'strict'
12
- ? Some.Strict<A, Criteria, Then, Else>
13
- : number extends A['length']
14
- ? UnionOfValues<A> extends Criteria
15
- ? Then
16
- : Else
17
- : A['length'] extends 0
18
- ? Else
19
- : A[0] extends Criteria
20
- ? Then
21
- : Some<Tail<A>, Criteria, 'loose', Then, Else>
22
-
23
- export namespace Some {
24
- export type Strict<A extends any[], Criteria, Then, Else> = number extends A['length']
25
- ? Equal<UnionOfValues<A>, Criteria> extends true
26
- ? Then
27
- : Else
28
- : A['length'] extends 0
29
- ? Else
30
- : Equal<A[0], Criteria> extends true
31
- ? Then
32
- : Strict<Tail<A>, Criteria, Then, Else>
33
- }
package/ts/math/Abs.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { DigitArray } from './Digit.js'
2
-
3
- export type Abs<N extends number, Fail = never> = number extends N
4
- ? Fail
5
- : `${N}` extends `-${infer P}`
6
- ? DigitArray.ToNumber<DigitArray.FromString<P>>
7
- : N
package/ts/math/Add.ts DELETED
@@ -1,58 +0,0 @@
1
- import type { PadLeft } from '../array/index.js'
2
- import type { IsInteger } from '../number/integer.js'
3
- import type { IsPositive } from '../number/positive.js'
4
- import type { And } from '../predicates/index.js'
5
- import type { Digit, DigitArray } from './Digit.js'
6
- import type { Max } from './Max.js'
7
-
8
- /**
9
- * Add two number literals.
10
- */
11
- export type Add<A extends number, B extends number, Fail = never> = And<
12
- And<IsPositive<A>, IsInteger<A>>,
13
- And<IsPositive<B>, IsInteger<B>>
14
- > extends false
15
- ? Fail
16
- : DigitArray.FromNumber<A> extends infer DA
17
- ? DA extends number[]
18
- ? DigitArray.FromNumber<B> extends infer DB
19
- ? DB extends number[]
20
- ? Max<DA['length'], DB['length']> extends infer M
21
- ? M extends number
22
- ? PadLeft<DA, M, 0> extends infer PDA
23
- ? PDA extends number[]
24
- ? PadLeft<DB, M, 0> extends infer PDB
25
- ? PDB extends number[]
26
- ? DigitArray.ToNumber<Add.DigitArray<PDA, PDB>>
27
- : Fail
28
- : Fail
29
- : Fail
30
- : Fail
31
- : Fail
32
- : Fail
33
- : Fail
34
- : Fail
35
- : Fail
36
- : Fail
37
-
38
- export namespace Add {
39
- export type DigitArray<A extends number[], B extends number[]> = A extends [any, ...infer ATail]
40
- ? ATail extends number[]
41
- ? B extends [any, ...infer BTail]
42
- ? BTail extends number[]
43
- ? [Digit<A[0], B[0]>, ...DigitArray<ATail, BTail>]
44
- : []
45
- : [A[0], ...DigitArray<[], ATail>]
46
- : []
47
- : B extends [any, ...infer BTail]
48
- ? BTail extends number[]
49
- ? [B[0], ...DigitArray<[], BTail>]
50
- : []
51
- : []
52
-
53
- export type Digit<A extends number, B extends number> = [...Digit.ToTuple[A], ...Digit.ToTuple[B]]['length']
54
- }
55
- /**
56
- * Increment `A` by 1.
57
- */
58
- export type Increment<A extends number, Fail = never> = Add<A, 1, Fail>
package/ts/math/Digit.ts DELETED
@@ -1,152 +0,0 @@
1
- import type { Tail } from '../array/tail.js'
2
- import type { IsInteger } from '../number/integer.js'
3
- import type { IsPositive } from '../number/positive.js'
4
- import type { And } from '../predicates/index.js'
5
-
6
- export namespace Digit {
7
- export type ToTuple<T = 1> = {
8
- [k in number]: any[]
9
- } & {
10
- 0: []
11
- 1: [T]
12
- 2: [T, T]
13
- 3: [T, T, T]
14
- 4: [T, T, T, T]
15
- 5: [T, T, T, T, T]
16
- 6: [T, T, T, T, T, T]
17
- 7: [T, T, T, T, T, T, T]
18
- 8: [T, T, T, T, T, T, T, T]
19
- 9: [T, T, T, T, T, T, T, T, T]
20
- 10: [T, T, T, T, T, T, T, T, T, T]
21
- 11: [T, T, T, T, T, T, T, T, T, T, T]
22
- 12: [T, T, T, T, T, T, T, T, T, T, T, T]
23
- 13: [T, T, T, T, T, T, T, T, T, T, T, T, T]
24
- 14: [T, T, T, T, T, T, T, T, T, T, T, T, T, T]
25
- 15: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T]
26
- 16: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T]
27
- 17: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T]
28
- 18: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T]
29
- 19: [T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T]
30
- }
31
-
32
- /**
33
- * A > B for [1-9]
34
- */
35
- export type GreaterThan<A extends number, B extends number> = B extends GreaterThanMap[A] ? true : false
36
-
37
- export type GreaterThanMap = { [k in number]: number } & {
38
- 0: never
39
- 1: 0
40
- 2: 0 | 1
41
- 3: 0 | 1 | 2
42
- 4: 0 | 1 | 2 | 3
43
- 5: 0 | 1 | 2 | 3 | 4
44
- 6: 0 | 1 | 2 | 3 | 4 | 5
45
- 7: 0 | 1 | 2 | 3 | 4 | 5 | 6
46
- 8: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
47
- 9: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
48
- }
49
- }
50
-
51
- export namespace DigitArray {
52
- export type ToNumber<C extends number[]> = ToTuple<[], C>['length']
53
-
54
- export type ToTuple<R extends any[], S extends number[], X = any> = S['length'] extends 0
55
- ? R
56
- : S['length'] extends 1
57
- ? [...R, ...Digit.ToTuple<X>[S[0]]]
58
- : S extends [any, ...infer T]
59
- ? T extends any[]
60
- ? ToTuple<Multi10<[...R, ...Digit.ToTuple<X>[S[0]]]>, T>
61
- : never
62
- : never
63
-
64
- export type Multi10<C extends any[]> = [...C, ...C, ...C, ...C, ...C, ...C, ...C, ...C, ...C, ...C]
65
-
66
- export type FromNumber<N extends number> = FromString<NumberToString<N>>
67
- export type FromNumberAbs<N extends number> = FromString<TrimMinusSign<`${N}`>>
68
- export type TrimMinusSign<N extends string> = N extends `-${infer rest}` ? rest : N
69
-
70
- export type NumberToString<N extends number> = And<IsPositive<N>, IsInteger<N>> extends true ? `${N}` : never
71
-
72
- export type FromString<S extends string> = S extends `1${infer L}`
73
- ? [1, ...FromString<L>]
74
- : S extends `2${infer L}`
75
- ? [2, ...FromString<L>]
76
- : S extends `3${infer L}`
77
- ? [3, ...FromString<L>]
78
- : S extends `4${infer L}`
79
- ? [4, ...FromString<L>]
80
- : S extends `5${infer L}`
81
- ? [5, ...FromString<L>]
82
- : S extends `6${infer L}`
83
- ? [6, ...FromString<L>]
84
- : S extends `7${infer L}`
85
- ? [7, ...FromString<L>]
86
- : S extends `8${infer L}`
87
- ? [8, ...FromString<L>]
88
- : S extends `9${infer L}`
89
- ? [9, ...FromString<L>]
90
- : S extends `0${infer L}`
91
- ? [0, ...FromString<L>]
92
- : []
93
-
94
- export type Shift10<DA extends number[]> = TrimLeadingZero<Shift10State<[], DA>>
95
- export type Shift10State<R extends number[], DA extends number[]> = DA['length'] extends 0
96
- ? R
97
- : DA['length'] extends 1
98
- ? [...R, ...DA]
99
- : DA extends [any, ...infer T]
100
- ? T extends number[]
101
- ? DA[0] extends 0
102
- ? Shift10State<[...R, DA[0]], T>
103
- : T extends [any, ...infer Y]
104
- ? Y extends number[]
105
- ? Shift10State<[...R, MinusOne[DA[0]]], [Plus10[T[0]], ...Y]>
106
- : []
107
- : []
108
- : []
109
- : []
110
-
111
- export type TrimLeadingZero<A extends number[]> = A['length'] extends 0
112
- ? A
113
- : A[0] extends 0
114
- ? TrimLeadingZero<Tail<A>>
115
- : A
116
-
117
- export type MinusOne = { [k in number]: number } & {
118
- 0: 0
119
- 1: 0
120
- 2: 1
121
- 3: 2
122
- 4: 3
123
- 5: 4
124
- 6: 5
125
- 7: 6
126
- 8: 7
127
- 9: 8
128
- 10: 9
129
- 11: 10
130
- 12: 11
131
- 13: 12
132
- 14: 13
133
- 15: 14
134
- 16: 15
135
- 17: 16
136
- 18: 17
137
- 19: 18
138
- }
139
-
140
- export type Plus10 = { [k in number]: number } & {
141
- 0: 10
142
- 1: 11
143
- 2: 12
144
- 3: 13
145
- 4: 14
146
- 5: 15
147
- 6: 16
148
- 7: 17
149
- 8: 18
150
- 9: 19
151
- }
152
- }
@@ -1,55 +0,0 @@
1
- import type { Head, PadLeft, Tail } from '../array/index.js'
2
- import type { Equal } from '../equal/equal.js'
3
- import type { IsInteger } from '../number/integer.js'
4
- import type { IsPositive } from '../number/positive.js'
5
- import type { And, Or, Xor } from '../predicates/index.js'
6
- import type { Digit, DigitArray } from './Digit.js'
7
- import type { Max } from './Max.js'
8
-
9
- export type GreaterThan<A extends number, B extends number, Fail = never> = And<
10
- IsInteger<A>,
11
- IsInteger<B>
12
- > extends false
13
- ? Fail
14
- : number extends A
15
- ? Fail
16
- : number extends B
17
- ? Fail
18
- : Equal<A, B> extends true
19
- ? false
20
- : Xor<IsPositive<A>, IsPositive<B>> extends true
21
- ? IsPositive<A>
22
- : Or<IsPositive<A>, IsPositive<B>> extends false
23
- ? GreaterThan.ForWholeNumber<B, A>
24
- : GreaterThan.ForWholeNumber<A, B>
25
-
26
- export namespace GreaterThan {
27
- export type ForWholeNumber<
28
- A extends number,
29
- B extends number
30
- > = DigitArray.FromNumberAbs<A> extends infer DA
31
- ? DA extends number[]
32
- ? DigitArray.FromNumberAbs<B> extends infer DB
33
- ? DB extends number[]
34
- ? Max<DA['length'], DB['length']> extends infer M
35
- ? M extends number
36
- ? PadLeft<DA, M, 0> extends infer PDA
37
- ? PDA extends number[]
38
- ? PadLeft<DB, M, 0> extends infer PDB
39
- ? PDB extends number[]
40
- ? ForDigitArray<PDA, PDB>
41
- : never
42
- : never
43
- : never
44
- : never
45
- : never
46
- : never
47
- : never
48
- : never
49
- : never
50
- : never
51
-
52
- export type ForDigitArray<DA extends number[], DB extends number[]> = Equal<Head<DA>, Head<DB>> extends true
53
- ? ForDigitArray<Tail<DA>, Tail<DB>>
54
- : Digit.GreaterThan<Head<DA>, Head<DB>>
55
- }
package/ts/math/Max.ts DELETED
@@ -1,10 +0,0 @@
1
- import { Equal } from '../equal/equal.js'
2
- import type { GreaterThan } from './GreaterThan.js'
3
-
4
- export type Max<A extends number, B extends number, Fail = never> = GreaterThan<A, B> extends infer Result
5
- ? Equal<Result, never> extends true
6
- ? Fail
7
- : Result extends true
8
- ? A
9
- : B
10
- : never
@@ -1,57 +0,0 @@
1
- import type { PadLeft, Some, Tail } from '../array/index.js'
2
- import type { IsInteger } from '../number/integer.js'
3
- import type { IsPositive } from '../number/positive.js'
4
- import type { And } from '../predicates/index.js'
5
- import type { Digit, DigitArray } from './Digit.js'
6
- import type { Max } from './Max.js'
7
-
8
- export type Subtract<A extends number, B extends number, Fail = never> = And<
9
- And<IsPositive<A>, IsInteger<A>>,
10
- And<IsPositive<B>, IsInteger<B>>
11
- > extends true
12
- ? DigitArray.Shift10<DigitArray.FromNumber<A>> extends infer DA
13
- ? DA extends number[]
14
- ? DigitArray.FromNumber<B> extends infer DB
15
- ? DB extends number[]
16
- ? Max<DA['length'], DB['length']> extends infer M
17
- ? M extends number
18
- ? PadLeft<DA, M, 0> extends infer PDA
19
- ? PDA extends number[]
20
- ? PadLeft<DB, M, 0> extends infer PDB
21
- ? PDB extends number[]
22
- ? Subtract.DigitArray<[], PDA, PDB> extends infer Result
23
- ? Result extends number[]
24
- ? Some<Result, never, 'strict'> extends true
25
- ? Fail
26
- : DigitArray.ToNumber<Result>
27
- : Fail
28
- : Fail
29
- : Fail
30
- : Fail
31
- : Fail
32
- : Fail
33
- : Fail
34
- : Fail
35
- : Fail
36
- : Fail
37
- : Fail
38
- : Fail
39
- : Fail
40
-
41
- export namespace Subtract {
42
- export type DigitArray<R extends number[], A extends number[], B extends number[]> = A['length'] extends 0
43
- ? R
44
- : DigitArray<[...R, Digit<A[0], B[0]>], Tail<A>, Tail<B>>
45
-
46
- export type Digit<A extends number, B extends number> = Digit.ToTuple[A] extends [
47
- ...infer U,
48
- ...Digit.ToTuple[B]
49
- ]
50
- ? U['length']
51
- : never
52
- }
53
-
54
- /**
55
- * A - 1
56
- */
57
- export type Decrement<A extends number, Fail = never> = Subtract<A, 1, Fail>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes