rubico 2.8.5 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +2 -1
  2. package/_internal/FlatMappingAsyncIterator.js +41 -30
  3. package/_internal/LinkedList.js +54 -0
  4. package/_internal/LinkedList.test.js +34 -0
  5. package/_internal/MappingAsyncIterator.js +65 -15
  6. package/_internal/SerialMappingAsyncIterator.js +79 -0
  7. package/_internal/curryArity.js +3 -3
  8. package/_internal/iteratorFind.js +0 -2
  9. package/_internal/iteratorForEachSeries.js +1 -1
  10. package/_internal/objectFlatten.js +4 -1
  11. package/all.js +33 -59
  12. package/and.js +1 -1
  13. package/assign.js +14 -16
  14. package/compose.js +12 -13
  15. package/curry.js +1 -1
  16. package/dist/Transducer.es.js +1 -1
  17. package/dist/Transducer.es.min.js +1 -1
  18. package/dist/Transducer.js +1 -1
  19. package/dist/Transducer.min.js +1 -1
  20. package/dist/Transducer.mjs +1 -1
  21. package/dist/__.es.js +1 -1
  22. package/dist/__.es.min.js +1 -1
  23. package/dist/__.js +1 -1
  24. package/dist/__.min.js +1 -1
  25. package/dist/__.mjs +1 -1
  26. package/dist/all.es.js +1 -1
  27. package/dist/all.es.min.js +1 -1
  28. package/dist/all.js +1 -1
  29. package/dist/all.min.js +1 -1
  30. package/dist/all.mjs +1 -1
  31. package/dist/always.es.js +1 -1
  32. package/dist/always.es.min.js +1 -1
  33. package/dist/always.js +1 -1
  34. package/dist/always.min.js +1 -1
  35. package/dist/always.mjs +1 -1
  36. package/dist/and.es.js +1 -1
  37. package/dist/and.es.min.js +1 -1
  38. package/dist/and.js +1 -1
  39. package/dist/and.min.js +1 -1
  40. package/dist/and.mjs +1 -1
  41. package/dist/assign.es.js +1 -1
  42. package/dist/assign.es.min.js +1 -1
  43. package/dist/assign.js +1 -1
  44. package/dist/assign.min.js +1 -1
  45. package/dist/assign.mjs +1 -1
  46. package/dist/compose.es.js +1 -1
  47. package/dist/compose.es.min.js +1 -1
  48. package/dist/compose.js +1 -1
  49. package/dist/compose.min.js +1 -1
  50. package/dist/compose.mjs +1 -1
  51. package/dist/curry.es.js +4 -4
  52. package/dist/curry.es.min.js +2 -2
  53. package/dist/curry.js +4 -4
  54. package/dist/curry.min.js +2 -2
  55. package/dist/curry.mjs +4 -4
  56. package/dist/eq.es.js +1 -1
  57. package/dist/eq.es.min.js +1 -1
  58. package/dist/eq.js +1 -1
  59. package/dist/eq.min.js +1 -1
  60. package/dist/eq.mjs +1 -1
  61. package/dist/every.es.js +1 -1
  62. package/dist/every.es.min.js +1 -1
  63. package/dist/every.js +1 -1
  64. package/dist/every.min.js +1 -1
  65. package/dist/every.mjs +1 -1
  66. package/dist/filter.es.js +4 -4
  67. package/dist/filter.es.min.js +2 -2
  68. package/dist/filter.js +4 -4
  69. package/dist/filter.min.js +2 -2
  70. package/dist/filter.mjs +4 -4
  71. package/dist/flatMap.es.js +44 -28
  72. package/dist/flatMap.es.min.js +2 -2
  73. package/dist/flatMap.js +44 -28
  74. package/dist/flatMap.min.js +2 -2
  75. package/dist/flatMap.mjs +44 -28
  76. package/dist/forEach.es.js +6 -6
  77. package/dist/forEach.es.min.js +2 -2
  78. package/dist/forEach.js +6 -6
  79. package/dist/forEach.min.js +2 -2
  80. package/dist/forEach.mjs +6 -6
  81. package/dist/get.es.js +27 -3
  82. package/dist/get.es.min.js +2 -2
  83. package/dist/get.js +27 -3
  84. package/dist/get.min.js +2 -2
  85. package/dist/get.mjs +27 -3
  86. package/dist/gt.es.js +1 -1
  87. package/dist/gt.es.min.js +1 -1
  88. package/dist/gt.js +1 -1
  89. package/dist/gt.min.js +1 -1
  90. package/dist/gt.mjs +1 -1
  91. package/dist/gte.es.js +1 -1
  92. package/dist/gte.es.min.js +1 -1
  93. package/dist/gte.js +1 -1
  94. package/dist/gte.min.js +1 -1
  95. package/dist/gte.mjs +1 -1
  96. package/dist/lt.es.js +1 -1
  97. package/dist/lt.es.min.js +1 -1
  98. package/dist/lt.js +1 -1
  99. package/dist/lt.min.js +1 -1
  100. package/dist/lt.mjs +1 -1
  101. package/dist/lte.es.js +1 -1
  102. package/dist/lte.es.min.js +1 -1
  103. package/dist/lte.js +1 -1
  104. package/dist/lte.min.js +1 -1
  105. package/dist/lte.mjs +1 -1
  106. package/dist/map.es.js +190 -42
  107. package/dist/map.es.min.js +2 -2
  108. package/dist/map.js +190 -42
  109. package/dist/map.min.js +2 -2
  110. package/dist/map.mjs +190 -42
  111. package/dist/not.es.js +1 -1
  112. package/dist/not.es.min.js +1 -1
  113. package/dist/not.js +1 -1
  114. package/dist/not.min.js +1 -1
  115. package/dist/not.mjs +1 -1
  116. package/dist/omit.es.js +1 -1
  117. package/dist/omit.es.min.js +1 -1
  118. package/dist/omit.js +1 -1
  119. package/dist/omit.min.js +1 -1
  120. package/dist/omit.mjs +1 -1
  121. package/dist/or.es.js +1 -1
  122. package/dist/or.es.min.js +1 -1
  123. package/dist/or.js +1 -1
  124. package/dist/or.min.js +1 -1
  125. package/dist/or.mjs +1 -1
  126. package/dist/pick.es.js +1 -1
  127. package/dist/pick.es.min.js +1 -1
  128. package/dist/pick.js +1 -1
  129. package/dist/pick.min.js +1 -1
  130. package/dist/pick.mjs +1 -1
  131. package/dist/pipe.es.js +1 -1
  132. package/dist/pipe.es.min.js +1 -1
  133. package/dist/pipe.js +1 -1
  134. package/dist/pipe.min.js +1 -1
  135. package/dist/pipe.mjs +1 -1
  136. package/dist/reduce.es.js +1 -1
  137. package/dist/reduce.es.min.js +1 -1
  138. package/dist/reduce.js +1 -1
  139. package/dist/reduce.min.js +1 -1
  140. package/dist/reduce.mjs +1 -1
  141. package/dist/rubico.es.js +238 -83
  142. package/dist/rubico.es.min.js +2 -2
  143. package/dist/rubico.global.js +238 -83
  144. package/dist/rubico.global.min.js +2 -2
  145. package/dist/rubico.js +238 -83
  146. package/dist/rubico.min.js +2 -2
  147. package/dist/rubico.mjs +238 -83
  148. package/dist/set.es.js +1 -1
  149. package/dist/set.es.min.js +1 -1
  150. package/dist/set.js +1 -1
  151. package/dist/set.min.js +1 -1
  152. package/dist/set.mjs +1 -1
  153. package/dist/some.es.js +1 -1
  154. package/dist/some.es.min.js +1 -1
  155. package/dist/some.js +1 -1
  156. package/dist/some.min.js +1 -1
  157. package/dist/some.mjs +1 -1
  158. package/dist/switchCase.es.js +1 -1
  159. package/dist/switchCase.es.min.js +1 -1
  160. package/dist/switchCase.js +1 -1
  161. package/dist/switchCase.min.js +1 -1
  162. package/dist/switchCase.mjs +1 -1
  163. package/dist/tap.es.js +1 -1
  164. package/dist/tap.es.min.js +1 -1
  165. package/dist/tap.js +1 -1
  166. package/dist/tap.min.js +1 -1
  167. package/dist/tap.mjs +1 -1
  168. package/dist/thunkify.es.js +1 -1
  169. package/dist/thunkify.es.min.js +1 -1
  170. package/dist/thunkify.js +1 -1
  171. package/dist/thunkify.min.js +1 -1
  172. package/dist/thunkify.mjs +1 -1
  173. package/dist/transform.es.js +1 -1
  174. package/dist/transform.es.min.js +1 -1
  175. package/dist/transform.js +1 -1
  176. package/dist/transform.min.js +1 -1
  177. package/dist/transform.mjs +1 -1
  178. package/dist/tryCatch.es.js +1 -1
  179. package/dist/tryCatch.es.min.js +1 -1
  180. package/dist/tryCatch.js +1 -1
  181. package/dist/tryCatch.min.js +1 -1
  182. package/dist/tryCatch.mjs +1 -1
  183. package/dist/x/append.es.js +1 -1
  184. package/dist/x/append.es.min.js +1 -1
  185. package/dist/x/append.js +1 -1
  186. package/dist/x/append.min.js +1 -1
  187. package/dist/x/append.mjs +1 -1
  188. package/dist/x/callProp.es.js +1 -1
  189. package/dist/x/callProp.es.min.js +1 -1
  190. package/dist/x/callProp.js +1 -1
  191. package/dist/x/callProp.min.js +1 -1
  192. package/dist/x/callProp.mjs +1 -1
  193. package/dist/x/defaultsDeep.es.js +1 -1
  194. package/dist/x/defaultsDeep.es.min.js +1 -1
  195. package/dist/x/defaultsDeep.js +1 -1
  196. package/dist/x/defaultsDeep.min.js +1 -1
  197. package/dist/x/defaultsDeep.mjs +1 -1
  198. package/dist/x/differenceWith.es.js +1 -1
  199. package/dist/x/differenceWith.es.min.js +1 -1
  200. package/dist/x/differenceWith.js +1 -1
  201. package/dist/x/differenceWith.min.js +1 -1
  202. package/dist/x/differenceWith.mjs +1 -1
  203. package/dist/x/filterOut.es.js +4 -4
  204. package/dist/x/filterOut.es.min.js +2 -2
  205. package/dist/x/filterOut.js +4 -4
  206. package/dist/x/filterOut.min.js +2 -2
  207. package/dist/x/filterOut.mjs +4 -4
  208. package/dist/x/find.es.js +1 -3
  209. package/dist/x/find.es.min.js +1 -1
  210. package/dist/x/find.js +1 -3
  211. package/dist/x/find.min.js +1 -1
  212. package/dist/x/find.mjs +1 -3
  213. package/dist/x/findIndex.es.js +1 -1
  214. package/dist/x/findIndex.es.min.js +1 -1
  215. package/dist/x/findIndex.js +1 -1
  216. package/dist/x/findIndex.min.js +1 -1
  217. package/dist/x/findIndex.mjs +1 -1
  218. package/dist/x/first.es.js +1 -1
  219. package/dist/x/first.es.min.js +1 -1
  220. package/dist/x/first.js +1 -1
  221. package/dist/x/first.min.js +1 -1
  222. package/dist/x/first.mjs +1 -1
  223. package/dist/x/flatten.es.js +44 -28
  224. package/dist/x/flatten.es.min.js +2 -2
  225. package/dist/x/flatten.js +44 -28
  226. package/dist/x/flatten.min.js +2 -2
  227. package/dist/x/flatten.mjs +44 -28
  228. package/dist/x/groupBy.es.js +1 -1
  229. package/dist/x/groupBy.es.min.js +1 -1
  230. package/dist/x/groupBy.js +1 -1
  231. package/dist/x/groupBy.min.js +1 -1
  232. package/dist/x/groupBy.mjs +1 -1
  233. package/dist/x/has.es.js +1 -1
  234. package/dist/x/has.es.min.js +1 -1
  235. package/dist/x/has.js +1 -1
  236. package/dist/x/has.min.js +1 -1
  237. package/dist/x/has.mjs +1 -1
  238. package/dist/x/identity.es.js +1 -1
  239. package/dist/x/identity.es.min.js +1 -1
  240. package/dist/x/identity.js +1 -1
  241. package/dist/x/identity.min.js +1 -1
  242. package/dist/x/identity.mjs +1 -1
  243. package/dist/x/includes.es.js +1 -1
  244. package/dist/x/includes.es.min.js +1 -1
  245. package/dist/x/includes.js +1 -1
  246. package/dist/x/includes.min.js +1 -1
  247. package/dist/x/includes.mjs +1 -1
  248. package/dist/x/isDeepEqual.es.js +1 -1
  249. package/dist/x/isDeepEqual.es.min.js +1 -1
  250. package/dist/x/isDeepEqual.js +1 -1
  251. package/dist/x/isDeepEqual.min.js +1 -1
  252. package/dist/x/isDeepEqual.mjs +1 -1
  253. package/dist/x/isEmpty.es.js +1 -1
  254. package/dist/x/isEmpty.es.min.js +1 -1
  255. package/dist/x/isEmpty.js +1 -1
  256. package/dist/x/isEmpty.min.js +1 -1
  257. package/dist/x/isEmpty.mjs +1 -1
  258. package/dist/x/isEqual.es.js +1 -1
  259. package/dist/x/isEqual.es.min.js +1 -1
  260. package/dist/x/isEqual.js +1 -1
  261. package/dist/x/isEqual.min.js +1 -1
  262. package/dist/x/isEqual.mjs +1 -1
  263. package/dist/x/isFunction.es.js +1 -1
  264. package/dist/x/isFunction.es.min.js +1 -1
  265. package/dist/x/isFunction.js +1 -1
  266. package/dist/x/isFunction.min.js +1 -1
  267. package/dist/x/isFunction.mjs +1 -1
  268. package/dist/x/isIn.es.js +1 -1
  269. package/dist/x/isIn.es.min.js +1 -1
  270. package/dist/x/isIn.js +1 -1
  271. package/dist/x/isIn.min.js +1 -1
  272. package/dist/x/isIn.mjs +1 -1
  273. package/dist/x/isObject.es.js +1 -1
  274. package/dist/x/isObject.es.min.js +1 -1
  275. package/dist/x/isObject.js +1 -1
  276. package/dist/x/isObject.min.js +1 -1
  277. package/dist/x/isObject.mjs +1 -1
  278. package/dist/x/isString.es.js +1 -1
  279. package/dist/x/isString.es.min.js +1 -1
  280. package/dist/x/isString.js +1 -1
  281. package/dist/x/isString.min.js +1 -1
  282. package/dist/x/isString.mjs +1 -1
  283. package/dist/x/keys.es.js +1 -1
  284. package/dist/x/keys.es.min.js +1 -1
  285. package/dist/x/keys.js +1 -1
  286. package/dist/x/keys.min.js +1 -1
  287. package/dist/x/keys.mjs +1 -1
  288. package/dist/x/last.es.js +1 -1
  289. package/dist/x/last.es.min.js +1 -1
  290. package/dist/x/last.js +1 -1
  291. package/dist/x/last.min.js +1 -1
  292. package/dist/x/last.mjs +1 -1
  293. package/dist/x/maxBy.es.js +27 -23
  294. package/dist/x/maxBy.es.min.js +2 -2
  295. package/dist/x/maxBy.js +27 -23
  296. package/dist/x/maxBy.min.js +2 -2
  297. package/dist/x/maxBy.mjs +27 -23
  298. package/dist/x/noop.es.js +1 -1
  299. package/dist/x/noop.es.min.js +1 -1
  300. package/dist/x/noop.js +1 -1
  301. package/dist/x/noop.min.js +1 -1
  302. package/dist/x/noop.mjs +1 -1
  303. package/dist/x/pluck.es.js +194 -44
  304. package/dist/x/pluck.es.min.js +2 -2
  305. package/dist/x/pluck.js +194 -44
  306. package/dist/x/pluck.min.js +2 -2
  307. package/dist/x/pluck.mjs +194 -44
  308. package/dist/x/prepend.es.js +1 -1
  309. package/dist/x/prepend.es.min.js +1 -1
  310. package/dist/x/prepend.js +1 -1
  311. package/dist/x/prepend.min.js +1 -1
  312. package/dist/x/prepend.mjs +1 -1
  313. package/dist/x/size.es.js +1 -1
  314. package/dist/x/size.es.min.js +1 -1
  315. package/dist/x/size.js +1 -1
  316. package/dist/x/size.min.js +1 -1
  317. package/dist/x/size.mjs +1 -1
  318. package/dist/x/trace.es.js +1 -1
  319. package/dist/x/trace.es.min.js +1 -1
  320. package/dist/x/trace.js +1 -1
  321. package/dist/x/trace.min.js +1 -1
  322. package/dist/x/trace.mjs +1 -1
  323. package/dist/x/unionWith.es.js +1 -1
  324. package/dist/x/unionWith.es.min.js +1 -1
  325. package/dist/x/unionWith.js +1 -1
  326. package/dist/x/unionWith.min.js +1 -1
  327. package/dist/x/unionWith.mjs +1 -1
  328. package/dist/x/uniq.es.js +1 -1
  329. package/dist/x/uniq.es.min.js +1 -1
  330. package/dist/x/uniq.js +1 -1
  331. package/dist/x/uniq.min.js +1 -1
  332. package/dist/x/uniq.mjs +1 -1
  333. package/dist/x/unless.es.js +1 -1
  334. package/dist/x/unless.es.min.js +1 -1
  335. package/dist/x/unless.js +1 -1
  336. package/dist/x/unless.min.js +1 -1
  337. package/dist/x/unless.mjs +1 -1
  338. package/dist/x/values.es.js +1 -1
  339. package/dist/x/values.es.min.js +1 -1
  340. package/dist/x/values.js +1 -1
  341. package/dist/x/values.min.js +1 -1
  342. package/dist/x/values.mjs +1 -1
  343. package/dist/x/when.es.js +1 -1
  344. package/dist/x/when.es.min.js +1 -1
  345. package/dist/x/when.js +1 -1
  346. package/dist/x/when.min.js +1 -1
  347. package/dist/x/when.mjs +1 -1
  348. package/eq.js +2 -2
  349. package/es.js +238 -83
  350. package/every.js +2 -2
  351. package/filter.js +4 -4
  352. package/flatMap.js +61 -54
  353. package/forEach.js +33 -56
  354. package/get.js +49 -25
  355. package/gt.js +2 -2
  356. package/gte.js +2 -2
  357. package/index.js +238 -83
  358. package/lt.js +2 -2
  359. package/lte.js +2 -2
  360. package/map.js +115 -151
  361. package/monad/Mux.js +6 -4
  362. package/monad/PossiblePromise.js +6 -4
  363. package/monad/README.md +61 -40
  364. package/monad/Struct.js +6 -4
  365. package/not.js +1 -1
  366. package/omit.js +22 -19
  367. package/or.js +1 -1
  368. package/package.json +1 -1
  369. package/pick.js +14 -11
  370. package/pipe.js +18 -24
  371. package/reduce.js +1 -1
  372. package/set.js +17 -18
  373. package/some.js +2 -2
  374. package/switchCase.js +51 -43
  375. package/tap.js +17 -23
  376. package/transform.js +1 -1
  377. package/tryCatch.js +16 -24
  378. package/x/defaultsDeep.js +1 -1
  379. package/x/defaultsDeep.test.js +1 -1
  380. package/_internal/NextIteration.js +0 -12
  381. package/_internal/generatorFunctionFilter.js +0 -28
  382. package/_internal/iterationMap.js +0 -27
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.5
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -33,25 +33,7 @@ const MappingIterator = (iterator, mapper) => ({
33
33
  },
34
34
  })
35
35
 
36
- const NextIteration = value => ({ value, done: false })
37
-
38
- const symbolAsyncIterator = Symbol.asyncIterator
39
-
40
- const MappingAsyncIterator = (asyncIterator, mapper) => ({
41
- [symbolAsyncIterator]() {
42
- return this
43
- },
44
- async next() {
45
- const iteration = await asyncIterator.next()
46
- if (iteration.done) {
47
- return iteration
48
- }
49
- const mapped = mapper(iteration.value)
50
- return isPromise(mapped)
51
- ? mapped.then(NextIteration)
52
- : { value: mapped, done: false }
53
- }
54
- })
36
+ const promiseRace = Promise.race.bind(Promise)
55
37
 
56
38
  const __ = Symbol.for('placeholder')
57
39
 
@@ -75,6 +57,165 @@ const curry2 = function (baseFunc, arg0, arg1) {
75
57
  : curry2ResolveArg1(baseFunc, arg0)
76
58
  }
77
59
 
60
+ class LinkedList {
61
+ constructor() {
62
+ this.first = null
63
+ this.last = null
64
+ this.length = 0
65
+ }
66
+
67
+ // popFirst() -> firstValue any
68
+ popFirst() {
69
+ const first = this.first
70
+
71
+ if (first == null) {
72
+ return undefined
73
+ }
74
+
75
+ if (first.next) {
76
+ this.first = first.next
77
+ } else {
78
+ this.first = null
79
+ }
80
+
81
+ this.length -= 1
82
+
83
+ return first.value
84
+ }
85
+
86
+ // append(value any) -> undefined
87
+ append(value) {
88
+ const node = { value }
89
+ if (this.first == null) {
90
+ this.first = node
91
+ }
92
+
93
+ if (this.last == null) {
94
+ this.last = node
95
+ } else {
96
+ this.last.next = node
97
+ this.last = node
98
+ }
99
+
100
+ this.length += 1
101
+ }
102
+
103
+ }
104
+
105
+ const symbolAsyncIterator = Symbol.asyncIterator
106
+
107
+ const arrayPush = function (array, value) {
108
+ array.push(value)
109
+ return array
110
+ }
111
+
112
+ const sleep = time => new Promise(resolve => {
113
+ setTimeout(resolve, time)
114
+ })
115
+
116
+ const MappingAsyncIterator = (asyncIterator, mapper) => {
117
+ const buffer = new LinkedList()
118
+
119
+ let index = -1
120
+ let consumingAsyncIterator = false
121
+ let isAsyncIteratorDone = false
122
+
123
+ return {
124
+ [symbolAsyncIterator]() {
125
+ return this
126
+ },
127
+
128
+ // _consumeAsyncIterator() -> Promise<>
129
+ async _consumeAsyncIterator() {
130
+ for await (const item of asyncIterator) {
131
+ index += 1
132
+ const mappedItem = mapper(item)
133
+ buffer.append(mappedItem)
134
+ }
135
+ isAsyncIteratorDone = true
136
+ },
137
+
138
+
139
+ async next() {
140
+ if (!consumingAsyncIterator) {
141
+ this._consumeAsyncIterator()
142
+ consumingAsyncIterator = true
143
+ }
144
+
145
+ while (!isAsyncIteratorDone) {
146
+ if (buffer.length > 0) {
147
+ let value = buffer.popFirst()
148
+ if (isPromise(value)) {
149
+ value = await value
150
+ }
151
+ return { value, done: false }
152
+ }
153
+ await sleep(10)
154
+ }
155
+
156
+ if (buffer.length > 0) {
157
+ let value = buffer.popFirst()
158
+ if (isPromise(value)) {
159
+ value = await value
160
+ }
161
+ return { value, done: false }
162
+ }
163
+
164
+ return { value: undefined, done: true }
165
+ },
166
+
167
+ }
168
+ }
169
+
170
+ const SerialMappingAsyncIterator = (asyncIterator, mapper) => {
171
+ const buffer = new LinkedList()
172
+
173
+ let index = -1
174
+ let consumingAsyncIterator = false
175
+ let isAsyncIteratorDone = false
176
+
177
+ return {
178
+ [symbolAsyncIterator]() {
179
+ return this
180
+ },
181
+
182
+ // _consumeAsyncIterator() -> Promise<>
183
+ async _consumeAsyncIterator() {
184
+ for await (const item of asyncIterator) {
185
+ index += 1
186
+ let mappedItem = mapper(item)
187
+ if (isPromise(mappedItem)) {
188
+ mappedItem = await mappedItem
189
+ }
190
+ buffer.append(mappedItem)
191
+ }
192
+ isAsyncIteratorDone = true
193
+ },
194
+
195
+
196
+ async next() {
197
+ if (!consumingAsyncIterator) {
198
+ this._consumeAsyncIterator()
199
+ consumingAsyncIterator = true
200
+ }
201
+
202
+ while (!isAsyncIteratorDone) {
203
+ if (buffer.length > 0) {
204
+ return { value: buffer.popFirst(), done: false }
205
+ }
206
+ await sleep(10)
207
+ }
208
+
209
+ if (buffer.length > 0) {
210
+ return { value: buffer.popFirst(), done: false }
211
+ }
212
+
213
+ return { value: undefined, done: true }
214
+ },
215
+
216
+ }
217
+ }
218
+
78
219
  // argument resolver for curry3
79
220
  const curry3ResolveArg0 = (
80
221
  baseFunc, arg1, arg2,
@@ -432,8 +573,6 @@ const tapSync = func => function tapping(...args) {
432
573
  return args[0]
433
574
  }
434
575
 
435
- const promiseRace = Promise.race.bind(Promise)
436
-
437
576
  const arrayMapPoolAsync = async function (
438
577
  array, f, concurrencyLimit, result, index, promises,
439
578
  ) {
@@ -661,7 +800,7 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
661
800
  curriedArgsIndex = -1,
662
801
  numCurriedPlaceholders = 0
663
802
 
664
- while (++argsIndex < argsLength) {
803
+ while ((argsIndex += 1) < argsLength) {
665
804
  const arg = args[argsIndex]
666
805
  if (arg == __ && (curriedArgsIndex += 1) < curriedArgsLength) {
667
806
  const curriedArg = curriedArgs[curriedArgsIndex]
@@ -685,7 +824,7 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
685
824
  }
686
825
  }
687
826
 
688
- while (++curriedArgsIndex < curriedArgsLength) {
827
+ while ((curriedArgsIndex += 1) < curriedArgsLength) {
689
828
  const curriedArg = curriedArgs[curriedArgsIndex]
690
829
  if (curriedArg == __) {
691
830
  numCurriedPlaceholders += 1
@@ -715,7 +854,7 @@ const curryArity = function (arity, func, context, args) {
715
854
  return _curryArity(arity, func, context, args)
716
855
  }
717
856
  let argsIndex = -1
718
- while (++argsIndex < argsLength) {
857
+ while ((argsIndex += 1) < argsLength) {
719
858
  const arg = args[argsIndex]
720
859
  if (arg == __) {
721
860
  return _curryArity(arity, func, context, args)
@@ -778,9 +917,6 @@ const _map = function (value, f) {
778
917
  if (typeof value.then == 'function') {
779
918
  return value.then(f)
780
919
  }
781
- if (typeof value.map == 'function') {
782
- return value.map(f)
783
- }
784
920
  if (typeof value == 'string' || value.constructor == String) {
785
921
  return stringMap(value, f)
786
922
  }
@@ -796,6 +932,9 @@ const _map = function (value, f) {
796
932
  if (typeof value[symbolAsyncIterator] == 'function') {
797
933
  return MappingAsyncIterator(value[symbolAsyncIterator](), f)
798
934
  }
935
+ if (typeof value.map == 'function') {
936
+ return value.map(f)
937
+ }
799
938
  if (value.constructor == Object) {
800
939
  return objectMap(value, f)
801
940
  }
@@ -834,27 +973,36 @@ map.entries = function mapEntries(arg0, arg1) {
834
973
  : _mapEntries(arg0, arg1)
835
974
  }
836
975
 
837
- const _mapSeries = function (collection, f) {
838
- if (isArray(collection)) {
839
- return arrayMapSeries(collection, f)
976
+ const _mapSeries = function (functor, f) {
977
+ if (isArray(functor)) {
978
+ return arrayMapSeries(functor, f)
840
979
  }
841
- if (collection == null) {
842
- throw new TypeError(`invalid collection ${collection}`)
980
+ if (functor == null) {
981
+ throw new TypeError(`invalid functor ${functor}`)
843
982
  }
844
983
 
845
- if (typeof collection == 'string' || collection.constructor == String) {
846
- return stringMapSeries(collection, f)
984
+ if (typeof functor == 'string' || functor.constructor == String) {
985
+ return stringMapSeries(functor, f)
847
986
  }
848
- if (collection.constructor == Set) {
849
- return setMapSeries(collection, f)
987
+ if (functor.constructor == Set) {
988
+ return setMapSeries(functor, f)
850
989
  }
851
- if (collection.constructor == Map) {
852
- return mapMapSeries(collection, f)
990
+ if (functor.constructor == Map) {
991
+ return mapMapSeries(functor, f)
853
992
  }
854
- if (collection.constructor == Object) {
855
- return objectMapSeries(collection, f)
993
+ if (typeof functor[symbolIterator] == 'function') {
994
+ return MappingIterator(functor[symbolIterator](), f)
856
995
  }
857
- throw new TypeError(`invalid collection ${collection}`)
996
+ if (typeof functor[symbolAsyncIterator] == 'function') {
997
+ return SerialMappingAsyncIterator(functor[symbolAsyncIterator](), f)
998
+ }
999
+ if (typeof functor.map == 'function') {
1000
+ return functor.map(f)
1001
+ }
1002
+ if (functor.constructor == Object) {
1003
+ return objectMapSeries(functor, f)
1004
+ }
1005
+ throw new TypeError(`invalid functor ${functor}`)
858
1006
  }
859
1007
 
860
1008
  map.series = function mapSeries(arg0, arg1) {
@@ -897,6 +1045,8 @@ map.pool = function mapPool(arg0, arg1, arg2) {
897
1045
  : _mapPool(arg0, arg1, arg2)
898
1046
  }
899
1047
 
1048
+ const funcApply = (func, args) => func(...args)
1049
+
900
1050
  const memoizeCappedUnary = function (func, cap) {
901
1051
  const cache = new Map(),
902
1052
  memoized = function memoized(arg0) {
@@ -967,8 +1117,8 @@ const get = function (arg0, arg1, arg2) {
967
1117
  if (typeof arg0 == 'string' || typeof arg0 == 'number' || isArray(arg0)) {
968
1118
  return curry3(_get, __, arg0, arg1)
969
1119
  }
970
- if (isPromise(arg0)) {
971
- return arg0.then(curry3(_get, __, arg1, arg2))
1120
+ if (isPromise(arg0) || isPromise(arg2)) {
1121
+ return promiseAll([arg0, arg1, arg2]).then(curry2(funcApply, _get, __))
972
1122
  }
973
1123
  return _get(arg0, arg1, arg2)
974
1124
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Rubico v2.8.5
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
6
6
  * Rubico may be freely distributed under the CFOSS license.
7
7
  */
8
- const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,e)=>function(...t){const n=r(...t);return isPromise(n)?n.then(e):e(n)},symbolIterator=Symbol.iterator,MappingIterator=(r,e)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const t=r.next();return t.done?t:{value:e(t.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,e)=>({[symbolAsyncIterator](){return this},async next(){const t=await r.next();if(t.done)return t;const n=e(t.value);return isPromise(n)?n.then(NextIteration):{value:n,done:!1}}}),__=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)},curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,e){const t=r.length,n=Array(t);let o=-1,s=!1;for(;++o<t;){const t=e(r[o],o,r);isPromise(t)&&(s=!0),n[o]=t}return s?promiseAll(n):n},callPropUnary=(r,e,t)=>r[e](t),stringMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},always=r=>function(){return r},setMap=function(r,e){const t=new Set,n=[];for(const o of r){const s=e(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,t,"add",__))):t.add(s)}return 0==n.length?t:promiseAll(n).then(always(t))},curry4ResolveArg0=(r,e,t,n)=>function(o){return r(o,e,t,n)},curry4ResolveArg1=(r,e,t,n)=>function(o){return r(e,o,t,n)},curry4ResolveArg2=(r,e,t,n)=>function(o){return r(e,t,o,n)},curry4ResolveArg3=(r,e,t,n)=>function(o){return r(e,t,n,o)},curry4=function(r,e,t,n,o){return e==__?curry4ResolveArg0(r,t,n,o):t==__?curry4ResolveArg1(r,e,n,o):n==__?curry4ResolveArg2(r,e,t,o):curry4ResolveArg3(r,e,t,n)},callPropBinary=(r,e,t,n)=>r[e](t,n),mapMap=function(r,e){const t=new Map,n=[];for(const[o,s]of r){const i=e(s,o,r);isPromise(i)?n.push(i.then(curry4(callPropBinary,t,"set",o,__))):t.set(o,i)}return 0==n.length?t:promiseAll(n).then(always(t))},promiseObjectAllExecutor=r=>function(e){const t={};let n=0;for(const o in r){const s=r[o];isPromise(s)?(n+=1,s.then((r=>function(o){t[r]=o,n-=1,0==n&&e(t)})(o))):t[o]=s}0==n&&e(t)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),objectMap=function(r,e){const t={};let n=!1;for(const o in r){const s=e(r[o],o,r);isPromise(s)&&(n=!0),t[o]=s}return n?promiseObjectAll(t):t},objectSet=function(r,e,t){return r[e]=t,r},arrayMapSeriesAsync=async function(r,e,t,n){const o=r.length;for(;++n<o;){const o=e(r[n],n);t[n]=isPromise(o)?await o:o}return t},arrayMapSeries=function(r,e){const t=r.length,n=Array(t);let o=-1;for(;++o<t;){const t=e(r[o],o);if(isPromise(t))return t.then(funcConcat(curry3(objectSet,n,o,__),curry4(arrayMapSeriesAsync,r,e,__,o)));n[o]=t}return n},stringMapSeries=function(r,e){const t=arrayMapSeries(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},thunkify4=(r,e,t,n,o)=>function(){return r(e,t,n,o)},_objectMapSeriesAsync=async function(r,e,t,n){for(const o in r){if(o in n)continue;let s=e(r[o]);isPromise(s)&&(s=await s),t[o]=s}return t},objectMapSeries=function(r,e){const t={},n={};for(const o in r){n[o]=!0;const s=e(r[o],o,r);if(isPromise(s))return s.then(funcConcat(curry3(objectSet,t,o,__),thunkify4(_objectMapSeriesAsync,r,e,t,n)));t[o]=s}return t},thunkify3=(r,e,t,n)=>function(){return r(e,t,n)},setAdd=function(r,e){return r.add(e),r},_setMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value);isPromise(o)&&(o=await o),t.add(o),n=r.next()}return t},setMapSeries=function(r,e){const t=new Set,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=e(o.value);if(isPromise(r))return r.then(funcConcat(curry2(setAdd,t,__),thunkify3(_setMapSeriesAsync,n,e,t)));t.add(r),o=n.next()}return t},mapSet=function(r,e,t){return r.set(e,t)},_mapMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value[1]);isPromise(o)&&(o=await o),t.set(n.value[0],o),n=r.next()}return t},mapMapSeries=function(r,e){const t=new Map,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=o.value[0],s=e(o.value[1]);if(isPromise(s))return s.then(funcConcat(curry3(mapSet,t,r,__),thunkify3(_mapMapSeriesAsync,n,e,t)));t.set(r,s),o=n.next()}return t},tapSync=r=>function(...e){return r(...e),e[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,e,t,n,o,s){const i=r.length;for(;++o<i;){s.size>=t&&await promiseRace(s);const i=e(r[o]);if(isPromise(i)){const r=i.then(tapSync((()=>s.delete(r))));s.add(r),n[o]=r}else n[o]=i}return promiseAll(n)},arrayMapPool=function(r,e,t){const n=r.length,o=Array(n);let s=-1;for(;++s<n;){const n=t(r[s]);if(isPromise(n)){const i=new Set,c=n.then(tapSync((()=>i.delete(c))));return i.add(c),o[s]=c,arrayMapPoolAsync(r,t,e,o,s,i)}o[s]=n}return o},stringMapPool=function(r,e,t){const n=arrayMapPool(r,e,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},_setMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=n(i.value,i.value,r);if(isPromise(c)){const r=c.then((e=>{s.delete(r),o.add(e)}));s.add(r)}else o.add(c);i=e.next()}return s.size>0&&await promiseAll(s),o},setMapPool=function(r,e,t){const n=new Set,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=t(s.value,s.value,r);if(isPromise(i)){const s=new Set,c=i.then((r=>{s.delete(c),n.add(r)}));return s.add(c),_setMapPoolAsync(r,o,e,t,n,s)}n.add(i),s=o.next()}return n},_mapMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=i.value[0],a=n(i.value[1],c,r);if(isPromise(a)){o.set(c,a);const r=a.then((e=>{s.delete(r),o.set(c,e)}));s.add(r)}else o.set(c,a);i=e.next()}return s.size>0&&await promiseAll(s),o},mapMapPool=function(r,e,t){const n=new Map,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=s.value[0],c=t(s.value[1],i,r);if(isPromise(c)){const s=new Set;n.set(i,c);const a=c.then((r=>{s.delete(a),n.set(i,r)}));return s.add(a),_mapMapPoolAsync(r,o,e,t,n,s)}n.set(i,c),s=o.next()}return n},_objectMapPoolAsync=async function(r,e,t,n,o,s){for(const i in r){if(i in o)continue;s.size>=e&&await promiseRace(s);const c=t(r[i],i,r);if(isPromise(c)){n[i]=c;const r=c.then((e=>{s.delete(r),n[i]=e}));s.add(r)}else n[i]=c}return s.size>0&&await promiseAll(s),n},objectMapPool=function(r,e,t){const n={},o={};for(const s in r){o[s]=!0;const i=t(r[s],s,r);if(isPromise(i)){const c=new Set;n[s]=i;const a=i.then((r=>{c.delete(a),n[s]=r}));return c.add(a),_objectMapPoolAsync(r,e,t,n,o,c)}n[s]=i}return n},areAnyValuesPromises=function(r){if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;){const e=r[t];if(isPromise(e))return!0}return!1}for(const e in r){const t=r[e];if(isPromise(t))return!0}return!1},funcApply2=(r,e,t)=>r.apply(e,t),_curryArity=(r,e,t,n)=>function(...o){const s=n.length,i=o.length,c=[];let a=-1,u=-1,l=0;for(;++a<s;){const s=n[a];if(s==__&&(u+=1)<i){const r=o[u];r==__&&(l+=1),c.push(r)}else c.push(s);if(c.length==r)return areAnyValuesPromises(c)?0==l?promiseAll(c).then(curry3(funcApply2,e,t,__)):promiseAll(c).then(curry4(curryArity,r,e,t,__)):0==l?e.apply(t,c):curryArity(r,e,t,c)}for(;++u<i;){const n=o[u];if(n==__&&(l+=1),c.push(n),c.length==r)return areAnyValuesPromises(c)?0==l?promiseAll(c).then(curry3(funcApply2,e,t,__)):promiseAll(c).then(curry4(curryArity,r,e,t,__)):0==l?e.apply(t,c):curryArity(r,e,t,c)}return areAnyValuesPromises(c)?promiseAll(c).then(curry4(curryArity,r,e,t,__)):curryArity(r,e,t,c)},curryArity=function(r,e,t,n){const o=n.length;if(o<r)return _curryArity(r,e,t,n);let s=-1;for(;++s<o;){if(n[s]==__)return _curryArity(r,e,t,n)}return e.apply(t,n)},spread2=r=>function([e,t]){return r(e,t)},objectMapEntries=function(r,e){const t={},n=[];for(const o in r){const s=e([o,r[o]]);isPromise(s)?n.push(s.then(spread2(curryArity(3,objectSet,this,[t])))):t[s[0]]=s[1]}return 0==n.length?t:promiseAll(n).then(always(t))},mapMapEntriesForEachCallback=(r,e,t)=>function(n,o){const s=r([o,n]);isPromise(s)?t.push(s.then(spread2(curryArity(3,mapSet,this,[e])))):e.set(s[0],s[1])},mapMapEntries=function(r,e){const t=new Map,n=[];return r.forEach(mapMapEntriesForEachCallback(e,t,n)),0==n.length?t:promiseAll(n).then(always(t))},_map=function(r,e){return isArray(r)?arrayMap(r,e):null==r?r:"function"==typeof r.then?r.then(e):"function"==typeof r.map?r.map(e):"string"==typeof r||r.constructor==String?stringMap(r,e):r.constructor==Set?setMap(r,e):r.constructor==Map?mapMap(r,e):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),e):r.constructor==Object?objectMap(r,e):e(r)},map=function(r,e){return null==e?curry2(_map,__,r):isPromise(r)?r.then(curry2(_map,__,e)):_map(r,e)},_mapEntries=(r,e)=>{if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return objectMapEntries(r,e);if(r.constructor==Map)return mapMapEntries(r,e);throw new TypeError("value is not an Object or Map")};map.entries=function(r,e){return null==e?curry2(_mapEntries,__,r):isPromise(r)?r.then(curry2(_mapEntries,__,e)):_mapEntries(r,e)};const _mapSeries=function(r,e){if(isArray(r))return arrayMapSeries(r,e);if(null==r)throw new TypeError(`invalid collection ${r}`);if("string"==typeof r||r.constructor==String)return stringMapSeries(r,e);if(r.constructor==Set)return setMapSeries(r,e);if(r.constructor==Map)return mapMapSeries(r,e);if(r.constructor==Object)return objectMapSeries(r,e);throw new TypeError(`invalid collection ${r}`)};map.series=function(r,e){return null==e?curry2(_mapSeries,__,r):isPromise(r)?r.then(curry2(_mapSeries,__,e)):_mapSeries(r,e)};const _mapPool=function(r,e,t){if(isArray(r))return arrayMapPool(r,e,t);if(null==r)throw new TypeError(`invalid functor ${r}`);if("string"==typeof r||r.constructor==String)return stringMapPool(r,e,t);if(r.constructor==Set)return setMapPool(r,e,t);if(r.constructor==Map)return mapMapPool(r,e,t);if(r.constructor==Object)return objectMapPool(r,e,t);throw new TypeError(`invalid functor ${r}`)};map.pool=function(r,e,t){return null==t?curry3(_mapPool,__,r,e):isPromise(r)?r.then(curry3(_mapPool,__,e,t)):_mapPool(r,e,t)};const memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?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),n=t.length;let o=-1,s=r;for(;++o<n;)if(s=s[t[o]],null==s)return;return s},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return"string"==typeof r||"number"==typeof r||isArray(r)?curry3(_get,__,r,e):isPromise(r)?r.then(curry3(_get,__,e,t)):_get(r,e,t)},pluck=function(...r){const e=r.pop(),t=get(e);return 0==r.length?map(t):map(r[0],t)};export default pluck;
8
+ const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,t)=>function(...e){const n=r(...e);return isPromise(n)?n.then(t):t(n)},symbolIterator=Symbol.iterator,MappingIterator=(r,t)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const e=r.next();return e.done?e:{value:t(e.value),done:!1}}}),promiseRace=Promise.race.bind(Promise),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(e){return r(e,t)},curry2ResolveArg1=(r,t)=>function(e){return r(t,e)},curry2=function(r,t,e){return t==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,t)};class LinkedList{constructor(){this.first=null,this.last=null,this.length=0}popFirst(){const r=this.first;if(null!=r)return r.next?this.first=r.next:this.first=null,this.length-=1,r.value}append(r){const t={value:r};null==this.first&&(this.first=t),null==this.last||(this.last.next=t),this.last=t,this.length+=1}}const symbolAsyncIterator=Symbol.asyncIterator,arrayPush=function(r,t){return r.push(t),r},sleep=r=>new Promise((t=>{setTimeout(t,r)})),MappingAsyncIterator=(r,t)=>{const e=new LinkedList;let n=-1,o=!1,s=!1;return{[symbolAsyncIterator](){return this},async _consumeAsyncIterator(){for await(const o of r){n+=1;const r=t(o);e.append(r)}s=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!s;){if(e.length>0){let r=e.popFirst();return isPromise(r)&&(r=await r),{value:r,done:!1}}await sleep(10)}if(e.length>0){let r=e.popFirst();return isPromise(r)&&(r=await r),{value:r,done:!1}}return{value:void 0,done:!0}}}},SerialMappingAsyncIterator=(r,t)=>{const e=new LinkedList;let n=-1,o=!1,s=!1;return{[symbolAsyncIterator](){return this},async _consumeAsyncIterator(){for await(const o of r){n+=1;let r=t(o);isPromise(r)&&(r=await r),e.append(r)}s=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!s;){if(e.length>0)return{value:e.popFirst(),done:!1};await sleep(10)}return e.length>0?{value:e.popFirst(),done:!1}:{value:void 0,done:!0}}}},curry3ResolveArg0=(r,t,e)=>function(n){return r(n,t,e)},curry3ResolveArg1=(r,t,e)=>function(n){return r(t,n,e)},curry3ResolveArg2=(r,t,e)=>function(n){return r(t,e,n)},curry3=function(r,t,e,n){return t==__?curry3ResolveArg0(r,e,n):e==__?curry3ResolveArg1(r,t,n):curry3ResolveArg2(r,t,e)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,t){const e=r.length,n=Array(e);let o=-1,s=!1;for(;++o<e;){const e=t(r[o],o,r);isPromise(e)&&(s=!0),n[o]=e}return s?promiseAll(n):n},callPropUnary=(r,t,e)=>r[t](e),stringMap=function(r,t){const e=arrayMap(r,t);return isPromise(e)?e.then(curry3(callPropUnary,__,"join","")):e.join("")},always=r=>function(){return r},setMap=function(r,t){const e=new Set,n=[];for(const o of r){const s=t(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,e,"add",__))):e.add(s)}return 0==n.length?e:promiseAll(n).then(always(e))},curry4ResolveArg0=(r,t,e,n)=>function(o){return r(o,t,e,n)},curry4ResolveArg1=(r,t,e,n)=>function(o){return r(t,o,e,n)},curry4ResolveArg2=(r,t,e,n)=>function(o){return r(t,e,o,n)},curry4ResolveArg3=(r,t,e,n)=>function(o){return r(t,e,n,o)},curry4=function(r,t,e,n,o){return t==__?curry4ResolveArg0(r,e,n,o):e==__?curry4ResolveArg1(r,t,n,o):n==__?curry4ResolveArg2(r,t,e,o):curry4ResolveArg3(r,t,e,n)},callPropBinary=(r,t,e,n)=>r[t](e,n),mapMap=function(r,t){const e=new Map,n=[];for(const[o,s]of r){const i=t(s,o,r);isPromise(i)?n.push(i.then(curry4(callPropBinary,e,"set",o,__))):e.set(o,i)}return 0==n.length?e:promiseAll(n).then(always(e))},promiseObjectAllExecutor=r=>function(t){const e={};let n=0;for(const o in r){const s=r[o];isPromise(s)?(n+=1,s.then((r=>function(o){e[r]=o,n-=1,0==n&&t(e)})(o))):e[o]=s}0==n&&t(e)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),objectMap=function(r,t){const e={};let n=!1;for(const o in r){const s=t(r[o],o,r);isPromise(s)&&(n=!0),e[o]=s}return n?promiseObjectAll(e):e},objectSet=function(r,t,e){return r[t]=e,r},arrayMapSeriesAsync=async function(r,t,e,n){const o=r.length;for(;++n<o;){const o=t(r[n],n);e[n]=isPromise(o)?await o:o}return e},arrayMapSeries=function(r,t){const e=r.length,n=Array(e);let o=-1;for(;++o<e;){const e=t(r[o],o);if(isPromise(e))return e.then(funcConcat(curry3(objectSet,n,o,__),curry4(arrayMapSeriesAsync,r,t,__,o)));n[o]=e}return n},stringMapSeries=function(r,t){const e=arrayMapSeries(r,t);return isPromise(e)?e.then(curry3(callPropUnary,__,"join","")):e.join("")},thunkify4=(r,t,e,n,o)=>function(){return r(t,e,n,o)},_objectMapSeriesAsync=async function(r,t,e,n){for(const o in r){if(o in n)continue;let s=t(r[o]);isPromise(s)&&(s=await s),e[o]=s}return e},objectMapSeries=function(r,t){const e={},n={};for(const o in r){n[o]=!0;const s=t(r[o],o,r);if(isPromise(s))return s.then(funcConcat(curry3(objectSet,e,o,__),thunkify4(_objectMapSeriesAsync,r,t,e,n)));e[o]=s}return e},thunkify3=(r,t,e,n)=>function(){return r(t,e,n)},setAdd=function(r,t){return r.add(t),r},_setMapSeriesAsync=async function(r,t,e){let n=r.next();for(;!n.done;){let o=t(n.value);isPromise(o)&&(o=await o),e.add(o),n=r.next()}return e},setMapSeries=function(r,t){const e=new Set,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=t(o.value);if(isPromise(r))return r.then(funcConcat(curry2(setAdd,e,__),thunkify3(_setMapSeriesAsync,n,t,e)));e.add(r),o=n.next()}return e},mapSet=function(r,t,e){return r.set(t,e)},_mapMapSeriesAsync=async function(r,t,e){let n=r.next();for(;!n.done;){let o=t(n.value[1]);isPromise(o)&&(o=await o),e.set(n.value[0],o),n=r.next()}return e},mapMapSeries=function(r,t){const e=new Map,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=o.value[0],s=t(o.value[1]);if(isPromise(s))return s.then(funcConcat(curry3(mapSet,e,r,__),thunkify3(_mapMapSeriesAsync,n,t,e)));e.set(r,s),o=n.next()}return e},tapSync=r=>function(...t){return r(...t),t[0]},arrayMapPoolAsync=async function(r,t,e,n,o,s){const i=r.length;for(;++o<i;){s.size>=e&&await promiseRace(s);const i=t(r[o]);if(isPromise(i)){const r=i.then(tapSync((()=>s.delete(r))));s.add(r),n[o]=r}else n[o]=i}return promiseAll(n)},arrayMapPool=function(r,t,e){const n=r.length,o=Array(n);let s=-1;for(;++s<n;){const n=e(r[s]);if(isPromise(n)){const i=new Set,a=n.then(tapSync((()=>i.delete(a))));return i.add(a),o[s]=a,arrayMapPoolAsync(r,e,t,o,s,i)}o[s]=n}return o},stringMapPool=function(r,t,e){const n=arrayMapPool(r,t,e);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},_setMapPoolAsync=async function(r,t,e,n,o,s){let i=t.next();for(;!i.done;){s.size>=e&&await promiseRace(s);const a=n(i.value,i.value,r);if(isPromise(a)){const r=a.then((t=>{s.delete(r),o.add(t)}));s.add(r)}else o.add(a);i=t.next()}return s.size>0&&await promiseAll(s),o},setMapPool=function(r,t,e){const n=new Set,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=e(s.value,s.value,r);if(isPromise(i)){const s=new Set,a=i.then((r=>{s.delete(a),n.add(r)}));return s.add(a),_setMapPoolAsync(r,o,t,e,n,s)}n.add(i),s=o.next()}return n},_mapMapPoolAsync=async function(r,t,e,n,o,s){let i=t.next();for(;!i.done;){s.size>=e&&await promiseRace(s);const a=i.value[0],c=n(i.value[1],a,r);if(isPromise(c)){o.set(a,c);const r=c.then((t=>{s.delete(r),o.set(a,t)}));s.add(r)}else o.set(a,c);i=t.next()}return s.size>0&&await promiseAll(s),o},mapMapPool=function(r,t,e){const n=new Map,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=s.value[0],a=e(s.value[1],i,r);if(isPromise(a)){const s=new Set;n.set(i,a);const c=a.then((r=>{s.delete(c),n.set(i,r)}));return s.add(c),_mapMapPoolAsync(r,o,t,e,n,s)}n.set(i,a),s=o.next()}return n},_objectMapPoolAsync=async function(r,t,e,n,o,s){for(const i in r){if(i in o)continue;s.size>=t&&await promiseRace(s);const a=e(r[i],i,r);if(isPromise(a)){n[i]=a;const r=a.then((t=>{s.delete(r),n[i]=t}));s.add(r)}else n[i]=a}return s.size>0&&await promiseAll(s),n},objectMapPool=function(r,t,e){const n={},o={};for(const s in r){o[s]=!0;const i=e(r[s],s,r);if(isPromise(i)){const a=new Set;n[s]=i;const c=i.then((r=>{a.delete(c),n[s]=r}));return a.add(c),_objectMapPoolAsync(r,t,e,n,o,a)}n[s]=i}return n},areAnyValuesPromises=function(r){if(isArray(r)){const t=r.length;let e=-1;for(;++e<t;){const t=r[e];if(isPromise(t))return!0}return!1}for(const t in r){const e=r[t];if(isPromise(e))return!0}return!1},funcApply2=(r,t,e)=>r.apply(t,e),_curryArity=(r,t,e,n)=>function(...o){const s=n.length,i=o.length,a=[];let c=-1,u=-1,l=0;for(;(c+=1)<s;){const s=n[c];if(s==__&&(u+=1)<i){const r=o[u];r==__&&(l+=1),a.push(r)}else a.push(s);if(a.length==r)return areAnyValuesPromises(a)?0==l?promiseAll(a).then(curry3(funcApply2,t,e,__)):promiseAll(a).then(curry4(curryArity,r,t,e,__)):0==l?t.apply(e,a):curryArity(r,t,e,a)}for(;(u+=1)<i;){const n=o[u];if(n==__&&(l+=1),a.push(n),a.length==r)return areAnyValuesPromises(a)?0==l?promiseAll(a).then(curry3(funcApply2,t,e,__)):promiseAll(a).then(curry4(curryArity,r,t,e,__)):0==l?t.apply(e,a):curryArity(r,t,e,a)}return areAnyValuesPromises(a)?promiseAll(a).then(curry4(curryArity,r,t,e,__)):curryArity(r,t,e,a)},curryArity=function(r,t,e,n){const o=n.length;if(o<r)return _curryArity(r,t,e,n);let s=-1;for(;(s+=1)<o;){if(n[s]==__)return _curryArity(r,t,e,n)}return t.apply(e,n)},spread2=r=>function([t,e]){return r(t,e)},objectMapEntries=function(r,t){const e={},n=[];for(const o in r){const s=t([o,r[o]]);isPromise(s)?n.push(s.then(spread2(curryArity(3,objectSet,this,[e])))):e[s[0]]=s[1]}return 0==n.length?e:promiseAll(n).then(always(e))},mapMapEntriesForEachCallback=(r,t,e)=>function(n,o){const s=r([o,n]);isPromise(s)?e.push(s.then(spread2(curryArity(3,mapSet,this,[t])))):t.set(s[0],s[1])},mapMapEntries=function(r,t){const e=new Map,n=[];return r.forEach(mapMapEntriesForEachCallback(t,e,n)),0==n.length?e:promiseAll(n).then(always(e))},_map=function(r,t){return isArray(r)?arrayMap(r,t):null==r?r:"function"==typeof r.then?r.then(t):"string"==typeof r||r.constructor==String?stringMap(r,t):r.constructor==Set?setMap(r,t):r.constructor==Map?mapMap(r,t):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),t):"function"==typeof r.map?r.map(t):r.constructor==Object?objectMap(r,t):t(r)},map=function(r,t){return null==t?curry2(_map,__,r):isPromise(r)?r.then(curry2(_map,__,t)):_map(r,t)},_mapEntries=(r,t)=>{if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return objectMapEntries(r,t);if(r.constructor==Map)return mapMapEntries(r,t);throw new TypeError("value is not an Object or Map")};map.entries=function(r,t){return null==t?curry2(_mapEntries,__,r):isPromise(r)?r.then(curry2(_mapEntries,__,t)):_mapEntries(r,t)};const _mapSeries=function(r,t){if(isArray(r))return arrayMapSeries(r,t);if(null==r)throw new TypeError(`invalid functor ${r}`);if("string"==typeof r||r.constructor==String)return stringMapSeries(r,t);if(r.constructor==Set)return setMapSeries(r,t);if(r.constructor==Map)return mapMapSeries(r,t);if("function"==typeof r[symbolIterator])return MappingIterator(r[symbolIterator](),t);if("function"==typeof r[symbolAsyncIterator])return SerialMappingAsyncIterator(r[symbolAsyncIterator](),t);if("function"==typeof r.map)return r.map(t);if(r.constructor==Object)return objectMapSeries(r,t);throw new TypeError(`invalid functor ${r}`)};map.series=function(r,t){return null==t?curry2(_mapSeries,__,r):isPromise(r)?r.then(curry2(_mapSeries,__,t)):_mapSeries(r,t)};const _mapPool=function(r,t,e){if(isArray(r))return arrayMapPool(r,t,e);if(null==r)throw new TypeError(`invalid functor ${r}`);if("string"==typeof r||r.constructor==String)return stringMapPool(r,t,e);if(r.constructor==Set)return setMapPool(r,t,e);if(r.constructor==Map)return mapMapPool(r,t,e);if(r.constructor==Object)return objectMapPool(r,t,e);throw new TypeError(`invalid functor ${r}`)};map.pool=function(r,t,e){return null==e?curry3(_mapPool,__,r,t):isPromise(r)?r.then(curry3(_mapPool,__,t,e)):_mapPool(r,t,e)};const funcApply=(r,t)=>r(...t),memoizeCappedUnary=function(r,t){const e=new Map,n=function(n){if(e.has(n))return e.get(n);const o=r(n);return e.set(n,o),e.size>t&&e.clear(),o};return n.cache=e,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const t=r.length-1,e="["==r[0],n="]"==r[t];return e&&n?r.slice(1,t).split(pathDelimiters):e?r.slice(1).split(pathDelimiters):n?r.slice(0,t).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,t){const e=propertyPathToArray(t),n=e.length;let o=-1,s=r;for(;++o<n;)if(s=s[e[o]],null==s)return;return s},_get=function(r,t,e){const n=null==r?void 0:getByPath(r,t);return void 0===n?"function"==typeof e?e(r):e:n},get=function(r,t,e){return"string"==typeof r||"number"==typeof r||isArray(r)?curry3(_get,__,r,t):isPromise(r)||isPromise(e)?promiseAll([r,t,e]).then(curry2(funcApply,_get,__)):_get(r,t,e)},pluck=function(...r){const t=r.pop(),e=get(t);return 0==r.length?map(e):map(r[0],e)};export default pluck;