rubico 2.6.6 → 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 +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 +5 -1
  42. package/dist/compose.es.min.js +2 -2
  43. package/dist/compose.js +5 -1
  44. package/dist/compose.min.js +2 -2
  45. package/dist/compose.mjs +5 -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 +1 -1
  72. package/dist/forEach.es.min.js +1 -1
  73. package/dist/forEach.js +1 -1
  74. package/dist/forEach.min.js +1 -1
  75. package/dist/forEach.mjs +1 -1
  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 +1 -1
  102. package/dist/map.es.min.js +1 -1
  103. package/dist/map.js +1 -1
  104. package/dist/map.min.js +1 -1
  105. package/dist/map.mjs +1 -1
  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 +5 -1
  127. package/dist/pipe.es.min.js +2 -2
  128. package/dist/pipe.js +5 -1
  129. package/dist/pipe.min.js +2 -2
  130. package/dist/pipe.mjs +5 -1
  131. package/dist/reduce.es.js +8 -8
  132. package/dist/reduce.es.min.js +1 -1
  133. package/dist/reduce.js +8 -8
  134. package/dist/reduce.min.js +1 -1
  135. package/dist/reduce.mjs +8 -8
  136. package/dist/rubico.es.js +16 -8
  137. package/dist/rubico.es.min.js +2 -2
  138. package/dist/rubico.global.js +16 -8
  139. package/dist/rubico.global.min.js +2 -2
  140. package/dist/rubico.js +16 -8
  141. package/dist/rubico.min.js +2 -2
  142. package/dist/rubico.mjs +16 -8
  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 +1 -1
  159. package/dist/tap.es.min.js +1 -1
  160. package/dist/tap.js +1 -1
  161. package/dist/tap.min.js +1 -1
  162. package/dist/tap.mjs +1 -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 +8 -8
  224. package/dist/x/groupBy.es.min.js +1 -1
  225. package/dist/x/groupBy.js +8 -8
  226. package/dist/x/groupBy.min.js +1 -1
  227. package/dist/x/groupBy.mjs +8 -8
  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 +1 -1
  299. package/dist/x/pluck.es.min.js +1 -1
  300. package/dist/x/pluck.js +1 -1
  301. package/dist/x/pluck.min.js +1 -1
  302. package/dist/x/pluck.mjs +1 -1
  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 +1 -1
  314. package/dist/x/trace.es.min.js +1 -1
  315. package/dist/x/trace.js +1 -1
  316. package/dist/x/trace.min.js +1 -1
  317. package/dist/x/trace.mjs +1 -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.d.ts +6 -6
  344. package/eq.js +14 -6
  345. package/es.js +16 -8
  346. package/every.js +19 -5
  347. package/filter.js +59 -15
  348. package/flatMap.js +32 -23
  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 +16 -8
  354. package/lte.js +9 -0
  355. package/map.js +153 -36
  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 -1
  361. package/pick.js +9 -0
  362. package/pipe.js +30 -3
  363. package/reduce.js +111 -30
  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 +105 -29
  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,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/trace.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/trace.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 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.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
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,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.6
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -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
 
@@ -1739,17 +1747,17 @@ const genericReduce = function (collection, reducer, result) {
1739
1747
  : reducer(result, collection)
1740
1748
  }
1741
1749
 
1742
- // _reduce(collection any, reducer function, initialValue function|any) -> Promise
1743
- const _reduce = function (collection, reducer, initialValue) {
1744
- if (typeof initialValue == 'function') {
1745
- 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)
1746
1754
  return isPromise(actualInitialValue)
1747
1755
  ? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
1748
1756
  : genericReduce(collection, reducer, actualInitialValue)
1749
1757
  }
1750
- return isPromise(initialValue)
1751
- ? initialValue.then(curry3(genericReduce, collection, reducer, __))
1752
- : genericReduce(collection, reducer, initialValue)
1758
+ return isPromise(initial)
1759
+ ? initial.then(curry3(genericReduce, collection, reducer, __))
1760
+ : genericReduce(collection, reducer, initial)
1753
1761
  }
1754
1762
 
1755
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
package/filter.js CHANGED
@@ -90,38 +90,74 @@ const _filter = function (value, predicate) {
90
90
  *
91
91
  * @synopsis
92
92
  * ```coffeescript [specscript]
93
- * type Filterable = Array|Object|Set|Generator|AsyncGenerator
93
+ * type Filterable = Array|Set|Map|Generator|AsyncGenerator|{ filter: function }|Object
94
94
  *
95
95
  * type Predicate = (
96
96
  * value any,
97
- * indexOrKey number|string,
98
- * collection Filterable,
97
+ * indexOrKey number|string|any,
98
+ * filt Filterable,
99
99
  * )=>boolean
100
100
  *
101
- * filter(f Map|Filterable, predicate Predicate) -> result Promise|Map|Filterable
102
- * filter(predicate Predicate)(f Map|Filterable) -> result Promise|Map|Filterable
101
+ * filter(filt Filterable, predicate Predicate) -> result Promise|Filterable
102
+ * filter(predicate Predicate)(filt Filterable) -> result Promise|Filterable
103
103
  * ```
104
104
  *
105
105
  * @description
106
- * Filter out items from a filterable. Returns a filterable of the same type.
106
+ * Filters out items from a filterable. Returns a filterable of the same type. The order of the items in the filterable is preserved.
107
107
  *
108
- * The following data types are considered filterable:
108
+ * The following data types are considered to be filterables:
109
109
  * * `array`
110
- * * `object`
111
110
  * * `set`
111
+ * * `map`
112
112
  * * `generator`
113
113
  * * `async generator`
114
+ * * `object with .filter method`
115
+ * * `object`
114
116
  *
115
117
  * The filtering operation is defined by a given predicate function. The predicate function dictates whether a given item from the filterable should be included in the returned filterable.
116
118
  *
117
119
  * ```javascript
118
120
  * const predicate = function (item) {
119
- * // condition is a boolean value involving item
121
+ * // condition is the boolean result of the predicate test on item
120
122
  * return condition
121
123
  * }
122
124
  * ```
123
125
  *
124
- * `filter` applies a provided predicate function to each item of a filterable, returning a filterable of the same type containing only the items with truthy conditions by the predicate. The order of the items is preserved.
126
+ * The predicate function signature changes depending on the provided filterable.
127
+ *
128
+ * If the filterable is an array:
129
+ * ```coffeescript [specscript]
130
+ * predicate(item any, index number, filt Array) -> condition Promise|boolean|any
131
+ * ```
132
+ *
133
+ * If the filterable is a set:
134
+ * ```coffeescript [specscript]
135
+ * predicate(item any, item any, filt Set) -> condition Promise|boolean|any
136
+ * ```
137
+ *
138
+ * If the filterable is a map:
139
+ * ```coffeescript [specscript]
140
+ * predicate(item any, key any, filt Map) -> condition Promise|boolean|any
141
+ * ```
142
+ *
143
+ * If the filterable is a generator:
144
+ * ```coffeescript [specscript]
145
+ * predicate(item any) -> condition Promise|boolean|any
146
+ * ```
147
+ *
148
+ * If the filterable is an async generator:
149
+ * ```coffeescript [specscript]
150
+ * predicate(item any) -> condition Promise|boolean|any
151
+ * ```
152
+ *
153
+ * If the filterable is an object with a `.filter` method, the predicate function signature is defined externally.
154
+ *
155
+ * If the filterable is a plain object:
156
+ * ```coffeescript [specscript]
157
+ * predicate(item any, key string, filt Object) -> condition Promise|boolean|any
158
+ * ```
159
+ *
160
+ * `filter` works for arrays.
125
161
  *
126
162
  * ```javascript [playground]
127
163
  * const isOdd = number => number % 2 == 1
@@ -132,7 +168,7 @@ const _filter = function (value, predicate) {
132
168
  * console.log(result) // [1, 3, 5]
133
169
  * ```
134
170
  *
135
- * The predicate may be asynchronous, in which case the returned promise is concurrently resolved for its boolean condition before deciding whether to include the corresponding item in the result.
171
+ * If the predicate is asynchronous, the returned promise is concurrently resolved for its boolean condition before continuing with the filtering operation.
136
172
  *
137
173
  * ```javascript [playground]
138
174
  * const asyncIsOdd = async number => number % 2 == 1
@@ -143,7 +179,7 @@ const _filter = function (value, predicate) {
143
179
  * promise.then(console.log) // [1, 3, 5]
144
180
  * ```
145
181
  *
146
- * For objects, `filter` applies the predicate function to just the values.
182
+ * `filter` applies the predicate function to just the values of an object.
147
183
  *
148
184
  * ```javascript [playground]
149
185
  * const isOdd = number => number % 2 == 1
@@ -154,7 +190,7 @@ const _filter = function (value, predicate) {
154
190
  * console.log(result) // { a: 1, c: 3, e: 5 }
155
191
  * ```
156
192
  *
157
- * For maps, `filter` applies the predicate to the values of the entries. The order of the entries is preserved.
193
+ * `filter` applies the predicate to the values of the entries of a map.
158
194
  *
159
195
  * ```javascript [playground]
160
196
  * const isOdd = number => number % 2 == 1
@@ -165,7 +201,7 @@ const _filter = function (value, predicate) {
165
201
  * console.log(result) // Map(3) { 'a' => 1, 'c' => 3, 'e' => 5 }
166
202
  * ```
167
203
  *
168
- * For generators, `filter` returns a lazily filtered generator. All values that are normally yielded by the generator that test falsy by the predicate are skipped.
204
+ * For generators, `filter` returns a lazily filtered generator. All values that are normally yielded by the generator that test false by the predicate are excluded from the returned generator.
169
205
  *
170
206
  * ```javascript [playground]
171
207
  * const isOdd = number => number % 2 == 1
@@ -192,7 +228,7 @@ const _filter = function (value, predicate) {
192
228
  * }
193
229
  * ```
194
230
  *
195
- * For async generators, `filter` returns a lazily filtered async generator. All values that are normally yielded by the async generator that test falsy by the predicate are skipped.
231
+ * For async generators, `filter` returns a lazily filtered async generator. All values that are normally yielded by the async generator that test falsy by the predicate are excluded from the returned async generator.
196
232
  *
197
233
  * ```javascript [playground]
198
234
  * const asyncIsOdd = async number => number % 2 == 1
@@ -229,6 +265,14 @@ const _filter = function (value, predicate) {
229
265
  * // [1, 3, 5]
230
266
  * ```
231
267
  *
268
+ * See also:
269
+ * * [forEach](/docs/forEach)
270
+ * * [map](/docs/map)
271
+ * * [reduce](/docs/reduce)
272
+ * * [transform](/docs/transform)
273
+ * * [flatMap](/docs/flatMap)
274
+ * * [some](/docs/some)
275
+ *
232
276
  * @execution concurrent
233
277
  *
234
278
  * @transducing