@duplojs/utils 0.3.1 → 1.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 (720) hide show
  1. package/dist/array/at/default.cjs +12 -0
  2. package/dist/array/at/default.d.ts +5 -0
  3. package/dist/array/at/default.mjs +10 -0
  4. package/dist/array/at/first.cjs +7 -0
  5. package/dist/array/at/first.d.ts +2 -0
  6. package/dist/array/at/first.mjs +5 -0
  7. package/dist/array/at/index.d.ts +3 -0
  8. package/dist/array/at/last.cjs +7 -0
  9. package/dist/array/at/last.d.ts +1 -0
  10. package/dist/array/at/last.mjs +5 -0
  11. package/dist/array/concat.cjs +12 -0
  12. package/dist/array/concat.d.ts +2 -0
  13. package/dist/array/concat.mjs +10 -0
  14. package/dist/array/copyWithin.cjs +12 -0
  15. package/dist/array/copyWithin.d.ts +2 -0
  16. package/dist/array/copyWithin.mjs +10 -0
  17. package/dist/array/every.cjs +12 -0
  18. package/dist/array/every.d.ts +6 -0
  19. package/dist/array/every.mjs +10 -0
  20. package/dist/array/fill/all.cjs +12 -0
  21. package/dist/array/fill/all.d.ts +2 -0
  22. package/dist/array/fill/all.mjs +10 -0
  23. package/dist/array/fill/default.cjs +12 -0
  24. package/dist/array/fill/default.d.ts +2 -0
  25. package/dist/array/fill/default.mjs +10 -0
  26. package/dist/array/fill/index.d.ts +2 -0
  27. package/dist/array/filter.cjs +12 -0
  28. package/dist/array/filter.d.ts +8 -0
  29. package/dist/array/filter.mjs +10 -0
  30. package/dist/array/find.cjs +12 -0
  31. package/dist/array/find.d.ts +8 -0
  32. package/dist/array/find.mjs +10 -0
  33. package/dist/array/findAndReplace.cjs +19 -0
  34. package/dist/array/findAndReplace.d.ts +7 -0
  35. package/dist/array/findAndReplace.mjs +17 -0
  36. package/dist/array/findAndSplice/delete.cjs +19 -0
  37. package/dist/array/findAndSplice/delete.d.ts +6 -0
  38. package/dist/array/findAndSplice/delete.mjs +17 -0
  39. package/dist/array/findAndSplice/index.d.ts +3 -0
  40. package/dist/array/findAndSplice/insert.cjs +19 -0
  41. package/dist/array/findAndSplice/insert.d.ts +6 -0
  42. package/dist/array/findAndSplice/insert.mjs +17 -0
  43. package/dist/array/findAndSplice/replace.cjs +19 -0
  44. package/dist/array/findAndSplice/replace.d.ts +6 -0
  45. package/dist/array/findAndSplice/replace.mjs +17 -0
  46. package/dist/array/findIndex.cjs +17 -0
  47. package/dist/array/findIndex.d.ts +6 -0
  48. package/dist/array/findIndex.mjs +15 -0
  49. package/dist/array/findLast.cjs +18 -0
  50. package/dist/array/findLast.d.ts +8 -0
  51. package/dist/array/findLast.mjs +16 -0
  52. package/dist/array/findLastIndex.cjs +18 -0
  53. package/dist/array/findLastIndex.d.ts +6 -0
  54. package/dist/array/findLastIndex.mjs +16 -0
  55. package/dist/array/flat.cjs +19 -0
  56. package/dist/array/flat.d.ts +4 -0
  57. package/dist/array/flat.mjs +17 -0
  58. package/dist/array/flatMap.cjs +12 -0
  59. package/dist/array/flatMap.d.ts +6 -0
  60. package/dist/array/flatMap.mjs +10 -0
  61. package/dist/array/from.cjs +16 -0
  62. package/dist/array/from.d.ts +1 -0
  63. package/dist/array/from.mjs +14 -0
  64. package/dist/array/group.cjs +37 -0
  65. package/dist/array/group.d.ts +16 -0
  66. package/dist/array/group.mjs +34 -0
  67. package/dist/array/includes.cjs +12 -0
  68. package/dist/array/includes.d.ts +2 -0
  69. package/dist/array/includes.mjs +10 -0
  70. package/dist/array/index.cjs +102 -0
  71. package/dist/array/index.d.ts +40 -0
  72. package/dist/array/index.mjs +48 -0
  73. package/dist/array/indexOf.cjs +23 -0
  74. package/dist/array/indexOf.d.ts +2 -0
  75. package/dist/array/indexOf.mjs +21 -0
  76. package/dist/array/is.cjs +7 -0
  77. package/dist/array/is.d.ts +1 -0
  78. package/dist/array/is.mjs +5 -0
  79. package/dist/array/join.cjs +12 -0
  80. package/dist/array/join.d.ts +8 -0
  81. package/dist/array/join.mjs +10 -0
  82. package/dist/array/lastIndexOf.cjs +23 -0
  83. package/dist/array/lastIndexOf.d.ts +2 -0
  84. package/dist/array/lastIndexOf.mjs +21 -0
  85. package/dist/array/map.cjs +12 -0
  86. package/dist/array/map.d.ts +6 -0
  87. package/dist/array/map.mjs +10 -0
  88. package/dist/array/maxElements.cjs +12 -0
  89. package/dist/array/maxElements.d.ts +2 -0
  90. package/dist/array/maxElements.mjs +10 -0
  91. package/dist/array/maxOf.cjs +17 -0
  92. package/dist/array/maxOf.d.ts +1 -0
  93. package/dist/array/maxOf.mjs +15 -0
  94. package/dist/array/minElements.cjs +12 -0
  95. package/dist/array/minElements.d.ts +9 -0
  96. package/dist/array/minElements.mjs +10 -0
  97. package/dist/array/minOf.cjs +17 -0
  98. package/dist/array/minOf.d.ts +1 -0
  99. package/dist/array/minOf.mjs +15 -0
  100. package/dist/array/pop.cjs +7 -0
  101. package/dist/array/pop.d.ts +3 -0
  102. package/dist/array/pop.mjs +5 -0
  103. package/dist/array/push.cjs +12 -0
  104. package/dist/array/push.d.ts +2 -0
  105. package/dist/array/push.mjs +10 -0
  106. package/dist/array/reduce.cjs +41 -0
  107. package/dist/array/reduce.d.ts +30 -0
  108. package/dist/array/reduce.mjs +39 -0
  109. package/dist/array/reduceRight.cjs +41 -0
  110. package/dist/array/reduceRight.d.ts +30 -0
  111. package/dist/array/reduceRight.mjs +39 -0
  112. package/dist/array/reverse.cjs +7 -0
  113. package/dist/array/reverse.d.ts +3 -0
  114. package/dist/array/reverse.mjs +5 -0
  115. package/dist/array/set.cjs +14 -0
  116. package/dist/array/set.d.ts +2 -0
  117. package/dist/array/set.mjs +12 -0
  118. package/dist/array/shift.cjs +7 -0
  119. package/dist/array/shift.d.ts +3 -0
  120. package/dist/array/shift.mjs +5 -0
  121. package/dist/array/slice.cjs +12 -0
  122. package/dist/array/slice.d.ts +2 -0
  123. package/dist/array/slice.mjs +10 -0
  124. package/dist/array/some.cjs +12 -0
  125. package/dist/array/some.d.ts +6 -0
  126. package/dist/array/some.mjs +10 -0
  127. package/dist/array/sort/default.cjs +12 -0
  128. package/dist/array/sort/default.d.ts +2 -0
  129. package/dist/array/sort/default.mjs +10 -0
  130. package/dist/array/sort/index.d.ts +3 -0
  131. package/dist/array/sort/number.cjs +14 -0
  132. package/dist/array/sort/number.d.ts +4 -0
  133. package/dist/array/sort/number.mjs +12 -0
  134. package/dist/array/sort/string.cjs +24 -0
  135. package/dist/array/sort/string.d.ts +4 -0
  136. package/dist/array/sort/string.mjs +22 -0
  137. package/dist/array/splice/delete.cjs +14 -0
  138. package/dist/array/splice/delete.d.ts +2 -0
  139. package/dist/array/splice/delete.mjs +12 -0
  140. package/dist/array/splice/index.d.ts +3 -0
  141. package/dist/array/splice/insert.cjs +14 -0
  142. package/dist/array/splice/insert.d.ts +2 -0
  143. package/dist/array/splice/insert.mjs +12 -0
  144. package/dist/array/splice/replace.cjs +14 -0
  145. package/dist/array/splice/replace.d.ts +2 -0
  146. package/dist/array/splice/replace.mjs +12 -0
  147. package/dist/array/sum.cjs +11 -0
  148. package/dist/array/sum.d.ts +1 -0
  149. package/dist/array/sum.mjs +9 -0
  150. package/dist/array/types/atTuple.d.ts +1 -0
  151. package/dist/array/types/createTuple.d.ts +2 -0
  152. package/dist/array/types/excludeTuple.d.ts +29 -0
  153. package/dist/array/types/extractTuple.d.ts +38 -0
  154. package/dist/array/types/index.d.ts +8 -0
  155. package/dist/array/types/mergeUnionTuple.d.ts +7 -0
  156. package/dist/array/types/popTuple.d.ts +2 -0
  157. package/dist/array/types/reverseTuple.d.ts +2 -0
  158. package/dist/array/types/shiftTuple.d.ts +2 -0
  159. package/dist/array/types/tupleHasSpread.d.ts +2 -0
  160. package/dist/array/unshift.cjs +12 -0
  161. package/dist/array/unshift.d.ts +2 -0
  162. package/dist/array/unshift.mjs +10 -0
  163. package/dist/common/addWrappedProperties.cjs +13 -0
  164. package/dist/common/addWrappedProperties.d.ts +4 -0
  165. package/dist/common/addWrappedProperties.mjs +11 -0
  166. package/dist/common/asyncInnerPipe.cjs +14 -0
  167. package/dist/common/asyncInnerPipe.d.ts +15 -0
  168. package/dist/common/asyncInnerPipe.mjs +12 -0
  169. package/dist/common/asyncLoop.cjs +19 -0
  170. package/dist/common/asyncLoop.d.ts +10 -0
  171. package/dist/common/asyncLoop.mjs +17 -0
  172. package/dist/common/asyncPipe.cjs +11 -0
  173. package/dist/common/asyncPipe.d.ts +16 -0
  174. package/dist/common/asyncPipe.mjs +9 -0
  175. package/dist/common/asyncRetry.cjs +25 -0
  176. package/dist/common/asyncRetry.d.ts +8 -0
  177. package/dist/common/asyncRetry.mjs +22 -0
  178. package/dist/common/clone.cjs +24 -0
  179. package/dist/{clone.d.ts → common/clone.d.ts} +1 -1
  180. package/dist/common/clone.mjs +22 -0
  181. package/dist/common/enum.cjs +11 -0
  182. package/dist/common/enum.d.ts +9 -0
  183. package/dist/common/enum.mjs +9 -0
  184. package/dist/common/escapeRegExp.cjs +7 -0
  185. package/dist/common/escapeRegExp.mjs +5 -0
  186. package/dist/common/externalPromise.cjs +17 -0
  187. package/dist/common/externalPromise.d.ts +5 -0
  188. package/dist/common/externalPromise.mjs +15 -0
  189. package/dist/common/forward.cjs +7 -0
  190. package/dist/common/forward.d.ts +1 -0
  191. package/dist/common/forward.mjs +5 -0
  192. package/dist/common/index.d.ts +29 -0
  193. package/dist/common/innerPipe.cjs +13 -0
  194. package/dist/common/innerPipe.d.ts +12 -0
  195. package/dist/common/innerPipe.mjs +11 -0
  196. package/dist/common/interpolation.cjs +9 -0
  197. package/dist/{interpolation.d.ts → common/interpolation.d.ts} +3 -3
  198. package/dist/common/interpolation.mjs +7 -0
  199. package/dist/common/kind.cjs +29 -0
  200. package/dist/common/kind.d.ts +26 -0
  201. package/dist/common/kind.mjs +26 -0
  202. package/dist/common/loop.cjs +19 -0
  203. package/dist/common/loop.d.ts +15 -0
  204. package/dist/common/loop.mjs +17 -0
  205. package/dist/common/pipe.cjs +11 -0
  206. package/dist/common/pipe.d.ts +12 -0
  207. package/dist/common/pipe.mjs +9 -0
  208. package/dist/common/promiseObject.cjs +12 -0
  209. package/dist/common/promiseObject.d.ts +7 -0
  210. package/dist/common/promiseObject.mjs +10 -0
  211. package/dist/common/simpleClone.cjs +25 -0
  212. package/dist/common/simpleClone.d.ts +1 -0
  213. package/dist/common/simpleClone.mjs +23 -0
  214. package/dist/common/sleep.cjs +7 -0
  215. package/dist/common/sleep.d.ts +1 -0
  216. package/dist/common/sleep.mjs +5 -0
  217. package/dist/common/stringToBytes.cjs +43 -0
  218. package/dist/{stringToBytes.d.ts → common/stringToBytes.d.ts} +3 -0
  219. package/dist/common/stringToBytes.mjs +40 -0
  220. package/dist/common/stringToMillisecond.cjs +48 -0
  221. package/dist/common/stringToMillisecond.d.ts +18 -0
  222. package/dist/common/stringToMillisecond.mjs +45 -0
  223. package/dist/common/toJson.cjs +34 -0
  224. package/dist/common/toJson.d.ts +11 -0
  225. package/dist/common/toJson.mjs +32 -0
  226. package/dist/common/toString.cjs +7 -0
  227. package/dist/common/toString.d.ts +1 -0
  228. package/dist/common/toString.mjs +5 -0
  229. package/dist/common/toTransform.cjs +34 -0
  230. package/dist/common/toTransform.d.ts +11 -0
  231. package/dist/common/toTransform.mjs +32 -0
  232. package/dist/common/toWrappedValue.cjs +11 -0
  233. package/dist/common/toWrappedValue.d.ts +4 -0
  234. package/dist/common/toWrappedValue.mjs +9 -0
  235. package/dist/common/types/IsExtends.d.ts +1 -0
  236. package/dist/common/types/adaptor.d.ts +1 -0
  237. package/dist/common/types/addOne.d.ts +23 -0
  238. package/dist/common/types/and.d.ts +2 -0
  239. package/dist/common/types/anyFunction.d.ts +1 -0
  240. package/dist/common/types/anyObject.d.ts +4 -0
  241. package/dist/common/types/anyTuple.d.ts +1 -0
  242. package/dist/common/types/anyValue.d.ts +2 -0
  243. package/dist/common/types/breakGenericLink.d.ts +1 -0
  244. package/dist/common/types/deepPartial.d.ts +3 -0
  245. package/dist/common/types/deepRemoveReadonly.d.ts +3 -0
  246. package/dist/common/types/escapeAny.d.ts +1 -0
  247. package/dist/common/types/escapeVoid.d.ts +1 -0
  248. package/dist/common/types/expectType.d.ts +6 -0
  249. package/dist/common/types/fixDeepFunctionInfer.d.ts +2 -0
  250. package/dist/common/types/forcePredicate.d.ts +5 -0
  251. package/dist/common/types/index.d.ts +37 -0
  252. package/dist/common/types/isStringLIteral.d.ts +2 -0
  253. package/dist/common/types/isUnion.d.ts +2 -0
  254. package/dist/common/types/lastUnionElement.d.ts +2 -0
  255. package/dist/common/types/maybeArray.d.ts +1 -0
  256. package/dist/common/types/maybePromise.d.ts +1 -0
  257. package/dist/common/types/maybeWrapped.d.ts +2 -0
  258. package/dist/common/types/neverCoalescing.d.ts +2 -0
  259. package/dist/common/types/not.d.ts +1 -0
  260. package/dist/common/types/objectEntry.d.ts +2 -0
  261. package/dist/common/types/objectKey.d.ts +1 -0
  262. package/dist/common/types/or.d.ts +2 -0
  263. package/dist/common/types/removeDuplicateInUnion.d.ts +4 -0
  264. package/dist/common/types/removeReadonly.d.ts +3 -0
  265. package/dist/common/types/simplifyTopLevel.d.ts +3 -0
  266. package/dist/common/types/simplifyType.d.ts +3 -0
  267. package/dist/common/types/simplifyTypeForce.d.ts +3 -0
  268. package/dist/common/types/toLargeEnsemble.d.ts +6 -0
  269. package/dist/common/types/unionContain.d.ts +2 -0
  270. package/dist/common/types/unionToIntersection.d.ts +1 -0
  271. package/dist/common/types/unionToTuple.d.ts +5 -0
  272. package/dist/common/unwrap.cjs +11 -0
  273. package/dist/common/unwrap.d.ts +4 -0
  274. package/dist/common/unwrap.mjs +9 -0
  275. package/dist/common/when.cjs +15 -0
  276. package/dist/common/when.d.ts +5 -0
  277. package/dist/common/when.mjs +13 -0
  278. package/dist/common/whenNot.cjs +15 -0
  279. package/dist/common/whenNot.d.ts +5 -0
  280. package/dist/common/whenNot.mjs +13 -0
  281. package/dist/common/wrapValue.cjs +15 -0
  282. package/dist/common/wrapValue.d.ts +9 -0
  283. package/dist/common/wrapValue.mjs +11 -0
  284. package/dist/either/base.cjs +7 -0
  285. package/dist/either/base.d.ts +1 -0
  286. package/dist/either/base.mjs +5 -0
  287. package/dist/either/bool/base.cjs +7 -0
  288. package/dist/either/bool/base.d.ts +1 -0
  289. package/dist/either/bool/base.mjs +5 -0
  290. package/dist/either/bool/create.cjs +16 -0
  291. package/dist/either/bool/create.d.ts +4 -0
  292. package/dist/either/bool/create.mjs +14 -0
  293. package/dist/either/bool/falsy.cjs +44 -0
  294. package/dist/either/bool/falsy.d.ts +18 -0
  295. package/dist/either/bool/falsy.mjs +39 -0
  296. package/dist/either/bool/index.d.ts +4 -0
  297. package/dist/either/bool/truthy.cjs +44 -0
  298. package/dist/either/bool/truthy.d.ts +17 -0
  299. package/dist/either/bool/truthy.mjs +39 -0
  300. package/dist/either/future/base.cjs +7 -0
  301. package/dist/either/future/base.d.ts +1 -0
  302. package/dist/either/future/base.mjs +5 -0
  303. package/dist/either/future/create.cjs +49 -0
  304. package/dist/either/future/create.d.ts +25 -0
  305. package/dist/either/future/create.mjs +46 -0
  306. package/dist/either/future/error.cjs +13 -0
  307. package/dist/either/future/error.d.ts +9 -0
  308. package/dist/either/future/error.mjs +10 -0
  309. package/dist/either/future/index.d.ts +5 -0
  310. package/dist/either/future/maybeFutureEither.d.ts +2 -0
  311. package/dist/either/future/success.cjs +13 -0
  312. package/dist/either/future/success.d.ts +9 -0
  313. package/dist/either/future/success.mjs +10 -0
  314. package/dist/either/hasInformation.cjs +10 -0
  315. package/dist/either/hasInformation.d.ts +7 -0
  316. package/dist/either/hasInformation.mjs +8 -0
  317. package/dist/either/index.cjs +108 -0
  318. package/dist/either/index.d.ts +10 -0
  319. package/dist/either/index.mjs +35 -0
  320. package/dist/either/left/create.cjs +13 -0
  321. package/dist/either/left/create.d.ts +9 -0
  322. package/dist/either/left/create.mjs +10 -0
  323. package/dist/either/left/error.cjs +12 -0
  324. package/dist/either/left/error.d.ts +8 -0
  325. package/dist/either/left/error.mjs +9 -0
  326. package/dist/either/left/fail.cjs +12 -0
  327. package/dist/either/left/fail.d.ts +8 -0
  328. package/dist/either/left/fail.mjs +9 -0
  329. package/dist/either/left/index.d.ts +5 -0
  330. package/dist/either/left/is.cjs +13 -0
  331. package/dist/either/left/is.d.ts +2 -0
  332. package/dist/either/left/is.mjs +11 -0
  333. package/dist/either/left/when.cjs +18 -0
  334. package/dist/either/left/when.d.ts +4 -0
  335. package/dist/either/left/when.mjs +16 -0
  336. package/dist/either/nullable/base.cjs +7 -0
  337. package/dist/either/nullable/base.d.ts +1 -0
  338. package/dist/either/nullable/base.mjs +5 -0
  339. package/dist/either/nullable/create.cjs +12 -0
  340. package/dist/either/nullable/create.d.ts +3 -0
  341. package/dist/either/nullable/create.mjs +10 -0
  342. package/dist/either/nullable/empty.cjs +44 -0
  343. package/dist/either/nullable/empty.d.ts +17 -0
  344. package/dist/either/nullable/empty.mjs +39 -0
  345. package/dist/either/nullable/filled.cjs +44 -0
  346. package/dist/either/nullable/filled.d.ts +17 -0
  347. package/dist/either/nullable/filled.mjs +39 -0
  348. package/dist/either/nullable/index.d.ts +4 -0
  349. package/dist/either/nullish/base.cjs +7 -0
  350. package/dist/either/nullish/base.d.ts +1 -0
  351. package/dist/either/nullish/base.mjs +5 -0
  352. package/dist/either/nullish/create.cjs +12 -0
  353. package/dist/either/nullish/create.d.ts +3 -0
  354. package/dist/either/nullish/create.mjs +10 -0
  355. package/dist/either/nullish/empty.cjs +44 -0
  356. package/dist/either/nullish/empty.d.ts +18 -0
  357. package/dist/either/nullish/empty.mjs +39 -0
  358. package/dist/either/nullish/filled.cjs +44 -0
  359. package/dist/either/nullish/filled.d.ts +17 -0
  360. package/dist/either/nullish/filled.mjs +39 -0
  361. package/dist/either/nullish/index.d.ts +4 -0
  362. package/dist/either/optional/base.cjs +7 -0
  363. package/dist/either/optional/base.d.ts +1 -0
  364. package/dist/either/optional/base.mjs +5 -0
  365. package/dist/either/optional/create.cjs +12 -0
  366. package/dist/either/optional/create.d.ts +3 -0
  367. package/dist/either/optional/create.mjs +10 -0
  368. package/dist/either/optional/empty.cjs +43 -0
  369. package/dist/either/optional/empty.d.ts +17 -0
  370. package/dist/either/optional/empty.mjs +38 -0
  371. package/dist/either/optional/filled.cjs +44 -0
  372. package/dist/either/optional/filled.d.ts +17 -0
  373. package/dist/either/optional/filled.mjs +39 -0
  374. package/dist/either/optional/index.d.ts +4 -0
  375. package/dist/either/right/asyncPipe.cjs +28 -0
  376. package/dist/either/right/asyncPipe.d.ts +22 -0
  377. package/dist/either/right/asyncPipe.mjs +26 -0
  378. package/dist/either/right/create.cjs +13 -0
  379. package/dist/either/right/create.d.ts +9 -0
  380. package/dist/either/right/create.mjs +10 -0
  381. package/dist/either/right/index.d.ts +7 -0
  382. package/dist/either/right/is.cjs +13 -0
  383. package/dist/either/right/is.d.ts +2 -0
  384. package/dist/either/right/is.mjs +11 -0
  385. package/dist/either/right/ok.cjs +12 -0
  386. package/dist/either/right/ok.d.ts +8 -0
  387. package/dist/either/right/ok.mjs +9 -0
  388. package/dist/either/right/pipe.cjs +22 -0
  389. package/dist/either/right/pipe.d.ts +19 -0
  390. package/dist/either/right/pipe.mjs +20 -0
  391. package/dist/either/right/success.cjs +12 -0
  392. package/dist/either/right/success.d.ts +8 -0
  393. package/dist/either/right/success.mjs +9 -0
  394. package/dist/either/right/when.cjs +18 -0
  395. package/dist/either/right/when.d.ts +4 -0
  396. package/dist/either/right/when.mjs +16 -0
  397. package/dist/either/whenHasInformation.cjs +24 -0
  398. package/dist/either/whenHasInformation.d.ts +8 -0
  399. package/dist/either/whenHasInformation.mjs +22 -0
  400. package/dist/generator/asyncFilter.cjs +20 -0
  401. package/dist/generator/asyncFilter.d.ts +8 -0
  402. package/dist/generator/asyncFilter.mjs +18 -0
  403. package/dist/generator/asyncLoop.cjs +26 -0
  404. package/dist/generator/asyncLoop.d.ts +10 -0
  405. package/dist/generator/asyncLoop.mjs +24 -0
  406. package/dist/generator/asyncMap.cjs +18 -0
  407. package/dist/generator/asyncMap.d.ts +6 -0
  408. package/dist/generator/asyncMap.mjs +16 -0
  409. package/dist/generator/asyncReduce.cjs +44 -0
  410. package/dist/generator/asyncReduce.d.ts +30 -0
  411. package/dist/generator/asyncReduce.mjs +42 -0
  412. package/dist/generator/execute.cjs +17 -0
  413. package/dist/generator/execute.d.ts +2 -0
  414. package/dist/generator/execute.mjs +15 -0
  415. package/dist/generator/filter.cjs +20 -0
  416. package/dist/generator/filter.d.ts +8 -0
  417. package/dist/generator/filter.mjs +18 -0
  418. package/dist/generator/index.cjs +23 -0
  419. package/dist/generator/index.d.ts +9 -0
  420. package/dist/generator/index.mjs +9 -0
  421. package/dist/generator/loop.cjs +26 -0
  422. package/dist/generator/loop.d.ts +15 -0
  423. package/dist/generator/loop.mjs +24 -0
  424. package/dist/generator/map.cjs +18 -0
  425. package/dist/generator/map.d.ts +6 -0
  426. package/dist/generator/map.mjs +16 -0
  427. package/dist/generator/reduce.cjs +42 -0
  428. package/dist/generator/reduce.d.ts +30 -0
  429. package/dist/generator/reduce.mjs +40 -0
  430. package/dist/index.cjs +83 -133
  431. package/dist/index.d.ts +15 -26
  432. package/dist/index.mjs +49 -124
  433. package/dist/number/abs.cjs +7 -0
  434. package/dist/number/abs.d.ts +1 -0
  435. package/dist/number/abs.mjs +5 -0
  436. package/dist/number/acos.cjs +7 -0
  437. package/dist/number/acos.d.ts +1 -0
  438. package/dist/number/acos.mjs +5 -0
  439. package/dist/number/add.cjs +12 -0
  440. package/dist/number/add.d.ts +2 -0
  441. package/dist/number/add.mjs +10 -0
  442. package/dist/number/asin.cjs +7 -0
  443. package/dist/number/asin.d.ts +1 -0
  444. package/dist/number/asin.mjs +5 -0
  445. package/dist/number/atan.cjs +7 -0
  446. package/dist/number/atan.d.ts +1 -0
  447. package/dist/number/atan.mjs +5 -0
  448. package/dist/number/atan2.cjs +12 -0
  449. package/dist/number/atan2.d.ts +2 -0
  450. package/dist/number/atan2.mjs +10 -0
  451. package/dist/number/ceil.cjs +7 -0
  452. package/dist/number/ceil.d.ts +1 -0
  453. package/dist/number/ceil.mjs +5 -0
  454. package/dist/number/clamp.cjs +14 -0
  455. package/dist/number/clamp.d.ts +2 -0
  456. package/dist/number/clamp.mjs +12 -0
  457. package/dist/number/cos.cjs +7 -0
  458. package/dist/number/cos.d.ts +1 -0
  459. package/dist/number/cos.mjs +5 -0
  460. package/dist/number/divide.cjs +12 -0
  461. package/dist/number/divide.d.ts +2 -0
  462. package/dist/number/divide.mjs +10 -0
  463. package/dist/number/floor.cjs +7 -0
  464. package/dist/number/floor.d.ts +1 -0
  465. package/dist/number/floor.mjs +5 -0
  466. package/dist/number/index.cjs +49 -0
  467. package/dist/number/index.d.ts +22 -0
  468. package/dist/number/index.mjs +22 -0
  469. package/dist/number/max.cjs +12 -0
  470. package/dist/number/max.d.ts +2 -0
  471. package/dist/number/max.mjs +10 -0
  472. package/dist/number/min.cjs +12 -0
  473. package/dist/number/min.d.ts +2 -0
  474. package/dist/number/min.mjs +10 -0
  475. package/dist/number/modulo.cjs +12 -0
  476. package/dist/number/modulo.d.ts +2 -0
  477. package/dist/number/modulo.mjs +10 -0
  478. package/dist/number/multiply.cjs +12 -0
  479. package/dist/number/multiply.d.ts +2 -0
  480. package/dist/number/multiply.mjs +10 -0
  481. package/dist/number/negate.cjs +7 -0
  482. package/dist/number/negate.d.ts +1 -0
  483. package/dist/number/negate.mjs +5 -0
  484. package/dist/number/power.cjs +12 -0
  485. package/dist/number/power.d.ts +2 -0
  486. package/dist/number/power.mjs +10 -0
  487. package/dist/number/round.cjs +7 -0
  488. package/dist/number/round.d.ts +1 -0
  489. package/dist/number/round.mjs +5 -0
  490. package/dist/number/sin.cjs +7 -0
  491. package/dist/number/sin.d.ts +1 -0
  492. package/dist/number/sin.mjs +5 -0
  493. package/dist/number/subtract.cjs +12 -0
  494. package/dist/number/subtract.d.ts +2 -0
  495. package/dist/number/subtract.mjs +10 -0
  496. package/dist/number/tan.cjs +7 -0
  497. package/dist/number/tan.d.ts +1 -0
  498. package/dist/number/tan.mjs +5 -0
  499. package/dist/number/trunc.cjs +7 -0
  500. package/dist/number/trunc.d.ts +1 -0
  501. package/dist/number/trunc.mjs +5 -0
  502. package/dist/object/assign.cjs +15 -0
  503. package/dist/object/assign.d.ts +4 -0
  504. package/dist/object/assign.mjs +13 -0
  505. package/dist/object/entries.cjs +10 -0
  506. package/dist/object/entries.d.ts +7 -0
  507. package/dist/object/entries.mjs +8 -0
  508. package/dist/object/fromEntries.cjs +7 -0
  509. package/dist/object/fromEntries.d.ts +6 -0
  510. package/dist/object/fromEntries.mjs +5 -0
  511. package/dist/object/getProperty.cjs +12 -0
  512. package/dist/object/getProperty.d.ts +8 -0
  513. package/dist/object/getProperty.mjs +10 -0
  514. package/dist/object/hasKeys.cjs +18 -0
  515. package/dist/object/hasKeys.d.ts +3 -0
  516. package/dist/object/hasKeys.mjs +16 -0
  517. package/dist/object/index.cjs +31 -0
  518. package/dist/object/index.d.ts +14 -0
  519. package/dist/object/index.mjs +13 -0
  520. package/dist/object/keys.cjs +7 -0
  521. package/dist/object/keys.d.ts +1 -0
  522. package/dist/object/keys.mjs +5 -0
  523. package/dist/object/omit.cjs +24 -0
  524. package/dist/object/omit.d.ts +8 -0
  525. package/dist/object/omit.mjs +22 -0
  526. package/dist/object/override.cjs +18 -0
  527. package/dist/object/override.d.ts +2 -0
  528. package/dist/object/override.mjs +16 -0
  529. package/dist/object/pick.cjs +24 -0
  530. package/dist/object/pick.d.ts +7 -0
  531. package/dist/object/pick.mjs +22 -0
  532. package/dist/object/to.cjs +16 -0
  533. package/dist/object/to.d.ts +10 -0
  534. package/dist/object/to.mjs +14 -0
  535. package/dist/object/transformProperties.cjs +18 -0
  536. package/dist/object/transformProperties.d.ts +10 -0
  537. package/dist/object/transformProperties.mjs +16 -0
  538. package/dist/object/transformProperty.cjs +15 -0
  539. package/dist/object/transformProperty.d.ts +7 -0
  540. package/dist/object/transformProperty.mjs +13 -0
  541. package/dist/object/types/UnionObjectToIntersection.d.ts +2 -0
  542. package/dist/object/types/assignObjects.d.ts +2 -0
  543. package/dist/object/types/flatObject.d.ts +25 -0
  544. package/dist/object/types/getPropsWithValue.d.ts +4 -0
  545. package/dist/object/types/index.d.ts +6 -0
  546. package/dist/object/types/partialKeys.d.ts +2 -0
  547. package/dist/object/types/requiredKeys.d.ts +2 -0
  548. package/dist/object/values.cjs +7 -0
  549. package/dist/object/values.d.ts +4 -0
  550. package/dist/object/values.mjs +5 -0
  551. package/dist/pattern/exhaustive.cjs +9 -0
  552. package/dist/pattern/exhaustive.d.ts +3 -0
  553. package/dist/pattern/exhaustive.mjs +7 -0
  554. package/dist/pattern/index.cjs +22 -0
  555. package/dist/pattern/index.d.ts +8 -0
  556. package/dist/pattern/index.mjs +8 -0
  557. package/dist/pattern/isMatch.cjs +44 -0
  558. package/dist/pattern/isMatch.d.ts +2 -0
  559. package/dist/pattern/isMatch.mjs +42 -0
  560. package/dist/pattern/match.cjs +18 -0
  561. package/dist/pattern/match.d.ts +6 -0
  562. package/dist/pattern/match.mjs +16 -0
  563. package/dist/pattern/matchPrimitive.cjs +17 -0
  564. package/dist/pattern/matchPrimitive.d.ts +3 -0
  565. package/dist/pattern/matchPrimitive.mjs +15 -0
  566. package/dist/pattern/otherwise.cjs +17 -0
  567. package/dist/pattern/otherwise.d.ts +4 -0
  568. package/dist/pattern/otherwise.mjs +15 -0
  569. package/dist/pattern/result.cjs +13 -0
  570. package/dist/pattern/result.d.ts +7 -0
  571. package/dist/pattern/result.mjs +10 -0
  572. package/dist/pattern/types/complexMatchedValue/array.d.ts +40 -0
  573. package/dist/pattern/types/complexMatchedValue/index.d.ts +6 -0
  574. package/dist/pattern/types/complexMatchedValue/maybeAll.d.ts +3 -0
  575. package/dist/pattern/types/complexMatchedValue/object.d.ts +11 -0
  576. package/dist/pattern/types/complexMatchedValue/primitive.d.ts +9 -0
  577. package/dist/pattern/types/complexUnMatchedValue/array.d.ts +27 -0
  578. package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +66 -0
  579. package/dist/pattern/types/complexUnMatchedValue/index.d.ts +9 -0
  580. package/dist/pattern/types/complexUnMatchedValue/maybeAll.d.ts +3 -0
  581. package/dist/pattern/types/complexUnMatchedValue/object.d.ts +17 -0
  582. package/dist/pattern/types/complexUnMatchedValue/primitive.d.ts +8 -0
  583. package/dist/pattern/types/complexUnMatchedValue/unionObject.d.ts +3 -0
  584. package/dist/pattern/types/index.d.ts +3 -0
  585. package/dist/pattern/types/pattern.cjs +5 -0
  586. package/dist/pattern/types/pattern.d.ts +37 -0
  587. package/dist/pattern/types/pattern.mjs +3 -0
  588. package/dist/pattern/union.cjs +20 -0
  589. package/dist/pattern/union.d.ts +6 -0
  590. package/dist/pattern/union.mjs +18 -0
  591. package/dist/string/at/default.cjs +12 -0
  592. package/dist/string/at/default.d.ts +2 -0
  593. package/dist/string/at/default.mjs +10 -0
  594. package/dist/string/at/first.cjs +7 -0
  595. package/dist/string/at/first.d.ts +2 -0
  596. package/dist/string/at/first.mjs +5 -0
  597. package/dist/string/at/index.d.ts +3 -0
  598. package/dist/string/at/last.cjs +9 -0
  599. package/dist/string/at/last.d.ts +2 -0
  600. package/dist/string/at/last.mjs +7 -0
  601. package/dist/string/capitalize.cjs +7 -0
  602. package/dist/string/capitalize.d.ts +1 -0
  603. package/dist/string/capitalize.mjs +5 -0
  604. package/dist/string/charAt.cjs +12 -0
  605. package/dist/string/charAt.d.ts +2 -0
  606. package/dist/string/charAt.mjs +10 -0
  607. package/dist/string/concat.cjs +12 -0
  608. package/dist/string/concat.d.ts +2 -0
  609. package/dist/string/concat.mjs +10 -0
  610. package/dist/string/endsWith.cjs +12 -0
  611. package/dist/string/endsWith.d.ts +2 -0
  612. package/dist/string/endsWith.mjs +10 -0
  613. package/dist/string/includes.cjs +12 -0
  614. package/dist/string/includes.d.ts +2 -0
  615. package/dist/string/includes.mjs +10 -0
  616. package/dist/string/index.cjs +67 -0
  617. package/dist/string/index.d.ts +28 -0
  618. package/dist/string/index.mjs +31 -0
  619. package/dist/string/indexOf.cjs +13 -0
  620. package/dist/string/indexOf.d.ts +2 -0
  621. package/dist/string/indexOf.mjs +11 -0
  622. package/dist/string/isKeyof.cjs +12 -0
  623. package/dist/string/isKeyof.d.ts +3 -0
  624. package/dist/string/isKeyof.mjs +10 -0
  625. package/dist/string/lastIndexOf.cjs +13 -0
  626. package/dist/string/lastIndexOf.d.ts +2 -0
  627. package/dist/string/lastIndexOf.mjs +11 -0
  628. package/dist/string/match.cjs +13 -0
  629. package/dist/string/match.d.ts +2 -0
  630. package/dist/string/match.mjs +11 -0
  631. package/dist/string/matchAll.cjs +12 -0
  632. package/dist/string/matchAll.d.ts +2 -0
  633. package/dist/string/matchAll.mjs +10 -0
  634. package/dist/string/normalize.cjs +12 -0
  635. package/dist/string/normalize.d.ts +3 -0
  636. package/dist/string/normalize.mjs +10 -0
  637. package/dist/string/padEnd.cjs +12 -0
  638. package/dist/string/padEnd.d.ts +2 -0
  639. package/dist/string/padEnd.mjs +10 -0
  640. package/dist/string/padStart.cjs +12 -0
  641. package/dist/string/padStart.d.ts +2 -0
  642. package/dist/string/padStart.mjs +10 -0
  643. package/dist/string/repeat.cjs +15 -0
  644. package/dist/string/repeat.d.ts +2 -0
  645. package/dist/string/repeat.mjs +13 -0
  646. package/dist/string/replace.cjs +12 -0
  647. package/dist/string/replace.d.ts +2 -0
  648. package/dist/string/replace.mjs +10 -0
  649. package/dist/string/replaceAll.cjs +12 -0
  650. package/dist/string/replaceAll.d.ts +2 -0
  651. package/dist/string/replaceAll.mjs +10 -0
  652. package/dist/string/search.cjs +13 -0
  653. package/dist/string/search.d.ts +2 -0
  654. package/dist/string/search.mjs +11 -0
  655. package/dist/string/slice.cjs +12 -0
  656. package/dist/string/slice.d.ts +2 -0
  657. package/dist/string/slice.mjs +10 -0
  658. package/dist/string/split.cjs +12 -0
  659. package/dist/string/split.d.ts +7 -0
  660. package/dist/string/split.mjs +10 -0
  661. package/dist/string/startsWith.cjs +12 -0
  662. package/dist/string/startsWith.d.ts +2 -0
  663. package/dist/string/startsWith.mjs +10 -0
  664. package/dist/string/substring.cjs +12 -0
  665. package/dist/string/substring.d.ts +2 -0
  666. package/dist/string/substring.mjs +10 -0
  667. package/dist/string/test.cjs +12 -0
  668. package/dist/string/test.d.ts +2 -0
  669. package/dist/string/test.mjs +10 -0
  670. package/dist/string/toLowerCase.cjs +7 -0
  671. package/dist/string/toLowerCase.d.ts +1 -0
  672. package/dist/string/toLowerCase.mjs +5 -0
  673. package/dist/string/toUpperCase.cjs +7 -0
  674. package/dist/string/toUpperCase.d.ts +1 -0
  675. package/dist/string/toUpperCase.mjs +5 -0
  676. package/dist/string/trim/default.cjs +7 -0
  677. package/dist/string/trim/default.d.ts +1 -0
  678. package/dist/string/trim/default.mjs +5 -0
  679. package/dist/string/trim/end.cjs +7 -0
  680. package/dist/string/trim/end.d.ts +1 -0
  681. package/dist/string/trim/end.mjs +5 -0
  682. package/dist/string/trim/index.d.ts +3 -0
  683. package/dist/string/trim/start.cjs +7 -0
  684. package/dist/string/trim/start.d.ts +1 -0
  685. package/dist/string/trim/start.mjs +5 -0
  686. package/dist/string/types/endsWith.d.ts +1 -0
  687. package/dist/string/types/first.d.ts +2 -0
  688. package/dist/string/types/includes.d.ts +1 -0
  689. package/dist/string/types/index.d.ts +7 -0
  690. package/dist/string/types/last.d.ts +2 -0
  691. package/dist/string/types/normalizeForm.d.ts +1 -0
  692. package/dist/string/types/split.d.ts +6 -0
  693. package/dist/string/types/startsWith.d.ts +1 -0
  694. package/dist/string/uncapitalize.cjs +7 -0
  695. package/dist/string/uncapitalize.d.ts +1 -0
  696. package/dist/string/uncapitalize.mjs +5 -0
  697. package/package.json +21 -27
  698. package/dist/addThis.d.ts +0 -2
  699. package/dist/entryUseMapper.d.ts +0 -6
  700. package/dist/expectType.d.ts +0 -6
  701. package/dist/getLastOfUnion.d.ts +0 -2
  702. package/dist/getPropsWithTrueValue.d.ts +0 -3
  703. package/dist/getTypedEntries.d.ts +0 -6
  704. package/dist/getTypedKeys.d.ts +0 -1
  705. package/dist/hasKey.d.ts +0 -2
  706. package/dist/incremente.d.ts +0 -33
  707. package/dist/mergeObjects.d.ts +0 -4
  708. package/dist/overrideInterface.d.ts +0 -1
  709. package/dist/partialKeys.d.ts +0 -2
  710. package/dist/requiredKeys.d.ts +0 -2
  711. package/dist/simpleClone.d.ts +0 -1
  712. package/dist/simplifyType.d.ts +0 -9
  713. package/dist/sleep.d.ts +0 -1
  714. package/dist/types.d.ts +0 -4
  715. package/dist/unPartial.d.ts +0 -10
  716. package/dist/unionToIntersection.d.ts +0 -1
  717. package/dist/unionToTuple.d.ts +0 -4
  718. package/dist/uniqueGeneric.d.ts +0 -5
  719. /package/dist/{escapeRegExp.d.ts → common/escapeRegExp.d.ts} +0 -0
  720. /package/dist/{isEqual.d.ts → common/types/isEqual.d.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ import { type Adaptor, type FixDeepFunctionInfer, type AnyFunction, type SimplifyTopLevel } from "../common";
2
+ type TransformObject<GenericObjectInput extends object = object> = {
3
+ [Prop in keyof GenericObjectInput]?: (input: GenericObjectInput[Prop]) => unknown;
4
+ };
5
+ type ComputesResult<GenericObjectInput extends object, GenericTransformObject extends TransformObject<GenericObjectInput>> = SimplifyTopLevel<Omit<GenericObjectInput, keyof GenericTransformObject> & {
6
+ [Prop in keyof GenericTransformObject]: (ReturnType<Adaptor<GenericTransformObject[Prop], AnyFunction>> | (undefined extends GenericTransformObject[Prop] ? GenericObjectInput[Adaptor<Prop, keyof GenericObjectInput>] : never));
7
+ }>;
8
+ export declare function transformProperties<GenericObjectInput extends object, GenericTransformObject extends TransformObject<NoInfer<GenericObjectInput>>>(transformObject: TransformObject<NoInfer<GenericObjectInput>> & GenericTransformObject): (obj: GenericObjectInput) => ComputesResult<NoInfer<GenericObjectInput>, NoInfer<GenericTransformObject>>;
9
+ export declare function transformProperties<GenericObjectInput extends object, GenericTransformObject extends TransformObject<GenericObjectInput>>(obj: GenericObjectInput, transformObject: FixDeepFunctionInfer<TransformObject<GenericObjectInput>, GenericTransformObject>): ComputesResult<GenericObjectInput, GenericTransformObject>;
10
+ export {};
@@ -0,0 +1,16 @@
1
+ function transformProperties(...args) {
2
+ if (args.length === 1) {
3
+ const [transformers] = args;
4
+ return (obj) => transformProperties(obj, transformers);
5
+ }
6
+ const [obj, transformObject] = args;
7
+ return Object.entries(transformObject)
8
+ .reduce((acc, [key, theFunction]) => {
9
+ if (theFunction) {
10
+ acc[key] = theFunction(acc[key]);
11
+ }
12
+ return acc;
13
+ }, { ...obj });
14
+ }
15
+
16
+ export { transformProperties };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ function transformProperty(...args) {
4
+ if (args.length === 2) {
5
+ const [key, transform] = args;
6
+ return (obj) => transformProperty(obj, key, transform);
7
+ }
8
+ const [obj, key, transform] = args;
9
+ return {
10
+ ...obj,
11
+ [key]: transform(obj[key]),
12
+ };
13
+ }
14
+
15
+ exports.transformProperty = transformProperty;
@@ -0,0 +1,7 @@
1
+ import { type SimplifyTopLevel } from "../common";
2
+ export declare function transformProperty<GenericObject extends object, GenericKey extends keyof GenericObject, GenericNewValue extends unknown>(key: GenericKey, transform: (value: GenericObject[GenericKey]) => GenericNewValue): (obj: GenericObject) => SimplifyTopLevel<{
3
+ [Prop in GenericKey]: GenericNewValue;
4
+ } & Omit<GenericObject, GenericKey>>;
5
+ export declare function transformProperty<GenericObject extends object, GenericKey extends keyof GenericObject, GenericNewValue extends unknown>(obj: GenericObject, key: GenericKey, transform: (value: GenericObject[GenericKey]) => GenericNewValue): SimplifyTopLevel<{
6
+ [Prop in GenericKey]: GenericNewValue;
7
+ } & Omit<GenericObject, GenericKey>>;
@@ -0,0 +1,13 @@
1
+ function transformProperty(...args) {
2
+ if (args.length === 2) {
3
+ const [key, transform] = args;
4
+ return (obj) => transformProperty(obj, key, transform);
5
+ }
6
+ const [obj, key, transform] = args;
7
+ return {
8
+ ...obj,
9
+ [key]: transform(obj[key]),
10
+ };
11
+ }
12
+
13
+ export { transformProperty };
@@ -0,0 +1,2 @@
1
+ import { type UnionToIntersection } from "../../common";
2
+ export type UnionObjectToIntersection<GenericValue extends object> = UnionToIntersection<GenericValue> extends infer InferredObject extends object ? InferredObject : never;
@@ -0,0 +1,2 @@
1
+ import { type SimplifyTopLevel } from "../../common/types/simplifyTopLevel";
2
+ export type AssignObjects<GenericFirstObject extends object, GenericSecondObject extends object> = SimplifyTopLevel<Omit<GenericFirstObject, keyof GenericSecondObject> & GenericSecondObject>;
@@ -0,0 +1,25 @@
1
+ import { type TupleHasSpread } from "../../array";
2
+ import { type AnyTuple, type IsEqual } from "../../common";
3
+ export type FlatObject<GenericObject extends object, GenericPath extends string = ""> = GenericObject extends object ? ((Exclude<GenericObject, readonly any[]> extends infer InferredObject extends object ? IsEqual<InferredObject, never> extends true ? never : {
4
+ [Prop in Extract<keyof InferredObject, string | number>]: InferredObject[Prop] extends object ? FlatObject<InferredObject[Prop], `${GenericPath}.${Prop}`> : {
5
+ path: `${GenericPath}.${Prop}`;
6
+ value: InferredObject[Prop];
7
+ };
8
+ }[Extract<keyof InferredObject, string | number>] : never) | (GenericObject extends AnyTuple ? TupleHasSpread<GenericObject> extends true ? never : GenericObject extends readonly [
9
+ ...infer InferredRest,
10
+ infer InferredLast
11
+ ] ? ((InferredLast extends object ? FlatObject<InferredLast, `${GenericPath}.[${InferredRest["length"]}]`> : {
12
+ path: `${GenericPath}.[${InferredRest["length"]}]`;
13
+ value: InferredLast;
14
+ }) | (IsEqual<InferredRest, []> extends true ? never : FlatObject<InferredRest, GenericPath>)) : never : never) | (GenericObject extends AnyTuple ? TupleHasSpread<GenericObject> extends true ? GenericObject[number] extends infer InferredValue ? InferredValue extends object ? FlatObject<InferredValue, `${GenericPath}.[number]`> : {
15
+ path: `${GenericPath}.[number]`;
16
+ value: InferredValue;
17
+ } : never : never : never) | (Exclude<Extract<GenericObject, readonly any[]>, AnyTuple> extends infer InferredArray extends readonly any[] ? IsEqual<InferredArray, never> extends true ? never : InferredArray[number] extends infer InferredValue ? InferredValue extends object ? FlatObject<InferredValue, `${GenericPath}.[number]`> : {
18
+ path: `${GenericPath}.[number]`;
19
+ value: InferredValue;
20
+ } : never : never)) extends infer InferredResult extends {
21
+ path: string;
22
+ value: any;
23
+ } ? IsEqual<GenericPath, ""> extends true ? IsEqual<InferredResult, never> extends true ? {} : {
24
+ [Result in InferredResult as Result["path"] extends `.${infer inferredPath}` ? inferredPath : never]: Result["value"];
25
+ } : InferredResult : never : never;
@@ -0,0 +1,4 @@
1
+ import { type IsEqual } from "../../common";
2
+ export type GetPropsWithValue<GenericObject extends object, GenericValue extends unknown> = {
3
+ [Prop in keyof GenericObject]: IsEqual<GenericObject[Prop], GenericValue> extends true ? Prop : never;
4
+ }[keyof GenericObject];
@@ -0,0 +1,6 @@
1
+ export * from "./assignObjects";
2
+ export * from "./partialKeys";
3
+ export * from "./requiredKeys";
4
+ export * from "./UnionObjectToIntersection";
5
+ export * from "./getPropsWithValue";
6
+ export * from "./flatObject";
@@ -0,0 +1,2 @@
1
+ import { type SimplifyTopLevel } from "../../common";
2
+ export type PartialKeys<T extends object, K extends keyof T = keyof T> = SimplifyTopLevel<Omit<T, K> & Partial<Pick<T, K>>>;
@@ -0,0 +1,2 @@
1
+ import { type SimplifyTopLevel } from "../../common/types/simplifyTopLevel";
2
+ export type RequiredKeys<GenericObject extends object, GenericKeys extends keyof GenericObject = keyof GenericObject> = SimplifyTopLevel<Required<Pick<GenericObject, GenericKeys>> & GenericObject>;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ function values(object) {
4
+ return Object.values(object);
5
+ }
6
+
7
+ exports.values = values;
@@ -0,0 +1,4 @@
1
+ import { type AnyValue } from "../common/types/anyValue";
2
+ export declare function values<GenericValue extends AnyValue>(object: {
3
+ [key: string]: GenericValue;
4
+ } | ArrayLike<GenericValue>): GenericValue[];
@@ -0,0 +1,5 @@
1
+ function values(object) {
2
+ return Object.values(object);
3
+ }
4
+
5
+ export { values };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var unwrap = require('../common/unwrap.cjs');
4
+
5
+ function exhaustive(result) {
6
+ return unwrap.unwrap(result);
7
+ }
8
+
9
+ exports.exhaustive = exhaustive;
@@ -0,0 +1,3 @@
1
+ import { type Unwrap } from "../common";
2
+ import { type PatternResult } from "./result";
3
+ export declare function exhaustive<const GenericValue extends unknown, GenericResult extends PatternResult<GenericValue>>(result: GenericResult): Unwrap<GenericResult>;
@@ -0,0 +1,7 @@
1
+ import { unwrap } from '../common/unwrap.mjs';
2
+
3
+ function exhaustive(result) {
4
+ return unwrap(result);
5
+ }
6
+
7
+ export { exhaustive };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var result = require('./result.cjs');
4
+ var exhaustive = require('./exhaustive.cjs');
5
+ var otherwise = require('./otherwise.cjs');
6
+ var matchPrimitive = require('./matchPrimitive.cjs');
7
+ var match = require('./match.cjs');
8
+ var isMatch = require('./isMatch.cjs');
9
+ var pattern = require('./types/pattern.cjs');
10
+ var union = require('./union.cjs');
11
+
12
+
13
+
14
+ exports.isResult = result.isResult;
15
+ exports.result = result.result;
16
+ exports.exhaustive = exhaustive.exhaustive;
17
+ exports.otherwise = otherwise.otherwise;
18
+ exports.matchPrimitive = matchPrimitive.matchPrimitive;
19
+ exports.match = match.match;
20
+ exports.isMatch = isMatch.isMatch;
21
+ exports.SymbolToolPatternFunctionLabel = pattern.SymbolToolPatternFunctionLabel;
22
+ exports.union = union.union;
@@ -0,0 +1,8 @@
1
+ export * from "./result";
2
+ export * from "./exhaustive";
3
+ export * from "./otherwise";
4
+ export * from "./matchPrimitive";
5
+ export * from "./match";
6
+ export * from "./isMatch";
7
+ export * from "./types";
8
+ export * from "./union";
@@ -0,0 +1,8 @@
1
+ export { isResult, result } from './result.mjs';
2
+ export { exhaustive } from './exhaustive.mjs';
3
+ export { otherwise } from './otherwise.mjs';
4
+ export { matchPrimitive } from './matchPrimitive.mjs';
5
+ export { match } from './match.mjs';
6
+ export { isMatch } from './isMatch.mjs';
7
+ export { SymbolToolPatternFunctionLabel } from './types/pattern.mjs';
8
+ export { union } from './union.mjs';
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var pattern = require('./types/pattern.cjs');
4
+
5
+ const SymbolToolPatternFunction = Symbol.for(pattern.SymbolToolPatternFunctionLabel);
6
+ function isMatch(input, pattern) {
7
+ if (typeof pattern === "string"
8
+ || typeof pattern === "number"
9
+ || typeof pattern === "boolean"
10
+ || typeof pattern === "bigint"
11
+ || pattern === null
12
+ || pattern === undefined) {
13
+ return input === pattern;
14
+ }
15
+ else if (typeof pattern === "function") {
16
+ return pattern(input);
17
+ }
18
+ else if (pattern instanceof Array && input instanceof Array) {
19
+ for (const key in pattern) {
20
+ if (!isMatch(input[key], pattern[key])) {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ }
26
+ else if (pattern
27
+ && typeof pattern === "object"
28
+ && SymbolToolPatternFunction in pattern) {
29
+ return pattern[SymbolToolPatternFunction](input);
30
+ }
31
+ else if (pattern
32
+ && typeof pattern === "object"
33
+ && input && typeof input === "object") {
34
+ for (const key in pattern) {
35
+ if (!isMatch(input[key], pattern[key])) {
36
+ return false;
37
+ }
38
+ }
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+
44
+ exports.isMatch = isMatch;
@@ -0,0 +1,2 @@
1
+ import { type Pattern } from "./types/pattern";
2
+ export declare function isMatch(input: unknown, pattern: Pattern): boolean;
@@ -0,0 +1,42 @@
1
+ import { SymbolToolPatternFunctionLabel } from './types/pattern.mjs';
2
+
3
+ const SymbolToolPatternFunction = Symbol.for(SymbolToolPatternFunctionLabel);
4
+ function isMatch(input, pattern) {
5
+ if (typeof pattern === "string"
6
+ || typeof pattern === "number"
7
+ || typeof pattern === "boolean"
8
+ || typeof pattern === "bigint"
9
+ || pattern === null
10
+ || pattern === undefined) {
11
+ return input === pattern;
12
+ }
13
+ else if (typeof pattern === "function") {
14
+ return pattern(input);
15
+ }
16
+ else if (pattern instanceof Array && input instanceof Array) {
17
+ for (const key in pattern) {
18
+ if (!isMatch(input[key], pattern[key])) {
19
+ return false;
20
+ }
21
+ }
22
+ return true;
23
+ }
24
+ else if (pattern
25
+ && typeof pattern === "object"
26
+ && SymbolToolPatternFunction in pattern) {
27
+ return pattern[SymbolToolPatternFunction](input);
28
+ }
29
+ else if (pattern
30
+ && typeof pattern === "object"
31
+ && input && typeof input === "object") {
32
+ for (const key in pattern) {
33
+ if (!isMatch(input[key], pattern[key])) {
34
+ return false;
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+
42
+ export { isMatch };
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var result = require('./result.cjs');
4
+ var isMatch = require('./isMatch.cjs');
5
+
6
+ function match(...args) {
7
+ if (args.length === 2) {
8
+ const [pattern, theFunction] = args;
9
+ return (input) => match(input, pattern, theFunction);
10
+ }
11
+ const [input, pattern, theFunction] = args;
12
+ if (isMatch.isMatch(input, pattern)) {
13
+ return result.result(theFunction(input));
14
+ }
15
+ return input;
16
+ }
17
+
18
+ exports.match = match;
@@ -0,0 +1,6 @@
1
+ import { type IsEqual, type AnyValue, type EscapeVoid, type FixDeepFunctionInfer } from "../common";
2
+ import { type PatternValue, type Pattern } from "./types/pattern";
3
+ import { type PatternResult } from "./result";
4
+ import { type ComplexMatchedValue, type ComplexUnMatchedValue } from "./types";
5
+ export declare function match<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, const GenericPattern extends Pattern<GenericInputValue>, GenericPatternValue extends PatternValue<GenericPattern>, GenericOutput extends AnyValue | EscapeVoid, GenericMatchedValue extends Extract<ComplexMatchedValue<GenericInputValue, GenericPatternValue>, any>>(pattern: FixDeepFunctionInfer<Pattern<GenericInputValue>, GenericPattern>, theFunction: (value: Extract<ComplexMatchedValue<GenericInputValue, PatternValue<GenericPattern>>, any>) => GenericOutput): (input: GenericInput | GenericInputValue | GenericInputPatternResult) => ((IsEqual<GenericMatchedValue, never> extends true ? never : PatternResult<GenericOutput>) | GenericInputPatternResult | Extract<ComplexUnMatchedValue<GenericInputValue, GenericPatternValue>, any>);
6
+ export declare function match<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, const GenericPattern extends Pattern<GenericInputValue>, GenericPatternValue extends PatternValue<GenericPattern>, GenericOutput extends AnyValue | EscapeVoid, GenericMatchedValue extends Extract<ComplexMatchedValue<GenericInputValue, GenericPatternValue>, any>>(input: GenericInput | GenericInputValue | GenericInputPatternResult, pattern: FixDeepFunctionInfer<Pattern<GenericInputValue>, GenericPattern>, theFunction: (value: Extract<ComplexMatchedValue<GenericInputValue, PatternValue<GenericPattern>>, any>) => GenericOutput): ((IsEqual<GenericMatchedValue, never> extends true ? never : PatternResult<GenericOutput>) | GenericInputPatternResult | Extract<ComplexUnMatchedValue<GenericInputValue, GenericPatternValue>, any>);
@@ -0,0 +1,16 @@
1
+ import { result } from './result.mjs';
2
+ import { isMatch } from './isMatch.mjs';
3
+
4
+ function match(...args) {
5
+ if (args.length === 2) {
6
+ const [pattern, theFunction] = args;
7
+ return (input) => match(input, pattern, theFunction);
8
+ }
9
+ const [input, pattern, theFunction] = args;
10
+ if (isMatch(input, pattern)) {
11
+ return result(theFunction(input));
12
+ }
13
+ return input;
14
+ }
15
+
16
+ export { match };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var result = require('./result.cjs');
4
+
5
+ function matchPrimitive(primitive, theFunction) {
6
+ const formattedPrimitive = primitive instanceof Array
7
+ ? primitive
8
+ : [primitive];
9
+ return (input) => {
10
+ if (!result.isResult(input) && formattedPrimitive.includes(input)) {
11
+ return result.result(theFunction(input));
12
+ }
13
+ return input;
14
+ };
15
+ }
16
+
17
+ exports.matchPrimitive = matchPrimitive;
@@ -0,0 +1,3 @@
1
+ import { type AnyValue } from "..";
2
+ import { type PatternResult } from "./result";
3
+ export declare function matchPrimitive<GenericInput extends AnyValue, GenericMatch extends Exclude<GenericInput, PatternResult>, GenericOutput extends AnyValue>(primitive: GenericMatch | GenericMatch[], theFunction: (predicatedInput: Extract<GenericInput, GenericMatch>) => GenericOutput): (input: GenericInput) => PatternResult<GenericOutput> | Exclude<GenericInput, GenericMatch>;
@@ -0,0 +1,15 @@
1
+ import { isResult, result } from './result.mjs';
2
+
3
+ function matchPrimitive(primitive, theFunction) {
4
+ const formattedPrimitive = primitive instanceof Array
5
+ ? primitive
6
+ : [primitive];
7
+ return (input) => {
8
+ if (!isResult(input) && formattedPrimitive.includes(input)) {
9
+ return result(theFunction(input));
10
+ }
11
+ return input;
12
+ };
13
+ }
14
+
15
+ export { matchPrimitive };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var unwrap = require('../common/unwrap.cjs');
4
+ var result = require('./result.cjs');
5
+
6
+ function otherwise(...args) {
7
+ if (args.length === 1) {
8
+ const [theFunction] = args;
9
+ return (input) => otherwise(input, theFunction);
10
+ }
11
+ const [input, theFunction] = args;
12
+ return result.isResult(input)
13
+ ? unwrap.unwrap(input)
14
+ : theFunction(input);
15
+ }
16
+
17
+ exports.otherwise = otherwise;
@@ -0,0 +1,4 @@
1
+ import { type AnyValue, type Unwrap } from "../common";
2
+ import { type PatternResult } from "./result";
3
+ export declare function otherwise<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, GenericOutput extends AnyValue>(theFunction: (rest: GenericInputValue) => GenericOutput): (input: GenericInput | GenericInputPatternResult | GenericInputValue) => (GenericOutput | Unwrap<GenericInputPatternResult>);
4
+ export declare function otherwise<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, GenericOutput extends AnyValue>(input: GenericInput | GenericInputPatternResult | GenericInputValue, theFunction: (rest: GenericInputValue) => GenericOutput): (GenericOutput | Unwrap<GenericInputPatternResult>);
@@ -0,0 +1,15 @@
1
+ import { unwrap } from '../common/unwrap.mjs';
2
+ import { isResult } from './result.mjs';
3
+
4
+ function otherwise(...args) {
5
+ if (args.length === 1) {
6
+ const [theFunction] = args;
7
+ return (input) => otherwise(input, theFunction);
8
+ }
9
+ const [input, theFunction] = args;
10
+ return isResult(input)
11
+ ? unwrap(input)
12
+ : theFunction(input);
13
+ }
14
+
15
+ export { otherwise };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../common/kind.cjs');
4
+ var wrapValue = require('../common/wrapValue.cjs');
5
+
6
+ const patternResultKind = kind.createKind("pattern-result");
7
+ function result(value) {
8
+ return patternResultKind.addTo(wrapValue.wrapValue(value), null);
9
+ }
10
+ const isResult = patternResultKind.has;
11
+
12
+ exports.isResult = isResult;
13
+ exports.result = result;
@@ -0,0 +1,7 @@
1
+ import { type Kind, type WrappedValue } from "../common";
2
+ declare const patternResultKind: import("../common").KindHandler<import("../common").KindDefinition<"pattern-result", unknown>>;
3
+ export interface PatternResult<GenericValue extends unknown = unknown> extends Kind<typeof patternResultKind.definition>, WrappedValue<GenericValue> {
4
+ }
5
+ export declare function result<const GenericValue extends unknown>(value: GenericValue): PatternResult<GenericValue>;
6
+ export declare const isResult: <GenericInput extends unknown>(input: GenericInput) => input is Extract<GenericInput, Kind<import("../common").KindDefinition<"pattern-result", unknown>, unknown>>;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import { createKind } from '../common/kind.mjs';
2
+ import { wrapValue } from '../common/wrapValue.mjs';
3
+
4
+ const patternResultKind = createKind("pattern-result");
5
+ function result(value) {
6
+ return patternResultKind.addTo(wrapValue(value), null);
7
+ }
8
+ const isResult = patternResultKind.has;
9
+
10
+ export { isResult, result };
@@ -0,0 +1,40 @@
1
+ import { type BreakGenericLink, type Adaptor, type AnyTuple, type IsEqual } from "../../../common";
2
+ import { type ComplexMatchedValue } from ".";
3
+ type ComplexMatchedArrayTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
+ Exclude<Extract<GenericInput, any[]>, AnyTuple>,
5
+ Extract<GenericPatternValue, AnyTuple>
6
+ ] extends [
7
+ infer InferredInput,
8
+ infer InferredPatternValue
9
+ ] ? InferredInput extends any[] ? InferredPatternValue extends AnyTuple ? Extract<InferredInput, InferredPatternValue> extends infer InferredObviousMatchedValue ? IsEqual<InferredObviousMatchedValue, never> extends false ? InferredObviousMatchedValue : InferredPatternValue extends readonly [
10
+ infer InferredPatternFirst,
11
+ ...infer InferredPatternRest
12
+ ] ? [
13
+ Extract<ComplexMatchedValue<InferredInput[number], InferredPatternFirst>, any>,
14
+ ...(InferredPatternRest extends readonly [] ? InferredInput : Adaptor<ComplexMatchedValue<InferredInput, InferredPatternRest>, any[]>)
15
+ ] : never : never : never : never : never);
16
+ type ComplexMatchedTupleTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
17
+ Extract<GenericInput, AnyTuple>,
18
+ Extract<GenericPatternValue, AnyTuple>
19
+ ] extends [
20
+ infer InferredInput,
21
+ infer InferredPatternValue
22
+ ] ? InferredInput extends any ? InferredPatternValue extends any ? Extract<InferredInput, InferredPatternValue> extends infer InferredObviousMatchedValue ? IsEqual<InferredObviousMatchedValue, never> extends false ? InferredObviousMatchedValue : [
23
+ InferredInput,
24
+ InferredPatternValue
25
+ ] extends [
26
+ readonly [infer InferredInputFirst, ...infer inferredInputRest],
27
+ readonly [infer InferredPatternValueFirst, ...infer inferredPatternValueRest]
28
+ ] ? Extract<ComplexMatchedValue<InferredInputFirst, InferredPatternValueFirst>, any> extends infer InferredResult extends InferredInputFirst ? IsEqual<InferredResult, never> extends true ? never : [
29
+ InferredResult,
30
+ ...Adaptor<(IsEqual<inferredPatternValueRest[number], never> extends true ? inferredInputRest : ComplexMatchedValue<inferredInputRest, inferredPatternValueRest>), readonly any[]>
31
+ ] : never : never : never : never : never : never);
32
+ type ComplexMatchedArrayArray<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
33
+ Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
34
+ Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
35
+ ] extends [
36
+ infer InferredInput extends readonly any[],
37
+ infer InferredPatternValue extends readonly any[]
38
+ ] ? IsEqual<InferredPatternValue, never> extends true ? never : InferredPatternValue extends InferredInput ? InferredInput : Extract<ComplexMatchedValue<InferredInput[number], InferredPatternValue[number]>, any>[] : never);
39
+ export type ComplexMatchedArray<GenericInput extends unknown, GenericPatternValue extends unknown> = GenericPatternValue extends readonly [] ? BreakGenericLink<GenericInput> : (ComplexMatchedTupleTuple<GenericInput, GenericPatternValue> | ComplexMatchedArrayTuple<GenericInput, GenericPatternValue> | ComplexMatchedArrayArray<GenericInput, GenericPatternValue>);
40
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type ComplexMatchedPrimitive } from "./primitive";
2
+ import { type ComplexMatchedObject } from "./object";
3
+ import { type ComplexMatchedArray } from "./array";
4
+ import { type PatternValueMaybeAll } from "../pattern";
5
+ import { type ComplexMatchedMaybeAll } from "./maybeAll";
6
+ export type ComplexMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? (ComplexMatchedPrimitive<GenericInput, InferredPatternValue> | ComplexMatchedObject<GenericInput, InferredPatternValue> | ComplexMatchedArray<GenericInput, InferredPatternValue> | ComplexMatchedMaybeAll<GenericInput, GenericPatternValue>) : never;
@@ -0,0 +1,3 @@
1
+ import { type Unwrap, type IsEqual } from "../../../common";
2
+ import { type PatternValueMaybeAll } from "../pattern";
3
+ export type ComplexMatchedMaybeAll<GenericInput extends unknown, GenericPatternValue extends unknown> = Extract<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : Extract<Unwrap<InferredPatternValue>, GenericInput> : never;
@@ -0,0 +1,11 @@
1
+ import { type Adaptor, type SimplifyTopLevel, type IsEqual } from "../../../common";
2
+ import { type ComplexMatchedValue } from ".";
3
+ export type ComplexMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
+ Exclude<Extract<GenericInput, object>, readonly any[]>,
5
+ Exclude<Extract<GenericPatternValue, object>, readonly any[]>
6
+ ] extends [
7
+ infer InferredInput,
8
+ infer InferredPatternValue
9
+ ] ? InferredInput extends any ? InferredPatternValue extends any ? Extract<InferredInput, InferredPatternValue> extends infer InferredObviousMatchedValue ? IsEqual<InferredObviousMatchedValue, never> extends false ? InferredObviousMatchedValue : IsEqual<Extract<keyof InferredInput, keyof InferredPatternValue>, keyof InferredPatternValue> extends false ? never : SimplifyTopLevel<Omit<InferredInput, keyof InferredPatternValue> & {
10
+ -readonly [Prop in keyof InferredPatternValue]: Extract<ComplexMatchedValue<InferredInput[Adaptor<Prop, keyof InferredInput>], InferredPatternValue[Prop]>, any>;
11
+ }> extends infer InferredResult extends InferredInput ? IsEqual<InferredResult, InferredInput> extends true ? InferredInput : InferredResult : never : never : never : never : never);
@@ -0,0 +1,9 @@
1
+ import { type IsEqual } from "../../../common";
2
+ import { type EligiblePrimitiveMatch } from "../pattern";
3
+ export type ComplexMatchedPrimitive<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
+ Extract<GenericInput, EligiblePrimitiveMatch>,
5
+ Extract<GenericPatternValue, EligiblePrimitiveMatch>
6
+ ] extends [
7
+ infer inferredInput extends EligiblePrimitiveMatch,
8
+ infer inferredPatternValue extends EligiblePrimitiveMatch
9
+ ] ? Extract<inferredInput, inferredPatternValue> extends infer inferredValue ? IsEqual<inferredValue, never> extends true ? inferredPatternValue : inferredValue : never : never);
@@ -0,0 +1,27 @@
1
+ import { type Adaptor, type AnyTuple, type IsEqual, type IsUnion } from "../../../common";
2
+ import { type ComplexUnMatchedValue } from ".";
3
+ type ComplexUnMatchedArrayTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
+ Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
5
+ Extract<GenericPatternValue, AnyTuple>
6
+ ] extends [
7
+ infer InferredInput,
8
+ infer _InferredPatternValue
9
+ ] ? InferredInput : never);
10
+ type ComplexUnMatchedTupleTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
11
+ Extract<GenericInput, AnyTuple>,
12
+ Extract<GenericPatternValue, AnyTuple>
13
+ ] extends [
14
+ infer InferredInput,
15
+ infer InferredPatternValue
16
+ ] ? IsEqual<InferredPatternValue, never> extends true ? InferredInput : IsUnion<InferredPatternValue> extends true ? never : InferredInput extends InferredPatternValue ? never : [
17
+ InferredInput,
18
+ InferredPatternValue
19
+ ] extends [
20
+ readonly [infer InferredInputFirst, ...infer InferredInputRest],
21
+ readonly [infer InferredPatternValueFirst, ...infer InferredPatternValueRest]
22
+ ] ? Extract<ComplexUnMatchedValue<InferredInputFirst, InferredPatternValueFirst>, any> extends infer InferredResultFirst ? InferredPatternValueRest extends readonly [] ? IsEqual<InferredResultFirst, never> extends true ? never : [InferredResultFirst, ...InferredInputRest] : ComplexUnMatchedValue<InferredInputRest, InferredPatternValueRest> extends infer InferredResultRest ? [
23
+ IsEqual<InferredResultFirst, never> extends true ? InferredInputFirst : InferredResultFirst,
24
+ ...Adaptor<IsEqual<InferredResultRest, never> extends true ? InferredPatternValueRest : InferredResultRest, readonly any[]>
25
+ ] : never : never : never : never);
26
+ export type ComplexUnMatchedArray<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, readonly []> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : (ComplexUnMatchedTupleTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayTuple<GenericInput, InferredPatternValue>) : never;
27
+ export {};