rubico 2.5.0 → 2.6.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 (368) hide show
  1. package/_internal/arrayMapPool.js +11 -19
  2. package/_internal/mapMapPool.js +80 -0
  3. package/_internal/objectMapPool.js +77 -0
  4. package/_internal/objectMapSeries.js +1 -0
  5. package/_internal/setMapPool.js +79 -0
  6. package/_internal/stringMapPool.js +22 -0
  7. package/all.js +11 -1
  8. package/and.js +9 -0
  9. package/assign.js +14 -1
  10. package/compose.js +8 -0
  11. package/dist/Transducer.es.js +1 -1
  12. package/dist/Transducer.es.min.js +1 -1
  13. package/dist/Transducer.js +1 -1
  14. package/dist/Transducer.min.js +1 -1
  15. package/dist/Transducer.mjs +1 -1
  16. package/dist/__.es.js +1 -1
  17. package/dist/__.es.min.js +1 -1
  18. package/dist/__.js +1 -1
  19. package/dist/__.min.js +1 -1
  20. package/dist/__.mjs +1 -1
  21. package/dist/all.es.js +1 -1
  22. package/dist/all.es.min.js +1 -1
  23. package/dist/all.js +1 -1
  24. package/dist/all.min.js +1 -1
  25. package/dist/all.mjs +1 -1
  26. package/dist/always.es.js +1 -1
  27. package/dist/always.es.min.js +1 -1
  28. package/dist/always.js +1 -1
  29. package/dist/always.min.js +1 -1
  30. package/dist/always.mjs +1 -1
  31. package/dist/and.es.js +1 -1
  32. package/dist/and.es.min.js +1 -1
  33. package/dist/and.js +1 -1
  34. package/dist/and.min.js +1 -1
  35. package/dist/and.mjs +1 -1
  36. package/dist/assign.es.js +1 -1
  37. package/dist/assign.es.min.js +1 -1
  38. package/dist/assign.js +1 -1
  39. package/dist/assign.min.js +1 -1
  40. package/dist/assign.mjs +1 -1
  41. package/dist/compose.es.js +1 -1
  42. package/dist/compose.es.min.js +1 -1
  43. package/dist/compose.js +1 -1
  44. package/dist/compose.min.js +1 -1
  45. package/dist/compose.mjs +1 -1
  46. package/dist/curry.es.js +1 -1
  47. package/dist/curry.es.min.js +1 -1
  48. package/dist/curry.js +1 -1
  49. package/dist/curry.min.js +1 -1
  50. package/dist/curry.mjs +1 -1
  51. package/dist/eq.es.js +1 -1
  52. package/dist/eq.es.min.js +1 -1
  53. package/dist/eq.js +1 -1
  54. package/dist/eq.min.js +1 -1
  55. package/dist/eq.mjs +1 -1
  56. package/dist/every.es.js +1 -1
  57. package/dist/every.es.min.js +1 -1
  58. package/dist/every.js +1 -1
  59. package/dist/every.min.js +1 -1
  60. package/dist/every.mjs +1 -1
  61. package/dist/filter.es.js +1 -1
  62. package/dist/filter.es.min.js +1 -1
  63. package/dist/filter.js +1 -1
  64. package/dist/filter.min.js +1 -1
  65. package/dist/filter.mjs +1 -1
  66. package/dist/flatMap.es.js +1 -1
  67. package/dist/flatMap.es.min.js +1 -1
  68. package/dist/flatMap.js +1 -1
  69. package/dist/flatMap.min.js +1 -1
  70. package/dist/flatMap.mjs +1 -1
  71. package/dist/forEach.es.js +3 -2
  72. package/dist/forEach.es.min.js +2 -2
  73. package/dist/forEach.js +3 -2
  74. package/dist/forEach.min.js +2 -2
  75. package/dist/forEach.mjs +3 -2
  76. package/dist/get.es.js +1 -1
  77. package/dist/get.es.min.js +1 -1
  78. package/dist/get.js +1 -1
  79. package/dist/get.min.js +1 -1
  80. package/dist/get.mjs +1 -1
  81. package/dist/gt.es.js +1 -1
  82. package/dist/gt.es.min.js +1 -1
  83. package/dist/gt.js +1 -1
  84. package/dist/gt.min.js +1 -1
  85. package/dist/gt.mjs +1 -1
  86. package/dist/gte.es.js +1 -1
  87. package/dist/gte.es.min.js +1 -1
  88. package/dist/gte.js +1 -1
  89. package/dist/gte.min.js +1 -1
  90. package/dist/gte.mjs +1 -1
  91. package/dist/lt.es.js +1 -1
  92. package/dist/lt.es.min.js +1 -1
  93. package/dist/lt.js +1 -1
  94. package/dist/lt.min.js +1 -1
  95. package/dist/lt.mjs +1 -1
  96. package/dist/lte.es.js +1 -1
  97. package/dist/lte.es.min.js +1 -1
  98. package/dist/lte.js +1 -1
  99. package/dist/lte.min.js +1 -1
  100. package/dist/lte.mjs +1 -1
  101. package/dist/map.es.js +221 -44
  102. package/dist/map.es.min.js +2 -2
  103. package/dist/map.js +221 -44
  104. package/dist/map.min.js +2 -2
  105. package/dist/map.mjs +221 -44
  106. package/dist/not.es.js +1 -1
  107. package/dist/not.es.min.js +1 -1
  108. package/dist/not.js +1 -1
  109. package/dist/not.min.js +1 -1
  110. package/dist/not.mjs +1 -1
  111. package/dist/omit.es.js +1 -1
  112. package/dist/omit.es.min.js +1 -1
  113. package/dist/omit.js +1 -1
  114. package/dist/omit.min.js +1 -1
  115. package/dist/omit.mjs +1 -1
  116. package/dist/or.es.js +1 -1
  117. package/dist/or.es.min.js +1 -1
  118. package/dist/or.js +1 -1
  119. package/dist/or.min.js +1 -1
  120. package/dist/or.mjs +1 -1
  121. package/dist/pick.es.js +1 -1
  122. package/dist/pick.es.min.js +1 -1
  123. package/dist/pick.js +1 -1
  124. package/dist/pick.min.js +1 -1
  125. package/dist/pick.mjs +1 -1
  126. package/dist/pipe.es.js +1 -1
  127. package/dist/pipe.es.min.js +1 -1
  128. package/dist/pipe.js +1 -1
  129. package/dist/pipe.min.js +1 -1
  130. package/dist/pipe.mjs +1 -1
  131. package/dist/reduce.es.js +1 -1
  132. package/dist/reduce.es.min.js +1 -1
  133. package/dist/reduce.js +1 -1
  134. package/dist/reduce.min.js +1 -1
  135. package/dist/reduce.mjs +1 -1
  136. package/dist/rubico.es.js +197 -16
  137. package/dist/rubico.es.min.js +2 -2
  138. package/dist/rubico.global.js +197 -16
  139. package/dist/rubico.global.min.js +2 -2
  140. package/dist/rubico.js +197 -16
  141. package/dist/rubico.min.js +2 -2
  142. package/dist/rubico.mjs +197 -16
  143. package/dist/set.es.js +1 -1
  144. package/dist/set.es.min.js +1 -1
  145. package/dist/set.js +1 -1
  146. package/dist/set.min.js +1 -1
  147. package/dist/set.mjs +1 -1
  148. package/dist/some.es.js +1 -1
  149. package/dist/some.es.min.js +1 -1
  150. package/dist/some.js +1 -1
  151. package/dist/some.min.js +1 -1
  152. package/dist/some.mjs +1 -1
  153. package/dist/switchCase.es.js +1 -1
  154. package/dist/switchCase.es.min.js +1 -1
  155. package/dist/switchCase.js +1 -1
  156. package/dist/switchCase.min.js +1 -1
  157. package/dist/switchCase.mjs +1 -1
  158. package/dist/tap.es.js +38 -1
  159. package/dist/tap.es.min.js +2 -2
  160. package/dist/tap.js +38 -1
  161. package/dist/tap.min.js +2 -2
  162. package/dist/tap.mjs +38 -1
  163. package/dist/thunkify.es.js +1 -1
  164. package/dist/thunkify.es.min.js +1 -1
  165. package/dist/thunkify.js +1 -1
  166. package/dist/thunkify.min.js +1 -1
  167. package/dist/thunkify.mjs +1 -1
  168. package/dist/transform.es.js +1 -1
  169. package/dist/transform.es.min.js +1 -1
  170. package/dist/transform.js +1 -1
  171. package/dist/transform.min.js +1 -1
  172. package/dist/transform.mjs +1 -1
  173. package/dist/tryCatch.es.js +1 -1
  174. package/dist/tryCatch.es.min.js +1 -1
  175. package/dist/tryCatch.js +1 -1
  176. package/dist/tryCatch.min.js +1 -1
  177. package/dist/tryCatch.mjs +1 -1
  178. package/dist/x/append.es.js +1 -1
  179. package/dist/x/append.es.min.js +1 -1
  180. package/dist/x/append.js +1 -1
  181. package/dist/x/append.min.js +1 -1
  182. package/dist/x/append.mjs +1 -1
  183. package/dist/x/callProp.es.js +1 -1
  184. package/dist/x/callProp.es.min.js +1 -1
  185. package/dist/x/callProp.js +1 -1
  186. package/dist/x/callProp.min.js +1 -1
  187. package/dist/x/callProp.mjs +1 -1
  188. package/dist/x/defaultsDeep.es.js +1 -1
  189. package/dist/x/defaultsDeep.es.min.js +1 -1
  190. package/dist/x/defaultsDeep.js +1 -1
  191. package/dist/x/defaultsDeep.min.js +1 -1
  192. package/dist/x/defaultsDeep.mjs +1 -1
  193. package/dist/x/differenceWith.es.js +1 -1
  194. package/dist/x/differenceWith.es.min.js +1 -1
  195. package/dist/x/differenceWith.js +1 -1
  196. package/dist/x/differenceWith.min.js +1 -1
  197. package/dist/x/differenceWith.mjs +1 -1
  198. package/dist/x/filterOut.es.js +1 -1
  199. package/dist/x/filterOut.es.min.js +1 -1
  200. package/dist/x/filterOut.js +1 -1
  201. package/dist/x/filterOut.min.js +1 -1
  202. package/dist/x/filterOut.mjs +1 -1
  203. package/dist/x/find.es.js +1 -1
  204. package/dist/x/find.es.min.js +1 -1
  205. package/dist/x/find.js +1 -1
  206. package/dist/x/find.min.js +1 -1
  207. package/dist/x/find.mjs +1 -1
  208. package/dist/x/findIndex.es.js +1 -1
  209. package/dist/x/findIndex.es.min.js +1 -1
  210. package/dist/x/findIndex.js +1 -1
  211. package/dist/x/findIndex.min.js +1 -1
  212. package/dist/x/findIndex.mjs +1 -1
  213. package/dist/x/first.es.js +1 -1
  214. package/dist/x/first.es.min.js +1 -1
  215. package/dist/x/first.js +1 -1
  216. package/dist/x/first.min.js +1 -1
  217. package/dist/x/first.mjs +1 -1
  218. package/dist/x/flatten.es.js +1 -1
  219. package/dist/x/flatten.es.min.js +1 -1
  220. package/dist/x/flatten.js +1 -1
  221. package/dist/x/flatten.min.js +1 -1
  222. package/dist/x/flatten.mjs +1 -1
  223. package/dist/x/groupBy.es.js +1 -1
  224. package/dist/x/groupBy.es.min.js +1 -1
  225. package/dist/x/groupBy.js +1 -1
  226. package/dist/x/groupBy.min.js +1 -1
  227. package/dist/x/groupBy.mjs +1 -1
  228. package/dist/x/has.es.js +1 -1
  229. package/dist/x/has.es.min.js +1 -1
  230. package/dist/x/has.js +1 -1
  231. package/dist/x/has.min.js +1 -1
  232. package/dist/x/has.mjs +1 -1
  233. package/dist/x/identity.es.js +1 -1
  234. package/dist/x/identity.es.min.js +1 -1
  235. package/dist/x/identity.js +1 -1
  236. package/dist/x/identity.min.js +1 -1
  237. package/dist/x/identity.mjs +1 -1
  238. package/dist/x/includes.es.js +1 -1
  239. package/dist/x/includes.es.min.js +1 -1
  240. package/dist/x/includes.js +1 -1
  241. package/dist/x/includes.min.js +1 -1
  242. package/dist/x/includes.mjs +1 -1
  243. package/dist/x/isDeepEqual.es.js +1 -1
  244. package/dist/x/isDeepEqual.es.min.js +1 -1
  245. package/dist/x/isDeepEqual.js +1 -1
  246. package/dist/x/isDeepEqual.min.js +1 -1
  247. package/dist/x/isDeepEqual.mjs +1 -1
  248. package/dist/x/isEmpty.es.js +1 -1
  249. package/dist/x/isEmpty.es.min.js +1 -1
  250. package/dist/x/isEmpty.js +1 -1
  251. package/dist/x/isEmpty.min.js +1 -1
  252. package/dist/x/isEmpty.mjs +1 -1
  253. package/dist/x/isEqual.es.js +1 -1
  254. package/dist/x/isEqual.es.min.js +1 -1
  255. package/dist/x/isEqual.js +1 -1
  256. package/dist/x/isEqual.min.js +1 -1
  257. package/dist/x/isEqual.mjs +1 -1
  258. package/dist/x/isFunction.es.js +1 -1
  259. package/dist/x/isFunction.es.min.js +1 -1
  260. package/dist/x/isFunction.js +1 -1
  261. package/dist/x/isFunction.min.js +1 -1
  262. package/dist/x/isFunction.mjs +1 -1
  263. package/dist/x/isIn.es.js +1 -1
  264. package/dist/x/isIn.es.min.js +1 -1
  265. package/dist/x/isIn.js +1 -1
  266. package/dist/x/isIn.min.js +1 -1
  267. package/dist/x/isIn.mjs +1 -1
  268. package/dist/x/isObject.es.js +1 -1
  269. package/dist/x/isObject.es.min.js +1 -1
  270. package/dist/x/isObject.js +1 -1
  271. package/dist/x/isObject.min.js +1 -1
  272. package/dist/x/isObject.mjs +1 -1
  273. package/dist/x/isString.es.js +1 -1
  274. package/dist/x/isString.es.min.js +1 -1
  275. package/dist/x/isString.js +1 -1
  276. package/dist/x/isString.min.js +1 -1
  277. package/dist/x/isString.mjs +1 -1
  278. package/dist/x/keys.es.js +1 -1
  279. package/dist/x/keys.es.min.js +1 -1
  280. package/dist/x/keys.js +1 -1
  281. package/dist/x/keys.min.js +1 -1
  282. package/dist/x/keys.mjs +1 -1
  283. package/dist/x/last.es.js +1 -1
  284. package/dist/x/last.es.min.js +1 -1
  285. package/dist/x/last.js +1 -1
  286. package/dist/x/last.min.js +1 -1
  287. package/dist/x/last.mjs +1 -1
  288. package/dist/x/maxBy.es.js +1 -1
  289. package/dist/x/maxBy.es.min.js +1 -1
  290. package/dist/x/maxBy.js +1 -1
  291. package/dist/x/maxBy.min.js +1 -1
  292. package/dist/x/maxBy.mjs +1 -1
  293. package/dist/x/noop.es.js +1 -1
  294. package/dist/x/noop.es.min.js +1 -1
  295. package/dist/x/noop.js +1 -1
  296. package/dist/x/noop.min.js +1 -1
  297. package/dist/x/noop.mjs +1 -1
  298. package/dist/x/pluck.es.js +221 -44
  299. package/dist/x/pluck.es.min.js +2 -2
  300. package/dist/x/pluck.js +221 -44
  301. package/dist/x/pluck.min.js +2 -2
  302. package/dist/x/pluck.mjs +221 -44
  303. package/dist/x/prepend.es.js +1 -1
  304. package/dist/x/prepend.es.min.js +1 -1
  305. package/dist/x/prepend.js +1 -1
  306. package/dist/x/prepend.min.js +1 -1
  307. package/dist/x/prepend.mjs +1 -1
  308. package/dist/x/size.es.js +1 -1
  309. package/dist/x/size.es.min.js +1 -1
  310. package/dist/x/size.js +1 -1
  311. package/dist/x/size.min.js +1 -1
  312. package/dist/x/size.mjs +1 -1
  313. package/dist/x/trace.es.js +38 -1
  314. package/dist/x/trace.es.min.js +2 -2
  315. package/dist/x/trace.js +38 -1
  316. package/dist/x/trace.min.js +2 -2
  317. package/dist/x/trace.mjs +38 -1
  318. package/dist/x/unionWith.es.js +1 -1
  319. package/dist/x/unionWith.es.min.js +1 -1
  320. package/dist/x/unionWith.js +1 -1
  321. package/dist/x/unionWith.min.js +1 -1
  322. package/dist/x/unionWith.mjs +1 -1
  323. package/dist/x/uniq.es.js +1 -1
  324. package/dist/x/uniq.es.min.js +1 -1
  325. package/dist/x/uniq.js +1 -1
  326. package/dist/x/uniq.min.js +1 -1
  327. package/dist/x/uniq.mjs +1 -1
  328. package/dist/x/unless.es.js +1 -1
  329. package/dist/x/unless.es.min.js +1 -1
  330. package/dist/x/unless.js +1 -1
  331. package/dist/x/unless.min.js +1 -1
  332. package/dist/x/unless.mjs +1 -1
  333. package/dist/x/values.es.js +1 -1
  334. package/dist/x/values.es.min.js +1 -1
  335. package/dist/x/values.js +1 -1
  336. package/dist/x/values.min.js +1 -1
  337. package/dist/x/values.mjs +1 -1
  338. package/dist/x/when.es.js +1 -1
  339. package/dist/x/when.es.min.js +1 -1
  340. package/dist/x/when.js +1 -1
  341. package/dist/x/when.min.js +1 -1
  342. package/dist/x/when.mjs +1 -1
  343. package/eq.js +6 -0
  344. package/es.js +197 -16
  345. package/every.js +6 -0
  346. package/filter.js +9 -0
  347. package/flatMap.js +7 -0
  348. package/forEach.js +20 -1
  349. package/get.js +6 -0
  350. package/gt.js +6 -0
  351. package/gte.js +6 -0
  352. package/index.js +197 -16
  353. package/lt.js +6 -0
  354. package/lte.js +6 -0
  355. package/map.js +118 -45
  356. package/not.js +8 -0
  357. package/omit.js +7 -0
  358. package/or.js +9 -0
  359. package/package.json +1 -1
  360. package/pick.js +7 -0
  361. package/pipe.js +8 -0
  362. package/reduce.js +8 -0
  363. package/set.js +6 -0
  364. package/some.js +6 -0
  365. package/switchCase.js +12 -0
  366. package/tap.js +11 -0
  367. package/transform.js +38 -10
  368. package/tryCatch.js +14 -0
package/dist/rubico.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.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.
@@ -164,6 +164,9 @@ const tap = function (...args) {
164
164
  if (args.length == 0) {
165
165
  return curryArgs2(_tap, __, func)
166
166
  }
167
+ if (areAnyValuesPromises(args)) {
168
+ return promiseAll(args).then(curry2(_tap, __, func))
169
+ }
167
170
  return _tap(args, func)
168
171
  }
169
172
 
@@ -707,6 +710,7 @@ const objectMapSeries = function (object, f) {
707
710
  thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
708
711
  ))
709
712
  }
713
+ result[key] = resultItem
710
714
  }
711
715
  return result
712
716
  }
@@ -801,15 +805,14 @@ const tapSync = func => function tapping(...args) {
801
805
  const promiseRace = Promise.race.bind(Promise)
802
806
 
803
807
  const arrayMapPoolAsync = async function (
804
- array, mapper, concurrencyLimit, result, index, promises,
808
+ array, f, concurrencyLimit, result, index, promises,
805
809
  ) {
806
810
  const arrayLength = array.length
807
811
  while (++index < arrayLength) {
808
812
  if (promises.size >= concurrencyLimit) {
809
813
  await promiseRace(promises)
810
814
  }
811
-
812
- const resultItem = mapper(array[index])
815
+ const resultItem = f(array[index])
813
816
  if (isPromise(resultItem)) {
814
817
  const selfDeletingPromise = resultItem.then(
815
818
  tapSync(() => promises.delete(selfDeletingPromise)))
@@ -822,13 +825,12 @@ const arrayMapPoolAsync = async function (
822
825
  return promiseAll(result)
823
826
  }
824
827
 
825
- const arrayMapPool = function (array, mapper, concurrentLimit) {
828
+ const arrayMapPool = function (array, concurrency, f) {
826
829
  const arrayLength = array.length,
827
830
  result = Array(arrayLength)
828
831
  let index = -1
829
832
  while (++index < arrayLength) {
830
-
831
- const resultItem = mapper(array[index])
833
+ const resultItem = f(array[index])
832
834
  if (isPromise(resultItem)) {
833
835
  const promises = new Set(),
834
836
  selfDeletingPromise = resultItem.then(
@@ -836,13 +838,167 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
836
838
  promises.add(selfDeletingPromise)
837
839
  result[index] = selfDeletingPromise
838
840
  return arrayMapPoolAsync(
839
- array, mapper, concurrentLimit, result, index, promises)
841
+ array, f, concurrency, result, index, promises)
840
842
  }
841
843
  result[index] = resultItem
842
844
  }
843
845
  return result
844
846
  }
845
847
 
848
+ const stringMapPool = function (s, concurrency, f) {
849
+ const result = arrayMapPool(s, concurrency, f)
850
+ return isPromise(result)
851
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
852
+ : result.join('')
853
+ }
854
+
855
+ const _setMapPoolAsync = async function (
856
+ s, iterator, concurrency, f, result, promises,
857
+ ) {
858
+ let iteration = iterator.next()
859
+ while (!iteration.done) {
860
+ if (promises.size >= concurrency) {
861
+ await promiseRace(promises)
862
+ }
863
+ const resultItem = f(iteration.value, iteration.value, s)
864
+ if (isPromise(resultItem)) {
865
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
866
+ promises.delete(selfDeletingPromise)
867
+ result.add(resolvedValue)
868
+ })
869
+ promises.add(selfDeletingPromise)
870
+ } else {
871
+ result.add(resultItem)
872
+ }
873
+ iteration = iterator.next()
874
+ }
875
+ if (promises.size > 0) {
876
+ await promiseAll(promises)
877
+ }
878
+ return result
879
+ }
880
+
881
+ const setMapPool = function (s, concurrency, f) {
882
+ const result = new Set()
883
+ const iterator = s[symbolIterator]()
884
+ let iteration = iterator.next()
885
+ while (!iteration.done) {
886
+ const resultItem = f(iteration.value, iteration.value, s)
887
+ if (isPromise(resultItem)) {
888
+ const promises = new Set()
889
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
890
+ promises.delete(selfDeletingPromise)
891
+ result.add(resolvedValue)
892
+ })
893
+ promises.add(selfDeletingPromise)
894
+ return _setMapPoolAsync(s, iterator, concurrency, f, result, promises)
895
+ }
896
+ result.add(resultItem)
897
+ iteration = iterator.next()
898
+ }
899
+ return result
900
+ }
901
+
902
+ const _mapMapPoolAsync = async function (
903
+ m, iterator, concurrency, f, result, promises,
904
+ ) {
905
+ let iteration = iterator.next()
906
+ while (!iteration.done) {
907
+ if (promises.size >= concurrency) {
908
+ await promiseRace(promises)
909
+ }
910
+ const key = iteration.value[0]
911
+ const resultItem = f(iteration.value[1], key, m)
912
+ if (isPromise(resultItem)) {
913
+ result.set(key, resultItem)
914
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
915
+ promises.delete(selfDeletingPromise)
916
+ result.set(key, resolvedValue)
917
+ })
918
+ promises.add(selfDeletingPromise)
919
+ } else {
920
+ result.set(key, resultItem)
921
+ }
922
+ iteration = iterator.next()
923
+ }
924
+ if (promises.size > 0) {
925
+ await promiseAll(promises)
926
+ }
927
+ return result
928
+ }
929
+
930
+ const mapMapPool = function (m, concurrency, f) {
931
+ const result = new Map()
932
+ const iterator = m[symbolIterator]()
933
+ let iteration = iterator.next()
934
+ while (!iteration.done) {
935
+ const key = iteration.value[0]
936
+ const resultItem = f(iteration.value[1], key, m)
937
+ if (isPromise(resultItem)) {
938
+ const promises = new Set()
939
+ result.set(key, resultItem)
940
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
941
+ promises.delete(selfDeletingPromise)
942
+ result.set(key, resolvedValue)
943
+ })
944
+ promises.add(selfDeletingPromise)
945
+ return _mapMapPoolAsync(m, iterator, concurrency, f, result, promises)
946
+ }
947
+ result.set(key, resultItem)
948
+ iteration = iterator.next()
949
+ }
950
+ return result
951
+ }
952
+
953
+ const _objectMapPoolAsync = async function (
954
+ o, concurrency, f, result, doneKeys, promises,
955
+ ) {
956
+ for (const key in o) {
957
+ if (key in doneKeys) {
958
+ continue
959
+ }
960
+ if (promises.size >= concurrency) {
961
+ await promiseRace(promises)
962
+ }
963
+ const resultItem = f(o[key], key, o)
964
+ if (isPromise(resultItem)) {
965
+ result[key] = resultItem
966
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
967
+ promises.delete(selfDeletingPromise)
968
+ result[key] = resolvedValue
969
+ })
970
+ promises.add(selfDeletingPromise)
971
+ } else {
972
+ result[key] = resultItem
973
+ }
974
+ }
975
+ if (promises.size > 0) {
976
+ await promiseAll(promises)
977
+ }
978
+ return result
979
+ }
980
+
981
+ const objectMapPool = function (o, concurrency, f) {
982
+ const result = {}
983
+ const doneKeys = {}
984
+ for (const key in o) {
985
+ doneKeys[key] = true
986
+ const resultItem = f(o[key], key, o)
987
+ if (isPromise(resultItem)) {
988
+ const promises = new Set()
989
+ result[key] = resultItem
990
+ const selfDeletingPromise = resultItem.then(resolvedValue => {
991
+ promises.delete(selfDeletingPromise)
992
+ result[key] = resolvedValue
993
+ })
994
+ promises.add(selfDeletingPromise)
995
+ return _objectMapPoolAsync(o, concurrency, f, result, doneKeys, promises)
996
+ }
997
+ result[key] = resultItem
998
+ }
999
+ return result
1000
+ }
1001
+
846
1002
  const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
847
1003
  const argsLength = args.length,
848
1004
  curriedArgsLength = curriedArgs.length,
@@ -978,7 +1134,7 @@ const _map = function (value, mapper) {
978
1134
  }
979
1135
 
980
1136
  const map = function (arg0, arg1) {
981
- if (typeof arg0 == 'function') {
1137
+ if (arg1 == null) {
982
1138
  return curry2(_map, __, arg0)
983
1139
  }
984
1140
  return isPromise(arg0)
@@ -1001,7 +1157,7 @@ const _mapEntries = (value, mapper) => {
1001
1157
  }
1002
1158
 
1003
1159
  map.entries = function mapEntries(arg0, arg1) {
1004
- if (typeof arg0 == 'function') {
1160
+ if (arg1 == null) {
1005
1161
  return curry2(_mapEntries, __, arg0)
1006
1162
  }
1007
1163
  return isPromise(arg0)
@@ -1033,7 +1189,7 @@ const _mapSeries = function (collection, f) {
1033
1189
  }
1034
1190
 
1035
1191
  map.series = function mapSeries(arg0, arg1) {
1036
- if (typeof arg0 == 'function') {
1192
+ if (arg1 == null) {
1037
1193
  return curry2(_mapSeries, __, arg0)
1038
1194
  }
1039
1195
  return isPromise(arg0)
@@ -1041,11 +1197,35 @@ map.series = function mapSeries(arg0, arg1) {
1041
1197
  : _mapSeries(arg0, arg1)
1042
1198
  }
1043
1199
 
1044
- map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
1045
- if (isArray(value)) {
1046
- return arrayMapPool(value, mapper, concurrencyLimit)
1200
+ const _mapPool = function (collection, concurrency, f) {
1201
+ if (isArray(collection)) {
1202
+ return arrayMapPool(collection, concurrency, f)
1203
+ }
1204
+ if (collection == null) {
1205
+ throw new TypeError(`invalid collection ${collection}`)
1047
1206
  }
1048
- throw new TypeError(`${value} is not an Array`)
1207
+ if (typeof collection == 'string' || collection.constructor == String) {
1208
+ return stringMapPool(collection, concurrency, f)
1209
+ }
1210
+ if (collection.constructor == Set) {
1211
+ return setMapPool(collection, concurrency, f)
1212
+ }
1213
+ if (collection.constructor == Map) {
1214
+ return mapMapPool(collection, concurrency, f)
1215
+ }
1216
+ if (collection.constructor == Object) {
1217
+ return objectMapPool(collection, concurrency, f)
1218
+ }
1219
+ throw new TypeError(`invalid collection ${collection}`)
1220
+ }
1221
+
1222
+ map.pool = function mapPool(arg0, arg1, arg2) {
1223
+ if (arg2 == null) {
1224
+ return curry3(_mapPool, __, arg0, arg1)
1225
+ }
1226
+ return isPromise(arg0)
1227
+ ? arg0.then(curry3(_mapPool, __, arg1, arg2))
1228
+ : _mapPool(arg0, arg1, arg2)
1049
1229
  }
1050
1230
 
1051
1231
  const FilteringIterator = (iterator, predicate) => ({
@@ -2152,7 +2332,8 @@ const _forEach = function (collection, callback) {
2152
2332
  return collection
2153
2333
  }
2154
2334
  if (typeof collection.forEach == 'function') {
2155
- return collection.forEach(callback)
2335
+ collection.forEach(callback)
2336
+ return collection
2156
2337
  }
2157
2338
  if (typeof collection[symbolIterator] == 'function') {
2158
2339
  return iteratorForEach(collection[symbolIterator](), callback)
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.5.0
2
+ * rubico v2.6.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},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}}());
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 o=n.pop();return 0==n.length?h(a,u,o):t(n)?e(n).then(c(a,u,o)):a(n,o)};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 d=Array.isArray,y=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},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))},b=function(...n){const o=n.pop();return 0==n.length?d(o)?h(y,o,u):h(j,o,u):t(n)?d(o)?e(n).then(c(y,o,u)):e(n).then(c(j,o,u)):d(o)?y(o,n):j(o,n)};b.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=j(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)}},z=(n,t,e,o)=>function(){return n(t,e,o)},A=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),z(A,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},T=(n,t,e)=>function(){return n(t,e)},I=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),T(I,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=function(t,e,o){const r=t.length,u=Array(r);let c=-1;for(;++c<r;){const r=o(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,o,e,u,c,n)}u[c]=r}return u},nn=async function(t,o,r,u,c,f){let i=o.next();for(;!i.done;){f.size>=r&&await X(f);const e=u(i.value,i.value,t);if(n(e)){const n=e.then((t=>{f.delete(n),c.add(t)}));f.add(n)}else c.add(e);i=o.next()}return f.size>0&&await e(f),c},tn=async function(t,o,r,u,c,f){let i=o.next();for(;!i.done;){f.size>=r&&await X(f);const e=i.value[0],s=u(i.value[1],e,t);if(n(s)){c.set(e,s);const n=s.then((t=>{f.delete(n),c.set(e,t)}));f.add(n)}else c.set(e,s);i=o.next()}return f.size>0&&await e(f),c},en=async function(t,o,r,u,c,f){for(const e in t){if(e in c)continue;f.size>=o&&await X(f);const i=r(t[e],e,t);if(n(i)){u[e]=i;const n=i.then((t=>{f.delete(n),u[e]=t}));f.add(n)}else u[e]=i}return f.size>0&&await e(f),u},on=(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):rn(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):rn(n,t,f)}return rn(n,t,f)},rn=function(n,t,e){const o=e.length;if(o<n)return on(n,t,e);let r=-1;for(;++r<o;){if(e[r]==u)return on(n,t,e)}return t(...e)},un=n=>function([t,e]){return n(t,e)},cn=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(un(rn(3,Q,[e])))):e.set(c[0],c[1])})(o,r,u)),0==u.length?r:e(u).then(f(r))},fn=function(t,o){return d(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)},sn=function(t,e){return null==e?c(fn,u,t):n(t)?t.then(c(fn,u,e)):fn(t,e)},ln=(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(un(rn(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 cn(t,o);throw new TypeError("value is not an Object or Map")};sn.entries=function(t,e){return null==e?c(ln,u,t):n(t)?t.then(c(ln,u,e)):ln(t,e)};const hn=function(t,e){if(d(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),z(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),z(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)));r[f]=i}return r}(t,e);throw new TypeError(`invalid collection ${t}`)};sn.series=function(t,e){return null==e?c(hn,u,t):n(t)?t.then(c(hn,u,e)):hn(t,e)};const an=function(t,e,o){if(d(t))return Z(t,e,o);if(null==t)throw new TypeError(`invalid collection ${t}`);if("string"==typeof t||t.constructor==String)return function(t,e,o){const r=Z(t,e,o);return n(r)?r.then(l(_,u,"join","")):r.join("")}(t,e,o);if(t.constructor==Set)return function(t,e,o){const r=new Set,u=t[D]();let c=u.next();for(;!c.done;){const f=o(c.value,c.value,t);if(n(f)){const n=new Set,c=f.then((t=>{n.delete(c),r.add(t)}));return n.add(c),nn(t,u,e,o,r,n)}r.add(f),c=u.next()}return r}(t,e,o);if(t.constructor==Map)return function(t,e,o){const r=new Map,u=t[D]();let c=u.next();for(;!c.done;){const f=c.value[0],i=o(c.value[1],f,t);if(n(i)){const n=new Set;r.set(f,i);const c=i.then((t=>{n.delete(c),r.set(f,t)}));return n.add(c),tn(t,u,e,o,r,n)}r.set(f,i),c=u.next()}return r}(t,e,o);if(t.constructor==Object)return function(t,e,o){const r={},u={};for(const c in t){u[c]=!0;const f=o(t[c],c,t);if(n(f)){const n=new Set;r[c]=f;const i=f.then((t=>{n.delete(i),r[c]=t}));return n.add(i),en(t,e,o,r,u,n)}r[c]=f}return r}(t,e,o);throw new TypeError(`invalid collection ${t}`)};sn.pool=function(t,e,o){return null==o?l(an,u,t,e):n(t)?t.then(l(an,u,e,o)):an(t,e,o)};const pn=(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}}),dn=(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}}}),yn=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},gn=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},wn=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(yn([s],t,o,f)).then(g(gn,t,c,f-1,u));s&&(c[++i]=r)}return c},vn=(n,t)=>function(){return n(t)},xn=function(){},jn=function(n,t,e,o){o&&(n[t]=e)},bn=function(t,o){return d(t)?wn(t,o):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=wn(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,vn(c,e),xn))):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),xn))):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]?pn(t[D](),o):"function"==typeof t[$]?dn(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(jn,r,e,t[e],u))):i&&(r[e]=f)}return 0==c.length?r:e(c).then(f(r))}(t,o):t},Sn=Object.values,Mn=(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}),On=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},mn=Object.keys,zn=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},An=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},En=function(t,e,o){return d(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(On,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(An,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(Mn,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=mn(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=zn,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)},Tn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(En,t,e,u)):En(t,e,r)}return n(o)?o.then(l(En,t,e,u)):En(t,e,o)},In=ArrayBuffer.isView,Dn=function(n,t){return d(t)||In(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)},Pn="function"==typeof Buffer,Bn=Pn?Buffer.alloc:xn,$n=function(n,t){const e=n.length,o=Pn&&n.constructor==Buffer?Bn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},kn=function(n,t){return d(t)||In(t)?$n(n,t):$n(n,[t])},Cn=(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",vn(e,n)),t.on("error",o)})(n,t)),_n=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?Cn(n,t):(n.write(t),n);var e},qn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},Fn=function(n,t){return n.concat(t)},Rn=function(t,e,o){const r=En(t,e(xn),null);return n(r)?r.then(f(o)):o},Vn=function(t,e,o){if(d(o))return En(t,e(Dn),o);if(In(o)){const r=En(t,e(Dn),[]);return n(r)?r.then(c(kn,o,u)):kn(o,r)}if(null==o)return Rn(t,e,o);const r=o.constructor;if("string"==typeof o||r==String){const r=En(t,e(Dn),[o]);return n(r)?r.then(l(_,u,"join","")):r.join("")}return"function"==typeof o.concat?En(t,e(Fn),o):"function"==typeof o.write?En(t,e(_n),o):r==Set?En(t,e(qn),o):r==Object?En(t,e(S),o):Rn(t,e,o)},Gn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Vn,t,e,u)):Vn(t,e,r)}return n(o)?o.then(l(Vn,t,e,u)):Vn(t,e,o)},Hn=function(n,t){return n.push(t),n},Jn=n=>new Promise((t=>{setTimeout(t,n)})),Kn=(n,t)=>t,Ln=n=>n,Nn=(n,t)=>function(...e){return t(n(...e))},Qn=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))},Un=function(t){const o=t.length,r=[],i=[];let s=-1;for(;++s<o;){const e=t[s];if(d(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(Hn,i,u)));else if("function"==typeof e[D])for(const n of e)i.push(n);else if("function"==typeof e[$])r.push(Qn(e[$](),c(Hn,i,u)));else if("function"==typeof e.chain){const t=e.chain(Ln);n(t)?r.push(t.then(c(Hn,i,u))):i.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Ln);n(t)?r.push(t.then(c(Hn,i,u))):i.push(t)}else if("function"==typeof e.reduce){const t=e.reduce(Nn(Kn,c(Hn,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))},Wn=function(t){const o=[],r={},f=c(S,r,u),i=Nn(Kn,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(Qn(u[$](),f));else if("function"==typeof u.chain){const t=u.chain(Ln);n(t)?o.push(t.then(f)):S(r,t)}else if("function"==typeof u.flatMap){const t=u.flatMap(Ln);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))},Xn=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(d(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(Qn(e[$](),f));else if("function"==typeof e.chain){const t=e.chain(Ln);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Ln);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))},Yn=o(Un,c(((n,t)=>n.join(t)),u,"")),Zn=function(t,e){if(d(t))return function(t,e){const o=C(t,e);return n(o)?o.then(Un):Un(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=En(t(r.value),Hn,[]);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(En,u,Hn,o)).then((()=>r.delete(n)));r.add(n)}else{const e=En(t,Hn,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([Jn(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(Wn):Wn(o)}(t,e):o==Set?function(t,e){const o=q(t,e);return n(o)?o.then(Xn):Xn(o)}(t,e):"string"==typeof t||o==String?function(t,e){const o=C(t,e);return n(o)?o.then(Yn):Yn(o)}(t,e):e(t)},nt=async function(t,e,o){const r=t.length;for(;++o<r;){const r=e(t[o]);n(r)&&await r}return t},tt=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},et=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},ot=function(t,o){return d(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),t):"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[$]?Qn(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},rt=function(t,e){return"function"==typeof t?c(ot,u,t):n(t)?t.then(c(ot,u,e)):ot(t,e)},ut=function(t,e){if(d(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(z(nt,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(T(et,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(z(tt,t,e,o))}return t}(t,e);throw new TypeError(`invalid collection ${t}`)};rt.series=function(t,e){return"function"==typeof t?c(ut,u,t):n(t)?t.then(c(ut,u,e)):ut(t,e)};const ct=function(n){const t=n.then((n=>[n,t]));return t},ft=async function(t,e,o,r){const u=t.length;for(;++o<u;){const u=e(t[o]);if(n(u))r.add(ct(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},it=function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return ft(t,e,r,new Set([ct(o)]));if(o)return!0}return!1},st=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(ct(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},lt=function(t,e){return d(t)?it(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 st(t,e,new Set([ct(r)]));if(r)return!0}return!1}(t[D](),e):"function"==typeof t[$]?st(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?it(Sn(t),e):e(t)},ht=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))},at=(n,t,e)=>!!t&&n(e),pt=function(t,o){return d(t)?ht(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(ct(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(at,t,u,o)):!!e&&t(o))})(o),!0):t.constructor==Object?ht(Sn(t),o):o(t)},dt=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,T(dt,t,e),f(!1)));if(!o)return!1}return!0},yt=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},gt=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,z(yt,t,e,r),f(!1)));if(!o)return!1}return!0},wt=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),T(wt,t,e)));if(o)return!0}return!1},vt=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},xt=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),z(vt,t,e,r)));if(o)return!0}return!1},jt=n=>!n,bt=function(t,e){const o=e(...t);return n(o)?o.then(jt):!o},St=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)},Mt=function(t,o,r,u){const c=r(...t),f=u(...t);return n(c)||n(f)?e([c,f]).then(un(o)):o(c,f)},Ot=function(t,o,r,u){const c=r(...t);return n(c)||n(u)?e([c,u]).then(un(o)):o(c,u)},mt=function(t,o,r,u){const c=u(...t);return n(r)||n(c)?e([r,c]).then(un(o)):o(r,c)},zt=o=>function(...r){const c=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof c;return i&&s?0==r.length?St(Mt,u,o,f,c):t(r)?e(r).then(g(Mt,u,o,f,c)):Mt(r,o,f,c):i?0==r.length?St(Ot,u,o,f,c):t(r)?e(r).then(g(Ot,u,o,f,c)):Ot(r,o,f,c):s?0==r.length?St(mt,u,o,f,c):t(r)?e(r).then(g(mt,u,o,f,c)):mt(r,o,f,c):n(f)||n(c)?e([f,c]).then(un(o)):o(f,c)},At=zt((function(n,t){return n==t})),Et=zt(((n,t)=>n>t)),Tt=zt(((n,t)=>n<t)),It=zt(((n,t)=>n>=t)),Dt=zt(((n,t)=>n<=t)),Pt=/[.|[|\]]+/,Bt=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(Pt):e?n.slice(1).split(Pt):o?n.slice(0,t).split(Pt):n.split(Pt)}),500),$t=n=>d(n)?n:"string"==typeof n?Bt(n):[n],kt=function(n,t){const e=$t(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},Ct=function(n,t,e){const o=null==n?void 0:kt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},_t=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=$t(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=d(t)?t.slice():{...t};f[n]=e,f=e}}return c},qt=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(_t,t,u,e)):_t(t,r,e)}return n(o)?o.then(l(_t,t,u,e)):_t(t,o,e)},Ft=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=kt(n,e);null!=u&&(o=_t(o,u,e))}return o},Rt=function(n,t){if(null==n)return;const e=$t(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]},Vt=function(n){const t={};for(const e in n){const o=n[e];d(o)?t[e]=Gt(o):null!=o&&o.constructor==Object?t[e]=Vt(o):t[e]=o}return t},Gt=function(n){const t=n.length,e=[];let o=-1;for(;++o<t;){const t=n[o];d(t)?e[o]=Gt(t):null!=t&&t.constructor==Object?e[o]=Vt(t):e[o]=t}return e},Ht=function(n,t){const e=t.length,o=d(r=n)?Gt(r):null==r?r:r.constructor==Object?Vt(r):r;var r;let u=-1;for(;++u<e;)Rt(o,t[u]);return o},Jt=(n,...t)=>rn(n.length,n,t);Jt.arity=function(n,t,...e){return rn(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:rt,switchCase:(...n)=>{const o=n.pop();return E(o)?I(o,-2):0==n.length?(r=A,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(A,o,u,-2)):A(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:b,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||d(t)?l(Ct,u,t,e):n(t)?t.then(l(Ct,u,e,o)):Ct(t,e,o)},set:function(t,e,o){return null==o?l(qt,u,t,e):n(t)?t.then(l(qt,u,e,o)):qt(t,e,o)},pick:function(t,e){return null==e?c(Ft,u,t):n(t)?t.then(c(Ft,u,e)):Ft(t,e)},omit:function(t,e){return null==e?c(Ht,u,t):n(t)?t.then(c(Ht,u,e)):Ht(t,e)},map:sn,filter:function(n,t){return"function"==typeof n?c(bn,u,n):bn(n,t)},flatMap:(t,e)=>"function"==typeof t?c(Zn,u,t):n(t)?t.then(c(Zn,u,e)):Zn(t,e),reduce:function(...t){return"function"==typeof t[0]?l(Tn,u,t[0],t[1]):n(t[0])?t[0].then(l(Tn,u,t[1],t[2])):Tn(t[0],t[1],t[2])},transform:function(...t){return"function"==typeof t[0]?l(Gn,u,t[0],t[1]):n(t[0])?t[0].then(l(Gn,u,t[1],t[2])):Gn(t[0],t[1],t[2])},and:function(...n){const o=n.pop();return E(o)?dt(o,-1):0==n.length?h(gt,u,o):t(n)?e(n).then(c(gt,u,o)):gt(n,o)},or:function(...n){const o=n.pop();return E(o)?wt(o,-1):0==n.length?h(xt,u,o):t(n)?e(n).then(c(xt,u,o)):xt(n,o)},not:function(...n){const o=n.pop();return"function"==typeof o?0==n.length?h(bt,u,o):t(n)?e(n).then(c(bt,u,o)):bt(n,o):!o},some:function(t,e){return"function"==typeof t?c(lt,u,t):n(t)?t.then(c(lt,u,e)):lt(t,e)},every:function(t,e){return"function"==typeof t?c(pt,u,t):n(t)?t.then(c(pt,u,e)):pt(t,e)},eq:At,gt:Et,lt:Tt,gte:It,lte:Dt,thunkify:(n,...o)=>function(){return t(o)?e(o).then(c(r,n,u)):n(...o)},always:f,curry:Jt,__:u}}());