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/x/pluck.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
 
@@ -91,20 +91,6 @@ const isObject = value => {
91
91
  return (typeofValue == 'object') || (typeofValue == 'function')
92
92
  }
93
93
 
94
- const objectProto = Object.prototype
95
-
96
- const nativeObjectToString = objectProto.toString
97
-
98
- const objectToString = value => nativeObjectToString.call(value)
99
-
100
- const generatorFunctionTag = '[object GeneratorFunction]'
101
-
102
- const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
103
-
104
- const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
105
-
106
- const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
107
-
108
94
  const promiseAll = Promise.all.bind(Promise)
109
95
 
110
96
  const arrayMap = function (array, mapper) {
@@ -123,31 +109,6 @@ const arrayMap = function (array, mapper) {
123
109
  return isAsync ? promiseAll(result) : result
124
110
  }
125
111
 
126
- const generatorFunctionMap = (
127
- generatorFunc, mapper,
128
- ) => function* mappingGeneratorFunc(...args) {
129
- for (const item of generatorFunc(...args)) {
130
- yield mapper(item)
131
- }
132
- }
133
-
134
- const asyncGeneratorFunctionMap = function (asyncGeneratorFunc, mapper) {
135
- return async function* mappingAsyncGeneratorFunc(...args) {
136
- for await (const item of asyncGeneratorFunc(...args)) {
137
- yield mapper(item)
138
- }
139
- }
140
- }
141
-
142
- const reducerMap = (
143
- reducer, mapper,
144
- ) => function mappingReducer(result, reducerItem) {
145
- const mappingReducerItem = mapper(reducerItem)
146
- return isPromise(mappingReducerItem)
147
- ? mappingReducerItem.then(curry2(reducer, result, __))
148
- : reducer(result, mappingReducerItem)
149
- }
150
-
151
112
  // argument resolver for curry3
152
113
  const curry3ResolveArg0 = (
153
114
  baseFunc, arg1, arg2,
@@ -387,38 +348,6 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
387
348
  return result
388
349
  }
389
350
 
390
- const arrayMapWithIndex = function (array, mapper) {
391
- const arrayLength = array.length,
392
- result = Array(arrayLength)
393
- let index = -1, isAsync = false
394
- while (++index < arrayLength) {
395
- const resultItem = mapper(array[index], index, array)
396
- if (isPromise(resultItem)) {
397
- isAsync = true
398
- }
399
- result[index] = resultItem
400
- }
401
- return isAsync ? promiseAll(result) : result
402
- }
403
-
404
- const hasOwnProperty = Object.prototype.hasOwnProperty
405
- const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
406
-
407
- const objectMapOwn = function (object, mapper) {
408
- const result = {}
409
- let isAsync = false
410
- for (const key in object) {
411
- if (hasOwn(object, key)) {
412
- const resultItem = mapper(object[key])
413
- if (isPromise(resultItem)) {
414
- isAsync = true
415
- }
416
- result[key] = resultItem
417
- }
418
- }
419
- return isAsync ? promiseObjectAll(result) : result
420
- }
421
-
422
351
  const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
423
352
  const argsLength = args.length,
424
353
  curriedArgsLength = curriedArgs.length,
@@ -526,15 +455,6 @@ const _map = function (value, mapper) {
526
455
  if (isArray(value)) {
527
456
  return arrayMap(value, mapper)
528
457
  }
529
- if (typeof value == 'function') {
530
- if (isGeneratorFunction(value)) {
531
- return generatorFunctionMap(value, mapper)
532
- }
533
- if (isAsyncGeneratorFunction(value)) {
534
- return asyncGeneratorFunctionMap(value, mapper)
535
- }
536
- return reducerMap(value, mapper)
537
- }
538
458
  if (value == null) {
539
459
  return value
540
460
  }
@@ -568,10 +488,15 @@ const _map = function (value, mapper) {
568
488
 
569
489
  const map = (...args) => {
570
490
  const mapper = args.pop()
571
- if (args.length > 0) {
572
- return _map(args[0], mapper)
491
+ if (args.length == 0) {
492
+ return curry2(_map, __, mapper)
493
+ }
494
+
495
+ const collection = args[0]
496
+ if (isPromise(collection)) {
497
+ return collection.then(curry2(_map, __, mapper))
573
498
  }
574
- return curry2(_map, __, mapper)
499
+ return _map(collection, mapper)
575
500
  }
576
501
 
577
502
  map.entries = function mapEntries(mapper) {
@@ -603,20 +528,6 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
603
528
  throw new TypeError(`${value} is not an Array`)
604
529
  }
605
530
 
606
- map.withIndex = mapper => function mappingWithIndex(value) {
607
- if (isArray(value)) {
608
- return arrayMapWithIndex(value, mapper)
609
- }
610
- throw new TypeError(`${value} is not an Array`)
611
- }
612
-
613
- map.own = mapper => function mappingOwnProperties(value) {
614
- if (isObject(value) && !isArray(value)) {
615
- return objectMapOwn(value, mapper)
616
- }
617
- throw new TypeError(`${value} is not an Object`)
618
- }
619
-
620
531
  const memoizeCappedUnary = function (func, cap) {
621
532
  const cache = new Map(),
622
533
  memoized = function memoized(arg0) {
@@ -675,14 +586,32 @@ const getByPath = function (value, path) {
675
586
  return result
676
587
  }
677
588
 
678
- const get = (path, defaultValue) => function getter(value) {
679
- const result = value == null ? undefined : getByPath(value, path)
589
+ // _get(object Object, path string, defaultValue function|any)
590
+ const _get = function (object, path, defaultValue) {
591
+ const result = object == null ? undefined : getByPath(object, path)
680
592
  return result === undefined
681
- ? typeof defaultValue == 'function' ? defaultValue(value) : defaultValue
593
+ ? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
682
594
  : result
683
595
  }
684
596
 
685
- const pluck = funcConcat(get, map)
597
+ const get = function (arg0, arg1, arg2) {
598
+ if (isPromise(arg0)) {
599
+ return arg0.then(curry3(_get, __, arg1, arg2))
600
+ }
601
+ if (isObject(arg0) && !isArray(arg0)) {
602
+ return _get(arg0, arg1, arg2)
603
+ }
604
+ return curry3(_get, __, arg0, arg1)
605
+ }
606
+
607
+ const pluck = function (...args) {
608
+ const path = args.pop()
609
+ const getter = get(path)
610
+ if (args.length == 0) {
611
+ return map(getter)
612
+ }
613
+ return map(args[0], getter)
614
+ }
686
615
 
687
616
  return pluck
688
617
  }())))
@@ -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.pluck=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=(t,r)=>function(...o){const e=t(...o);return n(e)?e.then(r):r(e)},r=Symbol.iterator,o=(n,t)=>({toString:()=>"[object MappingIterator]",[r](){return this},next(){const r=n.next();return r.done?r:{value:t(r.value),done:!1}}}),e=n=>({value:n,done:!1}),c=Symbol.asyncIterator,u=(t,r)=>({[c](){return this},async next(){const o=await t.next();if(o.done)return o;const c=r(o.value);return n(c)?c.then(e):{value:c,done:!1}}}),i=Symbol.for("placeholder"),f=function(n,t,r){return t==i?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)},s=Array.isArray,l=Object.prototype.toString,a=n=>l.call(n),h=Promise.all.bind(Promise),p=function(t,r){const o=t.length,e=Array(o);let c=-1,u=!1;for(;++c<o;){const o=r(t[c],c,t);n(o)&&(u=!0),e[c]=o}return u?h(e):e},y=function(n,t,r,o){return t==i?((n,t,r)=>function(o){return n(o,t,r)})(n,r,o):r==i?((n,t,r)=>function(o){return n(t,o,r)})(n,t,o):((n,t,r)=>function(o){return n(t,r,o)})(n,t,r)},d=(n,t,r)=>n[t](r),g=n=>function(){return n},w=function(n,t,r,o,e){return t==i?((n,t,r,o)=>function(e){return n(e,t,r,o)})(n,r,o,e):r==i?((n,t,r,o)=>function(e){return n(t,e,r,o)})(n,t,o,e):o==i?((n,t,r,o)=>function(e){return n(t,r,e,o)})(n,t,r,e):((n,t,r,o)=>function(e){return n(t,r,o,e)})(n,t,r,o)},b=(n,t,r,o)=>n[t](r,o),j=t=>new Promise((t=>function(r){const o={};let e=0;for(const c in t){const u=t[c];n(u)?(e+=1,u.then((n=>function(t){o[n]=t,e-=1,0==e&&r(o)})(c))):o[c]=u}0==e&&r(o)})(t)),m=function(n,t,r){return n[t]=r,n},A=async function(t,r,o,e){const c=t.length;for(;++e<c;){const c=r(t[e]);o[e]=n(c)?await c:c}return o},v=n=>function(...t){return n(...t),t[0]},S=Promise.race.bind(Promise),M=async function(t,r,o,e,c,u){const i=t.length;for(;++c<i;){u.size>=o&&await S(u);const i=r(t[c]);if(n(i)){const n=i.then(v((()=>u.delete(n))));u.add(n),e[c]=n}else e[c]=i}return h(e)},O=Object.prototype.hasOwnProperty,T=(n,t)=>O.call(n,t),E=(n,t,r)=>function(...o){const e=r.length,c=o.length,u=[];let f=-1,s=-1,l=0;for(;++f<e;){const e=r[f];if(e==i&&(s+=1)<c){const n=o[s];n==i&&(l+=1),u.push(n)}else u.push(e);if(u.length==n)return 0==l?t(...u):x(n,t,u)}for(;++s<c;){const r=o[s];if(r==i&&(l+=1),u.push(r),u.length==n)return 0==l?t(...u):x(n,t,u)}return x(n,t,u)},x=function(n,t,r){const o=r.length;if(o<n)return E(n,t,r);let e=-1;for(;++e<o;){if(r[e]==i)return E(n,t,r)}return t(...r)},P=n=>function([t,r]){return n(t,r)},$=function(n,t,r){return n.set(t,r)},I=function(t,r){const o=new Map,e=[];return t.forEach(((t,r,o)=>function(e,c){const u=t([c,e]);n(u)?o.push(u.then(P(x(3,$,[r])))):r.set(u[0],u[1])})(r,o,e)),0==e.length?o:h(e).then(g(o))},z=function(t,e){return s(t)?p(t,e):"function"==typeof t?(n=>"[object GeneratorFunction]"==a(n))(t)?((n,t)=>function*(...r){for(const o of n(...r))yield t(o)})(t,e):(n=>"[object AsyncGeneratorFunction]"==a(n))(t)?function(n,t){return async function*(...r){for await(const o of n(...r))yield t(o)}}(t,e):((t,r)=>function(o,e){const c=r(e);return n(c)?c.then(f(t,o,i)):t(o,c)})(t,e):null==t?t:"function"==typeof t.then?t.then(e):"function"==typeof t.map?t.map(e):"string"==typeof t||t.constructor==String?function(t,r){const o=p(t,r);return n(o)?o.then(y(d,i,"join","")):o.join("")}(t,e):t.constructor==Set?function(t,r){const o=new Set,e=[];for(const c of t){const u=r(c,c,t);n(u)?e.push(u.then(y(d,o,"add",i))):o.add(u)}return 0==e.length?o:h(e).then(g(o))}(t,e):t.constructor==Map?function(t,r){const o=new Map,e=[];for(const[c,u]of t){const f=r(u,c,t);n(f)?e.push(f.then(w(b,o,"set",c,i))):o.set(c,f)}return 0==e.length?o:h(e).then(g(o))}(t,e):"function"==typeof t[r]?o(t[r](),e):"function"==typeof t[c]?u(t[c](),e):t.constructor==Object?function(t,r){const o={};let e=!1;for(const c in t){const u=r(t[c],c,t);n(u)&&(e=!0),o[c]=u}return e?j(o):o}(t,e):e(t)},F=(...n)=>{const t=n.pop();return n.length>0?z(n[0],t):f(z,i,t)};F.entries=function(t){return function(r){if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return function(t,r){const o={},e=[];for(const c in t){const u=r([c,t[c]]);n(u)?e.push(u.then(P(x(3,m,[o])))):o[u[0]]=u[1]}return 0==e.length?o:h(e).then(g(o))}(r,t);if(r.constructor==Map)return I(r,t);throw new TypeError("value is not an Object or Map")}},F.series=r=>function(o){if(s(o))return function(r,o){const e=r.length,c=Array(e);let u=-1;for(;++u<e;){const e=o(r[u]);if(n(e))return e.then(t(y(m,c,u,i),w(A,r,o,i,u)));c[u]=e}return c}(o,r);throw new TypeError(`${o} is not an Array`)},F.pool=(t,r)=>function(o){if(s(o))return function(t,r,o){const e=t.length,c=Array(e);let u=-1;for(;++u<e;){const e=r(t[u]);if(n(e)){const n=new Set,i=e.then(v((()=>n.delete(i))));return n.add(i),c[u]=i,M(t,r,o,c,u,n)}c[u]=e}return c}(o,r,t);throw new TypeError(`${o} is not an Array`)},F.withIndex=t=>function(r){if(s(r))return function(t,r){const o=t.length,e=Array(o);let c=-1,u=!1;for(;++c<o;){const o=r(t[c],c,t);n(o)&&(u=!0),e[c]=o}return u?h(e):e}(r,t);throw new TypeError(`${r} is not an Array`)},F.own=t=>function(r){if((n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(r)&&!s(r))return function(t,r){const o={};let e=!1;for(const c in t)if(T(t,c)){const u=r(t[c]);n(u)&&(e=!0),o[c]=u}return e?j(o):o}(r,t);throw new TypeError(`${r} is not an Object`)};const G=/[.|[|\]]+/,k=function(n,t){const r=new Map,o=function(o){if(r.has(o))return r.get(o);const e=n(o);return r.set(o,e),r.size>t&&r.clear(),e};return o.cache=r,o}((function(n){const t=n.length-1,r="["==n[0],o="]"==n[t];return r&&o?n.slice(1,t).split(G):r?n.slice(1).split(G):o?n.slice(0,t).split(G):n.split(G)}),500),q=function(n,t){const r=(n=>s(n)?n:"string"==typeof n?k(n):[n])(t),o=r.length;let e=-1,c=n;for(;++e<o;)if(c=c[r[e]],null==c)return;return c};return t(((n,t)=>function(r){const o=null==r?void 0:q(r,n);return void 0===o?"function"==typeof t?t(r):t:o}),F)}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.pluck=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=(t,e)=>function(...r){const o=t(...r);return n(o)?o.then(e):e(o)},e=Symbol.iterator,r=(n,t)=>({toString:()=>"[object MappingIterator]",[e](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),o=n=>({value:n,done:!1}),u=Symbol.asyncIterator,c=(t,e)=>({[u](){return this},async next(){const r=await t.next();if(r.done)return r;const u=e(r.value);return n(u)?u.then(o):{value:u,done:!1}}}),i=Symbol.for("placeholder"),s=function(n,t,e){return t==i?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},f=Array.isArray,l=Promise.all.bind(Promise),h=function(t,e){const r=t.length,o=Array(r);let u=-1,c=!1;for(;++u<r;){const r=e(t[u],u,t);n(r)&&(c=!0),o[u]=r}return c?l(o):o},a=function(n,t,e,r){return t==i?((n,t,e)=>function(r){return n(r,t,e)})(n,e,r):e==i?((n,t,e)=>function(r){return n(t,r,e)})(n,t,r):((n,t,e)=>function(r){return n(t,e,r)})(n,t,e)},p=(n,t,e)=>n[t](e),y=n=>function(){return n},g=function(n,t,e,r,o){return t==i?((n,t,e,r)=>function(o){return n(o,t,e,r)})(n,e,r,o):e==i?((n,t,e,r)=>function(o){return n(t,o,e,r)})(n,t,r,o):r==i?((n,t,e,r)=>function(o){return n(t,e,o,r)})(n,t,e,o):((n,t,e,r)=>function(o){return n(t,e,r,o)})(n,t,e,r)},d=(n,t,e,r)=>n[t](e,r),w=t=>new Promise((t=>function(e){const r={};let o=0;for(const u in t){const c=t[u];n(c)?(o+=1,c.then((n=>function(t){r[n]=t,o-=1,0==o&&e(r)})(u))):r[u]=c}0==o&&e(r)})(t)),b=function(n,t,e){return n[t]=e,n},m=async function(t,e,r,o){const u=t.length;for(;++o<u;){const u=e(t[o]);r[o]=n(u)?await u:u}return r},j=n=>function(...t){return n(...t),t[0]},v=Promise.race.bind(Promise),M=async function(t,e,r,o,u,c){const i=t.length;for(;++u<i;){c.size>=r&&await v(c);const i=e(t[u]);if(n(i)){const n=i.then(j((()=>c.delete(n))));c.add(n),o[u]=n}else o[u]=i}return l(o)},S=(n,t,e)=>function(...r){const o=e.length,u=r.length,c=[];let s=-1,f=-1,l=0;for(;++s<o;){const o=e[s];if(o==i&&(f+=1)<u){const n=r[f];n==i&&(l+=1),c.push(n)}else c.push(o);if(c.length==n)return 0==l?t(...c):A(n,t,c)}for(;++f<u;){const e=r[f];if(e==i&&(l+=1),c.push(e),c.length==n)return 0==l?t(...c):A(n,t,c)}return A(n,t,c)},A=function(n,t,e){const r=e.length;if(r<n)return S(n,t,e);let o=-1;for(;++o<r;){if(e[o]==i)return S(n,t,e)}return t(...e)},T=n=>function([t,e]){return n(t,e)},x=function(n,t,e){return n.set(t,e)},E=function(t,e){const r=new Map,o=[];return t.forEach(((t,e,r)=>function(o,u){const c=t([u,o]);n(c)?r.push(c.then(T(A(3,x,[e])))):e.set(c[0],c[1])})(e,r,o)),0==o.length?r:l(o).then(y(r))},P=function(t,o){return f(t)?h(t,o):null==t?t:"function"==typeof t.then?t.then(o):"function"==typeof t.map?t.map(o):"string"==typeof t||t.constructor==String?function(t,e){const r=h(t,e);return n(r)?r.then(a(p,i,"join","")):r.join("")}(t,o):t.constructor==Set?function(t,e){const r=new Set,o=[];for(const u of t){const c=e(u,u,t);n(c)?o.push(c.then(a(p,r,"add",i))):r.add(c)}return 0==o.length?r:l(o).then(y(r))}(t,o):t.constructor==Map?function(t,e){const r=new Map,o=[];for(const[u,c]of t){const s=e(c,u,t);n(s)?o.push(s.then(g(d,r,"set",u,i))):r.set(u,s)}return 0==o.length?r:l(o).then(y(r))}(t,o):"function"==typeof t[e]?r(t[e](),o):"function"==typeof t[u]?c(t[u](),o):t.constructor==Object?function(t,e){const r={};let o=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(o=!0),r[u]=c}return o?w(r):r}(t,o):o(t)},O=(...t)=>{const e=t.pop();if(0==t.length)return s(P,i,e);const r=t[0];return n(r)?r.then(s(P,i,e)):P(r,e)};O.entries=function(t){return function(e){if(null==e)throw new TypeError("value is not an Object or Map");if(e.constructor==Object)return function(t,e){const r={},o=[];for(const u in t){const c=e([u,t[u]]);n(c)?o.push(c.then(T(A(3,b,[r])))):r[c[0]]=c[1]}return 0==o.length?r:l(o).then(y(r))}(e,t);if(e.constructor==Map)return E(e,t);throw new TypeError("value is not an Object or Map")}},O.series=e=>function(r){if(f(r))return function(e,r){const o=e.length,u=Array(o);let c=-1;for(;++c<o;){const o=r(e[c]);if(n(o))return o.then(t(a(b,u,c,i),g(m,e,r,i,c)));u[c]=o}return u}(r,e);throw new TypeError(`${r} is not an Array`)},O.pool=(t,e)=>function(r){if(f(r))return function(t,e,r){const o=t.length,u=Array(o);let c=-1;for(;++c<o;){const o=e(t[c]);if(n(o)){const n=new Set,i=o.then(j((()=>n.delete(i))));return n.add(i),u[c]=i,M(t,e,r,u,c,n)}u[c]=o}return u}(r,e,t);throw new TypeError(`${r} is not an Array`)};const z=/[.|[|\]]+/,I=function(n,t){const e=new Map,r=function(r){if(e.has(r))return e.get(r);const o=n(r);return e.set(r,o),e.size>t&&e.clear(),o};return r.cache=e,r}((function(n){const t=n.length-1,e="["==n[0],r="]"==n[t];return e&&r?n.slice(1,t).split(z):e?n.slice(1).split(z):r?n.slice(0,t).split(z):n.split(z)}),500),$=function(n,t){const e=(n=>f(n)?n:"string"==typeof n?I(n):[n])(t),r=e.length;let o=-1,u=n;for(;++o<r;)if(u=u[e[o]],null==u)return;return u},k=function(n,t,e){const r=null==n?void 0:$(n,t);return void 0===r?"function"==typeof e?e(n):e:r};return function(...t){const e=t.pop(),r=n(o=e)?o.then(a(k,i,u,c)):(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(o)&&!f(o)?k(o,u,c):a(k,i,o,u);var o,u,c;return 0==t.length?O(r):O(t[0],r)}}());
package/dist/x/pluck.mjs 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
 
@@ -85,20 +85,6 @@ const isObject = value => {
85
85
  return (typeofValue == 'object') || (typeofValue == 'function')
86
86
  }
87
87
 
88
- const objectProto = Object.prototype
89
-
90
- const nativeObjectToString = objectProto.toString
91
-
92
- const objectToString = value => nativeObjectToString.call(value)
93
-
94
- const generatorFunctionTag = '[object GeneratorFunction]'
95
-
96
- const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
97
-
98
- const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
99
-
100
- const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
101
-
102
88
  const promiseAll = Promise.all.bind(Promise)
103
89
 
104
90
  const arrayMap = function (array, mapper) {
@@ -117,31 +103,6 @@ const arrayMap = function (array, mapper) {
117
103
  return isAsync ? promiseAll(result) : result
118
104
  }
119
105
 
120
- const generatorFunctionMap = (
121
- generatorFunc, mapper,
122
- ) => function* mappingGeneratorFunc(...args) {
123
- for (const item of generatorFunc(...args)) {
124
- yield mapper(item)
125
- }
126
- }
127
-
128
- const asyncGeneratorFunctionMap = function (asyncGeneratorFunc, mapper) {
129
- return async function* mappingAsyncGeneratorFunc(...args) {
130
- for await (const item of asyncGeneratorFunc(...args)) {
131
- yield mapper(item)
132
- }
133
- }
134
- }
135
-
136
- const reducerMap = (
137
- reducer, mapper,
138
- ) => function mappingReducer(result, reducerItem) {
139
- const mappingReducerItem = mapper(reducerItem)
140
- return isPromise(mappingReducerItem)
141
- ? mappingReducerItem.then(curry2(reducer, result, __))
142
- : reducer(result, mappingReducerItem)
143
- }
144
-
145
106
  // argument resolver for curry3
146
107
  const curry3ResolveArg0 = (
147
108
  baseFunc, arg1, arg2,
@@ -381,38 +342,6 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
381
342
  return result
382
343
  }
383
344
 
384
- const arrayMapWithIndex = function (array, mapper) {
385
- const arrayLength = array.length,
386
- result = Array(arrayLength)
387
- let index = -1, isAsync = false
388
- while (++index < arrayLength) {
389
- const resultItem = mapper(array[index], index, array)
390
- if (isPromise(resultItem)) {
391
- isAsync = true
392
- }
393
- result[index] = resultItem
394
- }
395
- return isAsync ? promiseAll(result) : result
396
- }
397
-
398
- const hasOwnProperty = Object.prototype.hasOwnProperty
399
- const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
400
-
401
- const objectMapOwn = function (object, mapper) {
402
- const result = {}
403
- let isAsync = false
404
- for (const key in object) {
405
- if (hasOwn(object, key)) {
406
- const resultItem = mapper(object[key])
407
- if (isPromise(resultItem)) {
408
- isAsync = true
409
- }
410
- result[key] = resultItem
411
- }
412
- }
413
- return isAsync ? promiseObjectAll(result) : result
414
- }
415
-
416
345
  const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
417
346
  const argsLength = args.length,
418
347
  curriedArgsLength = curriedArgs.length,
@@ -520,15 +449,6 @@ const _map = function (value, mapper) {
520
449
  if (isArray(value)) {
521
450
  return arrayMap(value, mapper)
522
451
  }
523
- if (typeof value == 'function') {
524
- if (isGeneratorFunction(value)) {
525
- return generatorFunctionMap(value, mapper)
526
- }
527
- if (isAsyncGeneratorFunction(value)) {
528
- return asyncGeneratorFunctionMap(value, mapper)
529
- }
530
- return reducerMap(value, mapper)
531
- }
532
452
  if (value == null) {
533
453
  return value
534
454
  }
@@ -562,10 +482,15 @@ const _map = function (value, mapper) {
562
482
 
563
483
  const map = (...args) => {
564
484
  const mapper = args.pop()
565
- if (args.length > 0) {
566
- return _map(args[0], mapper)
485
+ if (args.length == 0) {
486
+ return curry2(_map, __, mapper)
487
+ }
488
+
489
+ const collection = args[0]
490
+ if (isPromise(collection)) {
491
+ return collection.then(curry2(_map, __, mapper))
567
492
  }
568
- return curry2(_map, __, mapper)
493
+ return _map(collection, mapper)
569
494
  }
570
495
 
571
496
  map.entries = function mapEntries(mapper) {
@@ -597,20 +522,6 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
597
522
  throw new TypeError(`${value} is not an Array`)
598
523
  }
599
524
 
600
- map.withIndex = mapper => function mappingWithIndex(value) {
601
- if (isArray(value)) {
602
- return arrayMapWithIndex(value, mapper)
603
- }
604
- throw new TypeError(`${value} is not an Array`)
605
- }
606
-
607
- map.own = mapper => function mappingOwnProperties(value) {
608
- if (isObject(value) && !isArray(value)) {
609
- return objectMapOwn(value, mapper)
610
- }
611
- throw new TypeError(`${value} is not an Object`)
612
- }
613
-
614
525
  const memoizeCappedUnary = function (func, cap) {
615
526
  const cache = new Map(),
616
527
  memoized = function memoized(arg0) {
@@ -669,13 +580,31 @@ const getByPath = function (value, path) {
669
580
  return result
670
581
  }
671
582
 
672
- const get = (path, defaultValue) => function getter(value) {
673
- const result = value == null ? undefined : getByPath(value, path)
583
+ // _get(object Object, path string, defaultValue function|any)
584
+ const _get = function (object, path, defaultValue) {
585
+ const result = object == null ? undefined : getByPath(object, path)
674
586
  return result === undefined
675
- ? typeof defaultValue == 'function' ? defaultValue(value) : defaultValue
587
+ ? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
676
588
  : result
677
589
  }
678
590
 
679
- const pluck = funcConcat(get, map)
591
+ const get = function (arg0, arg1, arg2) {
592
+ if (isPromise(arg0)) {
593
+ return arg0.then(curry3(_get, __, arg1, arg2))
594
+ }
595
+ if (isObject(arg0) && !isArray(arg0)) {
596
+ return _get(arg0, arg1, arg2)
597
+ }
598
+ return curry3(_get, __, arg0, arg1)
599
+ }
600
+
601
+ const pluck = function (...args) {
602
+ const path = args.pop()
603
+ const getter = get(path)
604
+ if (args.length == 0) {
605
+ return map(getter)
606
+ }
607
+ return map(args[0], getter)
608
+ }
680
609
 
681
610
  export default pluck
@@ -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
 
@@ -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
  const isString=function(r){return"string"==typeof r||null!=r&&r.constructor==String},isArray=Array.isArray,prepend=r=>function(n){if(isArray(n))return isArray(r)?[...r,...n]:[r,...n];if(isString(n)){if(!isString(r))throw new TypeError(`${r} is not a string`);return`${r}${n}`}throw new TypeError(`${n} is not an Array or string`)};export default prepend;
package/dist/x/prepend.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
 
@@ -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
 
@@ -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
 
package/dist/x/size.es.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
 
@@ -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
  const objectKeysLength=e=>{let t=0;for(const n in e)t+=1;return t},size=e=>"string"==typeof e?e.length:null==e?0:"number"==typeof e.length?e.length:"number"==typeof e.size?e.size:e.constructor==Object?objectKeysLength(e):1;export default size;
package/dist/x/size.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
 
@@ -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
 
package/dist/x/size.mjs 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
 
@@ -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
 
@@ -18,11 +18,6 @@ const funcConcat = (
18
18
 
19
19
  const always = value => function getter() { return value }
20
20
 
21
- const tapSync = func => function tapping(...args) {
22
- func(...args)
23
- return args[0]
24
- }
25
-
26
21
  const thunkifyArgs = (func, args) => function thunk() {
27
22
  return func(...args)
28
23
  }
@@ -70,8 +65,6 @@ const tap = func => function tapping(...args) {
70
65
  return isPromise(call) ? call.then(always(result)) : result
71
66
  }
72
67
 
73
- tap.sync = tapSync
74
-
75
68
  tap.if = (predicate, func) => function tappingIf(...args) {
76
69
  const predication = predicate(...args)
77
70
  if (isPromise(predication)) {
@@ -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,funcConcat=(n,r)=>function(...t){const o=n(...t);return isPromise(o)?o.then(r):r(o)},always=n=>function(){return n},tapSync=n=>function(...r){return n(...r),r[0]},thunkifyArgs=(n,r)=>function(){return n(...r)},thunkConditional=(n,r,t)=>n?r():t(),__=Symbol.for("placeholder"),curry3ResolveArg0=(n,r,t)=>function(o){return n(o,r,t)},curry3ResolveArg1=(n,r,t)=>function(o){return n(r,o,t)},curry3ResolveArg2=(n,r,t)=>function(o){return n(r,t,o)},curry3=function(n,r,t,o){return r==__?curry3ResolveArg0(n,t,o):t==__?curry3ResolveArg1(n,r,o):curry3ResolveArg2(n,r,t)},tap=n=>function(...r){const t=r[0],o=n(...r);return isPromise(o)?o.then(always(t)):t};tap.sync=tapSync,tap.if=(n,r)=>function(...t){const o=n(...t);if(isPromise(o))return o.then((e=thunkConditional,u=__,c=thunkifyArgs(tap(r),t),s=always(t[0]),u==__?curry3ResolveArg0(e,c,s):c==__?curry3ResolveArg1(e,u,s):curry3ResolveArg2(e,u,c)));var e,u,c,s;if(o){const n=r(...t);if(isPromise(n))return n.then(always(t[0]))}return t[0]};const consoleLog=console.log,trace=function(...n){const r=n[0];return"function"==typeof r?tap((t=r,o=consoleLog,function(...n){const r=t(...n);return isPromise(r)?r.then(o):o(r)})):tap(consoleLog)(...n);var t,o};export default trace;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,n)=>function(...o){const t=r(...o);return isPromise(t)?t.then(n):n(t)},always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,o)=>r?n():o(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},tap=r=>function(...n){const o=n[0],t=r(...n);return isPromise(t)?t.then(always(o)):o};tap.if=(r,n)=>function(...o){const t=r(...o);if(isPromise(t))return t.then((e=thunkConditional,u=__,c=thunkifyArgs(tap(n),o),s=always(o[0]),u==__?curry3ResolveArg0(e,c,s):c==__?curry3ResolveArg1(e,u,s):curry3ResolveArg2(e,u,c)));var e,u,c,s;if(t){const r=n(...o);if(isPromise(r))return r.then(always(o[0]))}return o[0]};const consoleLog=console.log,trace=function(...r){const n=r[0];return"function"==typeof n?tap((o=n,t=consoleLog,function(...r){const n=o(...r);return isPromise(n)?n.then(t):t(n)})):tap(consoleLog)(...r);var o,t};export default trace;
package/dist/x/trace.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
 
@@ -24,11 +24,6 @@ const funcConcat = (
24
24
 
25
25
  const always = value => function getter() { return value }
26
26
 
27
- const tapSync = func => function tapping(...args) {
28
- func(...args)
29
- return args[0]
30
- }
31
-
32
27
  const thunkifyArgs = (func, args) => function thunk() {
33
28
  return func(...args)
34
29
  }
@@ -76,8 +71,6 @@ const tap = func => function tapping(...args) {
76
71
  return isPromise(call) ? call.then(always(result)) : result
77
72
  }
78
73
 
79
- tap.sync = tapSync
80
-
81
74
  tap.if = (predicate, func) => function tappingIf(...args) {
82
75
  const predication = predicate(...args)
83
76
  if (isPromise(predication)) {
@@ -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.trace=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},o=(n,t,o)=>n?t():o(),e=Symbol.for("placeholder"),r=o=>function(...e){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r};r.sync=n=>function(...t){return n(...t),t[0]},r.if=(u,c)=>function(...f){const i=u(...f);if(n(i))return i.then((s=o,l=e,h=((n,t)=>function(){return n(...t)})(r(c),f),p=t(f[0]),l==e?((n,t,o)=>function(e){return n(e,t,o)})(s,h,p):h==e?((n,t,o)=>function(e){return n(t,e,o)})(s,l,p):((n,t,o)=>function(e){return n(t,o,e)})(s,l,h)));var s,l,h,p;if(i){const o=c(...f);if(n(o))return o.then(t(f[0]))}return f[0]};const u=console.log;return function(...t){const o=t[0];return"function"==typeof o?r((e=o,c=u,function(...t){const o=e(...t);return n(o)?o.then(c):c(o)})):r(u)(...t);var e,c}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.trace=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},o=(n,t,o)=>n?t():o(),e=Symbol.for("placeholder"),r=o=>function(...e){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r};r.if=(u,c)=>function(...f){const i=u(...f);if(n(i))return i.then((s=o,l=e,h=((n,t)=>function(){return n(...t)})(r(c),f),p=t(f[0]),l==e?((n,t,o)=>function(e){return n(e,t,o)})(s,h,p):h==e?((n,t,o)=>function(e){return n(t,e,o)})(s,l,p):((n,t,o)=>function(e){return n(t,o,e)})(s,l,h)));var s,l,h,p;if(i){const o=c(...f);if(n(o))return o.then(t(f[0]))}return f[0]};const u=console.log;return function(...t){const o=t[0];return"function"==typeof o?r((e=o,c=u,function(...t){const o=e(...t);return n(o)?o.then(c):c(o)})):r(u)(...t);var e,c}}());