type-plus 3.14.0 → 4.0.1

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 (1229) hide show
  1. package/README.md +2 -59
  2. package/{lib → cjs}/ComposableTypes.d.ts +0 -0
  3. package/{lib → cjs}/ComposableTypes.js +0 -0
  4. package/cjs/ComposableTypes.js.map +1 -0
  5. package/{lib → cjs}/JSONTypes.d.ts +0 -0
  6. package/{lib → cjs}/JSONTypes.js +0 -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/cjs/array/index.d.ts +19 -0
  66. package/cjs/array/index.js +15 -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/{lib → cjs}/assertion/assertType.d.ts +0 -0
  75. package/{lib → cjs}/assertion/assertType.js +0 -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/cjs/class/index.d.ts +2 -0
  84. package/cjs/class/index.js +14 -0
  85. package/cjs/class/index.js.map +1 -0
  86. package/{lib → cjs}/class/isConstructor.d.ts +0 -0
  87. package/{lib → cjs}/class/isConstructor.js +0 -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/cjs/function/index.d.ts +1 -0
  93. package/cjs/function/index.js +3 -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/cjs/functional/index.d.ts +1 -0
  99. package/cjs/functional/index.js +3 -0
  100. package/cjs/functional/index.js.map +1 -0
  101. package/cjs/index.d.ts +17 -0
  102. package/cjs/index.js +32 -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/cjs/math/index.d.ts +7 -0
  129. package/cjs/math/index.js +3 -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/cjs/object/index.d.ts +34 -0
  231. package/cjs/object/index.js +29 -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/{lib → cjs}/object/mapProperties.js +0 -0
  238. package/cjs/object/mapProperties.js.map +1 -0
  239. package/{lib → cjs}/object/omit.d.ts +0 -0
  240. package/{lib → cjs}/object/omit.js +0 -0
  241. package/cjs/object/omit.js.map +1 -0
  242. package/{lib → cjs}/object/pick.d.ts +0 -0
  243. package/{lib → cjs}/object/pick.js +0 -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/cjs/predicates/CanAssign.d.ts +9 -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/predicates/isEmptyObject.d.ts → cjs/predicates/IsEmptyObject.d.ts} +0 -0
  270. package/cjs/predicates/IsEmptyObject.js +3 -0
  271. package/cjs/predicates/IsEmptyObject.js.map +1 -0
  272. package/cjs/predicates/index.d.ts +11 -0
  273. package/cjs/predicates/index.js +15 -0
  274. package/cjs/predicates/index.js.map +1 -0
  275. package/{lib → cjs}/predicates/isType.d.ts +0 -0
  276. package/{lib → cjs}/predicates/isType.js +0 -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/cjs/promise/index.d.ts +4 -0
  288. package/cjs/promise/index.js +15 -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/cjs/utils/index.d.ts +2 -0
  303. package/cjs/utils/index.js +14 -0
  304. package/cjs/utils/index.js.map +1 -0
  305. package/{libm → esm}/ComposableTypes.js +0 -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/esm/array/index.js +3 -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/esm/class/index.js +2 -0
  360. package/esm/class/index.js.map +1 -0
  361. package/{libm → esm}/class/isConstructor.js +0 -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/esm/function/index.js +2 -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/esm/functional/index.js +2 -0
  370. package/esm/functional/index.js.map +1 -0
  371. package/esm/index.js +17 -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/esm/math/index.js +2 -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/esm/object/index.js +17 -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/esm/predicates/IsEmptyObject.js +2 -0
  484. package/esm/predicates/IsEmptyObject.js.map +1 -0
  485. package/esm/predicates/index.js +3 -0
  486. package/esm/predicates/index.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/esm/promise/index.js +3 -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/esm/utils/index.js +2 -0
  506. package/esm/utils/index.js.map +1 -0
  507. package/package.json +43 -43
  508. package/{src → ts}/ComposableTypes.spec.ts +0 -0
  509. package/{src → ts}/ComposableTypes.ts +0 -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/ts/binary/_binary.ts +1 -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/ts/class/index.ts +2 -0
  563. package/ts/class/isConstructor.spec.ts +35 -0
  564. package/{src → ts}/class/isConstructor.ts +0 -0
  565. package/ts/function/AnyFunction.spec.ts +21 -0
  566. package/{src → ts}/function/AnyFunction.ts +0 -0
  567. package/ts/function/index.ts +1 -0
  568. package/ts/functional/ChainFn.spec.ts +7 -0
  569. package/{src → ts}/functional/ChainFn.ts +0 -0
  570. package/{src → ts}/functional/Maybe.spec.ts +0 -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/{src → ts}/object/getField.ts +0 -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/ts/predicates/CanAssign.ts +21 -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/IsEmptyObject.spec.ts +15 -0
  679. package/ts/predicates/IsEmptyObject.ts +2 -0
  680. package/ts/predicates/index.spec.ts +73 -0
  681. package/ts/predicates/index.ts +17 -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/ts/promise/index.ts +4 -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/ComposableTypes.js.map +0 -1
  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.d.ts +0 -19
  763. package/lib/array/index.js +0 -32
  764. package/lib/array/index.js.map +0 -1
  765. package/lib/array/literalArray.js.map +0 -1
  766. package/lib/array/reduceWhile.js.map +0 -1
  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.d.ts +0 -2
  771. package/lib/class/index.js +0 -15
  772. package/lib/class/index.js.map +0 -1
  773. package/lib/class/isConstructor.js.map +0 -1
  774. package/lib/function/AnyFunction.js.map +0 -1
  775. package/lib/function/index.d.ts +0 -1
  776. package/lib/function/index.js +0 -14
  777. package/lib/function/index.js.map +0 -1
  778. package/lib/functional/ChainFn.js.map +0 -1
  779. package/lib/functional/index.d.ts +0 -1
  780. package/lib/functional/index.js +0 -15
  781. package/lib/functional/index.js.map +0 -1
  782. package/lib/index.d.ts +0 -20
  783. package/lib/index.js +0 -49
  784. package/lib/index.js.map +0 -1
  785. package/lib/math/Abs.js.map +0 -1
  786. package/lib/math/Add.js.map +0 -1
  787. package/lib/math/Digit.js.map +0 -1
  788. package/lib/math/GreaterThan.js.map +0 -1
  789. package/lib/math/IsPositive.js.map +0 -1
  790. package/lib/math/IsWhole.js.map +0 -1
  791. package/lib/math/Max.js.map +0 -1
  792. package/lib/math/Subtract.js.map +0 -1
  793. package/lib/math/index.d.ts +0 -7
  794. package/lib/math/index.js +0 -20
  795. package/lib/math/index.js.map +0 -1
  796. package/lib/nominal-types/Brand.js.map +0 -1
  797. package/lib/nominal-types/Flavor.js.map +0 -1
  798. package/lib/nominal-types/index.js.map +0 -1
  799. package/lib/nominal-types/nominalMatch.js.map +0 -1
  800. package/lib/nominal-types/types.js.map +0 -1
  801. package/lib/object/ANotB.js.map +0 -1
  802. package/lib/object/AnyRecord.js.map +0 -1
  803. package/lib/object/ExcludePropType.js.map +0 -1
  804. package/lib/object/IsDisjoint.js.map +0 -1
  805. package/lib/object/IsRecord.js.map +0 -1
  806. package/lib/object/KeyTypes.js.map +0 -1
  807. package/lib/object/KeyofOptional.js.map +0 -1
  808. package/lib/object/KeysWithDiffType.js.map +0 -1
  809. package/lib/object/KnownKeys.js.map +0 -1
  810. package/lib/object/OptionalKeys.js.map +0 -1
  811. package/lib/object/Partial.js.map +0 -1
  812. package/lib/object/RecursiveIntersect.js.map +0 -1
  813. package/lib/object/RecursivePartial.js.map +0 -1
  814. package/lib/object/RecursiveRequired.js.map +0 -1
  815. package/lib/object/Required.js.map +0 -1
  816. package/lib/object/RequiredKeys.js.map +0 -1
  817. package/lib/object/SpreadRecord.js.map +0 -1
  818. package/lib/object/ValueOf.js.map +0 -1
  819. package/lib/object/everyKey.js.map +0 -1
  820. package/lib/object/facade.js.map +0 -1
  821. package/lib/object/filterKey.js.map +0 -1
  822. package/lib/object/findKey.js.map +0 -1
  823. package/lib/object/forEachKey.js.map +0 -1
  824. package/lib/object/getField.js.map +0 -1
  825. package/lib/object/hasKey.js.map +0 -1
  826. package/lib/object/hasProperty.js.map +0 -1
  827. package/lib/object/index.d.ts +0 -34
  828. package/lib/object/index.js +0 -47
  829. package/lib/object/index.js.map +0 -1
  830. package/lib/object/mapKey.js.map +0 -1
  831. package/lib/object/mapProperties.js.map +0 -1
  832. package/lib/object/omit.js.map +0 -1
  833. package/lib/object/pick.js.map +0 -1
  834. package/lib/object/reduceKey.js.map +0 -1
  835. package/lib/object/replaceProperty.js.map +0 -1
  836. package/lib/object/someKey.js.map +0 -1
  837. package/lib/object/typeOverrideIncompatible.js.map +0 -1
  838. package/lib/predicates/CanAssign.d.ts +0 -9
  839. package/lib/predicates/CanAssign.js.map +0 -1
  840. package/lib/predicates/Equal.js.map +0 -1
  841. package/lib/predicates/Extends.js.map +0 -1
  842. package/lib/predicates/If.js.map +0 -1
  843. package/lib/predicates/index.d.ts +0 -11
  844. package/lib/predicates/index.js +0 -20
  845. package/lib/predicates/index.js.map +0 -1
  846. package/lib/predicates/isEmptyObject.js +0 -3
  847. package/lib/predicates/isEmptyObject.js.map +0 -1
  848. package/lib/predicates/isType.js.map +0 -1
  849. package/lib/predicates/logical.js.map +0 -1
  850. package/lib/promise/PromiseValue.js.map +0 -1
  851. package/lib/promise/PromiseValueMerge.js.map +0 -1
  852. package/lib/promise/index.d.ts +0 -4
  853. package/lib/promise/index.js +0 -17
  854. package/lib/promise/index.js.map +0 -1
  855. package/lib/promise/isPromise.js.map +0 -1
  856. package/lib/promise/mapSeries.js.map +0 -1
  857. package/lib/types/AllType.d.ts +0 -18
  858. package/lib/types/AllType.js +0 -3
  859. package/lib/types/AllType.js.map +0 -1
  860. package/lib/types/Any.d.ts +0 -6
  861. package/lib/types/Any.js +0 -5
  862. package/lib/types/Any.js.map +0 -1
  863. package/lib/types/Array.d.ts +0 -28
  864. package/lib/types/Array.js +0 -30
  865. package/lib/types/Array.js.map +0 -1
  866. package/lib/types/Boolean.d.ts +0 -29
  867. package/lib/types/Boolean.js +0 -28
  868. package/lib/types/Boolean.js.map +0 -1
  869. package/lib/types/Generate.d.ts +0 -32
  870. package/lib/types/Generate.js +0 -3
  871. package/lib/types/Generate.js.map +0 -1
  872. package/lib/types/Null.d.ts +0 -8
  873. package/lib/types/Null.js +0 -10
  874. package/lib/types/Null.js.map +0 -1
  875. package/lib/types/Number.d.ts +0 -36
  876. package/lib/types/Number.js +0 -50
  877. package/lib/types/Number.js.map +0 -1
  878. package/lib/types/Object.d.ts +0 -313
  879. package/lib/types/Object.js +0 -35
  880. package/lib/types/Object.js.map +0 -1
  881. package/lib/types/Record.d.ts +0 -16
  882. package/lib/types/Record.js +0 -17
  883. package/lib/types/Record.js.map +0 -1
  884. package/lib/types/String.d.ts +0 -36
  885. package/lib/types/String.js +0 -51
  886. package/lib/types/String.js.map +0 -1
  887. package/lib/types/Symbol.d.ts +0 -8
  888. package/lib/types/Symbol.js +0 -13
  889. package/lib/types/Symbol.js.map +0 -1
  890. package/lib/types/Tuple.d.ts +0 -35
  891. package/lib/types/Tuple.js +0 -43
  892. package/lib/types/Tuple.js.map +0 -1
  893. package/lib/types/Undefined.d.ts +0 -6
  894. package/lib/types/Undefined.js +0 -5
  895. package/lib/types/Undefined.js.map +0 -1
  896. package/lib/types/Union.d.ts +0 -20
  897. package/lib/types/Union.js +0 -52
  898. package/lib/types/Union.js.map +0 -1
  899. package/lib/types/Unknown.d.ts +0 -6
  900. package/lib/types/Unknown.js +0 -5
  901. package/lib/types/Unknown.js.map +0 -1
  902. package/lib/types/analyze.d.ts +0 -13
  903. package/lib/types/analyze.js +0 -159
  904. package/lib/types/analyze.js.map +0 -1
  905. package/lib/types/check.d.ts +0 -14
  906. package/lib/types/check.js +0 -25
  907. package/lib/types/check.js.map +0 -1
  908. package/lib/types/conform.d.ts +0 -15
  909. package/lib/types/conform.js +0 -26
  910. package/lib/types/conform.js.map +0 -1
  911. package/lib/types/getPlainAnalysisReport.d.ts +0 -2
  912. package/lib/types/getPlainAnalysisReport.js +0 -120
  913. package/lib/types/getPlainAnalysisReport.js.map +0 -1
  914. package/lib/types/index.d.ts +0 -26
  915. package/lib/types/index.js +0 -45
  916. package/lib/types/index.js.map +0 -1
  917. package/lib/types/optional.d.ts +0 -328
  918. package/lib/types/optional.js +0 -33
  919. package/lib/types/optional.js.map +0 -1
  920. package/lib/types/required.d.ts +0 -664
  921. package/lib/types/required.js +0 -33
  922. package/lib/types/required.js.map +0 -1
  923. package/lib/types/satisfy.d.ts +0 -15
  924. package/lib/types/satisfy.js +0 -26
  925. package/lib/types/satisfy.js.map +0 -1
  926. package/lib/types/types.d.ts +0 -9
  927. package/lib/types/types.js +0 -3
  928. package/lib/types/types.js.map +0 -1
  929. package/lib/utils/Widen.js.map +0 -1
  930. package/lib/utils/as.js.map +0 -1
  931. package/lib/utils/index.d.ts +0 -2
  932. package/lib/utils/index.js +0 -15
  933. package/lib/utils/index.js.map +0 -1
  934. package/libm/ComposableTypes.js.map +0 -1
  935. package/libm/JSONTypes.js.map +0 -1
  936. package/libm/PrimitiveTypes.js.map +0 -1
  937. package/libm/UnionKeys.js.map +0 -1
  938. package/libm/array/CommonPropKeys.js.map +0 -1
  939. package/libm/array/Concat.js.map +0 -1
  940. package/libm/array/CreateTuple.js.map +0 -1
  941. package/libm/array/DropFirst.js.map +0 -1
  942. package/libm/array/DropLast.js.map +0 -1
  943. package/libm/array/Filter.js.map +0 -1
  944. package/libm/array/FindFirst.js.map +0 -1
  945. package/libm/array/FindLast.js.map +0 -1
  946. package/libm/array/Head.js.map +0 -1
  947. package/libm/array/IntersectOfProps.js.map +0 -1
  948. package/libm/array/IsArray.js.map +0 -1
  949. package/libm/array/PadLeft.js.map +0 -1
  950. package/libm/array/Reverse.js.map +0 -1
  951. package/libm/array/Some.js.map +0 -1
  952. package/libm/array/Tail.js.map +0 -1
  953. package/libm/array/UnionOfProps.js.map +0 -1
  954. package/libm/array/UnionOfValues.js.map +0 -1
  955. package/libm/array/index.js +0 -20
  956. package/libm/array/index.js.map +0 -1
  957. package/libm/array/literalArray.js.map +0 -1
  958. package/libm/array/reduceWhile.js.map +0 -1
  959. package/libm/assertion/assertType.js.map +0 -1
  960. package/libm/assertion/index.js.map +0 -1
  961. package/libm/class/AnyConstructor.js.map +0 -1
  962. package/libm/class/index.js +0 -3
  963. package/libm/class/index.js.map +0 -1
  964. package/libm/class/isConstructor.js.map +0 -1
  965. package/libm/function/AnyFunction.js.map +0 -1
  966. package/libm/function/index.js +0 -2
  967. package/libm/function/index.js.map +0 -1
  968. package/libm/functional/ChainFn.js.map +0 -1
  969. package/libm/functional/index.js +0 -3
  970. package/libm/functional/index.js.map +0 -1
  971. package/libm/index.js +0 -21
  972. package/libm/index.js.map +0 -1
  973. package/libm/math/Abs.js.map +0 -1
  974. package/libm/math/Add.js.map +0 -1
  975. package/libm/math/Digit.js.map +0 -1
  976. package/libm/math/GreaterThan.js.map +0 -1
  977. package/libm/math/IsPositive.js.map +0 -1
  978. package/libm/math/IsWhole.js.map +0 -1
  979. package/libm/math/Max.js.map +0 -1
  980. package/libm/math/Subtract.js.map +0 -1
  981. package/libm/math/index.js +0 -8
  982. package/libm/math/index.js.map +0 -1
  983. package/libm/nominal-types/Brand.js.map +0 -1
  984. package/libm/nominal-types/Flavor.js.map +0 -1
  985. package/libm/nominal-types/index.js.map +0 -1
  986. package/libm/nominal-types/nominalMatch.js.map +0 -1
  987. package/libm/nominal-types/types.js.map +0 -1
  988. package/libm/object/ANotB.js.map +0 -1
  989. package/libm/object/AnyRecord.js.map +0 -1
  990. package/libm/object/ExcludePropType.js.map +0 -1
  991. package/libm/object/IsDisjoint.js.map +0 -1
  992. package/libm/object/IsRecord.js.map +0 -1
  993. package/libm/object/KeyTypes.js.map +0 -1
  994. package/libm/object/KeyofOptional.js.map +0 -1
  995. package/libm/object/KeysWithDiffType.js.map +0 -1
  996. package/libm/object/KnownKeys.js.map +0 -1
  997. package/libm/object/OptionalKeys.js.map +0 -1
  998. package/libm/object/Partial.js.map +0 -1
  999. package/libm/object/RecursiveIntersect.js.map +0 -1
  1000. package/libm/object/RecursivePartial.js.map +0 -1
  1001. package/libm/object/RecursiveRequired.js.map +0 -1
  1002. package/libm/object/Required.js.map +0 -1
  1003. package/libm/object/RequiredKeys.js.map +0 -1
  1004. package/libm/object/SpreadRecord.js.map +0 -1
  1005. package/libm/object/ValueOf.js.map +0 -1
  1006. package/libm/object/everyKey.js.map +0 -1
  1007. package/libm/object/facade.js.map +0 -1
  1008. package/libm/object/filterKey.js.map +0 -1
  1009. package/libm/object/findKey.js.map +0 -1
  1010. package/libm/object/forEachKey.js.map +0 -1
  1011. package/libm/object/getField.js.map +0 -1
  1012. package/libm/object/hasKey.js.map +0 -1
  1013. package/libm/object/hasProperty.js.map +0 -1
  1014. package/libm/object/index.js +0 -35
  1015. package/libm/object/index.js.map +0 -1
  1016. package/libm/object/mapKey.js.map +0 -1
  1017. package/libm/object/mapProperties.js.map +0 -1
  1018. package/libm/object/omit.js.map +0 -1
  1019. package/libm/object/pick.js.map +0 -1
  1020. package/libm/object/reduceKey.js.map +0 -1
  1021. package/libm/object/replaceProperty.js.map +0 -1
  1022. package/libm/object/someKey.js.map +0 -1
  1023. package/libm/object/typeOverrideIncompatible.js.map +0 -1
  1024. package/libm/predicates/CanAssign.js.map +0 -1
  1025. package/libm/predicates/Equal.js.map +0 -1
  1026. package/libm/predicates/Extends.js.map +0 -1
  1027. package/libm/predicates/If.js.map +0 -1
  1028. package/libm/predicates/index.js +0 -8
  1029. package/libm/predicates/index.js.map +0 -1
  1030. package/libm/predicates/isEmptyObject.js +0 -2
  1031. package/libm/predicates/isEmptyObject.js.map +0 -1
  1032. package/libm/predicates/isType.js.map +0 -1
  1033. package/libm/predicates/logical.js.map +0 -1
  1034. package/libm/promise/PromiseValue.js.map +0 -1
  1035. package/libm/promise/PromiseValueMerge.js.map +0 -1
  1036. package/libm/promise/index.js +0 -5
  1037. package/libm/promise/index.js.map +0 -1
  1038. package/libm/promise/isPromise.js.map +0 -1
  1039. package/libm/promise/mapSeries.js.map +0 -1
  1040. package/libm/types/AllType.js +0 -2
  1041. package/libm/types/AllType.js.map +0 -1
  1042. package/libm/types/Any.js +0 -2
  1043. package/libm/types/Any.js.map +0 -1
  1044. package/libm/types/Array.js +0 -27
  1045. package/libm/types/Array.js.map +0 -1
  1046. package/libm/types/Boolean.js +0 -25
  1047. package/libm/types/Boolean.js.map +0 -1
  1048. package/libm/types/Generate.js +0 -2
  1049. package/libm/types/Generate.js.map +0 -1
  1050. package/libm/types/Null.js +0 -7
  1051. package/libm/types/Null.js.map +0 -1
  1052. package/libm/types/Number.js +0 -30
  1053. package/libm/types/Number.js.map +0 -1
  1054. package/libm/types/Object.js +0 -31
  1055. package/libm/types/Object.js.map +0 -1
  1056. package/libm/types/Record.js +0 -14
  1057. package/libm/types/Record.js.map +0 -1
  1058. package/libm/types/String.js +0 -31
  1059. package/libm/types/String.js.map +0 -1
  1060. package/libm/types/Symbol.js +0 -10
  1061. package/libm/types/Symbol.js.map +0 -1
  1062. package/libm/types/Tuple.js +0 -23
  1063. package/libm/types/Tuple.js.map +0 -1
  1064. package/libm/types/Undefined.js +0 -2
  1065. package/libm/types/Undefined.js.map +0 -1
  1066. package/libm/types/Union.js +0 -32
  1067. package/libm/types/Union.js.map +0 -1
  1068. package/libm/types/Unknown.js +0 -2
  1069. package/libm/types/Unknown.js.map +0 -1
  1070. package/libm/types/analyze.js +0 -142
  1071. package/libm/types/analyze.js.map +0 -1
  1072. package/libm/types/check.js +0 -21
  1073. package/libm/types/check.js.map +0 -1
  1074. package/libm/types/conform.js +0 -22
  1075. package/libm/types/conform.js.map +0 -1
  1076. package/libm/types/getPlainAnalysisReport.js +0 -106
  1077. package/libm/types/getPlainAnalysisReport.js.map +0 -1
  1078. package/libm/types/index.js +0 -28
  1079. package/libm/types/index.js.map +0 -1
  1080. package/libm/types/optional.js +0 -30
  1081. package/libm/types/optional.js.map +0 -1
  1082. package/libm/types/required.js +0 -30
  1083. package/libm/types/required.js.map +0 -1
  1084. package/libm/types/satisfy.js +0 -22
  1085. package/libm/types/satisfy.js.map +0 -1
  1086. package/libm/types/types.js +0 -2
  1087. package/libm/types/types.js.map +0 -1
  1088. package/libm/utils/Widen.js.map +0 -1
  1089. package/libm/utils/as.js.map +0 -1
  1090. package/libm/utils/index.js +0 -3
  1091. package/libm/utils/index.js.map +0 -1
  1092. package/src/JSONTypes.spec.ts +0 -43
  1093. package/src/JSONTypes.ts +0 -18
  1094. package/src/PrimitiveTypes.ts +0 -2
  1095. package/src/UnionToIntersection.ts +0 -7
  1096. package/src/array/CommonPropKeys.spec.ts +0 -20
  1097. package/src/array/CommonPropKeys.ts +0 -18
  1098. package/src/array/Concat.spec.ts +0 -21
  1099. package/src/array/Concat.ts +0 -1
  1100. package/src/array/CreateTuple.spec.ts +0 -21
  1101. package/src/array/CreateTuple.ts +0 -7
  1102. package/src/array/DropFirst.spec.ts +0 -21
  1103. package/src/array/DropFirst.ts +0 -9
  1104. package/src/array/DropLast.spec.ts +0 -21
  1105. package/src/array/DropLast.ts +0 -9
  1106. package/src/array/Filter.spec.ts +0 -21
  1107. package/src/array/Filter.ts +0 -12
  1108. package/src/array/FindFirst.spec.ts +0 -27
  1109. package/src/array/FindFirst.ts +0 -13
  1110. package/src/array/FindLast.spec.ts +0 -27
  1111. package/src/array/FindLast.ts +0 -8
  1112. package/src/array/Head.spec.ts +0 -21
  1113. package/src/array/Head.ts +0 -1
  1114. package/src/array/IntersectOfProps.spec.ts +0 -14
  1115. package/src/array/IntersectOfProps.ts +0 -20
  1116. package/src/array/IsArray.ts +0 -1
  1117. package/src/array/PadLeft.spec.ts +0 -26
  1118. package/src/array/PadLeft.ts +0 -16
  1119. package/src/array/Reverse.spec.ts +0 -17
  1120. package/src/array/Reverse.ts +0 -10
  1121. package/src/array/Some.spec.ts +0 -79
  1122. package/src/array/Some.ts +0 -24
  1123. package/src/array/Tail.spec.ts +0 -32
  1124. package/src/array/Tail.ts +0 -7
  1125. package/src/array/UnionOfProps.spec.ts +0 -14
  1126. package/src/array/UnionOfProps.ts +0 -18
  1127. package/src/array/UnionOfValues.spec.ts +0 -11
  1128. package/src/array/UnionOfValues.ts +0 -10
  1129. package/src/array/index.ts +0 -19
  1130. package/src/assertion/assertType.spec.ts +0 -507
  1131. package/src/assertion/assertType.ts +0 -105
  1132. package/src/assertion/index.ts +0 -1
  1133. package/src/binary/_binary.ts +0 -1
  1134. package/src/class/AnyConstructor.spec.ts +0 -13
  1135. package/src/class/index.ts +0 -2
  1136. package/src/class/isConstructor.spec.ts +0 -35
  1137. package/src/function/AnyFunction.spec.ts +0 -21
  1138. package/src/function/index.ts +0 -1
  1139. package/src/functional/ChainFn.spec.ts +0 -7
  1140. package/src/functional/Maybe.ts +0 -19
  1141. package/src/functional/index.ts +0 -2
  1142. package/src/index.ts +0 -20
  1143. package/src/math/Abs.spec.ts +0 -14
  1144. package/src/math/Abs.ts +0 -4
  1145. package/src/math/Add.spec.ts +0 -82
  1146. package/src/math/Add.ts +0 -49
  1147. package/src/math/Digit.spec.ts +0 -185
  1148. package/src/math/Digit.ts +0 -115
  1149. package/src/math/GreaterThan.spec.ts +0 -40
  1150. package/src/math/GreaterThan.ts +0 -36
  1151. package/src/math/IsPositive.ts +0 -9
  1152. package/src/math/IsWhole.spec.ts +0 -19
  1153. package/src/math/IsWhole.ts +0 -9
  1154. package/src/math/Max.spec.ts +0 -35
  1155. package/src/math/Max.ts +0 -31
  1156. package/src/math/README.md +0 -7
  1157. package/src/math/Subtract.spec.ts +0 -40
  1158. package/src/math/Subtract.ts +0 -40
  1159. package/src/math/index.ts +0 -7
  1160. package/src/nominal-types/Brand.spec.ts +0 -43
  1161. package/src/nominal-types/Brand.ts +0 -32
  1162. package/src/nominal-types/Flavor.spec.ts +0 -51
  1163. package/src/nominal-types/Flavor.ts +0 -32
  1164. package/src/object/ANotB.ts +0 -21
  1165. package/src/object/ExcludePropType.spec.ts +0 -13
  1166. package/src/object/IsDisjoint.spec.ts +0 -25
  1167. package/src/object/IsDisjoint.ts +0 -12
  1168. package/src/object/IsRecord.spec.ts +0 -22
  1169. package/src/object/IsRecord.ts +0 -4
  1170. package/src/object/KeyofOptional.spec.ts +0 -8
  1171. package/src/object/KeysWithDiffType.spec.ts +0 -21
  1172. package/src/object/KnownKeys.spec.ts +0 -39
  1173. package/src/object/KnownKeys.ts +0 -16
  1174. package/src/object/Partial.spec.ts +0 -49
  1175. package/src/object/RecursiveIntersect.spec.ts +0 -39
  1176. package/src/object/Required.spec.ts +0 -29
  1177. package/src/object/SpreadRecord.spec.ts +0 -14
  1178. package/src/object/SpreadRecord.ts +0 -6
  1179. package/src/object/ValueOf.spec.ts +0 -36
  1180. package/src/object/facade.ts +0 -39
  1181. package/src/object/getField.spec.ts +0 -21
  1182. package/src/object/hasKey.ts +0 -7
  1183. package/src/object/hasProperty.spec.ts +0 -15
  1184. package/src/object/index.ts +0 -35
  1185. package/src/object/mapProperties.spec.ts +0 -27
  1186. package/src/object/omit.spec.ts +0 -104
  1187. package/src/object/omit.ts +0 -36
  1188. package/src/object/pick.spec.ts +0 -66
  1189. package/src/object/pick.ts +0 -35
  1190. package/src/object/typeOverrideIncompatible.spec.ts +0 -24
  1191. package/src/object/typeOverrideIncompatible.ts +0 -10
  1192. package/src/predicates/CanAssign.spec.ts +0 -57
  1193. package/src/predicates/CanAssign.ts +0 -21
  1194. package/src/predicates/Equal.spec.ts +0 -71
  1195. package/src/predicates/Equal.ts +0 -14
  1196. package/src/predicates/Extends.ts +0 -4
  1197. package/src/predicates/If.spec.ts +0 -14
  1198. package/src/predicates/If.ts +0 -5
  1199. package/src/predicates/index.spec.ts +0 -73
  1200. package/src/predicates/index.ts +0 -17
  1201. package/src/predicates/isEmptyObject.spec.ts +0 -15
  1202. package/src/predicates/isEmptyObject.ts +0 -2
  1203. package/src/predicates/isType.spec.ts +0 -106
  1204. package/src/predicates/isType.ts +0 -30
  1205. package/src/predicates/logical.spec.ts +0 -59
  1206. package/src/predicates/logical.ts +0 -4
  1207. package/src/promise/PromiseValue.spec.ts +0 -6
  1208. package/src/promise/index.ts +0 -4
  1209. package/src/promise/isPromise.ts +0 -4
  1210. package/src/promise/mapSeries.ts +0 -5
  1211. package/src/type-checker/buildTypes.spec.ts +0 -28
  1212. package/src/type-checker/typeChecker.spec.ts +0 -13
  1213. package/src/types/Generate.ts +0 -48
  1214. package/src/types/Number.ts +0 -56
  1215. package/src/types/Object.ts +0 -53
  1216. package/src/types/String.ts +0 -56
  1217. package/src/types/Symbol.ts +0 -19
  1218. package/src/types/Tuple.ts +0 -50
  1219. package/src/types/check.spec.ts +0 -12
  1220. package/src/types/conform.spec.ts +0 -7
  1221. package/src/types/getPlainAnalysisReport.ts +0 -115
  1222. package/src/types/index.ts +0 -28
  1223. package/src/types/optional.ts +0 -30
  1224. package/src/types/required.ts +0 -30
  1225. package/src/types/satisfy.accept.ts +0 -38
  1226. package/src/types/satisfy.spec.ts +0 -599
  1227. package/src/utils/as.spec.ts +0 -24
  1228. package/src/utils/as.ts +0 -7
  1229. package/src/utils/index.ts +0 -2
@@ -0,0 +1,39 @@
1
+ import { RecursiveIntersect } from '..'
2
+
3
+ test('add object type to types', () => {
4
+ type U = { u: number }
5
+
6
+ acceptU(addU('a'))
7
+ acceptU(addU(1))
8
+ acceptU(addU(true))
9
+ // acceptU(addU(1n))
10
+ acceptU(addU(undefined))
11
+ acceptU(addU(null))
12
+
13
+ const obj = addU({ x: 1 })
14
+ acceptU(obj)
15
+ acceptU(obj.x)
16
+
17
+ const comObj = addU({ array: ['a'] })
18
+ acceptU(comObj)
19
+ acceptU(comObj.array)
20
+ acceptU(comObj.array[0])
21
+
22
+ const arr = addU(['1'])
23
+ acceptU(arr)
24
+ acceptU(arr[0])
25
+
26
+ // Not supported
27
+ // const comArr = addU([{ x: 1 }])
28
+ // acceptU(comArr)
29
+ // acceptU(comArr[0])
30
+ // acceptU(comArr[0].x)
31
+
32
+ function addU<T>(x: T): RecursiveIntersect<T, U> {
33
+ return x as any as RecursiveIntersect<T, U>
34
+ }
35
+
36
+ function acceptU(x: U) {
37
+ return x
38
+ }
39
+ })
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,29 @@
1
+ import { assertType, RequiredExcept, RequiredPick } from '..'
2
+
3
+ test('make picked properties required', () => {
4
+ type Foo = {
5
+ a?: number,
6
+ b?: number,
7
+ c: number,
8
+ }
9
+
10
+ const y: RequiredPick<Foo, 'a'> = { a: 1, c: 2 }
11
+
12
+ assertType.noUndefined(y.a)
13
+ y.b = undefined
14
+ assertType.noUndefined(y.c)
15
+ })
16
+
17
+ test('make not picked properties required', () => {
18
+ type Foo = {
19
+ a?: number,
20
+ b?: number,
21
+ c: number,
22
+ }
23
+
24
+ const y: RequiredExcept<Foo, 'a'> = { b: 1, c: 2 }
25
+
26
+ y.a = undefined
27
+ assertType.noUndefined(y.b)
28
+ assertType.noUndefined(y.c)
29
+ })
File without changes
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ import { assertType, Equal, SpreadRecord } from '..'
2
+
3
+ test('records are combined as intersection', () => {
4
+ type S = SpreadRecord<{ a: number }, { b: string }>
5
+ assertType.isTrue(true as Equal<S, { a: number } & { b: string }>)
6
+ })
7
+
8
+ test('Property in B overrides A', () => {
9
+ type A = { a: number }
10
+ type B = { a: string, b: string }
11
+ type S = SpreadRecord<A, B>
12
+
13
+ assertType.isTrue(true as Equal<S, { a: string, b: string }>)
14
+ })
@@ -0,0 +1,6 @@
1
+ import { Omit } from '../object'
2
+
3
+ export type SpreadRecord<
4
+ A extends Record<any, any>,
5
+ B extends Record<any, any>
6
+ > = Omit<A, Extract<keyof A, keyof B>> & B
@@ -0,0 +1,36 @@
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
+
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,39 @@
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
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,21 @@
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
+ })
File without changes
File without changes
@@ -0,0 +1,7 @@
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
+ }
@@ -0,0 +1,15 @@
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
+ })
File without changes
@@ -0,0 +1,35 @@
1
+ export type { ANotB, BNotA, LeftJoin } from './ANotB'
2
+ export type { AnyRecord } from './AnyRecord'
3
+ export * from './everyKey'
4
+ export type { ExcludePropType } from './ExcludePropType'
5
+ export * from './facade'
6
+ export * from './filterKey'
7
+ export * from './findKey'
8
+ export * from './forEachKey'
9
+ export * from './getField'
10
+ export * from './hasKey'
11
+ export * from './hasProperty'
12
+ export type { IsDisjoint } from './IsDisjoint'
13
+ export type { IsRecord } from './IsRecord'
14
+ export type { KeysOfOptional } from './KeyofOptional'
15
+ export type { KeysWithDiffType } from './KeysWithDiffType'
16
+ export type { KeyTypes } from './KeyTypes'
17
+ export type { KnownKeys } from './KnownKeys'
18
+ export * from './mapKey'
19
+ export * from './mapProperties'
20
+ export * from './omit'
21
+ export type { OptionalKeys } from './OptionalKeys'
22
+ export type { PartialOmit, PartialPick } from './Partial'
23
+ export * from './pick'
24
+ export type { RecursiveIntersect } from './RecursiveIntersect'
25
+ export type { RecursivePartial } from './RecursivePartial'
26
+ export type { RecursiveRequired } from './RecursiveRequired'
27
+ export * from './reduceKey'
28
+ export * from './replaceProperty'
29
+ export type { RequiredExcept, RequiredPick } from './Required'
30
+ export type { RequiredKeys } from './RequiredKeys'
31
+ export * from './someKey'
32
+ export type { SpreadRecord } from './SpreadRecord'
33
+ export * from './typeOverrideIncompatible'
34
+ export type { ValueOf } from './ValueOf'
35
+
File without changes
File without changes
@@ -0,0 +1,27 @@
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
+ })
File without changes
@@ -0,0 +1,104 @@
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
+ })
@@ -0,0 +1,36 @@
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
+ }
@@ -0,0 +1,66 @@
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
+ })
@@ -0,0 +1,35 @@
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
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,24 @@
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
+ })
@@ -0,0 +1,10 @@
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
+ }