type-plus 7.6.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 +5 -5
  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 +5 -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} +5 -19
  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 +19 -19
  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 +101 -31
  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 -37
  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 -40
  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 -37
  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
@@ -0,0 +1,122 @@
1
+ import type { IsAny } from '../any/any_type.js'
2
+ import type { NonComposableTypes } from '../composable_types.js'
3
+ import type { IsNever, NotNeverType } from '../never/never_type.js'
4
+ import type { IsLiteral } from '../predicates/literal.js'
5
+ import type { Or } from '../predicates/logical.js'
6
+ import type { $Never } from '../type_plus/cases.js'
7
+ import type { AnyRecord } from './any_record.js'
8
+ import type { IsDisjoint } from './IsDisjoint.js'
9
+ import type { KeyTypes } from './KeyTypes.js'
10
+ import type { OptionalKeys } from './OptionalKeys.js'
11
+
12
+ /**
13
+ * ⚗️ *transform*
14
+ * 🔢 *customizable*
15
+ *
16
+ * Merges type `A` and type `B`.
17
+ *
18
+ * This type performs the same operations as `{ ...a, ...b }` but at the type level.
19
+ *
20
+ * It handles cases like A or B are `Record`,
21
+ * joining between required and optional props, etc.
22
+ */
23
+ export type Merge<A extends AnyRecord, B extends AnyRecord, Options = Merge.DefaultOptions> = Or<
24
+ IsAny<A>,
25
+ IsAny<B>,
26
+ any,
27
+ Or<
28
+ IsNever<A>,
29
+ IsNever<B>,
30
+ never,
31
+ IsDisjoint<A, B> extends true
32
+ ? A & B
33
+ : ([keyof A, keyof B] extends [infer KA extends KeyTypes, infer KB extends KeyTypes]
34
+ ? (IsLiteral<KA> extends true
35
+ ? (IsLiteral<KB> extends true
36
+ ? ([OptionalKeys<A>, OptionalKeys<B>] extends [infer PKA extends KeyTypes, infer PKB extends KeyTypes]
37
+ ?
38
+ // property is optional when both A[k] and B[k] are optional
39
+ NotNeverType<
40
+ PKA & PKB,
41
+ { [k in PKA & PKB]?: A[k] | B[k] },
42
+ unknown
43
+ > &
44
+ // properties only in A excluding partials is A[k]
45
+ NotNeverType<
46
+ Exclude<KA, PKA | KB>,
47
+ { [k in Exclude<KA, PKA | KB>]: A[k] },
48
+ unknown
49
+ > &
50
+ // properties only in B excluding partials is B[k]
51
+ NotNeverType<
52
+ Exclude<KB, PKB>,
53
+ { [k in Exclude<KB, PKB>]: B[k] },
54
+ unknown
55
+ > &
56
+ // properties is required in A but optional in B is unionized without undefined
57
+ NotNeverType<
58
+ Exclude<KA & PKB, PKA>,
59
+ { [k in Exclude<KA & PKB, PKA>]: A[k] | Exclude<B[k], undefined> },
60
+ unknown
61
+ >
62
+ : never)
63
+ :
64
+ NotNeverType<
65
+ Exclude<KA, KA & KB>,
66
+ { [k in Exclude<KA, KA & KB>]: A[k] },
67
+ unknown
68
+ > &
69
+ NotNeverType<
70
+ Exclude<KB, KA & KB>,
71
+ { [k in Exclude<KB, KA & KB>]: B[k] },
72
+ unknown
73
+ > &
74
+ NotNeverType<
75
+ KA & KB,
76
+ { [k in KA & KB]: A[k] | B[k] },
77
+ unknown
78
+ >
79
+ )
80
+ : (
81
+ IsLiteral<KB> extends true
82
+ ? { [k in Exclude<KA, KB>]: A[k] } & { [k in keyof B]: B[k] }
83
+ :
84
+ NotNeverType<
85
+ Exclude<KA, KA & KB>,
86
+ { [k in Exclude<KA, KA & KB>]: A[k] },
87
+ unknown
88
+ > &
89
+ NotNeverType<
90
+ Exclude<KB, KA & KB>,
91
+ { [k in Exclude<KB, KA & KB>]: B[k] },
92
+ unknown
93
+ > &
94
+ NotNeverType<
95
+ KA & KB,
96
+ { [k in KA & KB]: A[k] | B[k] },
97
+ unknown
98
+ >
99
+ ))
100
+ : never)
101
+ >
102
+ >
103
+
104
+ export namespace Merge {
105
+ export type JoinProps<A, B> = A extends NonComposableTypes
106
+ ? B
107
+ : (B extends NonComposableTypes
108
+ ? A
109
+ : A & B)
110
+
111
+ export type Options = {
112
+ $never?: undefined
113
+ }
114
+
115
+ export interface DefaultOptions {
116
+ $never: never
117
+ }
118
+
119
+ export type Cases = {
120
+ $never: $Never
121
+ }
122
+ }
@@ -0,0 +1 @@
1
+ export * from './merge.js'
package/ts/object/omit.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { UnionKeys } from '../union_keys.js'
2
- import type { AnyRecord } from './AnyRecord.js'
2
+ import type { AnyRecord } from './any_record.js'
3
3
  import type { Pick } from './pick.js'
4
4
  import { record } from './record.js'
5
5
  import { reduceByKey } from './reduceKey.js'
@@ -8,10 +8,9 @@ import { reduceByKey } from './reduceKey.js'
8
8
  // https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347
9
9
  // type-zoo
10
10
  export type Omit<T, K extends UnionKeys<T>> = T extends T
11
- ? keyof T extends K
12
- ? // eslint-disable-next-line @typescript-eslint/ban-types
13
- {}
14
- : Pick<T, Exclude<keyof T, K>>
11
+ ? (keyof T extends K
12
+ ? {}
13
+ : Pick<T, Exclude<keyof T, K>>)
15
14
  : never
16
15
 
17
16
  /**
@@ -1,5 +1,5 @@
1
1
 
2
- import type { AnyRecord } from './AnyRecord.js'
2
+ import type { AnyRecord } from './any_record.js'
3
3
  import type { KeyTypes } from './KeyTypes.js'
4
4
 
5
5
  /**
package/ts/object/pick.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { UnionKeys } from '../union_keys.js'
2
- import type { AnyRecord } from './AnyRecord.js'
2
+ import type { AnyRecord } from './any_record.js'
3
3
  import { record } from './record.js'
4
4
  import { reduceByKey } from './reduceKey.js'
5
5
 
@@ -58,6 +58,20 @@ import type { OptionalProps } from 'type-plus'
58
58
  type R = OptionalProps<{ a?: number; b: string }> // { a?: number }
59
59
  ```
60
60
 
61
+ ## [ObjectPlus.Merge](./merge.ts)
62
+
63
+ `Merge<A, B, Options = { }>`
64
+
65
+ ⚗️ *transform*
66
+ 🔢 *customizable*
67
+
68
+ Merges type `A` and type `B`.
69
+
70
+ This type performs the same operations as `{ ...a, ...b }` but at the type level.
71
+
72
+ It handles cases like A or B are `Record`,
73
+ joining between required and optional props, etc.
74
+
61
75
  ## References
62
76
 
63
77
  - [Handbook]
@@ -1,5 +1,5 @@
1
1
  import type { Widen } from '../utils/index.js'
2
- import type { AnyRecord } from './AnyRecord.js'
2
+ import type { AnyRecord } from './any_record.js'
3
3
  import type { KeyTypes } from './KeyTypes.js'
4
4
 
5
5
  /**
@@ -2,7 +2,7 @@
2
2
 
3
3
  import type { AnyFunction } from '../function/any_function.js'
4
4
  import type { ExtractFunction } from '../index.js'
5
- import type { AnyRecord } from './AnyRecord.js'
5
+ import type { AnyRecord } from './any_record.js'
6
6
  import type { Properties } from './properties.js'
7
7
 
8
8
  /**
@@ -1,4 +1,4 @@
1
- import type { AnyRecord } from './AnyRecord.js'
1
+ import type { AnyRecord } from './any_record.js'
2
2
 
3
3
  export type ReplaceProperty<T extends AnyRecord, K extends keyof T, V> = Omit<T, K> & { [P in K]: V }
4
4
 
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
- import type { AnyRecord } from './AnyRecord.js'
2
+ import type { AnyRecord } from './any_record.js'
3
3
  import type { Omit } from './omit.js'
4
4
  import { reduceByKey } from './reduceKey.js'
5
5
  import type { Partial } from './Partial.js'
@@ -16,7 +16,7 @@ import type { CommonPropKeys as TupleCommonPropKeys } from './tuple_plus.common_
16
16
  * type R = CommonPropKeys<[{ a: number, c: 1 }, { b: number, c: 2 }]> // 'c'
17
17
  * ```
18
18
  *
19
- * @typeParam Options['caseNever'] Return type when `T` is `never`.
19
+ * @typeParam Options['$never'] Return type when `T` is `never`.
20
20
  * Default to `never`.
21
21
  */
22
22
  export type CommonPropKeys<
package/ts/tuple/drop.ts CHANGED
@@ -17,7 +17,7 @@ import type { DropMatch as TupleDropMatch } from './tuple_plus.drop_match.js'
17
17
  * type R = DropFirst<string[]> // string[]
18
18
  * ```
19
19
  *
20
- * @typeParam Options['caseArray'] Return type when `T` is `Array`.
20
+ * @typeParam Options['$array'] Return type when `T` is `Array`.
21
21
  * Default to `T`.
22
22
  *
23
23
  * @typeParam Options['caseEmptyTuple'] Return type when `T` is an empty tuple.
@@ -27,7 +27,7 @@ export type DropFirst<
27
27
  T extends unknown[],
28
28
  Options extends DropFirst.Options = DropFirst.DefaultOptions<T>
29
29
  > = number extends T['length']
30
- ? Options['caseArray']
30
+ ? Options['$array']
31
31
  : T['length'] extends 0
32
32
  ? Options['caseEmptyTuple']
33
33
  : T['length'] extends 1
@@ -38,11 +38,11 @@ export type DropFirst<
38
38
 
39
39
  export namespace DropFirst {
40
40
  export interface Options {
41
- caseArray?: unknown,
41
+ $array?: unknown,
42
42
  caseEmptyTuple?: unknown,
43
43
  }
44
44
  export interface DefaultOptions<T> {
45
- caseArray: T,
45
+ $array: T,
46
46
  caseEmptyTuple: []
47
47
  }
48
48
  }
@@ -63,7 +63,7 @@ export namespace DropFirst {
63
63
  * type R = DropLast<string[]> // string[]
64
64
  * ```
65
65
  *
66
- * @typeParam Options['caseArray'] Return type when `T` is `Array`.
66
+ * @typeParam Options['$array'] Return type when `T` is `Array`.
67
67
  * Default to `T`.
68
68
  *
69
69
  * @typeParam Options['caseEmptyTuple'] Return type when `T` is an empty tuple.
@@ -73,7 +73,7 @@ export type DropLast<
73
73
  T extends unknown[],
74
74
  Cases extends DropLast.Options = DropLast.DefaultOptions<T>
75
75
  > = number extends T['length']
76
- ? Cases['caseArray']
76
+ ? Cases['$array']
77
77
  : T['length'] extends 0
78
78
  ? Cases['caseEmptyTuple']
79
79
  : T['length'] extends 1
@@ -85,11 +85,11 @@ export type DropLast<
85
85
 
86
86
  export namespace DropLast {
87
87
  export interface Options {
88
- caseArray?: unknown,
88
+ $array?: unknown,
89
89
  caseEmptyTuple?: unknown,
90
90
  }
91
91
  export interface DefaultOptions<T> {
92
- caseArray: T,
92
+ $array: T,
93
93
  caseEmptyTuple: []
94
94
  }
95
95
  }
@@ -106,7 +106,7 @@ Overridable cases:
106
106
 
107
107
  ## [CommonPropKeys](./common_prop_keys.ts#l22)
108
108
 
109
- `CommonPropKeys<T extends Record[], Options = { caseNever }>`
109
+ `CommonPropKeys<T extends Record[], Options = { $never }>`
110
110
 
111
111
  ⚗️ *transform*
112
112
  🔢 *customizable*
@@ -120,15 +120,15 @@ type R = CommonPropKeys<[{ a: 1, c: 1 }, { b: 1, c: 2 }]> // 'c'
120
120
  type R = CommonPropKeys<[{ a: 1 }, { b: 1 }]> // never
121
121
  type R = CommonPropKeys<Array<{ a: 1, b: 1 } | { a: 1, c: 1 }>> // 'a'
122
122
  type R = CommonPropKeys<[{ a: 1 }, { b: 1 }]> // never
123
- type R = CommonPropKeys<never> // caseNever: never
123
+ type R = CommonPropKeys<never> // $never: never
124
124
 
125
125
  // customization
126
- type R = CommonPropKeys<never, { caseNever: 1 }> // 1
126
+ type R = CommonPropKeys<never, { $never: 1 }> // 1
127
127
  ```
128
128
 
129
129
  ## [DropFirst](./drop.ts#l26)
130
130
 
131
- `DropFirst<T extends unknown[], Options = { caseArray, caseEmptyTuple }>`
131
+ `DropFirst<T extends unknown[], Options = { $array, caseEmptyTuple }>`
132
132
 
133
133
  ⚗️ *transform*
134
134
  🔢 *customizable*
@@ -140,11 +140,11 @@ import { DropFirst } from 'type-plus'
140
140
 
141
141
  type R = DropFirst<[1, 2, 3]> // [2, 3]
142
142
  type R = DropFirst<[string]> // []
143
- type R = DropFirst<string[]> // caseArray: string[]
143
+ type R = DropFirst<string[]> // $array: string[]
144
144
  type R = DropFirst<[]> // caseEmptyTuple: []
145
145
 
146
146
  // customization
147
- type R = DropFirst<string[], { caseArray: 1 }> // 1
147
+ type R = DropFirst<string[], { $array: 1 }> // 1
148
148
  type R = DropFirst<[], { caseEmptyTuple: 1 }> // 1
149
149
  ```
150
150
 
@@ -162,11 +162,11 @@ import { DropLast } from 'type-plus'
162
162
 
163
163
  type R = DropLast<[1, 2, 3]> // [2, 3]
164
164
  type R = DropLast<[string]> // []
165
- type R = DropLast<string[]> // caseArray: string[]
165
+ type R = DropLast<string[]> // $array: string[]
166
166
  type R = DropLast<[]> // caseEmptyTuple: []
167
167
 
168
168
  // customization
169
- type R = DropLast<string[], { caseArray: 1 }> // 1
169
+ type R = DropLast<string[], { $array: 1 }> // 1
170
170
  type R = DropLast<[], { caseEmptyTuple: 1 }> // 1
171
171
  ```
172
172
 
@@ -191,7 +191,7 @@ The input type are not checked and assumed to be *tuple*.
191
191
 
192
192
  ## [TuplePlus.CommonPropKeys](./tuple_plus.common_prop_keys.ts#l22)
193
193
 
194
- `TuplePlus.CommonPropKeys<T extends Record[], Options = { caseNever }>`
194
+ `TuplePlus.CommonPropKeys<T extends Record[], Options = { $never }>`
195
195
 
196
196
  ⚗️ *transform*
197
197
  🔢 *customizable*
@@ -205,10 +205,10 @@ type R = TuplePlus.CommonPropKeys<[{ a: 1, c: 1 }, { b: 1, c: 2 }]> // 'c'
205
205
  type R = TuplePlus.CommonPropKeys<[{ a: 1 }, { b: 1 }]> // never
206
206
  type R = TuplePlus.CommonPropKeys<Array<{ a: 1, b: 1 } | { a: 1, c: 1 }>> // 'a'
207
207
  type R = TuplePlus.CommonPropKeys<[{ a: 1 }, { b: 1 }]> // never
208
- type R = TuplePlus.CommonPropKeys<never> // caseNever: never
208
+ type R = TuplePlus.CommonPropKeys<never> // $never: never
209
209
 
210
210
  // customization
211
- type R = TuplePlus.CommonPropKeys<never, { caseNever: 1 }> // 1
211
+ type R = TuplePlus.CommonPropKeys<never, { $never: 1 }> // 1
212
212
  ```
213
213
 
214
214
  ### [TuplePlus.Filter](./tuple_plus.filter.ts)
@@ -227,7 +227,7 @@ type R = TuplePlus.Filter<[1, 2, '3'], number> // [1, 2]
227
227
 
228
228
  ### [`TuplePlus.Find`](./tuple_plus.find.ts#l51)
229
229
 
230
- `TuplePlus.Find<A, Criteria, Options { widen, caseArray, caseEmptyTuple, caseNever, caseNotMatch, caseWiden, caseUnionNotMatch }>`
230
+ `TuplePlus.Find<A, Criteria, Options { widen, $array, caseEmptyTuple, $never, $notMatch, $widen, $unionNotMatch }>`
231
231
 
232
232
  🦴 *utilities*
233
233
  🔢 *customizable*
@@ -246,12 +246,12 @@ type R = TuplePlus.Find<[true, 1, 'x'], 2> // never
246
246
 
247
247
  // customization
248
248
  type R = TuplePlus.Find<[number], 1, { widen: false }> // never
249
- type R = TuplePlus.Find<[number], 1, { caseWiden: never }> // never
250
- type R = TuplePlus.Find<string[], 1, { caseArray: 2 }> // 2
249
+ type R = TuplePlus.Find<[number], 1, { $widen: never }> // never
250
+ type R = TuplePlus.Find<string[], 1, { $array: 2 }> // 2
251
251
  type R = TuplePlus.Find<[], 1, { caseEmptyTuple: 2 }> // 2
252
- type R = TuplePlus.Find<never, 1, { caseNever: 2 }> // 2
253
- type R = TuplePlus.Find<[string], number, { caseNotMatch: 2 }> // 2
254
- type R = TuplePlus.Find<[string | number], number, { caseUnionNotMatch: undefined }> // number | undefined
252
+ type R = TuplePlus.Find<never, 1, { $never: 2 }> // 2
253
+ type R = TuplePlus.Find<[string], number, { $notMatch: 2 }> // 2
254
+ type R = TuplePlus.Find<[string | number], number, { $unionNotMatch: undefined }> // number | undefined
255
255
  ```
256
256
 
257
257
  ### [TuplePlus.PadStart](./tuple_plus.pad_start.ts)
package/ts/tuple/tail.ts CHANGED
@@ -3,10 +3,8 @@ import type { UnionOfValues } from '../array/union_of_values.js'
3
3
  /**
4
4
  * Gets the types of a tuple except the first entry.
5
5
  */
6
- export type Tail<T extends any[]> = T['length'] extends 0
6
+ export type Tail<T extends readonly unknown[]> = T['length'] extends 0
7
7
  ? never
8
- : T extends [any, ...infer Tail]
9
- ? Tail extends UnionOfValues<T>[]
10
- ? Tail
11
- : never
12
- : T
8
+ : (T extends readonly [any, ...infer Tail]
9
+ ? Tail extends UnionOfValues<T>[] ? Tail : never
10
+ : T)
@@ -16,7 +16,7 @@ import type { Tail } from './tail.js'
16
16
  * type R = TuplePlus.CommonPropKeys<[{ a: number, c: 1 }, { b: number, c: 2 }]> // 'c'
17
17
  * ```
18
18
  *
19
- * @typeParam Options['caseNever'] Return type when `T` is `never`.
19
+ * @typeParam Options['$never'] Return type when `T` is `never`.
20
20
  * Default to `never`.
21
21
  */
22
22
  export type CommonPropKeys<
@@ -24,7 +24,7 @@ export type CommonPropKeys<
24
24
  Options extends CommonPropKeys.Options = CommonPropKeys.DefaultOptions
25
25
  > = NeverType<
26
26
  T,
27
- Options['caseNever'],
27
+ Options['$never'],
28
28
  (T['length'] extends 0
29
29
  ? never
30
30
  : (
@@ -9,10 +9,10 @@
9
9
  * type R = Filter<[1, 2, '3'], true> // []
10
10
  * ```
11
11
  */
12
- export type Filter<T extends unknown[], Criteria> = T['length'] extends 0
12
+ export type Filter<T extends readonly unknown[], Criteria = true> = T['length'] extends 0
13
13
  ? []
14
14
  : (
15
- T extends [infer Head, ...infer Tail]
15
+ T extends readonly [infer Head, ...infer Tail]
16
16
  ? (
17
17
  Tail['length'] extends 0
18
18
  ? (
@@ -1,6 +1,6 @@
1
1
  import type { ElementMatch } from '../array/array_plus.element_match.js'
2
2
  import type { NeverType } from '../never/never_type.js'
3
- import type { MergeOptions } from '../utils/options.js'
3
+ import type { TypePlusOptions } from '../utils/options.js'
4
4
  import type { TupleType } from './tuple_type.js'
5
5
 
6
6
  /**
@@ -24,23 +24,23 @@ import type { TupleType } from './tuple_type.js'
24
24
  * With widen match, a narrowed type will match its widen type.
25
25
  * e.g. matching `1` against `number` yields `1 | undefined`
26
26
  *
27
- * The widen behavior can be customized by `Options['caseWiden']`
27
+ * The widen behavior can be customized by `Options['$widen']`
28
28
  *
29
- * @typeParam Options['caseArray'] return type when `A` is an array. Default to `not supported` message.
29
+ * @typeParam Options['$array'] return type when `A` is an array. Default to `not supported` message.
30
30
  *
31
31
  * @typeParam Options['caseEmptyTuple'] return type when `A` is an empty tuple.
32
32
  * Default to `never`.
33
33
  *
34
- * @typeParam Options['caseNever'] return type when `A` is `never`. Default to `never`.
34
+ * @typeParam Options['$never'] return type when `A` is `never`. Default to `never`.
35
35
  *
36
- * @typeParam Options['caseNotMatch'] Return value when `T` does not match `Criteria`.
36
+ * @typeParam Options['$notMatch'] Return value when `T` does not match `Criteria`.
37
37
  * Default to `never`.
38
38
  *
39
- * @typeParam Options['caseWiden'] return type when `T` in `A` is a widen type of `Criteria`.
39
+ * @typeParam Options['$widen'] return type when `T` in `A` is a widen type of `Criteria`.
40
40
  * Default to `Criteria | undefined`.
41
41
  * Set it to `never` for a more type-centric behavior
42
42
  *
43
- * @typeParam Options['caseUnionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
43
+ * @typeParam Options['$unionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
44
44
  * Default to `never`.
45
45
  *
46
46
  * If you want the type to behave more like JavaScript,
@@ -49,40 +49,40 @@ import type { TupleType } from './tuple_type.js'
49
49
  * Since it is a union, the result will be joined to the matched branch as union.
50
50
  */
51
51
  export type Find<
52
- A extends unknown[],
52
+ A extends readonly unknown[],
53
53
  Criteria,
54
54
  Options extends Find.Options = Find.DefaultOptions<Criteria>
55
- > = MergeOptions<Options, Find.DefaultOptions<Criteria>> extends infer O extends Find.Options
55
+ > = TypePlusOptions.Merge<Options, Find.DefaultOptions<Criteria>> extends infer O extends Find.Options
56
56
  ? TupleType<
57
57
  A,
58
58
  A['length'] extends 0
59
- ? O['caseEmptyTuple']
59
+ ? O['$emptyTuple']
60
60
  : Find.Device<A, Criteria, O>,
61
- O['caseArray'],
61
+ O['$array'],
62
62
  O
63
63
  >
64
64
  : never
65
65
  export namespace Find {
66
66
  export type Device<
67
- A extends unknown[],
67
+ A extends readonly unknown[],
68
68
  Criteria,
69
69
  Options extends Find.Options
70
70
  > = A['length'] extends 0
71
- ? Options['caseNotMatch']
72
- : (A extends [infer Head, ...infer Tail]
71
+ ? Options['$notMatch']
72
+ : (A extends readonly [infer Head, ...infer Tail]
73
73
  ? ElementMatch<
74
74
  Head,
75
75
  Criteria,
76
- MergeOptions<{ caseNotMatch: Device<Tail, Criteria, Options> }, Options>
76
+ TypePlusOptions.Merge<{ $notMatch: Device<Tail, Criteria, Options> }, Options>
77
77
  >
78
78
  : never)
79
79
  export interface Options extends ElementMatch.Options, NeverType.Options {
80
- caseArray?: unknown,
81
- caseEmptyTuple?: unknown,
80
+ $array?: unknown,
81
+ $emptyTuple?: unknown,
82
82
  }
83
83
 
84
84
  export interface DefaultOptions<Criteria> extends ElementMatch.DefaultOptions<Criteria>, NeverType.DefaultOptions {
85
- caseArray: 'does not support array. Please use `FindFirst` or `ArrayPlus.Find` instead.',
86
- caseEmptyTuple: never,
85
+ $array: 'does not support array. Please use `FindFirst` or `ArrayPlus.Find` instead.',
86
+ $emptyTuple: never,
87
87
  }
88
88
  }
@@ -17,16 +17,19 @@
17
17
  * PadStart<[1, 2, 3], 5> // [unknown, unknown, 1, 2, 3]
18
18
  * ```
19
19
  */
20
- export type PadStart<Tuple extends unknown[], MaxLength extends number, PadWith = unknown> = PadStart.Device<
21
- Tuple,
22
- MaxLength,
23
- PadWith,
24
- []
25
- >
20
+ export type PadStart<
21
+ Tuple extends readonly unknown[],
22
+ MaxLength extends number,
23
+ PadWith = unknown> = PadStart.Device<
24
+ Tuple,
25
+ MaxLength,
26
+ PadWith,
27
+ []
28
+ >
26
29
 
27
30
  export namespace PadStart {
28
31
  export type Device<
29
- Source extends unknown[],
32
+ Source extends readonly unknown[],
30
33
  MaxLength extends number,
31
34
  PadWith,
32
35
  Result extends unknown[]
@@ -36,7 +39,7 @@ export namespace PadStart {
36
39
  Source extends []
37
40
  ? Result
38
41
  : (
39
- Source extends [...infer Head, infer Tail]
42
+ Source extends readonly [...infer Head, infer Tail]
40
43
  ? (
41
44
  [Tail, ...Result] extends infer R extends unknown[]
42
45
  ? Device<Head, R['length'], PadWith, R>
@@ -49,7 +52,7 @@ export namespace PadStart {
49
52
  Source extends []
50
53
  ? Device<Source, MaxLength, PadWith, [PadWith, ...Result]>
51
54
  : (
52
- Source extends [...infer Head, infer Tail]
55
+ Source extends readonly [...infer Head, infer Tail]
53
56
  ? Device<Head, MaxLength, PadWith, [Tail, ...Result]>
54
57
  : Source
55
58
  )
@@ -5,7 +5,7 @@ import type { IsNever, NeverType } from '../never/never_type.js'
5
5
  *
6
6
  * Filter `T` to ensure it is a tuple, excluding array.
7
7
  *
8
- * @typeParam Cases['never'] Return type when `T` is `never`. Default to `Else`.
8
+ * @typeParam Cases['$never'] Return type when `T` is `never`. Default to `Else`.
9
9
  *
10
10
  * @example
11
11
  * ```ts
@@ -25,8 +25,8 @@ export type TupleType<
25
25
  Options extends TupleType.Options = TupleType.DefaultOptions<Else>
26
26
  > = IsNever<
27
27
  T,
28
- Options['caseNever'],
29
- [T] extends [any[]] ? (number extends T['length'] ? Else : Then) : Else
28
+ Options['$never'],
29
+ [T] extends [readonly any[]] ? (number extends T['length'] ? Else : Then) : Else
30
30
  >
31
31
 
32
32
  export namespace TupleType {
@@ -34,7 +34,7 @@ export namespace TupleType {
34
34
  }
35
35
 
36
36
  export interface DefaultOptions<Else> {
37
- caseNever: Else
37
+ $never: Else
38
38
  }
39
39
  }
40
40
 
@@ -0,0 +1,14 @@
1
+ const $then = Symbol('then')
2
+ export type $Then = typeof $then
3
+
4
+ const $else = Symbol('else')
5
+ export type $Else = typeof $else
6
+
7
+ const $never = Symbol('never')
8
+ export type $Never = typeof $never
9
+
10
+ const $error = Symbol('error')
11
+ export interface $Error<M extends string> {
12
+ type: typeof $error,
13
+ message: M
14
+ }
@@ -1,10 +1,29 @@
1
+ export namespace TypePlusOptions {
2
+ /**
3
+ * 🦴 *utilities*
4
+ * ㊙️ *internal*
5
+ *
6
+ * Merge the input Options `I` with the default Options `D`.
7
+ */
8
+ export type Merge<I, D> = {
9
+ [k in keyof D]: k extends keyof I ? I[k] : D[k]
10
+ }
1
11
 
2
- /**
3
- * 🦴 *utilities*
4
- * ㊙️ *internal*
5
- *
6
- * Merge the input Options `I` with the default Options `D`.
7
- */
8
- export type MergeOptions<I, D> = {
9
- [k in keyof D]: k extends keyof I ? I[k] : D[k]
12
+ /**
13
+ * 🦴 *utilities*
14
+ * ㊙️ *internal*
15
+ *
16
+ * Selection (if-then-else) options.
17
+ *
18
+ * The word "selection" refers to the basic elements in structural programming:
19
+ * sequence, selection, and iteration.
20
+ */
21
+ export interface Selection {
22
+ $then?: unknown,
23
+ $else?: unknown,
24
+ }
25
+
26
+ export interface NotArray {
27
+ $notArray?: unknown
28
+ }
10
29
  }