rubico 1.9.7 → 2.0.1

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