rubico 2.5.0 → 2.6.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 (368) hide show
  1. package/_internal/arrayMapPool.js +11 -19
  2. package/_internal/mapMapPool.js +80 -0
  3. package/_internal/objectMapPool.js +77 -0
  4. package/_internal/objectMapSeries.js +1 -0
  5. package/_internal/setMapPool.js +79 -0
  6. package/_internal/stringMapPool.js +22 -0
  7. package/all.js +11 -1
  8. package/and.js +9 -0
  9. package/assign.js +14 -1
  10. package/compose.js +8 -0
  11. package/dist/Transducer.es.js +1 -1
  12. package/dist/Transducer.es.min.js +1 -1
  13. package/dist/Transducer.js +1 -1
  14. package/dist/Transducer.min.js +1 -1
  15. package/dist/Transducer.mjs +1 -1
  16. package/dist/__.es.js +1 -1
  17. package/dist/__.es.min.js +1 -1
  18. package/dist/__.js +1 -1
  19. package/dist/__.min.js +1 -1
  20. package/dist/__.mjs +1 -1
  21. package/dist/all.es.js +1 -1
  22. package/dist/all.es.min.js +1 -1
  23. package/dist/all.js +1 -1
  24. package/dist/all.min.js +1 -1
  25. package/dist/all.mjs +1 -1
  26. package/dist/always.es.js +1 -1
  27. package/dist/always.es.min.js +1 -1
  28. package/dist/always.js +1 -1
  29. package/dist/always.min.js +1 -1
  30. package/dist/always.mjs +1 -1
  31. package/dist/and.es.js +1 -1
  32. package/dist/and.es.min.js +1 -1
  33. package/dist/and.js +1 -1
  34. package/dist/and.min.js +1 -1
  35. package/dist/and.mjs +1 -1
  36. package/dist/assign.es.js +1 -1
  37. package/dist/assign.es.min.js +1 -1
  38. package/dist/assign.js +1 -1
  39. package/dist/assign.min.js +1 -1
  40. package/dist/assign.mjs +1 -1
  41. package/dist/compose.es.js +1 -1
  42. package/dist/compose.es.min.js +1 -1
  43. package/dist/compose.js +1 -1
  44. package/dist/compose.min.js +1 -1
  45. package/dist/compose.mjs +1 -1
  46. package/dist/curry.es.js +1 -1
  47. package/dist/curry.es.min.js +1 -1
  48. package/dist/curry.js +1 -1
  49. package/dist/curry.min.js +1 -1
  50. package/dist/curry.mjs +1 -1
  51. package/dist/eq.es.js +1 -1
  52. package/dist/eq.es.min.js +1 -1
  53. package/dist/eq.js +1 -1
  54. package/dist/eq.min.js +1 -1
  55. package/dist/eq.mjs +1 -1
  56. package/dist/every.es.js +1 -1
  57. package/dist/every.es.min.js +1 -1
  58. package/dist/every.js +1 -1
  59. package/dist/every.min.js +1 -1
  60. package/dist/every.mjs +1 -1
  61. package/dist/filter.es.js +1 -1
  62. package/dist/filter.es.min.js +1 -1
  63. package/dist/filter.js +1 -1
  64. package/dist/filter.min.js +1 -1
  65. package/dist/filter.mjs +1 -1
  66. package/dist/flatMap.es.js +1 -1
  67. package/dist/flatMap.es.min.js +1 -1
  68. package/dist/flatMap.js +1 -1
  69. package/dist/flatMap.min.js +1 -1
  70. package/dist/flatMap.mjs +1 -1
  71. package/dist/forEach.es.js +3 -2
  72. package/dist/forEach.es.min.js +2 -2
  73. package/dist/forEach.js +3 -2
  74. package/dist/forEach.min.js +2 -2
  75. package/dist/forEach.mjs +3 -2
  76. package/dist/get.es.js +1 -1
  77. package/dist/get.es.min.js +1 -1
  78. package/dist/get.js +1 -1
  79. package/dist/get.min.js +1 -1
  80. package/dist/get.mjs +1 -1
  81. package/dist/gt.es.js +1 -1
  82. package/dist/gt.es.min.js +1 -1
  83. package/dist/gt.js +1 -1
  84. package/dist/gt.min.js +1 -1
  85. package/dist/gt.mjs +1 -1
  86. package/dist/gte.es.js +1 -1
  87. package/dist/gte.es.min.js +1 -1
  88. package/dist/gte.js +1 -1
  89. package/dist/gte.min.js +1 -1
  90. package/dist/gte.mjs +1 -1
  91. package/dist/lt.es.js +1 -1
  92. package/dist/lt.es.min.js +1 -1
  93. package/dist/lt.js +1 -1
  94. package/dist/lt.min.js +1 -1
  95. package/dist/lt.mjs +1 -1
  96. package/dist/lte.es.js +1 -1
  97. package/dist/lte.es.min.js +1 -1
  98. package/dist/lte.js +1 -1
  99. package/dist/lte.min.js +1 -1
  100. package/dist/lte.mjs +1 -1
  101. package/dist/map.es.js +221 -44
  102. package/dist/map.es.min.js +2 -2
  103. package/dist/map.js +221 -44
  104. package/dist/map.min.js +2 -2
  105. package/dist/map.mjs +221 -44
  106. package/dist/not.es.js +1 -1
  107. package/dist/not.es.min.js +1 -1
  108. package/dist/not.js +1 -1
  109. package/dist/not.min.js +1 -1
  110. package/dist/not.mjs +1 -1
  111. package/dist/omit.es.js +1 -1
  112. package/dist/omit.es.min.js +1 -1
  113. package/dist/omit.js +1 -1
  114. package/dist/omit.min.js +1 -1
  115. package/dist/omit.mjs +1 -1
  116. package/dist/or.es.js +1 -1
  117. package/dist/or.es.min.js +1 -1
  118. package/dist/or.js +1 -1
  119. package/dist/or.min.js +1 -1
  120. package/dist/or.mjs +1 -1
  121. package/dist/pick.es.js +1 -1
  122. package/dist/pick.es.min.js +1 -1
  123. package/dist/pick.js +1 -1
  124. package/dist/pick.min.js +1 -1
  125. package/dist/pick.mjs +1 -1
  126. package/dist/pipe.es.js +1 -1
  127. package/dist/pipe.es.min.js +1 -1
  128. package/dist/pipe.js +1 -1
  129. package/dist/pipe.min.js +1 -1
  130. package/dist/pipe.mjs +1 -1
  131. package/dist/reduce.es.js +1 -1
  132. package/dist/reduce.es.min.js +1 -1
  133. package/dist/reduce.js +1 -1
  134. package/dist/reduce.min.js +1 -1
  135. package/dist/reduce.mjs +1 -1
  136. package/dist/rubico.es.js +197 -16
  137. package/dist/rubico.es.min.js +2 -2
  138. package/dist/rubico.global.js +197 -16
  139. package/dist/rubico.global.min.js +2 -2
  140. package/dist/rubico.js +197 -16
  141. package/dist/rubico.min.js +2 -2
  142. package/dist/rubico.mjs +197 -16
  143. package/dist/set.es.js +1 -1
  144. package/dist/set.es.min.js +1 -1
  145. package/dist/set.js +1 -1
  146. package/dist/set.min.js +1 -1
  147. package/dist/set.mjs +1 -1
  148. package/dist/some.es.js +1 -1
  149. package/dist/some.es.min.js +1 -1
  150. package/dist/some.js +1 -1
  151. package/dist/some.min.js +1 -1
  152. package/dist/some.mjs +1 -1
  153. package/dist/switchCase.es.js +1 -1
  154. package/dist/switchCase.es.min.js +1 -1
  155. package/dist/switchCase.js +1 -1
  156. package/dist/switchCase.min.js +1 -1
  157. package/dist/switchCase.mjs +1 -1
  158. package/dist/tap.es.js +38 -1
  159. package/dist/tap.es.min.js +2 -2
  160. package/dist/tap.js +38 -1
  161. package/dist/tap.min.js +2 -2
  162. package/dist/tap.mjs +38 -1
  163. package/dist/thunkify.es.js +1 -1
  164. package/dist/thunkify.es.min.js +1 -1
  165. package/dist/thunkify.js +1 -1
  166. package/dist/thunkify.min.js +1 -1
  167. package/dist/thunkify.mjs +1 -1
  168. package/dist/transform.es.js +1 -1
  169. package/dist/transform.es.min.js +1 -1
  170. package/dist/transform.js +1 -1
  171. package/dist/transform.min.js +1 -1
  172. package/dist/transform.mjs +1 -1
  173. package/dist/tryCatch.es.js +1 -1
  174. package/dist/tryCatch.es.min.js +1 -1
  175. package/dist/tryCatch.js +1 -1
  176. package/dist/tryCatch.min.js +1 -1
  177. package/dist/tryCatch.mjs +1 -1
  178. package/dist/x/append.es.js +1 -1
  179. package/dist/x/append.es.min.js +1 -1
  180. package/dist/x/append.js +1 -1
  181. package/dist/x/append.min.js +1 -1
  182. package/dist/x/append.mjs +1 -1
  183. package/dist/x/callProp.es.js +1 -1
  184. package/dist/x/callProp.es.min.js +1 -1
  185. package/dist/x/callProp.js +1 -1
  186. package/dist/x/callProp.min.js +1 -1
  187. package/dist/x/callProp.mjs +1 -1
  188. package/dist/x/defaultsDeep.es.js +1 -1
  189. package/dist/x/defaultsDeep.es.min.js +1 -1
  190. package/dist/x/defaultsDeep.js +1 -1
  191. package/dist/x/defaultsDeep.min.js +1 -1
  192. package/dist/x/defaultsDeep.mjs +1 -1
  193. package/dist/x/differenceWith.es.js +1 -1
  194. package/dist/x/differenceWith.es.min.js +1 -1
  195. package/dist/x/differenceWith.js +1 -1
  196. package/dist/x/differenceWith.min.js +1 -1
  197. package/dist/x/differenceWith.mjs +1 -1
  198. package/dist/x/filterOut.es.js +1 -1
  199. package/dist/x/filterOut.es.min.js +1 -1
  200. package/dist/x/filterOut.js +1 -1
  201. package/dist/x/filterOut.min.js +1 -1
  202. package/dist/x/filterOut.mjs +1 -1
  203. package/dist/x/find.es.js +1 -1
  204. package/dist/x/find.es.min.js +1 -1
  205. package/dist/x/find.js +1 -1
  206. package/dist/x/find.min.js +1 -1
  207. package/dist/x/find.mjs +1 -1
  208. package/dist/x/findIndex.es.js +1 -1
  209. package/dist/x/findIndex.es.min.js +1 -1
  210. package/dist/x/findIndex.js +1 -1
  211. package/dist/x/findIndex.min.js +1 -1
  212. package/dist/x/findIndex.mjs +1 -1
  213. package/dist/x/first.es.js +1 -1
  214. package/dist/x/first.es.min.js +1 -1
  215. package/dist/x/first.js +1 -1
  216. package/dist/x/first.min.js +1 -1
  217. package/dist/x/first.mjs +1 -1
  218. package/dist/x/flatten.es.js +1 -1
  219. package/dist/x/flatten.es.min.js +1 -1
  220. package/dist/x/flatten.js +1 -1
  221. package/dist/x/flatten.min.js +1 -1
  222. package/dist/x/flatten.mjs +1 -1
  223. package/dist/x/groupBy.es.js +1 -1
  224. package/dist/x/groupBy.es.min.js +1 -1
  225. package/dist/x/groupBy.js +1 -1
  226. package/dist/x/groupBy.min.js +1 -1
  227. package/dist/x/groupBy.mjs +1 -1
  228. package/dist/x/has.es.js +1 -1
  229. package/dist/x/has.es.min.js +1 -1
  230. package/dist/x/has.js +1 -1
  231. package/dist/x/has.min.js +1 -1
  232. package/dist/x/has.mjs +1 -1
  233. package/dist/x/identity.es.js +1 -1
  234. package/dist/x/identity.es.min.js +1 -1
  235. package/dist/x/identity.js +1 -1
  236. package/dist/x/identity.min.js +1 -1
  237. package/dist/x/identity.mjs +1 -1
  238. package/dist/x/includes.es.js +1 -1
  239. package/dist/x/includes.es.min.js +1 -1
  240. package/dist/x/includes.js +1 -1
  241. package/dist/x/includes.min.js +1 -1
  242. package/dist/x/includes.mjs +1 -1
  243. package/dist/x/isDeepEqual.es.js +1 -1
  244. package/dist/x/isDeepEqual.es.min.js +1 -1
  245. package/dist/x/isDeepEqual.js +1 -1
  246. package/dist/x/isDeepEqual.min.js +1 -1
  247. package/dist/x/isDeepEqual.mjs +1 -1
  248. package/dist/x/isEmpty.es.js +1 -1
  249. package/dist/x/isEmpty.es.min.js +1 -1
  250. package/dist/x/isEmpty.js +1 -1
  251. package/dist/x/isEmpty.min.js +1 -1
  252. package/dist/x/isEmpty.mjs +1 -1
  253. package/dist/x/isEqual.es.js +1 -1
  254. package/dist/x/isEqual.es.min.js +1 -1
  255. package/dist/x/isEqual.js +1 -1
  256. package/dist/x/isEqual.min.js +1 -1
  257. package/dist/x/isEqual.mjs +1 -1
  258. package/dist/x/isFunction.es.js +1 -1
  259. package/dist/x/isFunction.es.min.js +1 -1
  260. package/dist/x/isFunction.js +1 -1
  261. package/dist/x/isFunction.min.js +1 -1
  262. package/dist/x/isFunction.mjs +1 -1
  263. package/dist/x/isIn.es.js +1 -1
  264. package/dist/x/isIn.es.min.js +1 -1
  265. package/dist/x/isIn.js +1 -1
  266. package/dist/x/isIn.min.js +1 -1
  267. package/dist/x/isIn.mjs +1 -1
  268. package/dist/x/isObject.es.js +1 -1
  269. package/dist/x/isObject.es.min.js +1 -1
  270. package/dist/x/isObject.js +1 -1
  271. package/dist/x/isObject.min.js +1 -1
  272. package/dist/x/isObject.mjs +1 -1
  273. package/dist/x/isString.es.js +1 -1
  274. package/dist/x/isString.es.min.js +1 -1
  275. package/dist/x/isString.js +1 -1
  276. package/dist/x/isString.min.js +1 -1
  277. package/dist/x/isString.mjs +1 -1
  278. package/dist/x/keys.es.js +1 -1
  279. package/dist/x/keys.es.min.js +1 -1
  280. package/dist/x/keys.js +1 -1
  281. package/dist/x/keys.min.js +1 -1
  282. package/dist/x/keys.mjs +1 -1
  283. package/dist/x/last.es.js +1 -1
  284. package/dist/x/last.es.min.js +1 -1
  285. package/dist/x/last.js +1 -1
  286. package/dist/x/last.min.js +1 -1
  287. package/dist/x/last.mjs +1 -1
  288. package/dist/x/maxBy.es.js +1 -1
  289. package/dist/x/maxBy.es.min.js +1 -1
  290. package/dist/x/maxBy.js +1 -1
  291. package/dist/x/maxBy.min.js +1 -1
  292. package/dist/x/maxBy.mjs +1 -1
  293. package/dist/x/noop.es.js +1 -1
  294. package/dist/x/noop.es.min.js +1 -1
  295. package/dist/x/noop.js +1 -1
  296. package/dist/x/noop.min.js +1 -1
  297. package/dist/x/noop.mjs +1 -1
  298. package/dist/x/pluck.es.js +221 -44
  299. package/dist/x/pluck.es.min.js +2 -2
  300. package/dist/x/pluck.js +221 -44
  301. package/dist/x/pluck.min.js +2 -2
  302. package/dist/x/pluck.mjs +221 -44
  303. package/dist/x/prepend.es.js +1 -1
  304. package/dist/x/prepend.es.min.js +1 -1
  305. package/dist/x/prepend.js +1 -1
  306. package/dist/x/prepend.min.js +1 -1
  307. package/dist/x/prepend.mjs +1 -1
  308. package/dist/x/size.es.js +1 -1
  309. package/dist/x/size.es.min.js +1 -1
  310. package/dist/x/size.js +1 -1
  311. package/dist/x/size.min.js +1 -1
  312. package/dist/x/size.mjs +1 -1
  313. package/dist/x/trace.es.js +38 -1
  314. package/dist/x/trace.es.min.js +2 -2
  315. package/dist/x/trace.js +38 -1
  316. package/dist/x/trace.min.js +2 -2
  317. package/dist/x/trace.mjs +38 -1
  318. package/dist/x/unionWith.es.js +1 -1
  319. package/dist/x/unionWith.es.min.js +1 -1
  320. package/dist/x/unionWith.js +1 -1
  321. package/dist/x/unionWith.min.js +1 -1
  322. package/dist/x/unionWith.mjs +1 -1
  323. package/dist/x/uniq.es.js +1 -1
  324. package/dist/x/uniq.es.min.js +1 -1
  325. package/dist/x/uniq.js +1 -1
  326. package/dist/x/uniq.min.js +1 -1
  327. package/dist/x/uniq.mjs +1 -1
  328. package/dist/x/unless.es.js +1 -1
  329. package/dist/x/unless.es.min.js +1 -1
  330. package/dist/x/unless.js +1 -1
  331. package/dist/x/unless.min.js +1 -1
  332. package/dist/x/unless.mjs +1 -1
  333. package/dist/x/values.es.js +1 -1
  334. package/dist/x/values.es.min.js +1 -1
  335. package/dist/x/values.js +1 -1
  336. package/dist/x/values.min.js +1 -1
  337. package/dist/x/values.mjs +1 -1
  338. package/dist/x/when.es.js +1 -1
  339. package/dist/x/when.es.min.js +1 -1
  340. package/dist/x/when.js +1 -1
  341. package/dist/x/when.min.js +1 -1
  342. package/dist/x/when.mjs +1 -1
  343. package/eq.js +6 -0
  344. package/es.js +197 -16
  345. package/every.js +6 -0
  346. package/filter.js +9 -0
  347. package/flatMap.js +7 -0
  348. package/forEach.js +20 -1
  349. package/get.js +6 -0
  350. package/gt.js +6 -0
  351. package/gte.js +6 -0
  352. package/index.js +197 -16
  353. package/lt.js +6 -0
  354. package/lte.js +6 -0
  355. package/map.js +118 -45
  356. package/not.js +8 -0
  357. package/omit.js +7 -0
  358. package/or.js +9 -0
  359. package/package.json +1 -1
  360. package/pick.js +7 -0
  361. package/pipe.js +8 -0
  362. package/reduce.js +8 -0
  363. package/set.js +6 -0
  364. package/some.js +6 -0
  365. package/switchCase.js +12 -0
  366. package/tap.js +11 -0
  367. package/transform.js +38 -10
  368. package/tryCatch.js +14 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/unless.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/unless.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/values.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/values.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/eq.js CHANGED
@@ -48,6 +48,12 @@ const equals = require('./_internal/equals')
48
48
  * ])
49
49
  * ```
50
50
  *
51
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
52
+ *
53
+ * ```javascript [playground]
54
+ * eq(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
55
+ * ```
56
+ *
51
57
  * @execution concurrent
52
58
  */
53
59
 
package/es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -158,6 +158,9 @@ const tap = function (...args) {
158
158
  if (args.length == 0) {
159
159
  return curryArgs2(_tap, __, func)
160
160
  }
161
+ if (areAnyValuesPromises(args)) {
162
+ return promiseAll(args).then(curry2(_tap, __, func))
163
+ }
161
164
  return _tap(args, func)
162
165
  }
163
166
 
@@ -701,6 +704,7 @@ const objectMapSeries = function (object, f) {
701
704
  thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
702
705
  ))
703
706
  }
707
+ result[key] = resultItem
704
708
  }
705
709
  return result
706
710
  }
@@ -795,15 +799,14 @@ const tapSync = func => function tapping(...args) {
795
799
  const promiseRace = Promise.race.bind(Promise)
796
800
 
797
801
  const arrayMapPoolAsync = async function (
798
- array, mapper, concurrencyLimit, result, index, promises,
802
+ array, f, concurrencyLimit, result, index, promises,
799
803
  ) {
800
804
  const arrayLength = array.length
801
805
  while (++index < arrayLength) {
802
806
  if (promises.size >= concurrencyLimit) {
803
807
  await promiseRace(promises)
804
808
  }
805
-
806
- const resultItem = mapper(array[index])
809
+ const resultItem = f(array[index])
807
810
  if (isPromise(resultItem)) {
808
811
  const selfDeletingPromise = resultItem.then(
809
812
  tapSync(() => promises.delete(selfDeletingPromise)))
@@ -816,13 +819,12 @@ const arrayMapPoolAsync = async function (
816
819
  return promiseAll(result)
817
820
  }
818
821
 
819
- const arrayMapPool = function (array, mapper, concurrentLimit) {
822
+ const arrayMapPool = function (array, concurrency, f) {
820
823
  const arrayLength = array.length,
821
824
  result = Array(arrayLength)
822
825
  let index = -1
823
826
  while (++index < arrayLength) {
824
-
825
- const resultItem = mapper(array[index])
827
+ const resultItem = f(array[index])
826
828
  if (isPromise(resultItem)) {
827
829
  const promises = new Set(),
828
830
  selfDeletingPromise = resultItem.then(
@@ -830,13 +832,167 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
830
832
  promises.add(selfDeletingPromise)
831
833
  result[index] = selfDeletingPromise
832
834
  return arrayMapPoolAsync(
833
- array, mapper, concurrentLimit, result, index, promises)
835
+ array, f, concurrency, result, index, promises)
834
836
  }
835
837
  result[index] = resultItem
836
838
  }
837
839
  return result
838
840
  }
839
841
 
842
+ const stringMapPool = function (s, concurrency, f) {
843
+ const result = arrayMapPool(s, concurrency, f)
844
+ return isPromise(result)
845
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
846
+ : result.join('')
847
+ }
848
+
849
+ const _setMapPoolAsync = async function (
850
+ s, iterator, concurrency, f, result, promises,
851
+ ) {
852
+ let iteration = iterator.next()
853
+ while (!iteration.done) {
854
+ if (promises.size >= concurrency) {
855
+ await promiseRace(promises)
856
+ }
857
+ const resultItem = f(iteration.value, iteration.value, s)
858
+ if (isPromise(resultItem)) {
859
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
860
+ promises.delete(selfDeletingPromise)
861
+ result.add(resolvedValue)
862
+ })
863
+ promises.add(selfDeletingPromise)
864
+ } else {
865
+ result.add(resultItem)
866
+ }
867
+ iteration = iterator.next()
868
+ }
869
+ if (promises.size > 0) {
870
+ await promiseAll(promises)
871
+ }
872
+ return result
873
+ }
874
+
875
+ const setMapPool = function (s, concurrency, f) {
876
+ const result = new Set()
877
+ const iterator = s[symbolIterator]()
878
+ let iteration = iterator.next()
879
+ while (!iteration.done) {
880
+ const resultItem = f(iteration.value, iteration.value, s)
881
+ if (isPromise(resultItem)) {
882
+ const promises = new Set()
883
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
884
+ promises.delete(selfDeletingPromise)
885
+ result.add(resolvedValue)
886
+ })
887
+ promises.add(selfDeletingPromise)
888
+ return _setMapPoolAsync(s, iterator, concurrency, f, result, promises)
889
+ }
890
+ result.add(resultItem)
891
+ iteration = iterator.next()
892
+ }
893
+ return result
894
+ }
895
+
896
+ const _mapMapPoolAsync = async function (
897
+ m, iterator, concurrency, f, result, promises,
898
+ ) {
899
+ let iteration = iterator.next()
900
+ while (!iteration.done) {
901
+ if (promises.size >= concurrency) {
902
+ await promiseRace(promises)
903
+ }
904
+ const key = iteration.value[0]
905
+ const resultItem = f(iteration.value[1], key, m)
906
+ if (isPromise(resultItem)) {
907
+ result.set(key, resultItem)
908
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
909
+ promises.delete(selfDeletingPromise)
910
+ result.set(key, resolvedValue)
911
+ })
912
+ promises.add(selfDeletingPromise)
913
+ } else {
914
+ result.set(key, resultItem)
915
+ }
916
+ iteration = iterator.next()
917
+ }
918
+ if (promises.size > 0) {
919
+ await promiseAll(promises)
920
+ }
921
+ return result
922
+ }
923
+
924
+ const mapMapPool = function (m, concurrency, f) {
925
+ const result = new Map()
926
+ const iterator = m[symbolIterator]()
927
+ let iteration = iterator.next()
928
+ while (!iteration.done) {
929
+ const key = iteration.value[0]
930
+ const resultItem = f(iteration.value[1], key, m)
931
+ if (isPromise(resultItem)) {
932
+ const promises = new Set()
933
+ result.set(key, resultItem)
934
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
935
+ promises.delete(selfDeletingPromise)
936
+ result.set(key, resolvedValue)
937
+ })
938
+ promises.add(selfDeletingPromise)
939
+ return _mapMapPoolAsync(m, iterator, concurrency, f, result, promises)
940
+ }
941
+ result.set(key, resultItem)
942
+ iteration = iterator.next()
943
+ }
944
+ return result
945
+ }
946
+
947
+ const _objectMapPoolAsync = async function (
948
+ o, concurrency, f, result, doneKeys, promises,
949
+ ) {
950
+ for (const key in o) {
951
+ if (key in doneKeys) {
952
+ continue
953
+ }
954
+ if (promises.size >= concurrency) {
955
+ await promiseRace(promises)
956
+ }
957
+ const resultItem = f(o[key], key, o)
958
+ if (isPromise(resultItem)) {
959
+ result[key] = resultItem
960
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
961
+ promises.delete(selfDeletingPromise)
962
+ result[key] = resolvedValue
963
+ })
964
+ promises.add(selfDeletingPromise)
965
+ } else {
966
+ result[key] = resultItem
967
+ }
968
+ }
969
+ if (promises.size > 0) {
970
+ await promiseAll(promises)
971
+ }
972
+ return result
973
+ }
974
+
975
+ const objectMapPool = function (o, concurrency, f) {
976
+ const result = {}
977
+ const doneKeys = {}
978
+ for (const key in o) {
979
+ doneKeys[key] = true
980
+ const resultItem = f(o[key], key, o)
981
+ if (isPromise(resultItem)) {
982
+ const promises = new Set()
983
+ result[key] = resultItem
984
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
985
+ promises.delete(selfDeletingPromise)
986
+ result[key] = resolvedValue
987
+ })
988
+ promises.add(selfDeletingPromise)
989
+ return _objectMapPoolAsync(o, concurrency, f, result, doneKeys, promises)
990
+ }
991
+ result[key] = resultItem
992
+ }
993
+ return result
994
+ }
995
+
840
996
  const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
841
997
  const argsLength = args.length,
842
998
  curriedArgsLength = curriedArgs.length,
@@ -972,7 +1128,7 @@ const _map = function (value, mapper) {
972
1128
  }
973
1129
 
974
1130
  const map = function (arg0, arg1) {
975
- if (typeof arg0 == 'function') {
1131
+ if (arg1 == null) {
976
1132
  return curry2(_map, __, arg0)
977
1133
  }
978
1134
  return isPromise(arg0)
@@ -995,7 +1151,7 @@ const _mapEntries = (value, mapper) => {
995
1151
  }
996
1152
 
997
1153
  map.entries = function mapEntries(arg0, arg1) {
998
- if (typeof arg0 == 'function') {
1154
+ if (arg1 == null) {
999
1155
  return curry2(_mapEntries, __, arg0)
1000
1156
  }
1001
1157
  return isPromise(arg0)
@@ -1027,7 +1183,7 @@ const _mapSeries = function (collection, f) {
1027
1183
  }
1028
1184
 
1029
1185
  map.series = function mapSeries(arg0, arg1) {
1030
- if (typeof arg0 == 'function') {
1186
+ if (arg1 == null) {
1031
1187
  return curry2(_mapSeries, __, arg0)
1032
1188
  }
1033
1189
  return isPromise(arg0)
@@ -1035,11 +1191,35 @@ map.series = function mapSeries(arg0, arg1) {
1035
1191
  : _mapSeries(arg0, arg1)
1036
1192
  }
1037
1193
 
1038
- map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
1039
- if (isArray(value)) {
1040
- return arrayMapPool(value, mapper, concurrencyLimit)
1194
+ const _mapPool = function (collection, concurrency, f) {
1195
+ if (isArray(collection)) {
1196
+ return arrayMapPool(collection, concurrency, f)
1197
+ }
1198
+ if (collection == null) {
1199
+ throw new TypeError(`invalid collection ${collection}`)
1041
1200
  }
1042
- throw new TypeError(`${value} is not an Array`)
1201
+ if (typeof collection == 'string' || collection.constructor == String) {
1202
+ return stringMapPool(collection, concurrency, f)
1203
+ }
1204
+ if (collection.constructor == Set) {
1205
+ return setMapPool(collection, concurrency, f)
1206
+ }
1207
+ if (collection.constructor == Map) {
1208
+ return mapMapPool(collection, concurrency, f)
1209
+ }
1210
+ if (collection.constructor == Object) {
1211
+ return objectMapPool(collection, concurrency, f)
1212
+ }
1213
+ throw new TypeError(`invalid collection ${collection}`)
1214
+ }
1215
+
1216
+ map.pool = function mapPool(arg0, arg1, arg2) {
1217
+ if (arg2 == null) {
1218
+ return curry3(_mapPool, __, arg0, arg1)
1219
+ }
1220
+ return isPromise(arg0)
1221
+ ? arg0.then(curry3(_mapPool, __, arg1, arg2))
1222
+ : _mapPool(arg0, arg1, arg2)
1043
1223
  }
1044
1224
 
1045
1225
  const FilteringIterator = (iterator, predicate) => ({
@@ -2146,7 +2326,8 @@ const _forEach = function (collection, callback) {
2146
2326
  return collection
2147
2327
  }
2148
2328
  if (typeof collection.forEach == 'function') {
2149
- return collection.forEach(callback)
2329
+ collection.forEach(callback)
2330
+ return collection
2150
2331
  }
2151
2332
  if (typeof collection[symbolIterator] == 'function') {
2152
2333
  return iteratorForEach(collection[symbolIterator](), callback)
package/every.js CHANGED
@@ -82,6 +82,12 @@ const _every = function (collection, predicate) {
82
82
  * ])
83
83
  * ```
84
84
  *
85
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
86
+ *
87
+ * ```javascript [playground]
88
+ * every(Promise.resolve([1, 2, 3, 4, 5]), n => n < 6).then(console.log) // true
89
+ * ```
90
+ *
85
91
  * @execution concurrent
86
92
  *
87
93
  * @muxing
package/filter.js CHANGED
@@ -226,6 +226,15 @@ const _filter = function (value, predicate) {
226
226
  * }
227
227
  * ```
228
228
  *
229
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
230
+ *
231
+ * ```javascript [playground]
232
+ * const isOdd = number => number % 2 == 1
233
+ *
234
+ * filter(Promise.resolve([1, 2, 3, 4, 5]), isOdd).then(console.log)
235
+ * // [1, 3, 5]
236
+ * ```
237
+ *
229
238
  * @execution concurrent
230
239
  *
231
240
  * @transducing
package/flatMap.js CHANGED
@@ -157,6 +157,13 @@ const _flatMap = function (value, flatMapper) {
157
157
  * ) // Set(10) { 1, 101, 2, 102, 3, 103, 4, 104, 5, 105 }
158
158
  * ```
159
159
  *
160
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
161
+ *
162
+ * ```javascript [playground]
163
+ * flatMap(Promise.resolve([1, 2, 3, 4, 5]), n => [n, n]).then(console.log)
164
+ * // [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
165
+ * ```
166
+ *
160
167
  * @execution concurrent
161
168
  *
162
169
  * @transducing
package/forEach.js CHANGED
@@ -25,7 +25,8 @@ const _forEach = function (collection, callback) {
25
25
  return collection
26
26
  }
27
27
  if (typeof collection.forEach == 'function') {
28
- return collection.forEach(callback)
28
+ collection.forEach(callback)
29
+ return collection
29
30
  }
30
31
  if (typeof collection[symbolIterator] == 'function') {
31
32
  return iteratorForEach(collection[symbolIterator](), callback)
@@ -71,6 +72,15 @@ const _forEach = function (collection, callback) {
71
72
  * // 25
72
73
  * ])
73
74
  * ```
75
+ *
76
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
77
+ *
78
+ * ```javascript [playground]
79
+ * forEach(Promise.resolve([1, 2, 3]), console.log)
80
+ * // 1
81
+ * // 2
82
+ * // 3
83
+ * ```
74
84
  */
75
85
  const forEach = function (arg0, arg1) {
76
86
  if (typeof arg0 == 'function') {
@@ -130,6 +140,15 @@ const _forEachSeries = function (collection, callback) {
130
140
  *
131
141
  * forEach.series({ a: 1, b: 2, c: 3 }, console.log) // 1 2 3
132
142
  * ```
143
+ *
144
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
145
+ *
146
+ * ```javascript [playground]
147
+ * forEach.series(Promise.resolve([1, 2, 3]), console.log)
148
+ * // 1
149
+ * // 2
150
+ * // 3
151
+ * ```
133
152
  */
134
153
  forEach.series = function forEachSeries(arg0, arg1) {
135
154
  if (typeof arg0 == 'function') {
package/get.js CHANGED
@@ -80,6 +80,12 @@ const _get = function (object, path, defaultValue) {
80
80
  * console.log(get00000BracketNotation([[[[['foo']]]]])) // foo
81
81
  * console.log(get00000ArrayNotation([[[[['foo']]]]])) // foo
82
82
  * ```
83
+ *
84
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
85
+ *
86
+ * ```javascript [playground]
87
+ * get(Promise.resolve({ a: 1 }), 'a').then(console.log) // 1
88
+ * ```
83
89
  */
84
90
 
85
91
  const get = function (arg0, arg1, arg2) {
package/gt.js CHANGED
@@ -47,6 +47,12 @@ const greaterThan = require('./_internal/greaterThan')
47
47
  * console.log, // true
48
48
  * ])
49
49
  * ```
50
+ *
51
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
52
+ *
53
+ * ```javascript [playground]
54
+ * gt(Promise.resolve({ a: 2, b: 1 }), get('a'), get('b')).then(console.log) // true
55
+ * ```
50
56
  */
51
57
  const gt = ComparisonOperator(greaterThan)
52
58
 
package/gte.js CHANGED
@@ -49,6 +49,12 @@ const greaterThanOrEqual = require('./_internal/greaterThanOrEqual')
49
49
  * console.log, // true
50
50
  * ])
51
51
  * ```
52
+ *
53
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
54
+ *
55
+ * ```javascript [playground]
56
+ * gte(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
57
+ * ```
52
58
  */
53
59
  const gte = ComparisonOperator(greaterThanOrEqual)
54
60