rubico 1.9.7 → 2.0.0

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