type-plus 3.13.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1206) hide show
  1. package/README.md +32 -88
  2. package/cjs/ComposableTypes.d.ts +8 -0
  3. package/cjs/ComposableTypes.js +3 -0
  4. package/cjs/ComposableTypes.js.map +1 -0
  5. package/{lib → cjs}/JSONTypes.d.ts +0 -0
  6. package/cjs/JSONTypes.js +27 -0
  7. package/cjs/JSONTypes.js.map +1 -0
  8. package/{lib → cjs}/PrimitiveTypes.d.ts +0 -0
  9. package/{lib → cjs}/PrimitiveTypes.js +0 -0
  10. package/cjs/PrimitiveTypes.js.map +1 -0
  11. package/{lib → cjs}/UnionKeys.d.ts +0 -0
  12. package/{lib → cjs}/UnionKeys.js +0 -0
  13. package/cjs/UnionKeys.js.map +1 -0
  14. package/{lib → cjs}/array/CommonPropKeys.d.ts +0 -0
  15. package/{lib → cjs}/array/CommonPropKeys.js +0 -0
  16. package/cjs/array/CommonPropKeys.js.map +1 -0
  17. package/{lib → cjs}/array/Concat.d.ts +0 -0
  18. package/{lib → cjs}/array/Concat.js +0 -0
  19. package/cjs/array/Concat.js.map +1 -0
  20. package/{lib → cjs}/array/CreateTuple.d.ts +0 -0
  21. package/{lib → cjs}/array/CreateTuple.js +0 -0
  22. package/cjs/array/CreateTuple.js.map +1 -0
  23. package/{lib → cjs}/array/DropFirst.d.ts +0 -0
  24. package/{lib → cjs}/array/DropFirst.js +0 -0
  25. package/cjs/array/DropFirst.js.map +1 -0
  26. package/{lib → cjs}/array/DropLast.d.ts +0 -0
  27. package/{lib → cjs}/array/DropLast.js +0 -0
  28. package/cjs/array/DropLast.js.map +1 -0
  29. package/{lib → cjs}/array/Filter.d.ts +0 -0
  30. package/{lib → cjs}/array/Filter.js +0 -0
  31. package/cjs/array/Filter.js.map +1 -0
  32. package/{lib → cjs}/array/FindFirst.d.ts +0 -0
  33. package/{lib → cjs}/array/FindFirst.js +0 -0
  34. package/cjs/array/FindFirst.js.map +1 -0
  35. package/{lib → cjs}/array/FindLast.d.ts +0 -0
  36. package/{lib → cjs}/array/FindLast.js +0 -0
  37. package/cjs/array/FindLast.js.map +1 -0
  38. package/{lib → cjs}/array/Head.d.ts +0 -0
  39. package/{lib → cjs}/array/Head.js +0 -0
  40. package/cjs/array/Head.js.map +1 -0
  41. package/{lib → cjs}/array/IntersectOfProps.d.ts +0 -0
  42. package/{lib → cjs}/array/IntersectOfProps.js +0 -0
  43. package/cjs/array/IntersectOfProps.js.map +1 -0
  44. package/{lib → cjs}/array/IsArray.d.ts +0 -0
  45. package/{lib → cjs}/array/IsArray.js +0 -0
  46. package/cjs/array/IsArray.js.map +1 -0
  47. package/{lib → cjs}/array/PadLeft.d.ts +0 -0
  48. package/{lib → cjs}/array/PadLeft.js +0 -0
  49. package/cjs/array/PadLeft.js.map +1 -0
  50. package/{lib → cjs}/array/Reverse.d.ts +0 -0
  51. package/{lib → cjs}/array/Reverse.js +0 -0
  52. package/cjs/array/Reverse.js.map +1 -0
  53. package/{lib → cjs}/array/Some.d.ts +0 -0
  54. package/{lib → cjs}/array/Some.js +0 -0
  55. package/cjs/array/Some.js.map +1 -0
  56. package/{lib → cjs}/array/Tail.d.ts +0 -0
  57. package/{lib → cjs}/array/Tail.js +0 -0
  58. package/cjs/array/Tail.js.map +1 -0
  59. package/{lib → cjs}/array/UnionOfProps.d.ts +0 -0
  60. package/{lib → cjs}/array/UnionOfProps.js +0 -0
  61. package/cjs/array/UnionOfProps.js.map +1 -0
  62. package/{lib → cjs}/array/UnionOfValues.d.ts +0 -0
  63. package/{lib → cjs}/array/UnionOfValues.js +0 -0
  64. package/cjs/array/UnionOfValues.js.map +1 -0
  65. package/{lib → cjs}/array/index.d.ts +0 -0
  66. package/{lib → cjs}/array/index.js +0 -0
  67. package/cjs/array/index.js.map +1 -0
  68. package/{lib → cjs}/array/literalArray.d.ts +0 -0
  69. package/{lib → cjs}/array/literalArray.js +0 -0
  70. package/cjs/array/literalArray.js.map +1 -0
  71. package/{lib → cjs}/array/reduceWhile.d.ts +0 -0
  72. package/{lib → cjs}/array/reduceWhile.js +0 -0
  73. package/cjs/array/reduceWhile.js.map +1 -0
  74. package/cjs/assertion/assertType.d.ts +32 -0
  75. package/cjs/assertion/assertType.js +107 -0
  76. package/cjs/assertion/assertType.js.map +1 -0
  77. package/{lib → cjs}/assertion/index.d.ts +0 -0
  78. package/{lib → cjs}/assertion/index.js +0 -0
  79. package/cjs/assertion/index.js.map +1 -0
  80. package/{lib → cjs}/class/AnyConstructor.d.ts +0 -0
  81. package/{lib → cjs}/class/AnyConstructor.js +0 -0
  82. package/cjs/class/AnyConstructor.js.map +1 -0
  83. package/{lib → cjs}/class/index.d.ts +0 -0
  84. package/{lib → cjs}/class/index.js +0 -0
  85. package/cjs/class/index.js.map +1 -0
  86. package/{lib → cjs}/class/isConstructor.d.ts +0 -0
  87. package/cjs/class/isConstructor.js +17 -0
  88. package/cjs/class/isConstructor.js.map +1 -0
  89. package/{lib → cjs}/function/AnyFunction.d.ts +0 -0
  90. package/{lib → cjs}/function/AnyFunction.js +0 -0
  91. package/cjs/function/AnyFunction.js.map +1 -0
  92. package/{lib → cjs}/function/index.d.ts +0 -0
  93. package/{lib → cjs}/function/index.js +0 -0
  94. package/cjs/function/index.js.map +1 -0
  95. package/{lib → cjs}/functional/ChainFn.d.ts +0 -0
  96. package/{lib → cjs}/functional/ChainFn.js +0 -0
  97. package/cjs/functional/ChainFn.js.map +1 -0
  98. package/{lib → cjs}/functional/index.d.ts +0 -0
  99. package/{lib → cjs}/functional/index.js +0 -0
  100. package/cjs/functional/index.js.map +1 -0
  101. package/cjs/index.d.ts +17 -0
  102. package/cjs/index.js +37 -0
  103. package/cjs/index.js.map +1 -0
  104. package/{lib → cjs}/math/Abs.d.ts +0 -0
  105. package/{lib → cjs}/math/Abs.js +0 -0
  106. package/cjs/math/Abs.js.map +1 -0
  107. package/{lib → cjs}/math/Add.d.ts +0 -0
  108. package/{lib → cjs}/math/Add.js +0 -0
  109. package/cjs/math/Add.js.map +1 -0
  110. package/{lib → cjs}/math/Digit.d.ts +0 -0
  111. package/{lib → cjs}/math/Digit.js +0 -0
  112. package/cjs/math/Digit.js.map +1 -0
  113. package/{lib → cjs}/math/GreaterThan.d.ts +0 -0
  114. package/{lib → cjs}/math/GreaterThan.js +0 -0
  115. package/cjs/math/GreaterThan.js.map +1 -0
  116. package/{lib → cjs}/math/IsPositive.d.ts +0 -0
  117. package/{lib → cjs}/math/IsPositive.js +0 -0
  118. package/cjs/math/IsPositive.js.map +1 -0
  119. package/{lib → cjs}/math/IsWhole.d.ts +0 -0
  120. package/{lib → cjs}/math/IsWhole.js +0 -0
  121. package/cjs/math/IsWhole.js.map +1 -0
  122. package/{lib → cjs}/math/Max.d.ts +0 -0
  123. package/{lib → cjs}/math/Max.js +0 -0
  124. package/cjs/math/Max.js.map +1 -0
  125. package/{lib → cjs}/math/Subtract.d.ts +0 -0
  126. package/{lib → cjs}/math/Subtract.js +0 -0
  127. package/cjs/math/Subtract.js.map +1 -0
  128. package/{lib → cjs}/math/index.d.ts +0 -0
  129. package/{lib → cjs}/math/index.js +0 -0
  130. package/cjs/math/index.js.map +1 -0
  131. package/cjs/nodejs/index.d.ts +1 -0
  132. package/cjs/nodejs/index.js +14 -0
  133. package/cjs/nodejs/index.js.map +1 -0
  134. package/cjs/nodejs/isNodeError.d.ts +31 -0
  135. package/cjs/nodejs/isNodeError.js +13 -0
  136. package/cjs/nodejs/isNodeError.js.map +1 -0
  137. package/{lib → cjs}/nominal-types/Brand.d.ts +0 -0
  138. package/{lib → cjs}/nominal-types/Brand.js +0 -0
  139. package/cjs/nominal-types/Brand.js.map +1 -0
  140. package/{lib → cjs}/nominal-types/Flavor.d.ts +0 -0
  141. package/{lib → cjs}/nominal-types/Flavor.js +0 -0
  142. package/cjs/nominal-types/Flavor.js.map +1 -0
  143. package/{lib → cjs}/nominal-types/index.d.ts +0 -0
  144. package/{lib → cjs}/nominal-types/index.js +0 -0
  145. package/cjs/nominal-types/index.js.map +1 -0
  146. package/{lib → cjs}/nominal-types/nominalMatch.d.ts +0 -0
  147. package/{lib → cjs}/nominal-types/nominalMatch.js +0 -0
  148. package/cjs/nominal-types/nominalMatch.js.map +1 -0
  149. package/{lib → cjs}/nominal-types/types.d.ts +0 -0
  150. package/{lib → cjs}/nominal-types/types.js +0 -0
  151. package/cjs/nominal-types/types.js.map +1 -0
  152. package/{lib → cjs}/object/ANotB.d.ts +0 -0
  153. package/{lib → cjs}/object/ANotB.js +0 -0
  154. package/cjs/object/ANotB.js.map +1 -0
  155. package/{lib → cjs}/object/AnyRecord.d.ts +0 -0
  156. package/{lib → cjs}/object/AnyRecord.js +0 -0
  157. package/cjs/object/AnyRecord.js.map +1 -0
  158. package/{lib → cjs}/object/ExcludePropType.d.ts +0 -0
  159. package/{lib → cjs}/object/ExcludePropType.js +0 -0
  160. package/cjs/object/ExcludePropType.js.map +1 -0
  161. package/{lib → cjs}/object/IsDisjoint.d.ts +0 -0
  162. package/{lib → cjs}/object/IsDisjoint.js +0 -0
  163. package/cjs/object/IsDisjoint.js.map +1 -0
  164. package/{lib → cjs}/object/IsRecord.d.ts +0 -0
  165. package/{lib → cjs}/object/IsRecord.js +0 -0
  166. package/cjs/object/IsRecord.js.map +1 -0
  167. package/{lib → cjs}/object/KeyTypes.d.ts +0 -0
  168. package/{lib → cjs}/object/KeyTypes.js +0 -0
  169. package/cjs/object/KeyTypes.js.map +1 -0
  170. package/{lib → cjs}/object/KeyofOptional.d.ts +0 -0
  171. package/{lib → cjs}/object/KeyofOptional.js +0 -0
  172. package/cjs/object/KeyofOptional.js.map +1 -0
  173. package/{lib → cjs}/object/KeysWithDiffType.d.ts +0 -0
  174. package/{lib → cjs}/object/KeysWithDiffType.js +0 -0
  175. package/cjs/object/KeysWithDiffType.js.map +1 -0
  176. package/{lib → cjs}/object/KnownKeys.d.ts +0 -0
  177. package/{lib → cjs}/object/KnownKeys.js +0 -0
  178. package/cjs/object/KnownKeys.js.map +1 -0
  179. package/{lib → cjs}/object/OptionalKeys.d.ts +0 -0
  180. package/{lib → cjs}/object/OptionalKeys.js +0 -0
  181. package/cjs/object/OptionalKeys.js.map +1 -0
  182. package/{lib → cjs}/object/Partial.d.ts +0 -0
  183. package/{lib → cjs}/object/Partial.js +0 -0
  184. package/cjs/object/Partial.js.map +1 -0
  185. package/{lib → cjs}/object/RecursiveIntersect.d.ts +0 -0
  186. package/{lib → cjs}/object/RecursiveIntersect.js +0 -0
  187. package/cjs/object/RecursiveIntersect.js.map +1 -0
  188. package/{lib → cjs}/object/RecursivePartial.d.ts +0 -0
  189. package/{lib → cjs}/object/RecursivePartial.js +0 -0
  190. package/cjs/object/RecursivePartial.js.map +1 -0
  191. package/{lib → cjs}/object/RecursiveRequired.d.ts +0 -0
  192. package/{lib → cjs}/object/RecursiveRequired.js +0 -0
  193. package/cjs/object/RecursiveRequired.js.map +1 -0
  194. package/{lib → cjs}/object/Required.d.ts +0 -0
  195. package/{lib → cjs}/object/Required.js +0 -0
  196. package/cjs/object/Required.js.map +1 -0
  197. package/{lib → cjs}/object/RequiredKeys.d.ts +0 -0
  198. package/{lib → cjs}/object/RequiredKeys.js +0 -0
  199. package/cjs/object/RequiredKeys.js.map +1 -0
  200. package/{lib → cjs}/object/SpreadRecord.d.ts +0 -0
  201. package/{lib → cjs}/object/SpreadRecord.js +0 -0
  202. package/cjs/object/SpreadRecord.js.map +1 -0
  203. package/{lib → cjs}/object/ValueOf.d.ts +0 -0
  204. package/{lib → cjs}/object/ValueOf.js +0 -0
  205. package/cjs/object/ValueOf.js.map +1 -0
  206. package/{lib → cjs}/object/everyKey.d.ts +0 -0
  207. package/{lib → cjs}/object/everyKey.js +0 -0
  208. package/cjs/object/everyKey.js.map +1 -0
  209. package/{lib → cjs}/object/facade.d.ts +0 -0
  210. package/{lib → cjs}/object/facade.js +0 -0
  211. package/cjs/object/facade.js.map +1 -0
  212. package/{lib → cjs}/object/filterKey.d.ts +0 -0
  213. package/{lib → cjs}/object/filterKey.js +0 -0
  214. package/cjs/object/filterKey.js.map +1 -0
  215. package/{lib → cjs}/object/findKey.d.ts +0 -0
  216. package/{lib → cjs}/object/findKey.js +0 -0
  217. package/cjs/object/findKey.js.map +1 -0
  218. package/{lib → cjs}/object/forEachKey.d.ts +0 -0
  219. package/{lib → cjs}/object/forEachKey.js +0 -0
  220. package/cjs/object/forEachKey.js.map +1 -0
  221. package/{lib → cjs}/object/getField.d.ts +0 -0
  222. package/{lib → cjs}/object/getField.js +0 -0
  223. package/cjs/object/getField.js.map +1 -0
  224. package/{lib → cjs}/object/hasKey.d.ts +0 -0
  225. package/{lib → cjs}/object/hasKey.js +0 -0
  226. package/cjs/object/hasKey.js.map +1 -0
  227. package/{lib → cjs}/object/hasProperty.d.ts +0 -0
  228. package/{lib → cjs}/object/hasProperty.js +0 -0
  229. package/cjs/object/hasProperty.js.map +1 -0
  230. package/{lib → cjs}/object/index.d.ts +0 -0
  231. package/{lib → cjs}/object/index.js +0 -0
  232. package/cjs/object/index.js.map +1 -0
  233. package/{lib → cjs}/object/mapKey.d.ts +0 -0
  234. package/{lib → cjs}/object/mapKey.js +0 -0
  235. package/cjs/object/mapKey.js.map +1 -0
  236. package/{lib → cjs}/object/mapProperties.d.ts +0 -0
  237. package/cjs/object/mapProperties.js +18 -0
  238. package/cjs/object/mapProperties.js.map +1 -0
  239. package/{lib → cjs}/object/omit.d.ts +0 -0
  240. package/cjs/object/omit.js +17 -0
  241. package/cjs/object/omit.js.map +1 -0
  242. package/{lib → cjs}/object/pick.d.ts +0 -0
  243. package/cjs/object/pick.js +17 -0
  244. package/cjs/object/pick.js.map +1 -0
  245. package/{lib → cjs}/object/reduceKey.d.ts +0 -0
  246. package/{lib → cjs}/object/reduceKey.js +0 -0
  247. package/cjs/object/reduceKey.js.map +1 -0
  248. package/{lib → cjs}/object/replaceProperty.d.ts +0 -0
  249. package/{lib → cjs}/object/replaceProperty.js +0 -0
  250. package/cjs/object/replaceProperty.js.map +1 -0
  251. package/{lib → cjs}/object/someKey.d.ts +0 -0
  252. package/{lib → cjs}/object/someKey.js +0 -0
  253. package/cjs/object/someKey.js.map +1 -0
  254. package/{lib → cjs}/object/typeOverrideIncompatible.d.ts +0 -0
  255. package/{lib → cjs}/object/typeOverrideIncompatible.js +0 -0
  256. package/cjs/object/typeOverrideIncompatible.js.map +1 -0
  257. package/{lib → cjs}/predicates/CanAssign.d.ts +0 -0
  258. package/{lib → cjs}/predicates/CanAssign.js +0 -0
  259. package/cjs/predicates/CanAssign.js.map +1 -0
  260. package/{lib → cjs}/predicates/Equal.d.ts +0 -0
  261. package/{lib → cjs}/predicates/Equal.js +0 -0
  262. package/cjs/predicates/Equal.js.map +1 -0
  263. package/{lib → cjs}/predicates/Extends.d.ts +0 -0
  264. package/{lib → cjs}/predicates/Extends.js +0 -0
  265. package/cjs/predicates/Extends.js.map +1 -0
  266. package/{lib → cjs}/predicates/If.d.ts +0 -0
  267. package/{lib → cjs}/predicates/If.js +0 -0
  268. package/cjs/predicates/If.js.map +1 -0
  269. package/{lib → cjs}/predicates/index.d.ts +0 -0
  270. package/{lib → cjs}/predicates/index.js +0 -0
  271. package/cjs/predicates/index.js.map +1 -0
  272. package/{lib → cjs}/predicates/isEmptyObject.d.ts +0 -0
  273. package/{lib → cjs}/predicates/isEmptyObject.js +0 -0
  274. package/cjs/predicates/isEmptyObject.js.map +1 -0
  275. package/cjs/predicates/isType.d.ts +10 -0
  276. package/cjs/predicates/isType.js +28 -0
  277. package/cjs/predicates/isType.js.map +1 -0
  278. package/{lib → cjs}/predicates/logical.d.ts +0 -0
  279. package/{lib → cjs}/predicates/logical.js +0 -0
  280. package/cjs/predicates/logical.js.map +1 -0
  281. package/{lib → cjs}/promise/PromiseValue.d.ts +0 -0
  282. package/{lib → cjs}/promise/PromiseValue.js +0 -0
  283. package/cjs/promise/PromiseValue.js.map +1 -0
  284. package/{lib → cjs}/promise/PromiseValueMerge.d.ts +0 -0
  285. package/{lib → cjs}/promise/PromiseValueMerge.js +0 -0
  286. package/cjs/promise/PromiseValueMerge.js.map +1 -0
  287. package/{lib → cjs}/promise/index.d.ts +0 -0
  288. package/{lib → cjs}/promise/index.js +0 -0
  289. package/cjs/promise/index.js.map +1 -0
  290. package/{lib → cjs}/promise/isPromise.d.ts +0 -0
  291. package/{lib → cjs}/promise/isPromise.js +0 -0
  292. package/cjs/promise/isPromise.js.map +1 -0
  293. package/{lib → cjs}/promise/mapSeries.d.ts +0 -0
  294. package/{lib → cjs}/promise/mapSeries.js +0 -0
  295. package/cjs/promise/mapSeries.js.map +1 -0
  296. package/{lib → cjs}/utils/Widen.d.ts +0 -0
  297. package/{lib → cjs}/utils/Widen.js +0 -0
  298. package/cjs/utils/Widen.js.map +1 -0
  299. package/{lib → cjs}/utils/as.d.ts +0 -0
  300. package/{lib → cjs}/utils/as.js +0 -0
  301. package/cjs/utils/as.js.map +1 -0
  302. package/{lib → cjs}/utils/index.d.ts +0 -0
  303. package/{lib → cjs}/utils/index.js +0 -0
  304. package/cjs/utils/index.js.map +1 -0
  305. package/esm/ComposableTypes.js +2 -0
  306. package/esm/ComposableTypes.js.map +1 -0
  307. package/{libm → esm}/JSONTypes.js +0 -0
  308. package/esm/JSONTypes.js.map +1 -0
  309. package/{libm → esm}/PrimitiveTypes.js +0 -0
  310. package/esm/PrimitiveTypes.js.map +1 -0
  311. package/{libm → esm}/UnionKeys.js +0 -0
  312. package/esm/UnionKeys.js.map +1 -0
  313. package/{libm → esm}/array/CommonPropKeys.js +0 -0
  314. package/esm/array/CommonPropKeys.js.map +1 -0
  315. package/{libm → esm}/array/Concat.js +0 -0
  316. package/esm/array/Concat.js.map +1 -0
  317. package/{libm → esm}/array/CreateTuple.js +0 -0
  318. package/esm/array/CreateTuple.js.map +1 -0
  319. package/{libm → esm}/array/DropFirst.js +0 -0
  320. package/esm/array/DropFirst.js.map +1 -0
  321. package/{libm → esm}/array/DropLast.js +0 -0
  322. package/esm/array/DropLast.js.map +1 -0
  323. package/{libm → esm}/array/Filter.js +0 -0
  324. package/esm/array/Filter.js.map +1 -0
  325. package/{libm → esm}/array/FindFirst.js +0 -0
  326. package/esm/array/FindFirst.js.map +1 -0
  327. package/{libm → esm}/array/FindLast.js +0 -0
  328. package/esm/array/FindLast.js.map +1 -0
  329. package/{libm → esm}/array/Head.js +0 -0
  330. package/esm/array/Head.js.map +1 -0
  331. package/{libm → esm}/array/IntersectOfProps.js +0 -0
  332. package/esm/array/IntersectOfProps.js.map +1 -0
  333. package/{libm → esm}/array/IsArray.js +0 -0
  334. package/esm/array/IsArray.js.map +1 -0
  335. package/{libm → esm}/array/PadLeft.js +0 -0
  336. package/esm/array/PadLeft.js.map +1 -0
  337. package/{libm → esm}/array/Reverse.js +0 -0
  338. package/esm/array/Reverse.js.map +1 -0
  339. package/{libm → esm}/array/Some.js +0 -0
  340. package/esm/array/Some.js.map +1 -0
  341. package/{libm → esm}/array/Tail.js +0 -0
  342. package/esm/array/Tail.js.map +1 -0
  343. package/{libm → esm}/array/UnionOfProps.js +0 -0
  344. package/esm/array/UnionOfProps.js.map +1 -0
  345. package/{libm → esm}/array/UnionOfValues.js +0 -0
  346. package/esm/array/UnionOfValues.js.map +1 -0
  347. package/{libm → esm}/array/index.js +0 -0
  348. package/esm/array/index.js.map +1 -0
  349. package/{libm → esm}/array/literalArray.js +0 -0
  350. package/esm/array/literalArray.js.map +1 -0
  351. package/{libm → esm}/array/reduceWhile.js +0 -0
  352. package/esm/array/reduceWhile.js.map +1 -0
  353. package/{libm → esm}/assertion/assertType.js +0 -0
  354. package/esm/assertion/assertType.js.map +1 -0
  355. package/{libm → esm}/assertion/index.js +0 -0
  356. package/esm/assertion/index.js.map +1 -0
  357. package/{libm → esm}/class/AnyConstructor.js +0 -0
  358. package/esm/class/AnyConstructor.js.map +1 -0
  359. package/{libm → esm}/class/index.js +0 -0
  360. package/esm/class/index.js.map +1 -0
  361. package/esm/class/isConstructor.js +13 -0
  362. package/esm/class/isConstructor.js.map +1 -0
  363. package/{libm → esm}/function/AnyFunction.js +0 -0
  364. package/esm/function/AnyFunction.js.map +1 -0
  365. package/{libm → esm}/function/index.js +0 -0
  366. package/esm/function/index.js.map +1 -0
  367. package/{libm → esm}/functional/ChainFn.js +0 -0
  368. package/esm/functional/ChainFn.js.map +1 -0
  369. package/{libm → esm}/functional/index.js +0 -0
  370. package/esm/functional/index.js.map +1 -0
  371. package/esm/index.js +22 -0
  372. package/esm/index.js.map +1 -0
  373. package/{libm → esm}/math/Abs.js +0 -0
  374. package/esm/math/Abs.js.map +1 -0
  375. package/{libm → esm}/math/Add.js +0 -0
  376. package/esm/math/Add.js.map +1 -0
  377. package/{libm → esm}/math/Digit.js +0 -0
  378. package/esm/math/Digit.js.map +1 -0
  379. package/{libm → esm}/math/GreaterThan.js +0 -0
  380. package/esm/math/GreaterThan.js.map +1 -0
  381. package/{libm → esm}/math/IsPositive.js +0 -0
  382. package/esm/math/IsPositive.js.map +1 -0
  383. package/{libm → esm}/math/IsWhole.js +0 -0
  384. package/esm/math/IsWhole.js.map +1 -0
  385. package/{libm → esm}/math/Max.js +0 -0
  386. package/esm/math/Max.js.map +1 -0
  387. package/{libm → esm}/math/Subtract.js +0 -0
  388. package/esm/math/Subtract.js.map +1 -0
  389. package/{libm → esm}/math/index.js +0 -0
  390. package/esm/math/index.js.map +1 -0
  391. package/esm/nodejs/index.js +2 -0
  392. package/esm/nodejs/index.js.map +1 -0
  393. package/esm/nodejs/isNodeError.js +9 -0
  394. package/esm/nodejs/isNodeError.js.map +1 -0
  395. package/{libm → esm}/nominal-types/Brand.js +0 -0
  396. package/esm/nominal-types/Brand.js.map +1 -0
  397. package/{libm → esm}/nominal-types/Flavor.js +0 -0
  398. package/esm/nominal-types/Flavor.js.map +1 -0
  399. package/{libm → esm}/nominal-types/index.js +0 -0
  400. package/esm/nominal-types/index.js.map +1 -0
  401. package/{libm → esm}/nominal-types/nominalMatch.js +0 -0
  402. package/esm/nominal-types/nominalMatch.js.map +1 -0
  403. package/{libm → esm}/nominal-types/types.js +0 -0
  404. package/esm/nominal-types/types.js.map +1 -0
  405. package/{libm → esm}/object/ANotB.js +0 -0
  406. package/esm/object/ANotB.js.map +1 -0
  407. package/{libm → esm}/object/AnyRecord.js +0 -0
  408. package/esm/object/AnyRecord.js.map +1 -0
  409. package/{libm → esm}/object/ExcludePropType.js +0 -0
  410. package/esm/object/ExcludePropType.js.map +1 -0
  411. package/{libm → esm}/object/IsDisjoint.js +0 -0
  412. package/esm/object/IsDisjoint.js.map +1 -0
  413. package/{libm → esm}/object/IsRecord.js +0 -0
  414. package/esm/object/IsRecord.js.map +1 -0
  415. package/{libm → esm}/object/KeyTypes.js +0 -0
  416. package/esm/object/KeyTypes.js.map +1 -0
  417. package/{libm → esm}/object/KeyofOptional.js +0 -0
  418. package/esm/object/KeyofOptional.js.map +1 -0
  419. package/{libm → esm}/object/KeysWithDiffType.js +0 -0
  420. package/esm/object/KeysWithDiffType.js.map +1 -0
  421. package/{libm → esm}/object/KnownKeys.js +0 -0
  422. package/esm/object/KnownKeys.js.map +1 -0
  423. package/{libm → esm}/object/OptionalKeys.js +0 -0
  424. package/esm/object/OptionalKeys.js.map +1 -0
  425. package/{libm → esm}/object/Partial.js +0 -0
  426. package/esm/object/Partial.js.map +1 -0
  427. package/{libm → esm}/object/RecursiveIntersect.js +0 -0
  428. package/esm/object/RecursiveIntersect.js.map +1 -0
  429. package/{libm → esm}/object/RecursivePartial.js +0 -0
  430. package/esm/object/RecursivePartial.js.map +1 -0
  431. package/{libm → esm}/object/RecursiveRequired.js +0 -0
  432. package/esm/object/RecursiveRequired.js.map +1 -0
  433. package/{libm → esm}/object/Required.js +0 -0
  434. package/esm/object/Required.js.map +1 -0
  435. package/{libm → esm}/object/RequiredKeys.js +0 -0
  436. package/esm/object/RequiredKeys.js.map +1 -0
  437. package/{libm → esm}/object/SpreadRecord.js +0 -0
  438. package/esm/object/SpreadRecord.js.map +1 -0
  439. package/{libm → esm}/object/ValueOf.js +0 -0
  440. package/esm/object/ValueOf.js.map +1 -0
  441. package/{libm → esm}/object/everyKey.js +0 -0
  442. package/esm/object/everyKey.js.map +1 -0
  443. package/{libm → esm}/object/facade.js +0 -0
  444. package/esm/object/facade.js.map +1 -0
  445. package/{libm → esm}/object/filterKey.js +0 -0
  446. package/esm/object/filterKey.js.map +1 -0
  447. package/{libm → esm}/object/findKey.js +0 -0
  448. package/esm/object/findKey.js.map +1 -0
  449. package/{libm → esm}/object/forEachKey.js +0 -0
  450. package/esm/object/forEachKey.js.map +1 -0
  451. package/{libm → esm}/object/getField.js +0 -0
  452. package/esm/object/getField.js.map +1 -0
  453. package/{libm → esm}/object/hasKey.js +0 -0
  454. package/esm/object/hasKey.js.map +1 -0
  455. package/{libm → esm}/object/hasProperty.js +0 -0
  456. package/esm/object/hasProperty.js.map +1 -0
  457. package/{libm → esm}/object/index.js +0 -0
  458. package/esm/object/index.js.map +1 -0
  459. package/{libm → esm}/object/mapKey.js +0 -0
  460. package/esm/object/mapKey.js.map +1 -0
  461. package/{libm → esm}/object/mapProperties.js +0 -0
  462. package/esm/object/mapProperties.js.map +1 -0
  463. package/{libm → esm}/object/omit.js +0 -0
  464. package/esm/object/omit.js.map +1 -0
  465. package/{libm → esm}/object/pick.js +0 -0
  466. package/esm/object/pick.js.map +1 -0
  467. package/{libm → esm}/object/reduceKey.js +0 -0
  468. package/esm/object/reduceKey.js.map +1 -0
  469. package/{libm → esm}/object/replaceProperty.js +0 -0
  470. package/esm/object/replaceProperty.js.map +1 -0
  471. package/{libm → esm}/object/someKey.js +0 -0
  472. package/esm/object/someKey.js.map +1 -0
  473. package/{libm → esm}/object/typeOverrideIncompatible.js +0 -0
  474. package/esm/object/typeOverrideIncompatible.js.map +1 -0
  475. package/{libm → esm}/predicates/CanAssign.js +0 -0
  476. package/esm/predicates/CanAssign.js.map +1 -0
  477. package/{libm → esm}/predicates/Equal.js +0 -0
  478. package/esm/predicates/Equal.js.map +1 -0
  479. package/{libm → esm}/predicates/Extends.js +0 -0
  480. package/esm/predicates/Extends.js.map +1 -0
  481. package/{libm → esm}/predicates/If.js +0 -0
  482. package/esm/predicates/If.js.map +1 -0
  483. package/{libm → esm}/predicates/index.js +0 -0
  484. package/esm/predicates/index.js.map +1 -0
  485. package/{libm → esm}/predicates/isEmptyObject.js +0 -0
  486. package/esm/predicates/isEmptyObject.js.map +1 -0
  487. package/{libm → esm}/predicates/isType.js +0 -0
  488. package/esm/predicates/isType.js.map +1 -0
  489. package/{libm → esm}/predicates/logical.js +0 -0
  490. package/esm/predicates/logical.js.map +1 -0
  491. package/{libm → esm}/promise/PromiseValue.js +0 -0
  492. package/esm/promise/PromiseValue.js.map +1 -0
  493. package/{libm → esm}/promise/PromiseValueMerge.js +0 -0
  494. package/esm/promise/PromiseValueMerge.js.map +1 -0
  495. package/{libm → esm}/promise/index.js +0 -0
  496. package/esm/promise/index.js.map +1 -0
  497. package/{libm → esm}/promise/isPromise.js +0 -0
  498. package/esm/promise/isPromise.js.map +1 -0
  499. package/{libm → esm}/promise/mapSeries.js +0 -0
  500. package/esm/promise/mapSeries.js.map +1 -0
  501. package/{libm → esm}/utils/Widen.js +0 -0
  502. package/esm/utils/Widen.js.map +1 -0
  503. package/{libm → esm}/utils/as.js +0 -0
  504. package/esm/utils/as.js.map +1 -0
  505. package/{libm → esm}/utils/index.js +0 -0
  506. package/esm/utils/index.js.map +1 -0
  507. package/package.json +47 -51
  508. package/ts/ComposableTypes.spec.ts +29 -0
  509. package/ts/ComposableTypes.ts +10 -0
  510. package/ts/JSONTypes.spec.ts +43 -0
  511. package/ts/JSONTypes.ts +18 -0
  512. package/ts/PrimitiveTypes.ts +2 -0
  513. package/{src → ts}/UnionKeys.ts +0 -0
  514. package/ts/UnionToIntersection.ts +7 -0
  515. package/ts/array/CommonPropKeys.spec.ts +20 -0
  516. package/ts/array/CommonPropKeys.ts +18 -0
  517. package/ts/array/Concat.spec.ts +21 -0
  518. package/ts/array/Concat.ts +1 -0
  519. package/ts/array/CreateTuple.spec.ts +21 -0
  520. package/ts/array/CreateTuple.ts +7 -0
  521. package/ts/array/DropFirst.spec.ts +21 -0
  522. package/ts/array/DropFirst.ts +9 -0
  523. package/ts/array/DropLast.spec.ts +21 -0
  524. package/ts/array/DropLast.ts +9 -0
  525. package/ts/array/Filter.spec.ts +21 -0
  526. package/ts/array/Filter.ts +12 -0
  527. package/ts/array/FindFirst.spec.ts +27 -0
  528. package/ts/array/FindFirst.ts +13 -0
  529. package/ts/array/FindLast.spec.ts +27 -0
  530. package/ts/array/FindLast.ts +8 -0
  531. package/ts/array/Head.spec.ts +21 -0
  532. package/ts/array/Head.ts +1 -0
  533. package/ts/array/IntersectOfProps.spec.ts +14 -0
  534. package/ts/array/IntersectOfProps.ts +20 -0
  535. package/ts/array/IsArray.ts +1 -0
  536. package/ts/array/PadLeft.spec.ts +26 -0
  537. package/ts/array/PadLeft.ts +16 -0
  538. package/ts/array/Reverse.spec.ts +17 -0
  539. package/ts/array/Reverse.ts +10 -0
  540. package/ts/array/Some.spec.ts +79 -0
  541. package/ts/array/Some.ts +24 -0
  542. package/ts/array/Tail.spec.ts +32 -0
  543. package/ts/array/Tail.ts +7 -0
  544. package/ts/array/UnionOfProps.spec.ts +14 -0
  545. package/ts/array/UnionOfProps.ts +18 -0
  546. package/ts/array/UnionOfValues.spec.ts +11 -0
  547. package/ts/array/UnionOfValues.ts +10 -0
  548. package/ts/array/index.ts +19 -0
  549. package/{src → ts}/array/literalArray.spec.ts +0 -0
  550. package/{src → ts}/array/literalArray.ts +0 -0
  551. package/{src → ts}/array/reduceWhile.spec.ts +0 -0
  552. package/{src → ts}/array/reduceWhile.ts +0 -0
  553. package/ts/assertion/assertType.spec.ts +507 -0
  554. package/ts/assertion/assertType.ts +105 -0
  555. package/ts/assertion/index.ts +1 -0
  556. package/{src → ts}/binary/Bit.ts +0 -0
  557. package/{src → ts}/binary/_binary.ts +0 -0
  558. package/{src → ts}/binary/index.spec.ts +0 -0
  559. package/{src → ts}/binary/index.ts +0 -0
  560. package/ts/class/AnyConstructor.spec.ts +13 -0
  561. package/{src → ts}/class/AnyConstructor.ts +0 -0
  562. package/{src → ts}/class/index.ts +0 -0
  563. package/ts/class/isConstructor.spec.ts +35 -0
  564. package/ts/class/isConstructor.ts +14 -0
  565. package/ts/function/AnyFunction.spec.ts +21 -0
  566. package/{src → ts}/function/AnyFunction.ts +0 -0
  567. package/{src → ts}/function/index.ts +0 -0
  568. package/ts/functional/ChainFn.spec.ts +7 -0
  569. package/ts/functional/ChainFn.ts +6 -0
  570. package/ts/functional/Maybe.spec.ts +42 -0
  571. package/ts/functional/Maybe.ts +19 -0
  572. package/ts/functional/index.ts +2 -0
  573. package/{src → ts}/index.spec.ts +0 -0
  574. package/ts/index.ts +21 -0
  575. package/ts/math/Abs.spec.ts +14 -0
  576. package/ts/math/Abs.ts +4 -0
  577. package/ts/math/Add.spec.ts +82 -0
  578. package/ts/math/Add.ts +49 -0
  579. package/ts/math/Digit.spec.ts +185 -0
  580. package/ts/math/Digit.ts +115 -0
  581. package/ts/math/GreaterThan.spec.ts +40 -0
  582. package/ts/math/GreaterThan.ts +36 -0
  583. package/{src → ts}/math/IsPositive.spec.ts +0 -0
  584. package/ts/math/IsPositive.ts +9 -0
  585. package/ts/math/IsWhole.spec.ts +19 -0
  586. package/ts/math/IsWhole.ts +9 -0
  587. package/ts/math/Max.spec.ts +35 -0
  588. package/ts/math/Max.ts +31 -0
  589. package/ts/math/README.md +7 -0
  590. package/ts/math/Subtract.spec.ts +40 -0
  591. package/ts/math/Subtract.ts +40 -0
  592. package/ts/math/index.ts +7 -0
  593. package/ts/nodejs/index.ts +1 -0
  594. package/ts/nodejs/isNodeError.spec.ts +11 -0
  595. package/ts/nodejs/isNodeError.ts +28 -0
  596. package/ts/nominal-types/Brand.spec.ts +43 -0
  597. package/ts/nominal-types/Brand.ts +32 -0
  598. package/ts/nominal-types/Flavor.spec.ts +51 -0
  599. package/ts/nominal-types/Flavor.ts +32 -0
  600. package/{src → ts}/nominal-types/index.ts +0 -0
  601. package/{src → ts}/nominal-types/nominalMatch.spec.ts +0 -0
  602. package/{src → ts}/nominal-types/nominalMatch.ts +0 -0
  603. package/{src → ts}/nominal-types/types.ts +0 -0
  604. package/{src → ts}/object/ANotB.spec.ts +0 -0
  605. package/ts/object/ANotB.ts +21 -0
  606. package/{src → ts}/object/AnyRecord.ts +0 -0
  607. package/ts/object/ExcludePropType.spec.ts +13 -0
  608. package/{src → ts}/object/ExcludePropType.ts +0 -0
  609. package/ts/object/IsDisjoint.spec.ts +25 -0
  610. package/ts/object/IsDisjoint.ts +12 -0
  611. package/ts/object/IsRecord.spec.ts +22 -0
  612. package/ts/object/IsRecord.ts +4 -0
  613. package/{src → ts}/object/KeyTypes.spec.ts +0 -0
  614. package/{src → ts}/object/KeyTypes.ts +0 -0
  615. package/ts/object/KeyofOptional.spec.ts +8 -0
  616. package/{src → ts}/object/KeyofOptional.ts +0 -0
  617. package/ts/object/KeysWithDiffType.spec.ts +21 -0
  618. package/{src → ts}/object/KeysWithDiffType.ts +0 -0
  619. package/ts/object/KnownKeys.spec.ts +39 -0
  620. package/ts/object/KnownKeys.ts +16 -0
  621. package/{src → ts}/object/OptionalKeys.spec.ts +0 -0
  622. package/{src → ts}/object/OptionalKeys.ts +0 -0
  623. package/ts/object/Partial.spec.ts +49 -0
  624. package/{src → ts}/object/Partial.ts +0 -0
  625. package/ts/object/RecursiveIntersect.spec.ts +39 -0
  626. package/{src → ts}/object/RecursiveIntersect.ts +0 -0
  627. package/{src → ts}/object/RecursivePartial.ts +0 -0
  628. package/{src → ts}/object/RecursiveRequired.spec.ts +0 -0
  629. package/{src → ts}/object/RecursiveRequired.ts +0 -0
  630. package/ts/object/Required.spec.ts +29 -0
  631. package/{src → ts}/object/Required.ts +0 -0
  632. package/{src → ts}/object/RequiredKeys.spec.ts +0 -0
  633. package/{src → ts}/object/RequiredKeys.ts +0 -0
  634. package/ts/object/SpreadRecord.spec.ts +14 -0
  635. package/ts/object/SpreadRecord.ts +6 -0
  636. package/ts/object/ValueOf.spec.ts +36 -0
  637. package/{src → ts}/object/ValueOf.ts +0 -0
  638. package/{src → ts}/object/everyKey.spec.ts +0 -0
  639. package/{src → ts}/object/everyKey.ts +0 -0
  640. package/{src → ts}/object/facade.spec.ts +0 -0
  641. package/ts/object/facade.ts +39 -0
  642. package/{src → ts}/object/filterKey.spec.ts +0 -0
  643. package/{src → ts}/object/filterKey.ts +0 -0
  644. package/{src → ts}/object/findKey.spec.ts +0 -0
  645. package/{src → ts}/object/findKey.ts +0 -0
  646. package/{src → ts}/object/forEachKey.spec.ts +0 -0
  647. package/{src → ts}/object/forEachKey.ts +0 -0
  648. package/ts/object/getField.spec.ts +21 -0
  649. package/ts/object/getField.ts +21 -0
  650. package/{src → ts}/object/hasKey.spec.ts +0 -0
  651. package/ts/object/hasKey.ts +7 -0
  652. package/ts/object/hasProperty.spec.ts +15 -0
  653. package/{src → ts}/object/hasProperty.ts +0 -0
  654. package/ts/object/index.ts +35 -0
  655. package/{src → ts}/object/mapKey.spec.ts +0 -0
  656. package/{src → ts}/object/mapKey.ts +0 -0
  657. package/ts/object/mapProperties.spec.ts +27 -0
  658. package/{src → ts}/object/mapProperties.ts +0 -0
  659. package/ts/object/omit.spec.ts +104 -0
  660. package/ts/object/omit.ts +36 -0
  661. package/ts/object/pick.spec.ts +66 -0
  662. package/ts/object/pick.ts +35 -0
  663. package/{src → ts}/object/reduceKey.spec.ts +0 -0
  664. package/{src → ts}/object/reduceKey.ts +0 -0
  665. package/{src → ts}/object/replaceProperty.spec.ts +0 -0
  666. package/{src → ts}/object/replaceProperty.ts +0 -0
  667. package/{src → ts}/object/someKey.spec.ts +0 -0
  668. package/{src → ts}/object/someKey.ts +0 -0
  669. package/ts/object/typeOverrideIncompatible.spec.ts +24 -0
  670. package/ts/object/typeOverrideIncompatible.ts +10 -0
  671. package/ts/predicates/CanAssign.spec.ts +57 -0
  672. package/{src → ts}/predicates/CanAssign.ts +0 -0
  673. package/ts/predicates/Equal.spec.ts +71 -0
  674. package/ts/predicates/Equal.ts +14 -0
  675. package/ts/predicates/Extends.ts +4 -0
  676. package/ts/predicates/If.spec.ts +14 -0
  677. package/ts/predicates/If.ts +5 -0
  678. package/ts/predicates/index.spec.ts +73 -0
  679. package/ts/predicates/index.ts +17 -0
  680. package/ts/predicates/isEmptyObject.spec.ts +15 -0
  681. package/ts/predicates/isEmptyObject.ts +2 -0
  682. package/ts/predicates/isType.spec.ts +106 -0
  683. package/ts/predicates/isType.ts +30 -0
  684. package/ts/predicates/logical.spec.ts +59 -0
  685. package/ts/predicates/logical.ts +4 -0
  686. package/ts/promise/PromiseValue.spec.ts +6 -0
  687. package/{src → ts}/promise/PromiseValue.ts +0 -0
  688. package/{src → ts}/promise/PromiseValueMerge.spec.ts +0 -0
  689. package/{src → ts}/promise/PromiseValueMerge.ts +0 -0
  690. package/{src → ts}/promise/index.ts +0 -0
  691. package/{src → ts}/promise/isPromise.spec.ts +0 -0
  692. package/ts/promise/isPromise.ts +4 -0
  693. package/{src → ts}/promise/mapSeries.spec.ts +0 -0
  694. package/ts/promise/mapSeries.ts +5 -0
  695. package/{src → ts}/type-checker/.eslintrc.json +0 -0
  696. package/{src → ts}/type-checker/AnyType.ts +0 -0
  697. package/{src → ts}/type-checker/Boolean.ts +0 -0
  698. package/{src → ts}/type-checker/Tuple.spec.ts +0 -0
  699. package/{src → ts}/type-checker/Tuple.ts +0 -0
  700. package/ts/type-checker/buildTypes.spec.ts +28 -0
  701. package/{src → ts}/type-checker/index.ts +0 -0
  702. package/ts/type-checker/typeChecker.spec.ts +14 -0
  703. package/{src → ts}/type-checker/typeChecker.ts +0 -0
  704. package/{src → ts}/type-checker/types.ts +0 -0
  705. package/{src → ts}/types/.eslintrc.json +0 -0
  706. package/{src → ts}/types/AllType.ts +0 -0
  707. package/{src → ts}/types/Any.ts +0 -0
  708. package/{src → ts}/types/Array.ts +0 -0
  709. package/{src → ts}/types/BigInt.ts +0 -0
  710. package/{src → ts}/types/Boolean.ts +0 -0
  711. package/ts/types/Generate.ts +48 -0
  712. package/{src → ts}/types/Null.ts +0 -0
  713. package/ts/types/Number.ts +56 -0
  714. package/ts/types/Object.ts +53 -0
  715. package/{src → ts}/types/Record.ts +0 -0
  716. package/ts/types/String.ts +56 -0
  717. package/ts/types/Symbol.ts +19 -0
  718. package/ts/types/Tuple.ts +50 -0
  719. package/{src → ts}/types/Undefined.ts +0 -0
  720. package/{src → ts}/types/Union.ts +0 -0
  721. package/{src → ts}/types/Unknown.ts +0 -0
  722. package/{src → ts}/types/analyze.spec.ts +0 -0
  723. package/{src → ts}/types/analyze.ts +0 -0
  724. package/ts/types/check.spec.ts +12 -0
  725. package/{src → ts}/types/check.ts +0 -0
  726. package/ts/types/conform.spec.ts +7 -0
  727. package/{src → ts}/types/conform.ts +0 -0
  728. package/{src → ts}/types/getPlainAnalysisReport.spec.ts +0 -0
  729. package/ts/types/getPlainAnalysisReport.ts +115 -0
  730. package/ts/types/index.ts +28 -0
  731. package/ts/types/optional.ts +30 -0
  732. package/ts/types/required.ts +30 -0
  733. package/ts/types/satisfy.accept.ts +39 -0
  734. package/ts/types/satisfy.spec.ts +600 -0
  735. package/{src → ts}/types/satisfy.ts +0 -0
  736. package/{src → ts}/types/types.ts +0 -0
  737. package/{src → ts}/utils/Widen.ts +0 -0
  738. package/ts/utils/as.spec.ts +24 -0
  739. package/ts/utils/as.ts +7 -0
  740. package/ts/utils/index.ts +2 -0
  741. package/lib/JSONTypes.js +0 -23
  742. package/lib/JSONTypes.js.map +0 -1
  743. package/lib/PrimitiveTypes.js.map +0 -1
  744. package/lib/UnionKeys.js.map +0 -1
  745. package/lib/array/CommonPropKeys.js.map +0 -1
  746. package/lib/array/Concat.js.map +0 -1
  747. package/lib/array/CreateTuple.js.map +0 -1
  748. package/lib/array/DropFirst.js.map +0 -1
  749. package/lib/array/DropLast.js.map +0 -1
  750. package/lib/array/Filter.js.map +0 -1
  751. package/lib/array/FindFirst.js.map +0 -1
  752. package/lib/array/FindLast.js.map +0 -1
  753. package/lib/array/Head.js.map +0 -1
  754. package/lib/array/IntersectOfProps.js.map +0 -1
  755. package/lib/array/IsArray.js.map +0 -1
  756. package/lib/array/PadLeft.js.map +0 -1
  757. package/lib/array/Reverse.js.map +0 -1
  758. package/lib/array/Some.js.map +0 -1
  759. package/lib/array/Tail.js.map +0 -1
  760. package/lib/array/UnionOfProps.js.map +0 -1
  761. package/lib/array/UnionOfValues.js.map +0 -1
  762. package/lib/array/index.js.map +0 -1
  763. package/lib/array/literalArray.js.map +0 -1
  764. package/lib/array/reduceWhile.js.map +0 -1
  765. package/lib/assertion/assertType.d.ts +0 -78
  766. package/lib/assertion/assertType.js +0 -107
  767. package/lib/assertion/assertType.js.map +0 -1
  768. package/lib/assertion/index.js.map +0 -1
  769. package/lib/class/AnyConstructor.js.map +0 -1
  770. package/lib/class/index.js.map +0 -1
  771. package/lib/class/isConstructor.js +0 -18
  772. package/lib/class/isConstructor.js.map +0 -1
  773. package/lib/function/AnyFunction.js.map +0 -1
  774. package/lib/function/index.js.map +0 -1
  775. package/lib/functional/ChainFn.js.map +0 -1
  776. package/lib/functional/index.js.map +0 -1
  777. package/lib/index.d.ts +0 -19
  778. package/lib/index.js +0 -48
  779. package/lib/index.js.map +0 -1
  780. package/lib/math/Abs.js.map +0 -1
  781. package/lib/math/Add.js.map +0 -1
  782. package/lib/math/Digit.js.map +0 -1
  783. package/lib/math/GreaterThan.js.map +0 -1
  784. package/lib/math/IsPositive.js.map +0 -1
  785. package/lib/math/IsWhole.js.map +0 -1
  786. package/lib/math/Max.js.map +0 -1
  787. package/lib/math/Subtract.js.map +0 -1
  788. package/lib/math/index.js.map +0 -1
  789. package/lib/nominal-types/Brand.js.map +0 -1
  790. package/lib/nominal-types/Flavor.js.map +0 -1
  791. package/lib/nominal-types/index.js.map +0 -1
  792. package/lib/nominal-types/nominalMatch.js.map +0 -1
  793. package/lib/nominal-types/types.js.map +0 -1
  794. package/lib/object/ANotB.js.map +0 -1
  795. package/lib/object/AnyRecord.js.map +0 -1
  796. package/lib/object/ExcludePropType.js.map +0 -1
  797. package/lib/object/IsDisjoint.js.map +0 -1
  798. package/lib/object/IsRecord.js.map +0 -1
  799. package/lib/object/KeyTypes.js.map +0 -1
  800. package/lib/object/KeyofOptional.js.map +0 -1
  801. package/lib/object/KeysWithDiffType.js.map +0 -1
  802. package/lib/object/KnownKeys.js.map +0 -1
  803. package/lib/object/OptionalKeys.js.map +0 -1
  804. package/lib/object/Partial.js.map +0 -1
  805. package/lib/object/RecursiveIntersect.js.map +0 -1
  806. package/lib/object/RecursivePartial.js.map +0 -1
  807. package/lib/object/RecursiveRequired.js.map +0 -1
  808. package/lib/object/Required.js.map +0 -1
  809. package/lib/object/RequiredKeys.js.map +0 -1
  810. package/lib/object/SpreadRecord.js.map +0 -1
  811. package/lib/object/ValueOf.js.map +0 -1
  812. package/lib/object/everyKey.js.map +0 -1
  813. package/lib/object/facade.js.map +0 -1
  814. package/lib/object/filterKey.js.map +0 -1
  815. package/lib/object/findKey.js.map +0 -1
  816. package/lib/object/forEachKey.js.map +0 -1
  817. package/lib/object/getField.js.map +0 -1
  818. package/lib/object/hasKey.js.map +0 -1
  819. package/lib/object/hasProperty.js.map +0 -1
  820. package/lib/object/index.js.map +0 -1
  821. package/lib/object/mapKey.js.map +0 -1
  822. package/lib/object/mapProperties.js +0 -18
  823. package/lib/object/mapProperties.js.map +0 -1
  824. package/lib/object/omit.js +0 -17
  825. package/lib/object/omit.js.map +0 -1
  826. package/lib/object/pick.js +0 -17
  827. package/lib/object/pick.js.map +0 -1
  828. package/lib/object/reduceKey.js.map +0 -1
  829. package/lib/object/replaceProperty.js.map +0 -1
  830. package/lib/object/someKey.js.map +0 -1
  831. package/lib/object/typeOverrideIncompatible.js.map +0 -1
  832. package/lib/predicates/CanAssign.js.map +0 -1
  833. package/lib/predicates/Equal.js.map +0 -1
  834. package/lib/predicates/Extends.js.map +0 -1
  835. package/lib/predicates/If.js.map +0 -1
  836. package/lib/predicates/index.js.map +0 -1
  837. package/lib/predicates/isEmptyObject.js.map +0 -1
  838. package/lib/predicates/isType.d.ts +0 -20
  839. package/lib/predicates/isType.js +0 -28
  840. package/lib/predicates/isType.js.map +0 -1
  841. package/lib/predicates/logical.js.map +0 -1
  842. package/lib/promise/PromiseValue.js.map +0 -1
  843. package/lib/promise/PromiseValueMerge.js.map +0 -1
  844. package/lib/promise/index.js.map +0 -1
  845. package/lib/promise/isPromise.js.map +0 -1
  846. package/lib/promise/mapSeries.js.map +0 -1
  847. package/lib/types/AllType.d.ts +0 -18
  848. package/lib/types/AllType.js +0 -3
  849. package/lib/types/AllType.js.map +0 -1
  850. package/lib/types/Any.d.ts +0 -6
  851. package/lib/types/Any.js +0 -5
  852. package/lib/types/Any.js.map +0 -1
  853. package/lib/types/Array.d.ts +0 -28
  854. package/lib/types/Array.js +0 -30
  855. package/lib/types/Array.js.map +0 -1
  856. package/lib/types/Boolean.d.ts +0 -29
  857. package/lib/types/Boolean.js +0 -28
  858. package/lib/types/Boolean.js.map +0 -1
  859. package/lib/types/Generate.d.ts +0 -32
  860. package/lib/types/Generate.js +0 -3
  861. package/lib/types/Generate.js.map +0 -1
  862. package/lib/types/Null.d.ts +0 -8
  863. package/lib/types/Null.js +0 -10
  864. package/lib/types/Null.js.map +0 -1
  865. package/lib/types/Number.d.ts +0 -36
  866. package/lib/types/Number.js +0 -46
  867. package/lib/types/Number.js.map +0 -1
  868. package/lib/types/Object.d.ts +0 -329
  869. package/lib/types/Object.js +0 -35
  870. package/lib/types/Object.js.map +0 -1
  871. package/lib/types/Record.d.ts +0 -16
  872. package/lib/types/Record.js +0 -17
  873. package/lib/types/Record.js.map +0 -1
  874. package/lib/types/String.d.ts +0 -36
  875. package/lib/types/String.js +0 -47
  876. package/lib/types/String.js.map +0 -1
  877. package/lib/types/Symbol.d.ts +0 -8
  878. package/lib/types/Symbol.js +0 -13
  879. package/lib/types/Symbol.js.map +0 -1
  880. package/lib/types/Tuple.d.ts +0 -35
  881. package/lib/types/Tuple.js +0 -39
  882. package/lib/types/Tuple.js.map +0 -1
  883. package/lib/types/Undefined.d.ts +0 -6
  884. package/lib/types/Undefined.js +0 -5
  885. package/lib/types/Undefined.js.map +0 -1
  886. package/lib/types/Union.d.ts +0 -20
  887. package/lib/types/Union.js +0 -48
  888. package/lib/types/Union.js.map +0 -1
  889. package/lib/types/Unknown.d.ts +0 -6
  890. package/lib/types/Unknown.js +0 -5
  891. package/lib/types/Unknown.js.map +0 -1
  892. package/lib/types/analyze.d.ts +0 -13
  893. package/lib/types/analyze.js +0 -158
  894. package/lib/types/analyze.js.map +0 -1
  895. package/lib/types/check.d.ts +0 -14
  896. package/lib/types/check.js +0 -25
  897. package/lib/types/check.js.map +0 -1
  898. package/lib/types/conform.d.ts +0 -15
  899. package/lib/types/conform.js +0 -26
  900. package/lib/types/conform.js.map +0 -1
  901. package/lib/types/getPlainAnalysisReport.d.ts +0 -2
  902. package/lib/types/getPlainAnalysisReport.js +0 -116
  903. package/lib/types/getPlainAnalysisReport.js.map +0 -1
  904. package/lib/types/index.d.ts +0 -26
  905. package/lib/types/index.js +0 -45
  906. package/lib/types/index.js.map +0 -1
  907. package/lib/types/optional.d.ts +0 -344
  908. package/lib/types/optional.js +0 -33
  909. package/lib/types/optional.js.map +0 -1
  910. package/lib/types/required.d.ts +0 -696
  911. package/lib/types/required.js +0 -33
  912. package/lib/types/required.js.map +0 -1
  913. package/lib/types/satisfy.d.ts +0 -15
  914. package/lib/types/satisfy.js +0 -26
  915. package/lib/types/satisfy.js.map +0 -1
  916. package/lib/types/types.d.ts +0 -9
  917. package/lib/types/types.js +0 -3
  918. package/lib/types/types.js.map +0 -1
  919. package/lib/utils/Widen.js.map +0 -1
  920. package/lib/utils/as.js.map +0 -1
  921. package/lib/utils/index.js.map +0 -1
  922. package/libm/JSONTypes.js.map +0 -1
  923. package/libm/PrimitiveTypes.js.map +0 -1
  924. package/libm/UnionKeys.js.map +0 -1
  925. package/libm/array/CommonPropKeys.js.map +0 -1
  926. package/libm/array/Concat.js.map +0 -1
  927. package/libm/array/CreateTuple.js.map +0 -1
  928. package/libm/array/DropFirst.js.map +0 -1
  929. package/libm/array/DropLast.js.map +0 -1
  930. package/libm/array/Filter.js.map +0 -1
  931. package/libm/array/FindFirst.js.map +0 -1
  932. package/libm/array/FindLast.js.map +0 -1
  933. package/libm/array/Head.js.map +0 -1
  934. package/libm/array/IntersectOfProps.js.map +0 -1
  935. package/libm/array/IsArray.js.map +0 -1
  936. package/libm/array/PadLeft.js.map +0 -1
  937. package/libm/array/Reverse.js.map +0 -1
  938. package/libm/array/Some.js.map +0 -1
  939. package/libm/array/Tail.js.map +0 -1
  940. package/libm/array/UnionOfProps.js.map +0 -1
  941. package/libm/array/UnionOfValues.js.map +0 -1
  942. package/libm/array/index.js.map +0 -1
  943. package/libm/array/literalArray.js.map +0 -1
  944. package/libm/array/reduceWhile.js.map +0 -1
  945. package/libm/assertion/assertType.js.map +0 -1
  946. package/libm/assertion/index.js.map +0 -1
  947. package/libm/class/AnyConstructor.js.map +0 -1
  948. package/libm/class/index.js.map +0 -1
  949. package/libm/class/isConstructor.js +0 -14
  950. package/libm/class/isConstructor.js.map +0 -1
  951. package/libm/function/AnyFunction.js.map +0 -1
  952. package/libm/function/index.js.map +0 -1
  953. package/libm/functional/ChainFn.js.map +0 -1
  954. package/libm/functional/index.js.map +0 -1
  955. package/libm/index.js +0 -20
  956. package/libm/index.js.map +0 -1
  957. package/libm/math/Abs.js.map +0 -1
  958. package/libm/math/Add.js.map +0 -1
  959. package/libm/math/Digit.js.map +0 -1
  960. package/libm/math/GreaterThan.js.map +0 -1
  961. package/libm/math/IsPositive.js.map +0 -1
  962. package/libm/math/IsWhole.js.map +0 -1
  963. package/libm/math/Max.js.map +0 -1
  964. package/libm/math/Subtract.js.map +0 -1
  965. package/libm/math/index.js.map +0 -1
  966. package/libm/nominal-types/Brand.js.map +0 -1
  967. package/libm/nominal-types/Flavor.js.map +0 -1
  968. package/libm/nominal-types/index.js.map +0 -1
  969. package/libm/nominal-types/nominalMatch.js.map +0 -1
  970. package/libm/nominal-types/types.js.map +0 -1
  971. package/libm/object/ANotB.js.map +0 -1
  972. package/libm/object/AnyRecord.js.map +0 -1
  973. package/libm/object/ExcludePropType.js.map +0 -1
  974. package/libm/object/IsDisjoint.js.map +0 -1
  975. package/libm/object/IsRecord.js.map +0 -1
  976. package/libm/object/KeyTypes.js.map +0 -1
  977. package/libm/object/KeyofOptional.js.map +0 -1
  978. package/libm/object/KeysWithDiffType.js.map +0 -1
  979. package/libm/object/KnownKeys.js.map +0 -1
  980. package/libm/object/OptionalKeys.js.map +0 -1
  981. package/libm/object/Partial.js.map +0 -1
  982. package/libm/object/RecursiveIntersect.js.map +0 -1
  983. package/libm/object/RecursivePartial.js.map +0 -1
  984. package/libm/object/RecursiveRequired.js.map +0 -1
  985. package/libm/object/Required.js.map +0 -1
  986. package/libm/object/RequiredKeys.js.map +0 -1
  987. package/libm/object/SpreadRecord.js.map +0 -1
  988. package/libm/object/ValueOf.js.map +0 -1
  989. package/libm/object/everyKey.js.map +0 -1
  990. package/libm/object/facade.js.map +0 -1
  991. package/libm/object/filterKey.js.map +0 -1
  992. package/libm/object/findKey.js.map +0 -1
  993. package/libm/object/forEachKey.js.map +0 -1
  994. package/libm/object/getField.js.map +0 -1
  995. package/libm/object/hasKey.js.map +0 -1
  996. package/libm/object/hasProperty.js.map +0 -1
  997. package/libm/object/index.js.map +0 -1
  998. package/libm/object/mapKey.js.map +0 -1
  999. package/libm/object/mapProperties.js.map +0 -1
  1000. package/libm/object/omit.js.map +0 -1
  1001. package/libm/object/pick.js.map +0 -1
  1002. package/libm/object/reduceKey.js.map +0 -1
  1003. package/libm/object/replaceProperty.js.map +0 -1
  1004. package/libm/object/someKey.js.map +0 -1
  1005. package/libm/object/typeOverrideIncompatible.js.map +0 -1
  1006. package/libm/predicates/CanAssign.js.map +0 -1
  1007. package/libm/predicates/Equal.js.map +0 -1
  1008. package/libm/predicates/Extends.js.map +0 -1
  1009. package/libm/predicates/If.js.map +0 -1
  1010. package/libm/predicates/index.js.map +0 -1
  1011. package/libm/predicates/isEmptyObject.js.map +0 -1
  1012. package/libm/predicates/isType.js.map +0 -1
  1013. package/libm/predicates/logical.js.map +0 -1
  1014. package/libm/promise/PromiseValue.js.map +0 -1
  1015. package/libm/promise/PromiseValueMerge.js.map +0 -1
  1016. package/libm/promise/index.js.map +0 -1
  1017. package/libm/promise/isPromise.js.map +0 -1
  1018. package/libm/promise/mapSeries.js.map +0 -1
  1019. package/libm/types/AllType.js +0 -2
  1020. package/libm/types/AllType.js.map +0 -1
  1021. package/libm/types/Any.js +0 -2
  1022. package/libm/types/Any.js.map +0 -1
  1023. package/libm/types/Array.js +0 -27
  1024. package/libm/types/Array.js.map +0 -1
  1025. package/libm/types/Boolean.js +0 -25
  1026. package/libm/types/Boolean.js.map +0 -1
  1027. package/libm/types/Generate.js +0 -2
  1028. package/libm/types/Generate.js.map +0 -1
  1029. package/libm/types/Null.js +0 -7
  1030. package/libm/types/Null.js.map +0 -1
  1031. package/libm/types/Number.js +0 -30
  1032. package/libm/types/Number.js.map +0 -1
  1033. package/libm/types/Object.js +0 -31
  1034. package/libm/types/Object.js.map +0 -1
  1035. package/libm/types/Record.js +0 -14
  1036. package/libm/types/Record.js.map +0 -1
  1037. package/libm/types/String.js +0 -31
  1038. package/libm/types/String.js.map +0 -1
  1039. package/libm/types/Symbol.js +0 -10
  1040. package/libm/types/Symbol.js.map +0 -1
  1041. package/libm/types/Tuple.js +0 -23
  1042. package/libm/types/Tuple.js.map +0 -1
  1043. package/libm/types/Undefined.js +0 -2
  1044. package/libm/types/Undefined.js.map +0 -1
  1045. package/libm/types/Union.js +0 -32
  1046. package/libm/types/Union.js.map +0 -1
  1047. package/libm/types/Unknown.js +0 -2
  1048. package/libm/types/Unknown.js.map +0 -1
  1049. package/libm/types/analyze.js +0 -142
  1050. package/libm/types/analyze.js.map +0 -1
  1051. package/libm/types/check.js +0 -21
  1052. package/libm/types/check.js.map +0 -1
  1053. package/libm/types/conform.js +0 -22
  1054. package/libm/types/conform.js.map +0 -1
  1055. package/libm/types/getPlainAnalysisReport.js +0 -106
  1056. package/libm/types/getPlainAnalysisReport.js.map +0 -1
  1057. package/libm/types/index.js +0 -28
  1058. package/libm/types/index.js.map +0 -1
  1059. package/libm/types/optional.js +0 -30
  1060. package/libm/types/optional.js.map +0 -1
  1061. package/libm/types/required.js +0 -30
  1062. package/libm/types/required.js.map +0 -1
  1063. package/libm/types/satisfy.js +0 -22
  1064. package/libm/types/satisfy.js.map +0 -1
  1065. package/libm/types/types.js +0 -2
  1066. package/libm/types/types.js.map +0 -1
  1067. package/libm/utils/Widen.js.map +0 -1
  1068. package/libm/utils/as.js.map +0 -1
  1069. package/libm/utils/index.js.map +0 -1
  1070. package/src/JSONTypes.spec.ts +0 -43
  1071. package/src/JSONTypes.ts +0 -18
  1072. package/src/PrimitiveTypes.ts +0 -2
  1073. package/src/UnionToIntersection.ts +0 -7
  1074. package/src/array/CommonPropKeys.spec.ts +0 -20
  1075. package/src/array/CommonPropKeys.ts +0 -18
  1076. package/src/array/Concat.spec.ts +0 -21
  1077. package/src/array/Concat.ts +0 -1
  1078. package/src/array/CreateTuple.spec.ts +0 -21
  1079. package/src/array/CreateTuple.ts +0 -7
  1080. package/src/array/DropFirst.spec.ts +0 -21
  1081. package/src/array/DropFirst.ts +0 -9
  1082. package/src/array/DropLast.spec.ts +0 -21
  1083. package/src/array/DropLast.ts +0 -9
  1084. package/src/array/Filter.spec.ts +0 -21
  1085. package/src/array/Filter.ts +0 -12
  1086. package/src/array/FindFirst.spec.ts +0 -27
  1087. package/src/array/FindFirst.ts +0 -13
  1088. package/src/array/FindLast.spec.ts +0 -27
  1089. package/src/array/FindLast.ts +0 -8
  1090. package/src/array/Head.spec.ts +0 -21
  1091. package/src/array/Head.ts +0 -1
  1092. package/src/array/IntersectOfProps.spec.ts +0 -14
  1093. package/src/array/IntersectOfProps.ts +0 -20
  1094. package/src/array/IsArray.ts +0 -1
  1095. package/src/array/PadLeft.spec.ts +0 -26
  1096. package/src/array/PadLeft.ts +0 -16
  1097. package/src/array/Reverse.spec.ts +0 -17
  1098. package/src/array/Reverse.ts +0 -10
  1099. package/src/array/Some.spec.ts +0 -79
  1100. package/src/array/Some.ts +0 -24
  1101. package/src/array/Tail.spec.ts +0 -32
  1102. package/src/array/Tail.ts +0 -7
  1103. package/src/array/UnionOfProps.spec.ts +0 -14
  1104. package/src/array/UnionOfProps.ts +0 -18
  1105. package/src/array/UnionOfValues.spec.ts +0 -11
  1106. package/src/array/UnionOfValues.ts +0 -10
  1107. package/src/array/index.ts +0 -19
  1108. package/src/assertion/assertType.spec.ts +0 -507
  1109. package/src/assertion/assertType.ts +0 -105
  1110. package/src/assertion/index.ts +0 -1
  1111. package/src/class/AnyConstructor.spec.ts +0 -13
  1112. package/src/class/isConstructor.spec.ts +0 -35
  1113. package/src/class/isConstructor.ts +0 -15
  1114. package/src/function/AnyFunction.spec.ts +0 -21
  1115. package/src/functional/ChainFn.spec.ts +0 -7
  1116. package/src/functional/ChainFn.ts +0 -6
  1117. package/src/functional/Maybe.spec.ts +0 -43
  1118. package/src/functional/Maybe.ts +0 -19
  1119. package/src/functional/index.ts +0 -2
  1120. package/src/index.ts +0 -19
  1121. package/src/math/Abs.spec.ts +0 -14
  1122. package/src/math/Abs.ts +0 -4
  1123. package/src/math/Add.spec.ts +0 -82
  1124. package/src/math/Add.ts +0 -49
  1125. package/src/math/Digit.spec.ts +0 -185
  1126. package/src/math/Digit.ts +0 -115
  1127. package/src/math/GreaterThan.spec.ts +0 -40
  1128. package/src/math/GreaterThan.ts +0 -36
  1129. package/src/math/IsPositive.ts +0 -9
  1130. package/src/math/IsWhole.spec.ts +0 -19
  1131. package/src/math/IsWhole.ts +0 -9
  1132. package/src/math/Max.spec.ts +0 -35
  1133. package/src/math/Max.ts +0 -31
  1134. package/src/math/README.md +0 -7
  1135. package/src/math/Subtract.spec.ts +0 -40
  1136. package/src/math/Subtract.ts +0 -40
  1137. package/src/math/index.ts +0 -7
  1138. package/src/nominal-types/Brand.spec.ts +0 -43
  1139. package/src/nominal-types/Brand.ts +0 -32
  1140. package/src/nominal-types/Flavor.spec.ts +0 -51
  1141. package/src/nominal-types/Flavor.ts +0 -32
  1142. package/src/object/ANotB.ts +0 -21
  1143. package/src/object/ExcludePropType.spec.ts +0 -13
  1144. package/src/object/IsDisjoint.spec.ts +0 -25
  1145. package/src/object/IsDisjoint.ts +0 -12
  1146. package/src/object/IsRecord.spec.ts +0 -22
  1147. package/src/object/IsRecord.ts +0 -4
  1148. package/src/object/KeyofOptional.spec.ts +0 -8
  1149. package/src/object/KeysWithDiffType.spec.ts +0 -21
  1150. package/src/object/KnownKeys.spec.ts +0 -39
  1151. package/src/object/KnownKeys.ts +0 -16
  1152. package/src/object/Partial.spec.ts +0 -49
  1153. package/src/object/RecursiveIntersect.spec.ts +0 -39
  1154. package/src/object/Required.spec.ts +0 -29
  1155. package/src/object/SpreadRecord.spec.ts +0 -14
  1156. package/src/object/SpreadRecord.ts +0 -6
  1157. package/src/object/ValueOf.spec.ts +0 -36
  1158. package/src/object/facade.ts +0 -39
  1159. package/src/object/getField.spec.ts +0 -21
  1160. package/src/object/getField.ts +0 -21
  1161. package/src/object/hasKey.ts +0 -7
  1162. package/src/object/hasProperty.spec.ts +0 -15
  1163. package/src/object/index.ts +0 -35
  1164. package/src/object/mapProperties.spec.ts +0 -27
  1165. package/src/object/omit.spec.ts +0 -104
  1166. package/src/object/omit.ts +0 -36
  1167. package/src/object/pick.spec.ts +0 -66
  1168. package/src/object/pick.ts +0 -35
  1169. package/src/object/typeOverrideIncompatible.spec.ts +0 -24
  1170. package/src/object/typeOverrideIncompatible.ts +0 -10
  1171. package/src/predicates/CanAssign.spec.ts +0 -57
  1172. package/src/predicates/Equal.spec.ts +0 -71
  1173. package/src/predicates/Equal.ts +0 -14
  1174. package/src/predicates/Extends.ts +0 -4
  1175. package/src/predicates/If.spec.ts +0 -14
  1176. package/src/predicates/If.ts +0 -5
  1177. package/src/predicates/index.spec.ts +0 -73
  1178. package/src/predicates/index.ts +0 -17
  1179. package/src/predicates/isEmptyObject.spec.ts +0 -15
  1180. package/src/predicates/isEmptyObject.ts +0 -2
  1181. package/src/predicates/isType.spec.ts +0 -106
  1182. package/src/predicates/isType.ts +0 -30
  1183. package/src/predicates/logical.spec.ts +0 -59
  1184. package/src/predicates/logical.ts +0 -4
  1185. package/src/promise/PromiseValue.spec.ts +0 -6
  1186. package/src/promise/isPromise.ts +0 -4
  1187. package/src/promise/mapSeries.ts +0 -5
  1188. package/src/type-checker/buildTypes.spec.ts +0 -28
  1189. package/src/type-checker/typeChecker.spec.ts +0 -13
  1190. package/src/types/Generate.ts +0 -48
  1191. package/src/types/Number.ts +0 -56
  1192. package/src/types/Object.ts +0 -53
  1193. package/src/types/String.ts +0 -56
  1194. package/src/types/Symbol.ts +0 -19
  1195. package/src/types/Tuple.ts +0 -50
  1196. package/src/types/check.spec.ts +0 -12
  1197. package/src/types/conform.spec.ts +0 -7
  1198. package/src/types/getPlainAnalysisReport.ts +0 -115
  1199. package/src/types/index.ts +0 -28
  1200. package/src/types/optional.ts +0 -30
  1201. package/src/types/required.ts +0 -30
  1202. package/src/types/satisfy.accept.ts +0 -38
  1203. package/src/types/satisfy.spec.ts +0 -599
  1204. package/src/utils/as.spec.ts +0 -24
  1205. package/src/utils/as.ts +0 -7
  1206. package/src/utils/index.ts +0 -2
@@ -1,36 +0,0 @@
1
- import { isType, ValueOf } from '..'
2
-
3
- test('work with primitive type', () => {
4
- type A = ValueOf<string>
5
- isType.equal<false, never, A>()
6
- })
7
-
8
- test('If all values has the same type, the result is of that type', () => {
9
- const HTTP_METHOD = {
10
- GET: 'GET',
11
- POST: 'POST',
12
- DELETE: 'DELETE',
13
- PUT: 'PUT',
14
- }
15
- type A = ValueOf<typeof HTTP_METHOD>
16
- isType.equal<true, string, A>()
17
- })
18
-
19
- test('If value has multiple types, the result is the union of those types', () => {
20
- const logLevel = {
21
- none: '0',
22
- error: '1',
23
- warn: 2,
24
- info: 3,
25
- debug: 4,
26
- }
27
- type A = ValueOf<typeof logLevel>
28
- isType.equal<true, string | number, A>()
29
- })
30
-
31
- test('literal types are preserved', () => {
32
- type L = { a: 1, b: 2, c: 'a', d: 'b' }
33
- type A = ValueOf<L>
34
- isType.equal<true, 1 | 2 | 'a' | 'b', A>()
35
- })
36
-
@@ -1,39 +0,0 @@
1
- import { AnyRecord } from './AnyRecord'
2
-
3
- /**
4
- * creates a facade of the subject.
5
- */
6
- export function facade<T extends AnyRecord, P1 extends keyof T>(subject: T, prop1: P1): Pick<T, P1>
7
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
8
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
9
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
10
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
11
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
12
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
13
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
14
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
15
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
16
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
17
- export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof T, P12 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
18
- export function facade<T extends AnyRecord>(subject: T, ...props: (keyof T)[]) {
19
- return props.reduce((p, k) => {
20
- const prop = subject[k]
21
- if (typeof prop === 'function') {
22
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
23
- p[k] = prop.bind(subject)
24
- }
25
- else {
26
- Object.defineProperty(p, k, {
27
- get() {
28
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
29
- return subject[k]
30
- },
31
- set(value: any) {
32
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment
33
- return subject[k] = value
34
- },
35
- })
36
- }
37
- return p
38
- }, {} as T)
39
- }
@@ -1,21 +0,0 @@
1
- import { getField } from '..'
2
-
3
- test('support undefined', () => {
4
- const sub: { a: number } | undefined = { a: 1 }
5
- expect(getField(sub, 'a')).toBe(1)
6
- })
7
-
8
- test('support null', () => {
9
- const sub: { a: number } | null = { a: 1 }
10
- expect(getField(sub, 'a')).toBe(1)
11
- })
12
-
13
- test('can specify default value', () => {
14
- const sub: { a?: number } = { a: undefined }
15
- expect(getField(sub, 'a', 2)).toBe(2)
16
- })
17
-
18
- test('get from union keys', () => {
19
- const sub: { a: number, b: string } | { a: number, c: string } = { a: 1, b: 'b' }
20
- expect(getField(sub, 'b')).toBe('b')
21
- })
@@ -1,21 +0,0 @@
1
- import { UnionKeys } from '../UnionKeys'
2
-
3
- export function getField<
4
- T,
5
- TX extends Exclude<T, undefined | null>,
6
- K extends UnionKeys<TX>,
7
- >(subject: T, key: K): TX[K]
8
- export function getField<
9
- T,
10
- TX extends Exclude<T, undefined | null>,
11
- K extends UnionKeys<TX>,
12
- DV extends Exclude<TX[K], undefined>
13
- >(subject: T, key: K, defaultValue: DV): DV
14
- export function getField<
15
- T,
16
- TX extends Exclude<T, undefined | null>,
17
- K extends UnionKeys<TX>,
18
- DV extends Exclude<TX[K], undefined>
19
- >(subject: T, key: K, defaultValue?: DV) {
20
- return subject && (subject as { [k in K]: TX[K] | DV })[key] || defaultValue
21
- }
@@ -1,7 +0,0 @@
1
- import { AnyRecord } from './AnyRecord'
2
-
3
- export type HasKey<T, K, Then = true, Else = false> = K extends keyof T ? Then : Else
4
-
5
- export function hasKey<T extends AnyRecord, K extends string>(subject: T, ...keys: K[]): HasKey<T, K> {
6
- return !keys.some(key => !subject[key]) as unknown as HasKey<T, K>
7
- }
@@ -1,15 +0,0 @@
1
- import { hasProperty } from '..'
2
-
3
- test('hasProperty', () => {
4
- type X = { name: string } & ({ a: 1 } | { b: 2 })
5
-
6
- const x: X = { name: 'n', a: 1 }
7
-
8
- if (hasProperty(x, 'a'))
9
- expect(x.a).toBe(1)
10
-
11
- const y: X = { name: 'n', b: 2 }
12
-
13
- if (hasProperty(y, 'b'))
14
- expect(y.b).toBe(2)
15
- })
@@ -1,35 +0,0 @@
1
- export * from '../object/IsDisjoint'
2
- export * from './ANotB'
3
- export * from './AnyRecord'
4
- export * from './everyKey'
5
- export * from './ExcludePropType'
6
- export * from './facade'
7
- export * from './filterKey'
8
- export * from './findKey'
9
- export * from './forEachKey'
10
- export * from './getField'
11
- export * from './hasKey'
12
- export * from './hasProperty'
13
- export * from './IsRecord'
14
- export * from './KeyofOptional'
15
- export * from './KeysWithDiffType'
16
- export * from './KeyTypes'
17
- export * from './KnownKeys'
18
- export * from './mapKey'
19
- export * from './mapProperties'
20
- export * from './omit'
21
- export * from './OptionalKeys'
22
- export * from './Partial'
23
- export * from './pick'
24
- export * from './RecursiveIntersect'
25
- export * from './RecursivePartial'
26
- export * from './RecursiveRequired'
27
- export * from './reduceKey'
28
- export * from './replaceProperty'
29
- export * from './Required'
30
- export * from './RequiredKeys'
31
- export * from './someKey'
32
- export * from './SpreadRecord'
33
- export * from './typeOverrideIncompatible'
34
- export * from './ValueOf'
35
-
@@ -1,27 +0,0 @@
1
- import { mapProperties } from '..'
2
-
3
- test('basic usage', () => {
4
- const actual = mapProperties({ a: 1, b: 2 }, (v, k) => k + String((v * 2)))
5
- expect(actual).toEqual({ a: 'a2', b: 'b4' })
6
- })
7
-
8
- test('mixed type', () => {
9
- const actual = mapProperties({ a: 1, b: 'b' }, (v, k) => k + String(v))
10
- expect(actual).toEqual({ a: 'a1', b: 'bb' })
11
- })
12
-
13
- test('extract value from prop', () => {
14
- const actual = mapProperties({ a: { foo: 'x' }, b: { foo: 'y' } }, (v) => v.foo)
15
- expect(actual).toEqual({ a: 'x', b: 'y' })
16
- })
17
-
18
- test('parent props are not mapped', () => {
19
- class Boo {
20
- shared(v: number) { return v * 2 }
21
- own = (v: number) => v * 3
22
- }
23
- const boo = new Boo()
24
-
25
- const actual = mapProperties(boo, (v) => v(2))
26
- expect(actual).toEqual({ own: 6 })
27
- })
@@ -1,104 +0,0 @@
1
- import { assertType, Equal, Except, Omit, omit } from '..'
2
-
3
- describe('Omit', () => {
4
- test('work with primitive types', () => {
5
- type N = Omit<number, 'toFixed'>
6
- assertType.isFunction((() => ({})) as N['toExponential'])
7
- })
8
-
9
- test('Remove properties', () => {
10
- type Foo = {
11
- a: number,
12
- b: string,
13
- c: boolean,
14
- }
15
-
16
- type Actual = Omit<Foo, 'c'>
17
- const a: Actual = { a: 0, b: '' }
18
- assertType.isNumber(a.a)
19
- assertType.isString(a.b)
20
-
21
- type Revert = Omit<Foo, keyof Actual>
22
- const r: Revert = { c: false }
23
- assertType.isBoolean(r.c)
24
- })
25
-
26
- test('distributive omit', () => {
27
- type Action = InvokeAction | ReturnAction
28
-
29
- type InvokeAction = {
30
- type: 'invoke',
31
- id: string,
32
- payload: string[],
33
- }
34
-
35
- type ReturnAction = {
36
- type: 'return',
37
- id: string,
38
- payload: string,
39
- }
40
-
41
- const x: Omit<Action, 'id'> = { type: 'return', payload: '' }
42
-
43
- const actions: Action[] = []
44
-
45
- actions.push({ ...x, id: '1' })
46
- })
47
-
48
- test('distributive Omit with disjoined keys', () => {
49
- type Union = {
50
- type: 'A',
51
- foo: string,
52
- } | {
53
- type: 'B',
54
- foo: string,
55
- bar: string,
56
- }
57
- // eslint-disable-next-line @typescript-eslint/ban-types
58
- type Id<T> = {} & { [P in keyof T]: T[P] }
59
- let x: Id<Omit<Union, 'bar'>> = { type: 'A', foo: 'foo' }
60
- x = { type: 'B', foo: 'bar' }
61
- expect(x.foo).toBe('bar')
62
- })
63
-
64
- test('intersection types with generic', () => {
65
- type Foo = { a: string, b: string }
66
- function foo<T>(input: Omit<Foo & T, 'a'>): void {
67
- assertType.isString(input.b)
68
- }
69
- foo({ b: '1' })
70
- })
71
-
72
- test('omit properties from object', () => {
73
- const actual = omit({ a: 1, b: 2 }, 'a')
74
-
75
- expect(actual).toEqual({ b: 2 })
76
- })
77
-
78
- test('omit all', () => {
79
- const actual = omit({ a: 1 }, 'a')
80
-
81
- expect(actual).toEqual({})
82
- assertType.isTrue(true as Equal<keyof typeof actual, never>)
83
- })
84
- })
85
-
86
- describe('Except()', () => {
87
- test('Remove properties', () => {
88
- type Foo = {
89
- a: number,
90
- b: string,
91
- c: boolean,
92
- }
93
-
94
- type Actual = Except<Foo, 'c'>
95
- const a: Actual = { a: 0, b: '' }
96
- assertType.isNumber(a.a)
97
- assertType.isString(a.b)
98
-
99
- // tslint:disable-next-line: deprecation
100
- type Revert = Except<Foo, keyof Actual>
101
- const r: Revert = { c: false }
102
- assertType.isBoolean(r.c)
103
- })
104
- })
@@ -1,36 +0,0 @@
1
- import { AnyRecord, reduceByKey } from '../object'
2
- import { UnionKeys } from '../UnionKeys'
3
- import { Pick } from './pick'
4
-
5
- // by Titian Cernicova-Dragomir
6
- // https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347
7
- // type-zoo
8
- export type Omit<T, K extends UnionKeys<T>> = T extends T
9
- ? keyof T extends K
10
- // eslint-disable-next-line @typescript-eslint/ban-types
11
- ? {}
12
- : Pick<T, Exclude<keyof T, K>> : never
13
-
14
- /**
15
- * @deprecated replaced by `Omit`
16
- */
17
- export type Except<T, K extends keyof T> = Omit<T, K>
18
-
19
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Omit<T, P1>
20
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Omit<T, P1 | P2>
21
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Omit<T, P1 | P2 | P3>
22
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Omit<T, P1 | P2 | P3 | P4>
23
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Omit<T, P1 | P2 | P3 | P4 | P5>
24
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Omit<T, P1 | P2 | P3 | P4 | P5 | P6>
25
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
26
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
27
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
28
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
29
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
30
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
31
- export function omit<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
32
- return reduceByKey(subject, (p, k) => {
33
- if (props.indexOf(k) === -1) p[k] = subject[k]
34
- return p
35
- }, {} as AnyRecord)
36
- }
@@ -1,66 +0,0 @@
1
- import { assertType, canAssign, Equal, Pick, pick } from '..'
2
-
3
- test('pick properties from object', () => {
4
- const actual = pick({ a: 1, b: 2 }, 'a')
5
-
6
- expect(actual).toEqual({ a: 1 })
7
- })
8
-
9
- test('distributive pick', () => {
10
- type Action = InvokeAction | ReturnAction
11
-
12
- type InvokeAction = {
13
- type: 'invoke',
14
- id: string,
15
- payload: string[],
16
- }
17
-
18
- type ReturnAction = {
19
- type: 'return',
20
- id: string,
21
- payload: string,
22
- }
23
-
24
- const x: Pick<Action, 'type' | 'payload'> = { type: 'invoke', payload: [] }
25
-
26
- const actions: Action[] = []
27
-
28
- actions.push({ ...x, id: '1' })
29
- })
30
-
31
- test('distributive pick with disjoined keys', () => {
32
- type Union = {
33
- type: 'A',
34
- foo: string,
35
- } | {
36
- type: 'B',
37
- foo: string,
38
- bar: string,
39
- }
40
- type Id<T> = { [P in keyof T]: T[P] }
41
- let x: Id<Pick<Union, 'type' | 'bar'>> = { type: 'A' }
42
- x = { type: 'B', bar: 'bar' }
43
-
44
- expect(x.bar).toBe('bar')
45
- })
46
-
47
- test('intersection types with generic', () => {
48
- type Foo = { a: string, b: string }
49
- function foo<T>(input: Pick<Foo & T, 'a'>): void {
50
- assertType.isString(input.a)
51
- }
52
- foo({ a: '1' })
53
- })
54
-
55
- test('optional property remains optional', () => {
56
- type Foo = { a?: string, b: string }
57
- type A = Pick<Foo, 'a'>
58
- assertType.isTrue(canAssign<A>()({}))
59
- })
60
-
61
- test('pick never gets empty object', () => {
62
- type A = { a: number }
63
- type S = Pick<A, never>
64
- type K = keyof S
65
- assertType.isTrue(true as Equal<K, never>)
66
- })
@@ -1,35 +0,0 @@
1
- import { UnionKeys } from '../UnionKeys'
2
- import { AnyRecord } from './AnyRecord'
3
- import { reduceByKey } from './reduceKey'
4
-
5
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Pick<T, P1>
6
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
7
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
8
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
9
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
10
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
11
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
12
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
13
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
14
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
15
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
16
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
17
- export function pick<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
18
- return reduceByKey(subject, (p, k) => {
19
- if (props.indexOf(k) >= 0) p[k] = subject[k]
20
- return p
21
- }, {} as T)
22
- }
23
-
24
- /**
25
- * Pick properties `K` from `T`.
26
- * Works with union.
27
- *
28
- * Original type by Titian Cernicova-Dragomir
29
- * @see <https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347>
30
- */
31
- export type Pick<T, K extends UnionKeys<T>> = T extends unknown ? Pick._<T, keyof T & K> : never
32
-
33
- export namespace Pick {
34
- export type _<T, K extends keyof T> = { [P in K]: T[P] }
35
- }
@@ -1,24 +0,0 @@
1
- import { typeOverrideIncompatible } from '..'
2
-
3
- test('same type override has no property', () => {
4
- type A = { a: 1 }
5
- const transform = typeOverrideIncompatible<A>()
6
-
7
- // TODO: find a way to assert `override` has no property
8
- transform({ a: 1 }, {})
9
- })
10
-
11
- test('disjoint type override is A', () => {
12
- type A = { a: 1 }
13
- const transform = typeOverrideIncompatible<A>()
14
-
15
- transform({ b: 2 }, { a: 1 })
16
- })
17
-
18
- test('intersect type override is ANotB', () => {
19
- const a = { a: 1, b: 2 } as const
20
- const b = { b: 3, c: 3 } as const
21
- const transform = typeOverrideIncompatible<typeof a>()
22
-
23
- transform(b, { a: 1, b: 2 })
24
- })
@@ -1,10 +0,0 @@
1
- import { ANotB, AnyRecord } from '.'
2
-
3
- export function typeOverrideIncompatible<A extends AnyRecord>() {
4
- return function <B extends AnyRecord>(source: B, override: ANotB<A, B>): A {
5
- return {
6
- ...source,
7
- ...override,
8
- }
9
- }
10
- }
@@ -1,57 +0,0 @@
1
- import { assertType, CanAssign, canAssign } from '..'
2
-
3
- describe('CanAssign<A, B>', () => {
4
- test('literal type to widen', () => {
5
- assertType.isTrue(true as CanAssign<1, number>)
6
- assertType.isTrue(true as CanAssign<1, 1>)
7
- assertType.isTrue(true as CanAssign<number, number>)
8
- assertType.isTrue(true as CanAssign<'a', string>)
9
- assertType.isTrue(true as CanAssign<'a', 'a'>)
10
- assertType.isTrue(true as CanAssign<string, string>)
11
- assertType.isTrue(true as CanAssign<false, boolean>)
12
- assertType.isTrue(true as CanAssign<true, boolean>)
13
- assertType.isTrue(true as CanAssign<boolean, boolean>)
14
- })
15
- test('base type to literal type fails', () => {
16
- assertType.isFalse(false as CanAssign<number, 1>)
17
- assertType.isFalse(false as CanAssign<string, 'a'>)
18
- assertType.isFalse(false as CanAssign<true, false>)
19
- assertType.isFalse(false as CanAssign<false, true>)
20
- assertType.isFalse(false as CanAssign<boolean, false>)
21
- assertType.isFalse(false as CanAssign<boolean, true>)
22
- })
23
- test('super set to sub set', () => {
24
- assertType.isTrue(true as CanAssign<{ a: string, b: number }, { a: string }>)
25
- })
26
- test('sub set to super set fail', () => {
27
- assertType.isFalse(false as CanAssign<{ a: string }, { a: string, b: number }>)
28
- })
29
- })
30
-
31
- describe('canAssign()', () => {
32
- describe('without subject', () => {
33
- test('returns a function that check type at compile time', () => {
34
- assertType.isTrue(canAssign<{ a: string }>()({ a: 'a' }))
35
- assertType.isTrue(canAssign<{ a: string }>()({ a: 'a', b: 'b' }))
36
-
37
- // fails at compile time
38
- // canAssign<{ a: string }>()({ a: 1 })
39
- })
40
- test('work with falsy value such as empty string', () => {
41
- const s = ''
42
- assertType.isTrue(canAssign<''>()(s))
43
- })
44
- test('work with undefined', () => {
45
- assertType.isTrue(canAssign<number | undefined>()(undefined))
46
- })
47
- test('canAssign false', () => {
48
- const t = canAssign<{ a: string }>(false)
49
- assertType.isTrue(t(undefined))
50
- assertType.isTrue(t({ a: 1 }))
51
-
52
- // these fails
53
- // t({ a: '' })
54
- // t({ a: '', b: '' })
55
- })
56
- })
57
- })
@@ -1,71 +0,0 @@
1
- import { assertType, Equal, NotEqual } from '..'
2
-
3
- describe('TypeEquals', () => {
4
- test('match', () => {
5
- assertType.isTrue(true as Equal<false, false>)
6
- })
7
-
8
- test('not match', () => {
9
- assertType.isFalse(false as Equal<string, number>)
10
- })
11
-
12
- test('literal is not equal to widen type', () => {
13
- assertType.isFalse(false as Equal<1, number>)
14
- assertType.isFalse(false as Equal<number, 1>)
15
- })
16
-
17
- test('super set and sub set are not equal', () => {
18
- assertType.isFalse(false as Equal<{ a: 1 }, { a: 1, b: 2 }>)
19
- assertType.isFalse(false as Equal<{ a: 1, b: 2 }, { a: 1 }>)
20
- })
21
-
22
- test('boolean', () => {
23
- assertType.isTrue(true as Equal<boolean, boolean>)
24
- assertType.isTrue(true as Equal<true, true>)
25
- assertType.isTrue(true as Equal<false, false>)
26
- assertType.isFalse(false as Equal<boolean, true>)
27
- assertType.isFalse(false as Equal<true, boolean>)
28
- assertType.isFalse(false as Equal<boolean, false>)
29
- assertType.isFalse(false as Equal<false, boolean>)
30
- assertType.isFalse(false as Equal<false, true>)
31
- assertType.isFalse(false as Equal<true, false>)
32
- })
33
-
34
- test('same type is true', () => {
35
- assertType.isTrue(true as Equal<{ a: 1 }, { a: 1 }>)
36
- })
37
-
38
- test('different type is false', () => {
39
- assertType.isFalse(false as Equal<{ a: 1 }, { b: 1 }>)
40
- })
41
-
42
- test('A subset of B is false', () => {
43
- assertType.isFalse(false as Equal<{ a: 1 }, { a: 1, b: 1 }>)
44
- })
45
-
46
- test('B subset of A is false', () => {
47
- assertType.isFalse(false as Equal<{ a: 1, b: 1 }, { a: 1 }>)
48
- })
49
-
50
- test('disjoin is false', () => {
51
- assertType.isFalse(false as Equal<{ b: 1 }, { a: 1 }>)
52
- })
53
-
54
- test('overlap is false', () => {
55
- assertType.isFalse(false as Equal<{ a: 1, b: 1 }, { a: 1, c: 2 }>)
56
- })
57
- })
58
-
59
- describe('TypeNotEquals', () => {
60
- test('boolean', () => {
61
- assertType.isFalse(false as NotEqual<boolean, boolean>)
62
- assertType.isFalse(false as NotEqual<true, true>)
63
- assertType.isFalse(false as NotEqual<false, false>)
64
- assertType.isTrue(true as NotEqual<boolean, true>)
65
- assertType.isTrue(true as NotEqual<true, boolean>)
66
- assertType.isTrue(true as NotEqual<boolean, false>)
67
- assertType.isTrue(true as NotEqual<false, boolean>)
68
- assertType.isTrue(true as NotEqual<false, true>)
69
- assertType.isTrue(true as NotEqual<true, false>)
70
- })
71
- })
@@ -1,14 +0,0 @@
1
- /**
2
- * Checks if two types are equal.
3
- * Borrow from `typepark`.
4
- * The simple `A extends B ? B extends A ? true : false : false`
5
- * does not work with boolean type.
6
- */
7
- export type Equal<A, B, Then = true, Else = false> =
8
- (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2)
9
- ? Then : Else
10
- export type IsEqual<A, B> = Equal<A, B>
11
-
12
- export type NotEqual<A, B, Then = true, Else = false> =
13
- (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Else : Then
14
- export type IsNotEqual<A, B> = NotEqual<A, B>
@@ -1,4 +0,0 @@
1
- export type Extendable<A, B> = A extends B ? A : never
2
- export type NotExtendable<A, B> = A extends B ? never : A
3
- export type IsExtend<A, B, Then = true, Else = false> = A extends B ? Then : Else
4
- export type IsNotExtend<A, B, Then = true, Else = false> = A extends B ? Else : Then