rubico 2.1.0 → 2.2.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 (499) hide show
  1. package/README.md +2 -0
  2. package/_internal/genericTransform.js +30 -28
  3. package/dist/Transducer.es.js +1 -1
  4. package/dist/Transducer.es.min.js +1 -1
  5. package/dist/Transducer.js +1 -1
  6. package/dist/Transducer.min.js +1 -1
  7. package/dist/Transducer.mjs +1 -1
  8. package/dist/__.es.js +1 -1
  9. package/dist/__.es.min.js +1 -1
  10. package/dist/__.js +1 -1
  11. package/dist/__.min.js +1 -1
  12. package/dist/__.mjs +1 -1
  13. package/dist/all.es.js +1 -1
  14. package/dist/all.es.min.js +1 -1
  15. package/dist/all.js +1 -1
  16. package/dist/all.min.js +1 -1
  17. package/dist/all.mjs +1 -1
  18. package/dist/always.es.js +1 -1
  19. package/dist/always.es.min.js +1 -1
  20. package/dist/always.js +1 -1
  21. package/dist/always.min.js +1 -1
  22. package/dist/always.mjs +1 -1
  23. package/dist/and.es.js +1 -1
  24. package/dist/and.es.min.js +1 -1
  25. package/dist/and.js +1 -1
  26. package/dist/and.min.js +1 -1
  27. package/dist/and.mjs +1 -1
  28. package/dist/assign.es.js +1 -1
  29. package/dist/assign.es.min.js +1 -1
  30. package/dist/assign.js +1 -1
  31. package/dist/assign.min.js +1 -1
  32. package/dist/assign.mjs +1 -1
  33. package/dist/compose.es.js +1 -1
  34. package/dist/compose.es.min.js +1 -1
  35. package/dist/compose.js +1 -1
  36. package/dist/compose.min.js +1 -1
  37. package/dist/compose.mjs +1 -1
  38. package/dist/curry.es.js +1 -1
  39. package/dist/curry.es.min.js +1 -1
  40. package/dist/curry.js +1 -1
  41. package/dist/curry.min.js +1 -1
  42. package/dist/curry.mjs +1 -1
  43. package/dist/eq.es.js +1 -1
  44. package/dist/eq.es.min.js +1 -1
  45. package/dist/eq.js +1 -1
  46. package/dist/eq.min.js +1 -1
  47. package/dist/eq.mjs +1 -1
  48. package/dist/every.es.js +1 -1
  49. package/dist/every.es.min.js +1 -1
  50. package/dist/every.js +1 -1
  51. package/dist/every.min.js +1 -1
  52. package/dist/every.mjs +1 -1
  53. package/dist/filter.es.js +1 -1
  54. package/dist/filter.es.min.js +1 -1
  55. package/dist/filter.js +1 -1
  56. package/dist/filter.min.js +1 -1
  57. package/dist/filter.mjs +1 -1
  58. package/dist/flatMap.es.js +1 -1
  59. package/dist/flatMap.es.min.js +1 -1
  60. package/dist/flatMap.js +1 -1
  61. package/dist/flatMap.min.js +1 -1
  62. package/dist/flatMap.mjs +1 -1
  63. package/dist/forEach.es.js +1 -1
  64. package/dist/forEach.es.min.js +1 -1
  65. package/dist/forEach.js +1 -1
  66. package/dist/forEach.min.js +1 -1
  67. package/dist/forEach.mjs +1 -1
  68. package/dist/get.es.js +1 -1
  69. package/dist/get.es.min.js +1 -1
  70. package/dist/get.js +1 -1
  71. package/dist/get.min.js +1 -1
  72. package/dist/get.mjs +1 -1
  73. package/dist/gt.es.js +1 -1
  74. package/dist/gt.es.min.js +1 -1
  75. package/dist/gt.js +1 -1
  76. package/dist/gt.min.js +1 -1
  77. package/dist/gt.mjs +1 -1
  78. package/dist/gte.es.js +1 -1
  79. package/dist/gte.es.min.js +1 -1
  80. package/dist/gte.js +1 -1
  81. package/dist/gte.min.js +1 -1
  82. package/dist/gte.mjs +1 -1
  83. package/dist/lt.es.js +1 -1
  84. package/dist/lt.es.min.js +1 -1
  85. package/dist/lt.js +1 -1
  86. package/dist/lt.min.js +1 -1
  87. package/dist/lt.mjs +1 -1
  88. package/dist/lte.es.js +1 -1
  89. package/dist/lte.es.min.js +1 -1
  90. package/dist/lte.js +1 -1
  91. package/dist/lte.min.js +1 -1
  92. package/dist/lte.mjs +1 -1
  93. package/dist/map.es.js +1 -1
  94. package/dist/map.es.min.js +1 -1
  95. package/dist/map.js +1 -1
  96. package/dist/map.min.js +1 -1
  97. package/dist/map.mjs +1 -1
  98. package/dist/not.es.js +1 -1
  99. package/dist/not.es.min.js +1 -1
  100. package/dist/not.js +1 -1
  101. package/dist/not.min.js +1 -1
  102. package/dist/not.mjs +1 -1
  103. package/dist/omit.es.js +1 -1
  104. package/dist/omit.es.min.js +1 -1
  105. package/dist/omit.js +1 -1
  106. package/dist/omit.min.js +1 -1
  107. package/dist/omit.mjs +1 -1
  108. package/dist/or.es.js +1 -1
  109. package/dist/or.es.min.js +1 -1
  110. package/dist/or.js +1 -1
  111. package/dist/or.min.js +1 -1
  112. package/dist/or.mjs +1 -1
  113. package/dist/pick.es.js +1 -1
  114. package/dist/pick.es.min.js +1 -1
  115. package/dist/pick.js +1 -1
  116. package/dist/pick.min.js +1 -1
  117. package/dist/pick.mjs +1 -1
  118. package/dist/pipe.es.js +1 -1
  119. package/dist/pipe.es.min.js +1 -1
  120. package/dist/pipe.js +1 -1
  121. package/dist/pipe.min.js +1 -1
  122. package/dist/pipe.mjs +1 -1
  123. package/dist/reduce.es.js +1 -1
  124. package/dist/reduce.es.min.js +1 -1
  125. package/dist/reduce.js +1 -1
  126. package/dist/reduce.min.js +1 -1
  127. package/dist/reduce.mjs +1 -1
  128. package/dist/rubico.es.js +57 -46
  129. package/dist/rubico.es.min.js +2 -2
  130. package/dist/rubico.global.js +57 -46
  131. package/dist/rubico.global.min.js +2 -2
  132. package/dist/rubico.js +57 -46
  133. package/dist/rubico.min.js +2 -2
  134. package/dist/rubico.mjs +57 -46
  135. package/dist/set.es.js +1 -1
  136. package/dist/set.es.min.js +1 -1
  137. package/dist/set.js +1 -1
  138. package/dist/set.min.js +1 -1
  139. package/dist/set.mjs +1 -1
  140. package/dist/some.es.js +1 -1
  141. package/dist/some.es.min.js +1 -1
  142. package/dist/some.js +1 -1
  143. package/dist/some.min.js +1 -1
  144. package/dist/some.mjs +1 -1
  145. package/dist/switchCase.es.js +1 -1
  146. package/dist/switchCase.es.min.js +1 -1
  147. package/dist/switchCase.js +1 -1
  148. package/dist/switchCase.min.js +1 -1
  149. package/dist/switchCase.mjs +1 -1
  150. package/dist/tap.es.js +32 -2
  151. package/dist/tap.es.min.js +2 -2
  152. package/dist/tap.js +32 -2
  153. package/dist/tap.min.js +2 -2
  154. package/dist/tap.mjs +32 -2
  155. package/dist/thunkify.es.js +1 -1
  156. package/dist/thunkify.es.min.js +1 -1
  157. package/dist/thunkify.js +1 -1
  158. package/dist/thunkify.min.js +1 -1
  159. package/dist/thunkify.mjs +1 -1
  160. package/dist/transform.es.js +26 -24
  161. package/dist/transform.es.min.js +2 -2
  162. package/dist/transform.js +26 -24
  163. package/dist/transform.min.js +2 -2
  164. package/dist/transform.mjs +26 -24
  165. package/dist/tryCatch.es.js +1 -1
  166. package/dist/tryCatch.es.min.js +1 -1
  167. package/dist/tryCatch.js +1 -1
  168. package/dist/tryCatch.min.js +1 -1
  169. package/dist/tryCatch.mjs +1 -1
  170. package/dist/x/append.es.js +1 -1
  171. package/dist/x/append.es.min.js +1 -1
  172. package/dist/x/append.js +1 -1
  173. package/dist/x/append.min.js +1 -1
  174. package/dist/x/append.mjs +1 -1
  175. package/dist/x/callProp.es.js +1 -1
  176. package/dist/x/callProp.es.min.js +1 -1
  177. package/dist/x/callProp.js +1 -1
  178. package/dist/x/callProp.min.js +1 -1
  179. package/dist/x/callProp.mjs +1 -1
  180. package/dist/x/defaultsDeep.es.js +1 -1
  181. package/dist/x/defaultsDeep.es.min.js +1 -1
  182. package/dist/x/defaultsDeep.js +1 -1
  183. package/dist/x/defaultsDeep.min.js +1 -1
  184. package/dist/x/defaultsDeep.mjs +1 -1
  185. package/dist/x/differenceWith.es.js +1 -1
  186. package/dist/x/differenceWith.es.min.js +1 -1
  187. package/dist/x/differenceWith.js +1 -1
  188. package/dist/x/differenceWith.min.js +1 -1
  189. package/dist/x/differenceWith.mjs +1 -1
  190. package/dist/x/filterOut.es.js +1 -1
  191. package/dist/x/filterOut.es.min.js +1 -1
  192. package/dist/x/filterOut.js +1 -1
  193. package/dist/x/filterOut.min.js +1 -1
  194. package/dist/x/filterOut.mjs +1 -1
  195. package/dist/x/find.es.js +1 -1
  196. package/dist/x/find.es.min.js +1 -1
  197. package/dist/x/find.js +1 -1
  198. package/dist/x/find.min.js +1 -1
  199. package/dist/x/find.mjs +1 -1
  200. package/dist/x/findIndex.es.js +1 -1
  201. package/dist/x/findIndex.es.min.js +1 -1
  202. package/dist/x/findIndex.js +1 -1
  203. package/dist/x/findIndex.min.js +1 -1
  204. package/dist/x/findIndex.mjs +1 -1
  205. package/dist/x/first.es.js +1 -1
  206. package/dist/x/first.es.min.js +1 -1
  207. package/dist/x/first.js +1 -1
  208. package/dist/x/first.min.js +1 -1
  209. package/dist/x/first.mjs +1 -1
  210. package/dist/x/flatten.es.js +1 -1
  211. package/dist/x/flatten.es.min.js +1 -1
  212. package/dist/x/flatten.js +1 -1
  213. package/dist/x/flatten.min.js +1 -1
  214. package/dist/x/flatten.mjs +1 -1
  215. package/dist/x/groupBy.es.js +1 -1
  216. package/dist/x/groupBy.es.min.js +1 -1
  217. package/dist/x/groupBy.js +1 -1
  218. package/dist/x/groupBy.min.js +1 -1
  219. package/dist/x/groupBy.mjs +1 -1
  220. package/dist/x/has.es.js +1 -1
  221. package/dist/x/has.es.min.js +1 -1
  222. package/dist/x/has.js +1 -1
  223. package/dist/x/has.min.js +1 -1
  224. package/dist/x/has.mjs +1 -1
  225. package/dist/x/identity.es.js +1 -1
  226. package/dist/x/identity.es.min.js +1 -1
  227. package/dist/x/identity.js +1 -1
  228. package/dist/x/identity.min.js +1 -1
  229. package/dist/x/identity.mjs +1 -1
  230. package/dist/x/includes.es.js +1 -1
  231. package/dist/x/includes.es.min.js +1 -1
  232. package/dist/x/includes.js +1 -1
  233. package/dist/x/includes.min.js +1 -1
  234. package/dist/x/includes.mjs +1 -1
  235. package/dist/x/isDeepEqual.es.js +1 -1
  236. package/dist/x/isDeepEqual.es.min.js +1 -1
  237. package/dist/x/isDeepEqual.js +1 -1
  238. package/dist/x/isDeepEqual.min.js +1 -1
  239. package/dist/x/isDeepEqual.mjs +1 -1
  240. package/dist/x/isEmpty.es.js +1 -1
  241. package/dist/x/isEmpty.es.min.js +1 -1
  242. package/dist/x/isEmpty.js +1 -1
  243. package/dist/x/isEmpty.min.js +1 -1
  244. package/dist/x/isEmpty.mjs +1 -1
  245. package/dist/x/isEqual.es.js +1 -1
  246. package/dist/x/isEqual.es.min.js +1 -1
  247. package/dist/x/isEqual.js +1 -1
  248. package/dist/x/isEqual.min.js +1 -1
  249. package/dist/x/isEqual.mjs +1 -1
  250. package/dist/x/isFunction.es.js +1 -1
  251. package/dist/x/isFunction.es.min.js +1 -1
  252. package/dist/x/isFunction.js +1 -1
  253. package/dist/x/isFunction.min.js +1 -1
  254. package/dist/x/isFunction.mjs +1 -1
  255. package/dist/x/isIn.es.js +1 -1
  256. package/dist/x/isIn.es.min.js +1 -1
  257. package/dist/x/isIn.js +1 -1
  258. package/dist/x/isIn.min.js +1 -1
  259. package/dist/x/isIn.mjs +1 -1
  260. package/dist/x/isObject.es.js +1 -1
  261. package/dist/x/isObject.es.min.js +1 -1
  262. package/dist/x/isObject.js +1 -1
  263. package/dist/x/isObject.min.js +1 -1
  264. package/dist/x/isObject.mjs +1 -1
  265. package/dist/x/isString.es.js +1 -1
  266. package/dist/x/isString.es.min.js +1 -1
  267. package/dist/x/isString.js +1 -1
  268. package/dist/x/isString.min.js +1 -1
  269. package/dist/x/isString.mjs +1 -1
  270. package/dist/x/keys.es.js +1 -1
  271. package/dist/x/keys.es.min.js +1 -1
  272. package/dist/x/keys.js +1 -1
  273. package/dist/x/keys.min.js +1 -1
  274. package/dist/x/keys.mjs +1 -1
  275. package/dist/x/last.es.js +1 -1
  276. package/dist/x/last.es.min.js +1 -1
  277. package/dist/x/last.js +1 -1
  278. package/dist/x/last.min.js +1 -1
  279. package/dist/x/last.mjs +1 -1
  280. package/dist/x/maxBy.es.js +1 -1
  281. package/dist/x/maxBy.es.min.js +1 -1
  282. package/dist/x/maxBy.js +1 -1
  283. package/dist/x/maxBy.min.js +1 -1
  284. package/dist/x/maxBy.mjs +1 -1
  285. package/dist/x/noop.es.js +1 -1
  286. package/dist/x/noop.es.min.js +1 -1
  287. package/dist/x/noop.js +1 -1
  288. package/dist/x/noop.min.js +1 -1
  289. package/dist/x/noop.mjs +1 -1
  290. package/dist/x/pluck.es.js +1 -1
  291. package/dist/x/pluck.es.min.js +1 -1
  292. package/dist/x/pluck.js +1 -1
  293. package/dist/x/pluck.min.js +1 -1
  294. package/dist/x/pluck.mjs +1 -1
  295. package/dist/x/prepend.es.js +1 -1
  296. package/dist/x/prepend.es.min.js +1 -1
  297. package/dist/x/prepend.js +1 -1
  298. package/dist/x/prepend.min.js +1 -1
  299. package/dist/x/prepend.mjs +1 -1
  300. package/dist/x/size.es.js +1 -1
  301. package/dist/x/size.es.min.js +1 -1
  302. package/dist/x/size.js +1 -1
  303. package/dist/x/size.min.js +1 -1
  304. package/dist/x/size.mjs +1 -1
  305. package/dist/x/trace.es.js +32 -2
  306. package/dist/x/trace.es.min.js +2 -2
  307. package/dist/x/trace.js +32 -2
  308. package/dist/x/trace.min.js +2 -2
  309. package/dist/x/trace.mjs +32 -2
  310. package/dist/x/unionWith.es.js +1 -1
  311. package/dist/x/unionWith.es.min.js +1 -1
  312. package/dist/x/unionWith.js +1 -1
  313. package/dist/x/unionWith.min.js +1 -1
  314. package/dist/x/unionWith.mjs +1 -1
  315. package/dist/x/uniq.es.js +1 -1
  316. package/dist/x/uniq.es.min.js +1 -1
  317. package/dist/x/uniq.js +1 -1
  318. package/dist/x/uniq.min.js +1 -1
  319. package/dist/x/uniq.mjs +1 -1
  320. package/dist/x/unless.es.js +1 -1
  321. package/dist/x/unless.es.min.js +1 -1
  322. package/dist/x/unless.js +1 -1
  323. package/dist/x/unless.min.js +1 -1
  324. package/dist/x/unless.mjs +1 -1
  325. package/dist/x/values.es.js +1 -1
  326. package/dist/x/values.es.min.js +1 -1
  327. package/dist/x/values.js +1 -1
  328. package/dist/x/values.min.js +1 -1
  329. package/dist/x/values.mjs +1 -1
  330. package/dist/x/when.es.js +1 -1
  331. package/dist/x/when.es.min.js +1 -1
  332. package/dist/x/when.js +1 -1
  333. package/dist/x/when.min.js +1 -1
  334. package/dist/x/when.mjs +1 -1
  335. package/es.js +57 -46
  336. package/index.js +57 -46
  337. package/package.json +43 -2
  338. package/tap.js +15 -4
  339. package/.eslintignore +0 -5
  340. package/.eslintrc.js +0 -330
  341. package/.github/workflows/nodejs.yml +0 -27
  342. package/.vscode/launch.json +0 -25
  343. package/AggregateReducer.test.js +0 -82
  344. package/CHANGELOG.md +0 -310
  345. package/CNAME +0 -1
  346. package/CODE_OF_CONDUCT.md +0 -128
  347. package/CONTRIBUTING.md +0 -4
  348. package/Transducer.test.js +0 -154
  349. package/_config.yml +0 -1
  350. package/_internal/improvedGenericTransform.js +0 -93
  351. package/archive/FlatMappingIterator-2020-09-28.js +0 -68
  352. package/archive/_Promise-2023-05-29.js +0 -93
  353. package/archive/arrayMap2-2023-05-29.js +0 -73
  354. package/archive/benchmarks-v1.9.7/all.js +0 -34
  355. package/archive/benchmarks-v1.9.7/and.js +0 -24
  356. package/archive/benchmarks-v1.9.7/any.js +0 -32
  357. package/archive/benchmarks-v1.9.7/assign.js +0 -174
  358. package/archive/benchmarks-v1.9.7/curry.js +0 -55
  359. package/archive/benchmarks-v1.9.7/eq.js +0 -25
  360. package/archive/benchmarks-v1.9.7/filter.js +0 -1322
  361. package/archive/benchmarks-v1.9.7/flatMap.js +0 -48
  362. package/archive/benchmarks-v1.9.7/forEach.js +0 -33
  363. package/archive/benchmarks-v1.9.7/fork.js +0 -123
  364. package/archive/benchmarks-v1.9.7/get.js +0 -44
  365. package/archive/benchmarks-v1.9.7/gt.js +0 -25
  366. package/archive/benchmarks-v1.9.7/gte.js +0 -25
  367. package/archive/benchmarks-v1.9.7/integration.js +0 -88
  368. package/archive/benchmarks-v1.9.7/lt.js +0 -25
  369. package/archive/benchmarks-v1.9.7/lte.js +0 -25
  370. package/archive/benchmarks-v1.9.7/map.js +0 -892
  371. package/archive/benchmarks-v1.9.7/misc.js +0 -470
  372. package/archive/benchmarks-v1.9.7/omit.js +0 -28
  373. package/archive/benchmarks-v1.9.7/or.js +0 -51
  374. package/archive/benchmarks-v1.9.7/pick.js +0 -24
  375. package/archive/benchmarks-v1.9.7/pipe.js +0 -152
  376. package/archive/benchmarks-v1.9.7/reduce.js +0 -739
  377. package/archive/benchmarks-v1.9.7/switchCase.js +0 -256
  378. package/archive/benchmarks-v1.9.7/tap.js +0 -90
  379. package/archive/benchmarks-v1.9.7/transform.js +0 -218
  380. package/archive/benchmarks-v1.9.7/tryCatch.js +0 -108
  381. package/archive/curry.js +0 -13
  382. package/archive/examples-v1.6.11/browserModule.html +0 -31
  383. package/archive/examples-v1.6.11/browserScript.html +0 -32
  384. package/archive/examples-v1.6.11/coolTransformToConsole.js +0 -1
  385. package/archive/examples-v1.6.11/denoLargeGasMap.js +0 -85
  386. package/archive/examples-v1.6.11/denoServer.js +0 -9
  387. package/archive/examples-v1.6.11/denoServerWithMiddleware.js +0 -55
  388. package/archive/examples-v1.6.11/logTodosRange.js +0 -21
  389. package/archive/examples-v1.6.11/makeARequest.html +0 -46
  390. package/archive/examples-v1.6.11/nodeComplexTransformation.js +0 -106
  391. package/archive/examples-v1.6.11/nodeConditionallyExtractIDs.js +0 -50
  392. package/archive/examples-v1.6.11/nodeFloatingPoint.js +0 -55
  393. package/archive/examples-v1.6.11/nodeGetAllJiraBoards.js +0 -45
  394. package/archive/examples-v1.6.11/nodeGetSocketIOClientsTotalCount.js +0 -34
  395. package/archive/examples-v1.6.11/nodeKafkaConsumer.js +0 -63
  396. package/archive/examples-v1.6.11/nodeMakeMultipleRequests.js +0 -55
  397. package/archive/examples-v1.6.11/nodeOnRecordAddTask.js +0 -34
  398. package/archive/examples-v1.6.11/nodePostRequestWithAuth.js +0 -36
  399. package/archive/examples-v1.6.11/nodeSpeedbackMatchmakingAlgorithm.js +0 -96
  400. package/archive/examples-v1.6.11/nodeTireData.js +0 -36
  401. package/archive/examples-v1.6.11/nodeTripleMap.js +0 -85
  402. package/archive/examples-v1.6.11/squaredOdds.ts +0 -16
  403. package/archive/examples-v1.6.11/transducerMaxBuyer.js +0 -67
  404. package/archive/examples-v1.6.11/transformLogTodosRange.js +0 -31
  405. package/archive/examples-v1.6.11/transformStreamRandomInts.js +0 -19
  406. package/archive/genericReduceConcurrent.js +0 -277
  407. package/archive/index.v0.2.9.js +0 -1685
  408. package/archive/objectValuesGenerator.js +0 -13
  409. package/archive/test.v0.2.9.js +0 -2334
  410. package/bench +0 -65
  411. package/benchmark-output/v1.9.7 +0 -268
  412. package/benchmarks/all.async.js +0 -43
  413. package/benchmarks/all.js +0 -43
  414. package/benchmarks/always.js +0 -15
  415. package/benchmarks/and.async.js +0 -25
  416. package/benchmarks/and.js +0 -25
  417. package/benchmarks/assign.async.js +0 -27
  418. package/benchmarks/assign.js +0 -27
  419. package/benchmarks/curry.js +0 -35
  420. package/benchmarks/eq.async.js +0 -23
  421. package/benchmarks/eq.js +0 -23
  422. package/benchmarks/every.async.js +0 -19
  423. package/benchmarks/every.js +0 -19
  424. package/benchmarks/filter.async.js +0 -32
  425. package/benchmarks/filter.js +0 -38
  426. package/benchmarks/flatMap.async.js +0 -26
  427. package/benchmarks/flatMap.js +0 -38
  428. package/benchmarks/get.async.js +0 -19
  429. package/benchmarks/get.js +0 -39
  430. package/benchmarks/gt.async.js +0 -23
  431. package/benchmarks/gt.js +0 -23
  432. package/benchmarks/gte.async.js +0 -23
  433. package/benchmarks/gte.js +0 -23
  434. package/benchmarks/lt.async.js +0 -23
  435. package/benchmarks/lt.js +0 -23
  436. package/benchmarks/lte.async.js +0 -23
  437. package/benchmarks/lte.js +0 -23
  438. package/benchmarks/map.async.js +0 -43
  439. package/benchmarks/map.js +0 -40
  440. package/benchmarks/misc/Promise.js +0 -26
  441. package/benchmarks/misc/isPromise.js +0 -30
  442. package/benchmarks/misc/promiseAll.js +0 -36
  443. package/benchmarks/not.js +0 -23
  444. package/benchmarks/omit.js +0 -38
  445. package/benchmarks/or.async.js +0 -25
  446. package/benchmarks/or.js +0 -25
  447. package/benchmarks/pick.js +0 -38
  448. package/benchmarks/pipe.async.js +0 -47
  449. package/benchmarks/pipe.js +0 -47
  450. package/benchmarks/reduce.async.js +0 -32
  451. package/benchmarks/reduce.js +0 -38
  452. package/benchmarks/set.async.js +0 -19
  453. package/benchmarks/set.js +0 -41
  454. package/benchmarks/some.async.js +0 -19
  455. package/benchmarks/some.js +0 -19
  456. package/benchmarks/switchCase.async.js +0 -27
  457. package/benchmarks/switchCase.js +0 -55
  458. package/benchmarks/tap.js +0 -15
  459. package/benchmarks/thunkify.js +0 -15
  460. package/benchmarks/transform.async.js +0 -27
  461. package/benchmarks/transform.js +0 -40
  462. package/benchmarks/tryCatch.async.js +0 -25
  463. package/benchmarks/tryCatch.js +0 -32
  464. package/build +0 -472
  465. package/dist-test.js +0 -37
  466. package/examples/type-to-search-wiki/README.md +0 -19
  467. package/examples/type-to-search-wiki/package.json +0 -13
  468. package/examples/type-to-search-wiki/src/app.js +0 -46
  469. package/examples/type-to-search-wiki/src/index.html +0 -18
  470. package/import-test.html +0 -73
  471. package/memory-usage/reduce.js +0 -40
  472. package/monad/AsyncPool.js +0 -0
  473. package/monad/BrokenPromise.js +0 -63
  474. package/monad/BrokenPromise.test.js +0 -22
  475. package/monad/Cancellable.js +0 -84
  476. package/monad/Cancellable.memoryUsage.js +0 -60
  477. package/monad/Cancellable.test.js +0 -20
  478. package/monad/Function.js +0 -0
  479. package/monad/Instance.benchmark.js +0 -378
  480. package/monad/Instance.js +0 -351
  481. package/monad/Instance.test.js +0 -445
  482. package/monad/Mux.benchmark.js +0 -29
  483. package/monad/Mux.js +0 -589
  484. package/monad/Mux.test.js +0 -512
  485. package/monad/PossiblePromise.benchmark.js +0 -87
  486. package/monad/PossiblePromise.js +0 -144
  487. package/monad/PossiblePromise.test.js +0 -89
  488. package/monad/README.md +0 -75
  489. package/monad/Reducer.js +0 -0
  490. package/monad/Sequence.benchmark.js +0 -42
  491. package/monad/Sequence.js +0 -36
  492. package/monad/SpecScript.js +0 -0
  493. package/monad/Stack.js +0 -0
  494. package/monad/Struct.benchmark.js +0 -154
  495. package/monad/Struct.js +0 -249
  496. package/monad/Struct.test.js +0 -237
  497. package/rubico.js +0 -66
  498. package/test.js +0 -4242
  499. package/tmp.js +0 -1
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.rubico=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1},e=Promise.all.bind(Promise),o=(t,e)=>function(...o){const r=t(...o);return n(r)?r.then(e):e(r)},r=(n,t)=>n(...t),u=Symbol.for("placeholder"),c=function(n,t,e){return t==u?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},f=n=>function(){return n},i=(n,t)=>function(){return n(...t)},s=(n,t,e)=>n?t():e(),l=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},h=t=>function(...e){const o=e[0],r=t(...e);return n(r)?r.then(f(o)):o};h.if=(t,e)=>function(...o){const r=t(...o);if(n(r))return r.then(l(s,u,i(h(e),o),f(o[0])));if(r){const t=e(...o);if(n(t))return t.then(f(o[0]))}return o[0]};const a=Array.isArray,p=function(n,t,e){return t==u?((n,t,e)=>function(...e){return n(e,t)})(n,e):((n,t,e)=>function(...e){return n(t,e)})(n,t)},y=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=t[c](...o);n(e)&&(f=!0),u[c]=e}return f?e(u):u},d=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,e,o)},g=function(n,t,e){return n[t]=e,n},w=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=t[r](...e);o[r]=n(u)?await u:u}return o},v=function(t,e){const r=t.length,c=[];let f=-1;for(;++f<r;){const r=t[f](...e);if(n(r))return r.then(o(l(g,c,f,u),d(w,t,e,u,f)));c[f]=r}return c},b=function(t,o){const r={},c=[];for(const e in t){const f=t[e](...o);n(f)?c.push(f.then(l(g,r,e,u))):r[e]=f}return 0==c.length?r:e(c).then(f(r))},j=function(...n){const o=n.pop();return 0==n.length?a(o)?p(y,o,u):p(b,o,u):t(n)?a(o)?e(n).then(c(y,o,u)):e(n).then(c(b,o,u)):a(o)?y(o,n):b(o,n)};j.series=function(...n){const o=n.pop();return 0==n.length?p(v,o,u):t(n)?e(n).then(c(v,o,u)):v(o,n)};const x=Object.assign,S=function(t,e){const o=b(e,[t]);return n(o)?o.then(l(x,{},t,u)):{...t,...o}},M=function(n,t,e){return n(t,...e)},m=function(t,e,o){try{const r=t(...o);return n(r)?r.catch(l(M,e,u,o)):r}catch(n){return e(n,...o)}},O=(n,t,e,o)=>function(){return n(t,e,o)},A=function(t,e,o){const r=t.length-1;for(;(o+=2)<r;){const r=t[o],c=t[o+1],h="function"==typeof r?r(...e):r;if(n(h))return h.then(l(s,u,"function"==typeof c?i(c,e):f(c),O(A,t,e,o)));if(h)return"function"==typeof c?c(...e):c}if(o==t.length)return;const c=t[r];return"function"==typeof c?c(...e):c},z=function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0},I=(n,t,e)=>function(){return n(t,e)},E=function(t,e){const o=t.length,r=o-1;for(;(e+=2)<r;){const o=t[e],r=t[e+1];if(n(o))return o.then(l(s,u,f(r),I(E,t,e)));if(o)return r}if(e!=o)return t[e]},D=Symbol.iterator,P=(n,t)=>({toString:()=>"[object MappingIterator]",[D](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),T=n=>({value:n,done:!1}),B=Symbol.asyncIterator,k=(t,e)=>({[B](){return this},async next(){const o=await t.next();if(o.done)return o;const r=e(o.value);return n(r)?r.then(T):{value:r,done:!1}}}),C=n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t},$=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=o(t[c],c,t);n(e)&&(f=!0),u[c]=e}return f?e(u):u},_=(n,t,e)=>n[t](e),q=function(t,o){const r=new Set,c=[];for(const e of t){const f=o(e,e,t);n(f)?c.push(f.then(l(_,r,"add",u))):r.add(f)}return 0==c.length?r:e(c).then(f(r))},F=(n,t,e,o)=>n[t](e,o),R=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const c=t[u];n(c)?(r+=1,c.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=c}0==r&&e(o)})(t)),V=function(t,e){const o={};let r=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(r=!0),o[u]=c}return r?R(o):o},G=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=e(t[r]);o[r]=n(u)?await u:u}return o},H=n=>function(...t){return n(...t),t[0]},J=Promise.race.bind(Promise),K=async function(t,o,r,u,c,f){const i=t.length;for(;++c<i;){f.size>=r&&await J(f);const e=o(t[c]);if(n(e)){const n=e.then(H((()=>f.delete(n))));f.add(n),u[c]=n}else u[c]=e}return e(u)},L=(n,t,e)=>function(...o){const r=e.length,c=o.length,f=[];let i=-1,s=-1,l=0;for(;++i<r;){const r=e[i];if(r==u&&(s+=1)<c){const n=o[s];n==u&&(l+=1),f.push(n)}else f.push(r);if(f.length==n)return 0==l?t(...f):N(n,t,f)}for(;++s<c;){const e=o[s];if(e==u&&(l+=1),f.push(e),f.length==n)return 0==l?t(...f):N(n,t,f)}return N(n,t,f)},N=function(n,t,e){const o=e.length;if(o<n)return L(n,t,e);let r=-1;for(;++r<o;){if(e[r]==u)return L(n,t,e)}return t(...e)},Q=n=>function([t,e]){return n(t,e)},U=function(n,t,e){return n.set(t,e)},W=function(t,o){const r=new Map,u=[];return t.forEach(((t,e,o)=>function(r,u){const c=t([u,r]);n(c)?o.push(c.then(Q(N(3,U,[e])))):e.set(c[0],c[1])})(o,r,u)),0==u.length?r:e(u).then(f(r))},X=function(t,o){return a(t)?$(t,o):null==t?t:"function"==typeof t.then?t.then(o):"function"==typeof t.map?t.map(o):"string"==typeof t||t.constructor==String?function(t,e){const o=$(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?q(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(d(F,r,"set",e,u))):r.set(e,i)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t[D]?P(t[D](),o):"function"==typeof t[B]?k(t[B](),o):t.constructor==Object?V(t,o):o(t)},Y=(...t)=>{const e=t.pop();if(0==t.length)return c(X,u,e);const o=t[0];return n(o)?o.then(c(X,u,e)):X(o,e)};Y.entries=function(t){return function(o){if(null==o)throw new TypeError("value is not an Object or Map");if(o.constructor==Object)return function(t,o){const r={},u=[];for(const e in t){const c=o([e,t[e]]);n(c)?u.push(c.then(Q(N(3,g,[r])))):r[c[0]]=c[1]}return 0==u.length?r:e(u).then(f(r))}(o,t);if(o.constructor==Map)return W(o,t);throw new TypeError("value is not an Object or Map")}},Y.series=t=>function(e){if(a(e))return function(t,e){const r=t.length,c=Array(r);let f=-1;for(;++f<r;){const r=e(t[f]);if(n(r))return r.then(o(l(g,c,f,u),d(G,t,e,u,f)));c[f]=r}return c}(e,t);throw new TypeError(`${e} is not an Array`)},Y.pool=(t,e)=>function(o){if(a(o))return function(t,e,o){const r=t.length,u=Array(r);let c=-1;for(;++c<r;){const r=e(t[c]);if(n(r)){const n=new Set,f=r.then(H((()=>n.delete(f))));return n.add(f),u[c]=f,K(t,e,o,u,c,n)}u[c]=r}return u}(o,e,t);throw new TypeError(`${o} is not an Array`)};const Z=(n,t)=>({[D](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),nn=(t,e)=>({isAsyncIteratorDone:!1,[B](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:o,done:r}=await t.next();if(r)this.isAsyncIteratorDone=!0;else{const t=e(o);if(n(t)?await t:t)return{value:o,done:!1}}}return{value:void 0,done:!0}}}),tn=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},en=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},on=function(t,o){const r=t.length,c=[];let f=-1,i=-1;for(;++f<r;){const r=t[f],s=o(r,f,t);if(n(s))return e(tn([s],t,o,f)).then(d(en,t,c,f-1,u));s&&(c[++i]=r)}return c},rn=(n,t)=>function(){return n(t)},un=function(){},cn=(n,t,e,o,r)=>function(){return n(t,e,o,r)},fn=function(n,t,e,o){o&&(n[t]=e)},sn=function(t,o){return a(t)?on(t,o):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=on(t,e);return n(o)?o.then(l(_,u,"join","")):o.join("")}(t,o):t.constructor==Set?function(t,o){const r=new Set,c=r.add.bind(r),i=[];for(const e of t){const f=o(e,e,t);n(f)?i.push(f.then(l(s,u,rn(c,e),un))):f&&r.add(e)}return 0==i.length?r:e(i).then(f(r))}(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(l(s,u,cn(F,r,"set",e,f),un))):i&&r.set(e,f)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t.filter?t.filter(o):"function"==typeof t[D]?Z(t[D](),o):"function"==typeof t[B]?nn(t[B](),o):t.constructor==Object?function(t,o){const r={},c=[];for(const e in t){const f=t[e],i=o(f,e,t);n(i)?c.push(i.then(d(fn,r,e,t[e],u))):i&&(r[e]=f)}return 0==c.length?r:e(c).then(f(r))}(t,o):t},ln=Object.values,hn=(Object.prototype.toString,async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o}),an=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},pn=Object.keys,yn=async function(t,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,t[c],c,t),n(o)&&(o=await o)}return o},dn=async function(t,e,o,r){for(const[u,c]of r)o=e(o,c,u,t),n(o)&&(o=await o);return o},gn=function(t,e,o){return a(t)?function(t,e,o){const r=t.length;let c=-1;for(void 0===o&&(o=t[++c]);++c<r;)if(o=e(o,t[c],c,t),n(o))return o.then(d(an,t,e,u,c));return o}(t,e,o):null==t?void 0===o?c(e,t,u):e(o,t):t.constructor==Map?function(t,e,o){const r=t.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of r)if(o=e(o,f,c,t),n(o))return o.then(d(dn,t,e,u,r));return o}(t,e,o):"function"==typeof t[D]?function(t,e,o){let r=t.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=t.next());!r.done;){if(o=e(o,r.value),n(o))return o.then(l(hn,t,e,u));r=t.next()}return o}(t[D](),e,o):"function"==typeof t[B]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(t[B](),e,o):"function"==typeof t.reduce?t.reduce(e,o):"function"==typeof t.chain?t.chain(c(e,o,u)):"function"==typeof t.flatMap?t.flatMap(c(e,o,u)):t.constructor==Object?function(t,e,o){const r=pn(t),c=r.length;let f=-1;for(void 0===o&&(o=t[r[++f]]);++f<c;){const c=r[f];if(o=e(o,t[c],c,t),n(o))return o.then((i=yn,l=e,h=u,a=r,p=f,(s=t)==u?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,h,a,p):l==u?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,h,a,p):h==u?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,a,p):a==u?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,h,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,h,a)))}var i,s,l,h,a,p;return o}(t,e,o):void 0===o?c(e,t,u):e(o,t)},wn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(gn,t,e,u)):gn(t,e,r)}return n(o)?o.then(l(gn,t,e,u)):gn(t,e,o)},vn=ArrayBuffer.isView,bn=(n,t)=>n+t,jn=function(n,t){return a(t)||vn(t)?function(n,t){const e=n.length,o=t.length;let r=-1;for(;++r<o;)n[e+r]=t[r];return n}(n,t):(n.push(t),n)},xn="function"==typeof Buffer,Sn=xn?Buffer.alloc:un,Mn=function(n,t){const e=n.length,o=xn&&n.constructor==Buffer?Sn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},mn=function(n,t){return a(t)||vn(t)?Mn(n,t):Mn(n,[t])},On=(n,t)=>new Promise(((n,t)=>function(e,o){t.on("data",(n=>function(t,e,o){return n.write(t,e,o),n})(n)),t.on("end",rn(e,n)),t.on("error",o)})(n,t)),An=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?On(n,t):(n.write(t),n);var e},zn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},In=function(n,t){return n.concat(t)},En=function(t,e,o){const r=gn(t,e(un),null);return n(r)?r.then(f(o)):o},Dn=function(t,e,o){if(a(o))return gn(t,e(jn),o);if(vn(o)){const r=gn(t,e(jn),[]);return n(r)?r.then(c(mn,o,u)):mn(o,r)}if(null==o)return En(t,e,o);const r=o.constructor;return"string"==typeof o||r==String?gn(t,e(bn),o):"function"==typeof o.concat?gn(t,e(In),o):"function"==typeof o.write?gn(t,e(An),o):r==Set?gn(t,e(zn),o):r==Object?gn(t,e(x),o):En(t,e,o)},Pn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Dn,t,e,u)):Dn(t,e,r)}return n(o)?o.then(l(Dn,t,e,u)):Dn(t,e,o)},Tn=function(n,t){return n.push(t),n},Bn=n=>new Promise((t=>{setTimeout(t,n)})),kn=(n,t)=>t,Cn=n=>n,$n=(n,t)=>function(...e){return t(n(...e))},_n=async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))},qn=function(t){const o=t.length,r=[],i=[];let s=-1;for(;++s<o;){const e=t[s];if(a(e)){const n=e.length;let t=-1;for(;++t<n;)i.push(e[t])}else if(null==e)i.push(e);else if("function"==typeof e.then)r.push(e.then(c(Tn,i,u)));else if("function"==typeof e[D])for(const n of e)i.push(n);else if("function"==typeof e[B])r.push(_n(e[B](),c(Tn,i,u)));else if("function"==typeof e.chain){const t=e.chain(Cn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Cn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.reduce){const t=e.reduce($n(kn,c(Tn,i,u)),null);n(t)&&r.push(t)}else if(e.constructor==Object)for(const n in e)i.push(e[n]);else i.push(e)}return 0==r.length?i:e(r).then(f(i))},Fn=function(t){const o=[],r={},f=c(x,r,u),i=$n(kn,f);for(const e in t){const u=t[e];if(null!=u)if("function"==typeof u[D])for(const n of u)x(r,n);else if("function"==typeof u[B])o.push(_n(u[B](),f));else if("function"==typeof u.chain){const t=u.chain(Cn);n(t)?o.push(t.then(f)):x(r,t)}else if("function"==typeof u.flatMap){const t=u.flatMap(Cn);n(t)?o.push(t.then(f)):f(t)}else if("function"==typeof u.reduce){const t=u.reduce(i,null);n(t)&&o.push(t)}else x(r,u)}return 0==o.length?r:e(o).then((()=>r))},Rn=function(t){t.size;const o=[],r=new Set,c=(n,t)=>r.add(t),f=l(_,r,"add",u);for(const e of t)if(a(e)){const n=e.length;let t=-1;for(;++t<n;)r.add(e[t])}else if(null==e)r.add(e);else if("function"==typeof e[D])for(const n of e)r.add(n);else if("function"==typeof e[B])o.push(_n(e[B](),f));else if("function"==typeof e.chain){const t=e.chain(Cn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Cn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(c,null);n(t)&&o.push(t)}else if(e.constructor==Object)for(const n in e)r.add(e[n]);else r.add(e);return 0==o.length?r:e(o).then((()=>r))},Vn=o(qn,c(((n,t)=>n.join(t)),u,"")),Gn=function(t,e){if(a(t))return function(t,e){const o=$(t,e);return n(o)?o.then(qn):qn(o)}(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return D in t?function(n,t){let e=[],o=0;return{[D](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=gn(t(r.value),Tn,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(t,e):function(t,e){const o=[],r=new Set;return{isAsyncIteratorDone:!1,[B](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||o.length>0||r.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:f}=await t.next();if(f)this.isAsyncIteratorDone=f;else{const t=e(c);if(n(t)){const n=t.then(l(gn,u,Tn,o)).then((()=>r.delete(n)));r.add(n)}else{const e=gn(t,Tn,o);if(n(e)){const n=e.then((()=>r.delete(n)));r.add(n)}}}}if(o.length>0)return{value:o.shift(),done:!1};r.size>0&&await J([Bn(1e3),...r])}return{value:void 0,done:!0}}}}(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const o=t.constructor;return o==Object?function(t,e){const o=V(t,e);return n(o)?o.then(Fn):Fn(o)}(t,e):o==Set?function(t,e){const o=q(t,e);return n(o)?o.then(Rn):Rn(o)}(t,e):"string"==typeof t||o==String?function(t,e){const o=$(t,e);return n(o)?o.then(Vn):Vn(o)}(t,e):e(t)},Hn=function(t,o){return a(t)?function(t,o){const r=t.length,u=[];let c=-1;for(;++c<r;){const e=o(t[c]);n(e)&&u.push(e)}return 0==u.length?t:e(u).then(f(t))}(t,o):null==t?t:"function"==typeof t.forEach?t.forEach(o):"function"==typeof t[D]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))}(t[D](),o):"function"==typeof t[B]?_n(t[B](),o):t.constructor==Object?function(t,o){const r=[];for(const e in t){const u=o(t[e]);n(u)&&r.push(u)}return 0==r.length?t:e(r).then(f(t))}(t,o):t},Jn=function(n){const t=n.then((n=>[n,t]));return t},Kn=async function(t,e,o,r){const u=t.length;for(;++o<u;){const u=e(t[o]);if(n(u))r.add(Jn(u));else if(u)return!0}for(;r.size>0;){const[n,t]=await J(r);if(r.delete(t),n)return!0}return!1},Ln=function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return Kn(t,e,r,new Set([Jn(o)]));if(o)return!0}return!1},Nn=async function(t,e,o,r=20){let u=t.next();for(n(u)&&(u=await u);!u.done;){if(o.size>=r){const[n,t]=await J(o);if(o.delete(t),n)return!0}const c=e(u.value);if(n(c))o.add(Jn(c));else if(c)return!0;u=t.next(),n(u)&&(u=await u)}for(;o.size>0;){const[n,t]=await J(o);if(o.delete(t),n)return!0}return!1},Qn=function(t,e){return a(t)?Ln(t,e):null==t?e(t):"function"==typeof t[D]?function(t,e){for(const o of t){const r=e(o);if(n(r))return Nn(t,e,new Set([Jn(r)]));if(r)return!0}return!1}(t[D](),e):"function"==typeof t[B]?Nn(t[B](),e,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!0===e?e:n(e)?e.then(c((n=>function(t,e){return!!t||n(e)})(t),u,o)):!!e||t(o)})(e),!1):t.constructor==Object?Ln(ln(t),e):e(t)},Un=function(t,o){const r=t.length,c=[];let f=-1;for(;++f<r;){const e=o(t[f]);if(n(e))c.push(e);else if(!e)return!1}return 0==c.length||e(c).then(l(_,u,"every",Boolean))},Wn=(n,t,e)=>!!t&&n(e),Xn=function(t,o){return a(t)?Un(t,o):null==t?o(t):"function"==typeof t[D]?function(t,o){const r=[];for(const e of t){const t=o(e);if(n(t))r.push(t);else if(!t)return!1}return 0==r.length||e(r).then(l(_,u,"every",Boolean))}(t[D](),o):"function"==typeof t[B]?async function(t,e,o,r=20){let u=await t.next();for(;!u.done;){if(o.size>=r){const[n,t]=await J(o);if(o.delete(t),!n)return!1}const c=e(u.value);if(n(c))o.add(Jn(c));else if(!c)return!1;u=await t.next()}for(;o.size>0;){const[n,t]=await J(o);if(o.delete(t),!n)return!1}return!0}(t[B](),o,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!1!==e&&(n(e)?e.then(l(Wn,t,u,o)):!!e&&t(o))})(o),!0):t.constructor==Object?Un(ln(t),o):o(t)},Yn=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,I(Yn,t,e),f(!1)));if(!o)return!1}return!0},Zn=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),!r)return!1}return!0},nt=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,O(Zn,t,e,r),f(!1)));if(!o)return!1}return!0},tt=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,f(!0),I(tt,t,e)));if(o)return!0}return!1},et=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),r)return!0}return!1},ot=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,f(!0),O(et,t,e,r)));if(o)return!0}return!1},rt=n=>!n,ut=function(t,e){const o=e(...t);return n(o)?o.then(rt):!o},ct=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(...r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(...r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(...r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(...r){return n(t,e,o,r)})(n,t,e,o)},ft=function(t,o,r,u){const c=r(...t),f=u(...t);return n(c)||n(f)?e([c,f]).then(Q(o)):o(c,f)},it=function(t,o,r,u){const c=r(...t);return n(c)||n(u)?e([c,u]).then(Q(o)):o(c,u)},st=function(t,o,r,u){const c=u(...t);return n(r)||n(c)?e([r,c]).then(Q(o)):o(r,c)},lt=o=>function(...r){const c=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof c;return i&&s?0==r.length?ct(ft,u,o,f,c):t(r)?e(r).then(d(ft,u,o,f,c)):ft(r,o,f,c):i?0==r.length?ct(it,u,o,f,c):t(r)?e(r).then(d(it,u,o,f,c)):it(r,o,f,c):s?0==r.length?ct(st,u,o,f,c):t(r)?e(r).then(d(st,u,o,f,c)):st(r,o,f,c):n(f)||n(c)?e([f,c]).then(Q(o)):o(f,c)},ht=lt((function(n,t){return n==t})),at=lt(((n,t)=>n>t)),pt=lt(((n,t)=>n<t)),yt=lt(((n,t)=>n>=t)),dt=lt(((n,t)=>n<=t)),gt=/[.|[|\]]+/,wt=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],o="]"==n[t];return e&&o?n.slice(1,t).split(gt):e?n.slice(1).split(gt):o?n.slice(0,t).split(gt):n.split(gt)}),500),vt=n=>a(n)?n:"string"==typeof n?wt(n):[n],bt=function(n,t){const e=vt(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},jt=function(n,t,e){const o=null==n?void 0:bt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},xt=function(n,t,e){if(!C(n))return n;const o=vt(e),r=o.length,u=r-1,c={...n};let f=c,i=-1;for(;++i<r;){const n=o[i];if(i==u)f[n]=t;else{const t=f[n],e=a(t)?t.slice():{...t};f[n]=e,f=e}}return c},St=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(xt,t,u,e)):xt(t,r,e)}return n(o)?o.then(l(xt,t,u,e)):xt(t,o,e)},Mt=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=bt(n,e);null!=u&&(o=xt(o,u,e))}return o},mt=function(n,t){if(null==n)return;const e=vt(t),o=e.length-1;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;const c=e[r];null!=u&&c in u&&delete u[c]},Ot=function(n){const t={};for(const e in n){const o=n[e];a(o)?t[e]=At(o):null!=o&&o.constructor==Object?t[e]=Ot(o):t[e]=o}return t},At=function(n){const t=n.length,e=[];let o=-1;for(;++o<t;){const t=n[o];a(t)?e[o]=At(t):null!=t&&t.constructor==Object?e[o]=Ot(t):e[o]=t}return e},zt=function(n,t){const e=t.length,o=a(r=n)?At(r):null==r?r:r.constructor==Object?Ot(r):r;var r;let u=-1;for(;++u<e;)mt(o,t[u]);return o},It=(n,...t)=>N(n.length,n,t);It.arity=function(n,t,...e){return N(n,t,e)};return{pipe:function(...n){const f=n.pop().reduce(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},compose:function(...n){const f=n.pop().reduceRight(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},tap:h,forEach:function(...t){const e=t.pop();if(0==t.length)return c(Hn,u,e);const o=t[0];return n(o)?o.then(c(Hn,u,e)):Hn(o,e)},switchCase:(...n)=>{const o=n.pop();return z(o)?E(o,-2):0==n.length?(r=A,f=u,i=-2,(c=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,f,i):f==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,c,i):((n,t,e)=>function(...o){return n(t,e,o)})(r,c,f)):t(n)?e(n).then(l(A,o,u,-2)):A(o,n,-2);var r,c,f,i},tryCatch:function(...n){if(n.length>2){const o=n.pop(),r=n.pop();return t(n)?e(n).then(l(m,r,o,u)):m(r,o,n)}const o=n[0],r=n[1];return function(...n){return m(o,r,n)}},all:j,assign:function(t,e){return null==e?c(S,u,t):n(t)?t.then(c(S,u,e)):S(t,e)},get:function(t,e,o){return n(t)?t.then(l(jt,u,e,o)):C(t)&&!a(t)?jt(t,e,o):l(jt,u,t,e)},set:function(t,e,o){return null==o?l(St,u,t,e):n(t)?t.then(l(St,u,e,o)):St(t,e,o)},pick:function(t,e){return null==e?c(Mt,u,t):n(t)?t.then(c(Mt,u,e)):Mt(t,e)},omit:function(t,e){return null==e?c(zt,u,t):n(t)?t.then(c(zt,u,e)):zt(t,e)},map:Y,filter:function(...n){const t=n.pop();return 0==n.length?c(sn,u,t):sn(n[0],t)},flatMap:(...t)=>{const e=t.pop();if(0==t.length)return c(Gn,u,e);const o=t[0];return n(o)?o.then(c(Gn,u,e)):Gn(t[0],e)},reduce:function(...t){return"function"==typeof t[0]?l(wn,u,t[0],t[1]):n(t[0])?t[0].then(l(wn,u,t[1],t[2])):wn(t[0],t[1],t[2])},transform:function(...t){return"function"==typeof t[0]?l(Pn,u,t[0],t[1]):n(t[0])?t[0].then(l(Pn,u,t[1],t[2])):Pn(t[0],t[1],t[2])},and:function(...n){const o=n.pop();return z(o)?Yn(o,-1):0==n.length?p(nt,u,o):t(n)?e(n).then(c(nt,u,o)):nt(n,o)},or:function(...n){const o=n.pop();return z(o)?tt(o,-1):0==n.length?p(ot,u,o):t(n)?e(n).then(c(ot,u,o)):ot(n,o)},not:function(...n){const o=n.pop();return"function"==typeof o?0==n.length?p(ut,u,o):t(n)?e(n).then(c(ut,u,o)):ut(n,o):!o},some:function(...t){const e=t.pop();if(0==t.length)return c(Qn,u,e);const o=t[0];return n(o)?o.then(c(Qn,u,e)):Qn(o,e)},every:function(...t){const e=t.pop();if(0==t.length)return c(Xn,u,e);const o=t[0];return n(o)?o.then(c(Xn,u,e)):Xn(o,e)},eq:ht,gt:at,lt:pt,gte:yt,lte:dt,thunkify:(n,...o)=>function(){return t(o)?e(o).then(c(r,n,u)):n(...o)},always:f,curry:It,__:u}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.rubico=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1},e=Promise.all.bind(Promise),o=(t,e)=>function(...o){const r=t(...o);return n(r)?r.then(e):e(r)},r=(n,t)=>n(...t),u=Symbol.for("placeholder"),c=function(n,t,e){return t==u?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},f=n=>function(){return n},i=(n,t)=>function(){return n(...t)},s=(n,t,e)=>n?t():e(),l=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},h=function(n,t,e){return t==u?((n,t,e)=>function(...e){return n(e,t)})(n,e):((n,t,e)=>function(...e){return n(t,e)})(n,t)},a=function(t,e){const o=t[0],r=e(...t);return n(r)?r.then(f(o)):o},p=function(...n){const t=n.pop();return 0==n.length?h(a,u,t):a(n,t)};p.if=(t,e)=>function(...o){const r=t(...o);if(n(r))return r.then(l(s,u,i(p(e),o),f(o[0])));if(r){const t=e(...o);if(n(t))return t.then(f(o[0]))}return o[0]};const y=Array.isArray,d=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=t[c](...o);n(e)&&(f=!0),u[c]=e}return f?e(u):u},g=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,e,o)},w=function(n,t,e){return n[t]=e,n},v=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=t[r](...e);o[r]=n(u)?await u:u}return o},b=function(t,e){const r=t.length,c=[];let f=-1;for(;++f<r;){const r=t[f](...e);if(n(r))return r.then(o(l(w,c,f,u),g(v,t,e,u,f)));c[f]=r}return c},j=function(t,o){const r={},c=[];for(const e in t){const f=t[e](...o);n(f)?c.push(f.then(l(w,r,e,u))):r[e]=f}return 0==c.length?r:e(c).then(f(r))},x=function(...n){const o=n.pop();return 0==n.length?y(o)?h(d,o,u):h(j,o,u):t(n)?y(o)?e(n).then(c(d,o,u)):e(n).then(c(j,o,u)):y(o)?d(o,n):j(o,n)};x.series=function(...n){const o=n.pop();return 0==n.length?h(b,o,u):t(n)?e(n).then(c(b,o,u)):b(o,n)};const S=Object.assign,M=function(t,e){const o=j(e,[t]);return n(o)?o.then(l(S,{},t,u)):{...t,...o}},m=function(n,t,e){return n(t,...e)},O=function(t,e,o){try{const r=t(...o);return n(r)?r.catch(l(m,e,u,o)):r}catch(n){return e(n,...o)}},A=(n,t,e,o)=>function(){return n(t,e,o)},z=function(t,e,o){const r=t.length-1;for(;(o+=2)<r;){const r=t[o],c=t[o+1],h="function"==typeof r?r(...e):r;if(n(h))return h.then(l(s,u,"function"==typeof c?i(c,e):f(c),A(z,t,e,o)));if(h)return"function"==typeof c?c(...e):c}if(o==t.length)return;const c=t[r];return"function"==typeof c?c(...e):c},I=function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0},E=(n,t,e)=>function(){return n(t,e)},D=function(t,e){const o=t.length,r=o-1;for(;(e+=2)<r;){const o=t[e],r=t[e+1];if(n(o))return o.then(l(s,u,f(r),E(D,t,e)));if(o)return r}if(e!=o)return t[e]},P=Symbol.iterator,T=(n,t)=>({toString:()=>"[object MappingIterator]",[P](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),B=n=>({value:n,done:!1}),k=Symbol.asyncIterator,C=(t,e)=>({[k](){return this},async next(){const o=await t.next();if(o.done)return o;const r=e(o.value);return n(r)?r.then(B):{value:r,done:!1}}}),$=n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t},_=function(t,o){const r=t.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const e=o(t[c],c,t);n(e)&&(f=!0),u[c]=e}return f?e(u):u},q=(n,t,e)=>n[t](e),F=function(t,o){const r=new Set,c=[];for(const e of t){const f=o(e,e,t);n(f)?c.push(f.then(l(q,r,"add",u))):r.add(f)}return 0==c.length?r:e(c).then(f(r))},R=(n,t,e,o)=>n[t](e,o),V=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const c=t[u];n(c)?(r+=1,c.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=c}0==r&&e(o)})(t)),G=function(t,e){const o={};let r=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(r=!0),o[u]=c}return r?V(o):o},H=async function(t,e,o,r){const u=t.length;for(;++r<u;){const u=e(t[r]);o[r]=n(u)?await u:u}return o},J=n=>function(...t){return n(...t),t[0]},K=Promise.race.bind(Promise),L=async function(t,o,r,u,c,f){const i=t.length;for(;++c<i;){f.size>=r&&await K(f);const e=o(t[c]);if(n(e)){const n=e.then(J((()=>f.delete(n))));f.add(n),u[c]=n}else u[c]=e}return e(u)},N=(n,t,e)=>function(...o){const r=e.length,c=o.length,f=[];let i=-1,s=-1,l=0;for(;++i<r;){const r=e[i];if(r==u&&(s+=1)<c){const n=o[s];n==u&&(l+=1),f.push(n)}else f.push(r);if(f.length==n)return 0==l?t(...f):Q(n,t,f)}for(;++s<c;){const e=o[s];if(e==u&&(l+=1),f.push(e),f.length==n)return 0==l?t(...f):Q(n,t,f)}return Q(n,t,f)},Q=function(n,t,e){const o=e.length;if(o<n)return N(n,t,e);let r=-1;for(;++r<o;){if(e[r]==u)return N(n,t,e)}return t(...e)},U=n=>function([t,e]){return n(t,e)},W=function(n,t,e){return n.set(t,e)},X=function(t,o){const r=new Map,u=[];return t.forEach(((t,e,o)=>function(r,u){const c=t([u,r]);n(c)?o.push(c.then(U(Q(3,W,[e])))):e.set(c[0],c[1])})(o,r,u)),0==u.length?r:e(u).then(f(r))},Y=function(t,o){return y(t)?_(t,o):null==t?t:"function"==typeof t.then?t.then(o):"function"==typeof t.map?t.map(o):"string"==typeof t||t.constructor==String?function(t,e){const o=_(t,e);return n(o)?o.then(l(q,u,"join","")):o.join("")}(t,o):t.constructor==Set?F(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(g(R,r,"set",e,u))):r.set(e,i)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t[P]?T(t[P](),o):"function"==typeof t[k]?C(t[k](),o):t.constructor==Object?G(t,o):o(t)},Z=(...t)=>{const e=t.pop();if(0==t.length)return c(Y,u,e);const o=t[0];return n(o)?o.then(c(Y,u,e)):Y(o,e)};Z.entries=function(t){return function(o){if(null==o)throw new TypeError("value is not an Object or Map");if(o.constructor==Object)return function(t,o){const r={},u=[];for(const e in t){const c=o([e,t[e]]);n(c)?u.push(c.then(U(Q(3,w,[r])))):r[c[0]]=c[1]}return 0==u.length?r:e(u).then(f(r))}(o,t);if(o.constructor==Map)return X(o,t);throw new TypeError("value is not an Object or Map")}},Z.series=t=>function(e){if(y(e))return function(t,e){const r=t.length,c=Array(r);let f=-1;for(;++f<r;){const r=e(t[f]);if(n(r))return r.then(o(l(w,c,f,u),g(H,t,e,u,f)));c[f]=r}return c}(e,t);throw new TypeError(`${e} is not an Array`)},Z.pool=(t,e)=>function(o){if(y(o))return function(t,e,o){const r=t.length,u=Array(r);let c=-1;for(;++c<r;){const r=e(t[c]);if(n(r)){const n=new Set,f=r.then(J((()=>n.delete(f))));return n.add(f),u[c]=f,L(t,e,o,u,c,n)}u[c]=r}return u}(o,e,t);throw new TypeError(`${o} is not an Array`)};const nn=(n,t)=>({[P](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),tn=(t,e)=>({isAsyncIteratorDone:!1,[k](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:o,done:r}=await t.next();if(r)this.isAsyncIteratorDone=!0;else{const t=e(o);if(n(t)?await t:t)return{value:o,done:!1}}}return{value:void 0,done:!0}}}),en=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},on=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},rn=function(t,o){const r=t.length,c=[];let f=-1,i=-1;for(;++f<r;){const r=t[f],s=o(r,f,t);if(n(s))return e(en([s],t,o,f)).then(g(on,t,c,f-1,u));s&&(c[++i]=r)}return c},un=(n,t)=>function(){return n(t)},cn=function(){},fn=(n,t,e,o,r)=>function(){return n(t,e,o,r)},sn=function(n,t,e,o){o&&(n[t]=e)},ln=function(t,o){return y(t)?rn(t,o):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=rn(t,e);return n(o)?o.then(l(q,u,"join","")):o.join("")}(t,o):t.constructor==Set?function(t,o){const r=new Set,c=r.add.bind(r),i=[];for(const e of t){const f=o(e,e,t);n(f)?i.push(f.then(l(s,u,un(c,e),cn))):f&&r.add(e)}return 0==i.length?r:e(i).then(f(r))}(t,o):t.constructor==Map?function(t,o){const r=new Map,c=[];for(const[e,f]of t){const i=o(f,e,t);n(i)?c.push(i.then(l(s,u,fn(R,r,"set",e,f),cn))):i&&r.set(e,f)}return 0==c.length?r:e(c).then(f(r))}(t,o):"function"==typeof t.filter?t.filter(o):"function"==typeof t[P]?nn(t[P](),o):"function"==typeof t[k]?tn(t[k](),o):t.constructor==Object?function(t,o){const r={},c=[];for(const e in t){const f=t[e],i=o(f,e,t);n(i)?c.push(i.then(g(sn,r,e,t[e],u))):i&&(r[e]=f)}return 0==c.length?r:e(c).then(f(r))}(t,o):t},hn=Object.values,an=(Object.prototype.toString,async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o}),pn=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},yn=Object.keys,dn=async function(t,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,t[c],c,t),n(o)&&(o=await o)}return o},gn=async function(t,e,o,r){for(const[u,c]of r)o=e(o,c,u,t),n(o)&&(o=await o);return o},wn=function(t,e,o){return y(t)?function(t,e,o){const r=t.length;let c=-1;for(void 0===o&&(o=t[++c]);++c<r;)if(o=e(o,t[c],c,t),n(o))return o.then(g(pn,t,e,u,c));return o}(t,e,o):null==t?void 0===o?c(e,t,u):e(o,t):t.constructor==Map?function(t,e,o){const r=t.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of r)if(o=e(o,f,c,t),n(o))return o.then(g(gn,t,e,u,r));return o}(t,e,o):"function"==typeof t[P]?function(t,e,o){let r=t.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=t.next());!r.done;){if(o=e(o,r.value),n(o))return o.then(l(an,t,e,u));r=t.next()}return o}(t[P](),e,o):"function"==typeof t[k]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(t[k](),e,o):"function"==typeof t.reduce?t.reduce(e,o):"function"==typeof t.chain?t.chain(c(e,o,u)):"function"==typeof t.flatMap?t.flatMap(c(e,o,u)):t.constructor==Object?function(t,e,o){const r=yn(t),c=r.length;let f=-1;for(void 0===o&&(o=t[r[++f]]);++f<c;){const c=r[f];if(o=e(o,t[c],c,t),n(o))return o.then((i=dn,l=e,h=u,a=r,p=f,(s=t)==u?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,h,a,p):l==u?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,h,a,p):h==u?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,a,p):a==u?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,h,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,h,a)))}var i,s,l,h,a,p;return o}(t,e,o):void 0===o?c(e,t,u):e(o,t)},vn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(wn,t,e,u)):wn(t,e,r)}return n(o)?o.then(l(wn,t,e,u)):wn(t,e,o)},bn=ArrayBuffer.isView,jn=function(n,t){return y(t)||bn(t)?function(n,t){const e=n.length,o=t.length;let r=-1;for(;++r<o;)n[e+r]=t[r];return n}(n,t):(n.push(t),n)},xn="function"==typeof Buffer,Sn=xn?Buffer.alloc:cn,Mn=function(n,t){const e=n.length,o=xn&&n.constructor==Buffer?Sn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},mn=function(n,t){return y(t)||bn(t)?Mn(n,t):Mn(n,[t])},On=(n,t)=>new Promise(((n,t)=>function(e,o){t.on("data",(n=>function(t,e,o){return n.write(t,e,o),n})(n)),t.on("end",un(e,n)),t.on("error",o)})(n,t)),An=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?On(n,t):(n.write(t),n);var e},zn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},In=function(n,t){return n.concat(t)},En=function(t,e,o){const r=wn(t,e(cn),null);return n(r)?r.then(f(o)):o},Dn=function(t,e,o){if(y(o))return wn(t,e(jn),o);if(bn(o)){const r=wn(t,e(jn),[]);return n(r)?r.then(c(mn,o,u)):mn(o,r)}if(null==o)return En(t,e,o);const r=o.constructor;if("string"==typeof o||r==String){const r=wn(t,e(jn),[o]);return n(r)?r.then(l(q,u,"join","")):r.join("")}return"function"==typeof o.concat?wn(t,e(In),o):"function"==typeof o.write?wn(t,e(An),o):r==Set?wn(t,e(zn),o):r==Object?wn(t,e(S),o):En(t,e,o)},Pn=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(Dn,t,e,u)):Dn(t,e,r)}return n(o)?o.then(l(Dn,t,e,u)):Dn(t,e,o)},Tn=function(n,t){return n.push(t),n},Bn=n=>new Promise((t=>{setTimeout(t,n)})),kn=(n,t)=>t,Cn=n=>n,$n=(n,t)=>function(...e){return t(n(...e))},_n=async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))},qn=function(t){const o=t.length,r=[],i=[];let s=-1;for(;++s<o;){const e=t[s];if(y(e)){const n=e.length;let t=-1;for(;++t<n;)i.push(e[t])}else if(null==e)i.push(e);else if("function"==typeof e.then)r.push(e.then(c(Tn,i,u)));else if("function"==typeof e[P])for(const n of e)i.push(n);else if("function"==typeof e[k])r.push(_n(e[k](),c(Tn,i,u)));else if("function"==typeof e.chain){const t=e.chain(Cn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Cn);n(t)?r.push(t.then(c(Tn,i,u))):i.push(t)}else if("function"==typeof e.reduce){const t=e.reduce($n(kn,c(Tn,i,u)),null);n(t)&&r.push(t)}else if(e.constructor==Object)for(const n in e)i.push(e[n]);else i.push(e)}return 0==r.length?i:e(r).then(f(i))},Fn=function(t){const o=[],r={},f=c(S,r,u),i=$n(kn,f);for(const e in t){const u=t[e];if(null!=u)if("function"==typeof u[P])for(const n of u)S(r,n);else if("function"==typeof u[k])o.push(_n(u[k](),f));else if("function"==typeof u.chain){const t=u.chain(Cn);n(t)?o.push(t.then(f)):S(r,t)}else if("function"==typeof u.flatMap){const t=u.flatMap(Cn);n(t)?o.push(t.then(f)):f(t)}else if("function"==typeof u.reduce){const t=u.reduce(i,null);n(t)&&o.push(t)}else S(r,u)}return 0==o.length?r:e(o).then((()=>r))},Rn=function(t){t.size;const o=[],r=new Set,c=(n,t)=>r.add(t),f=l(q,r,"add",u);for(const e of t)if(y(e)){const n=e.length;let t=-1;for(;++t<n;)r.add(e[t])}else if(null==e)r.add(e);else if("function"==typeof e[P])for(const n of e)r.add(n);else if("function"==typeof e[k])o.push(_n(e[k](),f));else if("function"==typeof e.chain){const t=e.chain(Cn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(Cn);n(t)?o.push(t.then(f)):r.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(c,null);n(t)&&o.push(t)}else if(e.constructor==Object)for(const n in e)r.add(e[n]);else r.add(e);return 0==o.length?r:e(o).then((()=>r))},Vn=o(qn,c(((n,t)=>n.join(t)),u,"")),Gn=function(t,e){if(y(t))return function(t,e){const o=_(t,e);return n(o)?o.then(qn):qn(o)}(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return P in t?function(n,t){let e=[],o=0;return{[P](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=wn(t(r.value),Tn,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(t,e):function(t,e){const o=[],r=new Set;return{isAsyncIteratorDone:!1,[k](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||o.length>0||r.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:f}=await t.next();if(f)this.isAsyncIteratorDone=f;else{const t=e(c);if(n(t)){const n=t.then(l(wn,u,Tn,o)).then((()=>r.delete(n)));r.add(n)}else{const e=wn(t,Tn,o);if(n(e)){const n=e.then((()=>r.delete(n)));r.add(n)}}}}if(o.length>0)return{value:o.shift(),done:!1};r.size>0&&await K([Bn(1e3),...r])}return{value:void 0,done:!0}}}}(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const o=t.constructor;return o==Object?function(t,e){const o=G(t,e);return n(o)?o.then(Fn):Fn(o)}(t,e):o==Set?function(t,e){const o=F(t,e);return n(o)?o.then(Rn):Rn(o)}(t,e):"string"==typeof t||o==String?function(t,e){const o=_(t,e);return n(o)?o.then(Vn):Vn(o)}(t,e):e(t)},Hn=function(t,o){return y(t)?function(t,o){const r=t.length,u=[];let c=-1;for(;++c<r;){const e=o(t[c]);n(e)&&u.push(e)}return 0==u.length?t:e(u).then(f(t))}(t,o):null==t?t:"function"==typeof t.forEach?t.forEach(o):"function"==typeof t[P]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(f(t))}(t[P](),o):"function"==typeof t[k]?_n(t[k](),o):t.constructor==Object?function(t,o){const r=[];for(const e in t){const u=o(t[e]);n(u)&&r.push(u)}return 0==r.length?t:e(r).then(f(t))}(t,o):t},Jn=function(n){const t=n.then((n=>[n,t]));return t},Kn=async function(t,e,o,r){const u=t.length;for(;++o<u;){const u=e(t[o]);if(n(u))r.add(Jn(u));else if(u)return!0}for(;r.size>0;){const[n,t]=await K(r);if(r.delete(t),n)return!0}return!1},Ln=function(t,e){const o=t.length;let r=-1;for(;++r<o;){const o=e(t[r]);if(n(o))return Kn(t,e,r,new Set([Jn(o)]));if(o)return!0}return!1},Nn=async function(t,e,o,r=20){let u=t.next();for(n(u)&&(u=await u);!u.done;){if(o.size>=r){const[n,t]=await K(o);if(o.delete(t),n)return!0}const c=e(u.value);if(n(c))o.add(Jn(c));else if(c)return!0;u=t.next(),n(u)&&(u=await u)}for(;o.size>0;){const[n,t]=await K(o);if(o.delete(t),n)return!0}return!1},Qn=function(t,e){return y(t)?Ln(t,e):null==t?e(t):"function"==typeof t[P]?function(t,e){for(const o of t){const r=e(o);if(n(r))return Nn(t,e,new Set([Jn(r)]));if(r)return!0}return!1}(t[P](),e):"function"==typeof t[k]?Nn(t[k](),e,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!0===e?e:n(e)?e.then(c((n=>function(t,e){return!!t||n(e)})(t),u,o)):!!e||t(o)})(e),!1):t.constructor==Object?Ln(hn(t),e):e(t)},Un=function(t,o){const r=t.length,c=[];let f=-1;for(;++f<r;){const e=o(t[f]);if(n(e))c.push(e);else if(!e)return!1}return 0==c.length||e(c).then(l(q,u,"every",Boolean))},Wn=(n,t,e)=>!!t&&n(e),Xn=function(t,o){return y(t)?Un(t,o):null==t?o(t):"function"==typeof t[P]?function(t,o){const r=[];for(const e of t){const t=o(e);if(n(t))r.push(t);else if(!t)return!1}return 0==r.length||e(r).then(l(q,u,"every",Boolean))}(t[P](),o):"function"==typeof t[k]?async function(t,e,o,r=20){let u=await t.next();for(;!u.done;){if(o.size>=r){const[n,t]=await K(o);if(o.delete(t),!n)return!1}const c=e(u.value);if(n(c))o.add(Jn(c));else if(!c)return!1;u=await t.next()}for(;o.size>0;){const[n,t]=await K(o);if(o.delete(t),!n)return!1}return!0}(t[k](),o,new Set):"function"==typeof t.reduce?t.reduce((t=>function(e,o){return!1!==e&&(n(e)?e.then(l(Wn,t,u,o)):!!e&&t(o))})(o),!0):t.constructor==Object?Un(hn(t),o):o(t)},Yn=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,E(Yn,t,e),f(!1)));if(!o)return!1}return!0},Zn=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),!r)return!1}return!0},nt=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,A(Zn,t,e,r),f(!1)));if(!o)return!1}return!0},tt=function(t,e){const o=t.length;for(;++e<o;){const o=t[e];if(n(o))return o.then(l(s,u,f(!0),E(tt,t,e)));if(o)return!0}return!1},et=async function(t,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...t)),n(r)&&(r=await r),r)return!0}return!1},ot=function(t,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...t)),n(o))return o.then(l(s,u,f(!0),A(et,t,e,r)));if(o)return!0}return!1},rt=n=>!n,ut=function(t,e){const o=e(...t);return n(o)?o.then(rt):!o},ct=function(n,t,e,o,r){return t==u?((n,t,e,o)=>function(...r){return n(r,t,e,o)})(n,e,o,r):e==u?((n,t,e,o)=>function(...r){return n(t,r,e,o)})(n,t,o,r):o==u?((n,t,e,o)=>function(...r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(...r){return n(t,e,o,r)})(n,t,e,o)},ft=function(t,o,r,u){const c=r(...t),f=u(...t);return n(c)||n(f)?e([c,f]).then(U(o)):o(c,f)},it=function(t,o,r,u){const c=r(...t);return n(c)||n(u)?e([c,u]).then(U(o)):o(c,u)},st=function(t,o,r,u){const c=u(...t);return n(r)||n(c)?e([r,c]).then(U(o)):o(r,c)},lt=o=>function(...r){const c=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof c;return i&&s?0==r.length?ct(ft,u,o,f,c):t(r)?e(r).then(g(ft,u,o,f,c)):ft(r,o,f,c):i?0==r.length?ct(it,u,o,f,c):t(r)?e(r).then(g(it,u,o,f,c)):it(r,o,f,c):s?0==r.length?ct(st,u,o,f,c):t(r)?e(r).then(g(st,u,o,f,c)):st(r,o,f,c):n(f)||n(c)?e([f,c]).then(U(o)):o(f,c)},ht=lt((function(n,t){return n==t})),at=lt(((n,t)=>n>t)),pt=lt(((n,t)=>n<t)),yt=lt(((n,t)=>n>=t)),dt=lt(((n,t)=>n<=t)),gt=/[.|[|\]]+/,wt=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],o="]"==n[t];return e&&o?n.slice(1,t).split(gt):e?n.slice(1).split(gt):o?n.slice(0,t).split(gt):n.split(gt)}),500),vt=n=>y(n)?n:"string"==typeof n?wt(n):[n],bt=function(n,t){const e=vt(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},jt=function(n,t,e){const o=null==n?void 0:bt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},xt=function(n,t,e){if(!$(n))return n;const o=vt(e),r=o.length,u=r-1,c={...n};let f=c,i=-1;for(;++i<r;){const n=o[i];if(i==u)f[n]=t;else{const t=f[n],e=y(t)?t.slice():{...t};f[n]=e,f=e}}return c},St=function(t,e,o){if("function"==typeof o){const r=o(t);return n(r)?r.then(l(xt,t,u,e)):xt(t,r,e)}return n(o)?o.then(l(xt,t,u,e)):xt(t,o,e)},Mt=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=bt(n,e);null!=u&&(o=xt(o,u,e))}return o},mt=function(n,t){if(null==n)return;const e=vt(t),o=e.length-1;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;const c=e[r];null!=u&&c in u&&delete u[c]},Ot=function(n){const t={};for(const e in n){const o=n[e];y(o)?t[e]=At(o):null!=o&&o.constructor==Object?t[e]=Ot(o):t[e]=o}return t},At=function(n){const t=n.length,e=[];let o=-1;for(;++o<t;){const t=n[o];y(t)?e[o]=At(t):null!=t&&t.constructor==Object?e[o]=Ot(t):e[o]=t}return e},zt=function(n,t){const e=t.length,o=y(r=n)?At(r):null==r?r:r.constructor==Object?Ot(r):r;var r;let u=-1;for(;++u<e;)mt(o,t[u]);return o},It=(n,...t)=>Q(n.length,n,t);It.arity=function(n,t,...e){return Q(n,t,e)};return{pipe:function(...n){const f=n.pop().reduce(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},compose:function(...n){const f=n.pop().reduceRight(o);return 0==n.length?f:t(n)?e(n).then(c(r,f,u)):f(...n)},tap:p,forEach:function(...t){const e=t.pop();if(0==t.length)return c(Hn,u,e);const o=t[0];return n(o)?o.then(c(Hn,u,e)):Hn(o,e)},switchCase:(...n)=>{const o=n.pop();return I(o)?D(o,-2):0==n.length?(r=z,f=u,i=-2,(c=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,f,i):f==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,c,i):((n,t,e)=>function(...o){return n(t,e,o)})(r,c,f)):t(n)?e(n).then(l(z,o,u,-2)):z(o,n,-2);var r,c,f,i},tryCatch:function(...n){if(n.length>2){const o=n.pop(),r=n.pop();return t(n)?e(n).then(l(O,r,o,u)):O(r,o,n)}const o=n[0],r=n[1];return function(...n){return O(o,r,n)}},all:x,assign:function(t,e){return null==e?c(M,u,t):n(t)?t.then(c(M,u,e)):M(t,e)},get:function(t,e,o){return n(t)?t.then(l(jt,u,e,o)):$(t)&&!y(t)?jt(t,e,o):l(jt,u,t,e)},set:function(t,e,o){return null==o?l(St,u,t,e):n(t)?t.then(l(St,u,e,o)):St(t,e,o)},pick:function(t,e){return null==e?c(Mt,u,t):n(t)?t.then(c(Mt,u,e)):Mt(t,e)},omit:function(t,e){return null==e?c(zt,u,t):n(t)?t.then(c(zt,u,e)):zt(t,e)},map:Z,filter:function(...n){const t=n.pop();return 0==n.length?c(ln,u,t):ln(n[0],t)},flatMap:(...t)=>{const e=t.pop();if(0==t.length)return c(Gn,u,e);const o=t[0];return n(o)?o.then(c(Gn,u,e)):Gn(t[0],e)},reduce:function(...t){return"function"==typeof t[0]?l(vn,u,t[0],t[1]):n(t[0])?t[0].then(l(vn,u,t[1],t[2])):vn(t[0],t[1],t[2])},transform:function(...t){return"function"==typeof t[0]?l(Pn,u,t[0],t[1]):n(t[0])?t[0].then(l(Pn,u,t[1],t[2])):Pn(t[0],t[1],t[2])},and:function(...n){const o=n.pop();return I(o)?Yn(o,-1):0==n.length?h(nt,u,o):t(n)?e(n).then(c(nt,u,o)):nt(n,o)},or:function(...n){const o=n.pop();return I(o)?tt(o,-1):0==n.length?h(ot,u,o):t(n)?e(n).then(c(ot,u,o)):ot(n,o)},not:function(...n){const o=n.pop();return"function"==typeof o?0==n.length?h(ut,u,o):t(n)?e(n).then(c(ut,u,o)):ut(n,o):!o},some:function(...t){const e=t.pop();if(0==t.length)return c(Qn,u,e);const o=t[0];return n(o)?o.then(c(Qn,u,e)):Qn(o,e)},every:function(...t){const e=t.pop();if(0==t.length)return c(Xn,u,e);const o=t[0];return n(o)?o.then(c(Xn,u,e)):Xn(o,e)},eq:ht,gt:at,lt:pt,gte:yt,lte:dt,thunkify:(n,...o)=>function(){return t(o)?e(o).then(c(r,n,u)):n(...o)},always:f,curry:It,__:u}}());
package/dist/rubico.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -125,12 +125,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
125
125
  return curry3ResolveArg2(baseFunc, arg0, arg1)
126
126
  }
127
127
 
128
- const tap = func => function tapping(...args) {
128
+ // argument resolver for curryArgs2
129
+ const curryArgs2ResolveArgs0 = (
130
+ baseFunc, arg1, arg2,
131
+ ) => function args0Resolver(...args) {
132
+ return baseFunc(args, arg1)
133
+ }
134
+
135
+ // argument resolver for curryArgs2
136
+ const curryArgs2ResolveArgs1 = (
137
+ baseFunc, arg0, arg2,
138
+ ) => function arg1Resolver(...args) {
139
+ return baseFunc(arg0, args)
140
+ }
141
+
142
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
143
+ if (arg0 == __) {
144
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
145
+ }
146
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
147
+ }
148
+
149
+ // _tap(args Array, func function) -> Promise|any
150
+ const _tap = function (args, func) {
129
151
  const result = args[0],
130
152
  call = func(...args)
131
153
  return isPromise(call) ? call.then(always(result)) : result
132
154
  }
133
155
 
156
+ const tap = function (...args) {
157
+ const func = args.pop()
158
+ if (args.length == 0) {
159
+ return curryArgs2(_tap, __, func)
160
+ }
161
+ return _tap(args, func)
162
+ }
163
+
134
164
  tap.if = (predicate, func) => function tappingIf(...args) {
135
165
  const predication = predicate(...args)
136
166
  if (isPromise(predication)) {
@@ -148,27 +178,6 @@ tap.if = (predicate, func) => function tappingIf(...args) {
148
178
 
149
179
  const isArray = Array.isArray
150
180
 
151
- // argument resolver for curryArgs2
152
- const curryArgs2ResolveArgs0 = (
153
- baseFunc, arg1, arg2,
154
- ) => function args0Resolver(...args) {
155
- return baseFunc(args, arg1)
156
- }
157
-
158
- // argument resolver for curryArgs2
159
- const curryArgs2ResolveArgs1 = (
160
- baseFunc, arg0, arg2,
161
- ) => function arg1Resolver(...args) {
162
- return baseFunc(arg0, args)
163
- }
164
-
165
- const curryArgs2 = function (baseFunc, arg0, arg1) {
166
- if (arg0 == __) {
167
- return curryArgs2ResolveArgs0(baseFunc, arg1)
168
- }
169
- return curryArgs2ResolveArgs1(baseFunc, arg0)
170
- }
171
-
172
181
  const functionArrayAll = function (funcs, args) {
173
182
  const funcsLength = funcs.length,
174
183
  result = Array(funcsLength)
@@ -1447,43 +1456,45 @@ const callConcat = function (object, values) {
1447
1456
  return object.concat(values)
1448
1457
  }
1449
1458
 
1450
- const identityTransform = function (collection, transducer, result) {
1459
+ const identityTransform = function (collection, transducer, accum) {
1451
1460
  const nil = genericReduce(collection, transducer(noop), null)
1452
- return isPromise(nil) ? nil.then(always(result)) : result
1461
+ return isPromise(nil) ? nil.then(always(accum)) : accum
1453
1462
  }
1454
1463
 
1455
- const genericTransform = function (collection, transducer, result) {
1456
- if (isArray(result)) {
1457
- return genericReduce(collection, transducer(arrayExtend), result)
1464
+ const genericTransform = function (collection, transducer, accum) {
1465
+ if (isArray(accum)) {
1466
+ return genericReduce(collection, transducer(arrayExtend), accum)
1458
1467
  }
1459
- if (isBinary(result)) {
1468
+ if (isBinary(accum)) {
1460
1469
  const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
1461
1470
  return isPromise(intermediateArray)
1462
- ? intermediateArray.then(curry2(binaryExtend, result, __))
1463
- : binaryExtend(result, intermediateArray)
1471
+ ? intermediateArray.then(curry2(binaryExtend, accum, __))
1472
+ : binaryExtend(accum, intermediateArray)
1464
1473
  }
1465
- if (result == null) {
1466
- return identityTransform(collection, transducer, result)
1474
+ if (accum == null) {
1475
+ return identityTransform(collection, transducer, accum)
1467
1476
  }
1468
1477
 
1469
- const resultConstructor = result.constructor
1470
- if (typeof result == 'string' || resultConstructor == String) {
1471
- // TODO: use array + join over adding
1472
- return genericReduce(collection, transducer(add), result)
1478
+ const constructor = accum.constructor
1479
+ if (typeof accum == 'string' || constructor == String) {
1480
+ const result = genericReduce(collection, transducer(arrayExtend), [accum])
1481
+ return isPromise(result)
1482
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
1483
+ : result.join('')
1473
1484
  }
1474
- if (typeof result.concat == 'function') {
1475
- return genericReduce(collection, transducer(callConcat), result)
1485
+ if (typeof accum.concat == 'function') {
1486
+ return genericReduce(collection, transducer(callConcat), accum)
1476
1487
  }
1477
- if (typeof result.write == 'function') {
1478
- return genericReduce(collection, transducer(streamExtend), result)
1488
+ if (typeof accum.write == 'function') {
1489
+ return genericReduce(collection, transducer(streamExtend), accum)
1479
1490
  }
1480
- if (resultConstructor == Set) {
1481
- return genericReduce(collection, transducer(setExtend), result)
1491
+ if (constructor == Set) {
1492
+ return genericReduce(collection, transducer(setExtend), accum)
1482
1493
  }
1483
- if (resultConstructor == Object) {
1484
- return genericReduce(collection, transducer(objectAssign), result)
1494
+ if (constructor == Object) {
1495
+ return genericReduce(collection, transducer(objectAssign), accum)
1485
1496
  }
1486
- return identityTransform(collection, transducer, result)
1497
+ return identityTransform(collection, transducer, accum)
1487
1498
  }
1488
1499
 
1489
1500
  // _transform(collection any, transducer function, initialValue function|any) -> Promise
package/dist/set.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/set.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/some.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/some.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/some.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/some.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/tap.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -50,12 +50,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
50
50
  return curry3ResolveArg2(baseFunc, arg0, arg1)
51
51
  }
52
52
 
53
- const tap = func => function tapping(...args) {
53
+ // argument resolver for curryArgs2
54
+ const curryArgs2ResolveArgs0 = (
55
+ baseFunc, arg1, arg2,
56
+ ) => function args0Resolver(...args) {
57
+ return baseFunc(args, arg1)
58
+ }
59
+
60
+ // argument resolver for curryArgs2
61
+ const curryArgs2ResolveArgs1 = (
62
+ baseFunc, arg0, arg2,
63
+ ) => function arg1Resolver(...args) {
64
+ return baseFunc(arg0, args)
65
+ }
66
+
67
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
68
+ if (arg0 == __) {
69
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
70
+ }
71
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
72
+ }
73
+
74
+ // _tap(args Array, func function) -> Promise|any
75
+ const _tap = function (args, func) {
54
76
  const result = args[0],
55
77
  call = func(...args)
56
78
  return isPromise(call) ? call.then(always(result)) : result
57
79
  }
58
80
 
81
+ const tap = function (...args) {
82
+ const func = args.pop()
83
+ if (args.length == 0) {
84
+ return curryArgs2(_tap, __, func)
85
+ }
86
+ return _tap(args, func)
87
+ }
88
+
59
89
  tap.if = (predicate, func) => function tappingIf(...args) {
60
90
  const predication = predicate(...args)
61
91
  if (isPromise(predication)) {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},_tap=function(r,n){const e=r[0],t=n(...r);return isPromise(t)?t.then(always(e)):e},tap=function(...r){const n=r.pop();return 0==r.length?(e=_tap,u=n,(t=__)==__?curryArgs2ResolveArgs0(e,u):curryArgs2ResolveArgs1(e,t)):_tap(r,n);var e,t,u};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((u=thunkConditional,o=__,s=thunkifyArgs(tap(n),e),c=always(e[0]),o==__?curry3ResolveArg0(u,s,c):s==__?curry3ResolveArg1(u,o,c):curry3ResolveArg2(u,o,s)));var u,o,s,c;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
package/dist/tap.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -56,12 +56,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
56
56
  return curry3ResolveArg2(baseFunc, arg0, arg1)
57
57
  }
58
58
 
59
- const tap = func => function tapping(...args) {
59
+ // argument resolver for curryArgs2
60
+ const curryArgs2ResolveArgs0 = (
61
+ baseFunc, arg1, arg2,
62
+ ) => function args0Resolver(...args) {
63
+ return baseFunc(args, arg1)
64
+ }
65
+
66
+ // argument resolver for curryArgs2
67
+ const curryArgs2ResolveArgs1 = (
68
+ baseFunc, arg0, arg2,
69
+ ) => function arg1Resolver(...args) {
70
+ return baseFunc(arg0, args)
71
+ }
72
+
73
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
74
+ if (arg0 == __) {
75
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
76
+ }
77
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
78
+ }
79
+
80
+ // _tap(args Array, func function) -> Promise|any
81
+ const _tap = function (args, func) {
60
82
  const result = args[0],
61
83
  call = func(...args)
62
84
  return isPromise(call) ? call.then(always(result)) : result
63
85
  }
64
86
 
87
+ const tap = function (...args) {
88
+ const func = args.pop()
89
+ if (args.length == 0) {
90
+ return curryArgs2(_tap, __, func)
91
+ }
92
+ return _tap(args, func)
93
+ }
94
+
65
95
  tap.if = (predicate, func) => function tappingIf(...args) {
66
96
  const predication = predicate(...args)
67
97
  if (isPromise(predication)) {
package/dist/tap.min.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.if=(u,f)=>function(...i){const c=u(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(r(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},r}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=function(e,o){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r},u=function(...n){const t=n.pop();return 0==n.length?(e=r,f=t,(u=o)==o?((n,t,e)=>function(...e){return n(e,t)})(e,f):((n,t,e)=>function(...e){return n(t,e)})(e,u)):r(n,t);var e,u,f};return u.if=(r,f)=>function(...i){const c=r(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(u(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},u}());
package/dist/tap.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -50,12 +50,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
50
50
  return curry3ResolveArg2(baseFunc, arg0, arg1)
51
51
  }
52
52
 
53
- const tap = func => function tapping(...args) {
53
+ // argument resolver for curryArgs2
54
+ const curryArgs2ResolveArgs0 = (
55
+ baseFunc, arg1, arg2,
56
+ ) => function args0Resolver(...args) {
57
+ return baseFunc(args, arg1)
58
+ }
59
+
60
+ // argument resolver for curryArgs2
61
+ const curryArgs2ResolveArgs1 = (
62
+ baseFunc, arg0, arg2,
63
+ ) => function arg1Resolver(...args) {
64
+ return baseFunc(arg0, args)
65
+ }
66
+
67
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
68
+ if (arg0 == __) {
69
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
70
+ }
71
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
72
+ }
73
+
74
+ // _tap(args Array, func function) -> Promise|any
75
+ const _tap = function (args, func) {
54
76
  const result = args[0],
55
77
  call = func(...args)
56
78
  return isPromise(call) ? call.then(always(result)) : result
57
79
  }
58
80
 
81
+ const tap = function (...args) {
82
+ const func = args.pop()
83
+ if (args.length == 0) {
84
+ return curryArgs2(_tap, __, func)
85
+ }
86
+ return _tap(args, func)
87
+ }
88
+
59
89
  tap.if = (predicate, func) => function tappingIf(...args) {
60
90
  const predication = predicate(...args)
61
91
  if (isPromise(predication)) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/thunkify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/thunkify.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.1.0
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.