rubico 1.8.7 → 1.8.8

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 (371) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/_internal/FlatMappingAsyncIterator.js +14 -12
  3. package/dist/__.es.js +1 -1
  4. package/dist/__.es.min.js +1 -1
  5. package/dist/__.js +1 -1
  6. package/dist/__.min.js +1 -1
  7. package/dist/__.min.mjs +1 -1
  8. package/dist/__.mjs +1 -1
  9. package/dist/all.es.js +1 -1
  10. package/dist/all.es.min.js +1 -1
  11. package/dist/all.js +1 -1
  12. package/dist/all.min.js +1 -1
  13. package/dist/all.min.mjs +1 -1
  14. package/dist/all.mjs +1 -1
  15. package/dist/always.es.js +1 -1
  16. package/dist/always.es.min.js +1 -1
  17. package/dist/always.js +1 -1
  18. package/dist/always.min.js +1 -1
  19. package/dist/always.min.mjs +1 -1
  20. package/dist/always.mjs +1 -1
  21. package/dist/and.es.js +1 -1
  22. package/dist/and.es.min.js +1 -1
  23. package/dist/and.js +1 -1
  24. package/dist/and.min.js +1 -1
  25. package/dist/and.min.mjs +1 -1
  26. package/dist/and.mjs +1 -1
  27. package/dist/any.es.js +1 -1
  28. package/dist/any.es.min.js +1 -1
  29. package/dist/any.js +1 -1
  30. package/dist/any.min.js +1 -1
  31. package/dist/any.min.mjs +1 -1
  32. package/dist/any.mjs +1 -1
  33. package/dist/assign.es.js +1 -1
  34. package/dist/assign.es.min.js +1 -1
  35. package/dist/assign.js +1 -1
  36. package/dist/assign.min.js +1 -1
  37. package/dist/assign.min.mjs +1 -1
  38. package/dist/assign.mjs +1 -1
  39. package/dist/curry.es.js +1 -1
  40. package/dist/curry.es.min.js +1 -1
  41. package/dist/curry.js +1 -1
  42. package/dist/curry.min.js +1 -1
  43. package/dist/curry.min.mjs +1 -1
  44. package/dist/curry.mjs +1 -1
  45. package/dist/eq.es.js +1 -1
  46. package/dist/eq.es.min.js +1 -1
  47. package/dist/eq.js +1 -1
  48. package/dist/eq.min.js +1 -1
  49. package/dist/eq.min.mjs +1 -1
  50. package/dist/eq.mjs +1 -1
  51. package/dist/filter.es.js +1 -1
  52. package/dist/filter.es.min.js +1 -1
  53. package/dist/filter.js +1 -1
  54. package/dist/filter.min.js +1 -1
  55. package/dist/filter.min.mjs +1 -1
  56. package/dist/filter.mjs +1 -1
  57. package/dist/flatMap.es.js +15 -13
  58. package/dist/flatMap.es.min.js +2 -2
  59. package/dist/flatMap.js +15 -13
  60. package/dist/flatMap.min.js +2 -2
  61. package/dist/flatMap.min.mjs +2 -2
  62. package/dist/flatMap.mjs +15 -13
  63. package/dist/fork.es.js +1 -1
  64. package/dist/fork.es.min.js +1 -1
  65. package/dist/fork.js +1 -1
  66. package/dist/fork.min.js +1 -1
  67. package/dist/fork.min.mjs +1 -1
  68. package/dist/fork.mjs +1 -1
  69. package/dist/get.es.js +1 -1
  70. package/dist/get.es.min.js +1 -1
  71. package/dist/get.js +1 -1
  72. package/dist/get.min.js +1 -1
  73. package/dist/get.min.mjs +1 -1
  74. package/dist/get.mjs +1 -1
  75. package/dist/gt.es.js +1 -1
  76. package/dist/gt.es.min.js +1 -1
  77. package/dist/gt.js +1 -1
  78. package/dist/gt.min.js +1 -1
  79. package/dist/gt.min.mjs +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.min.mjs +1 -1
  86. package/dist/gte.mjs +1 -1
  87. package/dist/lt.es.js +1 -1
  88. package/dist/lt.es.min.js +1 -1
  89. package/dist/lt.js +1 -1
  90. package/dist/lt.min.js +1 -1
  91. package/dist/lt.min.mjs +1 -1
  92. package/dist/lt.mjs +1 -1
  93. package/dist/lte.es.js +1 -1
  94. package/dist/lte.es.min.js +1 -1
  95. package/dist/lte.js +1 -1
  96. package/dist/lte.min.js +1 -1
  97. package/dist/lte.min.mjs +1 -1
  98. package/dist/lte.mjs +1 -1
  99. package/dist/map.es.js +1 -1
  100. package/dist/map.es.min.js +1 -1
  101. package/dist/map.js +1 -1
  102. package/dist/map.min.js +1 -1
  103. package/dist/map.min.mjs +1 -1
  104. package/dist/map.mjs +1 -1
  105. package/dist/not.es.js +1 -1
  106. package/dist/not.es.min.js +1 -1
  107. package/dist/not.js +1 -1
  108. package/dist/not.min.js +1 -1
  109. package/dist/not.min.mjs +1 -1
  110. package/dist/not.mjs +1 -1
  111. package/dist/omit.es.js +1 -1
  112. package/dist/omit.es.min.js +1 -1
  113. package/dist/omit.js +1 -1
  114. package/dist/omit.min.js +1 -1
  115. package/dist/omit.min.mjs +1 -1
  116. package/dist/omit.mjs +1 -1
  117. package/dist/or.es.js +1 -1
  118. package/dist/or.es.min.js +1 -1
  119. package/dist/or.js +1 -1
  120. package/dist/or.min.js +1 -1
  121. package/dist/or.min.mjs +1 -1
  122. package/dist/or.mjs +1 -1
  123. package/dist/pick.es.js +1 -1
  124. package/dist/pick.es.min.js +1 -1
  125. package/dist/pick.js +1 -1
  126. package/dist/pick.min.js +1 -1
  127. package/dist/pick.min.mjs +1 -1
  128. package/dist/pick.mjs +1 -1
  129. package/dist/pipe.es.js +1 -1
  130. package/dist/pipe.es.min.js +1 -1
  131. package/dist/pipe.js +1 -1
  132. package/dist/pipe.min.js +1 -1
  133. package/dist/pipe.min.mjs +1 -1
  134. package/dist/pipe.mjs +1 -1
  135. package/dist/reduce.es.js +1 -1
  136. package/dist/reduce.es.min.js +1 -1
  137. package/dist/reduce.js +1 -1
  138. package/dist/reduce.min.js +1 -1
  139. package/dist/reduce.min.mjs +1 -1
  140. package/dist/reduce.mjs +1 -1
  141. package/dist/rubico.es.js +15 -13
  142. package/dist/rubico.es.min.js +2 -2
  143. package/dist/rubico.js +15 -13
  144. package/dist/rubico.min.js +2 -2
  145. package/dist/rubico.min.mjs +2 -2
  146. package/dist/rubico.mjs +15 -13
  147. package/dist/set.es.js +1 -1
  148. package/dist/set.es.min.js +1 -1
  149. package/dist/set.js +1 -1
  150. package/dist/set.min.js +1 -1
  151. package/dist/set.min.mjs +1 -1
  152. package/dist/set.mjs +1 -1
  153. package/dist/switchCase.es.js +1 -1
  154. package/dist/switchCase.es.min.js +1 -1
  155. package/dist/switchCase.js +1 -1
  156. package/dist/switchCase.min.js +1 -1
  157. package/dist/switchCase.min.mjs +1 -1
  158. package/dist/switchCase.mjs +1 -1
  159. package/dist/tap.es.js +1 -1
  160. package/dist/tap.es.min.js +1 -1
  161. package/dist/tap.js +1 -1
  162. package/dist/tap.min.js +1 -1
  163. package/dist/tap.min.mjs +1 -1
  164. package/dist/tap.mjs +1 -1
  165. package/dist/thunkify.es.js +1 -1
  166. package/dist/thunkify.es.min.js +1 -1
  167. package/dist/thunkify.js +1 -1
  168. package/dist/thunkify.min.js +1 -1
  169. package/dist/thunkify.min.mjs +1 -1
  170. package/dist/thunkify.mjs +1 -1
  171. package/dist/transform.es.js +1 -1
  172. package/dist/transform.es.min.js +1 -1
  173. package/dist/transform.js +1 -1
  174. package/dist/transform.min.js +1 -1
  175. package/dist/transform.min.mjs +1 -1
  176. package/dist/transform.mjs +1 -1
  177. package/dist/tryCatch.es.js +1 -1
  178. package/dist/tryCatch.es.min.js +1 -1
  179. package/dist/tryCatch.js +1 -1
  180. package/dist/tryCatch.min.js +1 -1
  181. package/dist/tryCatch.min.mjs +1 -1
  182. package/dist/tryCatch.mjs +1 -1
  183. package/dist/x/append.es.js +1 -1
  184. package/dist/x/append.es.min.js +1 -1
  185. package/dist/x/append.js +1 -1
  186. package/dist/x/append.min.js +1 -1
  187. package/dist/x/append.min.mjs +1 -1
  188. package/dist/x/append.mjs +1 -1
  189. package/dist/x/callProp.es.js +1 -1
  190. package/dist/x/callProp.es.min.js +1 -1
  191. package/dist/x/callProp.js +1 -1
  192. package/dist/x/callProp.min.js +1 -1
  193. package/dist/x/callProp.min.mjs +1 -1
  194. package/dist/x/callProp.mjs +1 -1
  195. package/dist/x/defaultsDeep.es.js +1 -1
  196. package/dist/x/defaultsDeep.es.min.js +1 -1
  197. package/dist/x/defaultsDeep.js +1 -1
  198. package/dist/x/defaultsDeep.min.js +1 -1
  199. package/dist/x/defaultsDeep.min.mjs +1 -1
  200. package/dist/x/defaultsDeep.mjs +1 -1
  201. package/dist/x/differenceWith.es.js +1 -1
  202. package/dist/x/differenceWith.es.min.js +1 -1
  203. package/dist/x/differenceWith.js +1 -1
  204. package/dist/x/differenceWith.min.js +1 -1
  205. package/dist/x/differenceWith.min.mjs +1 -1
  206. package/dist/x/differenceWith.mjs +1 -1
  207. package/dist/x/find.es.js +1 -1
  208. package/dist/x/find.es.min.js +1 -1
  209. package/dist/x/find.js +1 -1
  210. package/dist/x/find.min.js +1 -1
  211. package/dist/x/find.min.mjs +1 -1
  212. package/dist/x/find.mjs +1 -1
  213. package/dist/x/findIndex.es.js +1 -1
  214. package/dist/x/findIndex.es.min.js +1 -1
  215. package/dist/x/findIndex.js +1 -1
  216. package/dist/x/findIndex.min.js +1 -1
  217. package/dist/x/findIndex.min.mjs +1 -1
  218. package/dist/x/findIndex.mjs +1 -1
  219. package/dist/x/first.es.js +1 -1
  220. package/dist/x/first.es.min.js +1 -1
  221. package/dist/x/first.js +1 -1
  222. package/dist/x/first.min.js +1 -1
  223. package/dist/x/first.min.mjs +1 -1
  224. package/dist/x/first.mjs +1 -1
  225. package/dist/x/flatten.es.js +15 -13
  226. package/dist/x/flatten.es.min.js +2 -2
  227. package/dist/x/flatten.js +15 -13
  228. package/dist/x/flatten.min.js +2 -2
  229. package/dist/x/flatten.min.mjs +2 -2
  230. package/dist/x/flatten.mjs +15 -13
  231. package/dist/x/forEach.es.js +1 -1
  232. package/dist/x/forEach.es.min.js +1 -1
  233. package/dist/x/forEach.js +1 -1
  234. package/dist/x/forEach.min.js +1 -1
  235. package/dist/x/forEach.min.mjs +1 -1
  236. package/dist/x/forEach.mjs +1 -1
  237. package/dist/x/groupBy.es.js +1 -1
  238. package/dist/x/groupBy.es.min.js +1 -1
  239. package/dist/x/groupBy.js +1 -1
  240. package/dist/x/groupBy.min.js +1 -1
  241. package/dist/x/groupBy.min.mjs +1 -1
  242. package/dist/x/groupBy.mjs +1 -1
  243. package/dist/x/has.es.js +1 -1
  244. package/dist/x/has.es.min.js +1 -1
  245. package/dist/x/has.js +1 -1
  246. package/dist/x/has.min.js +1 -1
  247. package/dist/x/has.min.mjs +1 -1
  248. package/dist/x/has.mjs +1 -1
  249. package/dist/x/identity.es.js +1 -1
  250. package/dist/x/identity.es.min.js +1 -1
  251. package/dist/x/identity.js +1 -1
  252. package/dist/x/identity.min.js +1 -1
  253. package/dist/x/identity.min.mjs +1 -1
  254. package/dist/x/identity.mjs +1 -1
  255. package/dist/x/includes.es.js +1 -1
  256. package/dist/x/includes.es.min.js +1 -1
  257. package/dist/x/includes.js +1 -1
  258. package/dist/x/includes.min.js +1 -1
  259. package/dist/x/includes.min.mjs +1 -1
  260. package/dist/x/includes.mjs +1 -1
  261. package/dist/x/isDeepEqual.es.js +1 -1
  262. package/dist/x/isDeepEqual.es.min.js +1 -1
  263. package/dist/x/isDeepEqual.js +1 -1
  264. package/dist/x/isDeepEqual.min.js +1 -1
  265. package/dist/x/isDeepEqual.min.mjs +1 -1
  266. package/dist/x/isDeepEqual.mjs +1 -1
  267. package/dist/x/isEmpty.es.js +1 -1
  268. package/dist/x/isEmpty.es.min.js +1 -1
  269. package/dist/x/isEmpty.js +1 -1
  270. package/dist/x/isEmpty.min.js +1 -1
  271. package/dist/x/isEmpty.min.mjs +1 -1
  272. package/dist/x/isEmpty.mjs +1 -1
  273. package/dist/x/isEqual.es.js +1 -1
  274. package/dist/x/isEqual.es.min.js +1 -1
  275. package/dist/x/isEqual.js +1 -1
  276. package/dist/x/isEqual.min.js +1 -1
  277. package/dist/x/isEqual.min.mjs +1 -1
  278. package/dist/x/isEqual.mjs +1 -1
  279. package/dist/x/isFunction.es.js +1 -1
  280. package/dist/x/isFunction.es.min.js +1 -1
  281. package/dist/x/isFunction.js +1 -1
  282. package/dist/x/isFunction.min.js +1 -1
  283. package/dist/x/isFunction.min.mjs +1 -1
  284. package/dist/x/isFunction.mjs +1 -1
  285. package/dist/x/isObject.es.js +1 -1
  286. package/dist/x/isObject.es.min.js +1 -1
  287. package/dist/x/isObject.js +1 -1
  288. package/dist/x/isObject.min.js +1 -1
  289. package/dist/x/isObject.min.mjs +1 -1
  290. package/dist/x/isObject.mjs +1 -1
  291. package/dist/x/isString.es.js +1 -1
  292. package/dist/x/isString.es.min.js +1 -1
  293. package/dist/x/isString.js +1 -1
  294. package/dist/x/isString.min.js +1 -1
  295. package/dist/x/isString.min.mjs +1 -1
  296. package/dist/x/isString.mjs +1 -1
  297. package/dist/x/keys.es.js +1 -1
  298. package/dist/x/keys.es.min.js +1 -1
  299. package/dist/x/keys.js +1 -1
  300. package/dist/x/keys.min.js +1 -1
  301. package/dist/x/keys.min.mjs +1 -1
  302. package/dist/x/keys.mjs +1 -1
  303. package/dist/x/last.es.js +1 -1
  304. package/dist/x/last.es.min.js +1 -1
  305. package/dist/x/last.js +1 -1
  306. package/dist/x/last.min.js +1 -1
  307. package/dist/x/last.min.mjs +1 -1
  308. package/dist/x/last.mjs +1 -1
  309. package/dist/x/noop.es.js +1 -1
  310. package/dist/x/noop.es.min.js +1 -1
  311. package/dist/x/noop.js +1 -1
  312. package/dist/x/noop.min.js +1 -1
  313. package/dist/x/noop.min.mjs +1 -1
  314. package/dist/x/noop.mjs +1 -1
  315. package/dist/x/pluck.es.js +1 -1
  316. package/dist/x/pluck.es.min.js +1 -1
  317. package/dist/x/pluck.js +1 -1
  318. package/dist/x/pluck.min.js +1 -1
  319. package/dist/x/pluck.min.mjs +1 -1
  320. package/dist/x/pluck.mjs +1 -1
  321. package/dist/x/prepend.es.js +1 -1
  322. package/dist/x/prepend.es.min.js +1 -1
  323. package/dist/x/prepend.js +1 -1
  324. package/dist/x/prepend.min.js +1 -1
  325. package/dist/x/prepend.min.mjs +1 -1
  326. package/dist/x/prepend.mjs +1 -1
  327. package/dist/x/size.es.js +1 -1
  328. package/dist/x/size.es.min.js +1 -1
  329. package/dist/x/size.js +1 -1
  330. package/dist/x/size.min.js +1 -1
  331. package/dist/x/size.min.mjs +1 -1
  332. package/dist/x/size.mjs +1 -1
  333. package/dist/x/trace.es.js +1 -1
  334. package/dist/x/trace.es.min.js +1 -1
  335. package/dist/x/trace.js +1 -1
  336. package/dist/x/trace.min.js +1 -1
  337. package/dist/x/trace.min.mjs +1 -1
  338. package/dist/x/trace.mjs +1 -1
  339. package/dist/x/unionWith.es.js +1 -1
  340. package/dist/x/unionWith.es.min.js +1 -1
  341. package/dist/x/unionWith.js +1 -1
  342. package/dist/x/unionWith.min.js +1 -1
  343. package/dist/x/unionWith.min.mjs +1 -1
  344. package/dist/x/unionWith.mjs +1 -1
  345. package/dist/x/uniq.es.js +1 -1
  346. package/dist/x/uniq.es.min.js +1 -1
  347. package/dist/x/uniq.js +1 -1
  348. package/dist/x/uniq.min.js +1 -1
  349. package/dist/x/uniq.min.mjs +1 -1
  350. package/dist/x/uniq.mjs +1 -1
  351. package/dist/x/unless.es.js +1 -1
  352. package/dist/x/unless.es.min.js +1 -1
  353. package/dist/x/unless.js +1 -1
  354. package/dist/x/unless.min.js +1 -1
  355. package/dist/x/unless.min.mjs +1 -1
  356. package/dist/x/unless.mjs +1 -1
  357. package/dist/x/values.es.js +1 -1
  358. package/dist/x/values.es.min.js +1 -1
  359. package/dist/x/values.js +1 -1
  360. package/dist/x/values.min.js +1 -1
  361. package/dist/x/values.min.mjs +1 -1
  362. package/dist/x/values.mjs +1 -1
  363. package/dist/x/when.es.js +1 -1
  364. package/dist/x/when.es.min.js +1 -1
  365. package/dist/x/when.js +1 -1
  366. package/dist/x/when.min.js +1 -1
  367. package/dist/x/when.min.mjs +1 -1
  368. package/dist/x/when.mjs +1 -1
  369. package/es.js +15 -13
  370. package/index.js +15 -13
  371. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
- ## v1.8.7 - latest
1
+ ## v1.8.8 - latest
2
+ * FlatMappingAsyncIterator don't await if async iterator is done already
3
+
4
+ ## v1.8.7
2
5
  * FlatMappingAsyncIterator use Promise.race over promiseAnyRejectOnce
3
6
 
4
7
  ## v1.8.6
@@ -47,21 +47,23 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
47
47
  while (
48
48
  !this.isAsyncIteratorDone || buffer.length > 0 || promises.size > 0
49
49
  ) {
50
- const { value, done } = await asyncIterator.next()
51
- if (done) {
52
- this.isAsyncIteratorDone = done
53
- } else {
54
- const monad = flatMapper(value)
55
- if (isPromise(monad)) {
56
- const bufferLoading = monad.then(
57
- curryArgs3(genericReduce, __, arrayPush, buffer))
58
- const promise = bufferLoading.then(() => promises.delete(promise))
59
- promises.add(promise)
50
+ if (!this.isAsyncIteratorDone) {
51
+ const { value, done } = await asyncIterator.next()
52
+ if (done) {
53
+ this.isAsyncIteratorDone = done
60
54
  } else {
61
- const bufferLoading = genericReduce([monad], arrayPush, buffer)
62
- if (isPromise(bufferLoading)) {
55
+ const monad = flatMapper(value)
56
+ if (isPromise(monad)) {
57
+ const bufferLoading = monad.then(
58
+ curryArgs3(genericReduce, __, arrayPush, buffer))
63
59
  const promise = bufferLoading.then(() => promises.delete(promise))
64
60
  promises.add(promise)
61
+ } else {
62
+ const bufferLoading = genericReduce([monad], arrayPush, buffer)
63
+ if (isPromise(bufferLoading)) {
64
+ const promise = bufferLoading.then(() => promises.delete(promise))
65
+ promises.add(promise)
66
+ }
65
67
  }
66
68
  }
67
69
  }
package/dist/__.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/any.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/any.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/any.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/any.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/any.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.min.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/filter.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/filter.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/filter.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -496,21 +496,23 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
496
496
  while (
497
497
  !this.isAsyncIteratorDone || buffer.length > 0 || promises.size > 0
498
498
  ) {
499
- const { value, done } = await asyncIterator.next()
500
- if (done) {
501
- this.isAsyncIteratorDone = done
502
- } else {
503
- const monad = flatMapper(value)
504
- if (isPromise(monad)) {
505
- const bufferLoading = monad.then(
506
- curryArgs3(genericReduce, __, arrayPush, buffer))
507
- const promise = bufferLoading.then(() => promises.delete(promise))
508
- promises.add(promise)
499
+ if (!this.isAsyncIteratorDone) {
500
+ const { value, done } = await asyncIterator.next()
501
+ if (done) {
502
+ this.isAsyncIteratorDone = done
509
503
  } else {
510
- const bufferLoading = genericReduce([monad], arrayPush, buffer)
511
- if (isPromise(bufferLoading)) {
504
+ const monad = flatMapper(value)
505
+ if (isPromise(monad)) {
506
+ const bufferLoading = monad.then(
507
+ curryArgs3(genericReduce, __, arrayPush, buffer))
512
508
  const promise = bufferLoading.then(() => promises.delete(promise))
513
509
  promises.add(promise)
510
+ } else {
511
+ const bufferLoading = genericReduce([monad], arrayPush, buffer)
512
+ if (isPromise(bufferLoading)) {
513
+ const promise = bufferLoading.then(() => promises.delete(promise))
514
+ promises.add(promise)
515
+ }
514
516
  }
515
517
  }
516
518
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.8.7
2
+ * rubico v1.8.8
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2021 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=e=>nativeObjectToString.call(e),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=e=>objectToString(e)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=e=>objectToString(e)==asyncGeneratorFunctionTag,__=Symbol.for("placeholder"),curry3ResolveArg0=(e,r,t)=>function(n){return e(n,r,t)},curry3ResolveArg1=(e,r,t)=>function(n){return e(r,n,t)},curry3ResolveArg2=(e,r,t)=>function(n){return e(r,t,n)},curry3=function(e,r,t,n){return r==__?curry3ResolveArg0(e,t,n):t==__?curry3ResolveArg1(e,r,n):curry3ResolveArg2(e,r,t)},isPromise=e=>null!=e&&"function"==typeof e.then,iteratorReduceAsync=async function(e,r,t){let n=e.next();if(n.done)return t;for(;!n.done;)t=r(t,n.value),isPromise(t)&&(t=await t),n=e.next();return t},iteratorReduce=function(e,r,t){let n=e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=e.next());!n.done;){if(t=r(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,e,r,__));n=e.next()}return t},asyncIteratorReduce=async function(e,r,t){let n=await e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await e.next());!n.done;)t=await r(t,n.value),n=await e.next();return t},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(e,r)=>function(t){return e(t,r)},curry2ResolveArg1=(e,r)=>function(t){return e(r,t)},curry2=function(e,r,t){return r==__?curry2ResolveArg0(e,t):curry2ResolveArg1(e,r)},curryArgs3ResolveArgs0=(e,r,t)=>function(...n){return e(n,r,t)},curryArgs3ResolveArgs1=(e,r,t)=>function(...n){return e(r,n,t)},curryArgs3ResolveArgs2=(e,r,t)=>function(...n){return e(r,t,n)},curryArgs3=function(e,r,t,n){return r==__?curryArgs3ResolveArgs0(e,t,n):t==__?curryArgs3ResolveArgs1(e,r,n):curryArgs3ResolveArgs2(e,r,t)},curry4ResolveArg0=(e,r,t,n)=>function(o){return e(o,r,t,n)},curry4ResolveArg1=(e,r,t,n)=>function(o){return e(r,o,t,n)},curry4ResolveArg2=(e,r,t,n)=>function(o){return e(r,t,o,n)},curry4ResolveArg3=(e,r,t,n)=>function(o){return e(r,t,n,o)},curry4=function(e,r,t,n,o){return r==__?curry4ResolveArg0(e,t,n,o):t==__?curry4ResolveArg1(e,r,n,o):n==__?curry4ResolveArg2(e,r,t,o):curry4ResolveArg3(e,r,t,n)},arrayReduceAsync=async function(e,r,t,n){const o=e.length;for(;++n<o;)t=r(t,e[n],n,e),isPromise(t)&&(t=await t);return t},arrayReduce=function(e,r,t){const n=e.length;let o=-1;for(void 0===t&&(t=e[++o]);++o<n;)if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry4(arrayReduceAsync,e,r,__,o));return t},curry5ResolveArg0=(e,r,t,n,o)=>function(c){return e(c,r,t,n,o)},curry5ResolveArg1=(e,r,t,n,o)=>function(c){return e(r,c,t,n,o)},curry5ResolveArg2=(e,r,t,n,o)=>function(c){return e(r,t,c,n,o)},curry5ResolveArg3=(e,r,t,n,o)=>function(c){return e(r,t,n,c,o)},curry5ResolveArg4=(e,r,t,n,o)=>function(c){return e(r,t,n,o,c)},curry5=function(e,r,t,n,o,c){return r==__?curry5ResolveArg0(e,t,n,o,c):t==__?curry5ResolveArg1(e,r,n,o,c):n==__?curry5ResolveArg2(e,r,t,o,c):o==__?curry5ResolveArg3(e,r,t,n,c):curry5ResolveArg4(e,r,t,n,o)},objectKeys=Object.keys,objectGetFirstKey=function(e){for(const r in e)return r},objectReduceAsync=async function(e,r,t,n,o){const c=n.length;for(;++o<c;){const c=n[o];t=r(t,e[c],c,e),isPromise(t)&&(t=await t)}return t},objectReduce=function(e,r,t){const n=objectKeys(e),o=n.length;let c=-1;for(void 0===t&&(t=e[n[++c]]);++c<o;){const o=n[c];if(t=r(t,e[o],o,e),isPromise(t))return t.then((s=objectReduceAsync,a=r,u=__,l=n,f=c,(i=e)==__?curry5ResolveArg0(s,a,u,l,f):a==__?curry5ResolveArg1(s,i,u,l,f):u==__?curry5ResolveArg2(s,i,a,l,f):l==__?curry5ResolveArg3(s,i,a,u,f):curry5ResolveArg4(s,i,a,u,l)))}var s,i,a,u,l,f;return t},mapReduceAsync=async function(e,r,t,n){for(const[o,c]of n)t=r(t,c,o,e),isPromise(t)&&(t=await t);return t},mapReduce=function(e,r,t){const n=e.entries();if(void 0===t){const e=n.next();if(e.done)return t;t=e.value[1]}for(const[o,c]of n)if(t=r(t,c,o,e),isPromise(t))return t.then(curry4(mapReduceAsync,e,r,__,n));return t},funcConcatSync=(e,r)=>function(...t){return r(e(...t))},generatorFunctionReduce=(e,r,t)=>funcConcatSync(e,curry3(iteratorReduce,__,r,t)),asyncGeneratorFunctionReduce=(e,r,t)=>funcConcatSync(e,curry3(asyncIteratorReduce,__,r,t)),reducerConcat=(e,r)=>function(t,n){const o=e(t,n);return isPromise(o)?o.then(curry2(r,__,n)):r(o,n)},genericReduce=function(e,r,t){const n=e[0];return isArray(n)?arrayReduce(n,r,t):"function"==typeof n?isGeneratorFunction(n)?generatorFunctionReduce(n,r,t):isAsyncGeneratorFunction(n)?asyncGeneratorFunctionReduce(n,r,t):curryArgs3(genericReduce,__,1==e.length?reducerConcat(r,n):e.reduce(reducerConcat,r),t):null==n?void 0===t?curry2(r,n,__):r(t,n):n.constructor==Map?mapReduce(n,r,t):"function"==typeof n[symbolIterator]?iteratorReduce(n[symbolIterator](),r,t):"function"==typeof n[symbolAsyncIterator]?asyncIteratorReduce(n[symbolAsyncIterator](),r,t):"function"==typeof n.reduce?n.reduce(r,t):"function"==typeof n.chain?n.chain(curry2(r,t,__)):"function"==typeof n.flatMap?n.flatMap(curry2(r,t,__)):n.constructor==Object?objectReduce(n,r,t):void 0===t?curry2(r,n,__):r(t,n)},arrayPush=function(e,r){return e.push(r),e},FlatMappingIterator=function(e,r){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const e=t[n];return n+=1,{value:e,done:!1}}const o=e.next();if(o.done)return o;const c=genericReduce([r(o.value)],arrayPush,[]);return c.length>1&&(t=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),FlatMappingAsyncIterator=function(e,r){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;){const{value:o,done:c}=await e.next();if(c)this.isAsyncIteratorDone=c;else{const e=r(o);if(isPromise(e)){const r=e.then(curryArgs3(genericReduce,__,arrayPush,t)).then((()=>n.delete(r)));n.add(r)}else{const r=genericReduce([e],arrayPush,t);if(isPromise(r)){const e=r.then((()=>n.delete(e)));n.add(e)}}}if(t.length>0)return{value:t.shift(),done:!1};n.size>0&&await promiseRace(n)}return{value:void 0,done:!0}}}},isBinary=ArrayBuffer.isView,always=e=>function(){return e},getArg1=(e,r)=>r,identity=e=>e,promiseAll=Promise.all.bind(Promise),asyncIteratorForEach=async function(e,r){const t=[];for await(const n of e){const e=r(n);isPromise(e)&&t.push(e)}return 0==t.length?e:promiseAll(t).then(always(e))},arrayFlatten=function(e){const r=e.length,t=[],n=[];let o=-1;for(;++o<r;){const r=e[o];if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)n.push(r[t])}else if(null==r)n.push(r);else if("function"==typeof r.then)t.push(r.then(curry2(arrayPush,n,__)));else if("function"==typeof r[symbolIterator])for(const e of r)n.push(e);else if("function"==typeof r[symbolAsyncIterator])t.push(asyncIteratorForEach(r[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof r.chain){const e=r.chain(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.flatMap){const e=r.flatMap(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.reduce){const e=r.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(e)&&t.push(e)}else if(r.constructor==Object)for(const e in r)n.push(r[e]);else n.push(r)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayMap=function(e,r){const t=e.length,n=Array(t);let o=-1,c=!1;for(;++o<t;){const t=r(e[o],o,e);isPromise(t)&&(c=!0),n[o]=t}return c?promiseAll(n):n},arrayFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},promiseObjectAllExecutor=e=>function(r){const t={};let n=0;for(const o in e){const c=e[o];isPromise(c)?(n+=1,c.then((e=>function(o){t[e]=o,n-=1,0==n&&r(t)})(o))):t[o]=c}0==n&&r(t)},promiseObjectAll=e=>new Promise(promiseObjectAllExecutor(e)),objectMap=function(e,r){const t={};let n=!1;for(const o in e){const c=r(e[o],o,e);isPromise(c)&&(n=!0),t[o]=c}return n?promiseObjectAll(t):t},objectAssign=Object.assign,objectFlatten=function(e){const r=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const c in e){const s=e[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const e of s)objectAssign(t,e);else if("function"==typeof s[symbolAsyncIterator])r.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const e=s.chain(identity);isPromise(e)?r.push(e.then(n)):objectAssign(t,e)}else if("function"==typeof s.flatMap){const e=s.flatMap(identity);isPromise(e)?r.push(e.then(n)):n(e)}else if("function"==typeof s.reduce){const e=s.reduce(o,null);isPromise(e)&&r.push(e)}else objectAssign(t,s)}return 0==r.length?t:promiseAll(r).then((()=>t))},objectFlatMap=function(e,r){const t=objectMap(e,r);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},callPropUnary=(e,r,t)=>e[r](t),setMap=function(e,r){const t=new Set,n=[];for(const o of e){const c=r(o,o,e);isPromise(c)?n.push(c.then(curry3(callPropUnary,t,"add",__))):t.add(c)}return 0==n.length?t:promiseAll(n).then(always(t))},setFlatten=function(e){e.size;const r=[],t=new Set,n=(e,r)=>t.add(r),o=curry3(callPropUnary,t,"add",__);for(const c of e)if(isArray(c)){const e=c.length;let r=-1;for(;++r<e;)t.add(c[r])}else if(null==c)t.add(c);else if("function"==typeof c[symbolIterator])for(const e of c)t.add(e);else if("function"==typeof c[symbolAsyncIterator])r.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const e=c.chain(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.flatMap){const e=c.flatMap(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.reduce){const e=c.reduce(n,null);isPromise(e)&&r.push(e)}else if(c.constructor==Object)for(const e in c)t.add(c[e]);else t.add(c);return 0==r.length?t:promiseAll(r).then((()=>t))},setFlatMap=function(e,r){const t=setMap(e,r);return isPromise(t)?t.then(setFlatten):setFlatten(t)},funcConcat=(e,r)=>function(...t){const n=e(...t);return isPromise(n)?n.then(r):r(n)},arrayJoin=(e,r)=>e.join(r),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},streamWrite=function(e,r,t,n){return e.write(r,t,n),e},streamFlatExtend=async function(e,r){const t=curry2(streamWrite,e,__),n=funcConcatSync(getArg1,t),o=[];if(isArray(r)){const t=r.length;let n=-1;for(;++n<t;)e.write(r[n])}else if(null==r)e.write(r);else if("function"==typeof r[symbolIterator])for(const t of r)e.write(t);else if("function"==typeof r[symbolAsyncIterator])o.push(asyncIteratorForEach(r[symbolAsyncIterator](),t));else if("function"==typeof r.chain){const n=r.chain(identity);isPromise(n)?o.push(n.then(t)):e.write(n)}else if("function"==typeof r.flatMap){const n=r.flatMap(identity);isPromise(n)?o.push(n.then(t)):e.write(n)}else if("function"==typeof r.reduce){const e=r.reduce(n,null);isPromise(e)&&o.push(e)}else if(r.constructor==Object)for(const t in r)e.write(r[t]);else e.write(r);return 0==o.length?e:promiseAll(o).then(always(e))},streamFlatMap=async function(e,r){const t=new Set;for await(const n of e){const o=r(n);if(isPromise(o)){const r=o.then(curry2(streamFlatExtend,e,__)).then((()=>t.delete(r)));t.add(r)}else{const r=streamFlatExtend(e,o);if(isPromise(r)){const e=r.then((()=>t.delete(e)));t.add(e)}}}return await promiseAll(t),e},globalThisHasBuffer="function"==typeof Buffer,noop=function(){},bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(e,r){const t=e.length,n=globalThisHasBuffer&&e.constructor==Buffer?bufferAlloc(t+r.length):new e.constructor(t+r.length);return n.set(e),n.set(r,t),n},binaryExtend=function(e,r){return isArray(r)||isBinary(r)?_binaryExtend(e,r):_binaryExtend(e,[r])},arrayJoinToBinary=function(e,r){const t=e.length;let n=-1,o=r;for(;++n<t;)o=binaryExtend(o,e[n]);return o},arrayFlattenToBinary=function(e,r){const t=arrayFlatten(e);return isPromise(t)?t.then(curry2(arrayJoinToBinary,__,r)):arrayJoinToBinary(t,r)},binaryFlatMap=function(e,r){const t=arrayMap(e,r),n=globalThisHasBuffer&&e.constructor==Buffer?bufferAlloc(0):new e.constructor(0);return isPromise(t)?t.then(curry2(arrayFlattenToBinary,__,n)):arrayFlattenToBinary(t,n)},reducerFlatMap=(e,r)=>function(t,n){const o=r(n);return isPromise(o)?o.then(curryArgs3(genericReduce,__,e,t)):genericReduce([o],e,t)},generatorFunctionFlatMap=(e,r)=>function*(...t){yield*FlatMappingIterator(e(...t),r)},asyncGeneratorFunctionFlatMap=(e,r)=>async function*(...t){yield*FlatMappingAsyncIterator(e(...t),r)},flatMap=e=>function(r){if(isArray(r))return arrayFlatMap(r,e);if("function"==typeof r)return isGeneratorFunction(r)?generatorFunctionFlatMap(r,e):isAsyncGeneratorFunction(r)?asyncGeneratorFunctionFlatMap(r,e):reducerFlatMap(r,e);if(isBinary(r))return binaryFlatMap(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);if("function"==typeof r[symbolAsyncIterator]&&"function"==typeof r.write)return streamFlatMap(r,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)};export default flatMap;
7
+ const isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=e=>nativeObjectToString.call(e),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=e=>objectToString(e)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=e=>objectToString(e)==asyncGeneratorFunctionTag,__=Symbol.for("placeholder"),curry3ResolveArg0=(e,r,t)=>function(n){return e(n,r,t)},curry3ResolveArg1=(e,r,t)=>function(n){return e(r,n,t)},curry3ResolveArg2=(e,r,t)=>function(n){return e(r,t,n)},curry3=function(e,r,t,n){return r==__?curry3ResolveArg0(e,t,n):t==__?curry3ResolveArg1(e,r,n):curry3ResolveArg2(e,r,t)},isPromise=e=>null!=e&&"function"==typeof e.then,iteratorReduceAsync=async function(e,r,t){let n=e.next();if(n.done)return t;for(;!n.done;)t=r(t,n.value),isPromise(t)&&(t=await t),n=e.next();return t},iteratorReduce=function(e,r,t){let n=e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=e.next());!n.done;){if(t=r(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,e,r,__));n=e.next()}return t},asyncIteratorReduce=async function(e,r,t){let n=await e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await e.next());!n.done;)t=await r(t,n.value),n=await e.next();return t},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(e,r)=>function(t){return e(t,r)},curry2ResolveArg1=(e,r)=>function(t){return e(r,t)},curry2=function(e,r,t){return r==__?curry2ResolveArg0(e,t):curry2ResolveArg1(e,r)},curryArgs3ResolveArgs0=(e,r,t)=>function(...n){return e(n,r,t)},curryArgs3ResolveArgs1=(e,r,t)=>function(...n){return e(r,n,t)},curryArgs3ResolveArgs2=(e,r,t)=>function(...n){return e(r,t,n)},curryArgs3=function(e,r,t,n){return r==__?curryArgs3ResolveArgs0(e,t,n):t==__?curryArgs3ResolveArgs1(e,r,n):curryArgs3ResolveArgs2(e,r,t)},curry4ResolveArg0=(e,r,t,n)=>function(o){return e(o,r,t,n)},curry4ResolveArg1=(e,r,t,n)=>function(o){return e(r,o,t,n)},curry4ResolveArg2=(e,r,t,n)=>function(o){return e(r,t,o,n)},curry4ResolveArg3=(e,r,t,n)=>function(o){return e(r,t,n,o)},curry4=function(e,r,t,n,o){return r==__?curry4ResolveArg0(e,t,n,o):t==__?curry4ResolveArg1(e,r,n,o):n==__?curry4ResolveArg2(e,r,t,o):curry4ResolveArg3(e,r,t,n)},arrayReduceAsync=async function(e,r,t,n){const o=e.length;for(;++n<o;)t=r(t,e[n],n,e),isPromise(t)&&(t=await t);return t},arrayReduce=function(e,r,t){const n=e.length;let o=-1;for(void 0===t&&(t=e[++o]);++o<n;)if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry4(arrayReduceAsync,e,r,__,o));return t},curry5ResolveArg0=(e,r,t,n,o)=>function(c){return e(c,r,t,n,o)},curry5ResolveArg1=(e,r,t,n,o)=>function(c){return e(r,c,t,n,o)},curry5ResolveArg2=(e,r,t,n,o)=>function(c){return e(r,t,c,n,o)},curry5ResolveArg3=(e,r,t,n,o)=>function(c){return e(r,t,n,c,o)},curry5ResolveArg4=(e,r,t,n,o)=>function(c){return e(r,t,n,o,c)},curry5=function(e,r,t,n,o,c){return r==__?curry5ResolveArg0(e,t,n,o,c):t==__?curry5ResolveArg1(e,r,n,o,c):n==__?curry5ResolveArg2(e,r,t,o,c):o==__?curry5ResolveArg3(e,r,t,n,c):curry5ResolveArg4(e,r,t,n,o)},objectKeys=Object.keys,objectGetFirstKey=function(e){for(const r in e)return r},objectReduceAsync=async function(e,r,t,n,o){const c=n.length;for(;++o<c;){const c=n[o];t=r(t,e[c],c,e),isPromise(t)&&(t=await t)}return t},objectReduce=function(e,r,t){const n=objectKeys(e),o=n.length;let c=-1;for(void 0===t&&(t=e[n[++c]]);++c<o;){const o=n[c];if(t=r(t,e[o],o,e),isPromise(t))return t.then((s=objectReduceAsync,a=r,u=__,l=n,f=c,(i=e)==__?curry5ResolveArg0(s,a,u,l,f):a==__?curry5ResolveArg1(s,i,u,l,f):u==__?curry5ResolveArg2(s,i,a,l,f):l==__?curry5ResolveArg3(s,i,a,u,f):curry5ResolveArg4(s,i,a,u,l)))}var s,i,a,u,l,f;return t},mapReduceAsync=async function(e,r,t,n){for(const[o,c]of n)t=r(t,c,o,e),isPromise(t)&&(t=await t);return t},mapReduce=function(e,r,t){const n=e.entries();if(void 0===t){const e=n.next();if(e.done)return t;t=e.value[1]}for(const[o,c]of n)if(t=r(t,c,o,e),isPromise(t))return t.then(curry4(mapReduceAsync,e,r,__,n));return t},funcConcatSync=(e,r)=>function(...t){return r(e(...t))},generatorFunctionReduce=(e,r,t)=>funcConcatSync(e,curry3(iteratorReduce,__,r,t)),asyncGeneratorFunctionReduce=(e,r,t)=>funcConcatSync(e,curry3(asyncIteratorReduce,__,r,t)),reducerConcat=(e,r)=>function(t,n){const o=e(t,n);return isPromise(o)?o.then(curry2(r,__,n)):r(o,n)},genericReduce=function(e,r,t){const n=e[0];return isArray(n)?arrayReduce(n,r,t):"function"==typeof n?isGeneratorFunction(n)?generatorFunctionReduce(n,r,t):isAsyncGeneratorFunction(n)?asyncGeneratorFunctionReduce(n,r,t):curryArgs3(genericReduce,__,1==e.length?reducerConcat(r,n):e.reduce(reducerConcat,r),t):null==n?void 0===t?curry2(r,n,__):r(t,n):n.constructor==Map?mapReduce(n,r,t):"function"==typeof n[symbolIterator]?iteratorReduce(n[symbolIterator](),r,t):"function"==typeof n[symbolAsyncIterator]?asyncIteratorReduce(n[symbolAsyncIterator](),r,t):"function"==typeof n.reduce?n.reduce(r,t):"function"==typeof n.chain?n.chain(curry2(r,t,__)):"function"==typeof n.flatMap?n.flatMap(curry2(r,t,__)):n.constructor==Object?objectReduce(n,r,t):void 0===t?curry2(r,n,__):r(t,n)},arrayPush=function(e,r){return e.push(r),e},FlatMappingIterator=function(e,r){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const e=t[n];return n+=1,{value:e,done:!1}}const o=e.next();if(o.done)return o;const c=genericReduce([r(o.value)],arrayPush,[]);return c.length>1&&(t=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),FlatMappingAsyncIterator=function(e,r){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:c}=await e.next();if(c)this.isAsyncIteratorDone=c;else{const e=r(o);if(isPromise(e)){const r=e.then(curryArgs3(genericReduce,__,arrayPush,t)).then((()=>n.delete(r)));n.add(r)}else{const r=genericReduce([e],arrayPush,t);if(isPromise(r)){const e=r.then((()=>n.delete(e)));n.add(e)}}}}if(t.length>0)return{value:t.shift(),done:!1};n.size>0&&await promiseRace(n)}return{value:void 0,done:!0}}}},isBinary=ArrayBuffer.isView,always=e=>function(){return e},getArg1=(e,r)=>r,identity=e=>e,promiseAll=Promise.all.bind(Promise),asyncIteratorForEach=async function(e,r){const t=[];for await(const n of e){const e=r(n);isPromise(e)&&t.push(e)}return 0==t.length?e:promiseAll(t).then(always(e))},arrayFlatten=function(e){const r=e.length,t=[],n=[];let o=-1;for(;++o<r;){const r=e[o];if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)n.push(r[t])}else if(null==r)n.push(r);else if("function"==typeof r.then)t.push(r.then(curry2(arrayPush,n,__)));else if("function"==typeof r[symbolIterator])for(const e of r)n.push(e);else if("function"==typeof r[symbolAsyncIterator])t.push(asyncIteratorForEach(r[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof r.chain){const e=r.chain(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.flatMap){const e=r.flatMap(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.reduce){const e=r.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(e)&&t.push(e)}else if(r.constructor==Object)for(const e in r)n.push(r[e]);else n.push(r)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayMap=function(e,r){const t=e.length,n=Array(t);let o=-1,c=!1;for(;++o<t;){const t=r(e[o],o,e);isPromise(t)&&(c=!0),n[o]=t}return c?promiseAll(n):n},arrayFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},promiseObjectAllExecutor=e=>function(r){const t={};let n=0;for(const o in e){const c=e[o];isPromise(c)?(n+=1,c.then((e=>function(o){t[e]=o,n-=1,0==n&&r(t)})(o))):t[o]=c}0==n&&r(t)},promiseObjectAll=e=>new Promise(promiseObjectAllExecutor(e)),objectMap=function(e,r){const t={};let n=!1;for(const o in e){const c=r(e[o],o,e);isPromise(c)&&(n=!0),t[o]=c}return n?promiseObjectAll(t):t},objectAssign=Object.assign,objectFlatten=function(e){const r=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const c in e){const s=e[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const e of s)objectAssign(t,e);else if("function"==typeof s[symbolAsyncIterator])r.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const e=s.chain(identity);isPromise(e)?r.push(e.then(n)):objectAssign(t,e)}else if("function"==typeof s.flatMap){const e=s.flatMap(identity);isPromise(e)?r.push(e.then(n)):n(e)}else if("function"==typeof s.reduce){const e=s.reduce(o,null);isPromise(e)&&r.push(e)}else objectAssign(t,s)}return 0==r.length?t:promiseAll(r).then((()=>t))},objectFlatMap=function(e,r){const t=objectMap(e,r);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},callPropUnary=(e,r,t)=>e[r](t),setMap=function(e,r){const t=new Set,n=[];for(const o of e){const c=r(o,o,e);isPromise(c)?n.push(c.then(curry3(callPropUnary,t,"add",__))):t.add(c)}return 0==n.length?t:promiseAll(n).then(always(t))},setFlatten=function(e){e.size;const r=[],t=new Set,n=(e,r)=>t.add(r),o=curry3(callPropUnary,t,"add",__);for(const c of e)if(isArray(c)){const e=c.length;let r=-1;for(;++r<e;)t.add(c[r])}else if(null==c)t.add(c);else if("function"==typeof c[symbolIterator])for(const e of c)t.add(e);else if("function"==typeof c[symbolAsyncIterator])r.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const e=c.chain(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.flatMap){const e=c.flatMap(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.reduce){const e=c.reduce(n,null);isPromise(e)&&r.push(e)}else if(c.constructor==Object)for(const e in c)t.add(c[e]);else t.add(c);return 0==r.length?t:promiseAll(r).then((()=>t))},setFlatMap=function(e,r){const t=setMap(e,r);return isPromise(t)?t.then(setFlatten):setFlatten(t)},funcConcat=(e,r)=>function(...t){const n=e(...t);return isPromise(n)?n.then(r):r(n)},arrayJoin=(e,r)=>e.join(r),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},streamWrite=function(e,r,t,n){return e.write(r,t,n),e},streamFlatExtend=async function(e,r){const t=curry2(streamWrite,e,__),n=funcConcatSync(getArg1,t),o=[];if(isArray(r)){const t=r.length;let n=-1;for(;++n<t;)e.write(r[n])}else if(null==r)e.write(r);else if("function"==typeof r[symbolIterator])for(const t of r)e.write(t);else if("function"==typeof r[symbolAsyncIterator])o.push(asyncIteratorForEach(r[symbolAsyncIterator](),t));else if("function"==typeof r.chain){const n=r.chain(identity);isPromise(n)?o.push(n.then(t)):e.write(n)}else if("function"==typeof r.flatMap){const n=r.flatMap(identity);isPromise(n)?o.push(n.then(t)):e.write(n)}else if("function"==typeof r.reduce){const e=r.reduce(n,null);isPromise(e)&&o.push(e)}else if(r.constructor==Object)for(const t in r)e.write(r[t]);else e.write(r);return 0==o.length?e:promiseAll(o).then(always(e))},streamFlatMap=async function(e,r){const t=new Set;for await(const n of e){const o=r(n);if(isPromise(o)){const r=o.then(curry2(streamFlatExtend,e,__)).then((()=>t.delete(r)));t.add(r)}else{const r=streamFlatExtend(e,o);if(isPromise(r)){const e=r.then((()=>t.delete(e)));t.add(e)}}}return await promiseAll(t),e},globalThisHasBuffer="function"==typeof Buffer,noop=function(){},bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(e,r){const t=e.length,n=globalThisHasBuffer&&e.constructor==Buffer?bufferAlloc(t+r.length):new e.constructor(t+r.length);return n.set(e),n.set(r,t),n},binaryExtend=function(e,r){return isArray(r)||isBinary(r)?_binaryExtend(e,r):_binaryExtend(e,[r])},arrayJoinToBinary=function(e,r){const t=e.length;let n=-1,o=r;for(;++n<t;)o=binaryExtend(o,e[n]);return o},arrayFlattenToBinary=function(e,r){const t=arrayFlatten(e);return isPromise(t)?t.then(curry2(arrayJoinToBinary,__,r)):arrayJoinToBinary(t,r)},binaryFlatMap=function(e,r){const t=arrayMap(e,r),n=globalThisHasBuffer&&e.constructor==Buffer?bufferAlloc(0):new e.constructor(0);return isPromise(t)?t.then(curry2(arrayFlattenToBinary,__,n)):arrayFlattenToBinary(t,n)},reducerFlatMap=(e,r)=>function(t,n){const o=r(n);return isPromise(o)?o.then(curryArgs3(genericReduce,__,e,t)):genericReduce([o],e,t)},generatorFunctionFlatMap=(e,r)=>function*(...t){yield*FlatMappingIterator(e(...t),r)},asyncGeneratorFunctionFlatMap=(e,r)=>async function*(...t){yield*FlatMappingAsyncIterator(e(...t),r)},flatMap=e=>function(r){if(isArray(r))return arrayFlatMap(r,e);if("function"==typeof r)return isGeneratorFunction(r)?generatorFunctionFlatMap(r,e):isAsyncGeneratorFunction(r)?asyncGeneratorFunctionFlatMap(r,e):reducerFlatMap(r,e);if(isBinary(r))return binaryFlatMap(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);if("function"==typeof r[symbolAsyncIterator]&&"function"==typeof r.write)return streamFlatMap(r,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)};export default flatMap;