rubico 2.4.2 → 2.5.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 (345) hide show
  1. package/README.md +3 -0
  2. package/_internal/mapMapSeries.js +62 -0
  3. package/_internal/objectForEachSeries.js +6 -4
  4. package/_internal/objectMapSeries.js +61 -0
  5. package/_internal/setAdd.js +14 -0
  6. package/_internal/setMapSeries.js +61 -0
  7. package/_internal/stringMap.js +1 -1
  8. package/_internal/stringMapSeries.js +31 -0
  9. package/dist/Transducer.es.js +1 -1
  10. package/dist/Transducer.es.min.js +1 -1
  11. package/dist/Transducer.js +1 -1
  12. package/dist/Transducer.min.js +1 -1
  13. package/dist/Transducer.mjs +1 -1
  14. package/dist/__.es.js +1 -1
  15. package/dist/__.es.min.js +1 -1
  16. package/dist/__.js +1 -1
  17. package/dist/__.min.js +1 -1
  18. package/dist/__.mjs +1 -1
  19. package/dist/all.es.js +1 -1
  20. package/dist/all.es.min.js +1 -1
  21. package/dist/all.js +1 -1
  22. package/dist/all.min.js +1 -1
  23. package/dist/all.mjs +1 -1
  24. package/dist/always.es.js +1 -1
  25. package/dist/always.es.min.js +1 -1
  26. package/dist/always.js +1 -1
  27. package/dist/always.min.js +1 -1
  28. package/dist/always.mjs +1 -1
  29. package/dist/and.es.js +1 -1
  30. package/dist/and.es.min.js +1 -1
  31. package/dist/and.js +1 -1
  32. package/dist/and.min.js +1 -1
  33. package/dist/and.mjs +1 -1
  34. package/dist/assign.es.js +1 -1
  35. package/dist/assign.es.min.js +1 -1
  36. package/dist/assign.js +1 -1
  37. package/dist/assign.min.js +1 -1
  38. package/dist/assign.mjs +1 -1
  39. package/dist/compose.es.js +1 -1
  40. package/dist/compose.es.min.js +1 -1
  41. package/dist/compose.js +1 -1
  42. package/dist/compose.min.js +1 -1
  43. package/dist/compose.mjs +1 -1
  44. package/dist/curry.es.js +1 -1
  45. package/dist/curry.es.min.js +1 -1
  46. package/dist/curry.js +1 -1
  47. package/dist/curry.min.js +1 -1
  48. package/dist/curry.mjs +1 -1
  49. package/dist/eq.es.js +1 -1
  50. package/dist/eq.es.min.js +1 -1
  51. package/dist/eq.js +1 -1
  52. package/dist/eq.min.js +1 -1
  53. package/dist/eq.mjs +1 -1
  54. package/dist/every.es.js +1 -1
  55. package/dist/every.es.min.js +1 -1
  56. package/dist/every.js +1 -1
  57. package/dist/every.min.js +1 -1
  58. package/dist/every.mjs +1 -1
  59. package/dist/filter.es.js +1 -1
  60. package/dist/filter.es.min.js +1 -1
  61. package/dist/filter.js +1 -1
  62. package/dist/filter.min.js +1 -1
  63. package/dist/filter.mjs +1 -1
  64. package/dist/flatMap.es.js +1 -1
  65. package/dist/flatMap.es.min.js +1 -1
  66. package/dist/flatMap.js +1 -1
  67. package/dist/flatMap.min.js +1 -1
  68. package/dist/flatMap.mjs +1 -1
  69. package/dist/forEach.es.js +9 -7
  70. package/dist/forEach.es.min.js +2 -2
  71. package/dist/forEach.js +9 -7
  72. package/dist/forEach.min.js +2 -2
  73. package/dist/forEach.mjs +9 -7
  74. package/dist/get.es.js +1 -1
  75. package/dist/get.es.min.js +1 -1
  76. package/dist/get.js +1 -1
  77. package/dist/get.min.js +1 -1
  78. package/dist/get.mjs +1 -1
  79. package/dist/gt.es.js +1 -1
  80. package/dist/gt.es.min.js +1 -1
  81. package/dist/gt.js +1 -1
  82. package/dist/gt.min.js +1 -1
  83. package/dist/gt.mjs +1 -1
  84. package/dist/gte.es.js +1 -1
  85. package/dist/gte.es.min.js +1 -1
  86. package/dist/gte.js +1 -1
  87. package/dist/gte.min.js +1 -1
  88. package/dist/gte.mjs +1 -1
  89. package/dist/lt.es.js +1 -1
  90. package/dist/lt.es.min.js +1 -1
  91. package/dist/lt.js +1 -1
  92. package/dist/lt.min.js +1 -1
  93. package/dist/lt.mjs +1 -1
  94. package/dist/lte.es.js +1 -1
  95. package/dist/lte.es.min.js +1 -1
  96. package/dist/lte.js +1 -1
  97. package/dist/lte.min.js +1 -1
  98. package/dist/lte.mjs +1 -1
  99. package/dist/map.es.js +163 -9
  100. package/dist/map.es.min.js +2 -2
  101. package/dist/map.js +163 -9
  102. package/dist/map.min.js +2 -2
  103. package/dist/map.mjs +163 -9
  104. package/dist/not.es.js +1 -1
  105. package/dist/not.es.min.js +1 -1
  106. package/dist/not.js +1 -1
  107. package/dist/not.min.js +1 -1
  108. package/dist/not.mjs +1 -1
  109. package/dist/omit.es.js +1 -1
  110. package/dist/omit.es.min.js +1 -1
  111. package/dist/omit.js +1 -1
  112. package/dist/omit.min.js +1 -1
  113. package/dist/omit.mjs +1 -1
  114. package/dist/or.es.js +1 -1
  115. package/dist/or.es.min.js +1 -1
  116. package/dist/or.js +1 -1
  117. package/dist/or.min.js +1 -1
  118. package/dist/or.mjs +1 -1
  119. package/dist/pick.es.js +1 -1
  120. package/dist/pick.es.min.js +1 -1
  121. package/dist/pick.js +1 -1
  122. package/dist/pick.min.js +1 -1
  123. package/dist/pick.mjs +1 -1
  124. package/dist/pipe.es.js +1 -1
  125. package/dist/pipe.es.min.js +1 -1
  126. package/dist/pipe.js +1 -1
  127. package/dist/pipe.min.js +1 -1
  128. package/dist/pipe.mjs +1 -1
  129. package/dist/reduce.es.js +1 -1
  130. package/dist/reduce.es.min.js +1 -1
  131. package/dist/reduce.js +1 -1
  132. package/dist/reduce.min.js +1 -1
  133. package/dist/reduce.mjs +1 -1
  134. package/dist/rubico.es.js +167 -19
  135. package/dist/rubico.es.min.js +2 -2
  136. package/dist/rubico.global.js +167 -19
  137. package/dist/rubico.global.min.js +2 -2
  138. package/dist/rubico.js +167 -19
  139. package/dist/rubico.min.js +2 -2
  140. package/dist/rubico.mjs +167 -19
  141. package/dist/set.es.js +1 -1
  142. package/dist/set.es.min.js +1 -1
  143. package/dist/set.js +1 -1
  144. package/dist/set.min.js +1 -1
  145. package/dist/set.mjs +1 -1
  146. package/dist/some.es.js +1 -1
  147. package/dist/some.es.min.js +1 -1
  148. package/dist/some.js +1 -1
  149. package/dist/some.min.js +1 -1
  150. package/dist/some.mjs +1 -1
  151. package/dist/switchCase.es.js +1 -1
  152. package/dist/switchCase.es.min.js +1 -1
  153. package/dist/switchCase.js +1 -1
  154. package/dist/switchCase.min.js +1 -1
  155. package/dist/switchCase.mjs +1 -1
  156. package/dist/tap.es.js +1 -1
  157. package/dist/tap.es.min.js +1 -1
  158. package/dist/tap.js +1 -1
  159. package/dist/tap.min.js +1 -1
  160. package/dist/tap.mjs +1 -1
  161. package/dist/thunkify.es.js +1 -1
  162. package/dist/thunkify.es.min.js +1 -1
  163. package/dist/thunkify.js +1 -1
  164. package/dist/thunkify.min.js +1 -1
  165. package/dist/thunkify.mjs +1 -1
  166. package/dist/transform.es.js +1 -1
  167. package/dist/transform.es.min.js +1 -1
  168. package/dist/transform.js +1 -1
  169. package/dist/transform.min.js +1 -1
  170. package/dist/transform.mjs +1 -1
  171. package/dist/tryCatch.es.js +1 -1
  172. package/dist/tryCatch.es.min.js +1 -1
  173. package/dist/tryCatch.js +1 -1
  174. package/dist/tryCatch.min.js +1 -1
  175. package/dist/tryCatch.mjs +1 -1
  176. package/dist/x/append.es.js +1 -1
  177. package/dist/x/append.es.min.js +1 -1
  178. package/dist/x/append.js +1 -1
  179. package/dist/x/append.min.js +1 -1
  180. package/dist/x/append.mjs +1 -1
  181. package/dist/x/callProp.es.js +1 -1
  182. package/dist/x/callProp.es.min.js +1 -1
  183. package/dist/x/callProp.js +1 -1
  184. package/dist/x/callProp.min.js +1 -1
  185. package/dist/x/callProp.mjs +1 -1
  186. package/dist/x/defaultsDeep.es.js +1 -1
  187. package/dist/x/defaultsDeep.es.min.js +1 -1
  188. package/dist/x/defaultsDeep.js +1 -1
  189. package/dist/x/defaultsDeep.min.js +1 -1
  190. package/dist/x/defaultsDeep.mjs +1 -1
  191. package/dist/x/differenceWith.es.js +1 -1
  192. package/dist/x/differenceWith.es.min.js +1 -1
  193. package/dist/x/differenceWith.js +1 -1
  194. package/dist/x/differenceWith.min.js +1 -1
  195. package/dist/x/differenceWith.mjs +1 -1
  196. package/dist/x/filterOut.es.js +1 -1
  197. package/dist/x/filterOut.es.min.js +1 -1
  198. package/dist/x/filterOut.js +1 -1
  199. package/dist/x/filterOut.min.js +1 -1
  200. package/dist/x/filterOut.mjs +1 -1
  201. package/dist/x/find.es.js +1 -1
  202. package/dist/x/find.es.min.js +1 -1
  203. package/dist/x/find.js +1 -1
  204. package/dist/x/find.min.js +1 -1
  205. package/dist/x/find.mjs +1 -1
  206. package/dist/x/findIndex.es.js +1 -1
  207. package/dist/x/findIndex.es.min.js +1 -1
  208. package/dist/x/findIndex.js +1 -1
  209. package/dist/x/findIndex.min.js +1 -1
  210. package/dist/x/findIndex.mjs +1 -1
  211. package/dist/x/first.es.js +1 -1
  212. package/dist/x/first.es.min.js +1 -1
  213. package/dist/x/first.js +1 -1
  214. package/dist/x/first.min.js +1 -1
  215. package/dist/x/first.mjs +1 -1
  216. package/dist/x/flatten.es.js +1 -1
  217. package/dist/x/flatten.es.min.js +1 -1
  218. package/dist/x/flatten.js +1 -1
  219. package/dist/x/flatten.min.js +1 -1
  220. package/dist/x/flatten.mjs +1 -1
  221. package/dist/x/groupBy.es.js +1 -1
  222. package/dist/x/groupBy.es.min.js +1 -1
  223. package/dist/x/groupBy.js +1 -1
  224. package/dist/x/groupBy.min.js +1 -1
  225. package/dist/x/groupBy.mjs +1 -1
  226. package/dist/x/has.es.js +1 -1
  227. package/dist/x/has.es.min.js +1 -1
  228. package/dist/x/has.js +1 -1
  229. package/dist/x/has.min.js +1 -1
  230. package/dist/x/has.mjs +1 -1
  231. package/dist/x/identity.es.js +1 -1
  232. package/dist/x/identity.es.min.js +1 -1
  233. package/dist/x/identity.js +1 -1
  234. package/dist/x/identity.min.js +1 -1
  235. package/dist/x/identity.mjs +1 -1
  236. package/dist/x/includes.es.js +1 -1
  237. package/dist/x/includes.es.min.js +1 -1
  238. package/dist/x/includes.js +1 -1
  239. package/dist/x/includes.min.js +1 -1
  240. package/dist/x/includes.mjs +1 -1
  241. package/dist/x/isDeepEqual.es.js +1 -1
  242. package/dist/x/isDeepEqual.es.min.js +1 -1
  243. package/dist/x/isDeepEqual.js +1 -1
  244. package/dist/x/isDeepEqual.min.js +1 -1
  245. package/dist/x/isDeepEqual.mjs +1 -1
  246. package/dist/x/isEmpty.es.js +1 -1
  247. package/dist/x/isEmpty.es.min.js +1 -1
  248. package/dist/x/isEmpty.js +1 -1
  249. package/dist/x/isEmpty.min.js +1 -1
  250. package/dist/x/isEmpty.mjs +1 -1
  251. package/dist/x/isEqual.es.js +1 -1
  252. package/dist/x/isEqual.es.min.js +1 -1
  253. package/dist/x/isEqual.js +1 -1
  254. package/dist/x/isEqual.min.js +1 -1
  255. package/dist/x/isEqual.mjs +1 -1
  256. package/dist/x/isFunction.es.js +1 -1
  257. package/dist/x/isFunction.es.min.js +1 -1
  258. package/dist/x/isFunction.js +1 -1
  259. package/dist/x/isFunction.min.js +1 -1
  260. package/dist/x/isFunction.mjs +1 -1
  261. package/dist/x/isIn.es.js +1 -1
  262. package/dist/x/isIn.es.min.js +1 -1
  263. package/dist/x/isIn.js +1 -1
  264. package/dist/x/isIn.min.js +1 -1
  265. package/dist/x/isIn.mjs +1 -1
  266. package/dist/x/isObject.es.js +1 -1
  267. package/dist/x/isObject.es.min.js +1 -1
  268. package/dist/x/isObject.js +1 -1
  269. package/dist/x/isObject.min.js +1 -1
  270. package/dist/x/isObject.mjs +1 -1
  271. package/dist/x/isString.es.js +1 -1
  272. package/dist/x/isString.es.min.js +1 -1
  273. package/dist/x/isString.js +1 -1
  274. package/dist/x/isString.min.js +1 -1
  275. package/dist/x/isString.mjs +1 -1
  276. package/dist/x/keys.es.js +1 -1
  277. package/dist/x/keys.es.min.js +1 -1
  278. package/dist/x/keys.js +1 -1
  279. package/dist/x/keys.min.js +1 -1
  280. package/dist/x/keys.mjs +1 -1
  281. package/dist/x/last.es.js +1 -1
  282. package/dist/x/last.es.min.js +1 -1
  283. package/dist/x/last.js +1 -1
  284. package/dist/x/last.min.js +1 -1
  285. package/dist/x/last.mjs +1 -1
  286. package/dist/x/maxBy.es.js +1 -1
  287. package/dist/x/maxBy.es.min.js +1 -1
  288. package/dist/x/maxBy.js +1 -1
  289. package/dist/x/maxBy.min.js +1 -1
  290. package/dist/x/maxBy.mjs +1 -1
  291. package/dist/x/noop.es.js +1 -1
  292. package/dist/x/noop.es.min.js +1 -1
  293. package/dist/x/noop.js +1 -1
  294. package/dist/x/noop.min.js +1 -1
  295. package/dist/x/noop.mjs +1 -1
  296. package/dist/x/pluck.es.js +163 -9
  297. package/dist/x/pluck.es.min.js +2 -2
  298. package/dist/x/pluck.js +163 -9
  299. package/dist/x/pluck.min.js +2 -2
  300. package/dist/x/pluck.mjs +163 -9
  301. package/dist/x/prepend.es.js +1 -1
  302. package/dist/x/prepend.es.min.js +1 -1
  303. package/dist/x/prepend.js +1 -1
  304. package/dist/x/prepend.min.js +1 -1
  305. package/dist/x/prepend.mjs +1 -1
  306. package/dist/x/size.es.js +1 -1
  307. package/dist/x/size.es.min.js +1 -1
  308. package/dist/x/size.js +1 -1
  309. package/dist/x/size.min.js +1 -1
  310. package/dist/x/size.mjs +1 -1
  311. package/dist/x/trace.es.js +1 -1
  312. package/dist/x/trace.es.min.js +1 -1
  313. package/dist/x/trace.js +1 -1
  314. package/dist/x/trace.min.js +1 -1
  315. package/dist/x/trace.mjs +1 -1
  316. package/dist/x/unionWith.es.js +1 -1
  317. package/dist/x/unionWith.es.min.js +1 -1
  318. package/dist/x/unionWith.js +1 -1
  319. package/dist/x/unionWith.min.js +1 -1
  320. package/dist/x/unionWith.mjs +1 -1
  321. package/dist/x/uniq.es.js +1 -1
  322. package/dist/x/uniq.es.min.js +1 -1
  323. package/dist/x/uniq.js +1 -1
  324. package/dist/x/uniq.min.js +1 -1
  325. package/dist/x/uniq.mjs +1 -1
  326. package/dist/x/unless.es.js +1 -1
  327. package/dist/x/unless.es.min.js +1 -1
  328. package/dist/x/unless.js +1 -1
  329. package/dist/x/unless.min.js +1 -1
  330. package/dist/x/unless.mjs +1 -1
  331. package/dist/x/values.es.js +1 -1
  332. package/dist/x/values.es.min.js +1 -1
  333. package/dist/x/values.js +1 -1
  334. package/dist/x/values.min.js +1 -1
  335. package/dist/x/values.mjs +1 -1
  336. package/dist/x/when.es.js +1 -1
  337. package/dist/x/when.es.min.js +1 -1
  338. package/dist/x/when.js +1 -1
  339. package/dist/x/when.min.js +1 -1
  340. package/dist/x/when.mjs +1 -1
  341. package/es.js +167 -19
  342. package/forEach.js +2 -2
  343. package/index.js +167 -19
  344. package/map.js +62 -7
  345. package/package.json +1 -1
package/dist/rubico.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -664,6 +664,135 @@ const arrayMapSeries = function (array, mapper) {
664
664
  return result
665
665
  }
666
666
 
667
+ const stringMapSeries = function (string, mapper) {
668
+ const result = arrayMapSeries(string, mapper)
669
+ return isPromise(result)
670
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
671
+ : result.join('')
672
+ }
673
+
674
+ const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
675
+ return func(arg0, arg1, arg2, arg3)
676
+ }
677
+
678
+ // _objectMapSeriesAsync(
679
+ // object Object,
680
+ // f function,
681
+ // result Object,
682
+ // doneKeys Object
683
+ // ) -> Promise<object>
684
+ const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
685
+ for (const key in object) {
686
+ if (key in doneKeys) {
687
+ continue
688
+ }
689
+ let resultItem = f(object[key])
690
+ if (isPromise(resultItem)) {
691
+ resultItem = await resultItem
692
+ }
693
+ result[key] = resultItem
694
+ }
695
+ return result
696
+ }
697
+
698
+ const objectMapSeries = function (object, f) {
699
+ const result = {}
700
+ const doneKeys = {}
701
+ for (const key in object) {
702
+ doneKeys[key] = true
703
+ const resultItem = f(object[key], key, object)
704
+ if (isPromise(resultItem)) {
705
+ return resultItem.then(funcConcat(
706
+ curry3(objectSet, result, key, __),
707
+ thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
708
+ ))
709
+ }
710
+ }
711
+ return result
712
+ }
713
+
714
+ const setAdd = function (set, value) {
715
+ set.add(value)
716
+ return set
717
+ }
718
+
719
+ // _setMapSeriesAsync(
720
+ // iterator Iterator,
721
+ // f function,
722
+ // result Set,
723
+ // ) -> Promise<Set>
724
+ const _setMapSeriesAsync = async function (iterator, f, result) {
725
+ let iteration = iterator.next()
726
+ while (!iteration.done) {
727
+ let resultItem = f(iteration.value)
728
+ if (isPromise(resultItem)) {
729
+ resultItem = await resultItem
730
+ }
731
+ result.add(resultItem)
732
+ iteration = iterator.next()
733
+ }
734
+ return result
735
+ }
736
+
737
+ const setMapSeries = function (set, f) {
738
+ const result = new Set()
739
+ const iterator = set[symbolIterator]()
740
+ let iteration = iterator.next()
741
+ while (!iteration.done) {
742
+ const resultItem = f(iteration.value)
743
+ if (isPromise(resultItem)) {
744
+ return resultItem.then(funcConcat(
745
+ curry2(setAdd, result, __),
746
+ thunkify3(_setMapSeriesAsync, iterator, f, result),
747
+ ))
748
+ }
749
+ result.add(resultItem)
750
+ iteration = iterator.next()
751
+ }
752
+ return result
753
+ }
754
+
755
+ const mapSet = function setting(source, key, value) {
756
+ return source.set(key, value)
757
+ }
758
+
759
+ // _mapMapSeriesAsync(
760
+ // iterator Iterator,
761
+ // f function,
762
+ // result Map,
763
+ // ) -> Promise<Map>
764
+ const _mapMapSeriesAsync = async function (iterator, f, result) {
765
+ let iteration = iterator.next()
766
+ while (!iteration.done) {
767
+ let resultItem = f(iteration.value[1])
768
+ if (isPromise(resultItem)) {
769
+ resultItem = await resultItem
770
+ }
771
+ result.set(iteration.value[0], resultItem)
772
+ iteration = iterator.next()
773
+ }
774
+ return result
775
+ }
776
+
777
+ const mapMapSeries = function (map, f) {
778
+ const result = new Map()
779
+ const iterator = map[symbolIterator]()
780
+ let iteration = iterator.next()
781
+ while (!iteration.done) {
782
+ const key = iteration.value[0]
783
+ const resultItem = f(iteration.value[1])
784
+ if (isPromise(resultItem)) {
785
+ return resultItem.then(funcConcat(
786
+ curry3(mapSet, result, key, __),
787
+ thunkify3(_mapMapSeriesAsync, iterator, f, result),
788
+ ))
789
+ }
790
+ result.set(key, resultItem)
791
+ iteration = iterator.next()
792
+ }
793
+ return result
794
+ }
795
+
667
796
  const tapSync = func => function tapping(...args) {
668
797
  func(...args)
669
798
  return args[0]
@@ -792,10 +921,6 @@ const objectMapEntries = function (object, mapper) {
792
921
  : promiseAll(promises).then(always(result))
793
922
  }
794
923
 
795
- const mapSet = function setting(source, key, value) {
796
- return source.set(key, value)
797
- }
798
-
799
924
  // (mapper function, result Map, promises Array<Promise>) => (key any, value any) => ()
800
925
  const mapMapEntriesForEachCallback = (
801
926
  mapper, result, promises,
@@ -884,11 +1009,36 @@ map.entries = function mapEntries(arg0, arg1) {
884
1009
  : _mapEntries(arg0, arg1)
885
1010
  }
886
1011
 
887
- map.series = mapper => function mappingInSeries(value) {
888
- if (isArray(value)) {
889
- return arrayMapSeries(value, mapper)
1012
+ const _mapSeries = function (collection, f) {
1013
+ if (isArray(collection)) {
1014
+ return arrayMapSeries(collection, f)
890
1015
  }
891
- throw new TypeError(`${value} is not an Array`)
1016
+ if (collection == null) {
1017
+ throw new TypeError(`invalid collection ${collection}`)
1018
+ }
1019
+
1020
+ if (typeof collection == 'string' || collection.constructor == String) {
1021
+ return stringMapSeries(collection, f)
1022
+ }
1023
+ if (collection.constructor == Set) {
1024
+ return setMapSeries(collection, f)
1025
+ }
1026
+ if (collection.constructor == Map) {
1027
+ return mapMapSeries(collection, f)
1028
+ }
1029
+ if (collection.constructor == Object) {
1030
+ return objectMapSeries(collection, f)
1031
+ }
1032
+ throw new TypeError(`invalid collection ${collection}`)
1033
+ }
1034
+
1035
+ map.series = function mapSeries(arg0, arg1) {
1036
+ if (typeof arg0 == 'function') {
1037
+ return curry2(_mapSeries, __, arg0)
1038
+ }
1039
+ return isPromise(arg0)
1040
+ ? arg0.then(curry2(_mapSeries, __, arg1))
1041
+ : _mapSeries(arg0, arg1)
892
1042
  }
893
1043
 
894
1044
  map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
@@ -1011,10 +1161,6 @@ const setFilter = function (value, predicate) {
1011
1161
  : promiseAll(promises).then(always(result))
1012
1162
  }
1013
1163
 
1014
- const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
1015
- return func(arg0, arg1, arg2, arg3)
1016
- }
1017
-
1018
1164
  const mapFilter = function (map, predicate) {
1019
1165
  const result = new Map(),
1020
1166
  promises = []
@@ -1929,11 +2075,11 @@ const arrayForEachSeries = function (array, callback) {
1929
2075
  // _objectForEachSeriesAsync(
1930
2076
  // object Object,
1931
2077
  // callback function,
1932
- // firstKey string
2078
+ // doneKeys Object,
1933
2079
  // ) -> Promise<object>
1934
- const _objectForEachSeriesAsync = async function (object, callback, firstKey) {
2080
+ const _objectForEachSeriesAsync = async function (object, callback, doneKeys) {
1935
2081
  for (const key in object) {
1936
- if (key == firstKey) {
2082
+ if (key in doneKeys) {
1937
2083
  continue
1938
2084
  }
1939
2085
  const operation = callback(object[key])
@@ -1945,11 +2091,13 @@ const _objectForEachSeriesAsync = async function (object, callback, firstKey) {
1945
2091
  }
1946
2092
 
1947
2093
  const objectForEachSeries = function (object, callback) {
2094
+ const doneKeys = {}
1948
2095
  for (const key in object) {
2096
+ doneKeys[key] = true
1949
2097
  const operation = callback(object[key])
1950
2098
  if (isPromise(operation)) {
1951
2099
  return operation
1952
- .then(thunkify3(_objectForEachSeriesAsync, object, callback, key))
2100
+ .then(thunkify3(_objectForEachSeriesAsync, object, callback, doneKeys))
1953
2101
  }
1954
2102
  }
1955
2103
  return object
@@ -2032,7 +2180,7 @@ const _forEachSeries = function (collection, callback) {
2032
2180
  return arrayForEachSeries(collection, callback)
2033
2181
  }
2034
2182
  if (collection == null) {
2035
- throw new Error(`invalid collection ${collection}`)
2183
+ throw new TypeError(`invalid collection ${collection}`)
2036
2184
  }
2037
2185
  if (typeof collection[symbolIterator] == 'function') {
2038
2186
  return iteratorForEachSeries(collection[symbolIterator](), callback)
@@ -2043,7 +2191,7 @@ const _forEachSeries = function (collection, callback) {
2043
2191
  if (collection.constructor == Object) {
2044
2192
  return objectForEachSeries(collection, callback)
2045
2193
  }
2046
- throw new Error(`invalid collection ${collection}`)
2194
+ throw new TypeError(`invalid collection ${collection}`)
2047
2195
  }
2048
2196
 
2049
2197
  forEach.series = function forEachSeries(arg0, arg1) {
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 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.rubico=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1},e=Promise.all.bind(Promise),o=(t,e)=>function(...o){const r=t(...o);return n(r)?r.then(e):e(r)},r=(n,t)=>n(...t),u=Symbol.for("placeholder"),c=function(n,t,e){return t==u?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},f=n=>function(){return n},i=(n,t)=>function(){return n(...t)},s=(n,t,e)=>n?t():e(),l=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},h=function(n,t,e){return t==u?((n,t)=>function(...e){return n(e,t)})(n,e):((n,t)=>function(...e){return n(t,e)})(n,t)},a=function(t,e){const o=t[0],r=e(...t);return n(r)?r.then(f(o)):o},p=function(...n){const t=n.pop();return 0==n.length?h(a,u,t):a(n,t)};p.if=(t,e)=>function(...o){const r=t(...o);if(n(r))return r.then(l(s,u,i(p(e),o),f(o[0])));if(r){const t=e(...o);if(n(t))return t.then(f(o[0]))}return o[0]};const y=Array.isArray,d=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=t[c](...o);n(e)&&(f=!0),u[c]=e}return f?e(u):u},g=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,e,o)},w=function(n,t,e){return n[t]=e,n},v=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=t[r](...e);o[r]=n(u)?await u:u}return o},b=function(t,e){const r=t.length,c=[];let f=-1;for(;++f<r;){const r=t[f](...e);if(n(r))return r.then(o(l(w,c,f,u),g(v,t,e,u,f)));c[f]=r}return c},j=function(t,o){const r={},c=[];for(const e in t){const f=t[e](...o);n(f)?c.push(f.then(l(w,r,e,u))):r[e]=f}return 0==c.length?r:e(c).then(f(r))},x=function(...n){const o=n.pop();return 0==n.length?y(o)?h(d,o,u):h(j,o,u):t(n)?y(o)?e(n).then(c(d,o,u)):e(n).then(c(j,o,u)):y(o)?d(o,n):j(o,n)};x.series=function(...n){const o=n.pop();return 0==n.length?h(b,o,u):t(n)?e(n).then(c(b,o,u)):b(o,n)};const S=Object.assign,M=function(t,e){const o=j(e,[t]);return n(o)?o.then(l(S,{},t,u)):{...t,...o}},m=function(n,t,e){return n(t,...e)},O=function(t,e,o){try{const r=t(...o);return n(r)?r.catch(l(m,e,u,o)):r}catch(n){return e(n,...o)}},A=(n,t,e,o)=>function(){return n(t,e,o)},z=function(t,e,o){const r=t.length-1;for(;(o+=2)<r;){const r=t[o],c=t[o+1],h="function"==typeof r?r(...e):r;if(n(h))return h.then(l(s,u,"function"==typeof c?i(c,e):f(c),A(z,t,e,o)));if(h)return"function"==typeof c?c(...e):c}if(o==t.length)return;const c=t[r];return"function"==typeof c?c(...e):c},E=function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0},I=(n,t,e)=>function(){return n(t,e)},D=function(t,e){const o=t.length,r=o-1;for(;(e+=2)<r;){const o=t[e],r=t[e+1];if(n(o))return o.then(l(s,u,f(r),I(D,t,e)));if(o)return r}if(e!=o)return t[e]},P=Symbol.iterator,T=(n,t)=>({toString:()=>"[object MappingIterator]",[P](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),B=n=>({value:n,done:!1}),$=Symbol.asyncIterator,k=(t,e)=>({[$](){return this},async next(){const o=await t.next();if(o.done)return o;const r=e(o.value);return n(r)?r.then(B):{value:r,done:!1}}}),C=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=o(t[c],c,t);n(e)&&(f=!0),u[c]=e}return f?e(u):u},_=(n,t,e)=>n[t](e),q=function(t,o){const r=new Set,c=[];for(const e of t){const f=o(e,e,t);n(f)?c.push(f.then(l(_,r,"add",u))):r.add(f)}return 0==c.length?r:e(c).then(f(r))},F=(n,t,e,o)=>n[t](e,o),R=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const c=t[u];n(c)?(r+=1,c.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=c}0==r&&e(o)})(t)),V=function(t,e){const o={};let r=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(r=!0),o[u]=c}return r?R(o):o},G=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=e(t[r],r);o[r]=n(u)?await u:u}return o},H=n=>function(...t){return n(...t),t[0]},J=Promise.race.bind(Promise),K=async function(t,o,r,u,c,f){const i=t.length;for(;++c<i;){f.size>=r&&await J(f);const e=o(t[c]);if(n(e)){const n=e.then(H((()=>f.delete(n))));f.add(n),u[c]=n}else u[c]=e}return e(u)},L=(n,t,e)=>function(...o){const r=e.length,c=o.length,f=[];let i=-1,s=-1,l=0;for(;++i<r;){const r=e[i];if(r==u&&(s+=1)<c){const n=o[s];n==u&&(l+=1),f.push(n)}else f.push(r);if(f.length==n)return 0==l?t(...f):N(n,t,f)}for(;++s<c;){const e=o[s];if(e==u&&(l+=1),f.push(e),f.length==n)return 0==l?t(...f):N(n,t,f)}return N(n,t,f)},N=function(n,t,e){const o=e.length;if(o<n)return L(n,t,e);let r=-1;for(;++r<o;){if(e[r]==u)return L(n,t,e)}return t(...e)},Q=n=>function([t,e]){return n(t,e)},U=function(n,t,e){return n.set(t,e)},W=function(t,o){const r=new Map,u=[];return t.forEach(((t,e,o)=>function(r,u){const c=t([u,r]);n(c)?o.push(c.then(Q(N(3,U,[e])))):e.set(c[0],c[1])})(o,r,u)),0==u.length?r:e(u).then(f(r))},X=function(t,o){return y(t)?C(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 o=C(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?q(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(g(F,r,"set",e,u))):r.set(e,i)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t[P]?T(t[P](),o):"function"==typeof t[$]?k(t[$](),o):t.constructor==Object?V(t,o):o(t)},Y=function(t,e){return"function"==typeof t?c(X,u,t):n(t)?t.then(c(X,u,e)):X(t,e)},Z=(t,o)=>{if(null==t)throw new TypeError("value is not an Object or Map");if(t.constructor==Object)return function(t,o){const r={},u=[];for(const e in t){const c=o([e,t[e]]);n(c)?u.push(c.then(Q(N(3,w,[r])))):r[c[0]]=c[1]}return 0==u.length?r:e(u).then(f(r))}(t,o);if(t.constructor==Map)return W(t,o);throw new TypeError("value is not an Object or Map")};Y.entries=function(t,e){return"function"==typeof t?c(Z,u,t):n(t)?t.then(c(Z,u,e)):Z(t,e)},Y.series=t=>function(e){if(y(e))return function(t,e){const r=t.length,c=Array(r);let f=-1;for(;++f<r;){const r=e(t[f],f);if(n(r))return r.then(o(l(w,c,f,u),g(G,t,e,u,f)));c[f]=r}return c}(e,t);throw new TypeError(`${e} is not an Array`)},Y.pool=(t,e)=>function(o){if(y(o))return function(t,e,o){const r=t.length,u=Array(r);let c=-1;for(;++c<r;){const r=e(t[c]);if(n(r)){const n=new Set,f=r.then(H((()=>n.delete(f))));return n.add(f),u[c]=f,K(t,e,o,u,c,n)}u[c]=r}return u}(o,e,t);throw new TypeError(`${o} is not an Array`)};const nn=(n,t)=>({[P](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),tn=(t,e)=>({isAsyncIteratorDone:!1,[$](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:o,done:r}=await t.next();if(r)this.isAsyncIteratorDone=!0;else{const t=e(o);if(n(t)?await t:t)return{value:o,done:!1}}}return{value:void 0,done:!0}}}),en=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},on=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},rn=function(t,o){const r=t.length,c=[];let f=-1,i=-1;for(;++f<r;){const r=t[f],s=o(r,f,t);if(n(s))return e(en([s],t,o,f)).then(g(on,t,c,f-1,u));s&&(c[++i]=r)}return c},un=(n,t)=>function(){return n(t)},cn=function(){},fn=(n,t,e,o,r)=>function(){return n(t,e,o,r)},sn=function(n,t,e,o){o&&(n[t]=e)},ln=function(t,o){return y(t)?rn(t,o):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=rn(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?function(t,o){const r=new Set,c=r.add.bind(r),i=[];for(const e of t){const f=o(e,e,t);n(f)?i.push(f.then(l(s,u,un(c,e),cn))):f&&r.add(e)}return 0==i.length?r:e(i).then(f(r))}(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(l(s,u,fn(F,r,"set",e,f),cn))):i&&r.set(e,f)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t.filter?t.filter(o):"function"==typeof t[P]?nn(t[P](),o):"function"==typeof t[$]?tn(t[$](),o):t.constructor==Object?function(t,o){const r={},c=[];for(const e in t){const f=t[e],i=o(f,e,t);n(i)?c.push(i.then(g(sn,r,e,t[e],u))):i&&(r[e]=f)}return 0==c.length?r:e(c).then(f(r))}(t,o):t},hn=Object.values,an=(Object.prototype.toString,async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o}),pn=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},yn=Object.keys,dn=async function(t,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,t[c],c,t),n(o)&&(o=await o)}return o},gn=async function(t,e,o,r){for(const[u,c]of r)o=e(o,c,u,t),n(o)&&(o=await o);return o},wn=function(t,e,o){return y(t)?function(t,e,o){const r=t.length;let c=-1;for(void 0===o&&(o=t[++c]);++c<r;)if(o=e(o,t[c],c,t),n(o))return o.then(g(pn,t,e,u,c));return o}(t,e,o):null==t?void 0===o?c(e,t,u):e(o,t):t.constructor==Map?function(t,e,o){const r=t.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of r)if(o=e(o,f,c,t),n(o))return o.then(g(gn,t,e,u,r));return o}(t,e,o):"function"==typeof t[P]?function(t,e,o){let r=t.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=t.next());!r.done;){if(o=e(o,r.value),n(o))return o.then(l(an,t,e,u));r=t.next()}return o}(t[P](),e,o):"function"==typeof t[$]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(t[$](),e,o):"function"==typeof t.reduce?t.reduce(e,o):"function"==typeof t.chain?t.chain(c(e,o,u)):"function"==typeof t.flatMap?t.flatMap(c(e,o,u)):t.constructor==Object?function(t,e,o){const r=yn(t),c=r.length;let f=-1;for(void 0===o&&(o=t[r[++f]]);++f<c;){const c=r[f];if(o=e(o,t[c],c,t),n(o))return o.then((i=dn,l=e,h=u,a=r,p=f,(s=t)==u?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,h,a,p):l==u?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,h,a,p):h==u?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,a,p):a==u?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,h,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,h,a)))}var i,s,l,h,a,p;return o}(t,e,o):void 0===o?c(e,t,u):e(o,t)},vn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(wn,t,e,u)):wn(t,e,r)}return n(o)?o.then(l(wn,t,e,u)):wn(t,e,o)},bn=ArrayBuffer.isView,jn=function(n,t){return y(t)||bn(t)?function(n,t){const e=n.length,o=t.length;let r=-1;for(;++r<o;)n[e+r]=t[r];return n}(n,t):(n.push(t),n)},xn="function"==typeof Buffer,Sn=xn?Buffer.alloc:cn,Mn=function(n,t){const e=n.length,o=xn&&n.constructor==Buffer?Sn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},mn=function(n,t){return y(t)||bn(t)?Mn(n,t):Mn(n,[t])},On=(n,t)=>new Promise(((n,t)=>function(e,o){t.on("data",(n=>function(t,e,o){return n.write(t,e,o),n})(n)),t.on("end",un(e,n)),t.on("error",o)})(n,t)),An=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?On(n,t):(n.write(t),n);var e},zn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},En=function(n,t){return n.concat(t)},In=function(t,e,o){const r=wn(t,e(cn),null);return n(r)?r.then(f(o)):o},Dn=function(t,e,o){if(y(o))return wn(t,e(jn),o);if(bn(o)){const r=wn(t,e(jn),[]);return n(r)?r.then(c(mn,o,u)):mn(o,r)}if(null==o)return In(t,e,o);const r=o.constructor;if("string"==typeof o||r==String){const r=wn(t,e(jn),[o]);return n(r)?r.then(l(_,u,"join","")):r.join("")}return"function"==typeof o.concat?wn(t,e(En),o):"function"==typeof o.write?wn(t,e(An),o):r==Set?wn(t,e(zn),o):r==Object?wn(t,e(S),o):In(t,e,o)},Pn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Dn,t,e,u)):Dn(t,e,r)}return n(o)?o.then(l(Dn,t,e,u)):Dn(t,e,o)},Tn=function(n,t){return n.push(t),n},Bn=n=>new Promise((t=>{setTimeout(t,n)})),$n=(n,t)=>t,kn=n=>n,Cn=(n,t)=>function(...e){return t(n(...e))},_n=async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))},qn=function(t){const o=t.length,r=[],i=[];let s=-1;for(;++s<o;){const e=t[s];if(y(e)){const n=e.length;let t=-1;for(;++t<n;)i.push(e[t])}else if(null==e)i.push(e);else if("function"==typeof e.then)r.push(e.then(c(Tn,i,u)));else if("function"==typeof e[P])for(const n of e)i.push(n);else if("function"==typeof e[$])r.push(_n(e[$](),c(Tn,i,u)));else if("function"==typeof e.chain){const t=e.chain(kn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(kn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.reduce){const t=e.reduce(Cn($n,c(Tn,i,u)),null);n(t)&&r.push(t)}else if(e.constructor==Object)for(const n in e)i.push(e[n]);else i.push(e)}return 0==r.length?i:e(r).then(f(i))},Fn=function(t){const o=[],r={},f=c(S,r,u),i=Cn($n,f);for(const e in t){const u=t[e];if(null!=u)if("function"==typeof u[P])for(const n of u)S(r,n);else if("function"==typeof u[$])o.push(_n(u[$](),f));else if("function"==typeof u.chain){const t=u.chain(kn);n(t)?o.push(t.then(f)):S(r,t)}else if("function"==typeof u.flatMap){const t=u.flatMap(kn);n(t)?o.push(t.then(f)):f(t)}else if("function"==typeof u.reduce){const t=u.reduce(i,null);n(t)&&o.push(t)}else S(r,u)}return 0==o.length?r:e(o).then((()=>r))},Rn=function(t){t.size;const o=[],r=new Set,c=(n,t)=>r.add(t),f=l(_,r,"add",u);for(const e of t)if(y(e)){const n=e.length;let t=-1;for(;++t<n;)r.add(e[t])}else if(null==e)r.add(e);else if("function"==typeof e[P])for(const n of e)r.add(n);else if("function"==typeof e[$])o.push(_n(e[$](),f));else if("function"==typeof e.chain){const t=e.chain(kn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(kn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(c,null);n(t)&&o.push(t)}else if(e.constructor==Object)for(const n in e)r.add(e[n]);else r.add(e);return 0==o.length?r:e(o).then((()=>r))},Vn=o(qn,c(((n,t)=>n.join(t)),u,"")),Gn=function(t,e){if(y(t))return function(t,e){const o=C(t,e);return n(o)?o.then(qn):qn(o)}(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return P in t?function(n,t){let e=[],o=0;return{[P](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=wn(t(r.value),Tn,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(t,e):function(t,e){const o=[],r=new Set;return{isAsyncIteratorDone:!1,[$](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||o.length>0||r.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:f}=await t.next();if(f)this.isAsyncIteratorDone=f;else{const t=e(c);if(n(t)){const n=t.then(l(wn,u,Tn,o)).then((()=>r.delete(n)));r.add(n)}else{const e=wn(t,Tn,o);if(n(e)){const n=e.then((()=>r.delete(n)));r.add(n)}}}}if(o.length>0)return{value:o.shift(),done:!1};r.size>0&&await J([Bn(1e3),...r])}return{value:void 0,done:!0}}}}(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const o=t.constructor;return o==Object?function(t,e){const o=V(t,e);return n(o)?o.then(Fn):Fn(o)}(t,e):o==Set?function(t,e){const o=q(t,e);return n(o)?o.then(Rn):Rn(o)}(t,e):"string"==typeof t||o==String?function(t,e){const o=C(t,e);return n(o)?o.then(Vn):Vn(o)}(t,e):e(t)},Hn=async function(t,e,o){const r=t.length;for(;++o<r;){const r=e(t[o]);n(r)&&await r}return t},Jn=async function(t,e,o){for(const r in t){if(r==o)continue;const u=e(t[r]);n(u)&&await u}return t},Kn=async function(t,e){let o=t.next();for(;!o.done;){const r=e(o.value);n(r)&&await r,o=t.next()}return t},Ln=function(t,o){return y(t)?function(t,o){const r=t.length,u=[];let c=-1;for(;++c<r;){const e=o(t[c]);n(e)&&u.push(e)}return 0==u.length?t:e(u).then(f(t))}(t,o):null==t?t:"function"==typeof t.forEach?t.forEach(o):"function"==typeof t[P]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))}(t[P](),o):"function"==typeof t[$]?_n(t[$](),o):t.constructor==Object?function(t,o){const r=[];for(const e in t){const u=o(t[e]);n(u)&&r.push(u)}return 0==r.length?t:e(r).then(f(t))}(t,o):t},Nn=function(t,e){return"function"==typeof t?c(Ln,u,t):n(t)?t.then(c(Ln,u,e)):Ln(t,e)},Qn=function(t,e){if(y(t))return function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return o.then(A(Hn,t,e,r))}return t}(t,e);if(null==t)throw new Error(`invalid collection ${t}`);if("function"==typeof t[P])return function(t,e){let o=t.next();for(;!t.done;){const r=e(o.value);if(n(r))return r.then(I(Kn,t,e));o=t.next()}return t}(t[P](),e);if("function"==typeof t[$])return async function(t,e){for await(const o of t){const t=e(o);n(t)&&await t}return t}(t[$](),e);if(t.constructor==Object)return function(t,e){for(const o in t){const r=e(t[o]);if(n(r))return r.then(A(Jn,t,e,o))}return t}(t,e);throw new Error(`invalid collection ${t}`)};Nn.series=function(t,e){return"function"==typeof t?c(Qn,u,t):n(t)?t.then(c(Qn,u,e)):Qn(t,e)};const Un=function(n){const t=n.then((n=>[n,t]));return t},Wn=async function(t,e,o,r){const u=t.length;for(;++o<u;){const u=e(t[o]);if(n(u))r.add(Un(u));else if(u)return!0}for(;r.size>0;){const[n,t]=await J(r);if(r.delete(t),n)return!0}return!1},Xn=function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return Wn(t,e,r,new Set([Un(o)]));if(o)return!0}return!1},Yn=async function(t,e,o,r=20){let u=t.next();for(n(u)&&(u=await u);!u.done;){if(o.size>=r){const[n,t]=await J(o);if(o.delete(t),n)return!0}const c=e(u.value);if(n(c))o.add(Un(c));else if(c)return!0;u=t.next(),n(u)&&(u=await u)}for(;o.size>0;){const[n,t]=await J(o);if(o.delete(t),n)return!0}return!1},Zn=function(t,e){return y(t)?Xn(t,e):null==t?e(t):"function"==typeof t[P]?function(t,e){for(const o of t){const r=e(o);if(n(r))return Yn(t,e,new Set([Un(r)]));if(r)return!0}return!1}(t[P](),e):"function"==typeof t[$]?Yn(t[$](),e,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!0===e?e:n(e)?e.then(c((n=>function(t,e){return!!t||n(e)})(t),u,o)):!!e||t(o)})(e),!1):t.constructor==Object?Xn(hn(t),e):e(t)},nt=function(t,o){const r=t.length,c=[];let f=-1;for(;++f<r;){const e=o(t[f]);if(n(e))c.push(e);else if(!e)return!1}return 0==c.length||e(c).then(l(_,u,"every",Boolean))},tt=(n,t,e)=>!!t&&n(e),et=function(t,o){return y(t)?nt(t,o):null==t?o(t):"function"==typeof t[P]?function(t,o){const r=[];for(const e of t){const t=o(e);if(n(t))r.push(t);else if(!t)return!1}return 0==r.length||e(r).then(l(_,u,"every",Boolean))}(t[P](),o):"function"==typeof t[$]?async function(t,e,o,r=20){let u=await t.next();for(;!u.done;){if(o.size>=r){const[n,t]=await J(o);if(o.delete(t),!n)return!1}const c=e(u.value);if(n(c))o.add(Un(c));else if(!c)return!1;u=await t.next()}for(;o.size>0;){const[n,t]=await J(o);if(o.delete(t),!n)return!1}return!0}(t[$](),o,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!1!==e&&(n(e)?e.then(l(tt,t,u,o)):!!e&&t(o))})(o),!0):t.constructor==Object?nt(hn(t),o):o(t)},ot=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,I(ot,t,e),f(!1)));if(!o)return!1}return!0},rt=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),!r)return!1}return!0},ut=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,A(rt,t,e,r),f(!1)));if(!o)return!1}return!0},ct=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,f(!0),I(ct,t,e)));if(o)return!0}return!1},ft=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),r)return!0}return!1},it=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,f(!0),A(ft,t,e,r)));if(o)return!0}return!1},st=n=>!n,lt=function(t,e){const o=e(...t);return n(o)?o.then(st):!o},ht=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(...r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(...r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(...r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(...r){return n(t,e,o,r)})(n,t,e,o)},at=function(t,o,r,u){const c=r(...t),f=u(...t);return n(c)||n(f)?e([c,f]).then(Q(o)):o(c,f)},pt=function(t,o,r,u){const c=r(...t);return n(c)||n(u)?e([c,u]).then(Q(o)):o(c,u)},yt=function(t,o,r,u){const c=u(...t);return n(r)||n(c)?e([r,c]).then(Q(o)):o(r,c)},dt=o=>function(...r){const c=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof c;return i&&s?0==r.length?ht(at,u,o,f,c):t(r)?e(r).then(g(at,u,o,f,c)):at(r,o,f,c):i?0==r.length?ht(pt,u,o,f,c):t(r)?e(r).then(g(pt,u,o,f,c)):pt(r,o,f,c):s?0==r.length?ht(yt,u,o,f,c):t(r)?e(r).then(g(yt,u,o,f,c)):yt(r,o,f,c):n(f)||n(c)?e([f,c]).then(Q(o)):o(f,c)},gt=dt((function(n,t){return n==t})),wt=dt(((n,t)=>n>t)),vt=dt(((n,t)=>n<t)),bt=dt(((n,t)=>n>=t)),jt=dt(((n,t)=>n<=t)),xt=/[.|[|\]]+/,St=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],o="]"==n[t];return e&&o?n.slice(1,t).split(xt):e?n.slice(1).split(xt):o?n.slice(0,t).split(xt):n.split(xt)}),500),Mt=n=>y(n)?n:"string"==typeof n?St(n):[n],mt=function(n,t){const e=Mt(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},Ot=function(n,t,e){const o=null==n?void 0:mt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},At=function(n,t,e){if(!(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(n))return n;const o=Mt(e),r=o.length,u=r-1,c={...n};let f=c,i=-1;for(;++i<r;){const n=o[i];if(i==u)f[n]=t;else{const t=f[n],e=y(t)?t.slice():{...t};f[n]=e,f=e}}return c},zt=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(At,t,u,e)):At(t,r,e)}return n(o)?o.then(l(At,t,u,e)):At(t,o,e)},Et=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=mt(n,e);null!=u&&(o=At(o,u,e))}return o},It=function(n,t){if(null==n)return;const e=Mt(t),o=e.length-1;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;const c=e[r];null!=u&&c in u&&delete u[c]},Dt=function(n){const t={};for(const e in n){const o=n[e];y(o)?t[e]=Pt(o):null!=o&&o.constructor==Object?t[e]=Dt(o):t[e]=o}return t},Pt=function(n){const t=n.length,e=[];let o=-1;for(;++o<t;){const t=n[o];y(t)?e[o]=Pt(t):null!=t&&t.constructor==Object?e[o]=Dt(t):e[o]=t}return e},Tt=function(n,t){const e=t.length,o=y(r=n)?Pt(r):null==r?r:r.constructor==Object?Dt(r):r;var r;let u=-1;for(;++u<e;)It(o,t[u]);return o},Bt=(n,...t)=>N(n.length,n,t);Bt.arity=function(n,t,...e){return N(n,t,e)};return{pipe:function(...n){const f=n.pop().reduce(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},compose:function(...n){const f=n.pop().reduceRight(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},tap:p,forEach:Nn,switchCase:(...n)=>{const o=n.pop();return E(o)?D(o,-2):0==n.length?(r=z,f=u,i=-2,(c=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,f,i):f==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,c,i):((n,t,e)=>function(...o){return n(t,e,o)})(r,c,f)):t(n)?e(n).then(l(z,o,u,-2)):z(o,n,-2);var r,c,f,i},tryCatch:function(...n){if(n.length>2){const o=n.pop(),r=n.pop();return t(n)?e(n).then(l(O,r,o,u)):O(r,o,n)}const o=n[0],r=n[1];return function(...n){return O(o,r,n)}},all:x,assign:function(t,e){return null==e?c(M,u,t):n(t)?t.then(c(M,u,e)):M(t,e)},get:function(t,e,o){return"string"==typeof t||"number"==typeof t||y(t)?l(Ot,u,t,e):n(t)?t.then(l(Ot,u,e,o)):Ot(t,e,o)},set:function(t,e,o){return null==o?l(zt,u,t,e):n(t)?t.then(l(zt,u,e,o)):zt(t,e,o)},pick:function(t,e){return null==e?c(Et,u,t):n(t)?t.then(c(Et,u,e)):Et(t,e)},omit:function(t,e){return null==e?c(Tt,u,t):n(t)?t.then(c(Tt,u,e)):Tt(t,e)},map:Y,filter:function(n,t){return"function"==typeof n?c(ln,u,n):ln(n,t)},flatMap:(t,e)=>"function"==typeof t?c(Gn,u,t):n(t)?t.then(c(Gn,u,e)):Gn(t,e),reduce:function(...t){return"function"==typeof t[0]?l(vn,u,t[0],t[1]):n(t[0])?t[0].then(l(vn,u,t[1],t[2])):vn(t[0],t[1],t[2])},transform:function(...t){return"function"==typeof t[0]?l(Pn,u,t[0],t[1]):n(t[0])?t[0].then(l(Pn,u,t[1],t[2])):Pn(t[0],t[1],t[2])},and:function(...n){const o=n.pop();return E(o)?ot(o,-1):0==n.length?h(ut,u,o):t(n)?e(n).then(c(ut,u,o)):ut(n,o)},or:function(...n){const o=n.pop();return E(o)?ct(o,-1):0==n.length?h(it,u,o):t(n)?e(n).then(c(it,u,o)):it(n,o)},not:function(...n){const o=n.pop();return"function"==typeof o?0==n.length?h(lt,u,o):t(n)?e(n).then(c(lt,u,o)):lt(n,o):!o},some:function(t,e){return"function"==typeof t?c(Zn,u,t):n(t)?t.then(c(Zn,u,e)):Zn(t,e)},every:function(t,e){return"function"==typeof t?c(et,u,t):n(t)?t.then(c(et,u,e)):et(t,e)},eq:gt,gt:wt,lt:vt,gte:bt,lte:jt,thunkify:(n,...o)=>function(){return t(o)?e(o).then(c(r,n,u)):n(...o)},always:f,curry:Bt,__:u}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.rubico=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1},e=Promise.all.bind(Promise),o=(t,e)=>function(...o){const r=t(...o);return n(r)?r.then(e):e(r)},r=(n,t)=>n(...t),u=Symbol.for("placeholder"),c=function(n,t,e){return t==u?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},f=n=>function(){return n},i=(n,t)=>function(){return n(...t)},s=(n,t,e)=>n?t():e(),l=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},h=function(n,t,e){return t==u?((n,t)=>function(...e){return n(e,t)})(n,e):((n,t)=>function(...e){return n(t,e)})(n,t)},a=function(t,e){const o=t[0],r=e(...t);return n(r)?r.then(f(o)):o},p=function(...n){const t=n.pop();return 0==n.length?h(a,u,t):a(n,t)};p.if=(t,e)=>function(...o){const r=t(...o);if(n(r))return r.then(l(s,u,i(p(e),o),f(o[0])));if(r){const t=e(...o);if(n(t))return t.then(f(o[0]))}return o[0]};const y=Array.isArray,d=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=t[c](...o);n(e)&&(f=!0),u[c]=e}return f?e(u):u},g=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,e,o)},w=function(n,t,e){return n[t]=e,n},v=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=t[r](...e);o[r]=n(u)?await u:u}return o},x=function(t,e){const r=t.length,c=[];let f=-1;for(;++f<r;){const r=t[f](...e);if(n(r))return r.then(o(l(w,c,f,u),g(v,t,e,u,f)));c[f]=r}return c},b=function(t,o){const r={},c=[];for(const e in t){const f=t[e](...o);n(f)?c.push(f.then(l(w,r,e,u))):r[e]=f}return 0==c.length?r:e(c).then(f(r))},j=function(...n){const o=n.pop();return 0==n.length?y(o)?h(d,o,u):h(b,o,u):t(n)?y(o)?e(n).then(c(d,o,u)):e(n).then(c(b,o,u)):y(o)?d(o,n):b(o,n)};j.series=function(...n){const o=n.pop();return 0==n.length?h(x,o,u):t(n)?e(n).then(c(x,o,u)):x(o,n)};const S=Object.assign,M=function(t,e){const o=b(e,[t]);return n(o)?o.then(l(S,{},t,u)):{...t,...o}},O=function(n,t,e){return n(t,...e)},m=function(t,e,o){try{const r=t(...o);return n(r)?r.catch(l(O,e,u,o)):r}catch(n){return e(n,...o)}},A=(n,t,e,o)=>function(){return n(t,e,o)},E=function(t,e,o){const r=t.length-1;for(;(o+=2)<r;){const r=t[o],c=t[o+1],h="function"==typeof r?r(...e):r;if(n(h))return h.then(l(s,u,"function"==typeof c?i(c,e):f(c),A(E,t,e,o)));if(h)return"function"==typeof c?c(...e):c}if(o==t.length)return;const c=t[r];return"function"==typeof c?c(...e):c},z=function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0},I=(n,t,e)=>function(){return n(t,e)},T=function(t,e){const o=t.length,r=o-1;for(;(e+=2)<r;){const o=t[e],r=t[e+1];if(n(o))return o.then(l(s,u,f(r),I(T,t,e)));if(o)return r}if(e!=o)return t[e]},D=Symbol.iterator,P=(n,t)=>({toString:()=>"[object MappingIterator]",[D](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),B=n=>({value:n,done:!1}),$=Symbol.asyncIterator,k=(t,e)=>({[$](){return this},async next(){const o=await t.next();if(o.done)return o;const r=e(o.value);return n(r)?r.then(B):{value:r,done:!1}}}),C=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=o(t[c],c,t);n(e)&&(f=!0),u[c]=e}return f?e(u):u},_=(n,t,e)=>n[t](e),q=function(t,o){const r=new Set,c=[];for(const e of t){const f=o(e,e,t);n(f)?c.push(f.then(l(_,r,"add",u))):r.add(f)}return 0==c.length?r:e(c).then(f(r))},F=(n,t,e,o)=>n[t](e,o),R=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const c=t[u];n(c)?(r+=1,c.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=c}0==r&&e(o)})(t)),V=function(t,e){const o={};let r=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(r=!0),o[u]=c}return r?R(o):o},G=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=e(t[r],r);o[r]=n(u)?await u:u}return o},H=function(t,e){const r=t.length,c=Array(r);let f=-1;for(;++f<r;){const r=e(t[f],f);if(n(r))return r.then(o(l(w,c,f,u),g(G,t,e,u,f)));c[f]=r}return c},J=(n,t,e,o,r)=>function(){return n(t,e,o,r)},K=async function(t,e,o,r){for(const u in t){if(u in r)continue;let c=e(t[u]);n(c)&&(c=await c),o[u]=c}return o},L=function(n,t){return n.add(t),n},N=async function(t,e,o){let r=t.next();for(;!r.done;){let u=e(r.value);n(u)&&(u=await u),o.add(u),r=t.next()}return o},Q=function(n,t,e){return n.set(t,e)},U=async function(t,e,o){let r=t.next();for(;!r.done;){let u=e(r.value[1]);n(u)&&(u=await u),o.set(r.value[0],u),r=t.next()}return o},W=n=>function(...t){return n(...t),t[0]},X=Promise.race.bind(Promise),Y=async function(t,o,r,u,c,f){const i=t.length;for(;++c<i;){f.size>=r&&await X(f);const e=o(t[c]);if(n(e)){const n=e.then(W((()=>f.delete(n))));f.add(n),u[c]=n}else u[c]=e}return e(u)},Z=(n,t,e)=>function(...o){const r=e.length,c=o.length,f=[];let i=-1,s=-1,l=0;for(;++i<r;){const r=e[i];if(r==u&&(s+=1)<c){const n=o[s];n==u&&(l+=1),f.push(n)}else f.push(r);if(f.length==n)return 0==l?t(...f):nn(n,t,f)}for(;++s<c;){const e=o[s];if(e==u&&(l+=1),f.push(e),f.length==n)return 0==l?t(...f):nn(n,t,f)}return nn(n,t,f)},nn=function(n,t,e){const o=e.length;if(o<n)return Z(n,t,e);let r=-1;for(;++r<o;){if(e[r]==u)return Z(n,t,e)}return t(...e)},tn=n=>function([t,e]){return n(t,e)},en=function(t,o){const r=new Map,u=[];return t.forEach(((t,e,o)=>function(r,u){const c=t([u,r]);n(c)?o.push(c.then(tn(nn(3,Q,[e])))):e.set(c[0],c[1])})(o,r,u)),0==u.length?r:e(u).then(f(r))},on=function(t,o){return y(t)?C(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 o=C(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?q(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(g(F,r,"set",e,u))):r.set(e,i)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t[D]?P(t[D](),o):"function"==typeof t[$]?k(t[$](),o):t.constructor==Object?V(t,o):o(t)},rn=function(t,e){return"function"==typeof t?c(on,u,t):n(t)?t.then(c(on,u,e)):on(t,e)},un=(t,o)=>{if(null==t)throw new TypeError("value is not an Object or Map");if(t.constructor==Object)return function(t,o){const r={},u=[];for(const e in t){const c=o([e,t[e]]);n(c)?u.push(c.then(tn(nn(3,w,[r])))):r[c[0]]=c[1]}return 0==u.length?r:e(u).then(f(r))}(t,o);if(t.constructor==Map)return en(t,o);throw new TypeError("value is not an Object or Map")};rn.entries=function(t,e){return"function"==typeof t?c(un,u,t):n(t)?t.then(c(un,u,e)):un(t,e)};const cn=function(t,e){if(y(t))return H(t,e);if(null==t)throw new TypeError(`invalid collection ${t}`);if("string"==typeof t||t.constructor==String)return function(t,e){const o=H(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,e);if(t.constructor==Set)return function(t,e){const r=new Set,f=t[D]();let i=f.next();for(;!i.done;){const t=e(i.value);if(n(t))return t.then(o(c(L,r,u),A(N,f,e,r)));r.add(t),i=f.next()}return r}(t,e);if(t.constructor==Map)return function(t,e){const r=new Map,c=t[D]();let f=c.next();for(;!f.done;){const t=f.value[0],i=e(f.value[1]);if(n(i))return i.then(o(l(Q,r,t,u),A(U,c,e,r)));r.set(t,i),f=c.next()}return r}(t,e);if(t.constructor==Object)return function(t,e){const r={},c={};for(const f in t){c[f]=!0;const i=e(t[f],f,t);if(n(i))return i.then(o(l(w,r,f,u),J(K,t,e,r,c)))}return r}(t,e);throw new TypeError(`invalid collection ${t}`)};rn.series=function(t,e){return"function"==typeof t?c(cn,u,t):n(t)?t.then(c(cn,u,e)):cn(t,e)},rn.pool=(t,e)=>function(o){if(y(o))return function(t,e,o){const r=t.length,u=Array(r);let c=-1;for(;++c<r;){const r=e(t[c]);if(n(r)){const n=new Set,f=r.then(W((()=>n.delete(f))));return n.add(f),u[c]=f,Y(t,e,o,u,c,n)}u[c]=r}return u}(o,e,t);throw new TypeError(`${o} is not an Array`)};const fn=(n,t)=>({[D](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),sn=(t,e)=>({isAsyncIteratorDone:!1,[$](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:o,done:r}=await t.next();if(r)this.isAsyncIteratorDone=!0;else{const t=e(o);if(n(t)?await t:t)return{value:o,done:!1}}}return{value:void 0,done:!0}}}),ln=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},hn=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},an=function(t,o){const r=t.length,c=[];let f=-1,i=-1;for(;++f<r;){const r=t[f],s=o(r,f,t);if(n(s))return e(ln([s],t,o,f)).then(g(hn,t,c,f-1,u));s&&(c[++i]=r)}return c},pn=(n,t)=>function(){return n(t)},yn=function(){},dn=function(n,t,e,o){o&&(n[t]=e)},gn=function(t,o){return y(t)?an(t,o):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=an(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?function(t,o){const r=new Set,c=r.add.bind(r),i=[];for(const e of t){const f=o(e,e,t);n(f)?i.push(f.then(l(s,u,pn(c,e),yn))):f&&r.add(e)}return 0==i.length?r:e(i).then(f(r))}(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(l(s,u,J(F,r,"set",e,f),yn))):i&&r.set(e,f)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t.filter?t.filter(o):"function"==typeof t[D]?fn(t[D](),o):"function"==typeof t[$]?sn(t[$](),o):t.constructor==Object?function(t,o){const r={},c=[];for(const e in t){const f=t[e],i=o(f,e,t);n(i)?c.push(i.then(g(dn,r,e,t[e],u))):i&&(r[e]=f)}return 0==c.length?r:e(c).then(f(r))}(t,o):t},wn=Object.values,vn=(Object.prototype.toString,async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o}),xn=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},bn=Object.keys,jn=async function(t,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,t[c],c,t),n(o)&&(o=await o)}return o},Sn=async function(t,e,o,r){for(const[u,c]of r)o=e(o,c,u,t),n(o)&&(o=await o);return o},Mn=function(t,e,o){return y(t)?function(t,e,o){const r=t.length;let c=-1;for(void 0===o&&(o=t[++c]);++c<r;)if(o=e(o,t[c],c,t),n(o))return o.then(g(xn,t,e,u,c));return o}(t,e,o):null==t?void 0===o?c(e,t,u):e(o,t):t.constructor==Map?function(t,e,o){const r=t.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of r)if(o=e(o,f,c,t),n(o))return o.then(g(Sn,t,e,u,r));return o}(t,e,o):"function"==typeof t[D]?function(t,e,o){let r=t.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=t.next());!r.done;){if(o=e(o,r.value),n(o))return o.then(l(vn,t,e,u));r=t.next()}return o}(t[D](),e,o):"function"==typeof t[$]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(t[$](),e,o):"function"==typeof t.reduce?t.reduce(e,o):"function"==typeof t.chain?t.chain(c(e,o,u)):"function"==typeof t.flatMap?t.flatMap(c(e,o,u)):t.constructor==Object?function(t,e,o){const r=bn(t),c=r.length;let f=-1;for(void 0===o&&(o=t[r[++f]]);++f<c;){const c=r[f];if(o=e(o,t[c],c,t),n(o))return o.then((i=jn,l=e,h=u,a=r,p=f,(s=t)==u?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,h,a,p):l==u?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,h,a,p):h==u?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,a,p):a==u?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,h,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,h,a)))}var i,s,l,h,a,p;return o}(t,e,o):void 0===o?c(e,t,u):e(o,t)},On=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Mn,t,e,u)):Mn(t,e,r)}return n(o)?o.then(l(Mn,t,e,u)):Mn(t,e,o)},mn=ArrayBuffer.isView,An=function(n,t){return y(t)||mn(t)?function(n,t){const e=n.length,o=t.length;let r=-1;for(;++r<o;)n[e+r]=t[r];return n}(n,t):(n.push(t),n)},En="function"==typeof Buffer,zn=En?Buffer.alloc:yn,In=function(n,t){const e=n.length,o=En&&n.constructor==Buffer?zn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},Tn=function(n,t){return y(t)||mn(t)?In(n,t):In(n,[t])},Dn=(n,t)=>new Promise(((n,t)=>function(e,o){t.on("data",(n=>function(t,e,o){return n.write(t,e,o),n})(n)),t.on("end",pn(e,n)),t.on("error",o)})(n,t)),Pn=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?Dn(n,t):(n.write(t),n);var e},Bn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},$n=function(n,t){return n.concat(t)},kn=function(t,e,o){const r=Mn(t,e(yn),null);return n(r)?r.then(f(o)):o},Cn=function(t,e,o){if(y(o))return Mn(t,e(An),o);if(mn(o)){const r=Mn(t,e(An),[]);return n(r)?r.then(c(Tn,o,u)):Tn(o,r)}if(null==o)return kn(t,e,o);const r=o.constructor;if("string"==typeof o||r==String){const r=Mn(t,e(An),[o]);return n(r)?r.then(l(_,u,"join","")):r.join("")}return"function"==typeof o.concat?Mn(t,e($n),o):"function"==typeof o.write?Mn(t,e(Pn),o):r==Set?Mn(t,e(Bn),o):r==Object?Mn(t,e(S),o):kn(t,e,o)},_n=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Cn,t,e,u)):Cn(t,e,r)}return n(o)?o.then(l(Cn,t,e,u)):Cn(t,e,o)},qn=function(n,t){return n.push(t),n},Fn=n=>new Promise((t=>{setTimeout(t,n)})),Rn=(n,t)=>t,Vn=n=>n,Gn=(n,t)=>function(...e){return t(n(...e))},Hn=async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))},Jn=function(t){const o=t.length,r=[],i=[];let s=-1;for(;++s<o;){const e=t[s];if(y(e)){const n=e.length;let t=-1;for(;++t<n;)i.push(e[t])}else if(null==e)i.push(e);else if("function"==typeof e.then)r.push(e.then(c(qn,i,u)));else if("function"==typeof e[D])for(const n of e)i.push(n);else if("function"==typeof e[$])r.push(Hn(e[$](),c(qn,i,u)));else if("function"==typeof e.chain){const t=e.chain(Vn);n(t)?r.push(t.then(c(qn,i,u))):i.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Vn);n(t)?r.push(t.then(c(qn,i,u))):i.push(t)}else if("function"==typeof e.reduce){const t=e.reduce(Gn(Rn,c(qn,i,u)),null);n(t)&&r.push(t)}else if(e.constructor==Object)for(const n in e)i.push(e[n]);else i.push(e)}return 0==r.length?i:e(r).then(f(i))},Kn=function(t){const o=[],r={},f=c(S,r,u),i=Gn(Rn,f);for(const e in t){const u=t[e];if(null!=u)if("function"==typeof u[D])for(const n of u)S(r,n);else if("function"==typeof u[$])o.push(Hn(u[$](),f));else if("function"==typeof u.chain){const t=u.chain(Vn);n(t)?o.push(t.then(f)):S(r,t)}else if("function"==typeof u.flatMap){const t=u.flatMap(Vn);n(t)?o.push(t.then(f)):f(t)}else if("function"==typeof u.reduce){const t=u.reduce(i,null);n(t)&&o.push(t)}else S(r,u)}return 0==o.length?r:e(o).then((()=>r))},Ln=function(t){t.size;const o=[],r=new Set,c=(n,t)=>r.add(t),f=l(_,r,"add",u);for(const e of t)if(y(e)){const n=e.length;let t=-1;for(;++t<n;)r.add(e[t])}else if(null==e)r.add(e);else if("function"==typeof e[D])for(const n of e)r.add(n);else if("function"==typeof e[$])o.push(Hn(e[$](),f));else if("function"==typeof e.chain){const t=e.chain(Vn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Vn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(c,null);n(t)&&o.push(t)}else if(e.constructor==Object)for(const n in e)r.add(e[n]);else r.add(e);return 0==o.length?r:e(o).then((()=>r))},Nn=o(Jn,c(((n,t)=>n.join(t)),u,"")),Qn=function(t,e){if(y(t))return function(t,e){const o=C(t,e);return n(o)?o.then(Jn):Jn(o)}(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return D in t?function(n,t){let e=[],o=0;return{[D](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=Mn(t(r.value),qn,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(t,e):function(t,e){const o=[],r=new Set;return{isAsyncIteratorDone:!1,[$](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||o.length>0||r.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:f}=await t.next();if(f)this.isAsyncIteratorDone=f;else{const t=e(c);if(n(t)){const n=t.then(l(Mn,u,qn,o)).then((()=>r.delete(n)));r.add(n)}else{const e=Mn(t,qn,o);if(n(e)){const n=e.then((()=>r.delete(n)));r.add(n)}}}}if(o.length>0)return{value:o.shift(),done:!1};r.size>0&&await X([Fn(1e3),...r])}return{value:void 0,done:!0}}}}(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const o=t.constructor;return o==Object?function(t,e){const o=V(t,e);return n(o)?o.then(Kn):Kn(o)}(t,e):o==Set?function(t,e){const o=q(t,e);return n(o)?o.then(Ln):Ln(o)}(t,e):"string"==typeof t||o==String?function(t,e){const o=C(t,e);return n(o)?o.then(Nn):Nn(o)}(t,e):e(t)},Un=async function(t,e,o){const r=t.length;for(;++o<r;){const r=e(t[o]);n(r)&&await r}return t},Wn=async function(t,e,o){for(const r in t){if(r in o)continue;const u=e(t[r]);n(u)&&await u}return t},Xn=async function(t,e){let o=t.next();for(;!o.done;){const r=e(o.value);n(r)&&await r,o=t.next()}return t},Yn=function(t,o){return y(t)?function(t,o){const r=t.length,u=[];let c=-1;for(;++c<r;){const e=o(t[c]);n(e)&&u.push(e)}return 0==u.length?t:e(u).then(f(t))}(t,o):null==t?t:"function"==typeof t.forEach?t.forEach(o):"function"==typeof t[D]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))}(t[D](),o):"function"==typeof t[$]?Hn(t[$](),o):t.constructor==Object?function(t,o){const r=[];for(const e in t){const u=o(t[e]);n(u)&&r.push(u)}return 0==r.length?t:e(r).then(f(t))}(t,o):t},Zn=function(t,e){return"function"==typeof t?c(Yn,u,t):n(t)?t.then(c(Yn,u,e)):Yn(t,e)},nt=function(t,e){if(y(t))return function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return o.then(A(Un,t,e,r))}return t}(t,e);if(null==t)throw new TypeError(`invalid collection ${t}`);if("function"==typeof t[D])return function(t,e){let o=t.next();for(;!t.done;){const r=e(o.value);if(n(r))return r.then(I(Xn,t,e));o=t.next()}return t}(t[D](),e);if("function"==typeof t[$])return async function(t,e){for await(const o of t){const t=e(o);n(t)&&await t}return t}(t[$](),e);if(t.constructor==Object)return function(t,e){const o={};for(const r in t){o[r]=!0;const u=e(t[r]);if(n(u))return u.then(A(Wn,t,e,o))}return t}(t,e);throw new TypeError(`invalid collection ${t}`)};Zn.series=function(t,e){return"function"==typeof t?c(nt,u,t):n(t)?t.then(c(nt,u,e)):nt(t,e)};const tt=function(n){const t=n.then((n=>[n,t]));return t},et=async function(t,e,o,r){const u=t.length;for(;++o<u;){const u=e(t[o]);if(n(u))r.add(tt(u));else if(u)return!0}for(;r.size>0;){const[n,t]=await X(r);if(r.delete(t),n)return!0}return!1},ot=function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return et(t,e,r,new Set([tt(o)]));if(o)return!0}return!1},rt=async function(t,e,o,r=20){let u=t.next();for(n(u)&&(u=await u);!u.done;){if(o.size>=r){const[n,t]=await X(o);if(o.delete(t),n)return!0}const c=e(u.value);if(n(c))o.add(tt(c));else if(c)return!0;u=t.next(),n(u)&&(u=await u)}for(;o.size>0;){const[n,t]=await X(o);if(o.delete(t),n)return!0}return!1},ut=function(t,e){return y(t)?ot(t,e):null==t?e(t):"function"==typeof t[D]?function(t,e){for(const o of t){const r=e(o);if(n(r))return rt(t,e,new Set([tt(r)]));if(r)return!0}return!1}(t[D](),e):"function"==typeof t[$]?rt(t[$](),e,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!0===e?e:n(e)?e.then(c((n=>function(t,e){return!!t||n(e)})(t),u,o)):!!e||t(o)})(e),!1):t.constructor==Object?ot(wn(t),e):e(t)},ct=function(t,o){const r=t.length,c=[];let f=-1;for(;++f<r;){const e=o(t[f]);if(n(e))c.push(e);else if(!e)return!1}return 0==c.length||e(c).then(l(_,u,"every",Boolean))},ft=(n,t,e)=>!!t&&n(e),it=function(t,o){return y(t)?ct(t,o):null==t?o(t):"function"==typeof t[D]?function(t,o){const r=[];for(const e of t){const t=o(e);if(n(t))r.push(t);else if(!t)return!1}return 0==r.length||e(r).then(l(_,u,"every",Boolean))}(t[D](),o):"function"==typeof t[$]?async function(t,e,o,r=20){let u=await t.next();for(;!u.done;){if(o.size>=r){const[n,t]=await X(o);if(o.delete(t),!n)return!1}const c=e(u.value);if(n(c))o.add(tt(c));else if(!c)return!1;u=await t.next()}for(;o.size>0;){const[n,t]=await X(o);if(o.delete(t),!n)return!1}return!0}(t[$](),o,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!1!==e&&(n(e)?e.then(l(ft,t,u,o)):!!e&&t(o))})(o),!0):t.constructor==Object?ct(wn(t),o):o(t)},st=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,I(st,t,e),f(!1)));if(!o)return!1}return!0},lt=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),!r)return!1}return!0},ht=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,A(lt,t,e,r),f(!1)));if(!o)return!1}return!0},at=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,f(!0),I(at,t,e)));if(o)return!0}return!1},pt=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),r)return!0}return!1},yt=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,f(!0),A(pt,t,e,r)));if(o)return!0}return!1},dt=n=>!n,gt=function(t,e){const o=e(...t);return n(o)?o.then(dt):!o},wt=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(...r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(...r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(...r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(...r){return n(t,e,o,r)})(n,t,e,o)},vt=function(t,o,r,u){const c=r(...t),f=u(...t);return n(c)||n(f)?e([c,f]).then(tn(o)):o(c,f)},xt=function(t,o,r,u){const c=r(...t);return n(c)||n(u)?e([c,u]).then(tn(o)):o(c,u)},bt=function(t,o,r,u){const c=u(...t);return n(r)||n(c)?e([r,c]).then(tn(o)):o(r,c)},jt=o=>function(...r){const c=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof c;return i&&s?0==r.length?wt(vt,u,o,f,c):t(r)?e(r).then(g(vt,u,o,f,c)):vt(r,o,f,c):i?0==r.length?wt(xt,u,o,f,c):t(r)?e(r).then(g(xt,u,o,f,c)):xt(r,o,f,c):s?0==r.length?wt(bt,u,o,f,c):t(r)?e(r).then(g(bt,u,o,f,c)):bt(r,o,f,c):n(f)||n(c)?e([f,c]).then(tn(o)):o(f,c)},St=jt((function(n,t){return n==t})),Mt=jt(((n,t)=>n>t)),Ot=jt(((n,t)=>n<t)),mt=jt(((n,t)=>n>=t)),At=jt(((n,t)=>n<=t)),Et=/[.|[|\]]+/,zt=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],o="]"==n[t];return e&&o?n.slice(1,t).split(Et):e?n.slice(1).split(Et):o?n.slice(0,t).split(Et):n.split(Et)}),500),It=n=>y(n)?n:"string"==typeof n?zt(n):[n],Tt=function(n,t){const e=It(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},Dt=function(n,t,e){const o=null==n?void 0:Tt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},Pt=function(n,t,e){if(!(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(n))return n;const o=It(e),r=o.length,u=r-1,c={...n};let f=c,i=-1;for(;++i<r;){const n=o[i];if(i==u)f[n]=t;else{const t=f[n],e=y(t)?t.slice():{...t};f[n]=e,f=e}}return c},Bt=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Pt,t,u,e)):Pt(t,r,e)}return n(o)?o.then(l(Pt,t,u,e)):Pt(t,o,e)},$t=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=Tt(n,e);null!=u&&(o=Pt(o,u,e))}return o},kt=function(n,t){if(null==n)return;const e=It(t),o=e.length-1;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;const c=e[r];null!=u&&c in u&&delete u[c]},Ct=function(n){const t={};for(const e in n){const o=n[e];y(o)?t[e]=_t(o):null!=o&&o.constructor==Object?t[e]=Ct(o):t[e]=o}return t},_t=function(n){const t=n.length,e=[];let o=-1;for(;++o<t;){const t=n[o];y(t)?e[o]=_t(t):null!=t&&t.constructor==Object?e[o]=Ct(t):e[o]=t}return e},qt=function(n,t){const e=t.length,o=y(r=n)?_t(r):null==r?r:r.constructor==Object?Ct(r):r;var r;let u=-1;for(;++u<e;)kt(o,t[u]);return o},Ft=(n,...t)=>nn(n.length,n,t);Ft.arity=function(n,t,...e){return nn(n,t,e)};return{pipe:function(...n){const f=n.pop().reduce(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},compose:function(...n){const f=n.pop().reduceRight(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},tap:p,forEach:Zn,switchCase:(...n)=>{const o=n.pop();return z(o)?T(o,-2):0==n.length?(r=E,f=u,i=-2,(c=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,f,i):f==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,c,i):((n,t,e)=>function(...o){return n(t,e,o)})(r,c,f)):t(n)?e(n).then(l(E,o,u,-2)):E(o,n,-2);var r,c,f,i},tryCatch:function(...n){if(n.length>2){const o=n.pop(),r=n.pop();return t(n)?e(n).then(l(m,r,o,u)):m(r,o,n)}const o=n[0],r=n[1];return function(...n){return m(o,r,n)}},all:j,assign:function(t,e){return null==e?c(M,u,t):n(t)?t.then(c(M,u,e)):M(t,e)},get:function(t,e,o){return"string"==typeof t||"number"==typeof t||y(t)?l(Dt,u,t,e):n(t)?t.then(l(Dt,u,e,o)):Dt(t,e,o)},set:function(t,e,o){return null==o?l(Bt,u,t,e):n(t)?t.then(l(Bt,u,e,o)):Bt(t,e,o)},pick:function(t,e){return null==e?c($t,u,t):n(t)?t.then(c($t,u,e)):$t(t,e)},omit:function(t,e){return null==e?c(qt,u,t):n(t)?t.then(c(qt,u,e)):qt(t,e)},map:rn,filter:function(n,t){return"function"==typeof n?c(gn,u,n):gn(n,t)},flatMap:(t,e)=>"function"==typeof t?c(Qn,u,t):n(t)?t.then(c(Qn,u,e)):Qn(t,e),reduce:function(...t){return"function"==typeof t[0]?l(On,u,t[0],t[1]):n(t[0])?t[0].then(l(On,u,t[1],t[2])):On(t[0],t[1],t[2])},transform:function(...t){return"function"==typeof t[0]?l(_n,u,t[0],t[1]):n(t[0])?t[0].then(l(_n,u,t[1],t[2])):_n(t[0],t[1],t[2])},and:function(...n){const o=n.pop();return z(o)?st(o,-1):0==n.length?h(ht,u,o):t(n)?e(n).then(c(ht,u,o)):ht(n,o)},or:function(...n){const o=n.pop();return z(o)?at(o,-1):0==n.length?h(yt,u,o):t(n)?e(n).then(c(yt,u,o)):yt(n,o)},not:function(...n){const o=n.pop();return"function"==typeof o?0==n.length?h(gt,u,o):t(n)?e(n).then(c(gt,u,o)):gt(n,o):!o},some:function(t,e){return"function"==typeof t?c(ut,u,t):n(t)?t.then(c(ut,u,e)):ut(t,e)},every:function(t,e){return"function"==typeof t?c(it,u,t):n(t)?t.then(c(it,u,e)):it(t,e)},eq:St,gt:Mt,lt:Ot,gte:mt,lte:At,thunkify:(n,...o)=>function(){return t(o)?e(o).then(c(r,n,u)):n(...o)},always:f,curry:Ft,__:u}}());
package/dist/rubico.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -658,6 +658,135 @@ const arrayMapSeries = function (array, mapper) {
658
658
  return result
659
659
  }
660
660
 
661
+ const stringMapSeries = function (string, mapper) {
662
+ const result = arrayMapSeries(string, mapper)
663
+ return isPromise(result)
664
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
665
+ : result.join('')
666
+ }
667
+
668
+ const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
669
+ return func(arg0, arg1, arg2, arg3)
670
+ }
671
+
672
+ // _objectMapSeriesAsync(
673
+ // object Object,
674
+ // f function,
675
+ // result Object,
676
+ // doneKeys Object
677
+ // ) -> Promise<object>
678
+ const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
679
+ for (const key in object) {
680
+ if (key in doneKeys) {
681
+ continue
682
+ }
683
+ let resultItem = f(object[key])
684
+ if (isPromise(resultItem)) {
685
+ resultItem = await resultItem
686
+ }
687
+ result[key] = resultItem
688
+ }
689
+ return result
690
+ }
691
+
692
+ const objectMapSeries = function (object, f) {
693
+ const result = {}
694
+ const doneKeys = {}
695
+ for (const key in object) {
696
+ doneKeys[key] = true
697
+ const resultItem = f(object[key], key, object)
698
+ if (isPromise(resultItem)) {
699
+ return resultItem.then(funcConcat(
700
+ curry3(objectSet, result, key, __),
701
+ thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
702
+ ))
703
+ }
704
+ }
705
+ return result
706
+ }
707
+
708
+ const setAdd = function (set, value) {
709
+ set.add(value)
710
+ return set
711
+ }
712
+
713
+ // _setMapSeriesAsync(
714
+ // iterator Iterator,
715
+ // f function,
716
+ // result Set,
717
+ // ) -> Promise<Set>
718
+ const _setMapSeriesAsync = async function (iterator, f, result) {
719
+ let iteration = iterator.next()
720
+ while (!iteration.done) {
721
+ let resultItem = f(iteration.value)
722
+ if (isPromise(resultItem)) {
723
+ resultItem = await resultItem
724
+ }
725
+ result.add(resultItem)
726
+ iteration = iterator.next()
727
+ }
728
+ return result
729
+ }
730
+
731
+ const setMapSeries = function (set, f) {
732
+ const result = new Set()
733
+ const iterator = set[symbolIterator]()
734
+ let iteration = iterator.next()
735
+ while (!iteration.done) {
736
+ const resultItem = f(iteration.value)
737
+ if (isPromise(resultItem)) {
738
+ return resultItem.then(funcConcat(
739
+ curry2(setAdd, result, __),
740
+ thunkify3(_setMapSeriesAsync, iterator, f, result),
741
+ ))
742
+ }
743
+ result.add(resultItem)
744
+ iteration = iterator.next()
745
+ }
746
+ return result
747
+ }
748
+
749
+ const mapSet = function setting(source, key, value) {
750
+ return source.set(key, value)
751
+ }
752
+
753
+ // _mapMapSeriesAsync(
754
+ // iterator Iterator,
755
+ // f function,
756
+ // result Map,
757
+ // ) -> Promise<Map>
758
+ const _mapMapSeriesAsync = async function (iterator, f, result) {
759
+ let iteration = iterator.next()
760
+ while (!iteration.done) {
761
+ let resultItem = f(iteration.value[1])
762
+ if (isPromise(resultItem)) {
763
+ resultItem = await resultItem
764
+ }
765
+ result.set(iteration.value[0], resultItem)
766
+ iteration = iterator.next()
767
+ }
768
+ return result
769
+ }
770
+
771
+ const mapMapSeries = function (map, f) {
772
+ const result = new Map()
773
+ const iterator = map[symbolIterator]()
774
+ let iteration = iterator.next()
775
+ while (!iteration.done) {
776
+ const key = iteration.value[0]
777
+ const resultItem = f(iteration.value[1])
778
+ if (isPromise(resultItem)) {
779
+ return resultItem.then(funcConcat(
780
+ curry3(mapSet, result, key, __),
781
+ thunkify3(_mapMapSeriesAsync, iterator, f, result),
782
+ ))
783
+ }
784
+ result.set(key, resultItem)
785
+ iteration = iterator.next()
786
+ }
787
+ return result
788
+ }
789
+
661
790
  const tapSync = func => function tapping(...args) {
662
791
  func(...args)
663
792
  return args[0]
@@ -786,10 +915,6 @@ const objectMapEntries = function (object, mapper) {
786
915
  : promiseAll(promises).then(always(result))
787
916
  }
788
917
 
789
- const mapSet = function setting(source, key, value) {
790
- return source.set(key, value)
791
- }
792
-
793
918
  // (mapper function, result Map, promises Array<Promise>) => (key any, value any) => ()
794
919
  const mapMapEntriesForEachCallback = (
795
920
  mapper, result, promises,
@@ -878,11 +1003,36 @@ map.entries = function mapEntries(arg0, arg1) {
878
1003
  : _mapEntries(arg0, arg1)
879
1004
  }
880
1005
 
881
- map.series = mapper => function mappingInSeries(value) {
882
- if (isArray(value)) {
883
- return arrayMapSeries(value, mapper)
1006
+ const _mapSeries = function (collection, f) {
1007
+ if (isArray(collection)) {
1008
+ return arrayMapSeries(collection, f)
884
1009
  }
885
- throw new TypeError(`${value} is not an Array`)
1010
+ if (collection == null) {
1011
+ throw new TypeError(`invalid collection ${collection}`)
1012
+ }
1013
+
1014
+ if (typeof collection == 'string' || collection.constructor == String) {
1015
+ return stringMapSeries(collection, f)
1016
+ }
1017
+ if (collection.constructor == Set) {
1018
+ return setMapSeries(collection, f)
1019
+ }
1020
+ if (collection.constructor == Map) {
1021
+ return mapMapSeries(collection, f)
1022
+ }
1023
+ if (collection.constructor == Object) {
1024
+ return objectMapSeries(collection, f)
1025
+ }
1026
+ throw new TypeError(`invalid collection ${collection}`)
1027
+ }
1028
+
1029
+ map.series = function mapSeries(arg0, arg1) {
1030
+ if (typeof arg0 == 'function') {
1031
+ return curry2(_mapSeries, __, arg0)
1032
+ }
1033
+ return isPromise(arg0)
1034
+ ? arg0.then(curry2(_mapSeries, __, arg1))
1035
+ : _mapSeries(arg0, arg1)
886
1036
  }
887
1037
 
888
1038
  map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
@@ -1005,10 +1155,6 @@ const setFilter = function (value, predicate) {
1005
1155
  : promiseAll(promises).then(always(result))
1006
1156
  }
1007
1157
 
1008
- const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
1009
- return func(arg0, arg1, arg2, arg3)
1010
- }
1011
-
1012
1158
  const mapFilter = function (map, predicate) {
1013
1159
  const result = new Map(),
1014
1160
  promises = []
@@ -1923,11 +2069,11 @@ const arrayForEachSeries = function (array, callback) {
1923
2069
  // _objectForEachSeriesAsync(
1924
2070
  // object Object,
1925
2071
  // callback function,
1926
- // firstKey string
2072
+ // doneKeys Object,
1927
2073
  // ) -> Promise<object>
1928
- const _objectForEachSeriesAsync = async function (object, callback, firstKey) {
2074
+ const _objectForEachSeriesAsync = async function (object, callback, doneKeys) {
1929
2075
  for (const key in object) {
1930
- if (key == firstKey) {
2076
+ if (key in doneKeys) {
1931
2077
  continue
1932
2078
  }
1933
2079
  const operation = callback(object[key])
@@ -1939,11 +2085,13 @@ const _objectForEachSeriesAsync = async function (object, callback, firstKey) {
1939
2085
  }
1940
2086
 
1941
2087
  const objectForEachSeries = function (object, callback) {
2088
+ const doneKeys = {}
1942
2089
  for (const key in object) {
2090
+ doneKeys[key] = true
1943
2091
  const operation = callback(object[key])
1944
2092
  if (isPromise(operation)) {
1945
2093
  return operation
1946
- .then(thunkify3(_objectForEachSeriesAsync, object, callback, key))
2094
+ .then(thunkify3(_objectForEachSeriesAsync, object, callback, doneKeys))
1947
2095
  }
1948
2096
  }
1949
2097
  return object
@@ -2026,7 +2174,7 @@ const _forEachSeries = function (collection, callback) {
2026
2174
  return arrayForEachSeries(collection, callback)
2027
2175
  }
2028
2176
  if (collection == null) {
2029
- throw new Error(`invalid collection ${collection}`)
2177
+ throw new TypeError(`invalid collection ${collection}`)
2030
2178
  }
2031
2179
  if (typeof collection[symbolIterator] == 'function') {
2032
2180
  return iteratorForEachSeries(collection[symbolIterator](), callback)
@@ -2037,7 +2185,7 @@ const _forEachSeries = function (collection, callback) {
2037
2185
  if (collection.constructor == Object) {
2038
2186
  return objectForEachSeries(collection, callback)
2039
2187
  }
2040
- throw new Error(`invalid collection ${collection}`)
2188
+ throw new TypeError(`invalid collection ${collection}`)
2041
2189
  }
2042
2190
 
2043
2191
  forEach.series = function forEachSeries(arg0, arg1) {
package/dist/set.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.5.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.