type-plus 6.3.0 → 6.4.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 (1050) hide show
  1. package/README.md +36 -9
  2. package/cjs/any/any_or_never.d.ts +17 -0
  3. package/cjs/any/any_or_never.d.ts.map +1 -0
  4. package/cjs/any/any_or_never.js +3 -0
  5. package/cjs/any/any_or_never.js.map +1 -0
  6. package/cjs/any/any_type.d.ts +57 -0
  7. package/cjs/any/any_type.d.ts.map +1 -0
  8. package/cjs/any/any_type.js +3 -0
  9. package/cjs/any/any_type.js.map +1 -0
  10. package/cjs/array/array.d.ts +32 -0
  11. package/cjs/array/array.d.ts.map +1 -0
  12. package/cjs/array/array.js.map +1 -0
  13. package/cjs/array/array_index.d.ts +37 -0
  14. package/cjs/array/array_index.d.ts.map +1 -0
  15. package/cjs/array/array_index.js +3 -0
  16. package/cjs/array/array_index.js.map +1 -0
  17. package/cjs/array/array_plus.d.ts +3 -0
  18. package/cjs/array/array_plus.d.ts.map +1 -0
  19. package/cjs/array/array_plus.js.map +1 -0
  20. package/cjs/array/array_type.d.ts +56 -0
  21. package/cjs/array/array_type.d.ts.map +1 -0
  22. package/cjs/array/array_type.js +3 -0
  23. package/cjs/array/array_type.js.map +1 -0
  24. package/cjs/array/common_prop_keys.d.ts.map +1 -0
  25. package/cjs/array/common_prop_keys.js.map +1 -0
  26. package/cjs/array/create_tuple.d.ts +11 -0
  27. package/cjs/array/create_tuple.d.ts.map +1 -0
  28. package/cjs/array/create_tuple.js.map +1 -0
  29. package/cjs/array/drop.d.ts +19 -0
  30. package/cjs/array/drop.d.ts.map +1 -0
  31. package/cjs/array/drop.js.map +1 -0
  32. package/cjs/array/filter.d.ts +9 -0
  33. package/cjs/array/filter.d.ts.map +1 -0
  34. package/cjs/array/filter.js.map +1 -0
  35. package/cjs/array/find_first.d.ts.map +1 -0
  36. package/cjs/array/find_first.js.map +1 -0
  37. package/cjs/array/find_last.d.ts.map +1 -0
  38. package/cjs/array/find_last.js.map +1 -0
  39. package/cjs/array/head.d.ts.map +1 -0
  40. package/cjs/array/head.js.map +1 -0
  41. package/cjs/array/index.d.ts +18 -0
  42. package/cjs/array/index.d.ts.map +1 -0
  43. package/cjs/array/index.js +34 -0
  44. package/cjs/array/index.js.map +1 -0
  45. package/cjs/array/intersect_of_props.d.ts.map +1 -0
  46. package/cjs/array/intersect_of_props.js.map +1 -0
  47. package/cjs/array/last.d.ts.map +1 -0
  48. package/cjs/array/last.js.map +1 -0
  49. package/cjs/array/literal_array.d.ts.map +1 -0
  50. package/cjs/array/literal_array.js.map +1 -0
  51. package/cjs/array/pad_left.d.ts +6 -0
  52. package/cjs/array/pad_left.d.ts.map +1 -0
  53. package/cjs/array/pad_left.js.map +1 -0
  54. package/cjs/array/reduce_while.d.ts.map +1 -0
  55. package/cjs/array/reduce_while.js.map +1 -0
  56. package/cjs/array/reverse.d.ts.map +1 -0
  57. package/cjs/array/reverse.js.map +1 -0
  58. package/cjs/array/some.d.ts +8 -0
  59. package/cjs/array/some.d.ts.map +1 -0
  60. package/cjs/array/some.js.map +1 -0
  61. package/cjs/array/tail.d.ts.map +1 -0
  62. package/cjs/array/tail.js.map +1 -0
  63. package/cjs/array/union_of_props.d.ts.map +1 -0
  64. package/cjs/array/union_of_props.js.map +1 -0
  65. package/cjs/array/union_of_values.d.ts.map +1 -0
  66. package/cjs/array/union_of_values.js.map +1 -0
  67. package/cjs/assertion/assert_type.d.ts +34 -0
  68. package/cjs/assertion/assert_type.d.ts.map +1 -0
  69. package/cjs/assertion/assert_type.js +107 -0
  70. package/cjs/assertion/assert_type.js.map +1 -0
  71. package/cjs/bigint/bigint_type.d.ts +62 -0
  72. package/cjs/bigint/bigint_type.d.ts.map +1 -0
  73. package/cjs/bigint/bigint_type.js +3 -0
  74. package/cjs/bigint/bigint_type.js.map +1 -0
  75. package/cjs/bigint/strict_bigint_type.d.ts +64 -0
  76. package/cjs/bigint/strict_bigint_type.d.ts.map +1 -0
  77. package/cjs/bigint/strict_bigint_type.js +3 -0
  78. package/cjs/bigint/strict_bigint_type.js.map +1 -0
  79. package/cjs/boolean/boolean_type.d.ts +64 -0
  80. package/cjs/boolean/boolean_type.d.ts.map +1 -0
  81. package/cjs/boolean/boolean_type.js +3 -0
  82. package/cjs/boolean/boolean_type.js.map +1 -0
  83. package/cjs/boolean/false_type.d.ts +57 -0
  84. package/cjs/boolean/false_type.d.ts.map +1 -0
  85. package/cjs/boolean/false_type.js +3 -0
  86. package/cjs/boolean/false_type.js.map +1 -0
  87. package/cjs/boolean/strict_boolean_type.d.ts +61 -0
  88. package/cjs/boolean/strict_boolean_type.d.ts.map +1 -0
  89. package/cjs/boolean/strict_boolean_type.js +3 -0
  90. package/cjs/boolean/strict_boolean_type.js.map +1 -0
  91. package/cjs/boolean/true_type.d.ts +57 -0
  92. package/cjs/boolean/true_type.d.ts.map +1 -0
  93. package/cjs/boolean/true_type.js +3 -0
  94. package/cjs/boolean/true_type.js.map +1 -0
  95. package/cjs/composable_types.d.ts +9 -0
  96. package/cjs/composable_types.d.ts.map +1 -0
  97. package/cjs/composable_types.js +3 -0
  98. package/cjs/composable_types.js.map +1 -0
  99. package/cjs/equal/equal.d.ts +52 -0
  100. package/cjs/equal/equal.d.ts.map +1 -0
  101. package/cjs/equal/equal.js +3 -0
  102. package/cjs/equal/equal.js.map +1 -0
  103. package/cjs/function/any_function.d.ts +2 -0
  104. package/cjs/function/any_function.d.ts.map +1 -0
  105. package/cjs/function/any_function.js +3 -0
  106. package/cjs/function/any_function.js.map +1 -0
  107. package/cjs/function/extract_function.d.ts +24 -0
  108. package/cjs/function/extract_function.d.ts.map +1 -0
  109. package/cjs/function/extract_function.js +13 -0
  110. package/cjs/function/extract_function.js.map +1 -0
  111. package/cjs/function/function_type.d.ts +67 -0
  112. package/cjs/function/function_type.d.ts.map +1 -0
  113. package/cjs/function/function_type.js +3 -0
  114. package/cjs/function/function_type.js.map +1 -0
  115. package/cjs/function/strict_function_type.d.ts +57 -0
  116. package/cjs/function/strict_function_type.d.ts.map +1 -0
  117. package/cjs/function/strict_function_type.js +3 -0
  118. package/cjs/function/strict_function_type.js.map +1 -0
  119. package/cjs/functional/Maybe.d.ts +2 -2
  120. package/cjs/functional/Maybe.d.ts.map +1 -1
  121. package/cjs/functional/compose.d.ts +2 -2
  122. package/cjs/functional/compose.d.ts.map +1 -1
  123. package/cjs/index.d.ts +43 -15
  124. package/cjs/index.d.ts.map +1 -1
  125. package/cjs/index.js +11 -15
  126. package/cjs/index.js.map +1 -1
  127. package/cjs/json.d.ts +12 -0
  128. package/cjs/json.d.ts.map +1 -0
  129. package/cjs/json.js +14 -0
  130. package/cjs/json.js.map +1 -0
  131. package/cjs/math/Add.d.ts +4 -3
  132. package/cjs/math/Add.d.ts.map +1 -1
  133. package/cjs/math/Digit.d.ts +4 -3
  134. package/cjs/math/Digit.d.ts.map +1 -1
  135. package/cjs/math/GreaterThan.d.ts +6 -4
  136. package/cjs/math/GreaterThan.d.ts.map +1 -1
  137. package/cjs/math/Max.d.ts +1 -1
  138. package/cjs/math/Max.d.ts.map +1 -1
  139. package/cjs/math/Subtract.d.ts +4 -3
  140. package/cjs/math/Subtract.d.ts.map +1 -1
  141. package/cjs/never/never_type.d.ts +59 -0
  142. package/cjs/never/never_type.d.ts.map +1 -0
  143. package/cjs/never/never_type.js +3 -0
  144. package/cjs/never/never_type.js.map +1 -0
  145. package/cjs/nominal/brand.d.ts +21 -0
  146. package/cjs/nominal/brand.d.ts.map +1 -0
  147. package/cjs/nominal/brand.js +20 -0
  148. package/cjs/nominal/brand.js.map +1 -0
  149. package/cjs/nominal/flavor.d.ts +20 -0
  150. package/cjs/nominal/flavor.d.ts.map +1 -0
  151. package/cjs/nominal/flavor.js +20 -0
  152. package/cjs/nominal/flavor.js.map +1 -0
  153. package/cjs/nominal/index.d.ts +4 -0
  154. package/cjs/nominal/index.d.ts.map +1 -0
  155. package/cjs/nominal/index.js +20 -0
  156. package/cjs/nominal/index.js.map +1 -0
  157. package/cjs/nominal/nominal_match.d.ts +5 -0
  158. package/cjs/nominal/nominal_match.d.ts.map +1 -0
  159. package/cjs/nominal/nominal_match.js +13 -0
  160. package/cjs/nominal/nominal_match.js.map +1 -0
  161. package/cjs/nominal/types.d.ts.map +1 -0
  162. package/cjs/nominal/types.js.map +1 -0
  163. package/cjs/null/null_type.d.ts +58 -0
  164. package/cjs/null/null_type.d.ts.map +1 -0
  165. package/cjs/null/null_type.js +3 -0
  166. package/cjs/null/null_type.js.map +1 -0
  167. package/cjs/number/integer.d.ts +75 -0
  168. package/cjs/number/integer.d.ts.map +1 -0
  169. package/cjs/number/integer.js +3 -0
  170. package/cjs/number/integer.js.map +1 -0
  171. package/cjs/number/negative.d.ts +78 -0
  172. package/cjs/number/negative.d.ts.map +1 -0
  173. package/cjs/number/negative.js +3 -0
  174. package/cjs/number/negative.js.map +1 -0
  175. package/cjs/number/number_array.d.ts +3 -0
  176. package/cjs/number/number_array.d.ts.map +1 -0
  177. package/cjs/number/number_array.js +3 -0
  178. package/cjs/number/number_array.js.map +1 -0
  179. package/cjs/number/number_plus.d.ts +8 -0
  180. package/cjs/number/number_plus.d.ts.map +1 -0
  181. package/cjs/number/number_plus.js.map +1 -0
  182. package/cjs/number/number_type.d.ts +58 -0
  183. package/cjs/number/number_type.d.ts.map +1 -0
  184. package/cjs/number/number_type.js +3 -0
  185. package/cjs/number/number_type.js.map +1 -0
  186. package/cjs/number/numeric_type.d.ts +67 -0
  187. package/cjs/number/numeric_type.d.ts.map +1 -0
  188. package/cjs/number/numeric_type.js +3 -0
  189. package/cjs/number/numeric_type.js.map +1 -0
  190. package/cjs/number/positive.d.ts +61 -0
  191. package/cjs/number/positive.d.ts.map +1 -0
  192. package/cjs/number/positive.js +3 -0
  193. package/cjs/number/positive.js.map +1 -0
  194. package/cjs/number/strict_number_type.d.ts +61 -0
  195. package/cjs/number/strict_number_type.d.ts.map +1 -0
  196. package/cjs/number/strict_number_type.js +3 -0
  197. package/cjs/number/strict_number_type.js.map +1 -0
  198. package/cjs/object/ANotB.d.ts +1 -1
  199. package/cjs/object/ANotB.d.ts.map +1 -1
  200. package/cjs/object/KnownKeys.d.ts +1 -1
  201. package/cjs/object/KnownKeys.d.ts.map +1 -1
  202. package/cjs/object/Partial.d.ts +1 -1
  203. package/cjs/object/Partial.d.ts.map +1 -1
  204. package/cjs/object/getField.d.ts +1 -1
  205. package/cjs/object/getField.d.ts.map +1 -1
  206. package/cjs/object/hasProperty.d.ts +1 -1
  207. package/cjs/object/hasProperty.d.ts.map +1 -1
  208. package/cjs/object/index.d.ts +17 -16
  209. package/cjs/object/index.d.ts.map +1 -1
  210. package/cjs/object/index.js.map +1 -1
  211. package/cjs/object/object_type.d.ts +62 -0
  212. package/cjs/object/object_type.d.ts.map +1 -0
  213. package/cjs/object/object_type.js +3 -0
  214. package/cjs/object/object_type.js.map +1 -0
  215. package/cjs/object/omit.d.ts +1 -1
  216. package/cjs/object/omit.d.ts.map +1 -1
  217. package/cjs/object/pick.d.ts +1 -1
  218. package/cjs/object/pick.d.ts.map +1 -1
  219. package/cjs/object/properties.d.ts +7 -0
  220. package/cjs/object/properties.d.ts.map +1 -0
  221. package/cjs/object/properties.js +3 -0
  222. package/cjs/object/properties.js.map +1 -0
  223. package/cjs/predicates/index.d.ts +0 -2
  224. package/cjs/predicates/index.d.ts.map +1 -1
  225. package/cjs/predicates/index.js.map +1 -1
  226. package/cjs/predicates/isType.d.ts +1 -1
  227. package/cjs/predicates/isType.d.ts.map +1 -1
  228. package/cjs/predicates/isType.js +2 -1
  229. package/cjs/predicates/isType.js.map +1 -1
  230. package/cjs/primitive.d.ts +2 -0
  231. package/cjs/primitive.d.ts.map +1 -0
  232. package/cjs/primitive.js +3 -0
  233. package/cjs/primitive.js.map +1 -0
  234. package/cjs/string/strict_string_type.d.ts +66 -0
  235. package/cjs/string/strict_string_type.d.ts.map +1 -0
  236. package/cjs/string/strict_string_type.js +3 -0
  237. package/cjs/string/strict_string_type.js.map +1 -0
  238. package/cjs/string/string_type.d.ts +66 -0
  239. package/cjs/string/string_type.d.ts.map +1 -0
  240. package/cjs/string/string_type.js +3 -0
  241. package/cjs/string/string_type.js.map +1 -0
  242. package/cjs/symbol/symbol_type.d.ts +60 -0
  243. package/cjs/symbol/symbol_type.d.ts.map +1 -0
  244. package/cjs/symbol/symbol_type.js +3 -0
  245. package/cjs/symbol/symbol_type.js.map +1 -0
  246. package/cjs/testing/stub.d.ts +2 -2
  247. package/cjs/testing/stub.d.ts.map +1 -1
  248. package/cjs/testing/test_type.d.ts +102 -0
  249. package/cjs/testing/test_type.d.ts.map +1 -0
  250. package/cjs/testing/test_type.js +105 -0
  251. package/cjs/testing/test_type.js.map +1 -0
  252. package/cjs/tuple/tuple_type.d.ts +67 -0
  253. package/cjs/tuple/tuple_type.d.ts.map +1 -0
  254. package/cjs/tuple/tuple_type.js +3 -0
  255. package/cjs/tuple/tuple_type.js.map +1 -0
  256. package/cjs/undefined/undefined_type.d.ts +61 -0
  257. package/cjs/undefined/undefined_type.d.ts.map +1 -0
  258. package/cjs/undefined/undefined_type.js +3 -0
  259. package/cjs/undefined/undefined_type.js.map +1 -0
  260. package/cjs/union_keys.d.ts +6 -0
  261. package/cjs/union_keys.d.ts.map +1 -0
  262. package/cjs/union_keys.js +3 -0
  263. package/cjs/union_keys.js.map +1 -0
  264. package/cjs/union_to_intersection.d.ts +3 -0
  265. package/cjs/union_to_intersection.d.ts.map +1 -0
  266. package/cjs/union_to_intersection.js +8 -0
  267. package/cjs/union_to_intersection.js.map +1 -0
  268. package/cjs/unknown/unknown_type.d.ts +59 -0
  269. package/cjs/unknown/unknown_type.d.ts.map +1 -0
  270. package/cjs/unknown/unknown_type.js +3 -0
  271. package/cjs/unknown/unknown_type.js.map +1 -0
  272. package/cjs/void/void_type.d.ts +51 -0
  273. package/cjs/void/void_type.d.ts.map +1 -0
  274. package/cjs/void/void_type.js +3 -0
  275. package/cjs/void/void_type.js.map +1 -0
  276. package/esm/any/any_or_never.d.ts +17 -0
  277. package/esm/any/any_or_never.d.ts.map +1 -0
  278. package/esm/any/any_or_never.js +2 -0
  279. package/esm/any/any_or_never.js.map +1 -0
  280. package/esm/any/any_type.d.ts +57 -0
  281. package/esm/any/any_type.d.ts.map +1 -0
  282. package/esm/any/any_type.js +2 -0
  283. package/esm/any/any_type.js.map +1 -0
  284. package/esm/array/array.d.ts +32 -0
  285. package/esm/array/array.d.ts.map +1 -0
  286. package/esm/array/array.js.map +1 -0
  287. package/esm/array/array_index.d.ts +37 -0
  288. package/esm/array/array_index.d.ts.map +1 -0
  289. package/esm/array/array_index.js +2 -0
  290. package/esm/array/array_index.js.map +1 -0
  291. package/esm/array/array_plus.d.ts +3 -0
  292. package/esm/array/array_plus.d.ts.map +1 -0
  293. package/esm/array/array_plus.js.map +1 -0
  294. package/esm/array/array_type.d.ts +56 -0
  295. package/esm/array/array_type.d.ts.map +1 -0
  296. package/esm/array/array_type.js +2 -0
  297. package/esm/array/array_type.js.map +1 -0
  298. package/esm/array/common_prop_keys.d.ts.map +1 -0
  299. package/esm/array/common_prop_keys.js.map +1 -0
  300. package/esm/array/create_tuple.d.ts +11 -0
  301. package/esm/array/create_tuple.d.ts.map +1 -0
  302. package/esm/array/create_tuple.js.map +1 -0
  303. package/esm/array/drop.d.ts +19 -0
  304. package/esm/array/drop.d.ts.map +1 -0
  305. package/esm/array/drop.js.map +1 -0
  306. package/esm/array/filter.d.ts +9 -0
  307. package/esm/array/filter.d.ts.map +1 -0
  308. package/esm/array/filter.js.map +1 -0
  309. package/esm/array/find_first.d.ts.map +1 -0
  310. package/esm/array/find_first.js.map +1 -0
  311. package/esm/array/find_last.d.ts.map +1 -0
  312. package/esm/array/find_last.js.map +1 -0
  313. package/esm/array/head.d.ts.map +1 -0
  314. package/esm/array/head.js.map +1 -0
  315. package/esm/array/index.d.ts +18 -0
  316. package/esm/array/index.d.ts.map +1 -0
  317. package/esm/array/index.js +18 -0
  318. package/esm/array/index.js.map +1 -0
  319. package/esm/array/intersect_of_props.d.ts.map +1 -0
  320. package/esm/array/intersect_of_props.js.map +1 -0
  321. package/esm/array/last.d.ts.map +1 -0
  322. package/esm/array/last.js.map +1 -0
  323. package/esm/array/literal_array.d.ts.map +1 -0
  324. package/esm/array/literal_array.js.map +1 -0
  325. package/esm/array/pad_left.d.ts +6 -0
  326. package/esm/array/pad_left.d.ts.map +1 -0
  327. package/esm/array/pad_left.js.map +1 -0
  328. package/esm/array/reduce_while.d.ts.map +1 -0
  329. package/esm/array/reduce_while.js.map +1 -0
  330. package/esm/array/reverse.d.ts.map +1 -0
  331. package/esm/array/reverse.js.map +1 -0
  332. package/esm/array/some.d.ts +8 -0
  333. package/esm/array/some.d.ts.map +1 -0
  334. package/esm/array/some.js.map +1 -0
  335. package/esm/array/tail.d.ts.map +1 -0
  336. package/esm/array/tail.js.map +1 -0
  337. package/esm/array/union_of_props.d.ts.map +1 -0
  338. package/esm/array/union_of_props.js.map +1 -0
  339. package/esm/array/union_of_values.d.ts.map +1 -0
  340. package/esm/array/union_of_values.js.map +1 -0
  341. package/esm/assertion/assert_type.d.ts +34 -0
  342. package/esm/assertion/assert_type.d.ts.map +1 -0
  343. package/esm/assertion/assert_type.js +103 -0
  344. package/esm/assertion/assert_type.js.map +1 -0
  345. package/esm/bigint/bigint_type.d.ts +62 -0
  346. package/esm/bigint/bigint_type.d.ts.map +1 -0
  347. package/esm/bigint/bigint_type.js +2 -0
  348. package/esm/bigint/bigint_type.js.map +1 -0
  349. package/esm/bigint/strict_bigint_type.d.ts +64 -0
  350. package/esm/bigint/strict_bigint_type.d.ts.map +1 -0
  351. package/esm/bigint/strict_bigint_type.js +2 -0
  352. package/esm/bigint/strict_bigint_type.js.map +1 -0
  353. package/esm/boolean/boolean_type.d.ts +64 -0
  354. package/esm/boolean/boolean_type.d.ts.map +1 -0
  355. package/esm/boolean/boolean_type.js +2 -0
  356. package/esm/boolean/boolean_type.js.map +1 -0
  357. package/esm/boolean/false_type.d.ts +57 -0
  358. package/esm/boolean/false_type.d.ts.map +1 -0
  359. package/esm/boolean/false_type.js +2 -0
  360. package/esm/boolean/false_type.js.map +1 -0
  361. package/esm/boolean/strict_boolean_type.d.ts +61 -0
  362. package/esm/boolean/strict_boolean_type.d.ts.map +1 -0
  363. package/esm/boolean/strict_boolean_type.js +2 -0
  364. package/esm/boolean/strict_boolean_type.js.map +1 -0
  365. package/esm/boolean/true_type.d.ts +57 -0
  366. package/esm/boolean/true_type.d.ts.map +1 -0
  367. package/esm/boolean/true_type.js +2 -0
  368. package/esm/boolean/true_type.js.map +1 -0
  369. package/esm/composable_types.d.ts +9 -0
  370. package/esm/composable_types.d.ts.map +1 -0
  371. package/esm/composable_types.js +2 -0
  372. package/esm/composable_types.js.map +1 -0
  373. package/esm/equal/equal.d.ts +52 -0
  374. package/esm/equal/equal.d.ts.map +1 -0
  375. package/esm/equal/equal.js +2 -0
  376. package/esm/equal/equal.js.map +1 -0
  377. package/esm/function/any_function.d.ts +2 -0
  378. package/esm/function/any_function.d.ts.map +1 -0
  379. package/esm/function/any_function.js +2 -0
  380. package/esm/function/any_function.js.map +1 -0
  381. package/esm/function/extract_function.d.ts +24 -0
  382. package/esm/function/extract_function.d.ts.map +1 -0
  383. package/esm/function/extract_function.js +9 -0
  384. package/esm/function/extract_function.js.map +1 -0
  385. package/esm/function/function_type.d.ts +67 -0
  386. package/esm/function/function_type.d.ts.map +1 -0
  387. package/esm/function/function_type.js +2 -0
  388. package/esm/function/function_type.js.map +1 -0
  389. package/esm/function/strict_function_type.d.ts +57 -0
  390. package/esm/function/strict_function_type.d.ts.map +1 -0
  391. package/esm/function/strict_function_type.js +2 -0
  392. package/esm/function/strict_function_type.js.map +1 -0
  393. package/esm/functional/Maybe.d.ts +2 -2
  394. package/esm/functional/Maybe.d.ts.map +1 -1
  395. package/esm/functional/compose.d.ts +2 -2
  396. package/esm/functional/compose.d.ts.map +1 -1
  397. package/esm/index.d.ts +43 -15
  398. package/esm/index.d.ts.map +1 -1
  399. package/esm/index.js +8 -12
  400. package/esm/index.js.map +1 -1
  401. package/esm/json.d.ts +12 -0
  402. package/esm/json.d.ts.map +1 -0
  403. package/esm/json.js +11 -0
  404. package/esm/json.js.map +1 -0
  405. package/esm/math/Add.d.ts +4 -3
  406. package/esm/math/Add.d.ts.map +1 -1
  407. package/esm/math/Digit.d.ts +4 -3
  408. package/esm/math/Digit.d.ts.map +1 -1
  409. package/esm/math/GreaterThan.d.ts +6 -4
  410. package/esm/math/GreaterThan.d.ts.map +1 -1
  411. package/esm/math/Max.d.ts +1 -1
  412. package/esm/math/Max.d.ts.map +1 -1
  413. package/esm/math/Subtract.d.ts +4 -3
  414. package/esm/math/Subtract.d.ts.map +1 -1
  415. package/esm/never/never_type.d.ts +59 -0
  416. package/esm/never/never_type.d.ts.map +1 -0
  417. package/esm/never/never_type.js +2 -0
  418. package/esm/never/never_type.js.map +1 -0
  419. package/esm/nominal/brand.d.ts +21 -0
  420. package/esm/nominal/brand.d.ts.map +1 -0
  421. package/esm/nominal/brand.js +16 -0
  422. package/esm/nominal/brand.js.map +1 -0
  423. package/esm/nominal/flavor.d.ts +20 -0
  424. package/esm/nominal/flavor.d.ts.map +1 -0
  425. package/esm/nominal/flavor.js +16 -0
  426. package/esm/nominal/flavor.js.map +1 -0
  427. package/esm/nominal/index.d.ts +4 -0
  428. package/esm/nominal/index.d.ts.map +1 -0
  429. package/esm/nominal/index.js +4 -0
  430. package/esm/nominal/index.js.map +1 -0
  431. package/esm/nominal/nominal_match.d.ts +5 -0
  432. package/esm/nominal/nominal_match.d.ts.map +1 -0
  433. package/esm/nominal/nominal_match.js +9 -0
  434. package/esm/nominal/nominal_match.js.map +1 -0
  435. package/esm/nominal/types.d.ts.map +1 -0
  436. package/esm/nominal/types.js.map +1 -0
  437. package/esm/null/null_type.d.ts +58 -0
  438. package/esm/null/null_type.d.ts.map +1 -0
  439. package/esm/null/null_type.js +2 -0
  440. package/esm/null/null_type.js.map +1 -0
  441. package/esm/number/integer.d.ts +75 -0
  442. package/esm/number/integer.d.ts.map +1 -0
  443. package/esm/number/integer.js +2 -0
  444. package/esm/number/integer.js.map +1 -0
  445. package/esm/number/negative.d.ts +78 -0
  446. package/esm/number/negative.d.ts.map +1 -0
  447. package/esm/number/negative.js +2 -0
  448. package/esm/number/negative.js.map +1 -0
  449. package/esm/number/number_array.d.ts +3 -0
  450. package/esm/number/number_array.d.ts.map +1 -0
  451. package/esm/number/number_array.js +2 -0
  452. package/esm/number/number_array.js.map +1 -0
  453. package/esm/number/number_plus.d.ts +8 -0
  454. package/esm/number/number_plus.d.ts.map +1 -0
  455. package/esm/number/number_plus.js.map +1 -0
  456. package/esm/number/number_type.d.ts +58 -0
  457. package/esm/number/number_type.d.ts.map +1 -0
  458. package/esm/number/number_type.js +2 -0
  459. package/esm/number/number_type.js.map +1 -0
  460. package/esm/number/numeric_type.d.ts +67 -0
  461. package/esm/number/numeric_type.d.ts.map +1 -0
  462. package/esm/number/numeric_type.js +2 -0
  463. package/esm/number/numeric_type.js.map +1 -0
  464. package/esm/number/positive.d.ts +61 -0
  465. package/esm/number/positive.d.ts.map +1 -0
  466. package/esm/number/positive.js +2 -0
  467. package/esm/number/positive.js.map +1 -0
  468. package/esm/number/strict_number_type.d.ts +61 -0
  469. package/esm/number/strict_number_type.d.ts.map +1 -0
  470. package/esm/number/strict_number_type.js +2 -0
  471. package/esm/number/strict_number_type.js.map +1 -0
  472. package/esm/object/ANotB.d.ts +1 -1
  473. package/esm/object/ANotB.d.ts.map +1 -1
  474. package/esm/object/KnownKeys.d.ts +1 -1
  475. package/esm/object/KnownKeys.d.ts.map +1 -1
  476. package/esm/object/Partial.d.ts +1 -1
  477. package/esm/object/Partial.d.ts.map +1 -1
  478. package/esm/object/getField.d.ts +1 -1
  479. package/esm/object/getField.d.ts.map +1 -1
  480. package/esm/object/hasProperty.d.ts +1 -1
  481. package/esm/object/hasProperty.d.ts.map +1 -1
  482. package/esm/object/index.d.ts +17 -16
  483. package/esm/object/index.d.ts.map +1 -1
  484. package/esm/object/index.js.map +1 -1
  485. package/esm/object/object_type.d.ts +62 -0
  486. package/esm/object/object_type.d.ts.map +1 -0
  487. package/esm/object/object_type.js +2 -0
  488. package/esm/object/object_type.js.map +1 -0
  489. package/esm/object/omit.d.ts +1 -1
  490. package/esm/object/omit.d.ts.map +1 -1
  491. package/esm/object/pick.d.ts +1 -1
  492. package/esm/object/pick.d.ts.map +1 -1
  493. package/esm/object/properties.d.ts +7 -0
  494. package/esm/object/properties.d.ts.map +1 -0
  495. package/esm/object/properties.js +2 -0
  496. package/esm/object/properties.js.map +1 -0
  497. package/esm/predicates/index.d.ts +0 -2
  498. package/esm/predicates/index.d.ts.map +1 -1
  499. package/esm/predicates/index.js.map +1 -1
  500. package/esm/predicates/isType.d.ts +1 -1
  501. package/esm/predicates/isType.d.ts.map +1 -1
  502. package/esm/predicates/isType.js +2 -1
  503. package/esm/predicates/isType.js.map +1 -1
  504. package/esm/primitive.d.ts +2 -0
  505. package/esm/primitive.d.ts.map +1 -0
  506. package/esm/primitive.js +2 -0
  507. package/esm/primitive.js.map +1 -0
  508. package/esm/string/strict_string_type.d.ts +66 -0
  509. package/esm/string/strict_string_type.d.ts.map +1 -0
  510. package/esm/string/strict_string_type.js +2 -0
  511. package/esm/string/strict_string_type.js.map +1 -0
  512. package/esm/string/string_type.d.ts +66 -0
  513. package/esm/string/string_type.d.ts.map +1 -0
  514. package/esm/string/string_type.js +2 -0
  515. package/esm/string/string_type.js.map +1 -0
  516. package/esm/symbol/symbol_type.d.ts +60 -0
  517. package/esm/symbol/symbol_type.d.ts.map +1 -0
  518. package/esm/symbol/symbol_type.js +2 -0
  519. package/esm/symbol/symbol_type.js.map +1 -0
  520. package/esm/testing/stub.d.ts +2 -2
  521. package/esm/testing/stub.d.ts.map +1 -1
  522. package/esm/testing/test_type.d.ts +102 -0
  523. package/esm/testing/test_type.d.ts.map +1 -0
  524. package/esm/testing/test_type.js +102 -0
  525. package/esm/testing/test_type.js.map +1 -0
  526. package/esm/tuple/tuple_type.d.ts +67 -0
  527. package/esm/tuple/tuple_type.d.ts.map +1 -0
  528. package/esm/tuple/tuple_type.js +2 -0
  529. package/esm/tuple/tuple_type.js.map +1 -0
  530. package/esm/undefined/undefined_type.d.ts +61 -0
  531. package/esm/undefined/undefined_type.d.ts.map +1 -0
  532. package/esm/undefined/undefined_type.js +2 -0
  533. package/esm/undefined/undefined_type.js.map +1 -0
  534. package/esm/union_keys.d.ts +6 -0
  535. package/esm/union_keys.d.ts.map +1 -0
  536. package/esm/union_keys.js +2 -0
  537. package/esm/union_keys.js.map +1 -0
  538. package/esm/union_to_intersection.d.ts +3 -0
  539. package/esm/union_to_intersection.d.ts.map +1 -0
  540. package/esm/union_to_intersection.js +4 -0
  541. package/esm/union_to_intersection.js.map +1 -0
  542. package/esm/unknown/unknown_type.d.ts +59 -0
  543. package/esm/unknown/unknown_type.d.ts.map +1 -0
  544. package/esm/unknown/unknown_type.js +2 -0
  545. package/esm/unknown/unknown_type.js.map +1 -0
  546. package/esm/void/void_type.d.ts +51 -0
  547. package/esm/void/void_type.d.ts.map +1 -0
  548. package/esm/void/void_type.js +2 -0
  549. package/esm/void/void_type.js.map +1 -0
  550. package/package.json +7 -25
  551. package/ts/any/any_or_never.ts +17 -0
  552. package/ts/any/any_type.ts +60 -0
  553. package/ts/any/readme.md +26 -0
  554. package/ts/array/array.ts +37 -0
  555. package/ts/array/array_index.ts +70 -0
  556. package/ts/array/array_plus.ts +2 -0
  557. package/ts/array/array_type.ts +61 -0
  558. package/ts/array/create_tuple.ts +17 -0
  559. package/ts/array/drop.ts +71 -0
  560. package/ts/array/filter.ts +27 -0
  561. package/ts/array/index.ts +17 -0
  562. package/ts/array/pad_left.ts +16 -0
  563. package/ts/array/readme.md +32 -0
  564. package/ts/array/some.ts +33 -0
  565. package/ts/assertion/assert_type.ts +107 -0
  566. package/ts/assertion/readme.md +15 -0
  567. package/ts/bigint/bigint_type.ts +65 -0
  568. package/ts/bigint/readme.md +51 -0
  569. package/ts/bigint/strict_bigint_type.ts +69 -0
  570. package/ts/boolean/boolean_type.ts +69 -0
  571. package/ts/boolean/false_type.ts +61 -0
  572. package/ts/boolean/readme.md +85 -0
  573. package/ts/boolean/strict_boolean_type.ts +65 -0
  574. package/ts/boolean/true_type.ts +61 -0
  575. package/ts/composable_types.ts +9 -0
  576. package/ts/equal/equal.ts +88 -0
  577. package/ts/equal/readme.md +31 -0
  578. package/ts/function/extract_function.ts +29 -0
  579. package/ts/function/function_type.ts +72 -0
  580. package/ts/function/readme.md +84 -0
  581. package/ts/function/strict_function_type.ts +61 -0
  582. package/ts/functional/Maybe.ts +2 -2
  583. package/ts/functional/compose.ts +2 -2
  584. package/ts/index.ts +90 -19
  585. package/ts/math/Add.ts +5 -4
  586. package/ts/math/Digit.ts +4 -3
  587. package/ts/math/GreaterThan.ts +7 -5
  588. package/ts/math/Max.ts +1 -1
  589. package/ts/math/Subtract.ts +5 -5
  590. package/ts/never/never_type.ts +65 -0
  591. package/ts/never/readme.md +37 -0
  592. package/ts/nominal/brand.ts +35 -0
  593. package/ts/nominal/flavor.ts +38 -0
  594. package/ts/nominal/index.ts +3 -0
  595. package/ts/nominal/nominal_match.ts +22 -0
  596. package/ts/null/null_type.ts +61 -0
  597. package/ts/null/readme.md +24 -0
  598. package/ts/number/integer.ts +81 -0
  599. package/ts/number/negative.ts +109 -0
  600. package/ts/number/number_array.ts +15 -0
  601. package/ts/number/number_plus.ts +20 -0
  602. package/ts/number/number_type.ts +61 -0
  603. package/ts/number/numeric_type.ts +72 -0
  604. package/ts/number/positive.ts +68 -0
  605. package/ts/number/readme.md +155 -0
  606. package/ts/number/strict_number_type.ts +65 -0
  607. package/ts/object/ANotB.ts +1 -1
  608. package/ts/object/KnownKeys.ts +1 -1
  609. package/ts/object/Partial.ts +1 -1
  610. package/ts/object/getField.ts +1 -1
  611. package/ts/object/hasProperty.ts +1 -1
  612. package/ts/object/index.ts +17 -16
  613. package/ts/object/object_type.ts +65 -0
  614. package/ts/object/omit.ts +1 -1
  615. package/ts/object/pick.ts +1 -1
  616. package/ts/object/properties.ts +4 -0
  617. package/ts/object/readme.md +28 -0
  618. package/ts/predicates/index.ts +0 -3
  619. package/ts/predicates/isType.ts +4 -2
  620. package/ts/primitive.ts +10 -0
  621. package/ts/string/readme.md +43 -0
  622. package/ts/string/strict_string_type.ts +69 -0
  623. package/ts/string/string_type.ts +69 -0
  624. package/ts/symbol/readme.md +34 -0
  625. package/ts/symbol/symbol_type.ts +65 -0
  626. package/ts/testing/readme.md +19 -0
  627. package/ts/testing/stub.ts +2 -2
  628. package/ts/testing/test_type.ts +127 -0
  629. package/ts/tuple/readme.md +24 -4
  630. package/ts/tuple/tuple_type.ts +72 -0
  631. package/ts/undefined/readme.md +18 -0
  632. package/ts/undefined/undefined_type.ts +65 -0
  633. package/ts/unknown/readme.md +27 -0
  634. package/ts/unknown/unknown_type.ts +63 -0
  635. package/ts/void/readme.md +26 -0
  636. package/ts/void/void_type.ts +58 -0
  637. package/cjs/ComposableTypes.d.ts +0 -9
  638. package/cjs/ComposableTypes.d.ts.map +0 -1
  639. package/cjs/ComposableTypes.js +0 -3
  640. package/cjs/ComposableTypes.js.map +0 -1
  641. package/cjs/JSONTypes.d.ts +0 -12
  642. package/cjs/JSONTypes.d.ts.map +0 -1
  643. package/cjs/JSONTypes.js +0 -14
  644. package/cjs/JSONTypes.js.map +0 -1
  645. package/cjs/PrimitiveTypes.d.ts +0 -3
  646. package/cjs/PrimitiveTypes.d.ts.map +0 -1
  647. package/cjs/PrimitiveTypes.js +0 -4
  648. package/cjs/PrimitiveTypes.js.map +0 -1
  649. package/cjs/UnionKeys.d.ts +0 -6
  650. package/cjs/UnionKeys.d.ts.map +0 -1
  651. package/cjs/UnionKeys.js +0 -3
  652. package/cjs/UnionKeys.js.map +0 -1
  653. package/cjs/UnionToIntersection.d.ts +0 -3
  654. package/cjs/UnionToIntersection.d.ts.map +0 -1
  655. package/cjs/UnionToIntersection.js +0 -8
  656. package/cjs/UnionToIntersection.js.map +0 -1
  657. package/cjs/any_plus/any.d.ts +0 -29
  658. package/cjs/any_plus/any.d.ts.map +0 -1
  659. package/cjs/any_plus/any.js +0 -3
  660. package/cjs/any_plus/any.js.map +0 -1
  661. package/cjs/any_plus/index.d.ts +0 -2
  662. package/cjs/any_plus/index.d.ts.map +0 -1
  663. package/cjs/any_plus/index.js +0 -3
  664. package/cjs/any_plus/index.js.map +0 -1
  665. package/cjs/array_plus/array.d.ts +0 -42
  666. package/cjs/array_plus/array.d.ts.map +0 -1
  667. package/cjs/array_plus/array.js.map +0 -1
  668. package/cjs/array_plus/array_number.d.ts +0 -4
  669. package/cjs/array_plus/array_number.d.ts.map +0 -1
  670. package/cjs/array_plus/array_number.js +0 -3
  671. package/cjs/array_plus/array_number.js.map +0 -1
  672. package/cjs/array_plus/array_plus.d.ts +0 -35
  673. package/cjs/array_plus/array_plus.d.ts.map +0 -1
  674. package/cjs/array_plus/array_plus.js.map +0 -1
  675. package/cjs/array_plus/common_prop_keys.d.ts.map +0 -1
  676. package/cjs/array_plus/common_prop_keys.js.map +0 -1
  677. package/cjs/array_plus/create_tuple.d.ts +0 -10
  678. package/cjs/array_plus/create_tuple.d.ts.map +0 -1
  679. package/cjs/array_plus/create_tuple.js.map +0 -1
  680. package/cjs/array_plus/drop.d.ts +0 -19
  681. package/cjs/array_plus/drop.d.ts.map +0 -1
  682. package/cjs/array_plus/drop.js.map +0 -1
  683. package/cjs/array_plus/filter.d.ts +0 -10
  684. package/cjs/array_plus/filter.d.ts.map +0 -1
  685. package/cjs/array_plus/filter.js.map +0 -1
  686. package/cjs/array_plus/find_first.d.ts.map +0 -1
  687. package/cjs/array_plus/find_first.js.map +0 -1
  688. package/cjs/array_plus/find_last.d.ts.map +0 -1
  689. package/cjs/array_plus/find_last.js.map +0 -1
  690. package/cjs/array_plus/head.d.ts.map +0 -1
  691. package/cjs/array_plus/head.js.map +0 -1
  692. package/cjs/array_plus/index.d.ts +0 -20
  693. package/cjs/array_plus/index.d.ts.map +0 -1
  694. package/cjs/array_plus/index.js +0 -20
  695. package/cjs/array_plus/index.js.map +0 -1
  696. package/cjs/array_plus/intersect_of_props.d.ts.map +0 -1
  697. package/cjs/array_plus/intersect_of_props.js.map +0 -1
  698. package/cjs/array_plus/is_array.d.ts +0 -2
  699. package/cjs/array_plus/is_array.d.ts.map +0 -1
  700. package/cjs/array_plus/is_array.js +0 -3
  701. package/cjs/array_plus/is_array.js.map +0 -1
  702. package/cjs/array_plus/last.d.ts.map +0 -1
  703. package/cjs/array_plus/last.js.map +0 -1
  704. package/cjs/array_plus/literal_array.d.ts.map +0 -1
  705. package/cjs/array_plus/literal_array.js.map +0 -1
  706. package/cjs/array_plus/pad_left.d.ts +0 -6
  707. package/cjs/array_plus/pad_left.d.ts.map +0 -1
  708. package/cjs/array_plus/pad_left.js.map +0 -1
  709. package/cjs/array_plus/reduce_while.d.ts.map +0 -1
  710. package/cjs/array_plus/reduce_while.js.map +0 -1
  711. package/cjs/array_plus/reverse.d.ts.map +0 -1
  712. package/cjs/array_plus/reverse.js.map +0 -1
  713. package/cjs/array_plus/some.d.ts +0 -8
  714. package/cjs/array_plus/some.d.ts.map +0 -1
  715. package/cjs/array_plus/some.js.map +0 -1
  716. package/cjs/array_plus/tail.d.ts.map +0 -1
  717. package/cjs/array_plus/tail.js.map +0 -1
  718. package/cjs/array_plus/union_of_props.d.ts.map +0 -1
  719. package/cjs/array_plus/union_of_props.js.map +0 -1
  720. package/cjs/array_plus/union_of_values.d.ts.map +0 -1
  721. package/cjs/array_plus/union_of_values.js.map +0 -1
  722. package/cjs/assertion/assertType.d.ts +0 -34
  723. package/cjs/assertion/assertType.d.ts.map +0 -1
  724. package/cjs/assertion/assertType.js +0 -107
  725. package/cjs/assertion/assertType.js.map +0 -1
  726. package/cjs/assertion/index.d.ts +0 -2
  727. package/cjs/assertion/index.d.ts.map +0 -1
  728. package/cjs/assertion/index.js +0 -18
  729. package/cjs/assertion/index.js.map +0 -1
  730. package/cjs/function/AnyFunction.d.ts +0 -2
  731. package/cjs/function/AnyFunction.d.ts.map +0 -1
  732. package/cjs/function/AnyFunction.js +0 -3
  733. package/cjs/function/AnyFunction.js.map +0 -1
  734. package/cjs/function/ExtractFunction.d.ts +0 -15
  735. package/cjs/function/ExtractFunction.d.ts.map +0 -1
  736. package/cjs/function/ExtractFunction.js +0 -13
  737. package/cjs/function/ExtractFunction.js.map +0 -1
  738. package/cjs/function/index.d.ts +0 -3
  739. package/cjs/function/index.d.ts.map +0 -1
  740. package/cjs/function/index.js +0 -18
  741. package/cjs/function/index.js.map +0 -1
  742. package/cjs/nominal-types/Brand.d.ts +0 -21
  743. package/cjs/nominal-types/Brand.d.ts.map +0 -1
  744. package/cjs/nominal-types/Brand.js +0 -20
  745. package/cjs/nominal-types/Brand.js.map +0 -1
  746. package/cjs/nominal-types/Flavor.d.ts +0 -20
  747. package/cjs/nominal-types/Flavor.d.ts.map +0 -1
  748. package/cjs/nominal-types/Flavor.js +0 -20
  749. package/cjs/nominal-types/Flavor.js.map +0 -1
  750. package/cjs/nominal-types/index.d.ts +0 -4
  751. package/cjs/nominal-types/index.d.ts.map +0 -1
  752. package/cjs/nominal-types/index.js +0 -20
  753. package/cjs/nominal-types/index.js.map +0 -1
  754. package/cjs/nominal-types/nominalMatch.d.ts +0 -5
  755. package/cjs/nominal-types/nominalMatch.d.ts.map +0 -1
  756. package/cjs/nominal-types/nominalMatch.js +0 -13
  757. package/cjs/nominal-types/nominalMatch.js.map +0 -1
  758. package/cjs/nominal-types/types.d.ts.map +0 -1
  759. package/cjs/nominal-types/types.js.map +0 -1
  760. package/cjs/number_plus/index.d.ts +0 -2
  761. package/cjs/number_plus/index.d.ts.map +0 -1
  762. package/cjs/number_plus/index.js +0 -3
  763. package/cjs/number_plus/index.js.map +0 -1
  764. package/cjs/number_plus/number.d.ts +0 -128
  765. package/cjs/number_plus/number.d.ts.map +0 -1
  766. package/cjs/number_plus/number.js +0 -3
  767. package/cjs/number_plus/number.js.map +0 -1
  768. package/cjs/number_plus/number_plus.d.ts +0 -2
  769. package/cjs/number_plus/number_plus.d.ts.map +0 -1
  770. package/cjs/number_plus/number_plus.js.map +0 -1
  771. package/cjs/predicates/Equal.d.ts +0 -38
  772. package/cjs/predicates/Equal.d.ts.map +0 -1
  773. package/cjs/predicates/Equal.js +0 -3
  774. package/cjs/predicates/Equal.js.map +0 -1
  775. package/cjs/testing/index.d.ts +0 -2
  776. package/cjs/testing/index.d.ts.map +0 -1
  777. package/cjs/testing/index.js +0 -18
  778. package/cjs/testing/index.js.map +0 -1
  779. package/cjs/tuple/index.d.ts +0 -2
  780. package/cjs/tuple/index.d.ts.map +0 -1
  781. package/cjs/tuple/index.js +0 -3
  782. package/cjs/tuple/index.js.map +0 -1
  783. package/cjs/tuple/tuple.d.ts +0 -16
  784. package/cjs/tuple/tuple.d.ts.map +0 -1
  785. package/cjs/tuple/tuple.js +0 -3
  786. package/cjs/tuple/tuple.js.map +0 -1
  787. package/esm/ComposableTypes.d.ts +0 -9
  788. package/esm/ComposableTypes.d.ts.map +0 -1
  789. package/esm/ComposableTypes.js +0 -2
  790. package/esm/ComposableTypes.js.map +0 -1
  791. package/esm/JSONTypes.d.ts +0 -12
  792. package/esm/JSONTypes.d.ts.map +0 -1
  793. package/esm/JSONTypes.js +0 -11
  794. package/esm/JSONTypes.js.map +0 -1
  795. package/esm/PrimitiveTypes.d.ts +0 -3
  796. package/esm/PrimitiveTypes.d.ts.map +0 -1
  797. package/esm/PrimitiveTypes.js +0 -3
  798. package/esm/PrimitiveTypes.js.map +0 -1
  799. package/esm/UnionKeys.d.ts +0 -6
  800. package/esm/UnionKeys.d.ts.map +0 -1
  801. package/esm/UnionKeys.js +0 -2
  802. package/esm/UnionKeys.js.map +0 -1
  803. package/esm/UnionToIntersection.d.ts +0 -3
  804. package/esm/UnionToIntersection.d.ts.map +0 -1
  805. package/esm/UnionToIntersection.js +0 -4
  806. package/esm/UnionToIntersection.js.map +0 -1
  807. package/esm/any_plus/any.d.ts +0 -29
  808. package/esm/any_plus/any.d.ts.map +0 -1
  809. package/esm/any_plus/any.js +0 -2
  810. package/esm/any_plus/any.js.map +0 -1
  811. package/esm/any_plus/index.d.ts +0 -2
  812. package/esm/any_plus/index.d.ts.map +0 -1
  813. package/esm/any_plus/index.js +0 -2
  814. package/esm/any_plus/index.js.map +0 -1
  815. package/esm/array_plus/array.d.ts +0 -42
  816. package/esm/array_plus/array.d.ts.map +0 -1
  817. package/esm/array_plus/array.js.map +0 -1
  818. package/esm/array_plus/array_number.d.ts +0 -4
  819. package/esm/array_plus/array_number.d.ts.map +0 -1
  820. package/esm/array_plus/array_number.js +0 -2
  821. package/esm/array_plus/array_number.js.map +0 -1
  822. package/esm/array_plus/array_plus.d.ts +0 -35
  823. package/esm/array_plus/array_plus.d.ts.map +0 -1
  824. package/esm/array_plus/array_plus.js.map +0 -1
  825. package/esm/array_plus/common_prop_keys.d.ts.map +0 -1
  826. package/esm/array_plus/common_prop_keys.js.map +0 -1
  827. package/esm/array_plus/create_tuple.d.ts +0 -10
  828. package/esm/array_plus/create_tuple.d.ts.map +0 -1
  829. package/esm/array_plus/create_tuple.js.map +0 -1
  830. package/esm/array_plus/drop.d.ts +0 -19
  831. package/esm/array_plus/drop.d.ts.map +0 -1
  832. package/esm/array_plus/drop.js.map +0 -1
  833. package/esm/array_plus/filter.d.ts +0 -10
  834. package/esm/array_plus/filter.d.ts.map +0 -1
  835. package/esm/array_plus/filter.js.map +0 -1
  836. package/esm/array_plus/find_first.d.ts.map +0 -1
  837. package/esm/array_plus/find_first.js.map +0 -1
  838. package/esm/array_plus/find_last.d.ts.map +0 -1
  839. package/esm/array_plus/find_last.js.map +0 -1
  840. package/esm/array_plus/head.d.ts.map +0 -1
  841. package/esm/array_plus/head.js.map +0 -1
  842. package/esm/array_plus/index.d.ts +0 -20
  843. package/esm/array_plus/index.d.ts.map +0 -1
  844. package/esm/array_plus/index.js +0 -4
  845. package/esm/array_plus/index.js.map +0 -1
  846. package/esm/array_plus/intersect_of_props.d.ts.map +0 -1
  847. package/esm/array_plus/intersect_of_props.js.map +0 -1
  848. package/esm/array_plus/is_array.d.ts +0 -2
  849. package/esm/array_plus/is_array.d.ts.map +0 -1
  850. package/esm/array_plus/is_array.js +0 -2
  851. package/esm/array_plus/is_array.js.map +0 -1
  852. package/esm/array_plus/last.d.ts.map +0 -1
  853. package/esm/array_plus/last.js.map +0 -1
  854. package/esm/array_plus/literal_array.d.ts.map +0 -1
  855. package/esm/array_plus/literal_array.js.map +0 -1
  856. package/esm/array_plus/pad_left.d.ts +0 -6
  857. package/esm/array_plus/pad_left.d.ts.map +0 -1
  858. package/esm/array_plus/pad_left.js.map +0 -1
  859. package/esm/array_plus/reduce_while.d.ts.map +0 -1
  860. package/esm/array_plus/reduce_while.js.map +0 -1
  861. package/esm/array_plus/reverse.d.ts.map +0 -1
  862. package/esm/array_plus/reverse.js.map +0 -1
  863. package/esm/array_plus/some.d.ts +0 -8
  864. package/esm/array_plus/some.d.ts.map +0 -1
  865. package/esm/array_plus/some.js.map +0 -1
  866. package/esm/array_plus/tail.d.ts.map +0 -1
  867. package/esm/array_plus/tail.js.map +0 -1
  868. package/esm/array_plus/union_of_props.d.ts.map +0 -1
  869. package/esm/array_plus/union_of_props.js.map +0 -1
  870. package/esm/array_plus/union_of_values.d.ts.map +0 -1
  871. package/esm/array_plus/union_of_values.js.map +0 -1
  872. package/esm/assertion/assertType.d.ts +0 -34
  873. package/esm/assertion/assertType.d.ts.map +0 -1
  874. package/esm/assertion/assertType.js +0 -103
  875. package/esm/assertion/assertType.js.map +0 -1
  876. package/esm/assertion/index.d.ts +0 -2
  877. package/esm/assertion/index.d.ts.map +0 -1
  878. package/esm/assertion/index.js +0 -2
  879. package/esm/assertion/index.js.map +0 -1
  880. package/esm/function/AnyFunction.d.ts +0 -2
  881. package/esm/function/AnyFunction.d.ts.map +0 -1
  882. package/esm/function/AnyFunction.js +0 -2
  883. package/esm/function/AnyFunction.js.map +0 -1
  884. package/esm/function/ExtractFunction.d.ts +0 -15
  885. package/esm/function/ExtractFunction.d.ts.map +0 -1
  886. package/esm/function/ExtractFunction.js +0 -9
  887. package/esm/function/ExtractFunction.js.map +0 -1
  888. package/esm/function/index.d.ts +0 -3
  889. package/esm/function/index.d.ts.map +0 -1
  890. package/esm/function/index.js +0 -2
  891. package/esm/function/index.js.map +0 -1
  892. package/esm/nominal-types/Brand.d.ts +0 -21
  893. package/esm/nominal-types/Brand.d.ts.map +0 -1
  894. package/esm/nominal-types/Brand.js +0 -16
  895. package/esm/nominal-types/Brand.js.map +0 -1
  896. package/esm/nominal-types/Flavor.d.ts +0 -20
  897. package/esm/nominal-types/Flavor.d.ts.map +0 -1
  898. package/esm/nominal-types/Flavor.js +0 -16
  899. package/esm/nominal-types/Flavor.js.map +0 -1
  900. package/esm/nominal-types/index.d.ts +0 -4
  901. package/esm/nominal-types/index.d.ts.map +0 -1
  902. package/esm/nominal-types/index.js +0 -4
  903. package/esm/nominal-types/index.js.map +0 -1
  904. package/esm/nominal-types/nominalMatch.d.ts +0 -5
  905. package/esm/nominal-types/nominalMatch.d.ts.map +0 -1
  906. package/esm/nominal-types/nominalMatch.js +0 -9
  907. package/esm/nominal-types/nominalMatch.js.map +0 -1
  908. package/esm/nominal-types/types.d.ts.map +0 -1
  909. package/esm/nominal-types/types.js.map +0 -1
  910. package/esm/number_plus/index.d.ts +0 -2
  911. package/esm/number_plus/index.d.ts.map +0 -1
  912. package/esm/number_plus/index.js +0 -2
  913. package/esm/number_plus/index.js.map +0 -1
  914. package/esm/number_plus/number.d.ts +0 -128
  915. package/esm/number_plus/number.d.ts.map +0 -1
  916. package/esm/number_plus/number.js +0 -2
  917. package/esm/number_plus/number.js.map +0 -1
  918. package/esm/number_plus/number_plus.d.ts +0 -2
  919. package/esm/number_plus/number_plus.d.ts.map +0 -1
  920. package/esm/number_plus/number_plus.js.map +0 -1
  921. package/esm/predicates/Equal.d.ts +0 -38
  922. package/esm/predicates/Equal.d.ts.map +0 -1
  923. package/esm/predicates/Equal.js +0 -2
  924. package/esm/predicates/Equal.js.map +0 -1
  925. package/esm/testing/index.d.ts +0 -2
  926. package/esm/testing/index.d.ts.map +0 -1
  927. package/esm/testing/index.js +0 -2
  928. package/esm/testing/index.js.map +0 -1
  929. package/esm/tuple/index.d.ts +0 -2
  930. package/esm/tuple/index.d.ts.map +0 -1
  931. package/esm/tuple/index.js +0 -2
  932. package/esm/tuple/index.js.map +0 -1
  933. package/esm/tuple/tuple.d.ts +0 -16
  934. package/esm/tuple/tuple.d.ts.map +0 -1
  935. package/esm/tuple/tuple.js +0 -2
  936. package/esm/tuple/tuple.js.map +0 -1
  937. package/ts/ComposableTypes.ts +0 -10
  938. package/ts/PrimitiveTypes.ts +0 -15
  939. package/ts/any_plus/any.ts +0 -29
  940. package/ts/any_plus/index.ts +0 -1
  941. package/ts/array_plus/array.ts +0 -48
  942. package/ts/array_plus/array_number.ts +0 -12
  943. package/ts/array_plus/array_plus.ts +0 -66
  944. package/ts/array_plus/create_tuple.ts +0 -16
  945. package/ts/array_plus/drop.ts +0 -71
  946. package/ts/array_plus/filter.ts +0 -28
  947. package/ts/array_plus/index.ts +0 -19
  948. package/ts/array_plus/is_array.ts +0 -1
  949. package/ts/array_plus/pad_left.ts +0 -16
  950. package/ts/array_plus/some.ts +0 -33
  951. package/ts/assertion/assertType.ts +0 -107
  952. package/ts/assertion/index.ts +0 -1
  953. package/ts/function/ExtractFunction.ts +0 -20
  954. package/ts/function/index.ts +0 -2
  955. package/ts/nominal-types/Brand.ts +0 -34
  956. package/ts/nominal-types/Flavor.ts +0 -35
  957. package/ts/nominal-types/index.ts +0 -3
  958. package/ts/nominal-types/nominalMatch.ts +0 -22
  959. package/ts/number_plus/index.ts +0 -1
  960. package/ts/number_plus/number.ts +0 -149
  961. package/ts/number_plus/number_plus.ts +0 -1
  962. package/ts/predicates/Equal.ts +0 -43
  963. package/ts/testing/index.ts +0 -1
  964. package/ts/tuple/index.ts +0 -1
  965. package/ts/tuple/tuple.ts +0 -20
  966. /package/cjs/{array_plus → array}/array.js +0 -0
  967. /package/cjs/{array_plus → array}/array_plus.js +0 -0
  968. /package/cjs/{array_plus → array}/common_prop_keys.d.ts +0 -0
  969. /package/cjs/{array_plus → array}/common_prop_keys.js +0 -0
  970. /package/cjs/{array_plus → array}/create_tuple.js +0 -0
  971. /package/cjs/{array_plus → array}/drop.js +0 -0
  972. /package/cjs/{array_plus → array}/filter.js +0 -0
  973. /package/cjs/{array_plus → array}/find_first.d.ts +0 -0
  974. /package/cjs/{array_plus → array}/find_first.js +0 -0
  975. /package/cjs/{array_plus → array}/find_last.d.ts +0 -0
  976. /package/cjs/{array_plus → array}/find_last.js +0 -0
  977. /package/cjs/{array_plus → array}/head.d.ts +0 -0
  978. /package/cjs/{array_plus → array}/head.js +0 -0
  979. /package/cjs/{array_plus → array}/intersect_of_props.d.ts +0 -0
  980. /package/cjs/{array_plus → array}/intersect_of_props.js +0 -0
  981. /package/cjs/{array_plus → array}/last.d.ts +0 -0
  982. /package/cjs/{array_plus → array}/last.js +0 -0
  983. /package/cjs/{array_plus → array}/literal_array.d.ts +0 -0
  984. /package/cjs/{array_plus → array}/literal_array.js +0 -0
  985. /package/cjs/{array_plus → array}/pad_left.js +0 -0
  986. /package/cjs/{array_plus → array}/reduce_while.d.ts +0 -0
  987. /package/cjs/{array_plus → array}/reduce_while.js +0 -0
  988. /package/cjs/{array_plus → array}/reverse.d.ts +0 -0
  989. /package/cjs/{array_plus → array}/reverse.js +0 -0
  990. /package/cjs/{array_plus → array}/some.js +0 -0
  991. /package/cjs/{array_plus → array}/tail.d.ts +0 -0
  992. /package/cjs/{array_plus → array}/tail.js +0 -0
  993. /package/cjs/{array_plus → array}/union_of_props.d.ts +0 -0
  994. /package/cjs/{array_plus → array}/union_of_props.js +0 -0
  995. /package/cjs/{array_plus → array}/union_of_values.d.ts +0 -0
  996. /package/cjs/{array_plus → array}/union_of_values.js +0 -0
  997. /package/cjs/{nominal-types → nominal}/types.d.ts +0 -0
  998. /package/cjs/{nominal-types → nominal}/types.js +0 -0
  999. /package/cjs/{number_plus → number}/number_plus.js +0 -0
  1000. /package/esm/{array_plus → array}/array.js +0 -0
  1001. /package/esm/{array_plus → array}/array_plus.js +0 -0
  1002. /package/esm/{array_plus → array}/common_prop_keys.d.ts +0 -0
  1003. /package/esm/{array_plus → array}/common_prop_keys.js +0 -0
  1004. /package/esm/{array_plus → array}/create_tuple.js +0 -0
  1005. /package/esm/{array_plus → array}/drop.js +0 -0
  1006. /package/esm/{array_plus → array}/filter.js +0 -0
  1007. /package/esm/{array_plus → array}/find_first.d.ts +0 -0
  1008. /package/esm/{array_plus → array}/find_first.js +0 -0
  1009. /package/esm/{array_plus → array}/find_last.d.ts +0 -0
  1010. /package/esm/{array_plus → array}/find_last.js +0 -0
  1011. /package/esm/{array_plus → array}/head.d.ts +0 -0
  1012. /package/esm/{array_plus → array}/head.js +0 -0
  1013. /package/esm/{array_plus → array}/intersect_of_props.d.ts +0 -0
  1014. /package/esm/{array_plus → array}/intersect_of_props.js +0 -0
  1015. /package/esm/{array_plus → array}/last.d.ts +0 -0
  1016. /package/esm/{array_plus → array}/last.js +0 -0
  1017. /package/esm/{array_plus → array}/literal_array.d.ts +0 -0
  1018. /package/esm/{array_plus → array}/literal_array.js +0 -0
  1019. /package/esm/{array_plus → array}/pad_left.js +0 -0
  1020. /package/esm/{array_plus → array}/reduce_while.d.ts +0 -0
  1021. /package/esm/{array_plus → array}/reduce_while.js +0 -0
  1022. /package/esm/{array_plus → array}/reverse.d.ts +0 -0
  1023. /package/esm/{array_plus → array}/reverse.js +0 -0
  1024. /package/esm/{array_plus → array}/some.js +0 -0
  1025. /package/esm/{array_plus → array}/tail.d.ts +0 -0
  1026. /package/esm/{array_plus → array}/tail.js +0 -0
  1027. /package/esm/{array_plus → array}/union_of_props.d.ts +0 -0
  1028. /package/esm/{array_plus → array}/union_of_props.js +0 -0
  1029. /package/esm/{array_plus → array}/union_of_values.d.ts +0 -0
  1030. /package/esm/{array_plus → array}/union_of_values.js +0 -0
  1031. /package/esm/{nominal-types → nominal}/types.d.ts +0 -0
  1032. /package/esm/{nominal-types → nominal}/types.js +0 -0
  1033. /package/esm/{number_plus → number}/number_plus.js +0 -0
  1034. /package/ts/{array_plus → array}/common_prop_keys.ts +0 -0
  1035. /package/ts/{array_plus → array}/find_first.ts +0 -0
  1036. /package/ts/{array_plus → array}/find_last.ts +0 -0
  1037. /package/ts/{array_plus → array}/head.ts +0 -0
  1038. /package/ts/{array_plus → array}/intersect_of_props.ts +0 -0
  1039. /package/ts/{array_plus → array}/last.ts +0 -0
  1040. /package/ts/{array_plus → array}/literal_array.ts +0 -0
  1041. /package/ts/{array_plus → array}/reduce_while.ts +0 -0
  1042. /package/ts/{array_plus → array}/reverse.ts +0 -0
  1043. /package/ts/{array_plus → array}/tail.ts +0 -0
  1044. /package/ts/{array_plus → array}/union_of_props.ts +0 -0
  1045. /package/ts/{array_plus → array}/union_of_values.ts +0 -0
  1046. /package/ts/function/{AnyFunction.ts → any_function.ts} +0 -0
  1047. /package/ts/{JSONTypes.ts → json.ts} +0 -0
  1048. /package/ts/{nominal-types → nominal}/types.ts +0 -0
  1049. /package/ts/{UnionKeys.ts → union_keys.ts} +0 -0
  1050. /package/ts/{UnionToIntersection.ts → union_to_intersection.ts} +0 -0
@@ -1,16 +0,0 @@
1
- import type { DigitArray } from '../math/index.js'
2
- import type { IsPositive, IsWhole } from '../number_plus/number.js'
3
-
4
- /**
5
- * Creates `Tuple<T>` with `L` number of elements.
6
- * @note Other cool implementations by @lazytype, @jcalz:
7
- * @see https://github.com/microsoft/TypeScript/issues/26223#issuecomment-674514787
8
- * @see https://github.com/microsoft/TypeScript/issues/47874#issuecomment-1039157322
9
- */
10
- export type CreateTuple<L extends number, T = unknown, Fail = never> = number extends L
11
- ? T[]
12
- : IsPositive<L> extends true
13
- ? IsWhole<L> extends true
14
- ? DigitArray.ToTuple<[], DigitArray.FromNumber<L>, T>
15
- : Fail
16
- : Fail
@@ -1,71 +0,0 @@
1
- import type { Equal } from '../predicates/index.js'
2
- import type { NonNull, NonUndefined } from '../utils/index.js'
3
-
4
- export type DropFirst<A extends any[]> = number extends A['length']
5
- ? A
6
- : A['length'] extends 0
7
- ? never[]
8
- : A['length'] extends 1
9
- ? never[]
10
- : A extends [any, ...infer Tail]
11
- ? Tail
12
- : never
13
-
14
- export type DropLast<A extends any[]> = number extends A['length']
15
- ? A
16
- : A['length'] extends 0
17
- ? never[]
18
- : A['length'] extends 1
19
- ? never[]
20
- : A extends [...infer Heads, any]
21
- ? Heads
22
- : never
23
-
24
- type ExcludeUnionOfEmptyTuple<A> = Equal<A, []> extends true ? A : Exclude<A, []>
25
-
26
- /**
27
- * drops entries matching `Criteria` in array or tuple `A`.
28
- */
29
- export type DropMatch<A extends Readonly<Array<any>>, Criteria> = number extends A['length']
30
- ? // array
31
- A[0] extends Criteria
32
- ? // criteria matches: DropAll<string[], string>
33
- never[]
34
- : undefined extends Criteria
35
- ? null extends Criteria
36
- ? Array<NonNullable<A[0]>>
37
- : Array<NonUndefined<A[0]>>
38
- : null extends Criteria
39
- ? Array<NonNull<A[0]>>
40
- : Criteria extends A[0]
41
- ? Array<Exclude<A[0], Criteria>>
42
- : A[0] extends Criteria
43
- ? A
44
- : Array<Exclude<A[0], Criteria>>
45
- : DropMatchTuple<A, Criteria>
46
-
47
- type DropMatchTuple<A extends Readonly<Array<any>>, Criteria> = A['length'] extends 0
48
- ? // empty tuple
49
- A
50
- : A extends readonly [infer Head, ...infer Tail]
51
- ? Tail['length'] extends 0
52
- ? // single element tuple
53
- undefined extends Criteria
54
- ? ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]>
55
- : ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]>
56
- : // multiple elements
57
- Exclude<Head, Criteria> extends never
58
- ? DropMatch<Tail, Criteria>
59
- : [Exclude<Head, Criteria>, ...DropMatch<Tail, Criteria>]
60
- : never[]
61
-
62
- export type DropNull<A extends Array<any>> = DropMatch<A, null>
63
- export type DropNullable<A extends Array<any>> = DropMatch<A, null | undefined>
64
- export type DropUndefined<A extends Array<any>> = DropMatch<A, undefined>
65
-
66
- /**
67
- * drop a particular value from an array
68
- */
69
- export function drop<A extends Readonly<Array<any>>, C>(array: A, value: C): DropMatch<A, C> {
70
- return array.filter(v => v !== value) as DropMatch<A, C>
71
- }
@@ -1,28 +0,0 @@
1
- /**
2
- * filter the array or tuple `A`, keeping entries satisfying `Criteria`.
3
- * @deprecated renaming to `KeepMatch`
4
- */
5
- export type Filter<A extends Array<any>, Criteria> = number extends A['length']
6
- ? // array
7
- A[0] extends Criteria
8
- ? A
9
- : Criteria extends A[0]
10
- ? Array<Criteria>
11
- : never[]
12
- : // tuple
13
- A['length'] extends 0
14
- ? never
15
- : A extends [infer Head, ...infer Tail]
16
- ? Tail['length'] extends 0
17
- ? Head extends Criteria
18
- ? [Head]
19
- : never[]
20
- : Head extends Criteria
21
- ? [Head, ...Filter<Tail, Criteria>]
22
- : Filter<Tail, Criteria>
23
- : never
24
-
25
- /**
26
- * keeps entries satisfying `Criteria` in array or tuple `A`.
27
- */
28
- export type KeepMatch<A extends Array<any>, Criteria> = Filter<A, Criteria>
@@ -1,19 +0,0 @@
1
- export type * from './array.js'
2
- export type * from './common_prop_keys.js'
3
- export type * from './create_tuple.js'
4
- export * from './drop.js'
5
- export type * from './filter.js'
6
- export type * from './find_first.js'
7
- export type * from './find_last.js'
8
- export type * from './head.js'
9
- export type * from './intersect_of_props.js'
10
- export type * from './is_array.js'
11
- export type * from './last.js'
12
- export * from './literal_array.js'
13
- export type * from './pad_left.js'
14
- export * from './reduce_while.js'
15
- export type * from './reverse.js'
16
- export type * from './some.js'
17
- export type * from './tail.js'
18
- export type * from './union_of_props.js'
19
- export type * from './union_of_values.js'
@@ -1 +0,0 @@
1
- export type IsArray<T, Then = true, Else = false> = T extends any[] ? Then : Else
@@ -1,16 +0,0 @@
1
- import type { IsAny } from '../any_plus/any.js'
2
- import type { Equal } from '../predicates/index.js'
3
- import type { CreateTuple } from './create_tuple.js'
4
- import type { UnionOfValues } from './union_of_values.js'
5
-
6
- export type PadLeft<A extends any[], Total extends number, PadWith = any> = number extends A['length']
7
- ? IsAny<UnionOfValues<A>> extends true
8
- ? A
9
- : Equal<UnionOfValues<A>, PadWith> extends true
10
- ? A
11
- : PadLeft<[...CreateTuple<Total, PadWith>, ...A], Total, PadWith>
12
- : CreateTuple<Total, any> extends [...infer U, ...A]
13
- ? number extends U['length']
14
- ? A
15
- : [...CreateTuple<U['length'], PadWith>, ...A]
16
- : A
@@ -1,33 +0,0 @@
1
- import type { Equal } from '../predicates/index.js'
2
- import type { Tail } from './tail.js'
3
- import type { UnionOfValues } from './union_of_values.js'
4
-
5
- export type Some<
6
- A extends any[],
7
- Criteria,
8
- Mode extends 'strict' | 'loose' = 'loose',
9
- Then = true,
10
- Else = false
11
- > = Mode extends 'strict'
12
- ? Some.Strict<A, Criteria, Then, Else>
13
- : number extends A['length']
14
- ? UnionOfValues<A> extends Criteria
15
- ? Then
16
- : Else
17
- : A['length'] extends 0
18
- ? Else
19
- : A[0] extends Criteria
20
- ? Then
21
- : Some<Tail<A>, Criteria, 'loose', Then, Else>
22
-
23
- export namespace Some {
24
- export type Strict<A extends any[], Criteria, Then, Else> = number extends A['length']
25
- ? Equal<UnionOfValues<A>, Criteria> extends true
26
- ? Then
27
- : Else
28
- : A['length'] extends 0
29
- ? Else
30
- : Equal<A[0], Criteria> extends true
31
- ? Then
32
- : Strict<Tail<A>, Criteria, Then, Else>
33
- }
@@ -1,107 +0,0 @@
1
- import { tersify } from 'tersify'
2
- import { isConstructor, type AnyConstructor } from '../class/index.js'
3
- import type { AnyFunction } from '../function/index.js'
4
-
5
- /**
6
- * assert the subject satisfies the specified type T
7
- * @type T the type to check against.
8
- */
9
- export function assertType<T>(subject: T): asserts subject is T
10
- export function assertType<T>(subject: unknown, validator: (s: T) => boolean): asserts subject is T
11
- export function assertType<T extends new (...args: any) => any>(
12
- subject: unknown,
13
- constructor: T
14
- ): asserts subject is InstanceType<T>
15
- export function assertType(subject: unknown, validator?: (s: any) => boolean) {
16
- if (validator) {
17
- if ((isConstructor(validator) && !(subject instanceof validator)) || !validator(subject))
18
- throw new TypeError(`subject fails to satisfy ${tersify(validator)}`)
19
- }
20
- return
21
- }
22
-
23
- assertType.isUndefined = function (subject: undefined): asserts subject is undefined {
24
- if (typeof subject !== 'undefined') throw TypeError(`subject is not undefined`)
25
- }
26
- assertType.noUndefined = function <S>(subject: Exclude<S, undefined>): void {
27
- if (typeof subject === 'undefined') throw TypeError(`subject is undefined`)
28
- }
29
-
30
- assertType.isNull = function (subject: null): asserts subject is null {
31
- if (subject !== null) throw TypeError(`subject is not null`)
32
- }
33
- assertType.noNull = function <S>(subject: Exclude<S, null>): void {
34
- if (subject === null) throw TypeError(`subject is null`)
35
- }
36
-
37
- assertType.isNumber = function (subject: number): asserts subject is number {
38
- if (typeof subject !== 'number') throw TypeError(`subject is not number`)
39
- }
40
- assertType.noNumber = function <S>(subject: Exclude<S, number>): void {
41
- if (typeof subject === 'number') throw TypeError(`subject is number`)
42
- }
43
-
44
- assertType.isBoolean = function (subject: boolean): asserts subject is boolean {
45
- if (typeof subject !== 'boolean') throw TypeError(`subject is not boolean`)
46
- }
47
- assertType.noBoolean = function <S>(subject: Exclude<S, boolean>): void {
48
- if (typeof subject === 'boolean') throw TypeError(`subject is boolean`)
49
- }
50
-
51
- assertType.isTrue = function (subject: true): asserts subject is true {
52
- if (subject !== true) throw TypeError(`subject is not true`)
53
- }
54
- assertType.noTrue = function <S>(subject: Exclude<S, true>): void {
55
- // @ts-ignore
56
- if (subject === true) throw TypeError(`subject is true`)
57
- }
58
-
59
- assertType.isFalse = function (subject: false): asserts subject is false {
60
- if (subject !== false) throw TypeError(`subject is not false`)
61
- }
62
- assertType.noFalse = function <S>(subject: Exclude<S, false>): void {
63
- // @ts-ignore
64
- if (subject === false) throw TypeError(`subject is false`)
65
- }
66
-
67
- assertType.isString = function (subject: string): asserts subject is string {
68
- if (typeof subject !== 'string') throw TypeError(`subject is not string`)
69
- }
70
- assertType.noString = function <S>(subject: Exclude<S, string>): void {
71
- if (typeof subject === 'string') throw TypeError(`subject is string`)
72
- }
73
-
74
- assertType.isFunction = function (subject: AnyFunction): asserts subject is AnyFunction {
75
- if (typeof subject !== 'function') throw TypeError(`subject is not function`)
76
- }
77
- assertType.noFunction = function <S>(subject: Exclude<S, AnyFunction>): void {
78
- if (typeof subject === 'function') throw TypeError(`subject is function`)
79
- }
80
-
81
- assertType.isConstructor = function (subject: AnyConstructor): asserts subject is AnyConstructor {
82
- if (!isConstructor(subject)) throw TypeError(`subject is not a constructor`)
83
- }
84
-
85
- assertType.isError = function (subject: Error): asserts subject is Error {
86
- if (!(subject instanceof Error)) throw TypeError(`subject is not an Error`)
87
- }
88
- assertType.noError = function <S>(subject: Exclude<S, Error>): void {
89
- if (subject instanceof Error) throw TypeError(`subject is an Error`)
90
- }
91
-
92
- assertType.isNever = function (subject: never): asserts subject is never {}
93
-
94
- /**
95
- * creates a custom assertion function with standard TypeError.
96
- * Currently this requires explicity type annotation,
97
- * thus making it hard to use:
98
- * https://github.com/microsoft/TypeScript/issues/41047
99
- */
100
- assertType.custom = function <T>(validator: (s: T) => boolean): (subject: unknown) => asserts subject is T {
101
- return function (subject) {
102
- if (!validator(subject as any)) throw new TypeError(`subject fails to satisfy ${tersify(validator)}`)
103
- return
104
- }
105
- }
106
-
107
- assertType.as = function <T>(subject: unknown): asserts subject is T {}
@@ -1 +0,0 @@
1
- export * from './assertType.js'
@@ -1,20 +0,0 @@
1
- import type { AnyFunction } from './AnyFunction.js'
2
-
3
- /**
4
- * Extract the function signature from a composite type T.
5
- *
6
- * It works with interact of functions, but not on function overloads and union.
7
- * @note does not work with function overloads.
8
- */
9
- export type ExtractFunction<T extends AnyFunction> = T extends AnyFunction<infer P, infer R>
10
- ? (...args: P) => R
11
- : never
12
-
13
- /**
14
- * Extract the function signature from a composite function.
15
- *
16
- * @note does not work with function overloads.
17
- */
18
- export function extractFunction<T extends AnyFunction>(fn: T) {
19
- return fn as any as ExtractFunction<T>
20
- }
@@ -1,2 +0,0 @@
1
- export type { AnyFunction } from './AnyFunction.js'
2
- export * from './ExtractFunction.js'
@@ -1,34 +0,0 @@
1
- // By Drew Colthorp, <https://spin.atomicobject.com/2018/01/15/typescript-flexible-nominal-typing/#comment-604580>
2
- // <https://gist.github.com/dcolthorp/aa21cf87d847ae9942106435bf47565d>
3
-
4
- import { Widen } from '../utils/index.js'
5
- import { typeSym, valueSym } from './types.js'
6
-
7
- /**
8
- * Create a "branded" version of a type.
9
- * TypeScript won't allow implicit conversion to this type
10
- */
11
- export type Brand<B extends string, T> = T extends object
12
- ? T & { [typeSym]: B }
13
- : { [typeSym]: B; [valueSym]: T }
14
-
15
- /**
16
- * Creates a brand creator with the specified type.
17
- */
18
- export function brand<B extends string>(type: B): <T>(subject: T) => Brand<B, Widen<T>>
19
- /**
20
- * Creates a branded value of specified type.
21
- */
22
- export function brand<B extends string, T>(type: B, subject: T): Brand<B, Widen<T>>
23
- export function brand(type: string, subject?: unknown) {
24
- if (subject === undefined)
25
- return function <T>(subject: T) {
26
- return brand(type, subject)
27
- }
28
-
29
- if (typeof subject === 'object' && subject !== null) {
30
- // if subject is not an object, the branding will exist only in type-level.
31
- ;(subject as { [typeSym]: string })[typeSym] = type
32
- }
33
- return subject
34
- }
@@ -1,35 +0,0 @@
1
- // By Drew Colthorp, <https://spin.atomicobject.com/2018/01/15/typescript-flexible-nominal-typing/#comment-604580>
2
- // <https://gist.github.com/dcolthorp/aa21cf87d847ae9942106435bf47565d>
3
-
4
- import type { Widen } from '../utils/index.js'
5
- import { typeSym } from './types.js'
6
-
7
- /**
8
- * Create a "flavored" version of a type.
9
- * TypeScript will disallow mixing flavors,
10
- * but will allow unflavored values of that type to be passed in where a flavored version is expected.
11
- * This is a less restrictive form of branding.
12
- */
13
- export type Flavor<F extends string, T> = T & {
14
- [typeSym]?: F
15
- }
16
-
17
- /**
18
- * Creates a brand creator with the specified type.
19
- */
20
- export function flavor<F extends string>(type: F): <T>(subject: T) => Flavor<F, Widen<T>>
21
- /**
22
- * Creates a branded value of specified type.
23
- */
24
- export function flavor<F extends string, T>(type: F, subject: T): Flavor<F, Widen<T>>
25
- export function flavor(type: string, subject?: unknown) {
26
- if (subject === undefined)
27
- return function <T>(subject: T) {
28
- return flavor(type, subject)
29
- }
30
- if (typeof subject === 'object' && subject !== null) {
31
- // if subject is not an object, the branding will exist only in type-level.
32
- ;(subject as { [typeSym]: string })[typeSym] = type
33
- }
34
- return subject
35
- }
@@ -1,3 +0,0 @@
1
- export * from './Brand.js'
2
- export * from './Flavor.js'
3
- export * from './nominalMatch.js'
@@ -1,22 +0,0 @@
1
- import type { Brand } from './Brand.js'
2
- import type { Flavor } from './Flavor.js'
3
- import { typeSym } from './types.js'
4
-
5
- export function nominalMatch<A extends string, B extends A>(
6
- a: Brand<A, unknown>,
7
- b: Brand<B, unknown>
8
- ): boolean
9
- export function nominalMatch<A extends string, B extends A>(
10
- a: Flavor<A, unknown>,
11
- b: Flavor<B, unknown>
12
- ): boolean
13
- export function nominalMatch<A extends string, B extends A>(
14
- a: Brand<A, unknown> | Flavor<A, unknown>,
15
- b: Brand<B, unknown> | Flavor<B, unknown>
16
- ) {
17
- if (typeof a === 'object' && a !== null && typeof b === 'object' && b !== null)
18
- return a[typeSym] === b[typeSym]
19
- else {
20
- return true
21
- }
22
- }
@@ -1 +0,0 @@
1
- export type * from './number.js'
@@ -1,149 +0,0 @@
1
- import type { IsNever } from '../PrimitiveTypes.js'
2
- import type { IsAny } from '../any_plus/any.js'
3
-
4
- /**
5
- * Either number or bigint.
6
- */
7
- export type Numeric = number | bigint
8
-
9
- /**
10
- * The value 0 in number or bigint.
11
- */
12
- export type Zero = 0 | 0n
13
-
14
- /**
15
- * Check if the value is an integer.
16
- *
17
- * ```
18
- * import type { Integer } from 'type-plus'
19
- *
20
- * type R = Integer<0> // 0
21
- * type R = Integer<1.1> // never
22
- * type R = Integer<number> // never as it contains non-integer
23
- *
24
- * type R = Integer<0, true, false> // true
25
- * type R = Integer<1.1, true, false> // false
26
- * ```
27
- */
28
- export type Integer<N extends Numeric, Then = N, Else = never> = IsNever<
29
- N,
30
- Else,
31
- `${N}` extends `${bigint}` ? Then : Else
32
- >
33
- /**
34
- * Check if the value is an integer.
35
- *
36
- * ```
37
- * import type { IsInteger } from 'type-plus'
38
- *
39
- * type R = IsInteger<0> // 0
40
- * type R = IsInteger<1.1> // never
41
- * type R = IsInteger<number> // never as it contains non-integer
42
- *
43
- * type R = IsInteger<0, true, false> // true
44
- * type R = IsInteger<1.1, true, false> // false
45
- * ```
46
- */
47
- export type IsInteger<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>
48
-
49
- /**
50
- * Check if the value is an integer.
51
- *
52
- * ```
53
- * import type { IsWhole } from 'type-plus'
54
- *
55
- * type R = IsWhole<0> // 0
56
- * type R = IsWhole<1.1> // never
57
- * type R = IsWhole<number> // never as it contains non-integer
58
- *
59
- * type R = IsWhole<0, true, false> // true
60
- * type R = IsWhole<1.1, true, false> // false
61
- * ```
62
- */
63
- export type IsWhole<N extends Numeric, Then = true, Else = false> = Integer<N, Then, Else>
64
-
65
- /**
66
- * Check if the value is a negative number.
67
- *
68
- * ```
69
- * import type { Negative } from 'type-plus'
70
- *
71
- * type R = Negative<-1> // -1
72
- * type R = Negative<0> // never
73
- *
74
- * type R = Negative<-1, true, false> // true
75
- * type R = Negative<1, true, false> // false
76
- * ```
77
- */
78
- export type Negative<N extends Numeric, Then = N, Else = never> = IsNever<
79
- N,
80
- Else,
81
- N extends Zero ? Else : `${N}` extends `-${string}` ? Then : Else
82
- >
83
-
84
- /**
85
- * Check if the value it not a negative number.
86
- *
87
- * ```
88
- * import type { NonNegative } from 'type-plus'
89
- *
90
- * type R = NonNegative<-1> // never
91
- * type R = NonNegative<0> // 0
92
- *
93
- * type R = NonNegative<-1, true, false> // false
94
- * type R = NonNegative<1, true, false> // true
95
- * ```
96
- */
97
- export type NonNegative<N extends Numeric, Then = N, Else = never> = Negative<N, Else, Then>
98
-
99
- /**
100
- * Check if the type `T` is exactly the type `number` and not numeric literals.
101
- *
102
- * ```
103
- * import type { NumberType } from 'type-plus'
104
- *
105
- * type R = NumberType<number> // true
106
- * type R = NumberType<1> // false
107
- * ```
108
- */
109
- export type NumberType<T, Then = T, Else = never> = IsAny<
110
- T,
111
- Else,
112
- [number, T] extends [T, number] ? Then : Else
113
- >
114
-
115
- /**
116
- * Check if the value is a positive number.
117
- *
118
- * ```
119
- * import type { Positive } from 'type-plus'
120
- *
121
- * type R = Positive<1> // 1
122
- * type R = Positive<0> // never
123
- * type R = Positive<-1> // never
124
- *
125
- * type R = Positive<1, true, false> // true
126
- * type R = Positive<-1, true, false> // false
127
- * ```
128
- */
129
- export type Positive<N extends Numeric, Then = N, Else = never> = IsNever<
130
- N,
131
- Else,
132
- number extends N ? Else : N extends Zero ? Then : `${N}` extends `-${string}` ? Else : Then
133
- >
134
-
135
- /**
136
- * Is the value `N` a positive number.
137
- *
138
- * ```
139
- * import type { IsPositive } from 'type-plus'
140
- *
141
- * type R = IsPositive<1> // true
142
- * type R = IsPositive<0> // false
143
- * type R = IsPositive<-1> // false
144
- *
145
- * type R = IsPositive<1, 'good', 'bad'> // 'good'
146
- * type R = IsPositive<-1, 'good', 'bad> // 'bad'
147
- * ```
148
- */
149
- export type IsPositive<N extends Numeric, Then = true, Else = false> = Positive<N, Then, Else>
@@ -1 +0,0 @@
1
- export type * from './number.js'
@@ -1,43 +0,0 @@
1
- import type { IsAny } from '../any_plus/any.js'
2
- import type { TupleType } from '../tuple/tuple.js'
3
- import type { And, Or } from './logical.js'
4
-
5
- /**
6
- * Checks `A` and `B` are equal.
7
- *
8
- * ```ts
9
- * import { type Equal } from 'type-plus'
10
- *
11
- * type R = Equal<1, 1> // true
12
- * type R = Equal<any, any> // true
13
- * type R = Equal<boolean, boolean> // true
14
- * type R = Equal<true, true> // true
15
- * type R = Equal<[1], [1]> // true
16
- *
17
- * type R = Equal<boolean, true> // false
18
- * type R = Equal<any, 1> // false
19
- * type R = Equal<[any], [1]> // false
20
- * type R = Equal<{ a: 1 }, { a: 1; b: 2 }> // false
21
- * ```
22
- */
23
- export type Equal<A, B, Then = true, Else = false> = And<
24
- TupleType<A, true, false>,
25
- TupleType<B, true, false>,
26
- (<_>() => _ extends A ? 1 : 2) extends <_>() => _ extends B ? 1 : 2 ? Then : Else,
27
- [A, B] extends [B, A] ? And<IsAny<A>, IsAny<B>, Then, Or<IsAny<A>, IsAny<B>, Else, Then>> : Else
28
- >
29
-
30
- /**
31
- * Checks if the two types are equal.
32
- */
33
- export type IsEqual<A, B, Then = true, Else = false> = Equal<A, B, Then, Else>
34
-
35
- /**
36
- * Check if the two types are not equal
37
- */
38
- export type NotEqual<A, B, Then = true, Else = false> = Equal<A, B, Else, Then>
39
-
40
- /**
41
- * Check if the two types are not equal
42
- */
43
- export type IsNotEqual<A, B, Then = true, Else = false> = NotEqual<A, B, Then, Else>
@@ -1 +0,0 @@
1
- export * from './stub.js'
package/ts/tuple/index.ts DELETED
@@ -1 +0,0 @@
1
- export type * from './tuple.js'
package/ts/tuple/tuple.ts DELETED
@@ -1,20 +0,0 @@
1
- import { IsNever } from '../PrimitiveTypes.js'
2
-
3
- /**
4
- * Check if `T` is a tuple.
5
- *
6
- * ```ts
7
- * import type { TupleType } from 'type-plus'
8
- *
9
- * type R = TupleType<[]> // true
10
- * type R = TupleType<[1]> // true
11
- *
12
- * type R = TupleType<number[]> // false
13
- * type R = TupleType<string> // false
14
- * ```
15
- */
16
- export type TupleType<T, Then = T, Else = never> = IsNever<
17
- T,
18
- Else,
19
- T extends infer A extends Array<any> ? (number extends A['length'] ? Else : Then) : Else
20
- >
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes