rubico 1.9.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +3 -2
  3. package/.github/workflows/nodejs.yml +1 -1
  4. package/AggregateReducer.js +19 -0
  5. package/AggregateReducer.test.js +82 -0
  6. package/CHANGELOG.md +22 -1
  7. package/Transducer.js +75 -26
  8. package/Transducer.test.js +117 -0
  9. package/_internal/ComparisonOperator.js +68 -0
  10. package/_internal/File.js +41 -0
  11. package/_internal/FlatMappingAsyncIterator.js +4 -4
  12. package/_internal/FlatMappingIterator.js +1 -1
  13. package/_internal/TimeInLoopSuite.js +138 -0
  14. package/_internal/areAnyValuesPromises.js +23 -0
  15. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  16. package/_internal/arrayExtend.js +3 -2
  17. package/_internal/arrayFilter.js +3 -4
  18. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  19. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  20. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  21. package/_internal/curry4.test.js +25 -0
  22. package/_internal/curry5.test.js +29 -0
  23. package/_internal/curryArgs2.js +43 -0
  24. package/_internal/curryArgs3.test.js +21 -0
  25. package/_internal/curryArgs4.js +65 -0
  26. package/_internal/curryArgs4.test.js +25 -0
  27. package/_internal/equals.js +13 -0
  28. package/_internal/findAllFilePaths.js +22 -0
  29. package/_internal/funcApply.js +2 -0
  30. package/_internal/funcCall.js +14 -0
  31. package/_internal/functionArrayAll.js +26 -0
  32. package/_internal/functionArrayAllSeries.js +55 -0
  33. package/_internal/functionObjectAll.js +32 -0
  34. package/_internal/genericReduce.js +4 -22
  35. package/_internal/genericTransform.js +15 -15
  36. package/_internal/improvedGenericTransform.js +93 -0
  37. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  38. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  39. package/_internal/leftResolverRightResolverCompare.js +19 -0
  40. package/_internal/leftResolverRightValueCompare.js +16 -0
  41. package/_internal/leftValueRightResolverCompare.js +16 -0
  42. package/_internal/objectReduce.js +0 -1
  43. package/_internal/pathResolve.js +6 -0
  44. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  45. package/_internal/reducerFlatMap.js +4 -4
  46. package/_internal/reducerFlatten.js +1 -1
  47. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  48. package/_internal/timeInLoop.js +37 -0
  49. package/_internal/timeInLoop.test.js +18 -0
  50. package/_internal/timeInLoopAsync.js +35 -0
  51. package/_internal/timeInLoopAsync.test.js +22 -0
  52. package/all.js +106 -40
  53. package/and.js +54 -36
  54. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  55. package/archive/_Promise-2023-05-29.js +93 -0
  56. package/archive/arrayMap2-2023-05-29.js +73 -0
  57. package/archive/benchmarks-v1.9.7/all.js +34 -0
  58. package/archive/benchmarks-v1.9.7/and.js +24 -0
  59. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  60. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  61. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  62. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  63. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  64. package/archive/benchmarks-v1.9.7/get.js +44 -0
  65. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  66. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  67. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  69. package/archive/benchmarks-v1.9.7/map.js +892 -0
  70. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  71. package/archive/benchmarks-v1.9.7/or.js +51 -0
  72. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  73. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  74. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  75. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  76. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  77. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  78. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  79. package/assign.js +18 -8
  80. package/bench +65 -0
  81. package/benchmark-output/v1.9.7 +268 -0
  82. package/benchmarks/all.async.js +43 -0
  83. package/benchmarks/all.js +42 -33
  84. package/benchmarks/always.js +15 -0
  85. package/benchmarks/and.async.js +25 -0
  86. package/benchmarks/and.js +20 -19
  87. package/benchmarks/assign.async.js +27 -0
  88. package/benchmarks/assign.js +20 -167
  89. package/benchmarks/curry.js +34 -54
  90. package/benchmarks/eq.async.js +23 -0
  91. package/benchmarks/eq.js +17 -19
  92. package/benchmarks/every.async.js +19 -0
  93. package/benchmarks/every.js +19 -0
  94. package/benchmarks/filter.async.js +32 -0
  95. package/benchmarks/filter.js +27 -1311
  96. package/benchmarks/flatMap.async.js +26 -0
  97. package/benchmarks/flatMap.js +26 -36
  98. package/benchmarks/get.async.js +19 -0
  99. package/benchmarks/get.js +27 -32
  100. package/benchmarks/gt.async.js +23 -0
  101. package/benchmarks/gt.js +17 -19
  102. package/benchmarks/gte.async.js +23 -0
  103. package/benchmarks/gte.js +17 -19
  104. package/benchmarks/lt.async.js +23 -0
  105. package/benchmarks/lt.js +17 -19
  106. package/benchmarks/lte.async.js +23 -0
  107. package/benchmarks/lte.js +17 -19
  108. package/benchmarks/map.async.js +43 -0
  109. package/benchmarks/map.js +24 -876
  110. package/benchmarks/misc/Promise.js +26 -0
  111. package/benchmarks/misc/isPromise.js +30 -0
  112. package/benchmarks/misc/promiseAll.js +36 -0
  113. package/benchmarks/not.js +23 -0
  114. package/benchmarks/omit.js +30 -20
  115. package/benchmarks/or.async.js +25 -0
  116. package/benchmarks/or.js +23 -49
  117. package/benchmarks/pick.js +30 -16
  118. package/benchmarks/pipe.async.js +47 -0
  119. package/benchmarks/pipe.js +46 -151
  120. package/benchmarks/reduce.async.js +32 -0
  121. package/benchmarks/reduce.js +27 -728
  122. package/benchmarks/set.async.js +19 -0
  123. package/benchmarks/set.js +41 -0
  124. package/benchmarks/some.async.js +19 -0
  125. package/benchmarks/some.js +19 -0
  126. package/benchmarks/switchCase.async.js +27 -0
  127. package/benchmarks/switchCase.js +55 -256
  128. package/benchmarks/tap.js +10 -85
  129. package/benchmarks/thunkify.js +15 -0
  130. package/benchmarks/transform.async.js +27 -0
  131. package/benchmarks/transform.js +28 -206
  132. package/benchmarks/tryCatch.async.js +25 -0
  133. package/benchmarks/tryCatch.js +24 -100
  134. package/{distributor.js → build} +50 -50
  135. package/compose.js +46 -0
  136. package/dist/__.es.js +2 -2
  137. package/dist/__.es.min.js +2 -2
  138. package/dist/__.js +2 -2
  139. package/dist/__.min.js +2 -2
  140. package/dist/__.min.mjs +2 -2
  141. package/dist/__.mjs +2 -2
  142. package/dist/all.es.js +173 -92
  143. package/dist/all.es.min.js +3 -3
  144. package/dist/all.js +173 -92
  145. package/dist/all.min.js +3 -3
  146. package/dist/all.min.mjs +3 -3
  147. package/dist/all.mjs +173 -92
  148. package/dist/always.es.js +2 -2
  149. package/dist/always.es.min.js +2 -2
  150. package/dist/always.js +2 -2
  151. package/dist/always.min.js +2 -2
  152. package/dist/always.min.mjs +2 -2
  153. package/dist/always.mjs +2 -2
  154. package/dist/and.es.js +101 -32
  155. package/dist/and.es.min.js +3 -3
  156. package/dist/and.js +101 -32
  157. package/dist/and.min.js +3 -3
  158. package/dist/and.min.mjs +3 -3
  159. package/dist/and.mjs +101 -32
  160. package/dist/assign.es.js +37 -10
  161. package/dist/assign.es.min.js +3 -3
  162. package/dist/assign.js +37 -10
  163. package/dist/assign.min.js +3 -3
  164. package/dist/assign.min.mjs +3 -3
  165. package/dist/assign.mjs +37 -10
  166. package/dist/compose.es.js +71 -0
  167. package/dist/compose.es.min.js +7 -0
  168. package/dist/compose.js +78 -0
  169. package/dist/compose.min.js +8 -0
  170. package/dist/compose.min.mjs +7 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.min.mjs +2 -2
  177. package/dist/curry.mjs +2 -2
  178. package/dist/eq.es.js +172 -49
  179. package/dist/eq.es.min.js +3 -3
  180. package/dist/eq.js +172 -49
  181. package/dist/eq.min.js +3 -3
  182. package/dist/eq.min.mjs +3 -3
  183. package/dist/eq.mjs +172 -49
  184. package/dist/every.es.js +194 -0
  185. package/dist/every.es.min.js +7 -0
  186. package/dist/every.js +201 -0
  187. package/dist/every.min.js +8 -0
  188. package/dist/every.min.mjs +7 -0
  189. package/dist/every.mjs +194 -0
  190. package/dist/filter.es.js +14 -108
  191. package/dist/filter.es.min.js +3 -3
  192. package/dist/filter.js +14 -108
  193. package/dist/filter.min.js +3 -3
  194. package/dist/filter.min.mjs +3 -3
  195. package/dist/filter.mjs +14 -108
  196. package/dist/flatMap.es.js +27 -214
  197. package/dist/flatMap.es.min.js +3 -3
  198. package/dist/flatMap.js +27 -214
  199. package/dist/flatMap.min.js +3 -3
  200. package/dist/flatMap.min.mjs +3 -3
  201. package/dist/flatMap.mjs +27 -214
  202. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  203. package/dist/forEach.es.min.js +7 -0
  204. package/dist/{x/forEach.js → forEach.js} +52 -70
  205. package/dist/forEach.min.js +8 -0
  206. package/dist/forEach.min.mjs +7 -0
  207. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  208. package/dist/get.es.js +60 -5
  209. package/dist/get.es.min.js +3 -3
  210. package/dist/get.js +60 -5
  211. package/dist/get.min.js +3 -3
  212. package/dist/get.min.mjs +3 -3
  213. package/dist/get.mjs +60 -5
  214. package/dist/gt.es.js +171 -48
  215. package/dist/gt.es.min.js +3 -3
  216. package/dist/gt.js +171 -48
  217. package/dist/gt.min.js +3 -3
  218. package/dist/gt.min.mjs +3 -3
  219. package/dist/gt.mjs +171 -48
  220. package/dist/gte.es.js +171 -48
  221. package/dist/gte.es.min.js +3 -3
  222. package/dist/gte.js +171 -48
  223. package/dist/gte.min.js +3 -3
  224. package/dist/gte.min.mjs +3 -3
  225. package/dist/gte.mjs +171 -48
  226. package/dist/lt.es.js +171 -48
  227. package/dist/lt.es.min.js +3 -3
  228. package/dist/lt.js +171 -48
  229. package/dist/lt.min.js +3 -3
  230. package/dist/lt.min.mjs +3 -3
  231. package/dist/lt.mjs +171 -48
  232. package/dist/lte.es.js +171 -48
  233. package/dist/lte.es.min.js +3 -3
  234. package/dist/lte.js +171 -48
  235. package/dist/lte.min.js +3 -3
  236. package/dist/lte.min.mjs +3 -3
  237. package/dist/lte.mjs +171 -48
  238. package/dist/map.es.js +12 -101
  239. package/dist/map.es.min.js +3 -3
  240. package/dist/map.js +12 -101
  241. package/dist/map.min.js +3 -3
  242. package/dist/map.min.mjs +3 -3
  243. package/dist/map.mjs +12 -101
  244. package/dist/not.es.js +75 -14
  245. package/dist/not.es.min.js +3 -3
  246. package/dist/not.js +75 -14
  247. package/dist/not.min.js +3 -3
  248. package/dist/not.min.mjs +3 -3
  249. package/dist/not.mjs +75 -14
  250. package/dist/omit.es.js +7 -2
  251. package/dist/omit.es.min.js +3 -3
  252. package/dist/omit.js +7 -2
  253. package/dist/omit.min.js +3 -3
  254. package/dist/omit.min.mjs +3 -3
  255. package/dist/omit.mjs +7 -2
  256. package/dist/or.es.js +99 -31
  257. package/dist/or.es.min.js +3 -3
  258. package/dist/or.js +99 -31
  259. package/dist/or.min.js +3 -3
  260. package/dist/or.min.mjs +3 -3
  261. package/dist/or.mjs +99 -31
  262. package/dist/pick.es.js +8 -3
  263. package/dist/pick.es.min.js +3 -3
  264. package/dist/pick.js +8 -3
  265. package/dist/pick.min.js +3 -3
  266. package/dist/pick.min.mjs +3 -3
  267. package/dist/pick.mjs +8 -3
  268. package/dist/pipe.es.js +42 -46
  269. package/dist/pipe.es.min.js +3 -3
  270. package/dist/pipe.js +42 -46
  271. package/dist/pipe.min.js +3 -3
  272. package/dist/pipe.min.mjs +3 -3
  273. package/dist/pipe.mjs +42 -46
  274. package/dist/reduce.es.js +52 -94
  275. package/dist/reduce.es.min.js +3 -3
  276. package/dist/reduce.js +52 -94
  277. package/dist/reduce.min.js +3 -3
  278. package/dist/reduce.min.mjs +3 -3
  279. package/dist/reduce.mjs +52 -94
  280. package/dist/rubico.es.js +730 -869
  281. package/dist/rubico.es.min.js +3 -3
  282. package/dist/rubico.js +730 -869
  283. package/dist/rubico.min.js +3 -3
  284. package/dist/rubico.min.mjs +3 -3
  285. package/dist/rubico.mjs +730 -869
  286. package/dist/set.es.js +18 -3
  287. package/dist/set.es.min.js +3 -3
  288. package/dist/set.js +18 -3
  289. package/dist/set.min.js +3 -3
  290. package/dist/set.min.mjs +3 -3
  291. package/dist/set.mjs +18 -3
  292. package/dist/{any.js → some.es.js} +64 -54
  293. package/dist/some.es.min.js +7 -0
  294. package/dist/{any.mjs → some.js} +72 -48
  295. package/dist/some.min.js +8 -0
  296. package/dist/some.min.mjs +7 -0
  297. package/dist/{any.es.js → some.mjs} +65 -48
  298. package/dist/switchCase.es.js +55 -5
  299. package/dist/switchCase.es.min.js +3 -3
  300. package/dist/switchCase.js +55 -5
  301. package/dist/switchCase.min.js +3 -3
  302. package/dist/switchCase.min.mjs +3 -3
  303. package/dist/switchCase.mjs +55 -5
  304. package/dist/tap.es.js +2 -9
  305. package/dist/tap.es.min.js +3 -3
  306. package/dist/tap.js +2 -9
  307. package/dist/tap.min.js +3 -3
  308. package/dist/tap.min.mjs +3 -3
  309. package/dist/tap.mjs +2 -9
  310. package/dist/thunkify.es.js +45 -2
  311. package/dist/thunkify.es.min.js +3 -3
  312. package/dist/thunkify.js +45 -2
  313. package/dist/thunkify.min.js +3 -3
  314. package/dist/thunkify.min.mjs +3 -3
  315. package/dist/thunkify.mjs +45 -2
  316. package/dist/transform.es.js +35 -71
  317. package/dist/transform.es.min.js +3 -3
  318. package/dist/transform.js +35 -71
  319. package/dist/transform.min.js +3 -3
  320. package/dist/transform.min.mjs +3 -3
  321. package/dist/transform.mjs +35 -71
  322. package/dist/tryCatch.es.js +33 -17
  323. package/dist/tryCatch.es.min.js +3 -3
  324. package/dist/tryCatch.js +33 -17
  325. package/dist/tryCatch.min.js +3 -3
  326. package/dist/tryCatch.min.mjs +3 -3
  327. package/dist/tryCatch.mjs +33 -17
  328. package/dist/x/append.es.js +2 -2
  329. package/dist/x/append.es.min.js +2 -2
  330. package/dist/x/append.js +2 -2
  331. package/dist/x/append.min.js +2 -2
  332. package/dist/x/append.min.mjs +2 -2
  333. package/dist/x/append.mjs +2 -2
  334. package/dist/x/callProp.es.js +2 -2
  335. package/dist/x/callProp.es.min.js +2 -2
  336. package/dist/x/callProp.js +2 -2
  337. package/dist/x/callProp.min.js +2 -2
  338. package/dist/x/callProp.min.mjs +2 -2
  339. package/dist/x/callProp.mjs +2 -2
  340. package/dist/x/defaultsDeep.es.js +2 -2
  341. package/dist/x/defaultsDeep.es.min.js +2 -2
  342. package/dist/x/defaultsDeep.js +2 -2
  343. package/dist/x/defaultsDeep.min.js +2 -2
  344. package/dist/x/defaultsDeep.min.mjs +2 -2
  345. package/dist/x/defaultsDeep.mjs +2 -2
  346. package/dist/x/differenceWith.es.js +7 -7
  347. package/dist/x/differenceWith.es.min.js +3 -3
  348. package/dist/x/differenceWith.js +7 -7
  349. package/dist/x/differenceWith.min.js +2 -2
  350. package/dist/x/differenceWith.min.mjs +3 -3
  351. package/dist/x/differenceWith.mjs +7 -7
  352. package/dist/x/filterOut.es.js +60 -117
  353. package/dist/x/filterOut.es.min.js +3 -3
  354. package/dist/x/filterOut.js +60 -117
  355. package/dist/x/filterOut.min.js +3 -3
  356. package/dist/x/filterOut.min.mjs +3 -3
  357. package/dist/x/filterOut.mjs +60 -117
  358. package/dist/x/find.es.js +2 -2
  359. package/dist/x/find.es.min.js +2 -2
  360. package/dist/x/find.js +2 -2
  361. package/dist/x/find.min.js +2 -2
  362. package/dist/x/find.min.mjs +2 -2
  363. package/dist/x/find.mjs +2 -2
  364. package/dist/x/findIndex.es.js +2 -2
  365. package/dist/x/findIndex.es.min.js +2 -2
  366. package/dist/x/findIndex.js +2 -2
  367. package/dist/x/findIndex.min.js +2 -2
  368. package/dist/x/findIndex.min.mjs +2 -2
  369. package/dist/x/findIndex.mjs +2 -2
  370. package/dist/x/first.es.js +2 -2
  371. package/dist/x/first.es.min.js +2 -2
  372. package/dist/x/first.js +2 -2
  373. package/dist/x/first.min.js +2 -2
  374. package/dist/x/first.min.mjs +2 -2
  375. package/dist/x/first.mjs +2 -2
  376. package/dist/x/flatten.es.js +20 -207
  377. package/dist/x/flatten.es.min.js +3 -3
  378. package/dist/x/flatten.js +20 -207
  379. package/dist/x/flatten.min.js +3 -3
  380. package/dist/x/flatten.min.mjs +3 -3
  381. package/dist/x/flatten.mjs +20 -207
  382. package/dist/x/groupBy.es.js +52 -94
  383. package/dist/x/groupBy.es.min.js +3 -3
  384. package/dist/x/groupBy.js +52 -94
  385. package/dist/x/groupBy.min.js +3 -3
  386. package/dist/x/groupBy.min.mjs +3 -3
  387. package/dist/x/groupBy.mjs +52 -94
  388. package/dist/x/has.es.js +2 -2
  389. package/dist/x/has.es.min.js +2 -2
  390. package/dist/x/has.js +2 -2
  391. package/dist/x/has.min.js +2 -2
  392. package/dist/x/has.min.mjs +2 -2
  393. package/dist/x/has.mjs +2 -2
  394. package/dist/x/identity.es.js +2 -2
  395. package/dist/x/identity.es.min.js +2 -2
  396. package/dist/x/identity.js +2 -2
  397. package/dist/x/identity.min.js +2 -2
  398. package/dist/x/identity.min.mjs +2 -2
  399. package/dist/x/identity.mjs +2 -2
  400. package/dist/x/includes.es.js +2 -2
  401. package/dist/x/includes.es.min.js +2 -2
  402. package/dist/x/includes.js +2 -2
  403. package/dist/x/includes.min.js +2 -2
  404. package/dist/x/includes.min.mjs +2 -2
  405. package/dist/x/includes.mjs +2 -2
  406. package/dist/x/isDeepEqual.es.js +2 -2
  407. package/dist/x/isDeepEqual.es.min.js +2 -2
  408. package/dist/x/isDeepEqual.js +2 -2
  409. package/dist/x/isDeepEqual.min.js +2 -2
  410. package/dist/x/isDeepEqual.min.mjs +2 -2
  411. package/dist/x/isDeepEqual.mjs +2 -2
  412. package/dist/x/isEmpty.es.js +2 -2
  413. package/dist/x/isEmpty.es.min.js +2 -2
  414. package/dist/x/isEmpty.js +2 -2
  415. package/dist/x/isEmpty.min.js +2 -2
  416. package/dist/x/isEmpty.min.mjs +2 -2
  417. package/dist/x/isEmpty.mjs +2 -2
  418. package/dist/x/isEqual.es.js +2 -2
  419. package/dist/x/isEqual.es.min.js +2 -2
  420. package/dist/x/isEqual.js +2 -2
  421. package/dist/x/isEqual.min.js +2 -2
  422. package/dist/x/isEqual.min.mjs +2 -2
  423. package/dist/x/isEqual.mjs +2 -2
  424. package/dist/x/isFunction.es.js +2 -2
  425. package/dist/x/isFunction.es.min.js +2 -2
  426. package/dist/x/isFunction.js +2 -2
  427. package/dist/x/isFunction.min.js +2 -2
  428. package/dist/x/isFunction.min.mjs +2 -2
  429. package/dist/x/isFunction.mjs +2 -2
  430. package/dist/x/isIn.es.js +2 -2
  431. package/dist/x/isIn.es.min.js +2 -2
  432. package/dist/x/isIn.js +2 -2
  433. package/dist/x/isIn.min.js +2 -2
  434. package/dist/x/isIn.min.mjs +2 -2
  435. package/dist/x/isIn.mjs +2 -2
  436. package/dist/x/isObject.es.js +2 -2
  437. package/dist/x/isObject.es.min.js +2 -2
  438. package/dist/x/isObject.js +2 -2
  439. package/dist/x/isObject.min.js +2 -2
  440. package/dist/x/isObject.min.mjs +2 -2
  441. package/dist/x/isObject.mjs +2 -2
  442. package/dist/x/isString.es.js +2 -2
  443. package/dist/x/isString.es.min.js +2 -2
  444. package/dist/x/isString.js +2 -2
  445. package/dist/x/isString.min.js +2 -2
  446. package/dist/x/isString.min.mjs +2 -2
  447. package/dist/x/isString.mjs +2 -2
  448. package/dist/x/keys.es.js +2 -2
  449. package/dist/x/keys.es.min.js +2 -2
  450. package/dist/x/keys.js +2 -2
  451. package/dist/x/keys.min.js +2 -2
  452. package/dist/x/keys.min.mjs +2 -2
  453. package/dist/x/keys.mjs +2 -2
  454. package/dist/x/last.es.js +2 -2
  455. package/dist/x/last.es.min.js +2 -2
  456. package/dist/x/last.js +2 -2
  457. package/dist/x/last.min.js +2 -2
  458. package/dist/x/last.min.mjs +2 -2
  459. package/dist/x/last.mjs +2 -2
  460. package/dist/x/maxBy.es.js +59 -6
  461. package/dist/x/maxBy.es.min.js +3 -3
  462. package/dist/x/maxBy.js +59 -6
  463. package/dist/x/maxBy.min.js +3 -3
  464. package/dist/x/maxBy.min.mjs +3 -3
  465. package/dist/x/maxBy.mjs +59 -6
  466. package/dist/x/noop.es.js +2 -2
  467. package/dist/x/noop.es.min.js +2 -2
  468. package/dist/x/noop.js +2 -2
  469. package/dist/x/noop.min.js +2 -2
  470. package/dist/x/noop.min.mjs +2 -2
  471. package/dist/x/noop.mjs +2 -2
  472. package/dist/x/pluck.es.js +32 -103
  473. package/dist/x/pluck.es.min.js +3 -3
  474. package/dist/x/pluck.js +32 -103
  475. package/dist/x/pluck.min.js +3 -3
  476. package/dist/x/pluck.min.mjs +3 -3
  477. package/dist/x/pluck.mjs +32 -103
  478. package/dist/x/prepend.es.js +2 -2
  479. package/dist/x/prepend.es.min.js +2 -2
  480. package/dist/x/prepend.js +2 -2
  481. package/dist/x/prepend.min.js +2 -2
  482. package/dist/x/prepend.min.mjs +2 -2
  483. package/dist/x/prepend.mjs +2 -2
  484. package/dist/x/size.es.js +2 -2
  485. package/dist/x/size.es.min.js +2 -2
  486. package/dist/x/size.js +2 -2
  487. package/dist/x/size.min.js +2 -2
  488. package/dist/x/size.min.mjs +2 -2
  489. package/dist/x/size.mjs +2 -2
  490. package/dist/x/trace.es.js +2 -9
  491. package/dist/x/trace.es.min.js +3 -3
  492. package/dist/x/trace.js +2 -9
  493. package/dist/x/trace.min.js +3 -3
  494. package/dist/x/trace.min.mjs +3 -3
  495. package/dist/x/trace.mjs +2 -9
  496. package/dist/x/unionWith.es.js +2 -2
  497. package/dist/x/unionWith.es.min.js +2 -2
  498. package/dist/x/unionWith.js +2 -2
  499. package/dist/x/unionWith.min.js +2 -2
  500. package/dist/x/unionWith.min.mjs +2 -2
  501. package/dist/x/unionWith.mjs +2 -2
  502. package/dist/x/uniq.es.js +2 -2
  503. package/dist/x/uniq.es.min.js +2 -2
  504. package/dist/x/uniq.js +2 -2
  505. package/dist/x/uniq.min.js +2 -2
  506. package/dist/x/uniq.min.mjs +2 -2
  507. package/dist/x/uniq.mjs +2 -2
  508. package/dist/x/unless.es.js +2 -2
  509. package/dist/x/unless.es.min.js +2 -2
  510. package/dist/x/unless.js +2 -2
  511. package/dist/x/unless.min.js +2 -2
  512. package/dist/x/unless.min.mjs +2 -2
  513. package/dist/x/unless.mjs +2 -2
  514. package/dist/x/values.es.js +2 -2
  515. package/dist/x/values.es.min.js +2 -2
  516. package/dist/x/values.js +2 -2
  517. package/dist/x/values.min.js +2 -2
  518. package/dist/x/values.min.mjs +2 -2
  519. package/dist/x/values.mjs +2 -2
  520. package/dist/x/when.es.js +2 -2
  521. package/dist/x/when.es.min.js +2 -2
  522. package/dist/x/when.js +2 -2
  523. package/dist/x/when.min.js +2 -2
  524. package/dist/x/when.min.mjs +2 -2
  525. package/dist/x/when.mjs +2 -2
  526. package/dist-test.js +9 -2042
  527. package/eq.js +21 -63
  528. package/es.js +730 -869
  529. package/every.js +94 -0
  530. package/filter.js +23 -91
  531. package/flatMap.js +75 -70
  532. package/forEach.js +82 -0
  533. package/get.js +23 -6
  534. package/global.js +6 -4
  535. package/gt.js +15 -58
  536. package/gte.js +14 -57
  537. package/index.js +730 -869
  538. package/lt.js +17 -60
  539. package/lte.js +14 -57
  540. package/map.js +9 -94
  541. package/memory-usage/reduce.js +2 -2
  542. package/not.js +27 -45
  543. package/omit.js +4 -0
  544. package/or.js +50 -33
  545. package/package.json +7 -7
  546. package/pick.js +5 -1
  547. package/pipe.js +13 -50
  548. package/reduce.js +42 -51
  549. package/rubico.js +10 -8
  550. package/set.js +43 -10
  551. package/some.js +105 -0
  552. package/switchCase.js +13 -3
  553. package/tap.js +0 -24
  554. package/test.js +847 -1096
  555. package/thunkify.js +9 -0
  556. package/transform.js +31 -16
  557. package/tryCatch.js +19 -15
  558. package/x/differenceWith.js +3 -3
  559. package/x/filterOut.test.js +6 -6
  560. package/x/flatten.js +1 -1
  561. package/x/flatten.test.js +0 -8
  562. package/x/index.js +0 -2
  563. package/x/pluck.js +18 -27
  564. package/x/pluck.test.js +3 -7
  565. package/x/timeInLoop.js +16 -25
  566. package/x/timeInLoop.test.js +8 -4
  567. package/any.js +0 -82
  568. package/dist/any.es.min.js +0 -7
  569. package/dist/any.min.js +0 -8
  570. package/dist/any.min.mjs +0 -7
  571. package/dist/fork.es.js +0 -159
  572. package/dist/fork.es.min.js +0 -7
  573. package/dist/fork.js +0 -166
  574. package/dist/fork.min.js +0 -8
  575. package/dist/fork.min.mjs +0 -7
  576. package/dist/fork.mjs +0 -159
  577. package/dist/x/forEach.es.min.js +0 -7
  578. package/dist/x/forEach.min.js +0 -8
  579. package/dist/x/forEach.min.mjs +0 -7
  580. package/fork.js +0 -101
  581. package/x/forEach.js +0 -93
  582. package/x/forEach.test.js +0 -218
  583. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  584. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  586. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/x/groupBy.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -48,37 +48,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
48
48
  return curry3ResolveArg2(baseFunc, arg0, arg1)
49
49
  }
50
50
 
51
- // argument resolver for curryArgs3
52
- const curryArgs3ResolveArgs0 = (
53
- baseFunc, arg1, arg2,
54
- ) => function args0Resolver(...args) {
55
- return baseFunc(args, arg1, arg2)
56
- }
57
-
58
- // argument resolver for curryArgs3
59
- const curryArgs3ResolveArgs1 = (
60
- baseFunc, arg0, arg2,
61
- ) => function arg1Resolver(...args) {
62
- return baseFunc(arg0, args, arg2)
63
- }
64
-
65
- // argument resolver for curryArgs3
66
- const curryArgs3ResolveArgs2 = (
67
- baseFunc, arg0, arg1,
68
- ) => function arg2Resolver(...args) {
69
- return baseFunc(arg0, arg1, args)
70
- }
71
-
72
- const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
73
- if (arg0 == __) {
74
- return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
75
- }
76
- if (arg1 == __) {
77
- return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
78
- }
79
- return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
80
- }
81
-
82
51
  const isArray = Array.isArray
83
52
 
84
53
  const objectValues = Object.values
@@ -175,6 +144,37 @@ const curry2 = function (baseFunc, arg0, arg1) {
175
144
  : curry2ResolveArg1(baseFunc, arg0)
176
145
  }
177
146
 
147
+ // argument resolver for curryArgs3
148
+ const curryArgs3ResolveArgs0 = (
149
+ baseFunc, arg1, arg2,
150
+ ) => function args0Resolver(...args) {
151
+ return baseFunc(args, arg1, arg2)
152
+ }
153
+
154
+ // argument resolver for curryArgs3
155
+ const curryArgs3ResolveArgs1 = (
156
+ baseFunc, arg0, arg2,
157
+ ) => function arg1Resolver(...args) {
158
+ return baseFunc(arg0, args, arg2)
159
+ }
160
+
161
+ // argument resolver for curryArgs3
162
+ const curryArgs3ResolveArgs2 = (
163
+ baseFunc, arg0, arg1,
164
+ ) => function arg2Resolver(...args) {
165
+ return baseFunc(arg0, arg1, args)
166
+ }
167
+
168
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
169
+ if (arg0 == __) {
170
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
171
+ }
172
+ if (arg1 == __) {
173
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
174
+ }
175
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
176
+ }
177
+
178
178
  // argument resolver for curry4
179
179
  const curry4ResolveArg0 = (
180
180
  baseFunc, arg1, arg2, arg3,
@@ -297,13 +297,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
297
297
 
298
298
  const objectKeys = Object.keys
299
299
 
300
- const objectGetFirstKey = function (object) {
301
- for (const key in object) {
302
- return key
303
- }
304
- return undefined
305
- }
306
-
307
300
  const objectReduceAsync = async function (object, reducer, result, keys, index) {
308
301
  const keysLength = keys.length
309
302
  while (++index < keysLength) {
@@ -364,24 +357,6 @@ const mapReduce = function (map, reducer, result) {
364
357
  return result
365
358
  }
366
359
 
367
- const funcConcatSync = (
368
- funcA, funcB,
369
- ) => function pipedFunction(...args) {
370
- return funcB(funcA(...args))
371
- }
372
-
373
- const generatorFunctionReduce = (
374
- generatorFunction, reducer, result,
375
- ) => funcConcatSync(
376
- generatorFunction,
377
- curry3(iteratorReduce, __, reducer, result))
378
-
379
- const asyncGeneratorFunctionReduce = (
380
- asyncGeneratorFunction, reducer, result,
381
- ) => funcConcatSync(
382
- asyncGeneratorFunction,
383
- curry3(asyncIteratorReduce, __, reducer, result))
384
-
385
360
  const reducerConcat = (
386
361
  reducerA, reducerB,
387
362
  ) => function pipedReducer(result, item) {
@@ -391,26 +366,10 @@ const reducerConcat = (
391
366
  : reducerB(intermediate, item)
392
367
  }
393
368
 
394
- const genericReduce = function (args, reducer, result) {
395
- const collection = args[0]
369
+ const genericReduce = function (collection, reducer, result) {
396
370
  if (isArray(collection)) {
397
371
  return arrayReduce(collection, reducer, result)
398
372
  }
399
- if (typeof collection == 'function') {
400
- if (isGeneratorFunction(collection)) {
401
- return generatorFunctionReduce(collection, reducer, result)
402
- }
403
- if (isAsyncGeneratorFunction(collection)) {
404
- return asyncGeneratorFunctionReduce(collection, reducer, result)
405
- }
406
- return curryArgs3(
407
- genericReduce,
408
- __,
409
- args.length == 1
410
- ? reducerConcat(reducer, collection)
411
- : args.reduce(reducerConcat, reducer),
412
- result)
413
- }
414
373
  if (collection == null) {
415
374
  return result === undefined
416
375
  ? curry2(reducer, collection, __)
@@ -445,28 +404,27 @@ const genericReduce = function (args, reducer, result) {
445
404
  : reducer(result, collection)
446
405
  }
447
406
 
448
- const reduce = function (...args) {
449
- if (typeof args[0] != 'function') {
450
- const reducer = args[1]
451
- const initialValue = args[2]
452
- if (typeof initialValue == 'function') {
453
- return genericReduce([args[0]], reducer, initialValue(args[0]))
454
- }
455
- return genericReduce([args[0]], reducer, initialValue)
407
+ // _reduce(collection any, reducer function, initialValue function|any) -> Promise
408
+ const _reduce = function (collection, reducer, initialValue) {
409
+ if (typeof initialValue == 'function') {
410
+ const actualInitialValue = initialValue(collection)
411
+ return isPromise(actualInitialValue)
412
+ ? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
413
+ : genericReduce(collection, reducer, actualInitialValue)
456
414
  }
415
+ return isPromise(initialValue)
416
+ ? initialValue.then(curry3(genericReduce, collection, reducer, __))
417
+ : genericReduce(collection, reducer, initialValue)
418
+ }
457
419
 
458
- const reducer = args[0]
459
- const initialValue = args[1]
460
-
461
- if (typeof initialValue == 'function') {
462
- return function reducing(...args) {
463
- const result = initialValue(...args)
464
- return isPromise(result)
465
- ? result.then(curry3(genericReduce, args, reducer, __))
466
- : genericReduce(args, reducer, result)
467
- }
420
+ const reduce = function (...args) {
421
+ if (typeof args[0] == 'function') {
422
+ return curry3(_reduce, __, args[0], args[1])
423
+ }
424
+ if (isPromise(args[0])) {
425
+ return args[0].then(curry3(_reduce, __, args[1], args[2]))
468
426
  }
469
- return curryArgs3(genericReduce, __, reducer, initialValue)
427
+ return _reduce(args[0], args[1], args[2])
470
428
  }
471
429
 
472
430
  // (mapOfArrays Map<any=>Array>, key any, item any) => mapOfArrays
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.groupBy=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=()=>new Map,t=n=>null!=n&&"function"==typeof n.then,e=Symbol.for("placeholder"),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=function(n,t,o,r){return t==e?((n,t,e)=>function(...o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(...o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(...o){return n(t,e,o)})(n,t,o)},u=Array.isArray,c=(Object.values,Object.prototype.toString),f=n=>c.call(n),i=async function(n,e,o){let r=n.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),t(o)&&(o=await o),r=n.next();return o},a=function(n,r,u){let c=n.next();if(c.done)return u;for(void 0===u&&(u=c.value,c=n.next());!c.done;){if(u=r(u,c.value),t(u))return u.then(o(i,n,r,e));c=n.next()}return u},s=async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e},l=Symbol.iterator,y=Symbol.asyncIterator,p=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},d=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},h=async function(n,e,o,r){const u=n.length;for(;++r<u;)o=e(o,n[r],r,n),t(o)&&(o=await o);return o},v=Object.keys,b=async function(n,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,n[c],c,n),t(o)&&(o=await o)}return o},g=async function(n,e,o,r){for(const[u,c]of r)o=e(o,c,u,n),t(o)&&(o=await o);return o},x=(n,t)=>function(...e){return t(n(...e))},w=(n,o)=>function(r,u){const c=n(r,u);return t(c)?c.then(p(o,e,u)):o(c,u)},j=function(n,c,i){const m=n[0];return u(m)?function(n,o,r){const u=n.length;let c=-1;for(void 0===r&&(r=n[++c]);++c<u;)if(r=o(r,n[c],c,n),t(r))return r.then(d(h,n,o,e,c));return r}(m,c,i):"function"==typeof m?"[object GeneratorFunction]"==f(m)?((n,t,r)=>x(n,o(a,e,t,r)))(m,c,i):(n=>"[object AsyncGeneratorFunction]"==f(n))(m)?((n,t,r)=>x(n,o(s,e,t,r)))(m,c,i):r(j,e,1==n.length?w(c,m):n.reduce(w,c),i):null==m?void 0===i?p(c,m,e):c(i,m):m.constructor==Map?function(n,o,r){const u=n.entries();if(void 0===r){const n=u.next();if(n.done)return r;r=n.value[1]}for(const[c,f]of u)if(r=o(r,f,c,n),t(r))return r.then(d(g,n,o,e,u));return r}(m,c,i):"function"==typeof m[l]?a(m[l](),c,i):"function"==typeof m[y]?s(m[y](),c,i):"function"==typeof m.reduce?m.reduce(c,i):"function"==typeof m.chain?m.chain(p(c,i,e)):"function"==typeof m.flatMap?m.flatMap(p(c,i,e)):m.constructor==Object?function(n,o,r){const u=v(n),c=u.length;let f=-1;for(void 0===r&&(r=n[u[++f]]);++f<c;){const c=u[f];if(r=o(r,n[c],c,n),t(r))return r.then((i=b,s=o,l=e,y=u,p=f,(a=n)==e?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,s,l,y,p):s==e?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,a,l,y,p):l==e?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,a,s,y,p):y==e?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,a,s,l,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,a,s,l,y)))}var i,a,s,l,y,p;return r}(m,c,i):void 0===i?p(c,m,e):c(i,m)},m=function(...n){if("function"!=typeof n[0]){const t=n[1],e=n[2];return j([n[0]],t,"function"==typeof e?e(n[0]):e)}const u=n[0],c=n[1];return"function"==typeof c?function(...n){const r=c(...n);return t(r)?r.then(o(j,n,u,e)):j(n,u,r)}:r(j,e,u,c)},M=function(n,t,e){const o=n.get(t);return null==o?n.set(t,[e]):o.push(e),n};return r=>{return m("function"==typeof r?(c=r,function(n,r){const u=c(r);return t(u)?u.then(o(M,n,e,r)):M(n,u,r)}):(u=r,function(n,t){return M(n,t[u],t)}),n);var u,c}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.groupBy=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=()=>new Map,t=n=>null!=n&&"function"==typeof n.then,e=Symbol.for("placeholder"),r=function(n,t,r,o){return t==e?((n,t,e)=>function(r){return n(r,t,e)})(n,r,o):r==e?((n,t,e)=>function(r){return n(t,r,e)})(n,t,o):((n,t,e)=>function(r){return n(t,e,r)})(n,t,r)},o=Array.isArray,u=(Object.values,Object.prototype.toString,async function(n,e,r){let o=n.next();if(o.done)return r;for(;!o.done;)r=e(r,o.value),t(r)&&(r=await r),o=n.next();return r}),f=Symbol.iterator,i=Symbol.asyncIterator,c=function(n,t,r){return t==e?((n,t)=>function(e){return n(e,t)})(n,r):((n,t)=>function(e){return n(t,e)})(n,t)},a=function(n,t,r,o,u){return t==e?((n,t,e,r)=>function(o){return n(o,t,e,r)})(n,r,o,u):r==e?((n,t,e,r)=>function(o){return n(t,o,e,r)})(n,t,o,u):o==e?((n,t,e,r)=>function(o){return n(t,e,o,r)})(n,t,r,u):((n,t,e,r)=>function(o){return n(t,e,r,o)})(n,t,r,o)},l=async function(n,e,r,o){const u=n.length;for(;++o<u;)r=e(r,n[o],o,n),t(r)&&(r=await r);return r},s=Object.keys,y=async function(n,e,r,o,u){const f=o.length;for(;++u<f;){const f=o[u];r=e(r,n[f],f,n),t(r)&&(r=await r)}return r},p=async function(n,e,r,o){for(const[u,f]of o)r=e(r,f,u,n),t(r)&&(r=await r);return r},d=function(n,d,h){return o(n)?function(n,r,o){const u=n.length;let f=-1;for(void 0===o&&(o=n[++f]);++f<u;)if(o=r(o,n[f],f,n),t(o))return o.then(a(l,n,r,e,f));return o}(n,d,h):null==n?void 0===h?c(d,n,e):d(h,n):n.constructor==Map?function(n,r,o){const u=n.entries();if(void 0===o){const n=u.next();if(n.done)return o;o=n.value[1]}for(const[f,i]of u)if(o=r(o,i,f,n),t(o))return o.then(a(p,n,r,e,u));return o}(n,d,h):"function"==typeof n[f]?function(n,o,f){let i=n.next();if(i.done)return f;for(void 0===f&&(f=i.value,i=n.next());!i.done;){if(f=o(f,i.value),t(f))return f.then(r(u,n,o,e));i=n.next()}return f}(n[f](),d,h):"function"==typeof n[i]?async function(n,t,e){let r=await n.next();if(r.done)return e;for(void 0===e&&(e=r.value,r=await n.next());!r.done;)e=await t(e,r.value),r=await n.next();return e}(n[i](),d,h):"function"==typeof n.reduce?n.reduce(d,h):"function"==typeof n.chain?n.chain(c(d,h,e)):"function"==typeof n.flatMap?n.flatMap(c(d,h,e)):n.constructor==Object?function(n,r,o){const u=s(n),f=u.length;let i=-1;for(void 0===o&&(o=n[u[++i]]);++i<f;){const f=u[i];if(o=r(o,n[f],f,n),t(o))return o.then((c=y,l=r,p=e,d=u,h=i,(a=n)==e?((n,t,e,r,o)=>function(u){return n(u,t,e,r,o)})(c,l,p,d,h):l==e?((n,t,e,r,o)=>function(u){return n(t,u,e,r,o)})(c,a,p,d,h):p==e?((n,t,e,r,o)=>function(u){return n(t,e,u,r,o)})(c,a,l,d,h):d==e?((n,t,e,r,o)=>function(u){return n(t,e,r,u,o)})(c,a,l,p,h):((n,t,e,r,o)=>function(u){return n(t,e,r,o,u)})(c,a,l,p,d)))}var c,a,l,p,d,h;return o}(n,d,h):void 0===h?c(d,n,e):d(h,n)},h=function(n,o,u){if("function"==typeof u){const f=u(n);return t(f)?f.then(r(d,n,o,e)):d(n,o,f)}return t(u)?u.then(r(d,n,o,e)):d(n,o,u)},v=function(...n){return"function"==typeof n[0]?r(h,e,n[0],n[1]):t(n[0])?n[0].then(r(h,e,n[1],n[2])):h(n[0],n[1],n[2])},b=function(n,t,e){const r=n.get(t);return null==r?n.set(t,[e]):r.push(e),n};return o=>{return v("function"==typeof o?(f=o,function(n,o){const u=f(o);return t(u)?u.then(r(b,n,e,o)):b(n,u,o)}):(u=o,function(n,t){return b(n,t[u],t)}),n);var u,f}}());
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const EmptyMap=()=>new Map,isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectGetFirstKey=function(r){for(const e in r)return e},objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,i=e,y=__,a=t,f=c,(s=r)==__?curry5ResolveArg0(u,i,y,a,f):i==__?curry5ResolveArg1(u,s,y,a,f):y==__?curry5ResolveArg2(u,s,i,a,f):a==__?curry5ResolveArg3(u,s,i,y,f):curry5ResolveArg4(u,s,i,y,a)))}var u,s,i,y,a,f;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},funcConcatSync=(r,e)=>function(...n){return e(r(...n))},generatorFunctionReduce=(r,e,n)=>funcConcatSync(r,curry3(iteratorReduce,__,e,n)),asyncGeneratorFunctionReduce=(r,e,n)=>funcConcatSync(r,curry3(asyncIteratorReduce,__,e,n)),reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){const t=r[0];return isArray(t)?arrayReduce(t,e,n):"function"==typeof t?objectToString(t)==generatorFunctionTag?generatorFunctionReduce(t,e,n):isAsyncGeneratorFunction(t)?asyncGeneratorFunctionReduce(t,e,n):curryArgs3(genericReduce,__,1==r.length?reducerConcat(e,t):r.reduce(reducerConcat,e),n):null==t?void 0===n?curry2(e,t,__):e(n,t):t.constructor==Map?mapReduce(t,e,n):"function"==typeof t[symbolIterator]?iteratorReduce(t[symbolIterator](),e,n):"function"==typeof t[symbolAsyncIterator]?asyncIteratorReduce(t[symbolAsyncIterator](),e,n):"function"==typeof t.reduce?t.reduce(e,n):"function"==typeof t.chain?t.chain(curry2(e,n,__)):"function"==typeof t.flatMap?t.flatMap(curry2(e,n,__)):t.constructor==Object?objectReduce(t,e,n):void 0===n?curry2(e,t,__):e(n,t)},reduce=function(...r){if("function"!=typeof r[0]){const e=r[1],n=r[2];return genericReduce([r[0]],e,"function"==typeof n?n(r[0]):n)}const e=r[0],n=r[1];return"function"==typeof n?function(...r){const t=n(...r);return isPromise(t)?t.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,t)}:curryArgs3(genericReduce,__,e,n)},group=function(r,e,n){const t=r.get(e);return null==t?r.set(e,[n]):t.push(n),r},groupByProperty=r=>function(e,n){return group(e,n[r],n)},groupByResolver=r=>function(e,n){const t=r(n);return isPromise(t)?t.then(curry3(group,e,__,n)):group(e,t,n)},groupBy=r=>{return reduce("function"==typeof r?(n=r,function(r,e){const t=n(e);return isPromise(t)?t.then(curry3(group,r,__,e)):group(r,t,e)}):(e=r,function(r,n){return group(r,n[e],n)}),EmptyMap);var e,n};export default groupBy;
7
+ const EmptyMap=()=>new Map,isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(u){return r(u,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(u){return r(e,u,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(u){return r(e,n,u,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(u){return r(e,n,t,u,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(u){return r(e,n,t,o,u)},curry5=function(r,e,n,t,o,u){return e==__?curry5ResolveArg0(r,n,t,o,u):n==__?curry5ResolveArg1(r,e,t,o,u):t==__?curry5ResolveArg2(r,e,n,o,u):o==__?curry5ResolveArg3(r,e,n,t,u):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const u=t.length;for(;++o<u;){const u=t[o];n=e(n,r[u],u,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let u=-1;for(void 0===n&&(n=r[t[++u]]);++u<o;){const o=t[u];if(n=e(n,r[o],o,r),isPromise(n))return n.then((c=objectReduceAsync,i=e,y=__,a=t,f=u,(s=r)==__?curry5ResolveArg0(c,i,y,a,f):i==__?curry5ResolveArg1(c,s,y,a,f):y==__?curry5ResolveArg2(c,s,i,a,f):a==__?curry5ResolveArg3(c,s,i,y,f):curry5ResolveArg4(c,s,i,y,a)))}var c,s,i,y,a,f;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,u]of t)n=e(n,u,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,u]of t)if(n=e(n,u,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},_reduce=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,t)}return isPromise(n)?n.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,n)},reduce=function(...r){return"function"==typeof r[0]?curry3(_reduce,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_reduce,__,r[1],r[2])):_reduce(r[0],r[1],r[2])},group=function(r,e,n){const t=r.get(e);return null==t?r.set(e,[n]):t.push(n),r},groupByProperty=r=>function(e,n){return group(e,n[r],n)},groupByResolver=r=>function(e,n){const t=r(n);return isPromise(t)?t.then(curry3(group,e,__,n)):group(e,t,n)},groupBy=r=>{return reduce("function"==typeof r?(n=r,function(r,e){const t=n(e);return isPromise(t)?t.then(curry3(group,r,__,e)):group(r,t,e)}):(e=r,function(r,n){return group(r,n[e],n)}),EmptyMap);var e,n};export default groupBy;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  // () => Map<>
@@ -42,37 +42,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
42
42
  return curry3ResolveArg2(baseFunc, arg0, arg1)
43
43
  }
44
44
 
45
- // argument resolver for curryArgs3
46
- const curryArgs3ResolveArgs0 = (
47
- baseFunc, arg1, arg2,
48
- ) => function args0Resolver(...args) {
49
- return baseFunc(args, arg1, arg2)
50
- }
51
-
52
- // argument resolver for curryArgs3
53
- const curryArgs3ResolveArgs1 = (
54
- baseFunc, arg0, arg2,
55
- ) => function arg1Resolver(...args) {
56
- return baseFunc(arg0, args, arg2)
57
- }
58
-
59
- // argument resolver for curryArgs3
60
- const curryArgs3ResolveArgs2 = (
61
- baseFunc, arg0, arg1,
62
- ) => function arg2Resolver(...args) {
63
- return baseFunc(arg0, arg1, args)
64
- }
65
-
66
- const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
67
- if (arg0 == __) {
68
- return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
69
- }
70
- if (arg1 == __) {
71
- return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
72
- }
73
- return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
74
- }
75
-
76
45
  const isArray = Array.isArray
77
46
 
78
47
  const objectValues = Object.values
@@ -169,6 +138,37 @@ const curry2 = function (baseFunc, arg0, arg1) {
169
138
  : curry2ResolveArg1(baseFunc, arg0)
170
139
  }
171
140
 
141
+ // argument resolver for curryArgs3
142
+ const curryArgs3ResolveArgs0 = (
143
+ baseFunc, arg1, arg2,
144
+ ) => function args0Resolver(...args) {
145
+ return baseFunc(args, arg1, arg2)
146
+ }
147
+
148
+ // argument resolver for curryArgs3
149
+ const curryArgs3ResolveArgs1 = (
150
+ baseFunc, arg0, arg2,
151
+ ) => function arg1Resolver(...args) {
152
+ return baseFunc(arg0, args, arg2)
153
+ }
154
+
155
+ // argument resolver for curryArgs3
156
+ const curryArgs3ResolveArgs2 = (
157
+ baseFunc, arg0, arg1,
158
+ ) => function arg2Resolver(...args) {
159
+ return baseFunc(arg0, arg1, args)
160
+ }
161
+
162
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
163
+ if (arg0 == __) {
164
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
165
+ }
166
+ if (arg1 == __) {
167
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
168
+ }
169
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
170
+ }
171
+
172
172
  // argument resolver for curry4
173
173
  const curry4ResolveArg0 = (
174
174
  baseFunc, arg1, arg2, arg3,
@@ -291,13 +291,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
291
291
 
292
292
  const objectKeys = Object.keys
293
293
 
294
- const objectGetFirstKey = function (object) {
295
- for (const key in object) {
296
- return key
297
- }
298
- return undefined
299
- }
300
-
301
294
  const objectReduceAsync = async function (object, reducer, result, keys, index) {
302
295
  const keysLength = keys.length
303
296
  while (++index < keysLength) {
@@ -358,24 +351,6 @@ const mapReduce = function (map, reducer, result) {
358
351
  return result
359
352
  }
360
353
 
361
- const funcConcatSync = (
362
- funcA, funcB,
363
- ) => function pipedFunction(...args) {
364
- return funcB(funcA(...args))
365
- }
366
-
367
- const generatorFunctionReduce = (
368
- generatorFunction, reducer, result,
369
- ) => funcConcatSync(
370
- generatorFunction,
371
- curry3(iteratorReduce, __, reducer, result))
372
-
373
- const asyncGeneratorFunctionReduce = (
374
- asyncGeneratorFunction, reducer, result,
375
- ) => funcConcatSync(
376
- asyncGeneratorFunction,
377
- curry3(asyncIteratorReduce, __, reducer, result))
378
-
379
354
  const reducerConcat = (
380
355
  reducerA, reducerB,
381
356
  ) => function pipedReducer(result, item) {
@@ -385,26 +360,10 @@ const reducerConcat = (
385
360
  : reducerB(intermediate, item)
386
361
  }
387
362
 
388
- const genericReduce = function (args, reducer, result) {
389
- const collection = args[0]
363
+ const genericReduce = function (collection, reducer, result) {
390
364
  if (isArray(collection)) {
391
365
  return arrayReduce(collection, reducer, result)
392
366
  }
393
- if (typeof collection == 'function') {
394
- if (isGeneratorFunction(collection)) {
395
- return generatorFunctionReduce(collection, reducer, result)
396
- }
397
- if (isAsyncGeneratorFunction(collection)) {
398
- return asyncGeneratorFunctionReduce(collection, reducer, result)
399
- }
400
- return curryArgs3(
401
- genericReduce,
402
- __,
403
- args.length == 1
404
- ? reducerConcat(reducer, collection)
405
- : args.reduce(reducerConcat, reducer),
406
- result)
407
- }
408
367
  if (collection == null) {
409
368
  return result === undefined
410
369
  ? curry2(reducer, collection, __)
@@ -439,28 +398,27 @@ const genericReduce = function (args, reducer, result) {
439
398
  : reducer(result, collection)
440
399
  }
441
400
 
442
- const reduce = function (...args) {
443
- if (typeof args[0] != 'function') {
444
- const reducer = args[1]
445
- const initialValue = args[2]
446
- if (typeof initialValue == 'function') {
447
- return genericReduce([args[0]], reducer, initialValue(args[0]))
448
- }
449
- return genericReduce([args[0]], reducer, initialValue)
401
+ // _reduce(collection any, reducer function, initialValue function|any) -> Promise
402
+ const _reduce = function (collection, reducer, initialValue) {
403
+ if (typeof initialValue == 'function') {
404
+ const actualInitialValue = initialValue(collection)
405
+ return isPromise(actualInitialValue)
406
+ ? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
407
+ : genericReduce(collection, reducer, actualInitialValue)
450
408
  }
409
+ return isPromise(initialValue)
410
+ ? initialValue.then(curry3(genericReduce, collection, reducer, __))
411
+ : genericReduce(collection, reducer, initialValue)
412
+ }
451
413
 
452
- const reducer = args[0]
453
- const initialValue = args[1]
454
-
455
- if (typeof initialValue == 'function') {
456
- return function reducing(...args) {
457
- const result = initialValue(...args)
458
- return isPromise(result)
459
- ? result.then(curry3(genericReduce, args, reducer, __))
460
- : genericReduce(args, reducer, result)
461
- }
414
+ const reduce = function (...args) {
415
+ if (typeof args[0] == 'function') {
416
+ return curry3(_reduce, __, args[0], args[1])
417
+ }
418
+ if (isPromise(args[0])) {
419
+ return args[0].then(curry3(_reduce, __, args[1], args[2]))
462
420
  }
463
- return curryArgs3(genericReduce, __, reducer, initialValue)
421
+ return _reduce(args[0], args[1], args[2])
464
422
  }
465
423
 
466
424
  // (mapOfArrays Map<any=>Array>, key any, item any) => mapOfArrays
package/dist/x/has.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  // (object Object, key string) -> boolean
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const objectHas=function(t,n){return null!=t[n]},has=t=>function(n){return null!=n&&("function"==typeof n.has?n.has(t):n.constructor==Object&&objectHas(n,t))};export default has;
package/dist/x/has.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/x/has.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const objectHas=function(t,n){return null!=t[n]},has=t=>function(n){return null!=n&&("function"==typeof n.has?n.has(t):n.constructor==Object&&objectHas(n,t))};export default has;
package/dist/x/has.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  // (object Object, key string) -> boolean
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const identity=t=>t;export default identity;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const identity=t=>t;export default identity;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isArray=Array.isArray,sameValueZero=function(n,r){return n===r||n!=n&&r!=r},objectIncludes=function(n,r){for(const u in n)if(e=r,t=n[u],e===t||e!=e&&t!=t)return!0;var e,t;return!1},includes=n=>function(r){return null!=r&&("function"==typeof r.includes?r.includes(n):r.constructor==Object&&objectIncludes(r,n))};export default includes;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7