rubico 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/LICENSE +5 -17
  2. package/README.md +1 -1
  3. package/_internal/curryArity.js +21 -1
  4. package/_internal/funcApply2.js +18 -0
  5. package/curry.js +38 -11
  6. package/dist/Transducer.es.js +1 -1
  7. package/dist/Transducer.es.min.js +1 -1
  8. package/dist/Transducer.js +1 -1
  9. package/dist/Transducer.min.js +1 -1
  10. package/dist/Transducer.mjs +1 -1
  11. package/dist/__.es.js +1 -1
  12. package/dist/__.es.min.js +1 -1
  13. package/dist/__.js +1 -1
  14. package/dist/__.min.js +1 -1
  15. package/dist/__.mjs +1 -1
  16. package/dist/all.es.js +1 -1
  17. package/dist/all.es.min.js +1 -1
  18. package/dist/all.js +1 -1
  19. package/dist/all.min.js +1 -1
  20. package/dist/all.mjs +1 -1
  21. package/dist/always.es.js +1 -1
  22. package/dist/always.es.min.js +1 -1
  23. package/dist/always.js +1 -1
  24. package/dist/always.min.js +1 -1
  25. package/dist/always.mjs +1 -1
  26. package/dist/and.es.js +1 -1
  27. package/dist/and.es.min.js +1 -1
  28. package/dist/and.js +1 -1
  29. package/dist/and.min.js +1 -1
  30. package/dist/and.mjs +1 -1
  31. package/dist/assign.es.js +1 -1
  32. package/dist/assign.es.min.js +1 -1
  33. package/dist/assign.js +1 -1
  34. package/dist/assign.min.js +1 -1
  35. package/dist/assign.mjs +1 -1
  36. package/dist/compose.es.js +1 -1
  37. package/dist/compose.es.min.js +1 -1
  38. package/dist/compose.js +1 -1
  39. package/dist/compose.min.js +1 -1
  40. package/dist/compose.mjs +1 -1
  41. package/dist/curry.es.js +132 -3
  42. package/dist/curry.es.min.js +2 -2
  43. package/dist/curry.js +132 -3
  44. package/dist/curry.min.js +2 -2
  45. package/dist/curry.mjs +132 -3
  46. package/dist/eq.es.js +1 -1
  47. package/dist/eq.es.min.js +1 -1
  48. package/dist/eq.js +1 -1
  49. package/dist/eq.min.js +1 -1
  50. package/dist/eq.mjs +1 -1
  51. package/dist/every.es.js +1 -1
  52. package/dist/every.es.min.js +1 -1
  53. package/dist/every.js +1 -1
  54. package/dist/every.min.js +1 -1
  55. package/dist/every.mjs +1 -1
  56. package/dist/filter.es.js +1 -1
  57. package/dist/filter.es.min.js +1 -1
  58. package/dist/filter.js +1 -1
  59. package/dist/filter.min.js +1 -1
  60. package/dist/filter.mjs +1 -1
  61. package/dist/flatMap.es.js +1 -1
  62. package/dist/flatMap.es.min.js +1 -1
  63. package/dist/flatMap.js +1 -1
  64. package/dist/flatMap.min.js +1 -1
  65. package/dist/flatMap.mjs +1 -1
  66. package/dist/forEach.es.js +1 -1
  67. package/dist/forEach.es.min.js +1 -1
  68. package/dist/forEach.js +1 -1
  69. package/dist/forEach.min.js +1 -1
  70. package/dist/forEach.mjs +1 -1
  71. package/dist/get.es.js +1 -1
  72. package/dist/get.es.min.js +1 -1
  73. package/dist/get.js +1 -1
  74. package/dist/get.min.js +1 -1
  75. package/dist/get.mjs +1 -1
  76. package/dist/gt.es.js +1 -1
  77. package/dist/gt.es.min.js +1 -1
  78. package/dist/gt.js +1 -1
  79. package/dist/gt.min.js +1 -1
  80. package/dist/gt.mjs +1 -1
  81. package/dist/gte.es.js +1 -1
  82. package/dist/gte.es.min.js +1 -1
  83. package/dist/gte.js +1 -1
  84. package/dist/gte.min.js +1 -1
  85. package/dist/gte.mjs +1 -1
  86. package/dist/lt.es.js +1 -1
  87. package/dist/lt.es.min.js +1 -1
  88. package/dist/lt.js +1 -1
  89. package/dist/lt.min.js +1 -1
  90. package/dist/lt.mjs +1 -1
  91. package/dist/lte.es.js +1 -1
  92. package/dist/lte.es.min.js +1 -1
  93. package/dist/lte.js +1 -1
  94. package/dist/lte.min.js +1 -1
  95. package/dist/lte.mjs +1 -1
  96. package/dist/map.es.js +41 -2
  97. package/dist/map.es.min.js +2 -2
  98. package/dist/map.js +41 -2
  99. package/dist/map.min.js +2 -2
  100. package/dist/map.mjs +41 -2
  101. package/dist/not.es.js +1 -1
  102. package/dist/not.es.min.js +1 -1
  103. package/dist/not.js +1 -1
  104. package/dist/not.min.js +1 -1
  105. package/dist/not.mjs +1 -1
  106. package/dist/omit.es.js +1 -1
  107. package/dist/omit.es.min.js +1 -1
  108. package/dist/omit.js +1 -1
  109. package/dist/omit.min.js +1 -1
  110. package/dist/omit.mjs +1 -1
  111. package/dist/or.es.js +1 -1
  112. package/dist/or.es.min.js +1 -1
  113. package/dist/or.js +1 -1
  114. package/dist/or.min.js +1 -1
  115. package/dist/or.mjs +1 -1
  116. package/dist/pick.es.js +1 -1
  117. package/dist/pick.es.min.js +1 -1
  118. package/dist/pick.js +1 -1
  119. package/dist/pick.min.js +1 -1
  120. package/dist/pick.mjs +1 -1
  121. package/dist/pipe.es.js +1 -1
  122. package/dist/pipe.es.min.js +1 -1
  123. package/dist/pipe.js +1 -1
  124. package/dist/pipe.min.js +1 -1
  125. package/dist/pipe.mjs +1 -1
  126. package/dist/reduce.es.js +1 -1
  127. package/dist/reduce.es.min.js +1 -1
  128. package/dist/reduce.js +1 -1
  129. package/dist/reduce.min.js +1 -1
  130. package/dist/reduce.mjs +1 -1
  131. package/dist/rubico.es.js +47 -6
  132. package/dist/rubico.es.min.js +2 -2
  133. package/dist/rubico.global.js +47 -6
  134. package/dist/rubico.global.min.js +2 -2
  135. package/dist/rubico.js +47 -6
  136. package/dist/rubico.min.js +2 -2
  137. package/dist/rubico.mjs +47 -6
  138. package/dist/set.es.js +1 -1
  139. package/dist/set.es.min.js +1 -1
  140. package/dist/set.js +1 -1
  141. package/dist/set.min.js +1 -1
  142. package/dist/set.mjs +1 -1
  143. package/dist/some.es.js +1 -1
  144. package/dist/some.es.min.js +1 -1
  145. package/dist/some.js +1 -1
  146. package/dist/some.min.js +1 -1
  147. package/dist/some.mjs +1 -1
  148. package/dist/switchCase.es.js +1 -1
  149. package/dist/switchCase.es.min.js +1 -1
  150. package/dist/switchCase.js +1 -1
  151. package/dist/switchCase.min.js +1 -1
  152. package/dist/switchCase.mjs +1 -1
  153. package/dist/tap.es.js +1 -1
  154. package/dist/tap.es.min.js +1 -1
  155. package/dist/tap.js +1 -1
  156. package/dist/tap.min.js +1 -1
  157. package/dist/tap.mjs +1 -1
  158. package/dist/thunkify.es.js +41 -17
  159. package/dist/thunkify.es.min.js +2 -2
  160. package/dist/thunkify.js +41 -17
  161. package/dist/thunkify.min.js +2 -2
  162. package/dist/thunkify.mjs +41 -17
  163. package/dist/transform.es.js +1 -1
  164. package/dist/transform.es.min.js +1 -1
  165. package/dist/transform.js +1 -1
  166. package/dist/transform.min.js +1 -1
  167. package/dist/transform.mjs +1 -1
  168. package/dist/tryCatch.es.js +1 -1
  169. package/dist/tryCatch.es.min.js +1 -1
  170. package/dist/tryCatch.js +1 -1
  171. package/dist/tryCatch.min.js +1 -1
  172. package/dist/tryCatch.mjs +1 -1
  173. package/dist/x/append.es.js +1 -1
  174. package/dist/x/append.es.min.js +1 -1
  175. package/dist/x/append.js +1 -1
  176. package/dist/x/append.min.js +1 -1
  177. package/dist/x/append.mjs +1 -1
  178. package/dist/x/callProp.es.js +1 -1
  179. package/dist/x/callProp.es.min.js +1 -1
  180. package/dist/x/callProp.js +1 -1
  181. package/dist/x/callProp.min.js +1 -1
  182. package/dist/x/callProp.mjs +1 -1
  183. package/dist/x/defaultsDeep.es.js +1 -1
  184. package/dist/x/defaultsDeep.es.min.js +1 -1
  185. package/dist/x/defaultsDeep.js +1 -1
  186. package/dist/x/defaultsDeep.min.js +1 -1
  187. package/dist/x/defaultsDeep.mjs +1 -1
  188. package/dist/x/differenceWith.es.js +1 -1
  189. package/dist/x/differenceWith.es.min.js +1 -1
  190. package/dist/x/differenceWith.js +1 -1
  191. package/dist/x/differenceWith.min.js +1 -1
  192. package/dist/x/differenceWith.mjs +1 -1
  193. package/dist/x/filterOut.es.js +1 -1
  194. package/dist/x/filterOut.es.min.js +1 -1
  195. package/dist/x/filterOut.js +1 -1
  196. package/dist/x/filterOut.min.js +1 -1
  197. package/dist/x/filterOut.mjs +1 -1
  198. package/dist/x/find.es.js +1 -1
  199. package/dist/x/find.es.min.js +1 -1
  200. package/dist/x/find.js +1 -1
  201. package/dist/x/find.min.js +1 -1
  202. package/dist/x/find.mjs +1 -1
  203. package/dist/x/findIndex.es.js +1 -1
  204. package/dist/x/findIndex.es.min.js +1 -1
  205. package/dist/x/findIndex.js +1 -1
  206. package/dist/x/findIndex.min.js +1 -1
  207. package/dist/x/findIndex.mjs +1 -1
  208. package/dist/x/first.es.js +1 -1
  209. package/dist/x/first.es.min.js +1 -1
  210. package/dist/x/first.js +1 -1
  211. package/dist/x/first.min.js +1 -1
  212. package/dist/x/first.mjs +1 -1
  213. package/dist/x/flatten.es.js +1 -1
  214. package/dist/x/flatten.es.min.js +1 -1
  215. package/dist/x/flatten.js +1 -1
  216. package/dist/x/flatten.min.js +1 -1
  217. package/dist/x/flatten.mjs +1 -1
  218. package/dist/x/groupBy.es.js +1 -1
  219. package/dist/x/groupBy.es.min.js +1 -1
  220. package/dist/x/groupBy.js +1 -1
  221. package/dist/x/groupBy.min.js +1 -1
  222. package/dist/x/groupBy.mjs +1 -1
  223. package/dist/x/has.es.js +1 -1
  224. package/dist/x/has.es.min.js +1 -1
  225. package/dist/x/has.js +1 -1
  226. package/dist/x/has.min.js +1 -1
  227. package/dist/x/has.mjs +1 -1
  228. package/dist/x/identity.es.js +1 -1
  229. package/dist/x/identity.es.min.js +1 -1
  230. package/dist/x/identity.js +1 -1
  231. package/dist/x/identity.min.js +1 -1
  232. package/dist/x/identity.mjs +1 -1
  233. package/dist/x/includes.es.js +1 -1
  234. package/dist/x/includes.es.min.js +1 -1
  235. package/dist/x/includes.js +1 -1
  236. package/dist/x/includes.min.js +1 -1
  237. package/dist/x/includes.mjs +1 -1
  238. package/dist/x/isDeepEqual.es.js +1 -1
  239. package/dist/x/isDeepEqual.es.min.js +1 -1
  240. package/dist/x/isDeepEqual.js +1 -1
  241. package/dist/x/isDeepEqual.min.js +1 -1
  242. package/dist/x/isDeepEqual.mjs +1 -1
  243. package/dist/x/isEmpty.es.js +1 -1
  244. package/dist/x/isEmpty.es.min.js +1 -1
  245. package/dist/x/isEmpty.js +1 -1
  246. package/dist/x/isEmpty.min.js +1 -1
  247. package/dist/x/isEmpty.mjs +1 -1
  248. package/dist/x/isEqual.es.js +1 -1
  249. package/dist/x/isEqual.es.min.js +1 -1
  250. package/dist/x/isEqual.js +1 -1
  251. package/dist/x/isEqual.min.js +1 -1
  252. package/dist/x/isEqual.mjs +1 -1
  253. package/dist/x/isFunction.es.js +1 -1
  254. package/dist/x/isFunction.es.min.js +1 -1
  255. package/dist/x/isFunction.js +1 -1
  256. package/dist/x/isFunction.min.js +1 -1
  257. package/dist/x/isFunction.mjs +1 -1
  258. package/dist/x/isIn.es.js +1 -1
  259. package/dist/x/isIn.es.min.js +1 -1
  260. package/dist/x/isIn.js +1 -1
  261. package/dist/x/isIn.min.js +1 -1
  262. package/dist/x/isIn.mjs +1 -1
  263. package/dist/x/isObject.es.js +1 -1
  264. package/dist/x/isObject.es.min.js +1 -1
  265. package/dist/x/isObject.js +1 -1
  266. package/dist/x/isObject.min.js +1 -1
  267. package/dist/x/isObject.mjs +1 -1
  268. package/dist/x/isString.es.js +1 -1
  269. package/dist/x/isString.es.min.js +1 -1
  270. package/dist/x/isString.js +1 -1
  271. package/dist/x/isString.min.js +1 -1
  272. package/dist/x/isString.mjs +1 -1
  273. package/dist/x/keys.es.js +1 -1
  274. package/dist/x/keys.es.min.js +1 -1
  275. package/dist/x/keys.js +1 -1
  276. package/dist/x/keys.min.js +1 -1
  277. package/dist/x/keys.mjs +1 -1
  278. package/dist/x/last.es.js +1 -1
  279. package/dist/x/last.es.min.js +1 -1
  280. package/dist/x/last.js +1 -1
  281. package/dist/x/last.min.js +1 -1
  282. package/dist/x/last.mjs +1 -1
  283. package/dist/x/maxBy.es.js +1 -1
  284. package/dist/x/maxBy.es.min.js +1 -1
  285. package/dist/x/maxBy.js +1 -1
  286. package/dist/x/maxBy.min.js +1 -1
  287. package/dist/x/maxBy.mjs +1 -1
  288. package/dist/x/noop.es.js +1 -1
  289. package/dist/x/noop.es.min.js +1 -1
  290. package/dist/x/noop.js +1 -1
  291. package/dist/x/noop.min.js +1 -1
  292. package/dist/x/noop.mjs +1 -1
  293. package/dist/x/pluck.es.js +41 -2
  294. package/dist/x/pluck.es.min.js +2 -2
  295. package/dist/x/pluck.js +41 -2
  296. package/dist/x/pluck.min.js +2 -2
  297. package/dist/x/pluck.mjs +41 -2
  298. package/dist/x/prepend.es.js +1 -1
  299. package/dist/x/prepend.es.min.js +1 -1
  300. package/dist/x/prepend.js +1 -1
  301. package/dist/x/prepend.min.js +1 -1
  302. package/dist/x/prepend.mjs +1 -1
  303. package/dist/x/size.es.js +1 -1
  304. package/dist/x/size.es.min.js +1 -1
  305. package/dist/x/size.js +1 -1
  306. package/dist/x/size.min.js +1 -1
  307. package/dist/x/size.mjs +1 -1
  308. package/dist/x/trace.es.js +1 -1
  309. package/dist/x/trace.es.min.js +1 -1
  310. package/dist/x/trace.js +1 -1
  311. package/dist/x/trace.min.js +1 -1
  312. package/dist/x/trace.mjs +1 -1
  313. package/dist/x/unionWith.es.js +1 -1
  314. package/dist/x/unionWith.es.min.js +1 -1
  315. package/dist/x/unionWith.js +1 -1
  316. package/dist/x/unionWith.min.js +1 -1
  317. package/dist/x/unionWith.mjs +1 -1
  318. package/dist/x/uniq.es.js +1 -1
  319. package/dist/x/uniq.es.min.js +1 -1
  320. package/dist/x/uniq.js +1 -1
  321. package/dist/x/uniq.min.js +1 -1
  322. package/dist/x/uniq.mjs +1 -1
  323. package/dist/x/unless.es.js +1 -1
  324. package/dist/x/unless.es.min.js +1 -1
  325. package/dist/x/unless.js +1 -1
  326. package/dist/x/unless.min.js +1 -1
  327. package/dist/x/unless.mjs +1 -1
  328. package/dist/x/values.es.js +1 -1
  329. package/dist/x/values.es.min.js +1 -1
  330. package/dist/x/values.js +1 -1
  331. package/dist/x/values.min.js +1 -1
  332. package/dist/x/values.mjs +1 -1
  333. package/dist/x/when.es.js +1 -1
  334. package/dist/x/when.es.min.js +1 -1
  335. package/dist/x/when.js +1 -1
  336. package/dist/x/when.min.js +1 -1
  337. package/dist/x/when.mjs +1 -1
  338. package/es.js +47 -6
  339. package/index.js +47 -6
  340. package/package.json +1 -1
  341. package/thunkify.js +66 -6
package/dist/not.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/not.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/not.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/not.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/omit.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/omit.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/omit.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/omit.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/or.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/or.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/or.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/or.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/or.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pick.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pick.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pick.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pick.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pipe.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pipe.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pipe.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/pipe.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/reduce.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/reduce.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/reduce.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/rubico.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1062,6 +1062,8 @@ const objectMapPool = function (o, concurrency, f) {
1062
1062
  return result
1063
1063
  }
1064
1064
 
1065
+ const funcApply2 = (func, context, args) => func.apply(context, args)
1066
+
1065
1067
  const _curryArity = (arity, func, context, args) => function curried(...curriedArgs) {
1066
1068
  const argsLength = args.length,
1067
1069
  curriedArgsLength = curriedArgs.length,
@@ -1081,7 +1083,13 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
1081
1083
  } else {
1082
1084
  nextArgs.push(arg)
1083
1085
  }
1086
+
1084
1087
  if (nextArgs.length == arity) {
1088
+ if (areAnyValuesPromises(nextArgs)) {
1089
+ return numCurriedPlaceholders == 0
1090
+ ? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
1091
+ : promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
1092
+ }
1085
1093
  return numCurriedPlaceholders == 0
1086
1094
  ? func.apply(context, nextArgs)
1087
1095
  : curryArity(arity, func, context, nextArgs)
@@ -1094,13 +1102,22 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
1094
1102
  numCurriedPlaceholders += 1
1095
1103
  }
1096
1104
  nextArgs.push(curriedArg)
1105
+
1097
1106
  if (nextArgs.length == arity) {
1107
+ if (areAnyValuesPromises(nextArgs)) {
1108
+ return numCurriedPlaceholders == 0
1109
+ ? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
1110
+ : promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
1111
+ }
1098
1112
  return numCurriedPlaceholders == 0
1099
1113
  ? func.apply(context, nextArgs)
1100
1114
  : curryArity(arity, func, context, nextArgs)
1101
1115
  }
1102
1116
  }
1103
- return curryArity(arity, func, context, nextArgs)
1117
+
1118
+ return areAnyValuesPromises(nextArgs)
1119
+ ? promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
1120
+ : curryArity(arity, func, context, nextArgs)
1104
1121
  }
1105
1122
 
1106
1123
  const curryArity = function (arity, func, context, args) {
@@ -3278,20 +3295,44 @@ const omit = function (arg0, arg1) {
3278
3295
  return _omit(arg0, arg1)
3279
3296
  }
3280
3297
 
3281
- const thunkify = (func, ...args) => function thunk() {
3298
+ function _thunkifyArgs(func, context, args) {
3299
+ return function thunk() {
3300
+ return func.apply(context, args)
3301
+ }
3302
+ }
3303
+
3304
+ const thunkify = function thunkify(func, ...args) {
3282
3305
  if (areAnyValuesPromises(args)) {
3283
- return promiseAll(args).then(curry2(funcApply, func, __))
3306
+ return promiseAll(args).then(curry3(_thunkifyArgs, func, this, __))
3284
3307
  }
3285
- return func(...args)
3308
+ return _thunkifyArgs(func, this, args)
3286
3309
  }
3287
3310
 
3288
- const curry = (func, ...args) => curryArity(func.length, func, this, args)
3311
+ thunkify.call = function thunkifyCall(func, context, ...args) {
3312
+ if (areAnyValuesPromises(args)) {
3313
+ return promiseAll(args).then(curry3(_thunkifyArgs, func, context, __))
3314
+ }
3315
+ return _thunkifyArgs(func, context, args)
3316
+ }
3317
+
3318
+ const curry = (func, ...args) => {
3319
+ if (areAnyValuesPromises(args)) {
3320
+ return promiseAll(args).then(curry4(curryArity, func.length, func, this, __))
3321
+ }
3322
+ return curryArity(func.length, func, this, args)
3323
+ }
3289
3324
 
3290
3325
  curry.arity = function curryArity_(arity, func, ...args) {
3326
+ if (areAnyValuesPromises(args)) {
3327
+ return promiseAll(args).then(curry4(curryArity, arity, func, this, __))
3328
+ }
3291
3329
  return curryArity(arity, func, this, args)
3292
3330
  }
3293
3331
 
3294
3332
  curry.call = function call(func, context, ...args) {
3333
+ if (areAnyValuesPromises(args)) {
3334
+ return promiseAll(args).then(curry4(curryArity, func.length, func, context, __))
3335
+ }
3295
3336
  return curryArity(func.length, func, context, args)
3296
3337
  }
3297
3338
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.8.0
2
+ * rubico v2.8.1
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2026 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isArray=Array.isArray,isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;){const e=r[t];if(isPromise(e))return!0}return!1}for(const e in r){const t=r[e];if(isPromise(t))return!0}return!1},promiseAll=Promise.all.bind(Promise),funcConcat=(r,e)=>function(...t){const n=r(...t);return isPromise(n)?n.then(e):e(n)},funcApply=(r,e)=>r(...e),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(t){return r(t,e)},curry2ResolveArg1=(r,e)=>function(t){return r(e,t)},curry2=function(r,e,t){return e==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,e)},pipe=function(...r){if("function"==typeof r[0])return r.reduce(funcConcat);const e=r.pop().reduce(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then(curry2(funcApply,e,__)):e(...r)},compose=function(...r){if("function"==typeof r[0])return r.reduceRight(funcConcat);const e=r.pop().reduceRight(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then(curry2(funcApply,e,__)):e(...r)},always=r=>function(){return r},thunkifyArgs=(r,e)=>function(){return r(...e)},thunkConditional=(r,e,t)=>r?e():t(),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},curryArgs2ResolveArgs0=(r,e,t)=>function(...t){return r(t,e)},curryArgs2ResolveArgs1=(r,e,t)=>function(...t){return r(e,t)},curryArgs2=function(r,e,t){return e==__?curryArgs2ResolveArgs0(r,t):curryArgs2ResolveArgs1(r,e)},curryArgs3ResolveArgs0=(r,e,t)=>function(...n){return r(n,e,t)},curryArgs3ResolveArgs1=(r,e,t)=>function(...n){return r(e,n,t)},curryArgs3ResolveArgs2=(r,e,t)=>function(...n){return r(e,t,n)},curryArgs3=function(r,e,t,n){return e==__?curryArgs3ResolveArgs0(r,t,n):t==__?curryArgs3ResolveArgs1(r,e,n):curryArgs3ResolveArgs2(r,e,t)},_tap=function(r,e){const t=r[0],n=e(...r);return isPromise(n)?n.then(always(t)):t},tap=function(...r){const e=r.pop();return 0==r.length?curryArgs2(_tap,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_tap,__,e)):_tap(r,e)},_tapIf=function(r,e,t){const n=r(...t);if(isPromise(n))return n.then(curry3(thunkConditional,__,thunkifyArgs(tap(e),t),always(t[0])));if(n){const r=e(...t);if(isPromise(r))return r.then(always(t[0]))}return t[0]};tap.if=function(...r){if(2==r.length)return curryArgs3(_tapIf,r[0],r[1],__);const e=r.length,t=r[e-1],n=r[e-2],o=r.slice(0,-2);return areAnyValuesPromises(o)?promiseAll(o).then(curry3(_tapIf,n,t,__)):_tapIf(n,t,r)};const areAllValuesNonfunctions=function(r){if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)if("function"==typeof r[t])return!1;return!0}for(const e in r)if("function"==typeof r[e])return!1;return!0},promiseObjectAllExecutor=r=>function(e){const t={};let n=0;for(const o in r){const s=r[o];isPromise(s)?(n+=1,s.then((r=>function(o){t[r]=o,n-=1,0==n&&e(t)})(o))):t[o]=s}0==n&&e(t)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),functionArrayAll=function(r,e){const t=r.length,n=Array(t);let o=-1,s=!1;for(;++o<t;){const t=r[o],i="function"==typeof t?t(...e):t;isPromise(i)&&(s=!0),n[o]=i}return s?promiseAll(n):n},curry4ResolveArg0=(r,e,t,n)=>function(o){return r(o,e,t,n)},curry4ResolveArg1=(r,e,t,n)=>function(o){return r(e,o,t,n)},curry4ResolveArg2=(r,e,t,n)=>function(o){return r(e,t,o,n)},curry4ResolveArg3=(r,e,t,n)=>function(o){return r(e,t,n,o)},curry4=function(r,e,t,n,o){return e==__?curry4ResolveArg0(r,t,n,o):t==__?curry4ResolveArg1(r,e,n,o):n==__?curry4ResolveArg2(r,e,t,o):curry4ResolveArg3(r,e,t,n)},objectSet=function(r,e,t){return r[e]=t,r},asyncFunctionArrayAllSeries=async function(r,e,t,n){const o=r.length;for(;++n<o;){const o=r[n](...e);t[n]=isPromise(o)?await o:o}return t},functionArrayAllSeries=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=r[o](...e);if(isPromise(t))return t.then(funcConcat(curry3(objectSet,n,o,__),curry4(asyncFunctionArrayAllSeries,r,e,__,o)));n[o]=t}return n},functionObjectAll=function(r,e){const t={},n=[];for(const o in r){const s=r[o],i="function"==typeof s?s(...e):s;isPromise(i)?n.push(i.then(curry3(objectSet,t,o,__))):t[o]=i}return 0==n.length?t:promiseAll(n).then(always(t))},_allValues=function(r){return isArray(r)?areAnyValuesPromises(r)?promiseAll(r):r:areAnyValuesPromises(r)?promiseObjectAll(r):r},all=function(...r){if(1==r.length){const e=r[0];return isPromise(e)?e.then(_allValues):areAllValuesNonfunctions(e)?_allValues(e):isArray(e)?curryArgs2(functionArrayAll,e,__):curryArgs2(functionObjectAll,e,__)}const e=r[r.length-1],t=r.slice(0,-1);return areAnyValuesPromises(t)?isArray(e)?promiseAll(t).then(curry2(functionArrayAll,e,__)):promiseAll(t).then(curry2(functionObjectAll,e,__)):isArray(e)?functionArrayAll(e,t):functionObjectAll(e,t)};all.series=function(...r){const e=r.pop();return 0==r.length?curryArgs2(functionArrayAllSeries,e,__):areAnyValuesPromises(r)?promiseAll(r).then(curry2(functionArrayAllSeries,e,__)):functionArrayAllSeries(e,r)};const objectAssign=Object.assign,_assign=function(r,e){const t=functionObjectAll(e,[r]);return isPromise(t)?t.then(curry3(objectAssign,{},r,__)):{...r,...t}},assign=function(r,e){return null==e?curry2(_assign,__,r):isPromise(r)?r.then(curry2(_assign,__,e)):_assign(r,e)},catcherApply=function(r,e,t){return r(e,...t)},_tryCatch=function(r,e,t){try{const n=r(...t);return isPromise(n)?n.catch(curry3(catcherApply,e,__,t)):n}catch(r){return e(r,...t)}},tryCatch=function(...r){if(r.length>2){const e=r.pop(),t=r.pop();return areAnyValuesPromises(r)?promiseAll(r).then(curry3(_tryCatch,t,e,__)):_tryCatch(t,e,r)}const e=r[0],t=r[1];return function(...r){return _tryCatch(e,t,r)}},thunkify3=(r,e,t,n)=>function(){return r(e,t,n)},arrayConditional=function(r,e,t){const n=r.length-1;for(;(t+=2)<n;){const n=r[t],o=r[t+1],s="function"==typeof n?n(...e):n;if(isPromise(s))return s.then(curry3(thunkConditional,__,"function"==typeof o?thunkifyArgs(o,e):always(o),thunkify3(arrayConditional,r,e,t)));if(s)return"function"==typeof o?o(...e):o}if(t==r.length)return;const o=r[n];return"function"==typeof o?o(...e):o},thunkify2=(r,e,t)=>function(){return r(e,t)},nonfunctionsConditional=function(r,e){const t=r.length,n=t-1;for(;(e+=2)<n;){const t=r[e],n=r[e+1];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(n),thunkify2(nonfunctionsConditional,r,e)));if(t)return n}if(e!=t)return r[e]},switchCase=(...r)=>{const e=r.pop();return areAllValuesNonfunctions(e)?nonfunctionsConditional(e,-2):0==r.length?curryArgs3(arrayConditional,e,__,-2):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,e,__,-2)):arrayConditional(e,r,-2)},symbolIterator=Symbol.iterator,MappingIterator=(r,e)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const t=r.next();return t.done?t:{value:e(t.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,e)=>({[symbolAsyncIterator](){return this},async next(){const t=await r.next();if(t.done)return t;const n=e(t.value);return isPromise(n)?n.then(NextIteration):{value:n,done:!1}}}),isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},arrayMap=function(r,e){const t=r.length,n=Array(t);let o=-1,s=!1;for(;++o<t;){const t=e(r[o],o,r);isPromise(t)&&(s=!0),n[o]=t}return s?promiseAll(n):n},callPropUnary=(r,e,t)=>r[e](t),stringMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},setMap=function(r,e){const t=new Set,n=[];for(const o of r){const s=e(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,t,"add",__))):t.add(s)}return 0==n.length?t:promiseAll(n).then(always(t))},callPropBinary=(r,e,t,n)=>r[e](t,n),mapMap=function(r,e){const t=new Map,n=[];for(const[o,s]of r){const i=e(s,o,r);isPromise(i)?n.push(i.then(curry4(callPropBinary,t,"set",o,__))):t.set(o,i)}return 0==n.length?t:promiseAll(n).then(always(t))},objectMap=function(r,e){const t={};let n=!1;for(const o in r){const s=e(r[o],o,r);isPromise(s)&&(n=!0),t[o]=s}return n?promiseObjectAll(t):t},arrayMapSeriesAsync=async function(r,e,t,n){const o=r.length;for(;++n<o;){const o=e(r[n],n);t[n]=isPromise(o)?await o:o}return t},arrayMapSeries=function(r,e){const t=r.length,n=Array(t);let o=-1;for(;++o<t;){const t=e(r[o],o);if(isPromise(t))return t.then(funcConcat(curry3(objectSet,n,o,__),curry4(arrayMapSeriesAsync,r,e,__,o)));n[o]=t}return n},stringMapSeries=function(r,e){const t=arrayMapSeries(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},thunkify4=(r,e,t,n,o)=>function(){return r(e,t,n,o)},_objectMapSeriesAsync=async function(r,e,t,n){for(const o in r){if(o in n)continue;let s=e(r[o]);isPromise(s)&&(s=await s),t[o]=s}return t},objectMapSeries=function(r,e){const t={},n={};for(const o in r){n[o]=!0;const s=e(r[o],o,r);if(isPromise(s))return s.then(funcConcat(curry3(objectSet,t,o,__),thunkify4(_objectMapSeriesAsync,r,e,t,n)));t[o]=s}return t},setAdd=function(r,e){return r.add(e),r},_setMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value);isPromise(o)&&(o=await o),t.add(o),n=r.next()}return t},setMapSeries=function(r,e){const t=new Set,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=e(o.value);if(isPromise(r))return r.then(funcConcat(curry2(setAdd,t,__),thunkify3(_setMapSeriesAsync,n,e,t)));t.add(r),o=n.next()}return t},mapSet=function(r,e,t){return r.set(e,t)},_mapMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value[1]);isPromise(o)&&(o=await o),t.set(n.value[0],o),n=r.next()}return t},mapMapSeries=function(r,e){const t=new Map,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=o.value[0],s=e(o.value[1]);if(isPromise(s))return s.then(funcConcat(curry3(mapSet,t,r,__),thunkify3(_mapMapSeriesAsync,n,e,t)));t.set(r,s),o=n.next()}return t},tapSync=r=>function(...e){return r(...e),e[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,e,t,n,o,s){const i=r.length;for(;++o<i;){s.size>=t&&await promiseRace(s);const i=e(r[o]);if(isPromise(i)){const r=i.then(tapSync(()=>s.delete(r)));s.add(r),n[o]=r}else n[o]=i}return promiseAll(n)},arrayMapPool=function(r,e,t){const n=r.length,o=Array(n);let s=-1;for(;++s<n;){const n=t(r[s]);if(isPromise(n)){const i=new Set,c=n.then(tapSync(()=>i.delete(c)));return i.add(c),o[s]=c,arrayMapPoolAsync(r,t,e,o,s,i)}o[s]=n}return o},stringMapPool=function(r,e,t){const n=arrayMapPool(r,e,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},_setMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=n(i.value,i.value,r);if(isPromise(c)){const r=c.then(e=>{s.delete(r),o.add(e)});s.add(r)}else o.add(c);i=e.next()}return s.size>0&&await promiseAll(s),o},setMapPool=function(r,e,t){const n=new Set,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=t(s.value,s.value,r);if(isPromise(i)){const s=new Set,c=i.then(r=>{s.delete(c),n.add(r)});return s.add(c),_setMapPoolAsync(r,o,e,t,n,s)}n.add(i),s=o.next()}return n},_mapMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=i.value[0],u=n(i.value[1],c,r);if(isPromise(u)){o.set(c,u);const r=u.then(e=>{s.delete(r),o.set(c,e)});s.add(r)}else o.set(c,u);i=e.next()}return s.size>0&&await promiseAll(s),o},mapMapPool=function(r,e,t){const n=new Map,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=s.value[0],c=t(s.value[1],i,r);if(isPromise(c)){const s=new Set;n.set(i,c);const u=c.then(r=>{s.delete(u),n.set(i,r)});return s.add(u),_mapMapPoolAsync(r,o,e,t,n,s)}n.set(i,c),s=o.next()}return n},_objectMapPoolAsync=async function(r,e,t,n,o,s){for(const i in r){if(i in o)continue;s.size>=e&&await promiseRace(s);const c=t(r[i],i,r);if(isPromise(c)){n[i]=c;const r=c.then(e=>{s.delete(r),n[i]=e});s.add(r)}else n[i]=c}return s.size>0&&await promiseAll(s),n},objectMapPool=function(r,e,t){const n={},o={};for(const s in r){o[s]=!0;const i=t(r[s],s,r);if(isPromise(i)){const c=new Set;n[s]=i;const u=i.then(r=>{c.delete(u),n[s]=r});return c.add(u),_objectMapPoolAsync(r,e,t,n,o,c)}n[s]=i}return n},_curryArity=(r,e,t,n)=>function(...o){const s=n.length,i=o.length,c=[];let u=-1,a=-1,l=0;for(;++u<s;){const s=n[u];if(s==__&&(a+=1)<i){const r=o[a];r==__&&(l+=1),c.push(r)}else c.push(s);if(c.length==r)return 0==l?e.apply(t,c):curryArity(r,e,t,c)}for(;++a<i;){const n=o[a];if(n==__&&(l+=1),c.push(n),c.length==r)return 0==l?e.apply(t,c):curryArity(r,e,t,c)}return curryArity(r,e,t,c)},curryArity=function(r,e,t,n){const o=n.length;if(o<r)return _curryArity(r,e,t,n);let s=-1;for(;++s<o;){if(n[s]==__)return _curryArity(r,e,t,n)}return e.apply(t,n)},spread2=r=>function([e,t]){return r(e,t)},objectMapEntries=function(r,e){const t={},n=[];for(const o in r){const s=e([o,r[o]]);isPromise(s)?n.push(s.then(spread2(curryArity(3,objectSet,this,[t])))):t[s[0]]=s[1]}return 0==n.length?t:promiseAll(n).then(always(t))},mapMapEntriesForEachCallback=(r,e,t)=>function(n,o){const s=r([o,n]);isPromise(s)?t.push(s.then(spread2(curryArity(3,mapSet,this,[e])))):e.set(s[0],s[1])},mapMapEntries=function(r,e){const t=new Map,n=[];return r.forEach(mapMapEntriesForEachCallback(e,t,n)),0==n.length?t:promiseAll(n).then(always(t))},_map=function(r,e){return isArray(r)?arrayMap(r,e):null==r?r:"function"==typeof r.then?r.then(e):"function"==typeof r.map?r.map(e):"string"==typeof r||r.constructor==String?stringMap(r,e):r.constructor==Set?setMap(r,e):r.constructor==Map?mapMap(r,e):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),e):r.constructor==Object?objectMap(r,e):e(r)},map=function(r,e){return null==e?curry2(_map,__,r):isPromise(r)?r.then(curry2(_map,__,e)):_map(r,e)},_mapEntries=(r,e)=>{if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return objectMapEntries(r,e);if(r.constructor==Map)return mapMapEntries(r,e);throw new TypeError("value is not an Object or Map")};map.entries=function(r,e){return null==e?curry2(_mapEntries,__,r):isPromise(r)?r.then(curry2(_mapEntries,__,e)):_mapEntries(r,e)};const _mapSeries=function(r,e){if(isArray(r))return arrayMapSeries(r,e);if(null==r)throw new TypeError(`invalid collection ${r}`);if("string"==typeof r||r.constructor==String)return stringMapSeries(r,e);if(r.constructor==Set)return setMapSeries(r,e);if(r.constructor==Map)return mapMapSeries(r,e);if(r.constructor==Object)return objectMapSeries(r,e);throw new TypeError(`invalid collection ${r}`)};map.series=function(r,e){return null==e?curry2(_mapSeries,__,r):isPromise(r)?r.then(curry2(_mapSeries,__,e)):_mapSeries(r,e)};const _mapPool=function(r,e,t){if(isArray(r))return arrayMapPool(r,e,t);if(null==r)throw new TypeError(`invalid functor ${r}`);if("string"==typeof r||r.constructor==String)return stringMapPool(r,e,t);if(r.constructor==Set)return setMapPool(r,e,t);if(r.constructor==Map)return mapMapPool(r,e,t);if(r.constructor==Object)return objectMapPool(r,e,t);throw new TypeError(`invalid functor ${r}`)};map.pool=function(r,e,t){return null==t?curry3(_mapPool,__,r,e):isPromise(r)?r.then(curry3(_mapPool,__,e,t)):_mapPool(r,e,t)};const FilteringIterator=(r,e)=>({[symbolIterator](){return this},next(){let t=r.next();for(;!t.done;){const{value:n}=t;if(e(n))return{value:n,done:!1};t=r.next()}return t}}),FilteringAsyncIterator=(r,e)=>({isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:t,done:n}=await r.next();if(n)this.isAsyncIteratorDone=!0;else{const r=e(t);if(isPromise(r)?await r:r)return{value:t,done:!1}}}return{value:void 0,done:!0}}}),arrayExtendMap=function(r,e,t,n){const o=e.length;let s=r.length-1;for(;++n<o;)r[++s]=t(e[n],n,r);return r},arrayFilterByConditions=function(r,e,t,n){const o=r.length;let s=-1;for(;++t<o;)n[++s]&&e.push(r[t]);return e},arrayFilter=function(r,e){const t=r.length,n=[];let o=-1,s=-1;for(;++o<t;){const t=r[o],i=e(t,o,r);if(isPromise(i))return promiseAll(arrayExtendMap([i],r,e,o)).then(curry4(arrayFilterByConditions,r,n,o-1,__));i&&(n[++s]=t)}return n},stringFilter=function(r,e){const t=arrayFilter(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},thunkify1=(r,e)=>function(){return r(e)},noop=function(){},setFilter=function(r,e){const t=new Set,n=t.add.bind(t),o=[];for(const s of r){const i=e(s,s,r);isPromise(i)?o.push(i.then(curry3(thunkConditional,__,thunkify1(n,s),noop))):i&&t.add(s)}return 0==o.length?t:promiseAll(o).then(always(t))},mapFilter=function(r,e){const t=new Map,n=[];for(const[o,s]of r){const i=e(s,o,r);isPromise(i)?n.push(i.then(curry3(thunkConditional,__,thunkify4(callPropBinary,t,"set",o,s),noop))):i&&t.set(o,s)}return 0==n.length?t:promiseAll(n).then(always(t))},objectSetIf=function(r,e,t,n){n&&(r[e]=t)},objectFilter=function(r,e){const t={},n=[];for(const o in r){const s=r[o],i=e(s,o,r);isPromise(i)?n.push(i.then(curry4(objectSetIf,t,o,r[o],__))):i&&(t[o]=s)}return 0==n.length?t:promiseAll(n).then(always(t))},_filter=function(r,e){return isArray(r)?arrayFilter(r,e):null==r?r:"string"==typeof r||r.constructor==String?stringFilter(r,e):r.constructor==Set?setFilter(r,e):r.constructor==Map?mapFilter(r,e):"function"==typeof r.filter?r.filter(e):"function"==typeof r[symbolIterator]?FilteringIterator(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?FilteringAsyncIterator(r[symbolAsyncIterator](),e):r.constructor==Object?objectFilter(r,e):r},filter=function(r,e){return"function"==typeof r?curry2(_filter,__,r):isPromise(r)?r.then(curry2(_filter,__,e)):_filter(r,e)},objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,t){let n=r.next();if(n.done)return t;for(;!n.done;)t=e(t,n.value),isPromise(t)&&(t=await t),n=r.next();return t},iteratorReduce=function(r,e,t){let n=r.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=r.next());!n.done;){if(t=e(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,r,e,__));n=r.next()}return t},asyncIteratorReduce=async function(r,e,t){let n=await r.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await r.next());!n.done;)t=await e(t,n.value),n=await r.next();return t},arrayReduceAsync=async function(r,e,t,n){const o=r.length;for(;++n<o;)t=e(t,r[n],n,r),isPromise(t)&&(t=await t);return t},arrayReduce=function(r,e,t){const n=r.length;let o=-1;for(void 0===t&&(t=r[++o]);++o<n;)if(t=e(t,r[o],o,r),isPromise(t))return t.then(curry4(arrayReduceAsync,r,e,__,o));return t},curry5ResolveArg0=(r,e,t,n,o)=>function(s){return r(s,e,t,n,o)},curry5ResolveArg1=(r,e,t,n,o)=>function(s){return r(e,s,t,n,o)},curry5ResolveArg2=(r,e,t,n,o)=>function(s){return r(e,t,s,n,o)},curry5ResolveArg3=(r,e,t,n,o)=>function(s){return r(e,t,n,s,o)},curry5ResolveArg4=(r,e,t,n,o)=>function(s){return r(e,t,n,o,s)},curry5=function(r,e,t,n,o,s){return e==__?curry5ResolveArg0(r,t,n,o,s):t==__?curry5ResolveArg1(r,e,n,o,s):n==__?curry5ResolveArg2(r,e,t,o,s):o==__?curry5ResolveArg3(r,e,t,n,s):curry5ResolveArg4(r,e,t,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,t,n,o){const s=n.length;for(;++o<s;){const s=n[o];t=e(t,r[s],s,r),isPromise(t)&&(t=await t)}return t},objectReduce=function(r,e,t){const n=objectKeys(r),o=n.length;let s=-1;for(void 0===t&&(t=r[n[++s]]);++s<o;){const o=n[s];if(t=e(t,r[o],o,r),isPromise(t))return t.then(curry5(objectReduceAsync,r,e,__,n,s))}return t},mapReduceAsync=async function(r,e,t,n){for(const[o,s]of n)t=e(t,s,o,r),isPromise(t)&&(t=await t);return t},mapReduce=function(r,e,t){const n=r.entries();if(void 0===t){const r=n.next();if(r.done)return t;t=r.value[1]}for(const[o,s]of n)if(t=e(t,s,o,r),isPromise(t))return t.then(curry4(mapReduceAsync,r,e,__,n));return t},reducerConcat=(r,e)=>function(t,n){const o=r(t,n);return isPromise(o)?o.then(curry2(e,__,n)):e(o,n)},genericReduce=function(r,e,t){return isArray(r)?arrayReduce(r,e,t):null==r?void 0===t?curry2(e,r,__):e(t,r):r.constructor==Map?mapReduce(r,e,t):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,t):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,t):"function"==typeof r.reduce?r.reduce(e,t):"function"==typeof r.chain?r.chain(curry2(e,t,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,t,__)):r.constructor==Object?objectReduce(r,e,t):void 0===t?curry2(e,r,__):e(t,r)},_reduce=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,n)}return isPromise(t)?t.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,t)},reduce=function(...r){return"function"==typeof r[0]?curry3(_reduce,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_reduce,__,r[1],r[2])):_reduce(r[0],r[1],r[2])},isBinary=ArrayBuffer.isView,add=(r,e)=>r+e,_arrayExtend=function(r,e){const t=r.length,n=e.length;let o=-1;for(;++o<n;)r[t+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const t=r.length,n=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(t+e.length):new r.constructor(t+e.length);return n.set(r),n.set(e,t),n},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,t,n){return r.write(e,t,n),r},_streamExtendExecutor=(r,e)=>function(t,n){e.on("data",__streamWrite(r)),e.on("end",thunkify1(t,r)),e.on("error",n)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return isNodeReadStream(e)?_streamExtend(r,e):(r.write(e),r)},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const t of e)r.add(t);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,t){const n=genericReduce(r,e(noop),null);return isPromise(n)?n.then(always(t)):t},genericTransform=function(r,e,t){if(isArray(t))return genericReduce(r,e(arrayExtend),t);if(isBinary(t)){const n=genericReduce(r,e(arrayExtend),[]);return isPromise(n)?n.then(curry2(binaryExtend,t,__)):binaryExtend(t,n)}if(null==t)return identityTransform(r,e,t);const n=t.constructor;if("string"==typeof t||n==String){const n=genericReduce(r,e(arrayExtend),[t]);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")}return"function"==typeof t.concat?genericReduce(r,e(callConcat),t):"function"==typeof t.write?genericReduce(r,e(streamExtend),t):n==Set?genericReduce(r,e(setExtend),t):n==Object?genericReduce(r,e(objectAssign),t):identityTransform(r,e,t)},_transform=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)}return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])},arrayPush=function(r,e){return r.push(e),r},FlatMappingIterator=function(r,e){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const r=t[n];return n+=1,{value:r,done:!1}}const o=r.next();if(o.done)return o;const s=genericReduce(e(o.value),arrayPush,[]);return s.length>1&&(t=s,n=1),{value:s[0],done:!1}}}},sleep=r=>new Promise(e=>{setTimeout(e,r)}),FlatMappingAsyncIterator=function(r,e){const t=[],n=new Set;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||t.length>0||n.size>0;){if(!this.isAsyncIteratorDone){const{value:o,done:s}=await r.next();if(s)this.isAsyncIteratorDone=s;else{const r=e(o);if(isPromise(r)){const e=r.then(curry3(genericReduce,__,arrayPush,t)).then(()=>n.delete(e));n.add(e)}else{const e=genericReduce(r,arrayPush,t);if(isPromise(e)){const r=e.then(()=>n.delete(r));n.add(r)}}}}if(t.length>0)return{value:t.shift(),done:!1};n.size>0&&await promiseRace([sleep(1e3),...n])}return{value:void 0,done:!0}}}},getArg1=(r,e)=>e,identity=r=>r,funcConcatSync=(r,e)=>function(...t){return e(r(...t))},asyncIteratorForEach=async function(r,e){const t=[];for await(const n of r){const r=e(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},arrayFlatten=function(r){const e=r.length,t=[],n=[];let o=-1;for(;++o<e;){const e=r[o];if(isArray(e)){const r=e.length;let t=-1;for(;++t<r;)n.push(e[t])}else if(null==e)n.push(e);else if("function"==typeof e.then)t.push(e.then(curry2(arrayPush,n,__)));else if("function"==typeof e[symbolIterator])for(const r of e)n.push(r);else if("function"==typeof e[symbolAsyncIterator])t.push(asyncIteratorForEach(e[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof e.chain){const r=e.chain(identity);isPromise(r)?t.push(r.then(curry2(arrayPush,n,__))):n.push(r)}else if("function"==typeof e.flatMap){const r=e.flatMap(identity);isPromise(r)?t.push(r.then(curry2(arrayPush,n,__))):n.push(r)}else if("function"==typeof e.reduce){const r=e.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(r)&&t.push(r)}else if(e.constructor==Object)for(const r in e)n.push(e[r]);else n.push(e)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayFlatMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},objectFlatten=function(r){const e=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const s in r){const i=r[s];if(null!=i)if("function"==typeof i[symbolIterator])for(const r of i)objectAssign(t,r);else if("function"==typeof i[symbolAsyncIterator])e.push(asyncIteratorForEach(i[symbolAsyncIterator](),n));else if("function"==typeof i.chain){const r=i.chain(identity);isPromise(r)?e.push(r.then(n)):objectAssign(t,r)}else if("function"==typeof i.flatMap){const r=i.flatMap(identity);isPromise(r)?e.push(r.then(n)):n(r)}else if("function"==typeof i.reduce){const r=i.reduce(o,null);isPromise(r)&&e.push(r)}else objectAssign(t,i)}return 0==e.length?t:promiseAll(e).then(()=>t)},objectFlatMap=function(r,e){const t=objectMap(r,e);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},setFlatten=function(r){r.size;const e=[],t=new Set,n=(r,e)=>t.add(e),o=curry3(callPropUnary,t,"add",__);for(const s of r)if(isArray(s)){const r=s.length;let e=-1;for(;++e<r;)t.add(s[e])}else if(null==s)t.add(s);else if("function"==typeof s[symbolIterator])for(const r of s)t.add(r);else if("function"==typeof s[symbolAsyncIterator])e.push(asyncIteratorForEach(s[symbolAsyncIterator](),o));else if("function"==typeof s.chain){const r=s.chain(identity);isPromise(r)?e.push(r.then(o)):t.add(r)}else if("function"==typeof s.flatMap){const r=s.flatMap(identity);isPromise(r)?e.push(r.then(o)):t.add(r)}else if("function"==typeof s.reduce){const r=s.reduce(n,null);isPromise(r)&&e.push(r)}else if(s.constructor==Object)for(const r in s)t.add(s[r]);else t.add(s);return 0==e.length?t:promiseAll(e).then(()=>t)},setFlatMap=function(r,e){const t=setMap(r,e);return isPromise(t)?t.then(setFlatten):setFlatten(t)},arrayJoin=(r,e)=>r.join(e),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},_flatMap=function(r,e){if(isArray(r))return arrayFlatMap(r,e);if(null==r)return e(r);if("function"==typeof r.then)return r.then(e);if("function"==typeof r.next)return symbolIterator in r?FlatMappingIterator(r,e):FlatMappingAsyncIterator(r,e);if("function"==typeof r.chain)return r.chain(e);if("function"==typeof r.flatMap)return r.flatMap(e);const t=r.constructor;return t==Object?objectFlatMap(r,e):t==Set?setFlatMap(r,e):"string"==typeof r||t==String?stringFlatMap(r,e):e(r)},flatMap=(r,e)=>"function"==typeof r?curry2(_flatMap,__,r):isPromise(r)?r.then(curry2(_flatMap,__,e)):_flatMap(r,e),arrayForEach=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=e(r[o],o,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,e){const t=[];for(const n in r){const o=e(r[n],n,r);isPromise(o)&&t.push(o)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,e){const t=[];for(const n of r){const r=e(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},_arrayForEachSeriesAsync=async function(r,e,t){const n=r.length;for(;++t<n;){const n=e(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,e){const t=r.length;let n=-1;for(;++n<t;){const t=e(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,e,n))}return r},_objectForEachSeriesAsync=async function(r,e,t){for(const n in r){if(n in t)continue;const o=e(r[n]);isPromise(o)&&await o}return r},objectForEachSeries=function(r,e){const t={};for(const n in r){t[n]=!0;const o=e(r[n],n,r);if(isPromise(o))return o.then(thunkify3(_objectForEachSeriesAsync,r,e,t))}return r},_iteratorForEachSeriesAsync=async function(r,e){let t=r.next();for(;!t.done;){const n=e(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,e){let t=r.next();for(;!r.done;){const n=e(t.value);if(isPromise(n))return n.then(thunkify2(_iteratorForEachSeriesAsync,r,e));t=r.next()}return r},asyncIteratorForEachSeries=async function(r,e){for await(const t of r){const r=e(t);isPromise(r)&&await r}return r},_forEach=function(r,e){return isArray(r)?arrayForEach(r,e):null==r?r:"function"==typeof r.forEach?(r.forEach(e),r):"function"==typeof r[symbolIterator]?iteratorForEach(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorForEach(r[symbolAsyncIterator](),e):r.constructor==Object?objectForEach(r,e):r},forEach=function(r,e){return"function"==typeof r?curry2(_forEach,__,r):isPromise(r)?r.then(curry2(_forEach,__,e)):_forEach(r,e)},_forEachSeries=function(r,e){if(isArray(r))return arrayForEachSeries(r,e);if(null==r)throw new TypeError(`invalid collection ${r}`);if("function"==typeof r[symbolIterator])return iteratorForEachSeries(r[symbolIterator](),e);if("function"==typeof r[symbolAsyncIterator])return asyncIteratorForEachSeries(r[symbolAsyncIterator](),e);if(r.constructor==Object)return objectForEachSeries(r,e);throw new TypeError(`invalid collection ${r}`)};forEach.series=function(r,e){return"function"==typeof r?curry2(_forEachSeries,__,r):isPromise(r)?r.then(curry2(_forEachSeries,__,e)):_forEachSeries(r,e)};const SelfReferencingPromise=function(r){const e=r.then(r=>[r,e]);return e},asyncArraySome=async function(r,e,t,n){const o=r.length;for(;++t<o;){const o=e(r[t]);if(isPromise(o))n.add(SelfReferencingPromise(o));else if(o)return!0}for(;n.size>0;){const[r,e]=await promiseRace(n);if(n.delete(e),r)return!0}return!1},arraySome=function(r,e){const t=r.length;let n=-1;for(;++n<t;){const t=e(r[n]);if(isPromise(t))return asyncArraySome(r,e,n,new Set([SelfReferencingPromise(t)]));if(t)return!0}return!1},asyncIteratorSome=async function(r,e,t,n=20){let o=r.next();for(isPromise(o)&&(o=await o);!o.done;){if(t.size>=n){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}const s=e(o.value);if(isPromise(s))t.add(SelfReferencingPromise(s));else if(s)return!0;o=r.next(),isPromise(o)&&(o=await o)}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}return!1},iteratorSome=function(r,e){for(const t of r){const n=e(t);if(isPromise(n))return asyncIteratorSome(r,e,new Set([SelfReferencingPromise(n)]));if(n)return!0}return!1},reducerAnySync=r=>function(e,t){return!!e||r(t)},reducerSome=r=>function(e,t){return!0===e?e:isPromise(e)?e.then(curry2(reducerAnySync(r),__,t)):!!e||r(t)},_some=function(r,e){return isArray(r)?arraySome(r,e):null==r?e(r):"function"==typeof r[symbolIterator]?iteratorSome(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorSome(r[symbolAsyncIterator](),e,new Set):"function"==typeof r.reduce?r.reduce(reducerSome(e),!1):r.constructor==Object?arraySome(objectValues(r),e):e(r)},some=function(r,e){return"function"==typeof r?curry2(_some,__,r):isPromise(r)?r.then(curry2(_some,__,e)):_some(r,e)},arrayEvery=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=e(r[o]);if(isPromise(t))n.push(t);else if(!t)return!1}return 0==n.length||promiseAll(n).then(curry3(callPropUnary,__,"every",Boolean))},iteratorEvery=function(r,e){const t=[];for(const n of r){const r=e(n);if(isPromise(r))t.push(r);else if(!r)return!1}return 0==t.length||promiseAll(t).then(curry3(callPropUnary,__,"every",Boolean))},asyncIteratorEvery=async function(r,e,t,n=20){let o=await r.next();for(;!o.done;){if(t.size>=n){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}const s=e(o.value);if(isPromise(s))t.add(SelfReferencingPromise(s));else if(!s)return!1;o=await r.next()}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}return!0},reducerAllSync=(r,e,t)=>!!e&&r(t),reducerEvery=r=>function(e,t){return!1!==e&&(isPromise(e)?e.then(curry3(reducerAllSync,r,__,t)):!!e&&r(t))},_every=function(r,e){return isArray(r)?arrayEvery(r,e):null==r?e(r):"function"==typeof r[symbolIterator]?iteratorEvery(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorEvery(r[symbolAsyncIterator](),e,new Set):"function"==typeof r.reduce?r.reduce(reducerEvery(e),!0):r.constructor==Object?arrayEvery(objectValues(r),e):e(r)},every=function(r,e){return"function"==typeof r?curry2(_every,__,r):isPromise(r)?r.then(curry2(_every,__,e)):_every(r,e)},areAllValuesTruthy=function(r,e){const t=r.length;for(;++e<t;){const t=r[e];if(isPromise(t))return t.then(curry3(thunkConditional,__,thunkify2(areAllValuesTruthy,r,e),always(!1)));if(!t)return!1}return!0},asyncArePredicatesAllTruthy=async function(r,e,t){const n=e.length;for(;++t<n;){let n=e[t];if("function"==typeof n&&(n=n(...r)),isPromise(n)&&(n=await n),!n)return!1}return!0},areAllPredicatesTruthy=function(r,e){const t=e.length;let n=-1;for(;++n<t;){let t=e[n];if("function"==typeof t&&(t=t(...r)),isPromise(t))return t.then(curry3(thunkConditional,__,thunkify3(asyncArePredicatesAllTruthy,r,e,n),always(!1)));if(!t)return!1}return!0},and=function(...r){const e=r.pop();return areAllValuesNonfunctions(e)?areAllValuesTruthy(e,-1):0==r.length?curryArgs2(areAllPredicatesTruthy,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAllPredicatesTruthy,__,e)):areAllPredicatesTruthy(r,e)},areAnyNonfunctionsTruthy=function(r,e){const t=r.length;for(;++e<t;){const t=r[e];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,r,e)));if(t)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(r,e,t){const n=e.length;for(;++t<n;){let n=e[t];if("function"==typeof n&&(n=n(...r)),isPromise(n)&&(n=await n),n)return!0}return!1},areAnyPredicatesTruthy=function(r,e){const t=e.length;let n=-1;for(;++n<t;){let t=e[n];if("function"==typeof t&&(t=t(...r)),isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,r,e,n)));if(t)return!0}return!1},or=function(...r){const e=r.pop();return areAllValuesNonfunctions(e)?areAnyNonfunctionsTruthy(e,-1):0==r.length?curryArgs2(areAnyPredicatesTruthy,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAnyPredicatesTruthy,__,e)):areAnyPredicatesTruthy(r,e)},negate=r=>!r,_not=function(r,e){const t=e(...r);return isPromise(t)?t.then(negate):!t},not=function(...r){const e=r.pop();return"function"==typeof e?0==r.length?curryArgs2(_not,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_not,__,e)):_not(r,e):isPromise(e)?e.then(negate):!e},curryArgs4ResolveArgs0=(r,e,t,n)=>function(...o){return r(o,e,t,n)},curryArgs4ResolveArgs1=(r,e,t,n)=>function(...o){return r(e,o,t,n)},curryArgs4ResolveArgs2=(r,e,t,n)=>function(...o){return r(e,t,o,n)},curryArgs4ResolveArgs3=(r,e,t,n)=>function(...o){return r(e,t,n,o)},curryArgs4=function(r,e,t,n,o){return e==__?curryArgs4ResolveArgs0(r,t,n,o):t==__?curryArgs4ResolveArgs1(r,e,n,o):n==__?curryArgs4ResolveArgs2(r,e,t,o):curryArgs4ResolveArgs3(r,e,t,n)},leftResolverRightResolverCompare=function(r,e,t,n){const o=t(...r),s=n(...r);return isPromise(o)||isPromise(s)?promiseAll([o,s]).then(spread2(e)):e(o,s)},leftResolverRightValueCompare=function(r,e,t,n){const o=t(...r);return isPromise(o)||isPromise(n)?promiseAll([o,n]).then(spread2(e)):e(o,n)},leftValueRightResolverCompare=function(r,e,t,n){const o=n(...r);return isPromise(t)||isPromise(o)?promiseAll([t,o]).then(spread2(e)):e(t,o)},ComparisonOperator=r=>function(...e){const t=e.pop(),n=e.pop(),o="function"==typeof n,s="function"==typeof t;return o&&s?0==e.length?curryArgs4(leftResolverRightResolverCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightResolverCompare,__,r,n,t)):leftResolverRightResolverCompare(e,r,n,t):o?0==e.length?curryArgs4(leftResolverRightValueCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightValueCompare,__,r,n,t)):leftResolverRightValueCompare(e,r,n,t):s?0==e.length?curryArgs4(leftValueRightResolverCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftValueRightResolverCompare,__,r,n,t)):leftValueRightResolverCompare(e,r,n,t):isPromise(n)||isPromise(t)?promiseAll([n,t]).then(spread2(r)):r(n,t)},equals=function(r,e){return r==e},eq=ComparisonOperator(equals),greaterThan=(r,e)=>r>e,gt=ComparisonOperator(greaterThan),lessThan=(r,e)=>r<e,lt=ComparisonOperator(lessThan),greaterThanOrEqual=(r,e)=>r>=e,gte=ComparisonOperator(greaterThanOrEqual),lessThanOrEqual=(r,e)=>r<=e,lte=ComparisonOperator(lessThanOrEqual),memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,s=r;for(;++o<n;)if(s=s[t[o]],null==s)return;return s},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return"string"==typeof r||"number"==typeof r||isArray(r)?curry3(_get,__,r,e):isPromise(r)?r.then(curry3(_get,__,e,t)):_get(r,e,t)},setByPath=function(r,e,t){if(!isObject(r))return r;const n=propertyPathToArray(t),o=n.length,s=o-1,i={...r};let c=i,u=-1;for(;++u<o;){const r=n[u];if(u==s)c[r]=e;else{const e=c[r],t=isArray(e)?e.slice():{...e};c[r]=t,c=t}}return i},_set=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(setByPath,r,__,e)):setByPath(r,n,e)}return isPromise(t)?t.then(curry3(setByPath,r,__,e)):setByPath(r,t,e)},set=function(r,e,t){return null==t?curry3(_set,__,r,e):isPromise(r)?r.then(curry3(_set,__,e,t)):_set(r,e,t)},_pick=function(r,e){if(null==r)return r;const t=e.length;let n={},o=-1;for(;++o<t;){const t=e[o],s=getByPath(r,t);null!=s&&(n=setByPath(n,s,t))}return n},pick=function(r,e){return null==e?curry2(_pick,__,r):isPromise(r)?r.then(curry2(_pick,__,e)):_pick(r,e)},deleteByPath=function(r,e){if(null==r)return;const t=propertyPathToArray(e),n=t.length-1;let o=-1,s=r;for(;++o<n;)if(s=s[t[o]],null==s)return;const i=t[o];null!=s&&i in s&&delete s[i]},objectCopyDeep=function(r){const e={};for(const t in r){const n=r[t];isArray(n)?e[t]=arrayCopyDeep(n):null!=n&&n.constructor==Object?e[t]=objectCopyDeep(n):e[t]=n}return e},arrayCopyDeep=function(r){const e=r.length,t=[];let n=-1;for(;++n<e;){const e=r[n];isArray(e)?t[n]=arrayCopyDeep(e):null!=e&&e.constructor==Object?t[n]=objectCopyDeep(e):t[n]=e}return t},copyDeep=function(r){return isArray(r)?arrayCopyDeep(r):null==r?r:r.constructor==Object?objectCopyDeep(r):r},_omit=function(r,e){const t=e.length,n=copyDeep(r);let o=-1;for(;++o<t;)deleteByPath(n,e[o]);return n},omit=function(r,e){return null==e?curry2(_omit,__,r):isPromise(r)?r.then(curry2(_omit,__,e)):_omit(r,e)},thunkify=(r,...e)=>function(){return areAnyValuesPromises(e)?promiseAll(e).then(curry2(funcApply,r,__)):r(...e)},curry=(r,...e)=>curryArity(r.length,r,this,e);curry.arity=function(r,e,...t){return curryArity(r,e,this,t)},curry.call=function(r,e,...t){return curryArity(r.length,r,e,t)};const rubico={pipe:pipe,compose:compose,tap:tap,forEach:forEach,switchCase:switchCase,tryCatch:tryCatch,all:all,assign:assign,get:get,set:set,pick:pick,omit:omit,map:map,filter:filter,flatMap:flatMap,reduce:reduce,transform:transform,and:and,or:or,not:not,some:some,every:every,eq:eq,gt:gt,lt:lt,gte:gte,lte:lte,thunkify:thunkify,always:always,curry:curry,__:__};export{pipe,compose,tap,forEach,switchCase,tryCatch,all,assign,get,set,pick,omit,map,filter,reduce,transform,flatMap,and,or,not,some,every,eq,gt,lt,gte,lte,thunkify,always,curry,__};export default rubico;
7
+ const isArray=Array.isArray,isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;){const e=r[t];if(isPromise(e))return!0}return!1}for(const e in r){const t=r[e];if(isPromise(t))return!0}return!1},promiseAll=Promise.all.bind(Promise),funcConcat=(r,e)=>function(...t){const n=r(...t);return isPromise(n)?n.then(e):e(n)},funcApply=(r,e)=>r(...e),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(t){return r(t,e)},curry2ResolveArg1=(r,e)=>function(t){return r(e,t)},curry2=function(r,e,t){return e==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,e)},pipe=function(...r){if("function"==typeof r[0])return r.reduce(funcConcat);const e=r.pop().reduce(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then(curry2(funcApply,e,__)):e(...r)},compose=function(...r){if("function"==typeof r[0])return r.reduceRight(funcConcat);const e=r.pop().reduceRight(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then(curry2(funcApply,e,__)):e(...r)},always=r=>function(){return r},thunkifyArgs=(r,e)=>function(){return r(...e)},thunkConditional=(r,e,t)=>r?e():t(),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},curryArgs2ResolveArgs0=(r,e,t)=>function(...t){return r(t,e)},curryArgs2ResolveArgs1=(r,e,t)=>function(...t){return r(e,t)},curryArgs2=function(r,e,t){return e==__?curryArgs2ResolveArgs0(r,t):curryArgs2ResolveArgs1(r,e)},curryArgs3ResolveArgs0=(r,e,t)=>function(...n){return r(n,e,t)},curryArgs3ResolveArgs1=(r,e,t)=>function(...n){return r(e,n,t)},curryArgs3ResolveArgs2=(r,e,t)=>function(...n){return r(e,t,n)},curryArgs3=function(r,e,t,n){return e==__?curryArgs3ResolveArgs0(r,t,n):t==__?curryArgs3ResolveArgs1(r,e,n):curryArgs3ResolveArgs2(r,e,t)},_tap=function(r,e){const t=r[0],n=e(...r);return isPromise(n)?n.then(always(t)):t},tap=function(...r){const e=r.pop();return 0==r.length?curryArgs2(_tap,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_tap,__,e)):_tap(r,e)},_tapIf=function(r,e,t){const n=r(...t);if(isPromise(n))return n.then(curry3(thunkConditional,__,thunkifyArgs(tap(e),t),always(t[0])));if(n){const r=e(...t);if(isPromise(r))return r.then(always(t[0]))}return t[0]};tap.if=function(...r){if(2==r.length)return curryArgs3(_tapIf,r[0],r[1],__);const e=r.length,t=r[e-1],n=r[e-2],o=r.slice(0,-2);return areAnyValuesPromises(o)?promiseAll(o).then(curry3(_tapIf,n,t,__)):_tapIf(n,t,r)};const areAllValuesNonfunctions=function(r){if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)if("function"==typeof r[t])return!1;return!0}for(const e in r)if("function"==typeof r[e])return!1;return!0},promiseObjectAllExecutor=r=>function(e){const t={};let n=0;for(const o in r){const s=r[o];isPromise(s)?(n+=1,s.then((r=>function(o){t[r]=o,n-=1,0==n&&e(t)})(o))):t[o]=s}0==n&&e(t)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),functionArrayAll=function(r,e){const t=r.length,n=Array(t);let o=-1,s=!1;for(;++o<t;){const t=r[o],i="function"==typeof t?t(...e):t;isPromise(i)&&(s=!0),n[o]=i}return s?promiseAll(n):n},curry4ResolveArg0=(r,e,t,n)=>function(o){return r(o,e,t,n)},curry4ResolveArg1=(r,e,t,n)=>function(o){return r(e,o,t,n)},curry4ResolveArg2=(r,e,t,n)=>function(o){return r(e,t,o,n)},curry4ResolveArg3=(r,e,t,n)=>function(o){return r(e,t,n,o)},curry4=function(r,e,t,n,o){return e==__?curry4ResolveArg0(r,t,n,o):t==__?curry4ResolveArg1(r,e,n,o):n==__?curry4ResolveArg2(r,e,t,o):curry4ResolveArg3(r,e,t,n)},objectSet=function(r,e,t){return r[e]=t,r},asyncFunctionArrayAllSeries=async function(r,e,t,n){const o=r.length;for(;++n<o;){const o=r[n](...e);t[n]=isPromise(o)?await o:o}return t},functionArrayAllSeries=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=r[o](...e);if(isPromise(t))return t.then(funcConcat(curry3(objectSet,n,o,__),curry4(asyncFunctionArrayAllSeries,r,e,__,o)));n[o]=t}return n},functionObjectAll=function(r,e){const t={},n=[];for(const o in r){const s=r[o],i="function"==typeof s?s(...e):s;isPromise(i)?n.push(i.then(curry3(objectSet,t,o,__))):t[o]=i}return 0==n.length?t:promiseAll(n).then(always(t))},_allValues=function(r){return isArray(r)?areAnyValuesPromises(r)?promiseAll(r):r:areAnyValuesPromises(r)?promiseObjectAll(r):r},all=function(...r){if(1==r.length){const e=r[0];return isPromise(e)?e.then(_allValues):areAllValuesNonfunctions(e)?_allValues(e):isArray(e)?curryArgs2(functionArrayAll,e,__):curryArgs2(functionObjectAll,e,__)}const e=r[r.length-1],t=r.slice(0,-1);return areAnyValuesPromises(t)?isArray(e)?promiseAll(t).then(curry2(functionArrayAll,e,__)):promiseAll(t).then(curry2(functionObjectAll,e,__)):isArray(e)?functionArrayAll(e,t):functionObjectAll(e,t)};all.series=function(...r){const e=r.pop();return 0==r.length?curryArgs2(functionArrayAllSeries,e,__):areAnyValuesPromises(r)?promiseAll(r).then(curry2(functionArrayAllSeries,e,__)):functionArrayAllSeries(e,r)};const objectAssign=Object.assign,_assign=function(r,e){const t=functionObjectAll(e,[r]);return isPromise(t)?t.then(curry3(objectAssign,{},r,__)):{...r,...t}},assign=function(r,e){return null==e?curry2(_assign,__,r):isPromise(r)?r.then(curry2(_assign,__,e)):_assign(r,e)},catcherApply=function(r,e,t){return r(e,...t)},_tryCatch=function(r,e,t){try{const n=r(...t);return isPromise(n)?n.catch(curry3(catcherApply,e,__,t)):n}catch(r){return e(r,...t)}},tryCatch=function(...r){if(r.length>2){const e=r.pop(),t=r.pop();return areAnyValuesPromises(r)?promiseAll(r).then(curry3(_tryCatch,t,e,__)):_tryCatch(t,e,r)}const e=r[0],t=r[1];return function(...r){return _tryCatch(e,t,r)}},thunkify3=(r,e,t,n)=>function(){return r(e,t,n)},arrayConditional=function(r,e,t){const n=r.length-1;for(;(t+=2)<n;){const n=r[t],o=r[t+1],s="function"==typeof n?n(...e):n;if(isPromise(s))return s.then(curry3(thunkConditional,__,"function"==typeof o?thunkifyArgs(o,e):always(o),thunkify3(arrayConditional,r,e,t)));if(s)return"function"==typeof o?o(...e):o}if(t==r.length)return;const o=r[n];return"function"==typeof o?o(...e):o},thunkify2=(r,e,t)=>function(){return r(e,t)},nonfunctionsConditional=function(r,e){const t=r.length,n=t-1;for(;(e+=2)<n;){const t=r[e],n=r[e+1];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(n),thunkify2(nonfunctionsConditional,r,e)));if(t)return n}if(e!=t)return r[e]},switchCase=(...r)=>{const e=r.pop();return areAllValuesNonfunctions(e)?nonfunctionsConditional(e,-2):0==r.length?curryArgs3(arrayConditional,e,__,-2):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,e,__,-2)):arrayConditional(e,r,-2)},symbolIterator=Symbol.iterator,MappingIterator=(r,e)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const t=r.next();return t.done?t:{value:e(t.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,e)=>({[symbolAsyncIterator](){return this},async next(){const t=await r.next();if(t.done)return t;const n=e(t.value);return isPromise(n)?n.then(NextIteration):{value:n,done:!1}}}),isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},arrayMap=function(r,e){const t=r.length,n=Array(t);let o=-1,s=!1;for(;++o<t;){const t=e(r[o],o,r);isPromise(t)&&(s=!0),n[o]=t}return s?promiseAll(n):n},callPropUnary=(r,e,t)=>r[e](t),stringMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},setMap=function(r,e){const t=new Set,n=[];for(const o of r){const s=e(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,t,"add",__))):t.add(s)}return 0==n.length?t:promiseAll(n).then(always(t))},callPropBinary=(r,e,t,n)=>r[e](t,n),mapMap=function(r,e){const t=new Map,n=[];for(const[o,s]of r){const i=e(s,o,r);isPromise(i)?n.push(i.then(curry4(callPropBinary,t,"set",o,__))):t.set(o,i)}return 0==n.length?t:promiseAll(n).then(always(t))},objectMap=function(r,e){const t={};let n=!1;for(const o in r){const s=e(r[o],o,r);isPromise(s)&&(n=!0),t[o]=s}return n?promiseObjectAll(t):t},arrayMapSeriesAsync=async function(r,e,t,n){const o=r.length;for(;++n<o;){const o=e(r[n],n);t[n]=isPromise(o)?await o:o}return t},arrayMapSeries=function(r,e){const t=r.length,n=Array(t);let o=-1;for(;++o<t;){const t=e(r[o],o);if(isPromise(t))return t.then(funcConcat(curry3(objectSet,n,o,__),curry4(arrayMapSeriesAsync,r,e,__,o)));n[o]=t}return n},stringMapSeries=function(r,e){const t=arrayMapSeries(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},thunkify4=(r,e,t,n,o)=>function(){return r(e,t,n,o)},_objectMapSeriesAsync=async function(r,e,t,n){for(const o in r){if(o in n)continue;let s=e(r[o]);isPromise(s)&&(s=await s),t[o]=s}return t},objectMapSeries=function(r,e){const t={},n={};for(const o in r){n[o]=!0;const s=e(r[o],o,r);if(isPromise(s))return s.then(funcConcat(curry3(objectSet,t,o,__),thunkify4(_objectMapSeriesAsync,r,e,t,n)));t[o]=s}return t},setAdd=function(r,e){return r.add(e),r},_setMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value);isPromise(o)&&(o=await o),t.add(o),n=r.next()}return t},setMapSeries=function(r,e){const t=new Set,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=e(o.value);if(isPromise(r))return r.then(funcConcat(curry2(setAdd,t,__),thunkify3(_setMapSeriesAsync,n,e,t)));t.add(r),o=n.next()}return t},mapSet=function(r,e,t){return r.set(e,t)},_mapMapSeriesAsync=async function(r,e,t){let n=r.next();for(;!n.done;){let o=e(n.value[1]);isPromise(o)&&(o=await o),t.set(n.value[0],o),n=r.next()}return t},mapMapSeries=function(r,e){const t=new Map,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=o.value[0],s=e(o.value[1]);if(isPromise(s))return s.then(funcConcat(curry3(mapSet,t,r,__),thunkify3(_mapMapSeriesAsync,n,e,t)));t.set(r,s),o=n.next()}return t},tapSync=r=>function(...e){return r(...e),e[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,e,t,n,o,s){const i=r.length;for(;++o<i;){s.size>=t&&await promiseRace(s);const i=e(r[o]);if(isPromise(i)){const r=i.then(tapSync(()=>s.delete(r)));s.add(r),n[o]=r}else n[o]=i}return promiseAll(n)},arrayMapPool=function(r,e,t){const n=r.length,o=Array(n);let s=-1;for(;++s<n;){const n=t(r[s]);if(isPromise(n)){const i=new Set,c=n.then(tapSync(()=>i.delete(c)));return i.add(c),o[s]=c,arrayMapPoolAsync(r,t,e,o,s,i)}o[s]=n}return o},stringMapPool=function(r,e,t){const n=arrayMapPool(r,e,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},_setMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=n(i.value,i.value,r);if(isPromise(c)){const r=c.then(e=>{s.delete(r),o.add(e)});s.add(r)}else o.add(c);i=e.next()}return s.size>0&&await promiseAll(s),o},setMapPool=function(r,e,t){const n=new Set,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=t(s.value,s.value,r);if(isPromise(i)){const s=new Set,c=i.then(r=>{s.delete(c),n.add(r)});return s.add(c),_setMapPoolAsync(r,o,e,t,n,s)}n.add(i),s=o.next()}return n},_mapMapPoolAsync=async function(r,e,t,n,o,s){let i=e.next();for(;!i.done;){s.size>=t&&await promiseRace(s);const c=i.value[0],u=n(i.value[1],c,r);if(isPromise(u)){o.set(c,u);const r=u.then(e=>{s.delete(r),o.set(c,e)});s.add(r)}else o.set(c,u);i=e.next()}return s.size>0&&await promiseAll(s),o},mapMapPool=function(r,e,t){const n=new Map,o=r[symbolIterator]();let s=o.next();for(;!s.done;){const i=s.value[0],c=t(s.value[1],i,r);if(isPromise(c)){const s=new Set;n.set(i,c);const u=c.then(r=>{s.delete(u),n.set(i,r)});return s.add(u),_mapMapPoolAsync(r,o,e,t,n,s)}n.set(i,c),s=o.next()}return n},_objectMapPoolAsync=async function(r,e,t,n,o,s){for(const i in r){if(i in o)continue;s.size>=e&&await promiseRace(s);const c=t(r[i],i,r);if(isPromise(c)){n[i]=c;const r=c.then(e=>{s.delete(r),n[i]=e});s.add(r)}else n[i]=c}return s.size>0&&await promiseAll(s),n},objectMapPool=function(r,e,t){const n={},o={};for(const s in r){o[s]=!0;const i=t(r[s],s,r);if(isPromise(i)){const c=new Set;n[s]=i;const u=i.then(r=>{c.delete(u),n[s]=r});return c.add(u),_objectMapPoolAsync(r,e,t,n,o,c)}n[s]=i}return n},funcApply2=(r,e,t)=>r.apply(e,t),_curryArity=(r,e,t,n)=>function(...o){const s=n.length,i=o.length,c=[];let u=-1,a=-1,l=0;for(;++u<s;){const s=n[u];if(s==__&&(a+=1)<i){const r=o[a];r==__&&(l+=1),c.push(r)}else c.push(s);if(c.length==r)return areAnyValuesPromises(c)?0==l?promiseAll(c).then(curry3(funcApply2,e,t,__)):promiseAll(c).then(curry4(curryArity,r,e,t,__)):0==l?e.apply(t,c):curryArity(r,e,t,c)}for(;++a<i;){const n=o[a];if(n==__&&(l+=1),c.push(n),c.length==r)return areAnyValuesPromises(c)?0==l?promiseAll(c).then(curry3(funcApply2,e,t,__)):promiseAll(c).then(curry4(curryArity,r,e,t,__)):0==l?e.apply(t,c):curryArity(r,e,t,c)}return areAnyValuesPromises(c)?promiseAll(c).then(curry4(curryArity,r,e,t,__)):curryArity(r,e,t,c)},curryArity=function(r,e,t,n){const o=n.length;if(o<r)return _curryArity(r,e,t,n);let s=-1;for(;++s<o;){if(n[s]==__)return _curryArity(r,e,t,n)}return e.apply(t,n)},spread2=r=>function([e,t]){return r(e,t)},objectMapEntries=function(r,e){const t={},n=[];for(const o in r){const s=e([o,r[o]]);isPromise(s)?n.push(s.then(spread2(curryArity(3,objectSet,this,[t])))):t[s[0]]=s[1]}return 0==n.length?t:promiseAll(n).then(always(t))},mapMapEntriesForEachCallback=(r,e,t)=>function(n,o){const s=r([o,n]);isPromise(s)?t.push(s.then(spread2(curryArity(3,mapSet,this,[e])))):e.set(s[0],s[1])},mapMapEntries=function(r,e){const t=new Map,n=[];return r.forEach(mapMapEntriesForEachCallback(e,t,n)),0==n.length?t:promiseAll(n).then(always(t))},_map=function(r,e){return isArray(r)?arrayMap(r,e):null==r?r:"function"==typeof r.then?r.then(e):"function"==typeof r.map?r.map(e):"string"==typeof r||r.constructor==String?stringMap(r,e):r.constructor==Set?setMap(r,e):r.constructor==Map?mapMap(r,e):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),e):r.constructor==Object?objectMap(r,e):e(r)},map=function(r,e){return null==e?curry2(_map,__,r):isPromise(r)?r.then(curry2(_map,__,e)):_map(r,e)},_mapEntries=(r,e)=>{if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return objectMapEntries(r,e);if(r.constructor==Map)return mapMapEntries(r,e);throw new TypeError("value is not an Object or Map")};map.entries=function(r,e){return null==e?curry2(_mapEntries,__,r):isPromise(r)?r.then(curry2(_mapEntries,__,e)):_mapEntries(r,e)};const _mapSeries=function(r,e){if(isArray(r))return arrayMapSeries(r,e);if(null==r)throw new TypeError(`invalid collection ${r}`);if("string"==typeof r||r.constructor==String)return stringMapSeries(r,e);if(r.constructor==Set)return setMapSeries(r,e);if(r.constructor==Map)return mapMapSeries(r,e);if(r.constructor==Object)return objectMapSeries(r,e);throw new TypeError(`invalid collection ${r}`)};map.series=function(r,e){return null==e?curry2(_mapSeries,__,r):isPromise(r)?r.then(curry2(_mapSeries,__,e)):_mapSeries(r,e)};const _mapPool=function(r,e,t){if(isArray(r))return arrayMapPool(r,e,t);if(null==r)throw new TypeError(`invalid functor ${r}`);if("string"==typeof r||r.constructor==String)return stringMapPool(r,e,t);if(r.constructor==Set)return setMapPool(r,e,t);if(r.constructor==Map)return mapMapPool(r,e,t);if(r.constructor==Object)return objectMapPool(r,e,t);throw new TypeError(`invalid functor ${r}`)};map.pool=function(r,e,t){return null==t?curry3(_mapPool,__,r,e):isPromise(r)?r.then(curry3(_mapPool,__,e,t)):_mapPool(r,e,t)};const FilteringIterator=(r,e)=>({[symbolIterator](){return this},next(){let t=r.next();for(;!t.done;){const{value:n}=t;if(e(n))return{value:n,done:!1};t=r.next()}return t}}),FilteringAsyncIterator=(r,e)=>({isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:t,done:n}=await r.next();if(n)this.isAsyncIteratorDone=!0;else{const r=e(t);if(isPromise(r)?await r:r)return{value:t,done:!1}}}return{value:void 0,done:!0}}}),arrayExtendMap=function(r,e,t,n){const o=e.length;let s=r.length-1;for(;++n<o;)r[++s]=t(e[n],n,r);return r},arrayFilterByConditions=function(r,e,t,n){const o=r.length;let s=-1;for(;++t<o;)n[++s]&&e.push(r[t]);return e},arrayFilter=function(r,e){const t=r.length,n=[];let o=-1,s=-1;for(;++o<t;){const t=r[o],i=e(t,o,r);if(isPromise(i))return promiseAll(arrayExtendMap([i],r,e,o)).then(curry4(arrayFilterByConditions,r,n,o-1,__));i&&(n[++s]=t)}return n},stringFilter=function(r,e){const t=arrayFilter(r,e);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")},thunkify1=(r,e)=>function(){return r(e)},noop=function(){},setFilter=function(r,e){const t=new Set,n=t.add.bind(t),o=[];for(const s of r){const i=e(s,s,r);isPromise(i)?o.push(i.then(curry3(thunkConditional,__,thunkify1(n,s),noop))):i&&t.add(s)}return 0==o.length?t:promiseAll(o).then(always(t))},mapFilter=function(r,e){const t=new Map,n=[];for(const[o,s]of r){const i=e(s,o,r);isPromise(i)?n.push(i.then(curry3(thunkConditional,__,thunkify4(callPropBinary,t,"set",o,s),noop))):i&&t.set(o,s)}return 0==n.length?t:promiseAll(n).then(always(t))},objectSetIf=function(r,e,t,n){n&&(r[e]=t)},objectFilter=function(r,e){const t={},n=[];for(const o in r){const s=r[o],i=e(s,o,r);isPromise(i)?n.push(i.then(curry4(objectSetIf,t,o,r[o],__))):i&&(t[o]=s)}return 0==n.length?t:promiseAll(n).then(always(t))},_filter=function(r,e){return isArray(r)?arrayFilter(r,e):null==r?r:"string"==typeof r||r.constructor==String?stringFilter(r,e):r.constructor==Set?setFilter(r,e):r.constructor==Map?mapFilter(r,e):"function"==typeof r.filter?r.filter(e):"function"==typeof r[symbolIterator]?FilteringIterator(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?FilteringAsyncIterator(r[symbolAsyncIterator](),e):r.constructor==Object?objectFilter(r,e):r},filter=function(r,e){return"function"==typeof r?curry2(_filter,__,r):isPromise(r)?r.then(curry2(_filter,__,e)):_filter(r,e)},objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,t){let n=r.next();if(n.done)return t;for(;!n.done;)t=e(t,n.value),isPromise(t)&&(t=await t),n=r.next();return t},iteratorReduce=function(r,e,t){let n=r.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=r.next());!n.done;){if(t=e(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,r,e,__));n=r.next()}return t},asyncIteratorReduce=async function(r,e,t){let n=await r.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await r.next());!n.done;)t=await e(t,n.value),n=await r.next();return t},arrayReduceAsync=async function(r,e,t,n){const o=r.length;for(;++n<o;)t=e(t,r[n],n,r),isPromise(t)&&(t=await t);return t},arrayReduce=function(r,e,t){const n=r.length;let o=-1;for(void 0===t&&(t=r[++o]);++o<n;)if(t=e(t,r[o],o,r),isPromise(t))return t.then(curry4(arrayReduceAsync,r,e,__,o));return t},curry5ResolveArg0=(r,e,t,n,o)=>function(s){return r(s,e,t,n,o)},curry5ResolveArg1=(r,e,t,n,o)=>function(s){return r(e,s,t,n,o)},curry5ResolveArg2=(r,e,t,n,o)=>function(s){return r(e,t,s,n,o)},curry5ResolveArg3=(r,e,t,n,o)=>function(s){return r(e,t,n,s,o)},curry5ResolveArg4=(r,e,t,n,o)=>function(s){return r(e,t,n,o,s)},curry5=function(r,e,t,n,o,s){return e==__?curry5ResolveArg0(r,t,n,o,s):t==__?curry5ResolveArg1(r,e,n,o,s):n==__?curry5ResolveArg2(r,e,t,o,s):o==__?curry5ResolveArg3(r,e,t,n,s):curry5ResolveArg4(r,e,t,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,t,n,o){const s=n.length;for(;++o<s;){const s=n[o];t=e(t,r[s],s,r),isPromise(t)&&(t=await t)}return t},objectReduce=function(r,e,t){const n=objectKeys(r),o=n.length;let s=-1;for(void 0===t&&(t=r[n[++s]]);++s<o;){const o=n[s];if(t=e(t,r[o],o,r),isPromise(t))return t.then(curry5(objectReduceAsync,r,e,__,n,s))}return t},mapReduceAsync=async function(r,e,t,n){for(const[o,s]of n)t=e(t,s,o,r),isPromise(t)&&(t=await t);return t},mapReduce=function(r,e,t){const n=r.entries();if(void 0===t){const r=n.next();if(r.done)return t;t=r.value[1]}for(const[o,s]of n)if(t=e(t,s,o,r),isPromise(t))return t.then(curry4(mapReduceAsync,r,e,__,n));return t},reducerConcat=(r,e)=>function(t,n){const o=r(t,n);return isPromise(o)?o.then(curry2(e,__,n)):e(o,n)},genericReduce=function(r,e,t){return isArray(r)?arrayReduce(r,e,t):null==r?void 0===t?curry2(e,r,__):e(t,r):r.constructor==Map?mapReduce(r,e,t):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,t):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,t):"function"==typeof r.reduce?r.reduce(e,t):"function"==typeof r.chain?r.chain(curry2(e,t,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,t,__)):r.constructor==Object?objectReduce(r,e,t):void 0===t?curry2(e,r,__):e(t,r)},_reduce=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,n)}return isPromise(t)?t.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,t)},reduce=function(...r){return"function"==typeof r[0]?curry3(_reduce,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_reduce,__,r[1],r[2])):_reduce(r[0],r[1],r[2])},isBinary=ArrayBuffer.isView,add=(r,e)=>r+e,_arrayExtend=function(r,e){const t=r.length,n=e.length;let o=-1;for(;++o<n;)r[t+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const t=r.length,n=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(t+e.length):new r.constructor(t+e.length);return n.set(r),n.set(e,t),n},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,t,n){return r.write(e,t,n),r},_streamExtendExecutor=(r,e)=>function(t,n){e.on("data",__streamWrite(r)),e.on("end",thunkify1(t,r)),e.on("error",n)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return isNodeReadStream(e)?_streamExtend(r,e):(r.write(e),r)},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const t of e)r.add(t);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,t){const n=genericReduce(r,e(noop),null);return isPromise(n)?n.then(always(t)):t},genericTransform=function(r,e,t){if(isArray(t))return genericReduce(r,e(arrayExtend),t);if(isBinary(t)){const n=genericReduce(r,e(arrayExtend),[]);return isPromise(n)?n.then(curry2(binaryExtend,t,__)):binaryExtend(t,n)}if(null==t)return identityTransform(r,e,t);const n=t.constructor;if("string"==typeof t||n==String){const n=genericReduce(r,e(arrayExtend),[t]);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")}return"function"==typeof t.concat?genericReduce(r,e(callConcat),t):"function"==typeof t.write?genericReduce(r,e(streamExtend),t):n==Set?genericReduce(r,e(setExtend),t):n==Object?genericReduce(r,e(objectAssign),t):identityTransform(r,e,t)},_transform=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)}return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])},arrayPush=function(r,e){return r.push(e),r},FlatMappingIterator=function(r,e){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const r=t[n];return n+=1,{value:r,done:!1}}const o=r.next();if(o.done)return o;const s=genericReduce(e(o.value),arrayPush,[]);return s.length>1&&(t=s,n=1),{value:s[0],done:!1}}}},sleep=r=>new Promise(e=>{setTimeout(e,r)}),FlatMappingAsyncIterator=function(r,e){const t=[],n=new Set;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||t.length>0||n.size>0;){if(!this.isAsyncIteratorDone){const{value:o,done:s}=await r.next();if(s)this.isAsyncIteratorDone=s;else{const r=e(o);if(isPromise(r)){const e=r.then(curry3(genericReduce,__,arrayPush,t)).then(()=>n.delete(e));n.add(e)}else{const e=genericReduce(r,arrayPush,t);if(isPromise(e)){const r=e.then(()=>n.delete(r));n.add(r)}}}}if(t.length>0)return{value:t.shift(),done:!1};n.size>0&&await promiseRace([sleep(1e3),...n])}return{value:void 0,done:!0}}}},getArg1=(r,e)=>e,identity=r=>r,funcConcatSync=(r,e)=>function(...t){return e(r(...t))},asyncIteratorForEach=async function(r,e){const t=[];for await(const n of r){const r=e(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},arrayFlatten=function(r){const e=r.length,t=[],n=[];let o=-1;for(;++o<e;){const e=r[o];if(isArray(e)){const r=e.length;let t=-1;for(;++t<r;)n.push(e[t])}else if(null==e)n.push(e);else if("function"==typeof e.then)t.push(e.then(curry2(arrayPush,n,__)));else if("function"==typeof e[symbolIterator])for(const r of e)n.push(r);else if("function"==typeof e[symbolAsyncIterator])t.push(asyncIteratorForEach(e[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof e.chain){const r=e.chain(identity);isPromise(r)?t.push(r.then(curry2(arrayPush,n,__))):n.push(r)}else if("function"==typeof e.flatMap){const r=e.flatMap(identity);isPromise(r)?t.push(r.then(curry2(arrayPush,n,__))):n.push(r)}else if("function"==typeof e.reduce){const r=e.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(r)&&t.push(r)}else if(e.constructor==Object)for(const r in e)n.push(e[r]);else n.push(e)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayFlatMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},objectFlatten=function(r){const e=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const s in r){const i=r[s];if(null!=i)if("function"==typeof i[symbolIterator])for(const r of i)objectAssign(t,r);else if("function"==typeof i[symbolAsyncIterator])e.push(asyncIteratorForEach(i[symbolAsyncIterator](),n));else if("function"==typeof i.chain){const r=i.chain(identity);isPromise(r)?e.push(r.then(n)):objectAssign(t,r)}else if("function"==typeof i.flatMap){const r=i.flatMap(identity);isPromise(r)?e.push(r.then(n)):n(r)}else if("function"==typeof i.reduce){const r=i.reduce(o,null);isPromise(r)&&e.push(r)}else objectAssign(t,i)}return 0==e.length?t:promiseAll(e).then(()=>t)},objectFlatMap=function(r,e){const t=objectMap(r,e);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},setFlatten=function(r){r.size;const e=[],t=new Set,n=(r,e)=>t.add(e),o=curry3(callPropUnary,t,"add",__);for(const s of r)if(isArray(s)){const r=s.length;let e=-1;for(;++e<r;)t.add(s[e])}else if(null==s)t.add(s);else if("function"==typeof s[symbolIterator])for(const r of s)t.add(r);else if("function"==typeof s[symbolAsyncIterator])e.push(asyncIteratorForEach(s[symbolAsyncIterator](),o));else if("function"==typeof s.chain){const r=s.chain(identity);isPromise(r)?e.push(r.then(o)):t.add(r)}else if("function"==typeof s.flatMap){const r=s.flatMap(identity);isPromise(r)?e.push(r.then(o)):t.add(r)}else if("function"==typeof s.reduce){const r=s.reduce(n,null);isPromise(r)&&e.push(r)}else if(s.constructor==Object)for(const r in s)t.add(s[r]);else t.add(s);return 0==e.length?t:promiseAll(e).then(()=>t)},setFlatMap=function(r,e){const t=setMap(r,e);return isPromise(t)?t.then(setFlatten):setFlatten(t)},arrayJoin=(r,e)=>r.join(e),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(r,e){const t=arrayMap(r,e);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},_flatMap=function(r,e){if(isArray(r))return arrayFlatMap(r,e);if(null==r)return e(r);if("function"==typeof r.then)return r.then(e);if("function"==typeof r.next)return symbolIterator in r?FlatMappingIterator(r,e):FlatMappingAsyncIterator(r,e);if("function"==typeof r.chain)return r.chain(e);if("function"==typeof r.flatMap)return r.flatMap(e);const t=r.constructor;return t==Object?objectFlatMap(r,e):t==Set?setFlatMap(r,e):"string"==typeof r||t==String?stringFlatMap(r,e):e(r)},flatMap=(r,e)=>"function"==typeof r?curry2(_flatMap,__,r):isPromise(r)?r.then(curry2(_flatMap,__,e)):_flatMap(r,e),arrayForEach=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=e(r[o],o,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,e){const t=[];for(const n in r){const o=e(r[n],n,r);isPromise(o)&&t.push(o)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,e){const t=[];for(const n of r){const r=e(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},_arrayForEachSeriesAsync=async function(r,e,t){const n=r.length;for(;++t<n;){const n=e(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,e){const t=r.length;let n=-1;for(;++n<t;){const t=e(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,e,n))}return r},_objectForEachSeriesAsync=async function(r,e,t){for(const n in r){if(n in t)continue;const o=e(r[n]);isPromise(o)&&await o}return r},objectForEachSeries=function(r,e){const t={};for(const n in r){t[n]=!0;const o=e(r[n],n,r);if(isPromise(o))return o.then(thunkify3(_objectForEachSeriesAsync,r,e,t))}return r},_iteratorForEachSeriesAsync=async function(r,e){let t=r.next();for(;!t.done;){const n=e(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,e){let t=r.next();for(;!r.done;){const n=e(t.value);if(isPromise(n))return n.then(thunkify2(_iteratorForEachSeriesAsync,r,e));t=r.next()}return r},asyncIteratorForEachSeries=async function(r,e){for await(const t of r){const r=e(t);isPromise(r)&&await r}return r},_forEach=function(r,e){return isArray(r)?arrayForEach(r,e):null==r?r:"function"==typeof r.forEach?(r.forEach(e),r):"function"==typeof r[symbolIterator]?iteratorForEach(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorForEach(r[symbolAsyncIterator](),e):r.constructor==Object?objectForEach(r,e):r},forEach=function(r,e){return"function"==typeof r?curry2(_forEach,__,r):isPromise(r)?r.then(curry2(_forEach,__,e)):_forEach(r,e)},_forEachSeries=function(r,e){if(isArray(r))return arrayForEachSeries(r,e);if(null==r)throw new TypeError(`invalid collection ${r}`);if("function"==typeof r[symbolIterator])return iteratorForEachSeries(r[symbolIterator](),e);if("function"==typeof r[symbolAsyncIterator])return asyncIteratorForEachSeries(r[symbolAsyncIterator](),e);if(r.constructor==Object)return objectForEachSeries(r,e);throw new TypeError(`invalid collection ${r}`)};forEach.series=function(r,e){return"function"==typeof r?curry2(_forEachSeries,__,r):isPromise(r)?r.then(curry2(_forEachSeries,__,e)):_forEachSeries(r,e)};const SelfReferencingPromise=function(r){const e=r.then(r=>[r,e]);return e},asyncArraySome=async function(r,e,t,n){const o=r.length;for(;++t<o;){const o=e(r[t]);if(isPromise(o))n.add(SelfReferencingPromise(o));else if(o)return!0}for(;n.size>0;){const[r,e]=await promiseRace(n);if(n.delete(e),r)return!0}return!1},arraySome=function(r,e){const t=r.length;let n=-1;for(;++n<t;){const t=e(r[n]);if(isPromise(t))return asyncArraySome(r,e,n,new Set([SelfReferencingPromise(t)]));if(t)return!0}return!1},asyncIteratorSome=async function(r,e,t,n=20){let o=r.next();for(isPromise(o)&&(o=await o);!o.done;){if(t.size>=n){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}const s=e(o.value);if(isPromise(s))t.add(SelfReferencingPromise(s));else if(s)return!0;o=r.next(),isPromise(o)&&(o=await o)}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}return!1},iteratorSome=function(r,e){for(const t of r){const n=e(t);if(isPromise(n))return asyncIteratorSome(r,e,new Set([SelfReferencingPromise(n)]));if(n)return!0}return!1},reducerAnySync=r=>function(e,t){return!!e||r(t)},reducerSome=r=>function(e,t){return!0===e?e:isPromise(e)?e.then(curry2(reducerAnySync(r),__,t)):!!e||r(t)},_some=function(r,e){return isArray(r)?arraySome(r,e):null==r?e(r):"function"==typeof r[symbolIterator]?iteratorSome(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorSome(r[symbolAsyncIterator](),e,new Set):"function"==typeof r.reduce?r.reduce(reducerSome(e),!1):r.constructor==Object?arraySome(objectValues(r),e):e(r)},some=function(r,e){return"function"==typeof r?curry2(_some,__,r):isPromise(r)?r.then(curry2(_some,__,e)):_some(r,e)},arrayEvery=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=e(r[o]);if(isPromise(t))n.push(t);else if(!t)return!1}return 0==n.length||promiseAll(n).then(curry3(callPropUnary,__,"every",Boolean))},iteratorEvery=function(r,e){const t=[];for(const n of r){const r=e(n);if(isPromise(r))t.push(r);else if(!r)return!1}return 0==t.length||promiseAll(t).then(curry3(callPropUnary,__,"every",Boolean))},asyncIteratorEvery=async function(r,e,t,n=20){let o=await r.next();for(;!o.done;){if(t.size>=n){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}const s=e(o.value);if(isPromise(s))t.add(SelfReferencingPromise(s));else if(!s)return!1;o=await r.next()}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}return!0},reducerAllSync=(r,e,t)=>!!e&&r(t),reducerEvery=r=>function(e,t){return!1!==e&&(isPromise(e)?e.then(curry3(reducerAllSync,r,__,t)):!!e&&r(t))},_every=function(r,e){return isArray(r)?arrayEvery(r,e):null==r?e(r):"function"==typeof r[symbolIterator]?iteratorEvery(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorEvery(r[symbolAsyncIterator](),e,new Set):"function"==typeof r.reduce?r.reduce(reducerEvery(e),!0):r.constructor==Object?arrayEvery(objectValues(r),e):e(r)},every=function(r,e){return"function"==typeof r?curry2(_every,__,r):isPromise(r)?r.then(curry2(_every,__,e)):_every(r,e)},areAllValuesTruthy=function(r,e){const t=r.length;for(;++e<t;){const t=r[e];if(isPromise(t))return t.then(curry3(thunkConditional,__,thunkify2(areAllValuesTruthy,r,e),always(!1)));if(!t)return!1}return!0},asyncArePredicatesAllTruthy=async function(r,e,t){const n=e.length;for(;++t<n;){let n=e[t];if("function"==typeof n&&(n=n(...r)),isPromise(n)&&(n=await n),!n)return!1}return!0},areAllPredicatesTruthy=function(r,e){const t=e.length;let n=-1;for(;++n<t;){let t=e[n];if("function"==typeof t&&(t=t(...r)),isPromise(t))return t.then(curry3(thunkConditional,__,thunkify3(asyncArePredicatesAllTruthy,r,e,n),always(!1)));if(!t)return!1}return!0},and=function(...r){const e=r.pop();return areAllValuesNonfunctions(e)?areAllValuesTruthy(e,-1):0==r.length?curryArgs2(areAllPredicatesTruthy,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAllPredicatesTruthy,__,e)):areAllPredicatesTruthy(r,e)},areAnyNonfunctionsTruthy=function(r,e){const t=r.length;for(;++e<t;){const t=r[e];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,r,e)));if(t)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(r,e,t){const n=e.length;for(;++t<n;){let n=e[t];if("function"==typeof n&&(n=n(...r)),isPromise(n)&&(n=await n),n)return!0}return!1},areAnyPredicatesTruthy=function(r,e){const t=e.length;let n=-1;for(;++n<t;){let t=e[n];if("function"==typeof t&&(t=t(...r)),isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,r,e,n)));if(t)return!0}return!1},or=function(...r){const e=r.pop();return areAllValuesNonfunctions(e)?areAnyNonfunctionsTruthy(e,-1):0==r.length?curryArgs2(areAnyPredicatesTruthy,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAnyPredicatesTruthy,__,e)):areAnyPredicatesTruthy(r,e)},negate=r=>!r,_not=function(r,e){const t=e(...r);return isPromise(t)?t.then(negate):!t},not=function(...r){const e=r.pop();return"function"==typeof e?0==r.length?curryArgs2(_not,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_not,__,e)):_not(r,e):isPromise(e)?e.then(negate):!e},curryArgs4ResolveArgs0=(r,e,t,n)=>function(...o){return r(o,e,t,n)},curryArgs4ResolveArgs1=(r,e,t,n)=>function(...o){return r(e,o,t,n)},curryArgs4ResolveArgs2=(r,e,t,n)=>function(...o){return r(e,t,o,n)},curryArgs4ResolveArgs3=(r,e,t,n)=>function(...o){return r(e,t,n,o)},curryArgs4=function(r,e,t,n,o){return e==__?curryArgs4ResolveArgs0(r,t,n,o):t==__?curryArgs4ResolveArgs1(r,e,n,o):n==__?curryArgs4ResolveArgs2(r,e,t,o):curryArgs4ResolveArgs3(r,e,t,n)},leftResolverRightResolverCompare=function(r,e,t,n){const o=t(...r),s=n(...r);return isPromise(o)||isPromise(s)?promiseAll([o,s]).then(spread2(e)):e(o,s)},leftResolverRightValueCompare=function(r,e,t,n){const o=t(...r);return isPromise(o)||isPromise(n)?promiseAll([o,n]).then(spread2(e)):e(o,n)},leftValueRightResolverCompare=function(r,e,t,n){const o=n(...r);return isPromise(t)||isPromise(o)?promiseAll([t,o]).then(spread2(e)):e(t,o)},ComparisonOperator=r=>function(...e){const t=e.pop(),n=e.pop(),o="function"==typeof n,s="function"==typeof t;return o&&s?0==e.length?curryArgs4(leftResolverRightResolverCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightResolverCompare,__,r,n,t)):leftResolverRightResolverCompare(e,r,n,t):o?0==e.length?curryArgs4(leftResolverRightValueCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightValueCompare,__,r,n,t)):leftResolverRightValueCompare(e,r,n,t):s?0==e.length?curryArgs4(leftValueRightResolverCompare,__,r,n,t):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftValueRightResolverCompare,__,r,n,t)):leftValueRightResolverCompare(e,r,n,t):isPromise(n)||isPromise(t)?promiseAll([n,t]).then(spread2(r)):r(n,t)},equals=function(r,e){return r==e},eq=ComparisonOperator(equals),greaterThan=(r,e)=>r>e,gt=ComparisonOperator(greaterThan),lessThan=(r,e)=>r<e,lt=ComparisonOperator(lessThan),greaterThanOrEqual=(r,e)=>r>=e,gte=ComparisonOperator(greaterThanOrEqual),lessThanOrEqual=(r,e)=>r<=e,lte=ComparisonOperator(lessThanOrEqual),memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,s=r;for(;++o<n;)if(s=s[t[o]],null==s)return;return s},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return"string"==typeof r||"number"==typeof r||isArray(r)?curry3(_get,__,r,e):isPromise(r)?r.then(curry3(_get,__,e,t)):_get(r,e,t)},setByPath=function(r,e,t){if(!isObject(r))return r;const n=propertyPathToArray(t),o=n.length,s=o-1,i={...r};let c=i,u=-1;for(;++u<o;){const r=n[u];if(u==s)c[r]=e;else{const e=c[r],t=isArray(e)?e.slice():{...e};c[r]=t,c=t}}return i},_set=function(r,e,t){if("function"==typeof t){const n=t(r);return isPromise(n)?n.then(curry3(setByPath,r,__,e)):setByPath(r,n,e)}return isPromise(t)?t.then(curry3(setByPath,r,__,e)):setByPath(r,t,e)},set=function(r,e,t){return null==t?curry3(_set,__,r,e):isPromise(r)?r.then(curry3(_set,__,e,t)):_set(r,e,t)},_pick=function(r,e){if(null==r)return r;const t=e.length;let n={},o=-1;for(;++o<t;){const t=e[o],s=getByPath(r,t);null!=s&&(n=setByPath(n,s,t))}return n},pick=function(r,e){return null==e?curry2(_pick,__,r):isPromise(r)?r.then(curry2(_pick,__,e)):_pick(r,e)},deleteByPath=function(r,e){if(null==r)return;const t=propertyPathToArray(e),n=t.length-1;let o=-1,s=r;for(;++o<n;)if(s=s[t[o]],null==s)return;const i=t[o];null!=s&&i in s&&delete s[i]},objectCopyDeep=function(r){const e={};for(const t in r){const n=r[t];isArray(n)?e[t]=arrayCopyDeep(n):null!=n&&n.constructor==Object?e[t]=objectCopyDeep(n):e[t]=n}return e},arrayCopyDeep=function(r){const e=r.length,t=[];let n=-1;for(;++n<e;){const e=r[n];isArray(e)?t[n]=arrayCopyDeep(e):null!=e&&e.constructor==Object?t[n]=objectCopyDeep(e):t[n]=e}return t},copyDeep=function(r){return isArray(r)?arrayCopyDeep(r):null==r?r:r.constructor==Object?objectCopyDeep(r):r},_omit=function(r,e){const t=e.length,n=copyDeep(r);let o=-1;for(;++o<t;)deleteByPath(n,e[o]);return n},omit=function(r,e){return null==e?curry2(_omit,__,r):isPromise(r)?r.then(curry2(_omit,__,e)):_omit(r,e)};function _thunkifyArgs(r,e,t){return function(){return r.apply(e,t)}}const thunkify=function(r,...e){return areAnyValuesPromises(e)?promiseAll(e).then(curry3(_thunkifyArgs,r,this,__)):_thunkifyArgs(r,this,e)};thunkify.call=function(r,e,...t){return areAnyValuesPromises(t)?promiseAll(t).then(curry3(_thunkifyArgs,r,e,__)):_thunkifyArgs(r,e,t)};const curry=(r,...e)=>areAnyValuesPromises(e)?promiseAll(e).then(curry4(curryArity,r.length,r,this,__)):curryArity(r.length,r,this,e);curry.arity=function(r,e,...t){return areAnyValuesPromises(t)?promiseAll(t).then(curry4(curryArity,r,e,this,__)):curryArity(r,e,this,t)},curry.call=function(r,e,...t){return areAnyValuesPromises(t)?promiseAll(t).then(curry4(curryArity,r.length,r,e,__)):curryArity(r.length,r,e,t)};const rubico={pipe:pipe,compose:compose,tap:tap,forEach:forEach,switchCase:switchCase,tryCatch:tryCatch,all:all,assign:assign,get:get,set:set,pick:pick,omit:omit,map:map,filter:filter,flatMap:flatMap,reduce:reduce,transform:transform,and:and,or:or,not:not,some:some,every:every,eq:eq,gt:gt,lt:lt,gte:gte,lte:lte,thunkify:thunkify,always:always,curry:curry,__:__};export{pipe,compose,tap,forEach,switchCase,tryCatch,all,assign,get,set,pick,omit,map,filter,reduce,transform,flatMap,and,or,not,some,every,eq,gt,lt,gte,lte,thunkify,always,curry,__};export default rubico;