rubico 2.6.5 → 2.7.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 (382) hide show
  1. package/Transducer.d.ts +1 -1
  2. package/Transducer.js +65 -16
  3. package/__.js +10 -1
  4. package/all.d.ts +2 -2
  5. package/all.js +11 -2
  6. package/always.js +8 -0
  7. package/and.js +6 -0
  8. package/assign.js +9 -0
  9. package/compose.js +33 -8
  10. package/curry.js +18 -0
  11. package/dist/Transducer.es.js +2 -2
  12. package/dist/Transducer.es.min.js +2 -2
  13. package/dist/Transducer.js +2 -2
  14. package/dist/Transducer.min.js +2 -2
  15. package/dist/Transducer.mjs +2 -2
  16. package/dist/__.es.js +2 -2
  17. package/dist/__.es.min.js +2 -2
  18. package/dist/__.js +2 -2
  19. package/dist/__.min.js +2 -2
  20. package/dist/__.mjs +2 -2
  21. package/dist/all.es.js +2 -22
  22. package/dist/all.es.min.js +2 -2
  23. package/dist/all.js +2 -22
  24. package/dist/all.min.js +2 -2
  25. package/dist/all.mjs +2 -22
  26. package/dist/always.es.js +2 -2
  27. package/dist/always.es.min.js +2 -2
  28. package/dist/always.js +2 -2
  29. package/dist/always.min.js +2 -2
  30. package/dist/always.mjs +2 -2
  31. package/dist/and.es.js +2 -2
  32. package/dist/and.es.min.js +2 -2
  33. package/dist/and.js +2 -2
  34. package/dist/and.min.js +2 -2
  35. package/dist/and.mjs +2 -2
  36. package/dist/assign.es.js +2 -2
  37. package/dist/assign.es.min.js +2 -2
  38. package/dist/assign.js +2 -2
  39. package/dist/assign.min.js +2 -2
  40. package/dist/assign.mjs +2 -2
  41. package/dist/compose.es.js +6 -2
  42. package/dist/compose.es.min.js +3 -3
  43. package/dist/compose.js +6 -2
  44. package/dist/compose.min.js +3 -3
  45. package/dist/compose.mjs +6 -2
  46. package/dist/curry.es.js +2 -2
  47. package/dist/curry.es.min.js +2 -2
  48. package/dist/curry.js +2 -2
  49. package/dist/curry.min.js +2 -2
  50. package/dist/curry.mjs +2 -2
  51. package/dist/eq.es.js +2 -2
  52. package/dist/eq.es.min.js +2 -2
  53. package/dist/eq.js +2 -2
  54. package/dist/eq.min.js +2 -2
  55. package/dist/eq.mjs +2 -2
  56. package/dist/every.es.js +2 -2
  57. package/dist/every.es.min.js +2 -2
  58. package/dist/every.js +2 -2
  59. package/dist/every.min.js +2 -2
  60. package/dist/every.mjs +2 -2
  61. package/dist/filter.es.js +5 -3
  62. package/dist/filter.es.min.js +3 -3
  63. package/dist/filter.js +5 -3
  64. package/dist/filter.min.js +3 -3
  65. package/dist/filter.mjs +5 -3
  66. package/dist/flatMap.es.js +2 -2
  67. package/dist/flatMap.es.min.js +2 -2
  68. package/dist/flatMap.js +2 -2
  69. package/dist/flatMap.min.js +2 -2
  70. package/dist/flatMap.mjs +2 -2
  71. package/dist/forEach.es.js +2 -2
  72. package/dist/forEach.es.min.js +2 -2
  73. package/dist/forEach.js +2 -2
  74. package/dist/forEach.min.js +2 -2
  75. package/dist/forEach.mjs +2 -2
  76. package/dist/get.es.js +2 -2
  77. package/dist/get.es.min.js +2 -2
  78. package/dist/get.js +2 -2
  79. package/dist/get.min.js +2 -2
  80. package/dist/get.mjs +2 -2
  81. package/dist/gt.es.js +2 -2
  82. package/dist/gt.es.min.js +2 -2
  83. package/dist/gt.js +2 -2
  84. package/dist/gt.min.js +2 -2
  85. package/dist/gt.mjs +2 -2
  86. package/dist/gte.es.js +2 -2
  87. package/dist/gte.es.min.js +2 -2
  88. package/dist/gte.js +2 -2
  89. package/dist/gte.min.js +2 -2
  90. package/dist/gte.mjs +2 -2
  91. package/dist/lt.es.js +2 -2
  92. package/dist/lt.es.min.js +2 -2
  93. package/dist/lt.js +2 -2
  94. package/dist/lt.min.js +2 -2
  95. package/dist/lt.mjs +2 -2
  96. package/dist/lte.es.js +2 -2
  97. package/dist/lte.es.min.js +2 -2
  98. package/dist/lte.js +2 -2
  99. package/dist/lte.min.js +2 -2
  100. package/dist/lte.mjs +2 -2
  101. package/dist/map.es.js +31 -31
  102. package/dist/map.es.min.js +3 -3
  103. package/dist/map.js +31 -31
  104. package/dist/map.min.js +3 -3
  105. package/dist/map.mjs +31 -31
  106. package/dist/not.es.js +2 -2
  107. package/dist/not.es.min.js +2 -2
  108. package/dist/not.js +2 -2
  109. package/dist/not.min.js +2 -2
  110. package/dist/not.mjs +2 -2
  111. package/dist/omit.es.js +2 -2
  112. package/dist/omit.es.min.js +2 -2
  113. package/dist/omit.js +2 -2
  114. package/dist/omit.min.js +2 -2
  115. package/dist/omit.mjs +2 -2
  116. package/dist/or.es.js +2 -2
  117. package/dist/or.es.min.js +2 -2
  118. package/dist/or.js +2 -2
  119. package/dist/or.min.js +2 -2
  120. package/dist/or.mjs +2 -2
  121. package/dist/pick.es.js +2 -2
  122. package/dist/pick.es.min.js +2 -2
  123. package/dist/pick.js +2 -2
  124. package/dist/pick.min.js +2 -2
  125. package/dist/pick.mjs +2 -2
  126. package/dist/pipe.es.js +6 -2
  127. package/dist/pipe.es.min.js +3 -3
  128. package/dist/pipe.js +6 -2
  129. package/dist/pipe.min.js +3 -3
  130. package/dist/pipe.mjs +6 -2
  131. package/dist/reduce.es.js +9 -9
  132. package/dist/reduce.es.min.js +2 -2
  133. package/dist/reduce.js +9 -9
  134. package/dist/reduce.min.js +2 -2
  135. package/dist/reduce.mjs +9 -9
  136. package/dist/rubico.es.js +49 -59
  137. package/dist/rubico.es.min.js +3 -3
  138. package/dist/rubico.global.js +49 -59
  139. package/dist/rubico.global.min.js +3 -3
  140. package/dist/rubico.js +49 -59
  141. package/dist/rubico.min.js +3 -3
  142. package/dist/rubico.mjs +49 -59
  143. package/dist/set.es.js +2 -2
  144. package/dist/set.es.min.js +2 -2
  145. package/dist/set.js +2 -2
  146. package/dist/set.min.js +2 -2
  147. package/dist/set.mjs +2 -2
  148. package/dist/some.es.js +2 -2
  149. package/dist/some.es.min.js +2 -2
  150. package/dist/some.js +2 -2
  151. package/dist/some.min.js +2 -2
  152. package/dist/some.mjs +2 -2
  153. package/dist/switchCase.es.js +2 -2
  154. package/dist/switchCase.es.min.js +2 -2
  155. package/dist/switchCase.js +2 -2
  156. package/dist/switchCase.min.js +2 -2
  157. package/dist/switchCase.mjs +2 -2
  158. package/dist/tap.es.js +2 -2
  159. package/dist/tap.es.min.js +2 -2
  160. package/dist/tap.js +2 -2
  161. package/dist/tap.min.js +2 -2
  162. package/dist/tap.mjs +2 -2
  163. package/dist/thunkify.es.js +2 -2
  164. package/dist/thunkify.es.min.js +2 -2
  165. package/dist/thunkify.js +2 -2
  166. package/dist/thunkify.min.js +2 -2
  167. package/dist/thunkify.mjs +2 -2
  168. package/dist/transform.es.js +2 -2
  169. package/dist/transform.es.min.js +2 -2
  170. package/dist/transform.js +2 -2
  171. package/dist/transform.min.js +2 -2
  172. package/dist/transform.mjs +2 -2
  173. package/dist/tryCatch.es.js +2 -2
  174. package/dist/tryCatch.es.min.js +2 -2
  175. package/dist/tryCatch.js +2 -2
  176. package/dist/tryCatch.min.js +2 -2
  177. package/dist/tryCatch.mjs +2 -2
  178. package/dist/x/append.es.js +2 -2
  179. package/dist/x/append.es.min.js +2 -2
  180. package/dist/x/append.js +2 -2
  181. package/dist/x/append.min.js +2 -2
  182. package/dist/x/append.mjs +2 -2
  183. package/dist/x/callProp.es.js +2 -2
  184. package/dist/x/callProp.es.min.js +2 -2
  185. package/dist/x/callProp.js +2 -2
  186. package/dist/x/callProp.min.js +2 -2
  187. package/dist/x/callProp.mjs +2 -2
  188. package/dist/x/defaultsDeep.es.js +2 -2
  189. package/dist/x/defaultsDeep.es.min.js +2 -2
  190. package/dist/x/defaultsDeep.js +2 -2
  191. package/dist/x/defaultsDeep.min.js +2 -2
  192. package/dist/x/defaultsDeep.mjs +2 -2
  193. package/dist/x/differenceWith.es.js +2 -2
  194. package/dist/x/differenceWith.es.min.js +2 -2
  195. package/dist/x/differenceWith.js +2 -2
  196. package/dist/x/differenceWith.min.js +2 -2
  197. package/dist/x/differenceWith.mjs +2 -2
  198. package/dist/x/filterOut.es.js +5 -3
  199. package/dist/x/filterOut.es.min.js +3 -3
  200. package/dist/x/filterOut.js +5 -3
  201. package/dist/x/filterOut.min.js +3 -3
  202. package/dist/x/filterOut.mjs +5 -3
  203. package/dist/x/find.es.js +2 -2
  204. package/dist/x/find.es.min.js +2 -2
  205. package/dist/x/find.js +2 -2
  206. package/dist/x/find.min.js +2 -2
  207. package/dist/x/find.mjs +2 -2
  208. package/dist/x/findIndex.es.js +2 -2
  209. package/dist/x/findIndex.es.min.js +2 -2
  210. package/dist/x/findIndex.js +2 -2
  211. package/dist/x/findIndex.min.js +2 -2
  212. package/dist/x/findIndex.mjs +2 -2
  213. package/dist/x/first.es.js +2 -2
  214. package/dist/x/first.es.min.js +2 -2
  215. package/dist/x/first.js +2 -2
  216. package/dist/x/first.min.js +2 -2
  217. package/dist/x/first.mjs +2 -2
  218. package/dist/x/flatten.es.js +2 -2
  219. package/dist/x/flatten.es.min.js +2 -2
  220. package/dist/x/flatten.js +2 -2
  221. package/dist/x/flatten.min.js +2 -2
  222. package/dist/x/flatten.mjs +2 -2
  223. package/dist/x/groupBy.es.js +9 -9
  224. package/dist/x/groupBy.es.min.js +2 -2
  225. package/dist/x/groupBy.js +9 -9
  226. package/dist/x/groupBy.min.js +2 -2
  227. package/dist/x/groupBy.mjs +9 -9
  228. package/dist/x/has.es.js +2 -2
  229. package/dist/x/has.es.min.js +2 -2
  230. package/dist/x/has.js +2 -2
  231. package/dist/x/has.min.js +2 -2
  232. package/dist/x/has.mjs +2 -2
  233. package/dist/x/identity.es.js +2 -2
  234. package/dist/x/identity.es.min.js +2 -2
  235. package/dist/x/identity.js +2 -2
  236. package/dist/x/identity.min.js +2 -2
  237. package/dist/x/identity.mjs +2 -2
  238. package/dist/x/includes.es.js +2 -2
  239. package/dist/x/includes.es.min.js +2 -2
  240. package/dist/x/includes.js +2 -2
  241. package/dist/x/includes.min.js +2 -2
  242. package/dist/x/includes.mjs +2 -2
  243. package/dist/x/isDeepEqual.es.js +2 -2
  244. package/dist/x/isDeepEqual.es.min.js +2 -2
  245. package/dist/x/isDeepEqual.js +2 -2
  246. package/dist/x/isDeepEqual.min.js +2 -2
  247. package/dist/x/isDeepEqual.mjs +2 -2
  248. package/dist/x/isEmpty.es.js +2 -2
  249. package/dist/x/isEmpty.es.min.js +2 -2
  250. package/dist/x/isEmpty.js +2 -2
  251. package/dist/x/isEmpty.min.js +2 -2
  252. package/dist/x/isEmpty.mjs +2 -2
  253. package/dist/x/isEqual.es.js +2 -2
  254. package/dist/x/isEqual.es.min.js +2 -2
  255. package/dist/x/isEqual.js +2 -2
  256. package/dist/x/isEqual.min.js +2 -2
  257. package/dist/x/isEqual.mjs +2 -2
  258. package/dist/x/isFunction.es.js +2 -2
  259. package/dist/x/isFunction.es.min.js +2 -2
  260. package/dist/x/isFunction.js +2 -2
  261. package/dist/x/isFunction.min.js +2 -2
  262. package/dist/x/isFunction.mjs +2 -2
  263. package/dist/x/isIn.es.js +2 -2
  264. package/dist/x/isIn.es.min.js +2 -2
  265. package/dist/x/isIn.js +2 -2
  266. package/dist/x/isIn.min.js +2 -2
  267. package/dist/x/isIn.mjs +2 -2
  268. package/dist/x/isObject.es.js +2 -2
  269. package/dist/x/isObject.es.min.js +2 -2
  270. package/dist/x/isObject.js +2 -2
  271. package/dist/x/isObject.min.js +2 -2
  272. package/dist/x/isObject.mjs +2 -2
  273. package/dist/x/isString.es.js +2 -2
  274. package/dist/x/isString.es.min.js +2 -2
  275. package/dist/x/isString.js +2 -2
  276. package/dist/x/isString.min.js +2 -2
  277. package/dist/x/isString.mjs +2 -2
  278. package/dist/x/keys.es.js +2 -2
  279. package/dist/x/keys.es.min.js +2 -2
  280. package/dist/x/keys.js +2 -2
  281. package/dist/x/keys.min.js +2 -2
  282. package/dist/x/keys.mjs +2 -2
  283. package/dist/x/last.es.js +2 -2
  284. package/dist/x/last.es.min.js +2 -2
  285. package/dist/x/last.js +2 -2
  286. package/dist/x/last.min.js +2 -2
  287. package/dist/x/last.mjs +2 -2
  288. package/dist/x/maxBy.es.js +2 -2
  289. package/dist/x/maxBy.es.min.js +2 -2
  290. package/dist/x/maxBy.js +2 -2
  291. package/dist/x/maxBy.min.js +2 -2
  292. package/dist/x/maxBy.mjs +2 -2
  293. package/dist/x/noop.es.js +2 -2
  294. package/dist/x/noop.es.min.js +2 -2
  295. package/dist/x/noop.js +2 -2
  296. package/dist/x/noop.min.js +2 -2
  297. package/dist/x/noop.mjs +2 -2
  298. package/dist/x/pluck.es.js +31 -31
  299. package/dist/x/pluck.es.min.js +3 -3
  300. package/dist/x/pluck.js +31 -31
  301. package/dist/x/pluck.min.js +3 -3
  302. package/dist/x/pluck.mjs +31 -31
  303. package/dist/x/prepend.es.js +2 -2
  304. package/dist/x/prepend.es.min.js +2 -2
  305. package/dist/x/prepend.js +2 -2
  306. package/dist/x/prepend.min.js +2 -2
  307. package/dist/x/prepend.mjs +2 -2
  308. package/dist/x/size.es.js +2 -2
  309. package/dist/x/size.es.min.js +2 -2
  310. package/dist/x/size.js +2 -2
  311. package/dist/x/size.min.js +2 -2
  312. package/dist/x/size.mjs +2 -2
  313. package/dist/x/trace.es.js +2 -2
  314. package/dist/x/trace.es.min.js +2 -2
  315. package/dist/x/trace.js +2 -2
  316. package/dist/x/trace.min.js +2 -2
  317. package/dist/x/trace.mjs +2 -2
  318. package/dist/x/unionWith.es.js +2 -2
  319. package/dist/x/unionWith.es.min.js +2 -2
  320. package/dist/x/unionWith.js +2 -2
  321. package/dist/x/unionWith.min.js +2 -2
  322. package/dist/x/unionWith.mjs +2 -2
  323. package/dist/x/uniq.es.js +2 -2
  324. package/dist/x/uniq.es.min.js +2 -2
  325. package/dist/x/uniq.js +2 -2
  326. package/dist/x/uniq.min.js +2 -2
  327. package/dist/x/uniq.mjs +2 -2
  328. package/dist/x/unless.es.js +2 -2
  329. package/dist/x/unless.es.min.js +2 -2
  330. package/dist/x/unless.js +2 -2
  331. package/dist/x/unless.min.js +2 -2
  332. package/dist/x/unless.mjs +2 -2
  333. package/dist/x/values.es.js +2 -2
  334. package/dist/x/values.es.min.js +2 -2
  335. package/dist/x/values.js +2 -2
  336. package/dist/x/values.min.js +2 -2
  337. package/dist/x/values.mjs +2 -2
  338. package/dist/x/when.es.js +2 -2
  339. package/dist/x/when.es.min.js +2 -2
  340. package/dist/x/when.js +2 -2
  341. package/dist/x/when.min.js +2 -2
  342. package/dist/x/when.mjs +2 -2
  343. package/eq.d.ts +6 -6
  344. package/eq.js +14 -6
  345. package/es.js +49 -59
  346. package/every.js +19 -5
  347. package/filter.js +87 -47
  348. package/flatMap.js +38 -32
  349. package/forEach.js +107 -13
  350. package/get.js +9 -0
  351. package/gt.js +9 -0
  352. package/gte.js +9 -0
  353. package/index.js +49 -59
  354. package/lte.js +9 -0
  355. package/map.js +198 -103
  356. package/not.js +7 -0
  357. package/omit.d.ts +2 -2
  358. package/omit.js +11 -2
  359. package/or.js +6 -0
  360. package/package.json +1 -3
  361. package/pick.js +9 -0
  362. package/pipe.js +30 -3
  363. package/reduce.js +132 -89
  364. package/set.js +9 -0
  365. package/some.js +17 -3
  366. package/switchCase.js +6 -0
  367. package/tap.js +14 -0
  368. package/thunkify.js +8 -0
  369. package/transform.js +112 -44
  370. package/tryCatch.js +5 -0
  371. package/x/append.js +3 -0
  372. package/x/callProp.js +5 -0
  373. package/x/defaultsDeep.d.ts +2 -2
  374. package/x/defaultsDeep.js +7 -2
  375. package/x/differenceWith.js +5 -0
  376. package/x/find.d.ts +2 -2
  377. package/x/find.js +2 -2
  378. package/x/groupBy.d.ts +2 -2
  379. package/x/groupBy.js +2 -2
  380. package/x/pluck.d.ts +2 -2
  381. package/x/pluck.js +2 -2
  382. package/x/unionWith.test.js +3 -3
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 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 v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const objectValues=Object.values,values=e=>null==e?[]:"function"==typeof e.values?[...e.values()]:objectValues(e);export default values;
package/dist/x/values.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 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 v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/x/values.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/x/when.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 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 v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},__=Symbol.for("placeholder"),thunkify1=(r,n)=>function(){return r(n)},curry3ResolveArg0=(r,n,e)=>function(u){return r(u,n,e)},curry3ResolveArg1=(r,n,e)=>function(u){return r(n,u,e)},curry3ResolveArg2=(r,n,e)=>function(u){return r(n,e,u)},curry3=function(r,n,e,u){return n==__?curry3ResolveArg0(r,e,u):e==__?curry3ResolveArg1(r,n,u):curry3ResolveArg2(r,n,e)},thunkConditional=(r,n,e)=>r?n():e(),when=(r,n)=>function(e){const u=r(e);return isPromise(u)?u.then(curry3(thunkConditional,__,thunkify1(n,e),always(e))):u?n(e):e};export default when;
package/dist/x/when.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 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 v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/x/when.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/eq.d.ts CHANGED
@@ -20,7 +20,7 @@ export = eq;
20
20
  * Test for [equality (`==`)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality) between two values.
21
21
  *
22
22
  * ```javascript [playground]
23
- * const areNamesEqual = eq('Ted', 'George')
23
+ * const areNamesEqual = eq('Ted', 'John')
24
24
  *
25
25
  * console.log(areNamesEqual) // false
26
26
  * ```
@@ -28,11 +28,11 @@ export = eq;
28
28
  * If either of the two values are resolver functions, `eq` returns a function that resolves the values to compare from its arguments.
29
29
  *
30
30
  * ```javascript [playground]
31
- * const personIsGeorge = eq(get('name'), 'George')
31
+ * const personIsJohn = eq(get('name'), 'John')
32
32
  *
33
- * const person = { name: 'George', likes: 'bananas' }
33
+ * const person = { name: 'John', likes: 'bananas' }
34
34
  *
35
- * if (personIsGeorge(person)) {
35
+ * if (personIsJohn(person)) {
36
36
  * console.log('The person is george')
37
37
  * }
38
38
  * ```
@@ -40,8 +40,8 @@ export = eq;
40
40
  * `eq` supports a lazy API for composability.
41
41
  *
42
42
  * ```javascript [playground]
43
- * pipe({ name: 'George' }, [
44
- * eq('George', get('name')),
43
+ * pipe({ name: 'John' }, [
44
+ * eq('John', get('name')),
45
45
  * console.log, // true
46
46
  * ])
47
47
  * ```
package/eq.js CHANGED
@@ -22,7 +22,7 @@ const equals = require('./_internal/equals')
22
22
  * Test for [equality (`==`)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality) between two values.
23
23
  *
24
24
  * ```javascript [playground]
25
- * const areNamesEqual = eq('Ted', 'George')
25
+ * const areNamesEqual = eq('Ted', 'John')
26
26
  *
27
27
  * console.log(areNamesEqual) // false
28
28
  * ```
@@ -30,11 +30,11 @@ const equals = require('./_internal/equals')
30
30
  * If either of the two values are resolver functions, `eq` returns a function that resolves the values to compare from its arguments.
31
31
  *
32
32
  * ```javascript [playground]
33
- * const personIsGeorge = eq(get('name'), 'George')
33
+ * const personIsJohn = eq(get('name'), 'John')
34
34
  *
35
- * const person = { name: 'George', likes: 'bananas' }
35
+ * const person = { name: 'John', likes: 'bananas' }
36
36
  *
37
- * if (personIsGeorge(person)) {
37
+ * if (personIsJohn(person)) {
38
38
  * console.log('The person is george')
39
39
  * }
40
40
  * ```
@@ -42,8 +42,8 @@ const equals = require('./_internal/equals')
42
42
  * `eq` supports a lazy API for composability.
43
43
  *
44
44
  * ```javascript [playground]
45
- * pipe({ name: 'George' }, [
46
- * eq('George', get('name')),
45
+ * pipe({ name: 'John' }, [
46
+ * eq('John', get('name')),
47
47
  * console.log, // true
48
48
  * ])
49
49
  * ```
@@ -54,6 +54,14 @@ const equals = require('./_internal/equals')
54
54
  * eq(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
55
55
  * ```
56
56
  *
57
+ * See also:
58
+ * * [and](/docs/and)
59
+ * * [gt](/docs/gt)
60
+ * * [lt](/docs/lt)
61
+ * * [gte](/docs/gte)
62
+ * * [lte](/docs/lte)
63
+ * * [thunkify](/docs/thunkify)
64
+ *
57
65
  * @execution concurrent
58
66
  */
59
67
 
package/es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -67,6 +67,10 @@ const curry2 = function (baseFunc, arg0, arg1) {
67
67
  }
68
68
 
69
69
  const pipe = function (...args) {
70
+ if (typeof args[0] == 'function') {
71
+ return args.reduce(funcConcat)
72
+ }
73
+
70
74
  const funcs = args.pop()
71
75
  const pipeline = funcs.reduce(funcConcat)
72
76
 
@@ -82,6 +86,10 @@ const pipe = function (...args) {
82
86
  }
83
87
 
84
88
  const compose = function (...args) {
89
+ if (typeof args[0] == 'function') {
90
+ return args.reduceRight(funcConcat)
91
+ }
92
+
85
93
  const funcs = args.pop()
86
94
  const composition = funcs.reduceRight(funcConcat)
87
95
 
@@ -423,26 +431,6 @@ const all = function (...args) {
423
431
  return isArray(resolversOrValues)
424
432
  ? functionArrayAll(resolversOrValues, argValues)
425
433
  : functionObjectAll(resolversOrValues, argValues)
426
-
427
- /*
428
- ////////////////////////////////////////////////////////////////
429
- const funcs = args.pop()
430
- if (args.length == 0) {
431
- return isArray(funcs)
432
- ? curryArgs2(functionArrayAll, funcs, __)
433
- : curryArgs2(functionObjectAll, funcs, __)
434
- }
435
-
436
- if (areAnyValuesPromises(args)) {
437
- return isArray(funcs)
438
- ? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
439
- : promiseAll(args).then(curry2(functionObjectAll, funcs, __))
440
- }
441
-
442
- return isArray(funcs)
443
- ? functionArrayAll(funcs, args)
444
- : functionObjectAll(funcs, args)
445
- */
446
434
  }
447
435
 
448
436
  all.series = function allSeries(...args) {
@@ -1173,39 +1161,39 @@ const mapMapEntries = function (source, mapper) {
1173
1161
  : promiseAll(promises).then(always(result))
1174
1162
  }
1175
1163
 
1176
- const _map = function (value, mapper) {
1164
+ const _map = function (value, f) {
1177
1165
  if (isArray(value)) {
1178
- return arrayMap(value, mapper)
1166
+ return arrayMap(value, f)
1179
1167
  }
1180
1168
  if (value == null) {
1181
1169
  return value
1182
1170
  }
1183
1171
 
1184
1172
  if (typeof value.then == 'function') {
1185
- return value.then(mapper)
1173
+ return value.then(f)
1186
1174
  }
1187
1175
  if (typeof value.map == 'function') {
1188
- return value.map(mapper)
1176
+ return value.map(f)
1189
1177
  }
1190
1178
  if (typeof value == 'string' || value.constructor == String) {
1191
- return stringMap(value, mapper)
1179
+ return stringMap(value, f)
1192
1180
  }
1193
1181
  if (value.constructor == Set) {
1194
- return setMap(value, mapper)
1182
+ return setMap(value, f)
1195
1183
  }
1196
1184
  if (value.constructor == Map) {
1197
- return mapMap(value, mapper)
1185
+ return mapMap(value, f)
1198
1186
  }
1199
1187
  if (typeof value[symbolIterator] == 'function') {
1200
- return MappingIterator(value[symbolIterator](), mapper)
1188
+ return MappingIterator(value[symbolIterator](), f)
1201
1189
  }
1202
1190
  if (typeof value[symbolAsyncIterator] == 'function') {
1203
- return MappingAsyncIterator(value[symbolAsyncIterator](), mapper)
1191
+ return MappingAsyncIterator(value[symbolAsyncIterator](), f)
1204
1192
  }
1205
1193
  if (value.constructor == Object) {
1206
- return objectMap(value, mapper)
1194
+ return objectMap(value, f)
1207
1195
  }
1208
- return mapper(value)
1196
+ return f(value)
1209
1197
  }
1210
1198
 
1211
1199
  const map = function (arg0, arg1) {
@@ -1217,16 +1205,16 @@ const map = function (arg0, arg1) {
1217
1205
  : _map(arg0, arg1)
1218
1206
  }
1219
1207
 
1220
- // _mapEntries(value Object|Map, mapper function) -> Object|Map
1221
- const _mapEntries = (value, mapper) => {
1208
+ // _mapEntries(value Object|Map, f function) -> Object|Map
1209
+ const _mapEntries = (value, f) => {
1222
1210
  if (value == null) {
1223
1211
  throw new TypeError('value is not an Object or Map')
1224
1212
  }
1225
1213
  if (value.constructor == Object) {
1226
- return objectMapEntries(value, mapper)
1214
+ return objectMapEntries(value, f)
1227
1215
  }
1228
1216
  if (value.constructor == Map) {
1229
- return mapMapEntries(value, mapper)
1217
+ return mapMapEntries(value, f)
1230
1218
  }
1231
1219
  throw new TypeError('value is not an Object or Map')
1232
1220
  }
@@ -1272,26 +1260,26 @@ map.series = function mapSeries(arg0, arg1) {
1272
1260
  : _mapSeries(arg0, arg1)
1273
1261
  }
1274
1262
 
1275
- const _mapPool = function (collection, concurrency, f) {
1276
- if (isArray(collection)) {
1277
- return arrayMapPool(collection, concurrency, f)
1263
+ const _mapPool = function (f, concurrency, mapper) {
1264
+ if (isArray(f)) {
1265
+ return arrayMapPool(f, concurrency, mapper)
1278
1266
  }
1279
- if (collection == null) {
1280
- throw new TypeError(`invalid collection ${collection}`)
1267
+ if (f == null) {
1268
+ throw new TypeError(`invalid functor ${f}`)
1281
1269
  }
1282
- if (typeof collection == 'string' || collection.constructor == String) {
1283
- return stringMapPool(collection, concurrency, f)
1270
+ if (typeof f == 'string' || f.constructor == String) {
1271
+ return stringMapPool(f, concurrency, mapper)
1284
1272
  }
1285
- if (collection.constructor == Set) {
1286
- return setMapPool(collection, concurrency, f)
1273
+ if (f.constructor == Set) {
1274
+ return setMapPool(f, concurrency, mapper)
1287
1275
  }
1288
- if (collection.constructor == Map) {
1289
- return mapMapPool(collection, concurrency, f)
1276
+ if (f.constructor == Map) {
1277
+ return mapMapPool(f, concurrency, mapper)
1290
1278
  }
1291
- if (collection.constructor == Object) {
1292
- return objectMapPool(collection, concurrency, f)
1279
+ if (f.constructor == Object) {
1280
+ return objectMapPool(f, concurrency, mapper)
1293
1281
  }
1294
- throw new TypeError(`invalid collection ${collection}`)
1282
+ throw new TypeError(`invalid functor ${f}`)
1295
1283
  }
1296
1284
 
1297
1285
  map.pool = function mapPool(arg0, arg1, arg2) {
@@ -1496,7 +1484,9 @@ const filter = function (arg0, arg1) {
1496
1484
  if (typeof arg0 == 'function') {
1497
1485
  return curry2(_filter, __, arg0)
1498
1486
  }
1499
- return _filter(arg0, arg1)
1487
+ return isPromise(arg0)
1488
+ ? arg0.then(curry2(_filter, __, arg1))
1489
+ : _filter(arg0, arg1)
1500
1490
  }
1501
1491
 
1502
1492
  const objectValues = Object.values
@@ -1757,17 +1747,17 @@ const genericReduce = function (collection, reducer, result) {
1757
1747
  : reducer(result, collection)
1758
1748
  }
1759
1749
 
1760
- // _reduce(collection any, reducer function, initialValue function|any) -> Promise
1761
- const _reduce = function (collection, reducer, initialValue) {
1762
- if (typeof initialValue == 'function') {
1763
- const actualInitialValue = initialValue(collection)
1750
+ // _reduce(collection any, reducer function, initial function|any) -> Promise
1751
+ const _reduce = function (collection, reducer, initial) {
1752
+ if (typeof initial == 'function') {
1753
+ const actualInitialValue = initial(collection)
1764
1754
  return isPromise(actualInitialValue)
1765
1755
  ? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
1766
1756
  : genericReduce(collection, reducer, actualInitialValue)
1767
1757
  }
1768
- return isPromise(initialValue)
1769
- ? initialValue.then(curry3(genericReduce, collection, reducer, __))
1770
- : genericReduce(collection, reducer, initialValue)
1758
+ return isPromise(initial)
1759
+ ? initial.then(curry3(genericReduce, collection, reducer, __))
1760
+ : genericReduce(collection, reducer, initial)
1771
1761
  }
1772
1762
 
1773
1763
  const reduce = function (...args) {
package/every.js CHANGED
@@ -41,15 +41,15 @@ const _every = function (collection, predicate) {
41
41
  *
42
42
  * @synopsis
43
43
  * ```coffeescript [specscript]
44
- * type Foldable = Array|Iterable|AsyncIterable|{ reduce: function }|Object
44
+ * type Foldable = Array|Set|Map|Generator|AsyncGenerator|{ reduce: function }|Object
45
45
  *
46
- * every(collection Foldable, predicate function) -> result Promise|boolean
46
+ * every(fold Foldable, predicate function) -> result Promise|boolean
47
47
  *
48
- * every(predicate function)(collection Foldable) -> result Promise|boolean
48
+ * every(predicate function)(fold Foldable) -> result Promise|boolean
49
49
  * ```
50
50
  *
51
51
  * @description
52
- * Test a predicate concurrently across all items of a collection, returning true if all predications are truthy.
52
+ * Test a predicate concurrently across all items of a foldable, returning true if all executions return true.
53
53
  *
54
54
  * ```javascript [playground]
55
55
  * const isOdd = number => number % 2 == 1
@@ -63,7 +63,16 @@ const _every = function (collection, predicate) {
63
63
  * ) // true
64
64
  * ```
65
65
  *
66
- * The collection can be any iterable, async iterable, or object values iterable collection. Below is an example of `every` accepting an async generator as the collection.
66
+ * The following data types are considered to be foldables:
67
+ * * `array`
68
+ * * `set`
69
+ * * `map`
70
+ * * `generator`
71
+ * * `async generator`
72
+ * * `object with .reduce method`
73
+ * * `object`
74
+ *
75
+ * `every` works for async generators.
67
76
  *
68
77
  * ```javascript [playground]
69
78
  * const asyncNumbers = async function* () {
@@ -88,6 +97,11 @@ const _every = function (collection, predicate) {
88
97
  * every(Promise.resolve([1, 2, 3, 4, 5]), n => n < 6).then(console.log) // true
89
98
  * ```
90
99
  *
100
+ * See also:
101
+ * * [map](/docs/map)
102
+ * * [some](/docs/some)
103
+ * * [and](/docs/and)
104
+ *
91
105
  * @execution concurrent
92
106
  *
93
107
  * @muxing