rubico 2.8.6 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +1 -1
  2. package/_internal/FlatMappingAsyncIterator.js +41 -30
  3. package/_internal/LinkedList.js +54 -0
  4. package/_internal/LinkedList.test.js +34 -0
  5. package/_internal/MappingAsyncIterator.js +65 -15
  6. package/_internal/SerialMappingAsyncIterator.js +79 -0
  7. package/_internal/iteratorFind.js +0 -2
  8. package/_internal/iteratorForEachSeries.js +1 -1
  9. package/_internal/objectFlatten.js +4 -1
  10. package/all.js +7 -8
  11. package/and.js +1 -1
  12. package/assign.js +1 -1
  13. package/compose.js +1 -1
  14. package/curry.js +1 -1
  15. package/dist/Transducer.es.js +1 -1
  16. package/dist/Transducer.es.min.js +1 -1
  17. package/dist/Transducer.js +1 -1
  18. package/dist/Transducer.min.js +1 -1
  19. package/dist/Transducer.mjs +1 -1
  20. package/dist/__.es.js +1 -1
  21. package/dist/__.es.min.js +1 -1
  22. package/dist/__.js +1 -1
  23. package/dist/__.min.js +1 -1
  24. package/dist/__.mjs +1 -1
  25. package/dist/all.es.js +1 -1
  26. package/dist/all.es.min.js +1 -1
  27. package/dist/all.js +1 -1
  28. package/dist/all.min.js +1 -1
  29. package/dist/all.mjs +1 -1
  30. package/dist/always.es.js +1 -1
  31. package/dist/always.es.min.js +1 -1
  32. package/dist/always.js +1 -1
  33. package/dist/always.min.js +1 -1
  34. package/dist/always.mjs +1 -1
  35. package/dist/and.es.js +1 -1
  36. package/dist/and.es.min.js +1 -1
  37. package/dist/and.js +1 -1
  38. package/dist/and.min.js +1 -1
  39. package/dist/and.mjs +1 -1
  40. package/dist/assign.es.js +1 -1
  41. package/dist/assign.es.min.js +1 -1
  42. package/dist/assign.js +1 -1
  43. package/dist/assign.min.js +1 -1
  44. package/dist/assign.mjs +1 -1
  45. package/dist/compose.es.js +1 -1
  46. package/dist/compose.es.min.js +1 -1
  47. package/dist/compose.js +1 -1
  48. package/dist/compose.min.js +1 -1
  49. package/dist/compose.mjs +1 -1
  50. package/dist/curry.es.js +1 -1
  51. package/dist/curry.es.min.js +1 -1
  52. package/dist/curry.js +1 -1
  53. package/dist/curry.min.js +1 -1
  54. package/dist/curry.mjs +1 -1
  55. package/dist/eq.es.js +1 -1
  56. package/dist/eq.es.min.js +1 -1
  57. package/dist/eq.js +1 -1
  58. package/dist/eq.min.js +1 -1
  59. package/dist/eq.mjs +1 -1
  60. package/dist/every.es.js +1 -1
  61. package/dist/every.es.min.js +1 -1
  62. package/dist/every.js +1 -1
  63. package/dist/every.min.js +1 -1
  64. package/dist/every.mjs +1 -1
  65. package/dist/filter.es.js +4 -4
  66. package/dist/filter.es.min.js +2 -2
  67. package/dist/filter.js +4 -4
  68. package/dist/filter.min.js +2 -2
  69. package/dist/filter.mjs +4 -4
  70. package/dist/flatMap.es.js +44 -28
  71. package/dist/flatMap.es.min.js +2 -2
  72. package/dist/flatMap.js +44 -28
  73. package/dist/flatMap.min.js +2 -2
  74. package/dist/flatMap.mjs +44 -28
  75. package/dist/forEach.es.js +6 -6
  76. package/dist/forEach.es.min.js +2 -2
  77. package/dist/forEach.js +6 -6
  78. package/dist/forEach.min.js +2 -2
  79. package/dist/forEach.mjs +6 -6
  80. package/dist/get.es.js +1 -1
  81. package/dist/get.es.min.js +1 -1
  82. package/dist/get.js +1 -1
  83. package/dist/get.min.js +1 -1
  84. package/dist/get.mjs +1 -1
  85. package/dist/gt.es.js +1 -1
  86. package/dist/gt.es.min.js +1 -1
  87. package/dist/gt.js +1 -1
  88. package/dist/gt.min.js +1 -1
  89. package/dist/gt.mjs +1 -1
  90. package/dist/gte.es.js +1 -1
  91. package/dist/gte.es.min.js +1 -1
  92. package/dist/gte.js +1 -1
  93. package/dist/gte.min.js +1 -1
  94. package/dist/gte.mjs +1 -1
  95. package/dist/lt.es.js +1 -1
  96. package/dist/lt.es.min.js +1 -1
  97. package/dist/lt.js +1 -1
  98. package/dist/lt.min.js +1 -1
  99. package/dist/lt.mjs +1 -1
  100. package/dist/lte.es.js +1 -1
  101. package/dist/lte.es.min.js +1 -1
  102. package/dist/lte.js +1 -1
  103. package/dist/lte.min.js +1 -1
  104. package/dist/lte.mjs +1 -1
  105. package/dist/map.es.js +187 -39
  106. package/dist/map.es.min.js +2 -2
  107. package/dist/map.js +187 -39
  108. package/dist/map.min.js +2 -2
  109. package/dist/map.mjs +187 -39
  110. package/dist/not.es.js +1 -1
  111. package/dist/not.es.min.js +1 -1
  112. package/dist/not.js +1 -1
  113. package/dist/not.min.js +1 -1
  114. package/dist/not.mjs +1 -1
  115. package/dist/omit.es.js +1 -1
  116. package/dist/omit.es.min.js +1 -1
  117. package/dist/omit.js +1 -1
  118. package/dist/omit.min.js +1 -1
  119. package/dist/omit.mjs +1 -1
  120. package/dist/or.es.js +1 -1
  121. package/dist/or.es.min.js +1 -1
  122. package/dist/or.js +1 -1
  123. package/dist/or.min.js +1 -1
  124. package/dist/or.mjs +1 -1
  125. package/dist/pick.es.js +1 -1
  126. package/dist/pick.es.min.js +1 -1
  127. package/dist/pick.js +1 -1
  128. package/dist/pick.min.js +1 -1
  129. package/dist/pick.mjs +1 -1
  130. package/dist/pipe.es.js +1 -1
  131. package/dist/pipe.es.min.js +1 -1
  132. package/dist/pipe.js +1 -1
  133. package/dist/pipe.min.js +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.mjs +1 -1
  140. package/dist/rubico.es.js +233 -78
  141. package/dist/rubico.es.min.js +2 -2
  142. package/dist/rubico.global.js +233 -78
  143. package/dist/rubico.global.min.js +2 -2
  144. package/dist/rubico.js +233 -78
  145. package/dist/rubico.min.js +2 -2
  146. package/dist/rubico.mjs +233 -78
  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.mjs +1 -1
  152. package/dist/some.es.js +1 -1
  153. package/dist/some.es.min.js +1 -1
  154. package/dist/some.js +1 -1
  155. package/dist/some.min.js +1 -1
  156. package/dist/some.mjs +1 -1
  157. package/dist/switchCase.es.js +1 -1
  158. package/dist/switchCase.es.min.js +1 -1
  159. package/dist/switchCase.js +1 -1
  160. package/dist/switchCase.min.js +1 -1
  161. package/dist/switchCase.mjs +1 -1
  162. package/dist/tap.es.js +1 -1
  163. package/dist/tap.es.min.js +1 -1
  164. package/dist/tap.js +1 -1
  165. package/dist/tap.min.js +1 -1
  166. package/dist/tap.mjs +1 -1
  167. package/dist/thunkify.es.js +1 -1
  168. package/dist/thunkify.es.min.js +1 -1
  169. package/dist/thunkify.js +1 -1
  170. package/dist/thunkify.min.js +1 -1
  171. package/dist/thunkify.mjs +1 -1
  172. package/dist/transform.es.js +1 -1
  173. package/dist/transform.es.min.js +1 -1
  174. package/dist/transform.js +1 -1
  175. package/dist/transform.min.js +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.mjs +1 -1
  182. package/dist/x/append.es.js +1 -1
  183. package/dist/x/append.es.min.js +1 -1
  184. package/dist/x/append.js +1 -1
  185. package/dist/x/append.min.js +1 -1
  186. package/dist/x/append.mjs +1 -1
  187. package/dist/x/callProp.es.js +1 -1
  188. package/dist/x/callProp.es.min.js +1 -1
  189. package/dist/x/callProp.js +1 -1
  190. package/dist/x/callProp.min.js +1 -1
  191. package/dist/x/callProp.mjs +1 -1
  192. package/dist/x/defaultsDeep.es.js +1 -1
  193. package/dist/x/defaultsDeep.es.min.js +1 -1
  194. package/dist/x/defaultsDeep.js +1 -1
  195. package/dist/x/defaultsDeep.min.js +1 -1
  196. package/dist/x/defaultsDeep.mjs +1 -1
  197. package/dist/x/differenceWith.es.js +1 -1
  198. package/dist/x/differenceWith.es.min.js +1 -1
  199. package/dist/x/differenceWith.js +1 -1
  200. package/dist/x/differenceWith.min.js +1 -1
  201. package/dist/x/differenceWith.mjs +1 -1
  202. package/dist/x/filterOut.es.js +4 -4
  203. package/dist/x/filterOut.es.min.js +2 -2
  204. package/dist/x/filterOut.js +4 -4
  205. package/dist/x/filterOut.min.js +2 -2
  206. package/dist/x/filterOut.mjs +4 -4
  207. package/dist/x/find.es.js +1 -3
  208. package/dist/x/find.es.min.js +1 -1
  209. package/dist/x/find.js +1 -3
  210. package/dist/x/find.min.js +1 -1
  211. package/dist/x/find.mjs +1 -3
  212. package/dist/x/findIndex.es.js +1 -1
  213. package/dist/x/findIndex.es.min.js +1 -1
  214. package/dist/x/findIndex.js +1 -1
  215. package/dist/x/findIndex.min.js +1 -1
  216. package/dist/x/findIndex.mjs +1 -1
  217. package/dist/x/first.es.js +1 -1
  218. package/dist/x/first.es.min.js +1 -1
  219. package/dist/x/first.js +1 -1
  220. package/dist/x/first.min.js +1 -1
  221. package/dist/x/first.mjs +1 -1
  222. package/dist/x/flatten.es.js +44 -28
  223. package/dist/x/flatten.es.min.js +2 -2
  224. package/dist/x/flatten.js +44 -28
  225. package/dist/x/flatten.min.js +2 -2
  226. package/dist/x/flatten.mjs +44 -28
  227. package/dist/x/groupBy.es.js +1 -1
  228. package/dist/x/groupBy.es.min.js +1 -1
  229. package/dist/x/groupBy.js +1 -1
  230. package/dist/x/groupBy.min.js +1 -1
  231. package/dist/x/groupBy.mjs +1 -1
  232. package/dist/x/has.es.js +1 -1
  233. package/dist/x/has.es.min.js +1 -1
  234. package/dist/x/has.js +1 -1
  235. package/dist/x/has.min.js +1 -1
  236. package/dist/x/has.mjs +1 -1
  237. package/dist/x/identity.es.js +1 -1
  238. package/dist/x/identity.es.min.js +1 -1
  239. package/dist/x/identity.js +1 -1
  240. package/dist/x/identity.min.js +1 -1
  241. package/dist/x/identity.mjs +1 -1
  242. package/dist/x/includes.es.js +1 -1
  243. package/dist/x/includes.es.min.js +1 -1
  244. package/dist/x/includes.js +1 -1
  245. package/dist/x/includes.min.js +1 -1
  246. package/dist/x/includes.mjs +1 -1
  247. package/dist/x/isDeepEqual.es.js +1 -1
  248. package/dist/x/isDeepEqual.es.min.js +1 -1
  249. package/dist/x/isDeepEqual.js +1 -1
  250. package/dist/x/isDeepEqual.min.js +1 -1
  251. package/dist/x/isDeepEqual.mjs +1 -1
  252. package/dist/x/isEmpty.es.js +1 -1
  253. package/dist/x/isEmpty.es.min.js +1 -1
  254. package/dist/x/isEmpty.js +1 -1
  255. package/dist/x/isEmpty.min.js +1 -1
  256. package/dist/x/isEmpty.mjs +1 -1
  257. package/dist/x/isEqual.es.js +1 -1
  258. package/dist/x/isEqual.es.min.js +1 -1
  259. package/dist/x/isEqual.js +1 -1
  260. package/dist/x/isEqual.min.js +1 -1
  261. package/dist/x/isEqual.mjs +1 -1
  262. package/dist/x/isFunction.es.js +1 -1
  263. package/dist/x/isFunction.es.min.js +1 -1
  264. package/dist/x/isFunction.js +1 -1
  265. package/dist/x/isFunction.min.js +1 -1
  266. package/dist/x/isFunction.mjs +1 -1
  267. package/dist/x/isIn.es.js +1 -1
  268. package/dist/x/isIn.es.min.js +1 -1
  269. package/dist/x/isIn.js +1 -1
  270. package/dist/x/isIn.min.js +1 -1
  271. package/dist/x/isIn.mjs +1 -1
  272. package/dist/x/isObject.es.js +1 -1
  273. package/dist/x/isObject.es.min.js +1 -1
  274. package/dist/x/isObject.js +1 -1
  275. package/dist/x/isObject.min.js +1 -1
  276. package/dist/x/isObject.mjs +1 -1
  277. package/dist/x/isString.es.js +1 -1
  278. package/dist/x/isString.es.min.js +1 -1
  279. package/dist/x/isString.js +1 -1
  280. package/dist/x/isString.min.js +1 -1
  281. package/dist/x/isString.mjs +1 -1
  282. package/dist/x/keys.es.js +1 -1
  283. package/dist/x/keys.es.min.js +1 -1
  284. package/dist/x/keys.js +1 -1
  285. package/dist/x/keys.min.js +1 -1
  286. package/dist/x/keys.mjs +1 -1
  287. package/dist/x/last.es.js +1 -1
  288. package/dist/x/last.es.min.js +1 -1
  289. package/dist/x/last.js +1 -1
  290. package/dist/x/last.min.js +1 -1
  291. package/dist/x/last.mjs +1 -1
  292. package/dist/x/maxBy.es.js +1 -1
  293. package/dist/x/maxBy.es.min.js +1 -1
  294. package/dist/x/maxBy.js +1 -1
  295. package/dist/x/maxBy.min.js +1 -1
  296. package/dist/x/maxBy.mjs +1 -1
  297. package/dist/x/noop.es.js +1 -1
  298. package/dist/x/noop.es.min.js +1 -1
  299. package/dist/x/noop.js +1 -1
  300. package/dist/x/noop.min.js +1 -1
  301. package/dist/x/noop.mjs +1 -1
  302. package/dist/x/pluck.es.js +187 -39
  303. package/dist/x/pluck.es.min.js +2 -2
  304. package/dist/x/pluck.js +187 -39
  305. package/dist/x/pluck.min.js +2 -2
  306. package/dist/x/pluck.mjs +187 -39
  307. package/dist/x/prepend.es.js +1 -1
  308. package/dist/x/prepend.es.min.js +1 -1
  309. package/dist/x/prepend.js +1 -1
  310. package/dist/x/prepend.min.js +1 -1
  311. package/dist/x/prepend.mjs +1 -1
  312. package/dist/x/size.es.js +1 -1
  313. package/dist/x/size.es.min.js +1 -1
  314. package/dist/x/size.js +1 -1
  315. package/dist/x/size.min.js +1 -1
  316. package/dist/x/size.mjs +1 -1
  317. package/dist/x/trace.es.js +1 -1
  318. package/dist/x/trace.es.min.js +1 -1
  319. package/dist/x/trace.js +1 -1
  320. package/dist/x/trace.min.js +1 -1
  321. package/dist/x/trace.mjs +1 -1
  322. package/dist/x/unionWith.es.js +1 -1
  323. package/dist/x/unionWith.es.min.js +1 -1
  324. package/dist/x/unionWith.js +1 -1
  325. package/dist/x/unionWith.min.js +1 -1
  326. package/dist/x/unionWith.mjs +1 -1
  327. package/dist/x/uniq.es.js +1 -1
  328. package/dist/x/uniq.es.min.js +1 -1
  329. package/dist/x/uniq.js +1 -1
  330. package/dist/x/uniq.min.js +1 -1
  331. package/dist/x/uniq.mjs +1 -1
  332. package/dist/x/unless.es.js +1 -1
  333. package/dist/x/unless.es.min.js +1 -1
  334. package/dist/x/unless.js +1 -1
  335. package/dist/x/unless.min.js +1 -1
  336. package/dist/x/unless.mjs +1 -1
  337. package/dist/x/values.es.js +1 -1
  338. package/dist/x/values.es.min.js +1 -1
  339. package/dist/x/values.js +1 -1
  340. package/dist/x/values.min.js +1 -1
  341. package/dist/x/values.mjs +1 -1
  342. package/dist/x/when.es.js +1 -1
  343. package/dist/x/when.es.min.js +1 -1
  344. package/dist/x/when.js +1 -1
  345. package/dist/x/when.min.js +1 -1
  346. package/dist/x/when.mjs +1 -1
  347. package/eq.js +2 -2
  348. package/es.js +233 -78
  349. package/every.js +2 -2
  350. package/filter.js +4 -4
  351. package/flatMap.js +61 -54
  352. package/forEach.js +33 -56
  353. package/get.js +5 -3
  354. package/gt.js +2 -2
  355. package/gte.js +2 -2
  356. package/index.js +233 -78
  357. package/lt.js +2 -2
  358. package/lte.js +2 -2
  359. package/map.js +115 -151
  360. package/monad/README.md +1 -1
  361. package/not.js +1 -1
  362. package/omit.js +22 -19
  363. package/or.js +1 -1
  364. package/package.json +1 -1
  365. package/pick.js +14 -11
  366. package/pipe.js +1 -1
  367. package/reduce.js +1 -1
  368. package/set.js +17 -18
  369. package/some.js +2 -2
  370. package/switchCase.js +12 -4
  371. package/tap.js +6 -4
  372. package/transform.js +1 -1
  373. package/tryCatch.js +1 -1
  374. package/x/defaultsDeep.js +1 -1
  375. package/x/defaultsDeep.test.js +1 -1
  376. package/_internal/NextIteration.js +0 -12
  377. package/_internal/generatorFunctionFilter.js +0 -28
  378. package/_internal/iterationMap.js +0 -27
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
6
6
  * Rubico may be freely distributed under the CFOSS license.
7
7
  */
8
8
 
9
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,e=(Object.values,Object.prototype.toString,Symbol.for("placeholder")),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o},u=Symbol.iterator,f=Symbol.asyncIterator,c=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},i=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},s=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},l=Object.keys,a=async function(t,e,o,r,u){const f=r.length;for(;++u<f;){const f=r[u];o=e(o,t[f],f,t),n(o)&&(o=await o)}return o},h=async function(t,e,o,r){for(const[u,f]of r)o=e(o,f,u,t),n(o)&&(o=await o);return o},p=function(p,d,y){return t(p)?function(t,o,r){const u=t.length;let f=-1;for(void 0===r&&(r=t[++f]);++f<u;)if(r=o(r,t[f],f,t),n(r))return r.then(i(s,t,o,e,f));return r}(p,d,y):null==p?void 0===y?c(d,p,e):d(y,p):p.constructor==Map?function(t,o,r){const u=t.entries();if(void 0===r){const n=u.next();if(n.done)return r;r=n.value[1]}for(const[f,c]of u)if(r=o(r,c,f,t),n(r))return r.then(i(h,t,o,e,u));return r}(p,d,y):"function"==typeof p[u]?function(t,u,f){let c=t.next();if(c.done)return f;for(void 0===f&&(f=c.value,c=t.next());!c.done;){if(f=u(f,c.value),n(f))return f.then(o(r,t,u,e));c=t.next()}return f}(p[u](),d,y):"function"==typeof p[f]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(p[f](),d,y):"function"==typeof p.reduce?p.reduce(d,y):"function"==typeof p.chain?p.chain(c(d,y,e)):"function"==typeof p.flatMap?p.flatMap(c(d,y,e)):p.constructor==Object?function(t,o,r){const u=l(t),f=u.length;let c=-1;for(void 0===r&&(r=t[u[++c]]);++c<f;){const f=u[c];if(r=o(r,t[f],f,t),n(r))return r.then((i=a,h=o,p=e,d=u,y=c,(s=t)==e?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,h,p,d,y):h==e?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,p,d,y):p==e?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,h,d,y):d==e?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,h,p,y):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,h,p,d)))}var i,s,h,p,d,y;return r}(p,d,y):void 0===y?c(d,p,e):d(y,p)},d=function(n,t){return n.push(t),n},y=Promise.race.bind(Promise),g=n=>new Promise((t=>{setTimeout(t,n)})),v=n=>function(){return n},b=(n,t)=>t,w=n=>n,x=Promise.all.bind(Promise),M=(n,t)=>function(...e){return t(n(...e))},j=async function(t,e){const o=[];for await(const r of t){const t=e(r);n(t)&&o.push(t)}return 0==o.length?t:x(o).then(v(t))},m=function(o){const r=o.length,i=[],s=[];let l=-1;for(;++l<r;){const r=o[l];if(t(r)){const n=r.length;let t=-1;for(;++t<n;)s.push(r[t])}else if(null==r)s.push(r);else if("function"==typeof r.then)i.push(r.then(c(d,s,e)));else if("function"==typeof r[u])for(const n of r)s.push(n);else if("function"==typeof r[f])i.push(j(r[f](),c(d,s,e)));else if("function"==typeof r.chain){const t=r.chain(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.flatMap){const t=r.flatMap(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.reduce){const t=r.reduce(M(b,c(d,s,e)),null);n(t)&&i.push(t)}else if(r.constructor==Object)for(const n in r)s.push(r[n]);else s.push(r)}return 0==i.length?s:x(i).then(v(s))},S=function(t,e){const o=t.length,r=Array(o);let u=-1,f=!1;for(;++u<o;){const o=e(t[u],u,t);n(o)&&(f=!0),r[u]=o}return f?x(r):r},A=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const f=t[u];n(f)?(r+=1,f.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=f}0==r&&e(o)})(t)),O=Object.assign,I=function(t){const o=[],r={},i=c(O,r,e),s=M(b,i);for(const e in t){const c=t[e];if(null!=c)if("function"==typeof c[u])for(const n of c)O(r,n);else if("function"==typeof c[f])o.push(j(c[f](),i));else if("function"==typeof c.chain){const t=c.chain(w);n(t)?o.push(t.then(i)):O(r,t)}else if("function"==typeof c.flatMap){const t=c.flatMap(w);n(t)?o.push(t.then(i)):i(t)}else if("function"==typeof c.reduce){const t=c.reduce(s,null);n(t)&&o.push(t)}else O(r,c)}return 0==o.length?r:x(o).then((()=>r))},P=function(t,e){const o=function(t,e){const o={};let r=!1;for(const u in t){const f=e(t[u],u,t);n(f)&&(r=!0),o[u]=f}return r?A(o):o}(t,e);return n(o)?o.then(I):I(o)},D=(n,t,e)=>n[t](e),z=function(r){r.size;const c=[],i=new Set,s=(n,t)=>i.add(t),l=o(D,i,"add",e);for(const e of r)if(t(e)){const n=e.length;let t=-1;for(;++t<n;)i.add(e[t])}else if(null==e)i.add(e);else if("function"==typeof e[u])for(const n of e)i.add(n);else if("function"==typeof e[f])c.push(j(e[f](),l));else if("function"==typeof e.chain){const t=e.chain(w);n(t)?c.push(t.then(l)):i.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(w);n(t)?c.push(t.then(l)):i.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(s,null);n(t)&&c.push(t)}else if(e.constructor==Object)for(const n in e)i.add(e[n]);else i.add(e);return 0==c.length?i:x(c).then((()=>i))},T=function(t,r){const u=function(t,r){const u=new Set,f=[];for(const c of t){const i=r(c,c,t);n(i)?f.push(i.then(o(D,u,"add",e))):u.add(i)}return 0==f.length?u:x(f).then(v(u))}(t,r);return n(u)?u.then(z):z(u)},k=(F=m,q=c(((n,t)=>n.join(t)),e,""),function(...t){const e=F(...t);return n(e)?e.then(q):q(e)});var F,q;const B=function(r,c){if(t(r))return function(t,e){const o=S(t,e);return n(o)?o.then(m):m(o)}(r,c);if(null==r)return c(r);if("function"==typeof r.then)return r.then(c);if("function"==typeof r.next)return u in r?function(n,t){let e=[],o=0;return{[u](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=p(t(r.value),d,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(r,c):function(t,r){const u=[],c=new Set;return{isAsyncIteratorDone:!1,[f](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||u.length>0||c.size>0;){if(!this.isAsyncIteratorDone){const{value:f,done:i}=await t.next();if(i)this.isAsyncIteratorDone=i;else{const t=r(f);if(n(t)){const n=t.then(o(p,e,d,u)).then((()=>c.delete(n)));c.add(n)}else{const e=p(t,d,u);if(n(e)){const n=e.then((()=>c.delete(n)));c.add(n)}}}}if(u.length>0)return{value:u.shift(),done:!1};c.size>0&&await y([g(1e3),...c])}return{value:void 0,done:!0}}}}(r,c);if("function"==typeof r.chain)return r.chain(c);if("function"==typeof r.flatMap)return r.flatMap(c);const i=r.constructor;return i==Object?P(r,c):i==Set?T(r,c):"string"==typeof r||i==String?function(t,e){const o=S(t,e);return n(o)?o.then(k):k(o)}(r,c):c(r)};return(t,o)=>"function"==typeof t?c(B,e,t):n(t)?t.then(c(B,e,o)):B(t,o)}());
9
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,e=(Object.values,Object.prototype.toString,Symbol.for("placeholder")),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o},u=Symbol.iterator,f=Symbol.asyncIterator,c=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},i=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},s=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},a=Object.keys,l=async function(t,e,o,r,u){const f=r.length;for(;++u<f;){const f=r[u];o=e(o,t[f],f,t),n(o)&&(o=await o)}return o},h=async function(t,e,o,r){for(const[u,f]of r)o=e(o,f,u,t),n(o)&&(o=await o);return o},p=function(p,d,y){return t(p)?function(t,o,r){const u=t.length;let f=-1;for(void 0===r&&(r=t[++f]);++f<u;)if(r=o(r,t[f],f,t),n(r))return r.then(i(s,t,o,e,f));return r}(p,d,y):null==p?void 0===y?c(d,p,e):d(y,p):p.constructor==Map?function(t,o,r){const u=t.entries();if(void 0===r){const n=u.next();if(n.done)return r;r=n.value[1]}for(const[f,c]of u)if(r=o(r,c,f,t),n(r))return r.then(i(h,t,o,e,u));return r}(p,d,y):"function"==typeof p[u]?function(t,u,f){let c=t.next();if(c.done)return f;for(void 0===f&&(f=c.value,c=t.next());!c.done;){if(f=u(f,c.value),n(f))return f.then(o(r,t,u,e));c=t.next()}return f}(p[u](),d,y):"function"==typeof p[f]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(p[f](),d,y):"function"==typeof p.reduce?p.reduce(d,y):"function"==typeof p.chain?p.chain(c(d,y,e)):"function"==typeof p.flatMap?p.flatMap(c(d,y,e)):p.constructor==Object?function(t,o,r){const u=a(t),f=u.length;let c=-1;for(void 0===r&&(r=t[u[++c]]);++c<f;){const f=u[c];if(r=o(r,t[f],f,t),n(r))return r.then((i=l,h=o,p=e,d=u,y=c,(s=t)==e?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,h,p,d,y):h==e?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,p,d,y):p==e?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,h,d,y):d==e?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,h,p,y):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,h,p,d)))}var i,s,h,p,d,y;return r}(p,d,y):void 0===y?c(d,p,e):d(y,p)},d=function(n,t){return n.push(t),n},y=Promise.race.bind(Promise),g=n=>new Promise((t=>{setTimeout(t,n)})),v=n=>function(){return n},b=(n,t)=>t,w=n=>n,m=Promise.all.bind(Promise),x=(n,t)=>function(...e){return t(n(...e))},M=async function(t,e){const o=[];for await(const r of t){const t=e(r);n(t)&&o.push(t)}return 0==o.length?t:m(o).then(v(t))},j=function(o){const r=o.length,i=[],s=[];let a=-1;for(;++a<r;){const r=o[a];if(t(r)){const n=r.length;let t=-1;for(;++t<n;)s.push(r[t])}else if(null==r)s.push(r);else if("function"==typeof r.then)i.push(r.then(c(d,s,e)));else if("function"==typeof r[u])for(const n of r)s.push(n);else if("function"==typeof r[f])i.push(M(r[f](),c(d,s,e)));else if("function"==typeof r.chain){const t=r.chain(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.flatMap){const t=r.flatMap(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.reduce){const t=r.reduce(x(b,c(d,s,e)),null);n(t)&&i.push(t)}else if(r.constructor==Object)for(const n in r)s.push(r[n]);else s.push(r)}return 0==i.length?s:m(i).then(v(s))},S=function(t,e){const o=t.length,r=Array(o);let u=-1,f=!1;for(;++u<o;){const o=e(t[u],u,t);n(o)&&(f=!0),r[u]=o}return f?m(r):r},O=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const f=t[u];n(f)?(r+=1,f.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=f}0==r&&e(o)})(t)),A=Object.assign,P=function(t){const o=[],r={},i=c(A,r,e),s=x(b,i);for(const e in t){const c=t[e];if(null!=c)if("function"==typeof c[u])for(const n of c)A(r,n);else if("function"==typeof c[f])o.push(M(c[f](),i));else if("function"==typeof c.chain){const t=c.chain(w);n(t)?o.push(t.then(i)):A(r,t)}else if("function"==typeof c.flatMap){const t=c.flatMap(w);n(t)?o.push(t.then(i)):i(t)}else if("function"==typeof c.reduce){const t=c.reduce(s,null);n(t)&&o.push(t)}else A(r,c)}return 0==o.length?r:m(o).then((()=>r))},I=function(t,e){const o=function(t,e){const o={};let r=!1;for(const u in t){const f=e(t[u],u,t);n(f)&&(r=!0),o[u]=f}return r?O(o):o}(t,e);return n(o)?o.then(P):P(o)},z=(n,t,e)=>n[t](e),T=function(r){r.size;const c=[],i=new Set,s=(n,t)=>i.add(t),a=o(z,i,"add",e);for(const e of r)if(t(e)){const n=e.length;let t=-1;for(;++t<n;)i.add(e[t])}else if(null==e)i.add(e);else if("function"==typeof e[u])for(const n of e)i.add(n);else if("function"==typeof e[f])c.push(M(e[f](),a));else if("function"==typeof e.chain){const t=e.chain(w);n(t)?c.push(t.then(a)):i.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(w);n(t)?c.push(t.then(a)):i.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(s,null);n(t)&&c.push(t)}else if(e.constructor==Object)for(const n in e)i.add(e[n]);else i.add(e);return 0==c.length?i:m(c).then((()=>i))},_=function(t,r){const u=function(t,r){const u=new Set,f=[];for(const c of t){const i=r(c,c,t);n(i)?f.push(i.then(o(z,u,"add",e))):u.add(i)}return 0==f.length?u:m(f).then(v(u))}(t,r);return n(u)?u.then(T):T(u)},k=(D=j,F=c(((n,t)=>n.join(t)),e,""),function(...t){const e=D(...t);return n(e)?e.then(F):F(e)});var D,F;const q=function(r,c){if(t(r))return function(t,e){const o=S(t,e);return n(o)?o.then(j):j(o)}(r,c);if(null==r)return c(r);if("function"==typeof r.then)return r.then(c);if("function"==typeof r.next)return u in r?function(n,t){let e=[],o=0;return{[u](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=p(t(r.value),d,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(r,c):function(t,r){const u=[],c=new Set;let i=!1,s=!1;return{isAsyncIteratorDone:!1,[f](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async _consumeAsyncIterator(){for await(const f of t){const t=r(f);if(n(t)){const n=t.then(o(p,e,d,u)).then((()=>c.delete(n)));c.add(n)}else{const e=p(t,d,u);if(n(e)){const n=e.then((()=>c.delete(n)));c.add(n)}}}s=!0},async next(){for(i||(this._consumeAsyncIterator(),i=!0);!s||c.size>0;){if(u.length>0)return{value:u.shift(),done:!1};c.size>0?await y(c):await g(10)}return u.length>0?{value:u.shift(),done:!1}:{value:void 0,done:!0}}}}(r,c);if("function"==typeof r.chain)return r.chain(c);if("function"==typeof r.flatMap)return r.flatMap(c);const i=r.constructor;return i==Object?I(r,c):i==Set?_(r,c):"string"==typeof r||i==String?function(t,e){const o=S(t,e);return n(o)?o.then(k):k(o)}(r,c):c(r)};return(t,o)=>"function"==typeof t?c(q,e,t):n(t)?t.then(c(q,e,o)):q(t,o)}());
package/dist/flatMap.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -443,8 +443,11 @@ const sleep = time => new Promise(resolve => {
443
443
  })
444
444
 
445
445
  const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
446
- const buffer = [],
447
- promises = new Set()
446
+ const buffer = []
447
+ const promises = new Set()
448
+
449
+ let consumingAsyncIterator = false
450
+ let isAsyncIteratorDone = false
448
451
 
449
452
  return {
450
453
  isAsyncIteratorDone: false,
@@ -455,38 +458,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
455
458
  return '[object FlatMappingAsyncIterator]'
456
459
  },
457
460
 
458
-
459
- async next() {
460
- while (
461
- !this.isAsyncIteratorDone || buffer.length > 0 || promises.size > 0
462
- ) {
463
- if (!this.isAsyncIteratorDone) {
464
- const { value, done } = await asyncIterator.next()
465
- if (done) {
466
- this.isAsyncIteratorDone = done
467
- } else {
468
- const monad = flatMapper(value)
469
- if (isPromise(monad)) {
470
- const bufferLoading =
471
- monad.then(curry3(genericReduce, __, arrayPush, buffer))
472
- const promise = bufferLoading.then(() => promises.delete(promise))
473
- promises.add(promise)
474
- } else {
475
- const bufferLoading = genericReduce(monad, arrayPush, buffer)
476
- if (isPromise(bufferLoading)) {
477
- const promise = bufferLoading.then(() => promises.delete(promise))
478
- promises.add(promise)
479
- }
480
- }
461
+ // _consumeAsyncIterator() -> Promise<>
462
+ async _consumeAsyncIterator() {
463
+ for await (const item of asyncIterator) {
464
+ const monad = flatMapper(item)
465
+ if (isPromise(monad)) {
466
+ const bufferLoading =
467
+ monad.then(curry3(genericReduce, __, arrayPush, buffer))
468
+ const promise = bufferLoading.then(() => promises.delete(promise))
469
+ promises.add(promise)
470
+ } else {
471
+ const bufferLoading = genericReduce(monad, arrayPush, buffer)
472
+ if (isPromise(bufferLoading)) {
473
+ const promise = bufferLoading.then(() => promises.delete(promise))
474
+ promises.add(promise)
481
475
  }
482
476
  }
477
+ }
478
+ isAsyncIteratorDone = true
479
+ },
480
+
481
+
482
+ async next() {
483
+ if (!consumingAsyncIterator) {
484
+ this._consumeAsyncIterator()
485
+ consumingAsyncIterator = true
486
+ }
487
+
488
+ while (!isAsyncIteratorDone || promises.size > 0) {
483
489
  if (buffer.length > 0) {
484
490
  return { value: buffer.shift(), done: false }
485
491
  }
486
492
  if (promises.size > 0) {
487
- await promiseRace([sleep(1000), ...promises])
493
+ await promiseRace(promises)
494
+ } else {
495
+ await sleep(10)
488
496
  }
489
497
  }
498
+
499
+ if (buffer.length > 0) {
500
+ return { value: buffer.shift(), done: false }
501
+ }
502
+
490
503
  return { value: undefined, done: true }
491
504
  },
492
505
  }
@@ -642,9 +655,12 @@ const objectFlatten = function (object) {
642
655
 
643
656
  for (const key in object) {
644
657
  const element = object[key]
658
+
645
659
  if (element == null) {
646
660
  continue
647
- } else if (typeof element[symbolIterator] == 'function') {
661
+ }
662
+
663
+ if (typeof element[symbolIterator] == 'function') {
648
664
  for (const monadElement of element) {
649
665
  objectAssign(result, monadElement)
650
666
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -187,7 +187,7 @@ const _iteratorForEachSeriesAsync = async function (iterator, callback) {
187
187
 
188
188
  const iteratorForEachSeries = function (iterator, callback) {
189
189
  let iteration = iterator.next()
190
- while (!iterator.done) {
190
+ while (!iteration.done) {
191
191
  const operation = callback(iteration.value)
192
192
  if (isPromise(operation)) {
193
193
  return operation
@@ -217,16 +217,16 @@ const _forEach = function (collection, callback) {
217
217
  if (collection == null) {
218
218
  return collection
219
219
  }
220
- if (typeof collection.forEach == 'function') {
221
- collection.forEach(callback)
222
- return collection
223
- }
224
220
  if (typeof collection[symbolIterator] == 'function') {
225
221
  return iteratorForEach(collection[symbolIterator](), callback)
226
222
  }
227
223
  if (typeof collection[symbolAsyncIterator] == 'function') {
228
224
  return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
229
225
  }
226
+ if (typeof collection.forEach == 'function') {
227
+ collection.forEach(callback)
228
+ return collection
229
+ }
230
230
  if (collection.constructor == Object) {
231
231
  return objectForEach(collection, callback)
232
232
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
6
6
  * Rubico may be freely distributed under the CFOSS license.
7
7
  */
8
- const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,o)=>function(t){return r(t,o)},curry2ResolveArg1=(r,o)=>function(t){return r(o,t)},curry2=function(r,o,t){return o==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,o)},isArray=Array.isArray,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,promiseAll=Promise.all.bind(Promise),always=r=>function(){return r},arrayForEach=function(r,o){const t=r.length,n=[];let e=-1;for(;++e<t;){const t=o(r[e],e,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,o){const t=[];for(const n in r){const e=o(r[n],n,r);isPromise(e)&&t.push(e)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,o){const t=[];for(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},asyncIteratorForEach=async function(r,o){const t=[];for await(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,thunkify3=(r,o,t,n)=>function(){return r(o,t,n)},_arrayForEachSeriesAsync=async function(r,o,t){const n=r.length;for(;++t<n;){const n=o(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,o){const t=r.length;let n=-1;for(;++n<t;){const t=o(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,o,n))}return r},_objectForEachSeriesAsync=async function(r,o,t){for(const n in r){if(n in t)continue;const e=o(r[n]);isPromise(e)&&await e}return r},objectForEachSeries=function(r,o){const t={};for(const n in r){t[n]=!0;const e=o(r[n],n,r);if(isPromise(e))return e.then(thunkify3(_objectForEachSeriesAsync,r,o,t))}return r},thunkify2=(r,o,t)=>function(){return r(o,t)},_iteratorForEachSeriesAsync=async function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,o){let t=r.next();for(;!r.done;){const n=o(t.value);if(isPromise(n))return n.then(thunkify2(_iteratorForEachSeriesAsync,r,o));t=r.next()}return r},asyncIteratorForEachSeries=async function(r,o){for await(const t of r){const r=o(t);isPromise(r)&&await r}return r},_forEach=function(r,o){return isArray(r)?arrayForEach(r,o):null==r?r:"function"==typeof r.forEach?(r.forEach(o),r):"function"==typeof r[symbolIterator]?iteratorForEach(r[symbolIterator](),o):"function"==typeof r[symbolAsyncIterator]?asyncIteratorForEach(r[symbolAsyncIterator](),o):r.constructor==Object?objectForEach(r,o):r},forEach=function(r,o){return"function"==typeof r?curry2(_forEach,__,r):isPromise(r)?r.then(curry2(_forEach,__,o)):_forEach(r,o)},_forEachSeries=function(r,o){if(isArray(r))return arrayForEachSeries(r,o);if(null==r)throw new TypeError(`invalid collection ${r}`);if("function"==typeof r[symbolIterator])return iteratorForEachSeries(r[symbolIterator](),o);if("function"==typeof r[symbolAsyncIterator])return asyncIteratorForEachSeries(r[symbolAsyncIterator](),o);if(r.constructor==Object)return objectForEachSeries(r,o);throw new TypeError(`invalid collection ${r}`)};forEach.series=function(r,o){return"function"==typeof r?curry2(_forEachSeries,__,r):isPromise(r)?r.then(curry2(_forEachSeries,__,o)):_forEachSeries(r,o)};export default forEach;
8
+ const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,o)=>function(t){return r(t,o)},curry2ResolveArg1=(r,o)=>function(t){return r(o,t)},curry2=function(r,o,t){return o==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,o)},isArray=Array.isArray,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,promiseAll=Promise.all.bind(Promise),always=r=>function(){return r},arrayForEach=function(r,o){const t=r.length,n=[];let e=-1;for(;++e<t;){const t=o(r[e],e,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,o){const t=[];for(const n in r){const e=o(r[n],n,r);isPromise(e)&&t.push(e)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,o){const t=[];for(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},asyncIteratorForEach=async function(r,o){const t=[];for await(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,thunkify3=(r,o,t,n)=>function(){return r(o,t,n)},_arrayForEachSeriesAsync=async function(r,o,t){const n=r.length;for(;++t<n;){const n=o(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,o){const t=r.length;let n=-1;for(;++n<t;){const t=o(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,o,n))}return r},_objectForEachSeriesAsync=async function(r,o,t){for(const n in r){if(n in t)continue;const e=o(r[n]);isPromise(e)&&await e}return r},objectForEachSeries=function(r,o){const t={};for(const n in r){t[n]=!0;const e=o(r[n],n,r);if(isPromise(e))return e.then(thunkify3(_objectForEachSeriesAsync,r,o,t))}return r},thunkify2=(r,o,t)=>function(){return r(o,t)},_iteratorForEachSeriesAsync=async function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);if(isPromise(n))return n.then(thunkify2(_iteratorForEachSeriesAsync,r,o));t=r.next()}return r},asyncIteratorForEachSeries=async function(r,o){for await(const t of r){const r=o(t);isPromise(r)&&await r}return r},_forEach=function(r,o){return isArray(r)?arrayForEach(r,o):null==r?r:"function"==typeof r[symbolIterator]?iteratorForEach(r[symbolIterator](),o):"function"==typeof r[symbolAsyncIterator]?asyncIteratorForEach(r[symbolAsyncIterator](),o):"function"==typeof r.forEach?(r.forEach(o),r):r.constructor==Object?objectForEach(r,o):r},forEach=function(r,o){return"function"==typeof r?curry2(_forEach,__,r):isPromise(r)?r.then(curry2(_forEach,__,o)):_forEach(r,o)},_forEachSeries=function(r,o){if(isArray(r))return arrayForEachSeries(r,o);if(null==r)throw new TypeError(`invalid collection ${r}`);if("function"==typeof r[symbolIterator])return iteratorForEachSeries(r[symbolIterator](),o);if("function"==typeof r[symbolAsyncIterator])return asyncIteratorForEachSeries(r[symbolAsyncIterator](),o);if(r.constructor==Object)return objectForEachSeries(r,o);throw new TypeError(`invalid collection ${r}`)};forEach.series=function(r,o){return"function"==typeof r?curry2(_forEachSeries,__,r):isPromise(r)?r.then(curry2(_forEachSeries,__,o)):_forEachSeries(r,o)};export default forEach;
package/dist/forEach.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -193,7 +193,7 @@ const _iteratorForEachSeriesAsync = async function (iterator, callback) {
193
193
 
194
194
  const iteratorForEachSeries = function (iterator, callback) {
195
195
  let iteration = iterator.next()
196
- while (!iterator.done) {
196
+ while (!iteration.done) {
197
197
  const operation = callback(iteration.value)
198
198
  if (isPromise(operation)) {
199
199
  return operation
@@ -223,16 +223,16 @@ const _forEach = function (collection, callback) {
223
223
  if (collection == null) {
224
224
  return collection
225
225
  }
226
- if (typeof collection.forEach == 'function') {
227
- collection.forEach(callback)
228
- return collection
229
- }
230
226
  if (typeof collection[symbolIterator] == 'function') {
231
227
  return iteratorForEach(collection[symbolIterator](), callback)
232
228
  }
233
229
  if (typeof collection[symbolAsyncIterator] == 'function') {
234
230
  return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
235
231
  }
232
+ if (typeof collection.forEach == 'function') {
233
+ collection.forEach(callback)
234
+ return collection
235
+ }
236
236
  if (collection.constructor == Object) {
237
237
  return objectForEach(collection, callback)
238
238
  }
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
6
6
  * Rubico may be freely distributed under the CFOSS license.
7
7
  */
8
8
 
9
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.forEach=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),o=function(n,o,r){return o==t?((n,t)=>function(o){return n(o,t)})(n,r):((n,t)=>function(o){return n(t,o)})(n,o)},r=Array.isArray,e=(Object.prototype.toString,Promise.all.bind(Promise)),c=n=>function(){return n},u=Symbol.iterator,f=Symbol.asyncIterator,i=(n,t,o,r)=>function(){return n(t,o,r)},s=async function(t,o,r){const e=t.length;for(;++r<e;){const e=o(t[r]);n(e)&&await e}return t},l=async function(t,o,r){for(const e in t){if(e in r)continue;const c=o(t[e]);n(c)&&await c}return t},a=(n,t,o)=>function(){return n(t,o)},h=async function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);n(e)&&await e,r=t.next()}return t},y=function(t,o){return r(t)?function(t,o){const r=t.length,u=[];let f=-1;for(;++f<r;){const r=o(t[f],f,t);n(r)&&u.push(r)}return 0==u.length?t:e(u).then(c(t))}(t,o):null==t?t:"function"==typeof t.forEach?(t.forEach(o),t):"function"==typeof t[u]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[u](),o):"function"==typeof t[f]?async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[f](),o):t.constructor==Object?function(t,o){const r=[];for(const e in t){const c=o(t[e],e,t);n(c)&&r.push(c)}return 0==r.length?t:e(r).then(c(t))}(t,o):t},p=function(r,e){return"function"==typeof r?o(y,t,r):n(r)?r.then(o(y,t,e)):y(r,e)},b=function(t,o){if(r(t))return function(t,o){const r=t.length;let e=-1;for(;++e<r;){const r=o(t[e],e,t);if(n(r))return r.then(i(s,t,o,e))}return t}(t,o);if(null==t)throw new TypeError(`invalid collection ${t}`);if("function"==typeof t[u])return function(t,o){let r=t.next();for(;!t.done;){const e=o(r.value);if(n(e))return e.then(a(h,t,o));r=t.next()}return t}(t[u](),o);if("function"==typeof t[f])return async function(t,o){for await(const r of t){const t=o(r);n(t)&&await t}return t}(t[f](),o);if(t.constructor==Object)return function(t,o){const r={};for(const e in t){r[e]=!0;const c=o(t[e],e,t);if(n(c))return c.then(i(l,t,o,r))}return t}(t,o);throw new TypeError(`invalid collection ${t}`)};return p.series=function(r,e){return"function"==typeof r?o(b,t,r):n(r)?r.then(o(b,t,e)):b(r,e)},p}());
9
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.forEach=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),o=function(n,o,r){return o==t?((n,t)=>function(o){return n(o,t)})(n,r):((n,t)=>function(o){return n(t,o)})(n,o)},r=Array.isArray,e=(Object.prototype.toString,Promise.all.bind(Promise)),c=n=>function(){return n},u=Symbol.iterator,f=Symbol.asyncIterator,i=(n,t,o,r)=>function(){return n(t,o,r)},s=async function(t,o,r){const e=t.length;for(;++r<e;){const e=o(t[r]);n(e)&&await e}return t},l=async function(t,o,r){for(const e in t){if(e in r)continue;const c=o(t[e]);n(c)&&await c}return t},a=(n,t,o)=>function(){return n(t,o)},h=async function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);n(e)&&await e,r=t.next()}return t},y=function(t,o){return r(t)?function(t,o){const r=t.length,u=[];let f=-1;for(;++f<r;){const r=o(t[f],f,t);n(r)&&u.push(r)}return 0==u.length?t:e(u).then(c(t))}(t,o):null==t?t:"function"==typeof t[u]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[u](),o):"function"==typeof t[f]?async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[f](),o):"function"==typeof t.forEach?(t.forEach(o),t):t.constructor==Object?function(t,o){const r=[];for(const e in t){const c=o(t[e],e,t);n(c)&&r.push(c)}return 0==r.length?t:e(r).then(c(t))}(t,o):t},p=function(r,e){return"function"==typeof r?o(y,t,r):n(r)?r.then(o(y,t,e)):y(r,e)},b=function(t,o){if(r(t))return function(t,o){const r=t.length;let e=-1;for(;++e<r;){const r=o(t[e],e,t);if(n(r))return r.then(i(s,t,o,e))}return t}(t,o);if(null==t)throw new TypeError(`invalid collection ${t}`);if("function"==typeof t[u])return function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);if(n(e))return e.then(a(h,t,o));r=t.next()}return t}(t[u](),o);if("function"==typeof t[f])return async function(t,o){for await(const r of t){const t=o(r);n(t)&&await t}return t}(t[f](),o);if(t.constructor==Object)return function(t,o){const r={};for(const e in t){r[e]=!0;const c=o(t[e],e,t);if(n(c))return c.then(i(l,t,o,r))}return t}(t,o);throw new TypeError(`invalid collection ${t}`)};return p.series=function(r,e){return"function"==typeof r?o(b,t,r):n(r)?r.then(o(b,t,e)):b(r,e)},p}());
package/dist/forEach.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -187,7 +187,7 @@ const _iteratorForEachSeriesAsync = async function (iterator, callback) {
187
187
 
188
188
  const iteratorForEachSeries = function (iterator, callback) {
189
189
  let iteration = iterator.next()
190
- while (!iterator.done) {
190
+ while (!iteration.done) {
191
191
  const operation = callback(iteration.value)
192
192
  if (isPromise(operation)) {
193
193
  return operation
@@ -217,16 +217,16 @@ const _forEach = function (collection, callback) {
217
217
  if (collection == null) {
218
218
  return collection
219
219
  }
220
- if (typeof collection.forEach == 'function') {
221
- collection.forEach(callback)
222
- return collection
223
- }
224
220
  if (typeof collection[symbolIterator] == 'function') {
225
221
  return iteratorForEach(collection[symbolIterator](), callback)
226
222
  }
227
223
  if (typeof collection[symbolAsyncIterator] == 'function') {
228
224
  return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
229
225
  }
226
+ if (typeof collection.forEach == 'function') {
227
+ collection.forEach(callback)
228
+ return collection
229
+ }
230
230
  if (collection.constructor == Object) {
231
231
  return objectForEach(collection, callback)
232
232
  }
package/dist/get.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/get.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/get.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/get.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gt.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gt.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gt.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gt.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gt.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gte.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gte.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gte.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/gte.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lt.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lt.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lt.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lt.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lt.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lte.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lte.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lte.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/lte.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software