type-plus 7.5.0 → 8.0.0-beta.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 (953) hide show
  1. package/esm/array/array.at.d.ts +2 -2
  2. package/esm/array/array.at.d.ts.map +1 -1
  3. package/esm/array/array.entries.d.ts +2 -2
  4. package/esm/array/array.entries.d.ts.map +1 -1
  5. package/esm/array/array.find_last.d.ts +1 -1
  6. package/esm/array/array.find_last.d.ts.map +1 -1
  7. package/esm/array/array.reverse.d.ts +5 -1
  8. package/esm/array/array.reverse.d.ts.map +1 -1
  9. package/esm/array/array.some.d.ts +7 -7
  10. package/esm/array/array.some.d.ts.map +1 -1
  11. package/esm/array/array_plus.common_prop_keys.d.ts +2 -2
  12. package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -1
  13. package/esm/array/array_plus.concat.d.ts +1 -1
  14. package/esm/array/array_plus.concat.d.ts.map +1 -1
  15. package/esm/array/array_plus.d.ts +3 -1
  16. package/esm/array/array_plus.d.ts.map +1 -1
  17. package/esm/array/array_plus.drop_match.d.ts +3 -0
  18. package/esm/array/array_plus.drop_match.d.ts.map +1 -1
  19. package/esm/array/array_plus.element_match.d.ts +11 -11
  20. package/esm/array/array_plus.element_match.d.ts.map +1 -1
  21. package/esm/array/array_plus.filter.d.ts +24 -1
  22. package/esm/array/array_plus.filter.d.ts.map +1 -1
  23. package/esm/array/array_plus.filter.js +1 -0
  24. package/esm/array/array_plus.filter.js.map +1 -1
  25. package/esm/array/array_plus.find.d.ts +10 -10
  26. package/esm/array/array_plus.find.d.ts.map +1 -1
  27. package/esm/array/array_plus.index_at.d.ts +28 -0
  28. package/esm/array/array_plus.index_at.d.ts.map +1 -0
  29. package/esm/array/array_plus.index_at.js +2 -0
  30. package/esm/array/array_plus.index_at.js.map +1 -0
  31. package/esm/array/array_plus.is_index_out_of_bound.d.ts +18 -0
  32. package/esm/array/array_plus.is_index_out_of_bound.d.ts.map +1 -0
  33. package/esm/array/array_plus.is_index_out_of_bound.js +2 -0
  34. package/esm/array/array_plus.is_index_out_of_bound.js.map +1 -0
  35. package/esm/array/array_plus.is_readonly.d.ts +30 -0
  36. package/esm/array/array_plus.is_readonly.d.ts.map +1 -0
  37. package/esm/array/array_plus.is_readonly.js +2 -0
  38. package/esm/array/array_plus.is_readonly.js.map +1 -0
  39. package/esm/array/array_plus.pad_start.d.ts +1 -1
  40. package/esm/array/array_plus.pad_start.d.ts.map +1 -1
  41. package/esm/array/array_plus.split_at.d.ts +21 -16
  42. package/esm/array/array_plus.split_at.d.ts.map +1 -1
  43. package/esm/array/array_type.d.ts +2 -2
  44. package/esm/array/array_type.d.ts.map +1 -1
  45. package/esm/array/filter.d.ts +2 -2
  46. package/esm/array/filter.d.ts.map +1 -1
  47. package/esm/array/find_first.d.ts +6 -6
  48. package/esm/array/find_first.d.ts.map +1 -1
  49. package/esm/array/head.d.ts +2 -2
  50. package/esm/array/head.d.ts.map +1 -1
  51. package/esm/array/intersect_of_props.d.ts +1 -1
  52. package/esm/array/intersect_of_props.d.ts.map +1 -1
  53. package/esm/array/last.d.ts +2 -2
  54. package/esm/array/last.d.ts.map +1 -1
  55. package/esm/array/loose_array_type.d.ts +62 -0
  56. package/esm/array/loose_array_type.d.ts.map +1 -0
  57. package/esm/array/loose_array_type.js +2 -0
  58. package/esm/array/loose_array_type.js.map +1 -0
  59. package/esm/array/pad_start.d.ts +1 -1
  60. package/esm/array/pad_start.d.ts.map +1 -1
  61. package/esm/array/strict_array_type.d.ts +66 -0
  62. package/esm/array/strict_array_type.d.ts.map +1 -0
  63. package/esm/array/strict_array_type.js +2 -0
  64. package/esm/array/strict_array_type.js.map +1 -0
  65. package/esm/array/union_of_props.d.ts +2 -2
  66. package/esm/array/union_of_props.d.ts.map +1 -1
  67. package/esm/array/union_of_values.d.ts +2 -2
  68. package/esm/array/union_of_values.d.ts.map +1 -1
  69. package/esm/equal/equal.d.ts +1 -1
  70. package/esm/equal/equal.d.ts.map +1 -1
  71. package/esm/equal/identity_equal.d.ts +6 -0
  72. package/esm/equal/identity_equal.d.ts.map +1 -0
  73. package/esm/equal/identity_equal.js +2 -0
  74. package/esm/equal/identity_equal.js.map +1 -0
  75. package/esm/index.d.ts +7 -1
  76. package/esm/index.d.ts.map +1 -1
  77. package/esm/index.js +2 -0
  78. package/esm/index.js.map +1 -1
  79. package/esm/math/numeric_struct.d.ts.map +1 -1
  80. package/esm/mix_types/box.d.ts +35 -0
  81. package/esm/mix_types/box.d.ts.map +1 -0
  82. package/esm/mix_types/box.js +2 -0
  83. package/esm/mix_types/box.js.map +1 -0
  84. package/esm/mix_types/merge.d.ts +38 -0
  85. package/esm/mix_types/merge.d.ts.map +1 -0
  86. package/esm/{merge.js → mix_types/merge.js} +1 -1
  87. package/esm/mix_types/merge.js.map +1 -0
  88. package/esm/never/never_type.d.ts +2 -2
  89. package/esm/never/never_type.d.ts.map +1 -1
  90. package/esm/object/ANotB.d.ts +1 -1
  91. package/esm/object/ANotB.d.ts.map +1 -1
  92. package/esm/object/IsDisjoint.d.ts +1 -1
  93. package/esm/object/IsDisjoint.d.ts.map +1 -1
  94. package/esm/object/KeysWithDiffType.d.ts +1 -1
  95. package/esm/object/KeysWithDiffType.d.ts.map +1 -1
  96. package/esm/object/KnownKeys.d.ts.map +1 -1
  97. package/esm/object/RecursiveIntersect.d.ts +2 -2
  98. package/esm/object/RecursiveIntersect.d.ts.map +1 -1
  99. package/esm/object/RecursiveRequired.d.ts +1 -1
  100. package/esm/object/RecursiveRequired.d.ts.map +1 -1
  101. package/{cjs/object/AnyRecord.d.ts → esm/object/any_record.d.ts} +1 -1
  102. package/esm/object/any_record.d.ts.map +1 -0
  103. package/esm/object/any_record.js +2 -0
  104. package/esm/object/any_record.js.map +1 -0
  105. package/esm/object/facade.d.ts +1 -1
  106. package/esm/object/facade.d.ts.map +1 -1
  107. package/esm/object/hasKey.d.ts +1 -1
  108. package/esm/object/hasKey.d.ts.map +1 -1
  109. package/esm/object/index.d.ts +1 -1
  110. package/esm/object/index.d.ts.map +1 -1
  111. package/esm/object/is_strict_object.d.ts +10 -0
  112. package/esm/object/is_strict_object.d.ts.map +1 -0
  113. package/esm/object/is_strict_object.js +2 -0
  114. package/esm/object/is_strict_object.js.map +1 -0
  115. package/esm/object/left_join.d.ts +1 -1
  116. package/esm/object/left_join.d.ts.map +1 -1
  117. package/esm/object/mapProperties.d.ts +1 -1
  118. package/esm/object/mapProperties.d.ts.map +1 -1
  119. package/esm/object/merge.d.ts +59 -0
  120. package/esm/object/merge.d.ts.map +1 -0
  121. package/esm/object/merge.js +2 -0
  122. package/esm/object/merge.js.map +1 -0
  123. package/esm/object/object_plus.d.ts +2 -0
  124. package/esm/object/object_plus.d.ts.map +1 -0
  125. package/esm/object/object_plus.js +2 -0
  126. package/esm/object/object_plus.js.map +1 -0
  127. package/esm/object/omit.d.ts +2 -2
  128. package/esm/object/omit.d.ts.map +1 -1
  129. package/esm/object/omit.js.map +1 -1
  130. package/esm/object/optional_key.d.ts +1 -1
  131. package/esm/object/optional_key.d.ts.map +1 -1
  132. package/esm/object/pick.d.ts +1 -1
  133. package/esm/object/pick.d.ts.map +1 -1
  134. package/esm/object/recursive_partial.d.ts +1 -1
  135. package/esm/object/recursive_partial.d.ts.map +1 -1
  136. package/esm/object/replaceProperty.d.ts +1 -1
  137. package/esm/object/replaceProperty.d.ts.map +1 -1
  138. package/esm/object/split.d.ts +1 -1
  139. package/esm/object/split.d.ts.map +1 -1
  140. package/esm/tuple/common_prop_keys.d.ts +1 -1
  141. package/esm/tuple/drop.d.ts +8 -8
  142. package/esm/tuple/drop.d.ts.map +1 -1
  143. package/esm/tuple/tail.d.ts +1 -1
  144. package/esm/tuple/tail.d.ts.map +1 -1
  145. package/esm/tuple/tuple_plus.common_prop_keys.d.ts +2 -2
  146. package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -1
  147. package/esm/tuple/tuple_plus.filter.d.ts +1 -1
  148. package/esm/tuple/tuple_plus.filter.d.ts.map +1 -1
  149. package/esm/tuple/tuple_plus.find.d.ts +14 -14
  150. package/esm/tuple/tuple_plus.find.d.ts.map +1 -1
  151. package/esm/tuple/tuple_plus.pad_start.d.ts +3 -3
  152. package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
  153. package/esm/tuple/tuple_type.d.ts +4 -4
  154. package/esm/tuple/tuple_type.d.ts.map +1 -1
  155. package/esm/type_plus/cases.d.ts +13 -0
  156. package/esm/type_plus/cases.d.ts.map +1 -0
  157. package/esm/type_plus/cases.js +6 -0
  158. package/esm/type_plus/cases.js.map +1 -0
  159. package/esm/utils/options.d.ts +27 -9
  160. package/esm/utils/options.d.ts.map +1 -1
  161. package/package.json +16 -15
  162. package/{README.md → readme.md} +36 -17
  163. package/ts/array/array.at.ts +2 -2
  164. package/ts/array/array.entries.ts +6 -6
  165. package/ts/array/array.find_last.ts +7 -7
  166. package/ts/array/array.reverse.ts +12 -3
  167. package/ts/array/array.some.ts +13 -13
  168. package/ts/array/array_plus.common_prop_keys.ts +4 -4
  169. package/ts/array/array_plus.concat.ts +1 -1
  170. package/ts/array/array_plus.drop_match.ts +3 -0
  171. package/ts/array/array_plus.element_match.ts +16 -16
  172. package/ts/array/array_plus.filter.ts +49 -5
  173. package/ts/array/array_plus.find.ts +13 -13
  174. package/ts/array/{array_index.ts → array_plus.index_at.ts} +37 -41
  175. package/ts/array/array_plus.is_index_out_of_bound.ts +22 -0
  176. package/ts/array/array_plus.is_readonly.ts +46 -0
  177. package/ts/array/array_plus.pad_start.ts +1 -1
  178. package/ts/array/array_plus.split_at.ts +53 -24
  179. package/ts/array/array_plus.ts +3 -1
  180. package/ts/array/array_type.ts +5 -1
  181. package/ts/array/filter.ts +2 -2
  182. package/ts/array/find_first.ts +6 -6
  183. package/ts/array/head.ts +3 -3
  184. package/ts/array/intersect_of_props.ts +1 -1
  185. package/ts/array/last.ts +6 -4
  186. package/ts/array/loose_array_type.ts +69 -0
  187. package/ts/array/pad_start.ts +1 -1
  188. package/ts/array/readme.md +125 -35
  189. package/ts/array/strict_array_type.ts +75 -0
  190. package/ts/array/union_of_props.ts +2 -2
  191. package/ts/array/union_of_values.ts +2 -2
  192. package/ts/equal/equal.ts +23 -30
  193. package/ts/equal/identity_equal.ts +9 -0
  194. package/ts/index.ts +7 -1
  195. package/ts/math/numeric_struct.ts +109 -109
  196. package/ts/mix_types/box.ts +62 -0
  197. package/ts/mix_types/merge.ts +61 -0
  198. package/ts/mix_types/readme.md +34 -0
  199. package/ts/never/never_type.ts +2 -2
  200. package/ts/object/ANotB.ts +1 -1
  201. package/ts/object/IsDisjoint.ts +1 -1
  202. package/ts/object/KeysWithDiffType.ts +3 -3
  203. package/ts/object/KnownKeys.ts +5 -5
  204. package/ts/object/RecursiveIntersect.ts +7 -7
  205. package/ts/object/RecursiveRequired.ts +1 -1
  206. package/ts/object/facade.ts +1 -1
  207. package/ts/object/hasKey.ts +1 -1
  208. package/ts/object/index.ts +1 -1
  209. package/ts/object/is_strict_object.ts +14 -0
  210. package/ts/object/left_join.ts +1 -1
  211. package/ts/object/mapProperties.ts +1 -1
  212. package/ts/object/merge.ts +122 -0
  213. package/ts/object/object_plus.ts +1 -0
  214. package/ts/object/omit.ts +4 -5
  215. package/ts/object/optional_key.ts +1 -1
  216. package/ts/object/pick.ts +1 -1
  217. package/ts/object/readme.md +14 -0
  218. package/ts/object/record.ts +1 -1
  219. package/ts/object/recursive_partial.ts +1 -1
  220. package/ts/object/replaceProperty.ts +1 -1
  221. package/ts/object/split.ts +1 -1
  222. package/ts/tuple/common_prop_keys.ts +1 -1
  223. package/ts/tuple/drop.ts +8 -8
  224. package/ts/tuple/readme.md +17 -17
  225. package/ts/tuple/tail.ts +4 -6
  226. package/ts/tuple/tuple_plus.common_prop_keys.ts +2 -2
  227. package/ts/tuple/tuple_plus.filter.ts +2 -2
  228. package/ts/tuple/tuple_plus.find.ts +19 -19
  229. package/ts/tuple/tuple_plus.pad_start.ts +12 -9
  230. package/ts/tuple/tuple_type.ts +4 -4
  231. package/ts/type_plus/cases.ts +14 -0
  232. package/ts/utils/options.ts +27 -8
  233. package/cjs/any/any_type.d.ts +0 -63
  234. package/cjs/any/any_type.d.ts.map +0 -1
  235. package/cjs/any/any_type.js +0 -3
  236. package/cjs/any/any_type.js.map +0 -1
  237. package/cjs/array/array.at.d.ts +0 -20
  238. package/cjs/array/array.at.d.ts.map +0 -1
  239. package/cjs/array/array.at.js +0 -3
  240. package/cjs/array/array.at.js.map +0 -1
  241. package/cjs/array/array.entries.d.ts +0 -18
  242. package/cjs/array/array.entries.d.ts.map +0 -1
  243. package/cjs/array/array.entries.js +0 -3
  244. package/cjs/array/array.entries.js.map +0 -1
  245. package/cjs/array/array.find_last.d.ts +0 -19
  246. package/cjs/array/array.find_last.d.ts.map +0 -1
  247. package/cjs/array/array.find_last.js +0 -3
  248. package/cjs/array/array.find_last.js.map +0 -1
  249. package/cjs/array/array.reverse.d.ts +0 -2
  250. package/cjs/array/array.reverse.d.ts.map +0 -1
  251. package/cjs/array/array.reverse.js +0 -3
  252. package/cjs/array/array.reverse.js.map +0 -1
  253. package/cjs/array/array.some.d.ts +0 -33
  254. package/cjs/array/array.some.d.ts.map +0 -1
  255. package/cjs/array/array.some.js +0 -3
  256. package/cjs/array/array.some.js.map +0 -1
  257. package/cjs/array/array_index.d.ts +0 -34
  258. package/cjs/array/array_index.d.ts.map +0 -1
  259. package/cjs/array/array_index.js +0 -3
  260. package/cjs/array/array_index.js.map +0 -1
  261. package/cjs/array/array_plus.common_prop_keys.d.ts +0 -27
  262. package/cjs/array/array_plus.common_prop_keys.d.ts.map +0 -1
  263. package/cjs/array/array_plus.common_prop_keys.js +0 -3
  264. package/cjs/array/array_plus.common_prop_keys.js.map +0 -1
  265. package/cjs/array/array_plus.concat.d.ts +0 -16
  266. package/cjs/array/array_plus.concat.d.ts.map +0 -1
  267. package/cjs/array/array_plus.concat.js +0 -3
  268. package/cjs/array/array_plus.concat.js.map +0 -1
  269. package/cjs/array/array_plus.d.ts +0 -15
  270. package/cjs/array/array_plus.d.ts.map +0 -1
  271. package/cjs/array/array_plus.drop_match.d.ts +0 -4
  272. package/cjs/array/array_plus.drop_match.d.ts.map +0 -1
  273. package/cjs/array/array_plus.drop_match.js +0 -3
  274. package/cjs/array/array_plus.drop_match.js.map +0 -1
  275. package/cjs/array/array_plus.element_match.d.ts +0 -44
  276. package/cjs/array/array_plus.element_match.d.ts.map +0 -1
  277. package/cjs/array/array_plus.element_match.js +0 -3
  278. package/cjs/array/array_plus.element_match.js.map +0 -1
  279. package/cjs/array/array_plus.filter.d.ts +0 -2
  280. package/cjs/array/array_plus.filter.d.ts.map +0 -1
  281. package/cjs/array/array_plus.filter.js +0 -3
  282. package/cjs/array/array_plus.filter.js.map +0 -1
  283. package/cjs/array/array_plus.find.d.ts +0 -57
  284. package/cjs/array/array_plus.find.d.ts.map +0 -1
  285. package/cjs/array/array_plus.find.js +0 -3
  286. package/cjs/array/array_plus.find.js.map +0 -1
  287. package/cjs/array/array_plus.js +0 -3
  288. package/cjs/array/array_plus.js.map +0 -1
  289. package/cjs/array/array_plus.pad_start.d.ts +0 -5
  290. package/cjs/array/array_plus.pad_start.d.ts.map +0 -1
  291. package/cjs/array/array_plus.pad_start.js +0 -3
  292. package/cjs/array/array_plus.pad_start.js.map +0 -1
  293. package/cjs/array/array_plus.split_at.d.ts +0 -35
  294. package/cjs/array/array_plus.split_at.d.ts.map +0 -1
  295. package/cjs/array/array_plus.split_at.js +0 -3
  296. package/cjs/array/array_plus.split_at.js.map +0 -1
  297. package/cjs/array/array_type.d.ts +0 -66
  298. package/cjs/array/array_type.d.ts.map +0 -1
  299. package/cjs/array/array_type.js +0 -3
  300. package/cjs/array/array_type.js.map +0 -1
  301. package/cjs/array/filter.d.ts +0 -29
  302. package/cjs/array/filter.d.ts.map +0 -1
  303. package/cjs/array/filter.js +0 -3
  304. package/cjs/array/filter.js.map +0 -1
  305. package/cjs/array/find_first.d.ts +0 -62
  306. package/cjs/array/find_first.d.ts.map +0 -1
  307. package/cjs/array/find_first.js +0 -3
  308. package/cjs/array/find_first.js.map +0 -1
  309. package/cjs/array/head.d.ts +0 -31
  310. package/cjs/array/head.d.ts.map +0 -1
  311. package/cjs/array/head.js +0 -3
  312. package/cjs/array/head.js.map +0 -1
  313. package/cjs/array/intersect_of_props.d.ts +0 -14
  314. package/cjs/array/intersect_of_props.d.ts.map +0 -1
  315. package/cjs/array/intersect_of_props.js +0 -3
  316. package/cjs/array/intersect_of_props.js.map +0 -1
  317. package/cjs/array/last.d.ts +0 -30
  318. package/cjs/array/last.d.ts.map +0 -1
  319. package/cjs/array/last.js +0 -3
  320. package/cjs/array/last.js.map +0 -1
  321. package/cjs/array/literal_array.d.ts +0 -8
  322. package/cjs/array/literal_array.d.ts.map +0 -1
  323. package/cjs/array/literal_array.js +0 -13
  324. package/cjs/array/literal_array.js.map +0 -1
  325. package/cjs/array/pad_start.d.ts +0 -32
  326. package/cjs/array/pad_start.d.ts.map +0 -1
  327. package/cjs/array/pad_start.js +0 -3
  328. package/cjs/array/pad_start.js.map +0 -1
  329. package/cjs/array/reduce_while.d.ts +0 -8
  330. package/cjs/array/reduce_while.d.ts.map +0 -1
  331. package/cjs/array/reduce_while.js +0 -21
  332. package/cjs/array/reduce_while.js.map +0 -1
  333. package/cjs/array/reverse.d.ts +0 -7
  334. package/cjs/array/reverse.d.ts.map +0 -1
  335. package/cjs/array/reverse.js +0 -3
  336. package/cjs/array/reverse.js.map +0 -1
  337. package/cjs/array/union_of_props.d.ts +0 -12
  338. package/cjs/array/union_of_props.d.ts.map +0 -1
  339. package/cjs/array/union_of_props.js +0 -3
  340. package/cjs/array/union_of_props.js.map +0 -1
  341. package/cjs/array/union_of_values.d.ts +0 -10
  342. package/cjs/array/union_of_values.d.ts.map +0 -1
  343. package/cjs/array/union_of_values.js +0 -3
  344. package/cjs/array/union_of_values.js.map +0 -1
  345. package/cjs/assertion/assert_type.d.ts +0 -40
  346. package/cjs/assertion/assert_type.d.ts.map +0 -1
  347. package/cjs/assertion/assert_type.js +0 -113
  348. package/cjs/assertion/assert_type.js.map +0 -1
  349. package/cjs/bigint/bigint_type.d.ts +0 -54
  350. package/cjs/bigint/bigint_type.d.ts.map +0 -1
  351. package/cjs/bigint/bigint_type.js +0 -3
  352. package/cjs/bigint/bigint_type.js.map +0 -1
  353. package/cjs/bigint/cast.d.ts +0 -10
  354. package/cjs/bigint/cast.d.ts.map +0 -1
  355. package/cjs/bigint/cast.js +0 -3
  356. package/cjs/bigint/cast.js.map +0 -1
  357. package/cjs/bigint/strict_bigint_type.d.ts +0 -56
  358. package/cjs/bigint/strict_bigint_type.d.ts.map +0 -1
  359. package/cjs/bigint/strict_bigint_type.js +0 -3
  360. package/cjs/bigint/strict_bigint_type.js.map +0 -1
  361. package/cjs/binary/Bit.d.ts +0 -6
  362. package/cjs/binary/Bit.d.ts.map +0 -1
  363. package/cjs/binary/Bit.js +0 -3
  364. package/cjs/binary/Bit.js.map +0 -1
  365. package/cjs/binary/_binary.d.ts +0 -2
  366. package/cjs/binary/_binary.d.ts.map +0 -1
  367. package/cjs/binary/_binary.js +0 -3
  368. package/cjs/binary/_binary.js.map +0 -1
  369. package/cjs/binary/index.d.ts +0 -3
  370. package/cjs/binary/index.d.ts.map +0 -1
  371. package/cjs/binary/index.js +0 -6
  372. package/cjs/binary/index.js.map +0 -1
  373. package/cjs/boolean/boolean_type.d.ts +0 -56
  374. package/cjs/boolean/boolean_type.d.ts.map +0 -1
  375. package/cjs/boolean/boolean_type.js +0 -3
  376. package/cjs/boolean/boolean_type.js.map +0 -1
  377. package/cjs/boolean/false_type.d.ts +0 -49
  378. package/cjs/boolean/false_type.d.ts.map +0 -1
  379. package/cjs/boolean/false_type.js +0 -3
  380. package/cjs/boolean/false_type.js.map +0 -1
  381. package/cjs/boolean/strict_boolean_type.d.ts +0 -53
  382. package/cjs/boolean/strict_boolean_type.d.ts.map +0 -1
  383. package/cjs/boolean/strict_boolean_type.js +0 -3
  384. package/cjs/boolean/strict_boolean_type.js.map +0 -1
  385. package/cjs/boolean/true_type.d.ts +0 -49
  386. package/cjs/boolean/true_type.d.ts.map +0 -1
  387. package/cjs/boolean/true_type.js +0 -3
  388. package/cjs/boolean/true_type.js.map +0 -1
  389. package/cjs/class/AnyConstructor.d.ts +0 -2
  390. package/cjs/class/AnyConstructor.d.ts.map +0 -1
  391. package/cjs/class/AnyConstructor.js +0 -3
  392. package/cjs/class/AnyConstructor.js.map +0 -1
  393. package/cjs/class/index.d.ts +0 -3
  394. package/cjs/class/index.d.ts.map +0 -1
  395. package/cjs/class/index.js +0 -18
  396. package/cjs/class/index.js.map +0 -1
  397. package/cjs/class/isConstructor.d.ts +0 -18
  398. package/cjs/class/isConstructor.d.ts.map +0 -1
  399. package/cjs/class/isConstructor.js +0 -35
  400. package/cjs/class/isConstructor.js.map +0 -1
  401. package/cjs/composable_types.d.ts +0 -9
  402. package/cjs/composable_types.d.ts.map +0 -1
  403. package/cjs/composable_types.js +0 -3
  404. package/cjs/composable_types.js.map +0 -1
  405. package/cjs/equal/equal.d.ts +0 -99
  406. package/cjs/equal/equal.d.ts.map +0 -1
  407. package/cjs/equal/equal.js +0 -3
  408. package/cjs/equal/equal.js.map +0 -1
  409. package/cjs/function/any_function.d.ts +0 -2
  410. package/cjs/function/any_function.d.ts.map +0 -1
  411. package/cjs/function/any_function.js +0 -3
  412. package/cjs/function/any_function.js.map +0 -1
  413. package/cjs/function/extract_function.d.ts +0 -24
  414. package/cjs/function/extract_function.d.ts.map +0 -1
  415. package/cjs/function/extract_function.js +0 -13
  416. package/cjs/function/extract_function.js.map +0 -1
  417. package/cjs/function/function_type.d.ts +0 -59
  418. package/cjs/function/function_type.d.ts.map +0 -1
  419. package/cjs/function/function_type.js +0 -3
  420. package/cjs/function/function_type.js.map +0 -1
  421. package/cjs/function/strict_function_type.d.ts +0 -49
  422. package/cjs/function/strict_function_type.d.ts.map +0 -1
  423. package/cjs/function/strict_function_type.js +0 -3
  424. package/cjs/function/strict_function_type.js.map +0 -1
  425. package/cjs/functional/ChainFn.d.ts +0 -6
  426. package/cjs/functional/ChainFn.d.ts.map +0 -1
  427. package/cjs/functional/ChainFn.js +0 -3
  428. package/cjs/functional/ChainFn.js.map +0 -1
  429. package/cjs/functional/Maybe.d.ts +0 -13
  430. package/cjs/functional/Maybe.d.ts.map +0 -1
  431. package/cjs/functional/Maybe.js +0 -17
  432. package/cjs/functional/Maybe.js.map +0 -1
  433. package/cjs/functional/compose.d.ts +0 -12
  434. package/cjs/functional/compose.d.ts.map +0 -1
  435. package/cjs/functional/compose.js +0 -16
  436. package/cjs/functional/compose.js.map +0 -1
  437. package/cjs/functional/context.d.ts +0 -40
  438. package/cjs/functional/context.d.ts.map +0 -1
  439. package/cjs/functional/context.js +0 -32
  440. package/cjs/functional/context.js.map +0 -1
  441. package/cjs/functional/index.d.ts +0 -4
  442. package/cjs/functional/index.d.ts.map +0 -1
  443. package/cjs/functional/index.js +0 -19
  444. package/cjs/functional/index.js.map +0 -1
  445. package/cjs/index.d.ts +0 -84
  446. package/cjs/index.d.ts.map +0 -1
  447. package/cjs/index.js +0 -45
  448. package/cjs/index.js.map +0 -1
  449. package/cjs/json.d.ts +0 -12
  450. package/cjs/json.d.ts.map +0 -1
  451. package/cjs/json.js +0 -14
  452. package/cjs/json.js.map +0 -1
  453. package/cjs/math/abs.d.ts +0 -6
  454. package/cjs/math/abs.d.ts.map +0 -1
  455. package/cjs/math/abs.js +0 -3
  456. package/cjs/math/abs.js.map +0 -1
  457. package/cjs/math/add.d.ts +0 -7
  458. package/cjs/math/add.d.ts.map +0 -1
  459. package/cjs/math/add.js +0 -3
  460. package/cjs/math/add.js.map +0 -1
  461. package/cjs/math/greater_than.d.ts +0 -4
  462. package/cjs/math/greater_than.d.ts.map +0 -1
  463. package/cjs/math/greater_than.js +0 -3
  464. package/cjs/math/greater_than.js.map +0 -1
  465. package/cjs/math/index.d.ts +0 -7
  466. package/cjs/math/index.d.ts.map +0 -1
  467. package/cjs/math/index.js +0 -3
  468. package/cjs/math/index.js.map +0 -1
  469. package/cjs/math/math_plus.d.ts +0 -5
  470. package/cjs/math/math_plus.d.ts.map +0 -1
  471. package/cjs/math/math_plus.js +0 -3
  472. package/cjs/math/math_plus.js.map +0 -1
  473. package/cjs/math/math_plus.to_negative.d.ts +0 -13
  474. package/cjs/math/math_plus.to_negative.d.ts.map +0 -1
  475. package/cjs/math/math_plus.to_negative.js +0 -3
  476. package/cjs/math/math_plus.to_negative.js.map +0 -1
  477. package/cjs/math/max.d.ts +0 -4
  478. package/cjs/math/max.d.ts.map +0 -1
  479. package/cjs/math/max.js +0 -3
  480. package/cjs/math/max.js.map +0 -1
  481. package/cjs/math/multiply.d.ts +0 -6
  482. package/cjs/math/multiply.d.ts.map +0 -1
  483. package/cjs/math/multiply.js +0 -3
  484. package/cjs/math/multiply.js.map +0 -1
  485. package/cjs/math/numeric_struct.d.ts +0 -1480
  486. package/cjs/math/numeric_struct.d.ts.map +0 -1
  487. package/cjs/math/numeric_struct.js +0 -3
  488. package/cjs/math/numeric_struct.js.map +0 -1
  489. package/cjs/math/subtract.d.ts +0 -7
  490. package/cjs/math/subtract.d.ts.map +0 -1
  491. package/cjs/math/subtract.js +0 -3
  492. package/cjs/math/subtract.js.map +0 -1
  493. package/cjs/merge.d.ts +0 -55
  494. package/cjs/merge.d.ts.map +0 -1
  495. package/cjs/merge.js +0 -18
  496. package/cjs/merge.js.map +0 -1
  497. package/cjs/mix_types/any_or_never_type.d.ts +0 -37
  498. package/cjs/mix_types/any_or_never_type.d.ts.map +0 -1
  499. package/cjs/mix_types/any_or_never_type.js +0 -3
  500. package/cjs/mix_types/any_or_never_type.js.map +0 -1
  501. package/cjs/never/never_type.d.ts +0 -62
  502. package/cjs/never/never_type.d.ts.map +0 -1
  503. package/cjs/never/never_type.js +0 -3
  504. package/cjs/never/never_type.js.map +0 -1
  505. package/cjs/nodejs/index.d.ts +0 -2
  506. package/cjs/nodejs/index.d.ts.map +0 -1
  507. package/cjs/nodejs/index.js +0 -18
  508. package/cjs/nodejs/index.js.map +0 -1
  509. package/cjs/nodejs/isNodeError.d.ts +0 -31
  510. package/cjs/nodejs/isNodeError.d.ts.map +0 -1
  511. package/cjs/nodejs/isNodeError.js +0 -13
  512. package/cjs/nodejs/isNodeError.js.map +0 -1
  513. package/cjs/nominal/brand.d.ts +0 -23
  514. package/cjs/nominal/brand.d.ts.map +0 -1
  515. package/cjs/nominal/brand.js +0 -20
  516. package/cjs/nominal/brand.js.map +0 -1
  517. package/cjs/nominal/constants.d.ts +0 -3
  518. package/cjs/nominal/constants.d.ts.map +0 -1
  519. package/cjs/nominal/constants.js +0 -6
  520. package/cjs/nominal/constants.js.map +0 -1
  521. package/cjs/nominal/flavor.d.ts +0 -31
  522. package/cjs/nominal/flavor.d.ts.map +0 -1
  523. package/cjs/nominal/flavor.js +0 -20
  524. package/cjs/nominal/flavor.js.map +0 -1
  525. package/cjs/nominal/index.d.ts +0 -4
  526. package/cjs/nominal/index.d.ts.map +0 -1
  527. package/cjs/nominal/index.js +0 -20
  528. package/cjs/nominal/index.js.map +0 -1
  529. package/cjs/nominal/nominal_match.d.ts +0 -5
  530. package/cjs/nominal/nominal_match.d.ts.map +0 -1
  531. package/cjs/nominal/nominal_match.js +0 -13
  532. package/cjs/nominal/nominal_match.js.map +0 -1
  533. package/cjs/null/null_type.d.ts +0 -50
  534. package/cjs/null/null_type.d.ts.map +0 -1
  535. package/cjs/null/null_type.js +0 -3
  536. package/cjs/null/null_type.js.map +0 -1
  537. package/cjs/number/cast.d.ts +0 -10
  538. package/cjs/number/cast.d.ts.map +0 -1
  539. package/cjs/number/cast.js +0 -3
  540. package/cjs/number/cast.js.map +0 -1
  541. package/cjs/number/number_array.d.ts +0 -1
  542. package/cjs/number/number_array.d.ts.map +0 -1
  543. package/cjs/number/number_array.js +0 -16
  544. package/cjs/number/number_array.js.map +0 -1
  545. package/cjs/number/number_plus.d.ts +0 -7
  546. package/cjs/number/number_plus.d.ts.map +0 -1
  547. package/cjs/number/number_plus.js +0 -3
  548. package/cjs/number/number_plus.js.map +0 -1
  549. package/cjs/number/number_type.d.ts +0 -50
  550. package/cjs/number/number_type.d.ts.map +0 -1
  551. package/cjs/number/number_type.js +0 -3
  552. package/cjs/number/number_type.js.map +0 -1
  553. package/cjs/number/strict_number_type.d.ts +0 -65
  554. package/cjs/number/strict_number_type.d.ts.map +0 -1
  555. package/cjs/number/strict_number_type.js +0 -3
  556. package/cjs/number/strict_number_type.js.map +0 -1
  557. package/cjs/numeric/cast.d.ts +0 -27
  558. package/cjs/numeric/cast.d.ts.map +0 -1
  559. package/cjs/numeric/cast.js +0 -3
  560. package/cjs/numeric/cast.js.map +0 -1
  561. package/cjs/numeric/integer.d.ts +0 -69
  562. package/cjs/numeric/integer.d.ts.map +0 -1
  563. package/cjs/numeric/integer.js +0 -3
  564. package/cjs/numeric/integer.js.map +0 -1
  565. package/cjs/numeric/negative.d.ts +0 -70
  566. package/cjs/numeric/negative.d.ts.map +0 -1
  567. package/cjs/numeric/negative.js +0 -3
  568. package/cjs/numeric/negative.js.map +0 -1
  569. package/cjs/numeric/numeric_plus.d.ts +0 -5
  570. package/cjs/numeric/numeric_plus.d.ts.map +0 -1
  571. package/cjs/numeric/numeric_plus.js +0 -3
  572. package/cjs/numeric/numeric_plus.js.map +0 -1
  573. package/cjs/numeric/numeric_type.d.ts +0 -59
  574. package/cjs/numeric/numeric_type.d.ts.map +0 -1
  575. package/cjs/numeric/numeric_type.js +0 -3
  576. package/cjs/numeric/numeric_type.js.map +0 -1
  577. package/cjs/numeric/positive.d.ts +0 -53
  578. package/cjs/numeric/positive.d.ts.map +0 -1
  579. package/cjs/numeric/positive.js +0 -3
  580. package/cjs/numeric/positive.js.map +0 -1
  581. package/cjs/object/ANotB.d.ts +0 -9
  582. package/cjs/object/ANotB.d.ts.map +0 -1
  583. package/cjs/object/ANotB.js +0 -3
  584. package/cjs/object/ANotB.js.map +0 -1
  585. package/cjs/object/AnyRecord.d.ts.map +0 -1
  586. package/cjs/object/AnyRecord.js +0 -3
  587. package/cjs/object/AnyRecord.js.map +0 -1
  588. package/cjs/object/ExcludePropType.d.ts +0 -7
  589. package/cjs/object/ExcludePropType.d.ts.map +0 -1
  590. package/cjs/object/ExcludePropType.js +0 -3
  591. package/cjs/object/ExcludePropType.js.map +0 -1
  592. package/cjs/object/IsDisjoint.d.ts +0 -9
  593. package/cjs/object/IsDisjoint.d.ts.map +0 -1
  594. package/cjs/object/IsDisjoint.js +0 -3
  595. package/cjs/object/IsDisjoint.js.map +0 -1
  596. package/cjs/object/IsRecord.d.ts +0 -2
  597. package/cjs/object/IsRecord.d.ts.map +0 -1
  598. package/cjs/object/IsRecord.js +0 -3
  599. package/cjs/object/IsRecord.js.map +0 -1
  600. package/cjs/object/KeyTypes.d.ts +0 -7
  601. package/cjs/object/KeyTypes.d.ts.map +0 -1
  602. package/cjs/object/KeyTypes.js +0 -3
  603. package/cjs/object/KeyTypes.js.map +0 -1
  604. package/cjs/object/KeyofOptional.d.ts +0 -6
  605. package/cjs/object/KeyofOptional.d.ts.map +0 -1
  606. package/cjs/object/KeyofOptional.js +0 -3
  607. package/cjs/object/KeyofOptional.js.map +0 -1
  608. package/cjs/object/KeysWithDiffType.d.ts +0 -7
  609. package/cjs/object/KeysWithDiffType.d.ts.map +0 -1
  610. package/cjs/object/KeysWithDiffType.js +0 -3
  611. package/cjs/object/KeysWithDiffType.js.map +0 -1
  612. package/cjs/object/KnownKeys.d.ts +0 -7
  613. package/cjs/object/KnownKeys.d.ts.map +0 -1
  614. package/cjs/object/KnownKeys.js +0 -6
  615. package/cjs/object/KnownKeys.js.map +0 -1
  616. package/cjs/object/OptionalKeys.d.ts +0 -8
  617. package/cjs/object/OptionalKeys.d.ts.map +0 -1
  618. package/cjs/object/OptionalKeys.js +0 -3
  619. package/cjs/object/OptionalKeys.js.map +0 -1
  620. package/cjs/object/Partial.d.ts +0 -22
  621. package/cjs/object/Partial.d.ts.map +0 -1
  622. package/cjs/object/Partial.js +0 -3
  623. package/cjs/object/Partial.js.map +0 -1
  624. package/cjs/object/RecursiveIntersect.d.ts +0 -16
  625. package/cjs/object/RecursiveIntersect.d.ts.map +0 -1
  626. package/cjs/object/RecursiveIntersect.js +0 -3
  627. package/cjs/object/RecursiveIntersect.js.map +0 -1
  628. package/cjs/object/RecursiveRequired.d.ts +0 -5
  629. package/cjs/object/RecursiveRequired.d.ts.map +0 -1
  630. package/cjs/object/RecursiveRequired.js +0 -3
  631. package/cjs/object/RecursiveRequired.js.map +0 -1
  632. package/cjs/object/Required.d.ts +0 -7
  633. package/cjs/object/Required.d.ts.map +0 -1
  634. package/cjs/object/Required.js +0 -4
  635. package/cjs/object/Required.js.map +0 -1
  636. package/cjs/object/RequiredKeys.d.ts +0 -7
  637. package/cjs/object/RequiredKeys.d.ts.map +0 -1
  638. package/cjs/object/RequiredKeys.js +0 -3
  639. package/cjs/object/RequiredKeys.js.map +0 -1
  640. package/cjs/object/SpreadRecord.d.ts +0 -3
  641. package/cjs/object/SpreadRecord.d.ts.map +0 -1
  642. package/cjs/object/SpreadRecord.js +0 -3
  643. package/cjs/object/SpreadRecord.js.map +0 -1
  644. package/cjs/object/ValueOf.d.ts +0 -2
  645. package/cjs/object/ValueOf.d.ts.map +0 -1
  646. package/cjs/object/ValueOf.js +0 -3
  647. package/cjs/object/ValueOf.js.map +0 -1
  648. package/cjs/object/everyKey.d.ts +0 -3
  649. package/cjs/object/everyKey.d.ts.map +0 -1
  650. package/cjs/object/everyKey.js +0 -8
  651. package/cjs/object/everyKey.js.map +0 -1
  652. package/cjs/object/facade.d.ts +0 -17
  653. package/cjs/object/facade.d.ts.map +0 -1
  654. package/cjs/object/facade.js +0 -27
  655. package/cjs/object/facade.js.map +0 -1
  656. package/cjs/object/filterKey.d.ts +0 -3
  657. package/cjs/object/filterKey.d.ts.map +0 -1
  658. package/cjs/object/filterKey.js +0 -10
  659. package/cjs/object/filterKey.js.map +0 -1
  660. package/cjs/object/findKey.d.ts +0 -3
  661. package/cjs/object/findKey.d.ts.map +0 -1
  662. package/cjs/object/findKey.js +0 -10
  663. package/cjs/object/findKey.js.map +0 -1
  664. package/cjs/object/forEachKey.d.ts +0 -3
  665. package/cjs/object/forEachKey.d.ts.map +0 -1
  666. package/cjs/object/forEachKey.js +0 -8
  667. package/cjs/object/forEachKey.js.map +0 -1
  668. package/cjs/object/getField.d.ts +0 -4
  669. package/cjs/object/getField.d.ts.map +0 -1
  670. package/cjs/object/getField.js +0 -8
  671. package/cjs/object/getField.js.map +0 -1
  672. package/cjs/object/hasKey.d.ts +0 -4
  673. package/cjs/object/hasKey.d.ts.map +0 -1
  674. package/cjs/object/hasKey.js +0 -8
  675. package/cjs/object/hasKey.js.map +0 -1
  676. package/cjs/object/hasProperty.d.ts +0 -3
  677. package/cjs/object/hasProperty.d.ts.map +0 -1
  678. package/cjs/object/hasProperty.js +0 -8
  679. package/cjs/object/hasProperty.js.map +0 -1
  680. package/cjs/object/index.d.ts +0 -39
  681. package/cjs/object/index.d.ts.map +0 -1
  682. package/cjs/object/index.js +0 -36
  683. package/cjs/object/index.js.map +0 -1
  684. package/cjs/object/left_join.d.ts +0 -15
  685. package/cjs/object/left_join.d.ts.map +0 -1
  686. package/cjs/object/left_join.js +0 -3
  687. package/cjs/object/left_join.js.map +0 -1
  688. package/cjs/object/mapKey.d.ts +0 -3
  689. package/cjs/object/mapKey.d.ts.map +0 -1
  690. package/cjs/object/mapKey.js +0 -10
  691. package/cjs/object/mapKey.js.map +0 -1
  692. package/cjs/object/mapProperties.d.ts +0 -14
  693. package/cjs/object/mapProperties.d.ts.map +0 -1
  694. package/cjs/object/mapProperties.js +0 -17
  695. package/cjs/object/mapProperties.js.map +0 -1
  696. package/cjs/object/object_type.d.ts +0 -54
  697. package/cjs/object/object_type.d.ts.map +0 -1
  698. package/cjs/object/object_type.js +0 -3
  699. package/cjs/object/object_type.js.map +0 -1
  700. package/cjs/object/omit.d.ts +0 -22
  701. package/cjs/object/omit.d.ts.map +0 -1
  702. package/cjs/object/omit.js +0 -14
  703. package/cjs/object/omit.js.map +0 -1
  704. package/cjs/object/optional_key.d.ts +0 -35
  705. package/cjs/object/optional_key.d.ts.map +0 -1
  706. package/cjs/object/optional_key.js +0 -3
  707. package/cjs/object/optional_key.js.map +0 -1
  708. package/cjs/object/pick.d.ts +0 -29
  709. package/cjs/object/pick.d.ts.map +0 -1
  710. package/cjs/object/pick.js +0 -14
  711. package/cjs/object/pick.js.map +0 -1
  712. package/cjs/object/properties.d.ts +0 -7
  713. package/cjs/object/properties.d.ts.map +0 -1
  714. package/cjs/object/properties.js +0 -3
  715. package/cjs/object/properties.js.map +0 -1
  716. package/cjs/object/record.d.ts +0 -17
  717. package/cjs/object/record.d.ts.map +0 -1
  718. package/cjs/object/record.js +0 -9
  719. package/cjs/object/record.js.map +0 -1
  720. package/cjs/object/recursive_partial.d.ts +0 -29
  721. package/cjs/object/recursive_partial.d.ts.map +0 -1
  722. package/cjs/object/recursive_partial.js +0 -4
  723. package/cjs/object/recursive_partial.js.map +0 -1
  724. package/cjs/object/reduceKey.d.ts +0 -7
  725. package/cjs/object/reduceKey.d.ts.map +0 -1
  726. package/cjs/object/reduceKey.js +0 -12
  727. package/cjs/object/reduceKey.js.map +0 -1
  728. package/cjs/object/replaceProperty.d.ts +0 -6
  729. package/cjs/object/replaceProperty.d.ts.map +0 -1
  730. package/cjs/object/replaceProperty.js +0 -8
  731. package/cjs/object/replaceProperty.js.map +0 -1
  732. package/cjs/object/someKey.d.ts +0 -3
  733. package/cjs/object/someKey.d.ts.map +0 -1
  734. package/cjs/object/someKey.js +0 -10
  735. package/cjs/object/someKey.js.map +0 -1
  736. package/cjs/object/split.d.ts +0 -76
  737. package/cjs/object/split.d.ts.map +0 -1
  738. package/cjs/object/split.js +0 -12
  739. package/cjs/object/split.js.map +0 -1
  740. package/cjs/object/typeOverrideIncompatible.d.ts +0 -3
  741. package/cjs/object/typeOverrideIncompatible.d.ts.map +0 -1
  742. package/cjs/object/typeOverrideIncompatible.js +0 -13
  743. package/cjs/object/typeOverrideIncompatible.js.map +0 -1
  744. package/cjs/package.json +0 -3
  745. package/cjs/predicates/CanAssign.d.ts +0 -45
  746. package/cjs/predicates/CanAssign.d.ts.map +0 -1
  747. package/cjs/predicates/CanAssign.js +0 -8
  748. package/cjs/predicates/CanAssign.js.map +0 -1
  749. package/cjs/predicates/Extends.d.ts +0 -5
  750. package/cjs/predicates/Extends.d.ts.map +0 -1
  751. package/cjs/predicates/Extends.js +0 -3
  752. package/cjs/predicates/Extends.js.map +0 -1
  753. package/cjs/predicates/If.d.ts +0 -2
  754. package/cjs/predicates/If.d.ts.map +0 -1
  755. package/cjs/predicates/If.js +0 -3
  756. package/cjs/predicates/If.js.map +0 -1
  757. package/cjs/predicates/IsEmptyObject.d.ts +0 -2
  758. package/cjs/predicates/IsEmptyObject.d.ts.map +0 -1
  759. package/cjs/predicates/IsEmptyObject.js +0 -3
  760. package/cjs/predicates/IsEmptyObject.js.map +0 -1
  761. package/cjs/predicates/index.d.ts +0 -7
  762. package/cjs/predicates/index.d.ts.map +0 -1
  763. package/cjs/predicates/index.js +0 -18
  764. package/cjs/predicates/index.js.map +0 -1
  765. package/cjs/predicates/literal.d.ts +0 -22
  766. package/cjs/predicates/literal.d.ts.map +0 -1
  767. package/cjs/predicates/literal.js +0 -3
  768. package/cjs/predicates/literal.js.map +0 -1
  769. package/cjs/predicates/logical.d.ts +0 -5
  770. package/cjs/predicates/logical.d.ts.map +0 -1
  771. package/cjs/predicates/logical.js +0 -3
  772. package/cjs/predicates/logical.js.map +0 -1
  773. package/cjs/primitive.d.ts +0 -5
  774. package/cjs/primitive.d.ts.map +0 -1
  775. package/cjs/primitive.js +0 -3
  776. package/cjs/primitive.js.map +0 -1
  777. package/cjs/promise/MaybePromise.d.ts +0 -22
  778. package/cjs/promise/MaybePromise.d.ts.map +0 -1
  779. package/cjs/promise/MaybePromise.js +0 -12
  780. package/cjs/promise/MaybePromise.js.map +0 -1
  781. package/cjs/promise/PromiseValue.d.ts +0 -13
  782. package/cjs/promise/PromiseValue.d.ts.map +0 -1
  783. package/cjs/promise/PromiseValue.js +0 -3
  784. package/cjs/promise/PromiseValue.js.map +0 -1
  785. package/cjs/promise/PromiseValueMerge.d.ts +0 -5
  786. package/cjs/promise/PromiseValueMerge.d.ts.map +0 -1
  787. package/cjs/promise/PromiseValueMerge.js +0 -3
  788. package/cjs/promise/PromiseValueMerge.js.map +0 -1
  789. package/cjs/promise/index.d.ts +0 -6
  790. package/cjs/promise/index.d.ts.map +0 -1
  791. package/cjs/promise/index.js +0 -20
  792. package/cjs/promise/index.js.map +0 -1
  793. package/cjs/promise/isPromise.d.ts +0 -2
  794. package/cjs/promise/isPromise.d.ts.map +0 -1
  795. package/cjs/promise/isPromise.js +0 -9
  796. package/cjs/promise/isPromise.js.map +0 -1
  797. package/cjs/promise/mapSeries.d.ts +0 -2
  798. package/cjs/promise/mapSeries.d.ts.map +0 -1
  799. package/cjs/promise/mapSeries.js +0 -8
  800. package/cjs/promise/mapSeries.js.map +0 -1
  801. package/cjs/string/strict_string_type.d.ts +0 -61
  802. package/cjs/string/strict_string_type.d.ts.map +0 -1
  803. package/cjs/string/strict_string_type.js +0 -3
  804. package/cjs/string/strict_string_type.js.map +0 -1
  805. package/cjs/string/string.d.ts +0 -24
  806. package/cjs/string/string.d.ts.map +0 -1
  807. package/cjs/string/string.js +0 -3
  808. package/cjs/string/string.js.map +0 -1
  809. package/cjs/string/string_plus.d.ts +0 -27
  810. package/cjs/string/string_plus.d.ts.map +0 -1
  811. package/cjs/string/string_plus.js +0 -3
  812. package/cjs/string/string_plus.js.map +0 -1
  813. package/cjs/string/string_type.d.ts +0 -58
  814. package/cjs/string/string_type.d.ts.map +0 -1
  815. package/cjs/string/string_type.js +0 -3
  816. package/cjs/string/string_type.js.map +0 -1
  817. package/cjs/symbol/symbol_type.d.ts +0 -50
  818. package/cjs/symbol/symbol_type.d.ts.map +0 -1
  819. package/cjs/symbol/symbol_type.js +0 -3
  820. package/cjs/symbol/symbol_type.js.map +0 -1
  821. package/cjs/testing/stub.d.ts +0 -31
  822. package/cjs/testing/stub.d.ts.map +0 -1
  823. package/cjs/testing/stub.js +0 -60
  824. package/cjs/testing/stub.js.map +0 -1
  825. package/cjs/testing/test_type.d.ts +0 -310
  826. package/cjs/testing/test_type.d.ts.map +0 -1
  827. package/cjs/testing/test_type.js +0 -16
  828. package/cjs/testing/test_type.js.map +0 -1
  829. package/cjs/tuple/common_prop_keys.d.ts +0 -34
  830. package/cjs/tuple/common_prop_keys.d.ts.map +0 -1
  831. package/cjs/tuple/common_prop_keys.js +0 -3
  832. package/cjs/tuple/common_prop_keys.js.map +0 -1
  833. package/cjs/tuple/create_tuple.d.ts +0 -28
  834. package/cjs/tuple/create_tuple.d.ts.map +0 -1
  835. package/cjs/tuple/create_tuple.js +0 -3
  836. package/cjs/tuple/create_tuple.js.map +0 -1
  837. package/cjs/tuple/drop.d.ts +0 -91
  838. package/cjs/tuple/drop.d.ts.map +0 -1
  839. package/cjs/tuple/drop.js +0 -13
  840. package/cjs/tuple/drop.js.map +0 -1
  841. package/cjs/tuple/tail.d.ts +0 -6
  842. package/cjs/tuple/tail.d.ts.map +0 -1
  843. package/cjs/tuple/tail.js +0 -3
  844. package/cjs/tuple/tail.js.map +0 -1
  845. package/cjs/tuple/tuple_plus.common_prop_keys.d.ts +0 -28
  846. package/cjs/tuple/tuple_plus.common_prop_keys.d.ts.map +0 -1
  847. package/cjs/tuple/tuple_plus.common_prop_keys.js +0 -3
  848. package/cjs/tuple/tuple_plus.common_prop_keys.js.map +0 -1
  849. package/cjs/tuple/tuple_plus.d.ts +0 -6
  850. package/cjs/tuple/tuple_plus.d.ts.map +0 -1
  851. package/cjs/tuple/tuple_plus.drop_match.d.ts +0 -6
  852. package/cjs/tuple/tuple_plus.drop_match.d.ts.map +0 -1
  853. package/cjs/tuple/tuple_plus.drop_match.js +0 -3
  854. package/cjs/tuple/tuple_plus.drop_match.js.map +0 -1
  855. package/cjs/tuple/tuple_plus.filter.d.ts +0 -13
  856. package/cjs/tuple/tuple_plus.filter.d.ts.map +0 -1
  857. package/cjs/tuple/tuple_plus.filter.js +0 -3
  858. package/cjs/tuple/tuple_plus.filter.js.map +0 -1
  859. package/cjs/tuple/tuple_plus.find.d.ts +0 -64
  860. package/cjs/tuple/tuple_plus.find.d.ts.map +0 -1
  861. package/cjs/tuple/tuple_plus.find.js +0 -3
  862. package/cjs/tuple/tuple_plus.find.js.map +0 -1
  863. package/cjs/tuple/tuple_plus.js +0 -3
  864. package/cjs/tuple/tuple_plus.js.map +0 -1
  865. package/cjs/tuple/tuple_plus.pad_start.d.ts +0 -28
  866. package/cjs/tuple/tuple_plus.pad_start.d.ts.map +0 -1
  867. package/cjs/tuple/tuple_plus.pad_start.js +0 -3
  868. package/cjs/tuple/tuple_plus.pad_start.js.map +0 -1
  869. package/cjs/tuple/tuple_type.d.ts +0 -77
  870. package/cjs/tuple/tuple_type.d.ts.map +0 -1
  871. package/cjs/tuple/tuple_type.js +0 -3
  872. package/cjs/tuple/tuple_type.js.map +0 -1
  873. package/cjs/type/failed.d.ts +0 -32
  874. package/cjs/type/failed.d.ts.map +0 -1
  875. package/cjs/type/failed.js +0 -3
  876. package/cjs/type/failed.js.map +0 -1
  877. package/cjs/type/no_infer.d.ts +0 -27
  878. package/cjs/type/no_infer.d.ts.map +0 -1
  879. package/cjs/type/no_infer.js +0 -3
  880. package/cjs/type/no_infer.js.map +0 -1
  881. package/cjs/type-guard/is_type.d.ts +0 -27
  882. package/cjs/type-guard/is_type.d.ts.map +0 -1
  883. package/cjs/type-guard/is_type.js +0 -32
  884. package/cjs/type-guard/is_type.js.map +0 -1
  885. package/cjs/undefined/undefined_type.d.ts +0 -53
  886. package/cjs/undefined/undefined_type.d.ts.map +0 -1
  887. package/cjs/undefined/undefined_type.js +0 -3
  888. package/cjs/undefined/undefined_type.js.map +0 -1
  889. package/cjs/union/union.d.ts +0 -33
  890. package/cjs/union/union.d.ts.map +0 -1
  891. package/cjs/union/union.js +0 -3
  892. package/cjs/union/union.js.map +0 -1
  893. package/cjs/union/union_to_intersection.d.ts +0 -3
  894. package/cjs/union/union_to_intersection.d.ts.map +0 -1
  895. package/cjs/union/union_to_intersection.js +0 -8
  896. package/cjs/union/union_to_intersection.js.map +0 -1
  897. package/cjs/union_keys.d.ts +0 -6
  898. package/cjs/union_keys.d.ts.map +0 -1
  899. package/cjs/union_keys.js +0 -3
  900. package/cjs/union_keys.js.map +0 -1
  901. package/cjs/unknown/unknown_type.d.ts +0 -63
  902. package/cjs/unknown/unknown_type.d.ts.map +0 -1
  903. package/cjs/unknown/unknown_type.js +0 -3
  904. package/cjs/unknown/unknown_type.js.map +0 -1
  905. package/cjs/unpartial.d.ts +0 -2
  906. package/cjs/unpartial.d.ts.map +0 -1
  907. package/cjs/unpartial.js +0 -8
  908. package/cjs/unpartial.js.map +0 -1
  909. package/cjs/utils/NonNull.d.ts +0 -2
  910. package/cjs/utils/NonNull.d.ts.map +0 -1
  911. package/cjs/utils/NonNull.js +0 -3
  912. package/cjs/utils/NonNull.js.map +0 -1
  913. package/cjs/utils/NonUndefined.d.ts +0 -2
  914. package/cjs/utils/NonUndefined.d.ts.map +0 -1
  915. package/cjs/utils/NonUndefined.js +0 -3
  916. package/cjs/utils/NonUndefined.js.map +0 -1
  917. package/cjs/utils/Widen.d.ts +0 -6
  918. package/cjs/utils/Widen.d.ts.map +0 -1
  919. package/cjs/utils/Widen.js +0 -3
  920. package/cjs/utils/Widen.js.map +0 -1
  921. package/cjs/utils/as.d.ts +0 -10
  922. package/cjs/utils/as.d.ts.map +0 -1
  923. package/cjs/utils/as.js +0 -26
  924. package/cjs/utils/as.js.map +0 -1
  925. package/cjs/utils/index.d.ts +0 -43
  926. package/cjs/utils/index.d.ts.map +0 -1
  927. package/cjs/utils/index.js +0 -19
  928. package/cjs/utils/index.js.map +0 -1
  929. package/cjs/utils/inspect.d.ts +0 -5
  930. package/cjs/utils/inspect.d.ts.map +0 -1
  931. package/cjs/utils/inspect.js +0 -13
  932. package/cjs/utils/inspect.js.map +0 -1
  933. package/cjs/utils/options.d.ts +0 -10
  934. package/cjs/utils/options.d.ts.map +0 -1
  935. package/cjs/utils/options.js +0 -3
  936. package/cjs/utils/options.js.map +0 -1
  937. package/cjs/void/void_type.d.ts +0 -43
  938. package/cjs/void/void_type.d.ts.map +0 -1
  939. package/cjs/void/void_type.js +0 -3
  940. package/cjs/void/void_type.js.map +0 -1
  941. package/esm/array/array_index.d.ts +0 -34
  942. package/esm/array/array_index.d.ts.map +0 -1
  943. package/esm/array/array_index.js +0 -2
  944. package/esm/array/array_index.js.map +0 -1
  945. package/esm/merge.d.ts +0 -55
  946. package/esm/merge.d.ts.map +0 -1
  947. package/esm/merge.js.map +0 -1
  948. package/esm/object/AnyRecord.d.ts +0 -3
  949. package/esm/object/AnyRecord.d.ts.map +0 -1
  950. package/esm/object/AnyRecord.js +0 -2
  951. package/esm/object/AnyRecord.js.map +0 -1
  952. package/ts/merge.ts +0 -72
  953. /package/ts/object/{AnyRecord.ts → any_record.ts} +0 -0
@@ -12,14 +12,16 @@ More than 200 type utilities for [TypeScript] for applications, library, and typ
12
12
 
13
13
  ## Table of Contents
14
14
 
15
- 1. [What's in the package?](#whats-in-the-package)
15
+ 1. [Table of Contents](#table-of-contents)
16
+ 2. [Installation](#installation)
17
+ 3. [What's in the package?](#whats-in-the-package)
16
18
  1. [Update organization](#update-organization)
17
19
  2. [Update documentation](#update-documentation)
18
- 2. [Assertion Function](#assertion-function)
20
+ 4. [Assertion Function](#assertion-function)
19
21
  1. [assertType](#asserttype)
20
- 3. [Type Guard](#type-guard)
21
- 4. [Type Utilities](#type-utilities)
22
- 5. [Type Specific Utilities](#type-specific-utilities)
22
+ 5. [Type Guard](#type-guard)
23
+ 6. [Type Utilities](#type-utilities)
24
+ 7. [Type Specific Utilities](#type-specific-utilities)
23
25
  1. [any](#any)
24
26
  2. [Array](#array)
25
27
  3. [union](#union)
@@ -38,18 +40,19 @@ More than 200 type utilities for [TypeScript] for applications, library, and typ
38
40
  16. [undefined](#undefined)
39
41
  17. [unknown](#unknown)
40
42
  18. [void](#void)
41
- 6. [Constant Types](#constant-types)
42
- 7. [JSON Support](#json-support)
43
- 8. [Type manipulation](#type-manipulation)
44
- 9. [Type Predicates](#type-predicates)
45
- 1. [Logical](#logical)
46
- 10. [Math](#math)
47
- 11. [Utility Functions](#utility-functions)
48
- 12. [Nominal Types](#nominal-types)
49
- 13. [Functional Types](#functional-types)
50
- 14. [Attribution](#attribution)
51
- 15. [Useful Tips](#useful-tips)
52
- 16. [Similar projects](#similar-projects)
43
+ 8. [Testing Utilities](#testing-utilities)
44
+ 9. [Constant Types](#constant-types)
45
+ 10. [JSON Support](#json-support)
46
+ 11. [Type manipulation](#type-manipulation)
47
+ 12. [Type Predicates](#type-predicates)
48
+ 1. [Logical](#logical)
49
+ 13. [Math](#math)
50
+ 14. [Utility Functions](#utility-functions)
51
+ 15. [Nominal Types](#nominal-types)
52
+ 16. [Functional Types](#functional-types)
53
+ 17. [Attribution](#attribution)
54
+ 18. [Useful Tips](#useful-tips)
55
+ 19. [Similar projects](#similar-projects)
53
56
 
54
57
  ## Installation
55
58
 
@@ -844,6 +847,22 @@ You can learn more in their respective sections:
844
847
 
845
848
  ⭕ `predicate`: `T !== void`
846
849
 
850
+ ## Testing Utilities
851
+
852
+ [type-plus](./README.md) privides some testing utilities to help you test your types.
853
+
854
+ One of the key utilities is [`testType`](./ts/testing/readme.md#testtype).
855
+
856
+ ```ts
857
+ import { testType } from 'type-plus'
858
+
859
+ testType.any<T>(true) // T is `any`
860
+ testType.equal<A, B>(true) // A is equal to B
861
+ testType.never<T>(false) // T is not `never`
862
+ ```
863
+
864
+ You can learn more about them in the [docs](./ts/testing/readme.md).
865
+
847
866
  ## Constant Types
848
867
 
849
868
  > `KeyTypes`
@@ -1,6 +1,6 @@
1
1
  import type { IsStrictNumber } from '../number/strict_number_type.js'
2
2
  import type { TupleType } from '../tuple/tuple_type.js'
3
- import type { IndexAt } from './array_index.js'
3
+ import type { IndexAt } from './array_plus.index_at.js'
4
4
 
5
5
  /**
6
6
  * 🦴 *utilities*
@@ -17,7 +17,7 @@ import type { IndexAt } from './array_index.js'
17
17
  * type R = At<[1, 2, 3], -1> // 3
18
18
  * ```
19
19
  */
20
- export type At<A extends unknown[], N extends number, Fail = never> = IndexAt<
20
+ export type At<A extends readonly unknown[], N extends number, Fail = never> = IndexAt<
21
21
  A,
22
22
  N,
23
23
  Fail,
@@ -11,16 +11,16 @@ import type { IsTuple } from '../tuple/tuple_type.js'
11
11
  * ArrayPlus.Entries<[1, 2, 3]> // [[0, 1], [1, 2], [2, 3]]
12
12
  * ```
13
13
  */
14
- export type Entries<A extends unknown[]> = IsTuple<
14
+ export type Entries<A extends readonly unknown[]> = IsTuple<
15
15
  A,
16
16
  Entries.Device<A, []>,
17
17
  A extends Array<infer T> ? Array<[number, T]> : never
18
18
  >
19
19
 
20
20
  export namespace Entries {
21
- export type Device<A extends unknown[], R extends unknown[]> = A['length'] extends 0
22
- ? R
23
- : A extends [...infer F, infer N]
24
- ? Device<F, [[F['length'], N], ...R]>
25
- : never
21
+ export type Device<A extends readonly unknown[], R extends unknown[]> = A['length'] extends 0
22
+ ? R
23
+ : (A extends readonly [...infer F, infer N]
24
+ ? Device<F, [[F['length'], N], ...R]>
25
+ : never)
26
26
  }
@@ -16,14 +16,14 @@ import type { TupleType } from '../tuple/tuple_type.js'
16
16
  * ArrayPlus.Find<[true, 123, 'x', 321], number> // 321
17
17
  * ```
18
18
  */
19
- export type FindLast<A extends Array<any>, Criteria> = TupleType<
19
+ export type FindLast<A extends readonly unknown[], Criteria> = TupleType<
20
20
  A,
21
21
  A['length'] extends 0
22
- ? never
23
- : A extends [...infer Heads, infer Last]
24
- ? Last extends Criteria
22
+ ? never
23
+ : (A extends readonly [...infer Heads, infer Last]
24
+ ? (Last extends Criteria
25
25
  ? Last
26
- : FindLast<Heads, Criteria>
27
- : never,
28
- A extends Array<infer T> ? (T extends Criteria ? T | undefined : never) : never
26
+ : FindLast<Heads, Criteria>)
27
+ : never),
28
+ A extends Readonly<Array<infer T>> ? (T extends Criteria ? T | undefined : never) : never
29
29
  >
@@ -1,3 +1,5 @@
1
+ import type { IsReadonly } from './array_plus.is_readonly.js'
2
+
1
3
  /*
2
4
  * Reverses the order of elements in the array or tuple.
3
5
  *
@@ -11,6 +13,13 @@
11
13
  * @param T The array type to reverse.
12
14
  * @returns The reversed array type.
13
15
  */
14
- export type Reverse<A extends unknown[]> = A extends [infer First, ...infer Rest]
15
- ? [...Reverse<Rest>, First]
16
- : A
16
+ export type Reverse<A extends readonly unknown[]> = Reverse._<A> extends infer R
17
+ ? IsReadonly<A> extends true ? Readonly<R> : R
18
+ : never
19
+
20
+ export namespace Reverse {
21
+ export type _<A extends readonly unknown[]> = A extends readonly [infer First, ...infer Rest]
22
+ ? [..._<Rest>, First]
23
+ : A
24
+
25
+ }
@@ -23,7 +23,7 @@ import type { UnionOfValues } from './union_of_values.js'
23
23
  * ```
24
24
  */
25
25
  export type Some<
26
- A extends any[],
26
+ A extends readonly unknown[],
27
27
  Criteria,
28
28
  Mode extends 'strict' | 'loose' = 'loose',
29
29
  Then = true,
@@ -31,37 +31,37 @@ export type Some<
31
31
  > = Mode extends 'strict' ? Some.Strict<A, Criteria, Then, Else> : Some.Loose<A, Criteria, Then, Else>
32
32
 
33
33
  export namespace Some {
34
- export type Strict<A extends unknown[], Criteria, Then, Else> = number extends A['length']
34
+ export type Strict<A extends readonly unknown[], Criteria, Then, Else> = number extends A['length']
35
35
  ? StrictArray<A, Criteria, Then, Else>
36
36
  : StrictTuple<A, Criteria, Then, Else>
37
37
 
38
- export type StrictArray<A extends unknown[], Criteria, Then, Else> = IsEqual<
38
+ export type StrictArray<A extends readonly unknown[], Criteria, Then, Else> = IsEqual<
39
39
  UnionOfValues<A>,
40
40
  Criteria,
41
41
  Then,
42
42
  Else
43
43
  >
44
44
 
45
- export type StrictTuple<A extends unknown[], Criteria, Then, Else> = A['length'] extends 0
45
+ export type StrictTuple<A extends readonly unknown[], Criteria, Then, Else> = A['length'] extends 0
46
46
  ? Else
47
- : IsEqual<A[0], Criteria> extends true
48
- ? Then
49
- : StrictTuple<Tail<A>, Criteria, Then, Else>
47
+ : (IsEqual<A[0], Criteria> extends true
48
+ ? Then
49
+ : StrictTuple<Tail<A>, Criteria, Then, Else>)
50
50
 
51
- export type Loose<A extends unknown[], Criteria, Then, Else> = number extends A['length']
51
+ export type Loose<A extends readonly unknown[], Criteria, Then, Else> = number extends A['length']
52
52
  ? LooseArray<A, Criteria, Then, Else>
53
53
  : LooseTuple<A, Criteria, Then, Else>
54
54
 
55
- export type LooseArray<A extends unknown[], Criteria, Then, Else> = CanAssign<
55
+ export type LooseArray<A extends readonly unknown[], Criteria, Then, Else> = CanAssign<
56
56
  UnionOfValues<A>,
57
57
  Criteria,
58
58
  Then,
59
59
  Else
60
60
  >
61
61
 
62
- export type LooseTuple<A extends unknown[], Criteria, Then, Else> = A['length'] extends 0
62
+ export type LooseTuple<A extends readonly unknown[], Criteria, Then, Else> = A['length'] extends 0
63
63
  ? Else
64
- : A[0] extends Criteria
65
- ? Then
66
- : LooseTuple<Tail<A>, Criteria, Then, Else>
64
+ : (A[0] extends Criteria
65
+ ? Then
66
+ : LooseTuple<Tail<A>, Criteria, Then, Else>)
67
67
  }
@@ -15,15 +15,15 @@ import type { KeyTypes } from '../object/KeyTypes.js'
15
15
  * type R = ArrayPlus.CommonPropKeys<Array<{ a: 1, b: 1 } | { a: 1, c: 1 }>> // 'a'
16
16
  * ```
17
17
  *
18
- * @typeParam Options['caseNever'] Return type when `T` is `never`.
18
+ * @typeParam Options['$never'] Return type when `T` is `never`.
19
19
  * Default to `never`.
20
20
  */
21
21
  export type CommonPropKeys<
22
- A extends Record<KeyTypes, unknown>[],
22
+ A extends readonly Record<KeyTypes, unknown>[],
23
23
  Options extends CommonPropKeys.Options = CommonPropKeys.DefaultOptions
24
24
  > = NeverType<A,
25
- Options['caseNever'],
26
- A extends Array<infer R extends Record<KeyTypes, unknown>> ? keyof R : never
25
+ Options['$never'],
26
+ A extends Readonly<Array<infer R extends Record<KeyTypes, unknown>>> ? keyof R : never
27
27
  >
28
28
 
29
29
  export namespace CommonPropKeys {
@@ -12,4 +12,4 @@
12
12
  * type R = Concat<[1], [2, 3]> // [1, 2, 3]
13
13
  * ```
14
14
  */
15
- export type Concat<A extends unknown[], B extends unknown[]> = [...A, ...B]
15
+ export type Concat<A extends Readonly<unknown[]>, B extends Readonly<unknown[]>> = [...A, ...B]
@@ -1,6 +1,9 @@
1
1
  import type { NonNull } from '../utils/NonNull.js'
2
2
  import type { NonUndefined } from '../utils/NonUndefined.js'
3
3
 
4
+ /**
5
+ * ⚗️ *transform*
6
+ */
4
7
  export type DropMatch<A extends Readonly<Array<unknown>>, Criteria> = A[0] extends Criteria
5
8
  ? never[]
6
9
  : (undefined extends Criteria
@@ -1,6 +1,6 @@
1
1
  import type { IsNever } from '../never/never_type.js'
2
2
  import type { IsUnion } from '../union/union.js'
3
- import type { MergeOptions } from '../utils/options.js'
3
+ import type { TypePlusOptions } from '../utils/options.js'
4
4
 
5
5
  /**
6
6
  * 🦴 *utilities*
@@ -12,13 +12,13 @@ import type { MergeOptions } from '../utils/options.js'
12
12
  * e.g. `number, 1` -> `1 | undefined`.
13
13
  * Default to `true`.
14
14
  *
15
- * @typeParam Options['caseNotMatch'] Return value when `T` does not match `Criteria`.
15
+ * @typeParam Options['$notMatch'] Return value when `T` does not match `Criteria`.
16
16
  * Default to `never`.
17
17
  *
18
- * @typeParam Options['caseWiden'] Return value when `widen` is true.
18
+ * @typeParam Options['$widen'] Return value when `widen` is true.
19
19
  * Default to `Criteria | undefined`.
20
20
  *
21
- * @typeParam Options['caseUnionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
21
+ * @typeParam Options['$unionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
22
22
  * Default to `never`.
23
23
  *
24
24
  * If you want the type to behave more like JavaScript,
@@ -33,29 +33,29 @@ export type ElementMatch<
33
33
  Options extends ElementMatch.Options = ElementMatch.DefaultOptions<Criteria>
34
34
  > = [T] extends [Criteria]
35
35
  ? T
36
- : (MergeOptions<Options, ElementMatch.DefaultOptions<Criteria>> extends infer C extends Record<keyof ElementMatch.Options, unknown>
36
+ : (TypePlusOptions.Merge<Options, ElementMatch.DefaultOptions<Criteria>> extends infer C extends Record<keyof ElementMatch.Options, unknown>
37
37
  ? ((T extends Criteria
38
38
  ? T
39
39
  : (C['widen'] extends true
40
40
  ? (Criteria extends T
41
- ? C['caseWiden']
42
- : C['caseNotMatch'])
43
- : C['caseNotMatch'])) extends infer R
44
- ? IsUnion<T, IsNever<R, R, R | C['caseUnionNotMatch']>, R>
45
- : C['caseNotMatch'])
41
+ ? C['$widen']
42
+ : C['$notMatch'])
43
+ : C['$notMatch'])) extends infer R
44
+ ? IsUnion<T, IsNever<R, R, R | C['$unionNotMatch']>, R>
45
+ : C['$notMatch'])
46
46
  : never)
47
47
 
48
48
  export namespace ElementMatch {
49
49
  export interface Options {
50
50
  widen?: boolean | undefined,
51
- caseNotMatch?: unknown,
52
- caseWiden?: unknown,
53
- caseUnionNotMatch?: unknown
51
+ $notMatch?: unknown,
52
+ $widen?: unknown,
53
+ $unionNotMatch?: unknown
54
54
  }
55
55
  export interface DefaultOptions<Criteria> {
56
56
  widen: true,
57
- caseNotMatch: never,
58
- caseWiden: Criteria | undefined,
59
- caseUnionNotMatch: never
57
+ $notMatch: never,
58
+ $widen: Criteria | undefined,
59
+ $unionNotMatch: never
60
60
  }
61
61
  }
@@ -1,5 +1,49 @@
1
- export type Filter<A extends unknown[], Criteria> = A[0] extends Criteria
2
- ? A
3
- : Criteria extends A[0]
4
- ? Array<Criteria>
5
- : never[]
1
+ // import type { IsEqual } from '../equal/equal.js'
2
+
3
+ // /**
4
+ // * Filters an array or tuple based on criteria
5
+ // */
6
+ // export type Filter<A extends readonly unknown[], Criteria = true> = Filter._<A, Criteria, []>
7
+
8
+ import type { IsEqual } from '../equal/equal.js'
9
+ import type { NeverType } from '../never/never_type.js'
10
+ import type { TypePlusOptions } from '../utils/options.js'
11
+
12
+ /**
13
+ * ⚗️ *transform*
14
+ * 🔢 *customizable*
15
+ *
16
+ * Filter the array `A`, keeping entries satisfying `Criteria`.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * type R = Filter<Array<string | undefined>, string> // string[]
21
+ * ```
22
+ */
23
+ export type Filter<
24
+ A extends readonly unknown[],
25
+ Criteria = true,
26
+ Options extends Filter.Options = Filter.DefaultOptions
27
+ > = TypePlusOptions.Merge<Options, Filter.DefaultOptions> extends infer O extends Filter.Options
28
+ ? (NeverType<
29
+ A,
30
+ O['$never'],
31
+ (A[0] extends Criteria
32
+ ? A
33
+ : Criteria extends A[0] ? Array<Criteria> : O['$notArray'])>)
34
+ : never
35
+
36
+ export namespace Filter {
37
+ export interface Options extends TypePlusOptions.NotArray, NeverType.Options { }
38
+
39
+ export interface DefaultOptions {
40
+ $never: never,
41
+ $notArray: never[]
42
+ }
43
+
44
+ export type _<A extends readonly unknown[], Criteria, Result extends unknown[]> = A['length'] extends 0
45
+ ? Result
46
+ : (A extends [infer H, ...infer Rest]
47
+ ? IsEqual<H, Criteria, _<Rest, Criteria, [...Result, H]>, _<Rest, Criteria, Result>>
48
+ : never)
49
+ }
@@ -1,6 +1,6 @@
1
1
  import type { NeverType } from '../never/never_type.js'
2
2
  import type { TupleType } from '../tuple/tuple_type.js'
3
- import type { MergeOptions } from '../utils/options.js'
3
+ import type { TypePlusOptions } from '../utils/options.js'
4
4
  import type { ElementMatch } from './array_plus.element_match.js'
5
5
 
6
6
  /**
@@ -25,20 +25,20 @@ import type { ElementMatch } from './array_plus.element_match.js'
25
25
  * With widen match, a narrowed type will match its widen type.
26
26
  * e.g. matching `1` against `number` yields `1 | undefined`
27
27
  *
28
- * The widen behavior can be customized by `Options['caseWiden']`
28
+ * The widen behavior can be customized by `Options['$widen']`
29
29
  *
30
- * @typeParam Options['caseNever'] return type when `A` is `never`. Default to `never`.
30
+ * @typeParam Options['$never'] return type when `A` is `never`. Default to `never`.
31
31
  *
32
- * @typeParam Options['caseNotMatch'] Return value when `T` does not match `Criteria`.
32
+ * @typeParam Options['$notMatch'] Return value when `T` does not match `Criteria`.
33
33
  * Default to `never`.
34
34
  *
35
- * @typeParam Options['caseTuple'] return type when `A` is a tuple. Default to `not supported` message.
35
+ * @typeParam Options['$tuple'] return type when `A` is a tuple. Default to `not supported` message.
36
36
  *
37
- * @typeParam Options['caseWiden'] return type when `T` in `A` is a widen type of `Criteria`.
37
+ * @typeParam Options['$widen'] return type when `T` in `A` is a widen type of `Criteria`.
38
38
  * Default to `Criteria | undefined`.
39
39
  * Set it to `never` for a more type-centric behavior
40
40
  *
41
- * @typeParam Options['caseUnionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
41
+ * @typeParam Options['$unionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
42
42
  * Default to `never`.
43
43
  *
44
44
  * If you want the type to behave more like JavaScript,
@@ -47,25 +47,25 @@ import type { ElementMatch } from './array_plus.element_match.js'
47
47
  * Since it is a union, the result will be joined to the matched branch as union.
48
48
  */
49
49
  export type Find<
50
- A extends unknown[],
50
+ A extends readonly unknown[],
51
51
  Criteria,
52
52
  Options extends Find.Options = Find.DefaultOptions<Criteria>
53
53
  > =
54
- MergeOptions<Options, Find.DefaultOptions<Criteria>> extends infer O extends Find.Options
54
+ TypePlusOptions.Merge<Options, Find.DefaultOptions<Criteria>> extends infer O extends Find.Options
55
55
  ? TupleType<
56
56
  A,
57
- O['caseTuple'],
58
- A extends Array<infer T> ? ElementMatch<T, Criteria, O> : never,
57
+ O['$tuple'],
58
+ A extends Readonly<Array<infer T>> ? ElementMatch<T, Criteria, O> : never,
59
59
  O
60
60
  >
61
61
  : never
62
62
 
63
63
  export namespace Find {
64
64
  export interface Options extends ElementMatch.Options, NeverType.Options {
65
- caseTuple?: unknown,
65
+ $tuple?: unknown,
66
66
  }
67
67
 
68
68
  export interface DefaultOptions<Criteria> extends ElementMatch.DefaultOptions<Criteria>, NeverType.DefaultOptions {
69
- caseTuple: 'does not support tuple. Please use `FindFirst` or `TuplePlus.Find` instead.',
69
+ $tuple: 'does not support tuple. Please use `FindFirst` or `TuplePlus.Find` instead.',
70
70
  }
71
71
  }
@@ -9,8 +9,11 @@ import type { Integer } from '../numeric/integer.js'
9
9
  import type { Negative } from '../numeric/negative.js'
10
10
 
11
11
  /**
12
+ * 🦴 *utilities*
13
+ *
12
14
  * Gets the normalized index to access the element of an array or tuple.
13
15
  *
16
+ * @example
14
17
  * ```ts
15
18
  * type R = IndexAt<['a', 'b', 'c'], 2> // 2
16
19
  * type R = IndexAt<['a', 'b', 'c'], -2> // 1
@@ -20,54 +23,47 @@ import type { Negative } from '../numeric/negative.js'
20
23
  * ```
21
24
  */
22
25
  export type IndexAt<
23
- A extends Array<unknown>,
26
+ A extends readonly unknown[],
24
27
  N extends number,
25
28
  Fail = never,
26
29
  Upper = A['length'],
27
30
  Lower = 0
28
- > = IsEqual<
29
- A['length'],
30
- 0,
31
- Fail,
32
- Integer<
33
- N,
34
- StrictNumberType<
35
- A['length'],
36
- // A: array
37
- N,
38
- // A: tuple
39
- Negative<
40
- N,
41
- GreaterThan<Abs<N>, A['length']> extends true ? Lower : Subtract<A['length'], Abs<N>>,
42
- GreaterThan<A['length'], N> extends true ? N : Upper
43
- >
44
- >,
45
- // N: number or float
46
- IsAny<
31
+ > = IsNever<A, Fail, IndexAt._<A, N, Fail, Upper, Lower>>
32
+
33
+ export namespace IndexAt {
34
+ export type _<
35
+ A extends readonly unknown[],
36
+ N extends number,
37
+ Fail = never,
38
+ Upper = A['length'],
39
+ Lower = 0
40
+ > = IsEqual<
41
+ A['length'],
42
+ 0,
43
+ Fail,
44
+ Integer<
47
45
  N,
48
- number,
49
46
  StrictNumberType<
47
+ A['length'],
48
+ // A: array
49
+ N,
50
+ // A: tuple
51
+ Negative<
52
+ N,
53
+ GreaterThan<Abs<N>, A['length']> extends true ? Lower : Subtract<A['length'], Abs<N>>,
54
+ GreaterThan<A['length'], N> extends true ? N : Upper
55
+ >
56
+ >,
57
+ // N: number or float
58
+ IsAny<
50
59
  N,
51
- // TODO: handle tuple to union of indexes
52
- N
60
+ number,
61
+ StrictNumberType<
62
+ N,
63
+ // TODO: handle tuple to union of indexes
64
+ N
65
+ >
53
66
  >
54
67
  >
55
68
  >
56
- >
57
-
58
- /**
59
- * Is N an out of bound index of A.
60
- *
61
- * ```ts
62
- * type R = IsIndexOutOfBound<[1], 0> // false
63
- * type R = IsIndexOutOfBound<[1], -1> // false
64
-
65
- * type R = IsIndexOutOfBound<[1], 1> // true
66
- * type R = IsIndexOutOfBound<[1], -2> // true
67
- * ```
68
- */
69
- export type IsIndexOutOfBound<A extends unknown[], N extends number, Then = true, Else = false> = IsNever<
70
- IndexAt<A, N, never, never, never>,
71
- Then,
72
- Else
73
- >
69
+ }
@@ -0,0 +1,22 @@
1
+ import type { IsNever } from '../never/never_type.js'
2
+ import type { IndexAt } from './array_plus.index_at.js'
3
+
4
+ /**
5
+ * 🎭 *validate*
6
+ *
7
+ * Is `N` an out of bound index of `A`.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * type R = IsIndexOutOfBound<[1], 0> // false
12
+ * type R = IsIndexOutOfBound<[1], -1> // false
13
+ *
14
+ * type R = IsIndexOutOfBound<[1], 1> // true
15
+ * type R = IsIndexOutOfBound<[1], -2> // true
16
+ * ```
17
+ */
18
+ export type IsIndexOutOfBound<A extends readonly unknown[], N extends number, Then = true, Else = false> = IsNever<
19
+ IndexAt<A, N, never, never, never>,
20
+ Then,
21
+ Else
22
+ >
@@ -0,0 +1,46 @@
1
+ import type { NeverType } from '../never/never_type.js'
2
+ import type { TypePlusOptions } from '../utils/options.js'
3
+ import type { LooseArrayType } from './loose_array_type.js'
4
+
5
+ /**
6
+ * 🎭 *validate*
7
+ * 🔢 *customizable*
8
+ *
9
+ * Checks if `A` is a readonly array or tuple
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * type R = IsReadonly<readonly string[]> // true
14
+ * type R = IsReadonly<readonly [1, 2, 3, 4, 5]> // true
15
+ *
16
+ * type R = IsReadonly<[1, 2, 3, 4, 5]> // false
17
+ * type R = IsReadonly<readonly string[] | number> // boolean
18
+ * ```
19
+ */
20
+ export type IsReadonly<
21
+ A,
22
+ Options extends IsReadonly.Options = IsReadonly.DefaultOptions
23
+ > =
24
+ TypePlusOptions.Merge<Options, IsReadonly.DefaultOptions> extends infer O extends IsReadonly.Options ?
25
+ NeverType<
26
+ A,
27
+ O['$never'],
28
+ A extends any ?
29
+ LooseArrayType<A,
30
+ Readonly<A> extends A ? O['$then'] : O['$else'],
31
+ O['$notArray']
32
+ > : never
33
+ >
34
+ : never
35
+
36
+ export namespace IsReadonly {
37
+ export interface Options
38
+ extends NeverType.Options, TypePlusOptions.Selection, TypePlusOptions.NotArray { }
39
+
40
+ export interface DefaultOptions {
41
+ $then: true,
42
+ $else: false,
43
+ $never: false,
44
+ $notArray: false
45
+ }
46
+ }
@@ -3,7 +3,7 @@ import type { CreateTuple } from '../tuple/create_tuple.js'
3
3
  import type { UnionOfValues } from './union_of_values.js'
4
4
 
5
5
  export type PadStart<
6
- A extends unknown[],
6
+ A extends readonly unknown[],
7
7
  MaxLength extends number,
8
8
  PadWith = unknown
9
9
  > = MaxLength extends 0