rubico 2.2.2 → 2.3.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 (484) hide show
  1. package/README.md +1 -2
  2. package/Transducer.js +121 -43
  3. package/_internal/ComparisonOperator.d.ts +2 -0
  4. package/_internal/FilteringAsyncIterator.d.ts +29 -0
  5. package/_internal/FilteringIterator.d.ts +25 -0
  6. package/_internal/FlatMappingAsyncIterator.d.ts +34 -0
  7. package/_internal/FlatMappingIterator.d.ts +15 -0
  8. package/_internal/MappingAsyncIterator.d.ts +21 -0
  9. package/_internal/MappingIterator.d.ts +29 -0
  10. package/_internal/NextIteration.d.ts +14 -0
  11. package/_internal/SelfReferencingPromise.d.ts +10 -0
  12. package/_internal/add.d.ts +11 -0
  13. package/_internal/always.d.ts +13 -0
  14. package/_internal/areAllValuesNonfunctions.d.ts +10 -0
  15. package/_internal/areAnyValuesPromises.d.ts +10 -0
  16. package/_internal/arrayConditional.d.ts +20 -0
  17. package/_internal/arrayEvery.d.ts +10 -0
  18. package/_internal/arrayExtend.d.ts +13 -0
  19. package/_internal/arrayExtendMap.d.ts +20 -0
  20. package/_internal/arrayFilter.d.ts +16 -0
  21. package/_internal/arrayFilterByConditions.d.ts +20 -0
  22. package/_internal/arrayFlatMap.d.ts +20 -0
  23. package/_internal/arrayFlatten.d.ts +20 -0
  24. package/_internal/arrayForEach.d.ts +19 -0
  25. package/_internal/arrayJoin.d.ts +13 -0
  26. package/_internal/arrayMap.d.ts +16 -0
  27. package/_internal/arrayMapPool.d.ts +19 -0
  28. package/_internal/arrayMapSeries.d.ts +17 -0
  29. package/_internal/arrayPush.d.ts +11 -0
  30. package/_internal/arrayReduce.d.ts +14 -0
  31. package/_internal/arraySome.d.ts +13 -0
  32. package/_internal/asyncIteratorEvery.d.ts +16 -0
  33. package/_internal/asyncIteratorForEach.d.ts +17 -0
  34. package/_internal/asyncIteratorReduce.d.ts +14 -0
  35. package/_internal/asyncIteratorSome.d.ts +16 -0
  36. package/_internal/binaryExtend.d.ts +16 -0
  37. package/_internal/bufferAlloc.d.ts +8 -0
  38. package/_internal/callConcat.d.ts +8 -0
  39. package/_internal/callPropBinary.d.ts +18 -0
  40. package/_internal/callPropUnary.d.ts +17 -0
  41. package/_internal/catcherApply.d.ts +17 -0
  42. package/_internal/copyDeep.d.ts +13 -0
  43. package/_internal/curry2.d.ts +21 -0
  44. package/_internal/curry3.d.ts +22 -0
  45. package/_internal/curry4.d.ts +23 -0
  46. package/_internal/curry5.d.ts +24 -0
  47. package/_internal/curryArgs2.d.ts +21 -0
  48. package/_internal/curryArgs3.d.ts +22 -0
  49. package/_internal/curryArgs4.d.ts +23 -0
  50. package/_internal/curryArity.d.ts +20 -0
  51. package/_internal/deleteByPath.d.ts +13 -0
  52. package/_internal/equals.d.ts +10 -0
  53. package/_internal/funcApply.d.ts +16 -0
  54. package/_internal/funcConcat.d.ts +17 -0
  55. package/_internal/funcConcatSync.d.ts +17 -0
  56. package/_internal/functionArrayAll.d.ts +10 -0
  57. package/_internal/functionArrayAllSeries.d.ts +10 -0
  58. package/_internal/functionObjectAll.d.ts +13 -0
  59. package/_internal/genericReduce.d.ts +26 -0
  60. package/_internal/genericTransform.d.ts +18 -0
  61. package/_internal/getArg1.d.ts +8 -0
  62. package/_internal/getByPath.d.ts +13 -0
  63. package/_internal/globalThisHasBuffer.d.ts +11 -0
  64. package/_internal/greaterThan.d.ts +10 -0
  65. package/_internal/greaterThanOrEqual.d.ts +10 -0
  66. package/_internal/identity.d.ts +11 -0
  67. package/_internal/isArray.d.ts +11 -0
  68. package/_internal/isAsyncGeneratorFunction.d.ts +11 -0
  69. package/_internal/isBinary.d.ts +11 -0
  70. package/_internal/isGeneratorFunction.d.ts +11 -0
  71. package/_internal/isNodeReadStream.d.ts +11 -0
  72. package/_internal/isObject.d.ts +11 -0
  73. package/_internal/isPromise.d.ts +11 -0
  74. package/_internal/iteratorEvery.d.ts +12 -0
  75. package/_internal/iteratorForEach.d.ts +19 -0
  76. package/_internal/iteratorReduce.d.ts +18 -0
  77. package/_internal/iteratorSome.d.ts +13 -0
  78. package/_internal/leftResolverRightResolverCompare.d.ts +2 -0
  79. package/_internal/leftResolverRightValueCompare.d.ts +2 -0
  80. package/_internal/leftValueRightResolverCompare.d.ts +2 -0
  81. package/_internal/lessThan.d.ts +10 -0
  82. package/_internal/lessThanOrEqual.d.ts +10 -0
  83. package/_internal/mapFilter.d.ts +21 -0
  84. package/_internal/mapFrom.d.ts +13 -0
  85. package/_internal/mapMap.d.ts +16 -0
  86. package/_internal/mapMapEntries.d.ts +13 -0
  87. package/_internal/mapReduce.d.ts +14 -0
  88. package/_internal/mapSet.d.ts +10 -0
  89. package/_internal/memoizeCappedUnary.d.ts +18 -0
  90. package/_internal/nonfunctionsConditional.d.ts +10 -0
  91. package/_internal/noop.d.ts +11 -0
  92. package/_internal/objectAssign.d.ts +15 -0
  93. package/_internal/objectFilter.d.ts +13 -0
  94. package/_internal/objectFlatMap.d.ts +26 -0
  95. package/_internal/objectFlatten.d.ts +21 -0
  96. package/_internal/objectForEach.d.ts +17 -0
  97. package/_internal/objectKeys.d.ts +11 -0
  98. package/_internal/objectKeysLength.d.ts +10 -0
  99. package/_internal/objectMap.d.ts +17 -0
  100. package/_internal/objectMapEntries.d.ts +13 -0
  101. package/_internal/objectReduce.d.ts +14 -0
  102. package/_internal/objectSet.d.ts +14 -0
  103. package/_internal/objectSetIf.d.ts +15 -0
  104. package/_internal/objectToString.d.ts +11 -0
  105. package/_internal/objectValues.d.ts +11 -0
  106. package/_internal/placeholder.d.ts +2 -0
  107. package/_internal/promiseAll.d.ts +11 -0
  108. package/_internal/promiseObjectAll.d.ts +13 -0
  109. package/_internal/promiseRace.d.ts +11 -0
  110. package/_internal/propertyPathToArray.d.ts +10 -0
  111. package/_internal/reducerAllSync.d.ts +10 -0
  112. package/_internal/reducerAnySync.d.ts +10 -0
  113. package/_internal/reducerConcat.d.ts +15 -0
  114. package/_internal/reducerEvery.d.ts +12 -0
  115. package/_internal/reducerFilter.d.ts +19 -0
  116. package/_internal/reducerFlatMap.d.ts +20 -0
  117. package/_internal/reducerForEach.d.ts +18 -0
  118. package/_internal/reducerMap.d.ts +19 -0
  119. package/_internal/reducerSome.d.ts +16 -0
  120. package/_internal/reducerTryCatch.d.ts +15 -0
  121. package/_internal/sameValueZero.d.ts +13 -0
  122. package/_internal/setByPath.d.ts +14 -0
  123. package/_internal/setExtend.d.ts +12 -0
  124. package/_internal/setFilter.d.ts +16 -0
  125. package/_internal/setFlatMap.d.ts +21 -0
  126. package/_internal/setFlatten.d.ts +19 -0
  127. package/_internal/setMap.d.ts +17 -0
  128. package/_internal/sha256.d.ts +2 -0
  129. package/_internal/sleep.d.ts +10 -0
  130. package/_internal/spread2.d.ts +14 -0
  131. package/_internal/streamExtend.d.ts +17 -0
  132. package/_internal/stringFilter.d.ts +17 -0
  133. package/_internal/stringFlatMap.d.ts +22 -0
  134. package/_internal/stringMap.d.ts +19 -0
  135. package/_internal/symbolAsyncIterator.d.ts +11 -0
  136. package/_internal/symbolIterator.d.ts +11 -0
  137. package/_internal/tapSync.d.ts +16 -0
  138. package/_internal/thunkConditional.d.ts +17 -0
  139. package/_internal/thunkify1.d.ts +16 -0
  140. package/_internal/thunkify2.d.ts +17 -0
  141. package/_internal/thunkify3.d.ts +18 -0
  142. package/_internal/thunkify4.d.ts +19 -0
  143. package/_internal/thunkifyArgs.d.ts +13 -0
  144. package/dist/Transducer.es.js +1 -1
  145. package/dist/Transducer.es.min.js +1 -1
  146. package/dist/Transducer.js +1 -1
  147. package/dist/Transducer.min.js +1 -1
  148. package/dist/Transducer.mjs +1 -1
  149. package/dist/__.es.js +1 -1
  150. package/dist/__.es.min.js +1 -1
  151. package/dist/__.js +1 -1
  152. package/dist/__.min.js +1 -1
  153. package/dist/__.mjs +1 -1
  154. package/dist/all.es.js +1 -1
  155. package/dist/all.es.min.js +1 -1
  156. package/dist/all.js +1 -1
  157. package/dist/all.min.js +1 -1
  158. package/dist/all.mjs +1 -1
  159. package/dist/always.es.js +1 -1
  160. package/dist/always.es.min.js +1 -1
  161. package/dist/always.js +1 -1
  162. package/dist/always.min.js +1 -1
  163. package/dist/always.mjs +1 -1
  164. package/dist/and.es.js +1 -1
  165. package/dist/and.es.min.js +1 -1
  166. package/dist/and.js +1 -1
  167. package/dist/and.min.js +1 -1
  168. package/dist/and.mjs +1 -1
  169. package/dist/assign.es.js +1 -1
  170. package/dist/assign.es.min.js +1 -1
  171. package/dist/assign.js +1 -1
  172. package/dist/assign.min.js +1 -1
  173. package/dist/assign.mjs +1 -1
  174. package/dist/compose.es.js +1 -1
  175. package/dist/compose.es.min.js +1 -1
  176. package/dist/compose.js +1 -1
  177. package/dist/compose.min.js +1 -1
  178. package/dist/compose.mjs +1 -1
  179. package/dist/curry.es.js +1 -1
  180. package/dist/curry.es.min.js +1 -1
  181. package/dist/curry.js +1 -1
  182. package/dist/curry.min.js +1 -1
  183. package/dist/curry.mjs +1 -1
  184. package/dist/eq.es.js +1 -1
  185. package/dist/eq.es.min.js +1 -1
  186. package/dist/eq.js +1 -1
  187. package/dist/eq.min.js +1 -1
  188. package/dist/eq.mjs +1 -1
  189. package/dist/every.es.js +1 -1
  190. package/dist/every.es.min.js +1 -1
  191. package/dist/every.js +1 -1
  192. package/dist/every.min.js +1 -1
  193. package/dist/every.mjs +1 -1
  194. package/dist/filter.es.js +1 -1
  195. package/dist/filter.es.min.js +1 -1
  196. package/dist/filter.js +1 -1
  197. package/dist/filter.min.js +1 -1
  198. package/dist/filter.mjs +1 -1
  199. package/dist/flatMap.es.js +1 -1
  200. package/dist/flatMap.es.min.js +1 -1
  201. package/dist/flatMap.js +1 -1
  202. package/dist/flatMap.min.js +1 -1
  203. package/dist/flatMap.mjs +1 -1
  204. package/dist/forEach.es.js +1 -1
  205. package/dist/forEach.es.min.js +1 -1
  206. package/dist/forEach.js +1 -1
  207. package/dist/forEach.min.js +1 -1
  208. package/dist/forEach.mjs +1 -1
  209. package/dist/get.es.js +1 -1
  210. package/dist/get.es.min.js +1 -1
  211. package/dist/get.js +1 -1
  212. package/dist/get.min.js +1 -1
  213. package/dist/get.mjs +1 -1
  214. package/dist/gt.es.js +1 -1
  215. package/dist/gt.es.min.js +1 -1
  216. package/dist/gt.js +1 -1
  217. package/dist/gt.min.js +1 -1
  218. package/dist/gt.mjs +1 -1
  219. package/dist/gte.es.js +1 -1
  220. package/dist/gte.es.min.js +1 -1
  221. package/dist/gte.js +1 -1
  222. package/dist/gte.min.js +1 -1
  223. package/dist/gte.mjs +1 -1
  224. package/dist/lt.es.js +1 -1
  225. package/dist/lt.es.min.js +1 -1
  226. package/dist/lt.js +1 -1
  227. package/dist/lt.min.js +1 -1
  228. package/dist/lt.mjs +1 -1
  229. package/dist/lte.es.js +1 -1
  230. package/dist/lte.es.min.js +1 -1
  231. package/dist/lte.js +1 -1
  232. package/dist/lte.min.js +1 -1
  233. package/dist/lte.mjs +1 -1
  234. package/dist/map.es.js +1 -1
  235. package/dist/map.es.min.js +1 -1
  236. package/dist/map.js +1 -1
  237. package/dist/map.min.js +1 -1
  238. package/dist/map.mjs +1 -1
  239. package/dist/not.es.js +1 -1
  240. package/dist/not.es.min.js +1 -1
  241. package/dist/not.js +1 -1
  242. package/dist/not.min.js +1 -1
  243. package/dist/not.mjs +1 -1
  244. package/dist/omit.es.js +1 -1
  245. package/dist/omit.es.min.js +1 -1
  246. package/dist/omit.js +1 -1
  247. package/dist/omit.min.js +1 -1
  248. package/dist/omit.mjs +1 -1
  249. package/dist/or.es.js +1 -1
  250. package/dist/or.es.min.js +1 -1
  251. package/dist/or.js +1 -1
  252. package/dist/or.min.js +1 -1
  253. package/dist/or.mjs +1 -1
  254. package/dist/pick.es.js +1 -1
  255. package/dist/pick.es.min.js +1 -1
  256. package/dist/pick.js +1 -1
  257. package/dist/pick.min.js +1 -1
  258. package/dist/pick.mjs +1 -1
  259. package/dist/pipe.es.js +1 -1
  260. package/dist/pipe.es.min.js +1 -1
  261. package/dist/pipe.js +1 -1
  262. package/dist/pipe.min.js +1 -1
  263. package/dist/pipe.mjs +1 -1
  264. package/dist/reduce.es.js +1 -1
  265. package/dist/reduce.es.min.js +1 -1
  266. package/dist/reduce.js +1 -1
  267. package/dist/reduce.min.js +1 -1
  268. package/dist/reduce.mjs +1 -1
  269. package/dist/rubico.es.js +1 -1
  270. package/dist/rubico.es.min.js +1 -1
  271. package/dist/rubico.global.js +1 -1
  272. package/dist/rubico.global.min.js +1 -1
  273. package/dist/rubico.js +1 -1
  274. package/dist/rubico.min.js +1 -1
  275. package/dist/rubico.mjs +1 -1
  276. package/dist/set.es.js +1 -1
  277. package/dist/set.es.min.js +1 -1
  278. package/dist/set.js +1 -1
  279. package/dist/set.min.js +1 -1
  280. package/dist/set.mjs +1 -1
  281. package/dist/some.es.js +1 -1
  282. package/dist/some.es.min.js +1 -1
  283. package/dist/some.js +1 -1
  284. package/dist/some.min.js +1 -1
  285. package/dist/some.mjs +1 -1
  286. package/dist/switchCase.es.js +1 -1
  287. package/dist/switchCase.es.min.js +1 -1
  288. package/dist/switchCase.js +1 -1
  289. package/dist/switchCase.min.js +1 -1
  290. package/dist/switchCase.mjs +1 -1
  291. package/dist/tap.es.js +1 -1
  292. package/dist/tap.es.min.js +1 -1
  293. package/dist/tap.js +1 -1
  294. package/dist/tap.min.js +1 -1
  295. package/dist/tap.mjs +1 -1
  296. package/dist/thunkify.es.js +1 -1
  297. package/dist/thunkify.es.min.js +1 -1
  298. package/dist/thunkify.js +1 -1
  299. package/dist/thunkify.min.js +1 -1
  300. package/dist/thunkify.mjs +1 -1
  301. package/dist/transform.es.js +1 -1
  302. package/dist/transform.es.min.js +1 -1
  303. package/dist/transform.js +1 -1
  304. package/dist/transform.min.js +1 -1
  305. package/dist/transform.mjs +1 -1
  306. package/dist/tryCatch.es.js +1 -1
  307. package/dist/tryCatch.es.min.js +1 -1
  308. package/dist/tryCatch.js +1 -1
  309. package/dist/tryCatch.min.js +1 -1
  310. package/dist/tryCatch.mjs +1 -1
  311. package/dist/x/append.es.js +1 -1
  312. package/dist/x/append.es.min.js +1 -1
  313. package/dist/x/append.js +1 -1
  314. package/dist/x/append.min.js +1 -1
  315. package/dist/x/append.mjs +1 -1
  316. package/dist/x/callProp.es.js +1 -1
  317. package/dist/x/callProp.es.min.js +1 -1
  318. package/dist/x/callProp.js +1 -1
  319. package/dist/x/callProp.min.js +1 -1
  320. package/dist/x/callProp.mjs +1 -1
  321. package/dist/x/defaultsDeep.es.js +1 -1
  322. package/dist/x/defaultsDeep.es.min.js +1 -1
  323. package/dist/x/defaultsDeep.js +1 -1
  324. package/dist/x/defaultsDeep.min.js +1 -1
  325. package/dist/x/defaultsDeep.mjs +1 -1
  326. package/dist/x/differenceWith.es.js +1 -1
  327. package/dist/x/differenceWith.es.min.js +1 -1
  328. package/dist/x/differenceWith.js +1 -1
  329. package/dist/x/differenceWith.min.js +1 -1
  330. package/dist/x/differenceWith.mjs +1 -1
  331. package/dist/x/filterOut.es.js +1 -1
  332. package/dist/x/filterOut.es.min.js +1 -1
  333. package/dist/x/filterOut.js +1 -1
  334. package/dist/x/filterOut.min.js +1 -1
  335. package/dist/x/filterOut.mjs +1 -1
  336. package/dist/x/find.es.js +1 -1
  337. package/dist/x/find.es.min.js +1 -1
  338. package/dist/x/find.js +1 -1
  339. package/dist/x/find.min.js +1 -1
  340. package/dist/x/find.mjs +1 -1
  341. package/dist/x/findIndex.es.js +1 -1
  342. package/dist/x/findIndex.es.min.js +1 -1
  343. package/dist/x/findIndex.js +1 -1
  344. package/dist/x/findIndex.min.js +1 -1
  345. package/dist/x/findIndex.mjs +1 -1
  346. package/dist/x/first.es.js +1 -1
  347. package/dist/x/first.es.min.js +1 -1
  348. package/dist/x/first.js +1 -1
  349. package/dist/x/first.min.js +1 -1
  350. package/dist/x/first.mjs +1 -1
  351. package/dist/x/flatten.es.js +1 -1
  352. package/dist/x/flatten.es.min.js +1 -1
  353. package/dist/x/flatten.js +1 -1
  354. package/dist/x/flatten.min.js +1 -1
  355. package/dist/x/flatten.mjs +1 -1
  356. package/dist/x/groupBy.es.js +1 -1
  357. package/dist/x/groupBy.es.min.js +1 -1
  358. package/dist/x/groupBy.js +1 -1
  359. package/dist/x/groupBy.min.js +1 -1
  360. package/dist/x/groupBy.mjs +1 -1
  361. package/dist/x/has.es.js +1 -1
  362. package/dist/x/has.es.min.js +1 -1
  363. package/dist/x/has.js +1 -1
  364. package/dist/x/has.min.js +1 -1
  365. package/dist/x/has.mjs +1 -1
  366. package/dist/x/identity.es.js +1 -1
  367. package/dist/x/identity.es.min.js +1 -1
  368. package/dist/x/identity.js +1 -1
  369. package/dist/x/identity.min.js +1 -1
  370. package/dist/x/identity.mjs +1 -1
  371. package/dist/x/includes.es.js +1 -1
  372. package/dist/x/includes.es.min.js +1 -1
  373. package/dist/x/includes.js +1 -1
  374. package/dist/x/includes.min.js +1 -1
  375. package/dist/x/includes.mjs +1 -1
  376. package/dist/x/isDeepEqual.es.js +1 -1
  377. package/dist/x/isDeepEqual.es.min.js +1 -1
  378. package/dist/x/isDeepEqual.js +1 -1
  379. package/dist/x/isDeepEqual.min.js +1 -1
  380. package/dist/x/isDeepEqual.mjs +1 -1
  381. package/dist/x/isEmpty.es.js +1 -1
  382. package/dist/x/isEmpty.es.min.js +1 -1
  383. package/dist/x/isEmpty.js +1 -1
  384. package/dist/x/isEmpty.min.js +1 -1
  385. package/dist/x/isEmpty.mjs +1 -1
  386. package/dist/x/isEqual.es.js +1 -1
  387. package/dist/x/isEqual.es.min.js +1 -1
  388. package/dist/x/isEqual.js +1 -1
  389. package/dist/x/isEqual.min.js +1 -1
  390. package/dist/x/isEqual.mjs +1 -1
  391. package/dist/x/isFunction.es.js +1 -1
  392. package/dist/x/isFunction.es.min.js +1 -1
  393. package/dist/x/isFunction.js +1 -1
  394. package/dist/x/isFunction.min.js +1 -1
  395. package/dist/x/isFunction.mjs +1 -1
  396. package/dist/x/isIn.es.js +1 -1
  397. package/dist/x/isIn.es.min.js +1 -1
  398. package/dist/x/isIn.js +1 -1
  399. package/dist/x/isIn.min.js +1 -1
  400. package/dist/x/isIn.mjs +1 -1
  401. package/dist/x/isObject.es.js +1 -1
  402. package/dist/x/isObject.es.min.js +1 -1
  403. package/dist/x/isObject.js +1 -1
  404. package/dist/x/isObject.min.js +1 -1
  405. package/dist/x/isObject.mjs +1 -1
  406. package/dist/x/isString.es.js +1 -1
  407. package/dist/x/isString.es.min.js +1 -1
  408. package/dist/x/isString.js +1 -1
  409. package/dist/x/isString.min.js +1 -1
  410. package/dist/x/isString.mjs +1 -1
  411. package/dist/x/keys.es.js +1 -1
  412. package/dist/x/keys.es.min.js +1 -1
  413. package/dist/x/keys.js +1 -1
  414. package/dist/x/keys.min.js +1 -1
  415. package/dist/x/keys.mjs +1 -1
  416. package/dist/x/last.es.js +1 -1
  417. package/dist/x/last.es.min.js +1 -1
  418. package/dist/x/last.js +1 -1
  419. package/dist/x/last.min.js +1 -1
  420. package/dist/x/last.mjs +1 -1
  421. package/dist/x/maxBy.es.js +1 -1
  422. package/dist/x/maxBy.es.min.js +1 -1
  423. package/dist/x/maxBy.js +1 -1
  424. package/dist/x/maxBy.min.js +1 -1
  425. package/dist/x/maxBy.mjs +1 -1
  426. package/dist/x/noop.es.js +1 -1
  427. package/dist/x/noop.es.min.js +1 -1
  428. package/dist/x/noop.js +1 -1
  429. package/dist/x/noop.min.js +1 -1
  430. package/dist/x/noop.mjs +1 -1
  431. package/dist/x/pluck.es.js +1 -1
  432. package/dist/x/pluck.es.min.js +1 -1
  433. package/dist/x/pluck.js +1 -1
  434. package/dist/x/pluck.min.js +1 -1
  435. package/dist/x/pluck.mjs +1 -1
  436. package/dist/x/prepend.es.js +1 -1
  437. package/dist/x/prepend.es.min.js +1 -1
  438. package/dist/x/prepend.js +1 -1
  439. package/dist/x/prepend.min.js +1 -1
  440. package/dist/x/prepend.mjs +1 -1
  441. package/dist/x/size.es.js +1 -1
  442. package/dist/x/size.es.min.js +1 -1
  443. package/dist/x/size.js +1 -1
  444. package/dist/x/size.min.js +1 -1
  445. package/dist/x/size.mjs +1 -1
  446. package/dist/x/trace.es.js +1 -1
  447. package/dist/x/trace.es.min.js +1 -1
  448. package/dist/x/trace.js +1 -1
  449. package/dist/x/trace.min.js +1 -1
  450. package/dist/x/trace.mjs +1 -1
  451. package/dist/x/unionWith.es.js +1 -1
  452. package/dist/x/unionWith.es.min.js +1 -1
  453. package/dist/x/unionWith.js +1 -1
  454. package/dist/x/unionWith.min.js +1 -1
  455. package/dist/x/unionWith.mjs +1 -1
  456. package/dist/x/uniq.es.js +1 -1
  457. package/dist/x/uniq.es.min.js +1 -1
  458. package/dist/x/uniq.js +1 -1
  459. package/dist/x/uniq.min.js +1 -1
  460. package/dist/x/uniq.mjs +1 -1
  461. package/dist/x/unless.es.js +1 -1
  462. package/dist/x/unless.es.min.js +1 -1
  463. package/dist/x/unless.js +1 -1
  464. package/dist/x/unless.min.js +1 -1
  465. package/dist/x/unless.mjs +1 -1
  466. package/dist/x/values.es.js +1 -1
  467. package/dist/x/values.es.min.js +1 -1
  468. package/dist/x/values.js +1 -1
  469. package/dist/x/values.min.js +1 -1
  470. package/dist/x/values.mjs +1 -1
  471. package/dist/x/when.es.js +1 -1
  472. package/dist/x/when.es.min.js +1 -1
  473. package/dist/x/when.js +1 -1
  474. package/dist/x/when.min.js +1 -1
  475. package/dist/x/when.mjs +1 -1
  476. package/es.js +1 -1
  477. package/filter.js +2 -2
  478. package/flatMap.js +1 -0
  479. package/index.js +1 -1
  480. package/map.js +8 -22
  481. package/package.json +5 -3
  482. package/reduce.js +4 -2
  483. package/transform.js +18 -7
  484. package/x/isDeepEqual.d.ts +42 -0
package/README.md CHANGED
@@ -6,7 +6,6 @@
6
6
  [![codecov](https://codecov.io/gh/a-synchronous/rubico/branch/master/graph/badge.svg)](https://codecov.io/gh/a-synchronous/rubico)
7
7
  [![npm version](https://img.shields.io/npm/v/rubico.svg?style=flat)](https://www.npmjs.com/package/rubico)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
9
- [![Gitter](https://badges.gitter.im/Join_Chat.svg)](https://gitter.im/a-synchronous/rubico)
10
9
 
11
10
  ### [a]synchronous functional programming
12
11
 
@@ -94,7 +93,7 @@ const {
94
93
  // compose functions
95
94
  pipe, compose,
96
95
 
97
- // compose effects
96
+ // handle effects
98
97
  tap, forEach,
99
98
 
100
99
  // control flow
package/Transducer.js CHANGED
@@ -21,22 +21,20 @@ const Transducer = {}
21
21
  *
22
22
  * @synopsis
23
23
  * ```coffeescript [specscript]
24
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
24
+ * type Reducer = (
25
+ * accumulator any,
26
+ * value any,
27
+ * indexOrKey? number|string,
28
+ * collection? Foldable,
29
+ * )=>(nextAccumulator Promise|any)
30
+ *
25
31
  * type Transducer = Reducer=>Reducer
26
32
  *
27
33
  * Transducer.map(mapperFunc function) -> mappingTransducer Transducer
28
34
  * ```
29
35
  *
30
36
  * @description
31
- * Creates a mapping transducer with a provided reducer. A reducer is a variadic function that depicts a relationship between an accumulator and any number of arguments. A transducer is a function that accepts a reducer as an argument and returns another reducer.
32
- *
33
- * ```coffeescript [specscript]
34
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
35
- *
36
- * type Transducer = Reducer=>Reducer
37
- * ```
38
- *
39
- * The transducer signature enables chaining functionality for reducers. `map` is core to this mechanism, and provides a way via transducers to transform the items of reducers.
37
+ * Creates a mapping transducer. Items in the final reducing operation are transformed by the mapper function. It is possible to use an asynchronous mapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
40
38
  *
41
39
  * ```javascript [playground]
42
40
  * const square = number => number ** 2
@@ -51,25 +49,21 @@ const Transducer = {}
51
49
  * // is a reducer with chained functionality square and concat
52
50
  *
53
51
  * console.log(
54
- * [1, 2, 3, 4, 5].reduce(squareConcatReducer, []),
52
+ * reduce([1, 2, 3, 4, 5], squareConcatReducer, [])
55
53
  * ) // [1, 4, 9, 16, 25]
56
54
  *
55
+ * // the same squareConcatReducer is consumable with vanilla JavaScript
57
56
  * console.log(
58
- * [1, 2, 3, 4, 5].reduce(squareConcatReducer, ''),
59
- * ) // '1491625'
60
- * ```
61
- *
62
- * Create reducers with chained functionality by using the `Transducer.map` eager API.
63
- *
64
- * ```javascript [playground]
65
- * const square = number => number ** 2
66
- *
67
- * const concat = (array, item) => array.concat(item)
57
+ * [1, 2, 3, 4, 5].reduce(squareConcatReducer, [])
58
+ * ) // [1, 4, 9, 16, 25]
68
59
  *
69
- * const squareConcatReducer = Transducer.map(concat, square)
70
- * // now mapSquare is passed the reducer function concat; squareConcatReducer
71
- * // is a reducer with chained functionality square and concat
60
+ * // concat is implicit when transforming into arrays
61
+ * console.log(
62
+ * transform([1, 2, 3, 4, 5], Transducer.map(square), [])
63
+ * ) // [1, 4, 9, 16, 25]
72
64
  * ```
65
+ *
66
+ * Read more on transducers [here](/blog/transducers-crash-course-rubico-v2).
73
67
  */
74
68
  Transducer.map = function transducerMap(mapper) {
75
69
  return curry2(reducerMap, __, mapper)
@@ -80,14 +74,20 @@ Transducer.map = function transducerMap(mapper) {
80
74
  *
81
75
  * @synopsis
82
76
  * ```coffeescript [specscript]
83
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
77
+ * type Reducer = (
78
+ * accumulator any,
79
+ * value any,
80
+ * indexOrKey? number|string,
81
+ * collection? Foldable,
82
+ * )=>(nextAccumulator Promise|any)
83
+ *
84
84
  * type Transducer = Reducer=>Reducer
85
85
  *
86
86
  * Transducer.filter(predicate function) -> filteringTransducer Transducer
87
87
  * ```
88
88
  *
89
89
  * @description
90
- * A reducer in filterable position creates a filtering reducer - one that skips items of the reducer's reducing operation if they test falsy by the predicate. It is possible to use an asynchronous predicate when filtering a reducer, however the implementation of `reduce` must support asynchronous operations. This library provides such an implementation as `reduce`.
90
+ * Creates a filtering transducer. A filtering reducer skips items of reducing operation if they test falsy by the predicate. It is possible to use an asynchronous predicate, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
91
91
  *
92
92
  * ```javascript [playground]
93
93
  * const isOdd = number => number % 2 == 1
@@ -110,33 +110,32 @@ Transducer.filter = function transducerFilter(predicate) {
110
110
  *
111
111
  * @synopsis
112
112
  * ```coffeescript [specscript]
113
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
113
+ * type Reducer = (
114
+ * accumulator any,
115
+ * value any,
116
+ * indexOrKey? number|string,
117
+ * collection? Foldable,
118
+ * )=>(nextAccumulator Promise|any)
119
+ *
114
120
  * type Transducer = Reducer=>Reducer
115
121
  *
116
122
  * Transducer.flatMap(flatMapper) -> flatMappingTransducer Transducer
117
123
  * ```
118
124
  *
119
125
  * @description
120
- * Additionally, `flatMap` is a powerful option when working with transducers. A flatMapping transducer applies a flatMapper to each item of a reducer's reducing operation, calling each item of each execution with the reducer.
126
+ * Creates a flatMapping transducer. A flatMapping transducer applies the flatMapping function to each item of the reducing operation, concatenating the results of the flatMapper execution into the final result. It is possible to use an asynchronous flatMapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
121
127
  *
122
128
  * ```javascript [playground]
123
- * const isOdd = number => number % 2 == 1
124
- *
125
129
  * const powers = number => [number, number ** 2, number ** 3]
126
130
  *
127
- * const oddPowers = pipe([
128
- * filter(isOdd),
129
- * flatMap(powers),
130
- * ])
131
- *
132
- * const arrayConcat = (array, value) => array.concat(value)
131
+ * const numbers = [1, 2, 3, 4, 5]
133
132
  *
134
133
  * console.log(
135
- * reduce(oddPowers(arrayConcat), [])([1, 2, 3, 4, 5]),
136
- * ) // [1, 1, 1, 3, 9, 27, 5, 25, 125]
134
+ * transform(numbers, Transducer.flatMap(powers), [])
135
+ * ) // [1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125]
137
136
  * ```
138
137
  *
139
- * In the case above, each item of the array of numbers returned by `powers` is called with the reducer `arrayConcat` for flattening into the final result.
138
+ * Read more on transducers [here](/blog/transducers-crash-course-rubico-v2).
140
139
  */
141
140
  Transducer.flatMap = function transducerFlatMap(flatMapper) {
142
141
  return curry2(reducerFlatMap, __, flatMapper)
@@ -147,11 +146,28 @@ Transducer.flatMap = function transducerFlatMap(flatMapper) {
147
146
  *
148
147
  * @synopsis
149
148
  * ```coffeescript [specscript]
150
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
149
+ * type Reducer = (
150
+ * accumulator any,
151
+ * value any,
152
+ * indexOrKey? number|string,
153
+ * collection? Foldable,
154
+ * )=>(nextAccumulator Promise|any)
155
+ *
151
156
  * type Transducer = Reducer=>Reducer
152
157
  *
153
158
  * Transducer.forEach(func function) -> forEachTransducer Transducer
154
159
  * ```
160
+ *
161
+ * @description
162
+ * Creates an effectful pasthrough transducer. The effectful passthrough transducer applies the effectful function to each item of the reducing operation, leaving the reducing operation unchanged. It is possible to use an asynchronous effectful function, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
163
+ *
164
+ * ```javascript [playground]
165
+ * const numbers = [1, 2, 3, 4, 5]
166
+ * transform(numbers, compose([
167
+ * Transducer.map(number => number ** 2),
168
+ * Transducer.forEach(console.log), // 1 4 9 16 25
169
+ * ]), null)
170
+ * ```
155
171
  */
156
172
  Transducer.forEach = function transducerForEach(func) {
157
173
  return curry2(reducerForEach, __, func)
@@ -162,11 +178,33 @@ Transducer.forEach = function transducerForEach(func) {
162
178
  *
163
179
  * @synopsis
164
180
  * ```coffeescript [specscript]
165
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
181
+ * type Reducer = (
182
+ * accumulator any,
183
+ * value any,
184
+ * indexOrKey? number|string,
185
+ * collection? Foldable,
186
+ * )=>(nextAccumulator Promise|any)
187
+ *
166
188
  * type Transducer = Reducer=>Reducer
167
189
  *
168
190
  * Transducer.passthrough(func function) -> passthroughTransducer Transducer
169
191
  * ```
192
+ *
193
+ * @description
194
+ * Creates a pasthrough transducer. The passthrough transducer passes each item of the reducing operation through, leaving the reducing operation unchanged.
195
+ *
196
+ * ```javascript [playground]
197
+ * const createAsyncNumbers = async function* () {
198
+ * let number = 0
199
+ * while (number < 10) {
200
+ * yield number
201
+ * number += 1
202
+ * }
203
+ * }
204
+ *
205
+ * transform(createAsyncNumbers(), Transducer.passthrough, [])
206
+ * .then(console.log) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
207
+ * ```
170
208
  */
171
209
  Transducer.passthrough = function transducerPassthrough(reducer) {
172
210
  return reducer
@@ -177,11 +215,51 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
177
215
  *
178
216
  * @synopsis
179
217
  * ```coffeescript [specscript]
180
- * type Reducer = (accumulator any, item any)=>(nextAccumulator Promise|any)
218
+ * type Reducer = (
219
+ * accumulator any,
220
+ * item any,
221
+ * indexOrKey? number|string,
222
+ * collection? Foldable,
223
+ * )=>(nextAccumulator Promise|any)
224
+ *
181
225
  * type Transducer = Reducer=>Reducer
182
226
  *
183
- * Transducer.tryCatch(func function) -> tryCatchTransducer Transducer
227
+ * Transducer.tryCatch(
228
+ * transducerTryer Transducer,
229
+ * catcher (error Error, item any)=>Promise|any,
230
+ * ) -> tryCatchTransducer Transducer
184
231
  * ```
232
+ *
233
+ * @description
234
+ * Creates an error handling transducer. The error handling transducer wraps a transducer and catches any errors thrown by the transducer with the catcher function. The catcher function is provided the error as well as the original item (before any processing by the transducer) for which the error was thrown. It is possible for either the transducer or the catcher to be asynchronous, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
235
+ *
236
+ * ```javascript [playground]
237
+ * const db = new Map()
238
+ * db.set('a', { id: 'a', name: 'George' })
239
+ * db.set('b', { id: 'b', name: 'Jane' })
240
+ * db.set('c', { id: 'c', name: 'Jill' })
241
+ * db.set('e', { id: 'e', name: 'Jim' })
242
+ *
243
+ * const userIds = ['a', 'b', 'c', 'd', 'e']
244
+ *
245
+ * transform(userIds, Transducer.tryCatch(compose([
246
+ * Transducer.map(async userId => {
247
+ * if (db.has(userId)) {
248
+ * return db.get(userId)
249
+ * }
250
+ * throw new Error(`user ${userId} not found`)
251
+ * }),
252
+ *
253
+ * Transducer.forEach(user => {
254
+ * console.log('Found', user.name)
255
+ * })
256
+ * ]), (error, userId) => {
257
+ * console.error(error)
258
+ * console.log('userId in catcher:', userId)
259
+ * // original userId for which the error was thrown is provided
260
+ * }), null)
261
+ * ```
262
+
185
263
  */
186
264
  Transducer.tryCatch = function transducerTryCatch(transducerTryer, catcher) {
187
265
  return curry3(reducerTryCatch, __, transducerTryer, catcher)
@@ -0,0 +1,2 @@
1
+ export = ComparisonOperator;
2
+ declare function ComparisonOperator(comparator: any): (...args: any[]) => any;
@@ -0,0 +1,29 @@
1
+ export = FilteringAsyncIterator;
2
+ /**
3
+ * @name FilteringAsyncIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * const filteringAsyncIterator = new FilteringAsyncIterator(
8
+ * asyncIterator AsyncIterator<T>,
9
+ * predicate T=>boolean,
10
+ * ) -> FilteringAsyncIterator<T>
11
+ *
12
+ * filteringAsyncIterator.next() -> { value: Promise, done: boolean }
13
+ * ```
14
+ */
15
+ declare function FilteringAsyncIterator(asyncIterator: any, predicate: any): {
16
+ [x: number]: () => {
17
+ [x: number]: any;
18
+ isAsyncIteratorDone: boolean;
19
+ next(): Promise<{
20
+ value: any;
21
+ done: boolean;
22
+ }>;
23
+ };
24
+ isAsyncIteratorDone: boolean;
25
+ next(): Promise<{
26
+ value: any;
27
+ done: boolean;
28
+ }>;
29
+ };
@@ -0,0 +1,25 @@
1
+ export = FilteringIterator;
2
+ /**
3
+ * @name FilteringIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * FilteringIterator<
8
+ * T any,
9
+ * iterator Iterator<T>,
10
+ * predicate T=>boolean, # no async
11
+ * >(iterator, predicate) -> filteringIterator Iterator<T>
12
+ *
13
+ * filteringIterator.next() -> { value: T, done: boolean }
14
+ * ```
15
+ *
16
+ * @description
17
+ * Creates a filtering iterator, i.e. an iterator that filteres a source iterator by predicate.
18
+ */
19
+ declare function FilteringIterator(iterator: any, predicate: any): {
20
+ [x: number]: () => {
21
+ [x: number]: any;
22
+ next(): any;
23
+ };
24
+ next(): any;
25
+ };
@@ -0,0 +1,34 @@
1
+ export = FlatMappingAsyncIterator;
2
+ /**
3
+ * @name FlatMappingAsyncIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * new FlatMappingAsyncIterator(
8
+ * asyncIterator AsyncIterator, flatMapper function,
9
+ * ) -> FlatMappingAsyncIterator AsyncIterator
10
+ * ```
11
+ *
12
+ * @execution concurrent
13
+ *
14
+ * @muxing
15
+ */
16
+ declare function FlatMappingAsyncIterator(asyncIterator: any, flatMapper: any): {
17
+ [x: number]: () => any;
18
+ isAsyncIteratorDone: boolean;
19
+ toString(): string;
20
+ /**
21
+ * @name FlatMappingAsyncIterator.prototype.next
22
+ *
23
+ * @synopsis
24
+ * ```coffeescript [specscript]
25
+ * new FlatMappingAsyncIterator(
26
+ * asyncIterator AsyncIterator, flatMapper function,
27
+ * ).next() -> Promise<{ value, done }>
28
+ * ```
29
+ */
30
+ next(): Promise<{
31
+ value: any;
32
+ done: boolean;
33
+ }>;
34
+ };
@@ -0,0 +1,15 @@
1
+ export = FlatMappingIterator;
2
+ /**
3
+ * @name FlatMappingIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * FlatMappingIterator(
8
+ * iterator Iterator, flatMapper function,
9
+ * ) -> FlatMappingIterator { next, SymbolIterator }
10
+ * ```
11
+ */
12
+ declare function FlatMappingIterator(iterator: any, flatMapper: any): {
13
+ [x: number]: () => any;
14
+ next(): any;
15
+ };
@@ -0,0 +1,21 @@
1
+ export = MappingAsyncIterator;
2
+ /**
3
+ * @name MappingAsyncIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * mappingAsyncIterator = new MappingAsyncIterator(
8
+ * asyncIter AsyncIterator<T>,
9
+ * mapper T=>Promise|any,
10
+ * ) -> mappingAsyncIterator AsyncIterator
11
+ *
12
+ * mappingAsyncIterator.next() -> Promise<{ value: any, done: boolean }>
13
+ * ```
14
+ */
15
+ declare function MappingAsyncIterator(asyncIterator: any, mapper: any): {
16
+ [x: number]: () => {
17
+ [x: number]: any;
18
+ next(): Promise<any>;
19
+ };
20
+ next(): Promise<any>;
21
+ };
@@ -0,0 +1,29 @@
1
+ export = MappingIterator;
2
+ /**
3
+ * @name MappingIterator
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * MappingIterator<
8
+ * T any,
9
+ * iterator Iterator<T>,
10
+ * mapper T=>any,
11
+ * >(iterator, mapper) -> mappingIterator Object
12
+ *
13
+ * mappingIterator.next() -> nextIteration { value: any, done: boolean }
14
+ * ```
15
+ *
16
+ * @description
17
+ * Creates a mapping iterator, i.e. an iterator that applies a mapper to each item of a source iterator.
18
+ *
19
+ * Note: consuming the mapping iterator also consumes the source iterator.
20
+ */
21
+ declare function MappingIterator(iterator: any, mapper: any): {
22
+ [x: number]: () => {
23
+ [x: number]: any;
24
+ toString(): string;
25
+ next(): any;
26
+ };
27
+ toString(): string;
28
+ next(): any;
29
+ };
@@ -0,0 +1,14 @@
1
+ export = NextIteration;
2
+ /**
3
+ * @name NextIteration
4
+ *
5
+ * @synopsis
6
+ * NextIteration(value any) -> nextIteration { value, done: false }
7
+ *
8
+ * @description
9
+ * Create an object to send for the next iteration
10
+ */
11
+ declare function NextIteration(value: any): {
12
+ value: any;
13
+ done: boolean;
14
+ };
@@ -0,0 +1,10 @@
1
+ export = SelfReferencingPromise;
2
+ /**
3
+ * @name SelfReferencingPromise
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * SelfReferencingPromise(basePromise Promise<T>) -> Promise<[T, basePromise]>
8
+ * ```
9
+ */
10
+ declare function SelfReferencingPromise(basePromise: any): any;
@@ -0,0 +1,11 @@
1
+ export = add;
2
+ /**
3
+ * @name add
4
+ *
5
+ * @synopsis
6
+ * add (a any, b any) -> a + b
7
+ *
8
+ * @description
9
+ * `+` two things
10
+ */
11
+ declare function add(a: any, b: any): any;
@@ -0,0 +1,13 @@
1
+ export = always;
2
+ /**
3
+ * @name always
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * always(value any) -> getter ()=>value
8
+ * ```
9
+ *
10
+ * @description
11
+ * Create a function that always returns a value.
12
+ */
13
+ declare function always(value: any): () => any;
@@ -0,0 +1,10 @@
1
+ export = areAllValuesNonfunctions;
2
+ /**
3
+ * @name areAllValuesNonfunctions
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * areAllValuesNonfunctions(values Array<function|value>) -> boolean
8
+ * ```
9
+ */
10
+ declare function areAllValuesNonfunctions(values: any): boolean;
@@ -0,0 +1,10 @@
1
+ export = areAnyValuesPromises;
2
+ /**
3
+ * @name areAnyValuesPromises
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * areAnyValuesPromises(values Array) -> boolean
8
+ * ```
9
+ */
10
+ declare function areAnyValuesPromises(values: any): boolean;
@@ -0,0 +1,20 @@
1
+ export = arrayConditional;
2
+ /**
3
+ * @name arrayConditional
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * arrayConditional(
8
+ * array Array<function|value>,
9
+ * args Array,
10
+ * funcsIndex number,
11
+ * ) -> Promise|any
12
+ * ```
13
+ *
14
+ * @description
15
+ * Conditional operator `a ? b : c ? d : e ? ...` for functions.
16
+ *
17
+ * @TODO isPromise conditional await
18
+ * @TODO benchmark vs regular promise handling
19
+ */
20
+ declare function arrayConditional(array: any, args: any, funcsIndex: any): any;
@@ -0,0 +1,10 @@
1
+ export = arrayEvery;
2
+ /**
3
+ * @name arrayEvery
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * arrayEvery(array Array, predicate ...any=>boolean) -> boolean
8
+ * ```
9
+ */
10
+ declare function arrayEvery(array: any, predicate: any): any;
@@ -0,0 +1,13 @@
1
+ export = arrayExtend;
2
+ /**
3
+ * @name arrayExtend
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * arrayExtend(array Array, values Array) -> array
8
+ * ```
9
+ *
10
+ * @description
11
+ * Extend an array with values.
12
+ */
13
+ declare function arrayExtend(array: any, values: any): any;
@@ -0,0 +1,20 @@
1
+ export = arrayExtendMap;
2
+ /**
3
+ * @name arrayExtendMap
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * any -> value; any -> mapped
8
+ *
9
+ * arrayExtendMap(
10
+ * array Array<mapped>,
11
+ * values Array<value>,
12
+ * valuesIndex number,
13
+ * valuesMapper value=>mapped,
14
+ * ) -> array
15
+ * ```
16
+ *
17
+ * @description
18
+ * `arrayExtend` while mapping
19
+ */
20
+ declare function arrayExtendMap(array: any, values: any, valuesMapper: any, valuesIndex: any): any;
@@ -0,0 +1,16 @@
1
+ export = arrayFilter;
2
+ /**
3
+ * @name arrayFilter
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * arrayFilter<T>(
8
+ * array Array<T>,
9
+ * predicate T=>Promise|boolean,
10
+ * ) -> result Promise|Array<T>
11
+ * ```
12
+ *
13
+ * @description
14
+ * Filter an array concurrently by predicate. `predicate` may be asynchronous.
15
+ */
16
+ declare function arrayFilter(array: any, predicate: any): any;
@@ -0,0 +1,20 @@
1
+ export = arrayFilterByConditions;
2
+ /**
3
+ * @name arrayFilterByConditions
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * arrayFilterByConditions(
8
+ * array Array,
9
+ * result Array,
10
+ * index number,
11
+ * conditions Array<boolean>,
12
+ * ) -> result
13
+ * ```
14
+ *
15
+ * @description
16
+ * Filter an array by a boolean array of conditions
17
+ *
18
+ * @TODO switch positions of index and conditions
19
+ */
20
+ declare function arrayFilterByConditions(array: any, result: any, index: any, conditions: any): any;
@@ -0,0 +1,20 @@
1
+ export = arrayFlatMap;
2
+ /**
3
+ * @name arrayFlatMap
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * Stream<T> = { read: ()=>T, write: T=>() }
8
+ * Monad<T> = Array<T>|String<T>|Set<T>
9
+ * |TypedArray<T>|Stream<T>|Iterator<Promise|T>
10
+ * |{ chain: T=>Monad<T> }|{ flatMap: T=>Monad<T> }|Object<T>
11
+ * Reducer<T> = (any, T)=>Promise|any
12
+ * Foldable<T> = Iterable<T>|AsyncIterable<T>|{ reduce: Reducer<T> }|Object<T>
13
+ *
14
+ * arrayFlatMap<T>(
15
+ * array Array<T>,
16
+ * flatMapper T=>Promise|Monad<T>|Foldable<T>|T,
17
+ * ) -> Promise|Array<T>
18
+ * ```
19
+ */
20
+ declare function arrayFlatMap(array: any, flatMapper: any): any;
@@ -0,0 +1,20 @@
1
+ export = arrayFlatten;
2
+ /**
3
+ * @name arrayFlatten
4
+ *
5
+ * @synopsis
6
+ * ```coffeescript [specscript]
7
+ * Stream<T> = { read: ()=>T, write: T=>() }
8
+ * Monad<T> = Array<T>|String<T>|Set<T>
9
+ * |TypedArray<T>|Stream<T>|Iterator<Promise|T>
10
+ * |{ chain: T=>Monad<T> }|{ flatMap: T=>Monad<T> }|Object<T>
11
+ * Reducer<T> = (any, T)=>Promise|any
12
+ * Foldable<T> = Iterable<T>|AsyncIterable<T>|{ reduce: Reducer<T> }|Object<T>
13
+ *
14
+ * arrayFlatten<
15
+ * T any,
16
+ * array Array<Monad<T>|Foldable<T>|T>
17
+ * >(array) -> Array<T>
18
+ * ```
19
+ */
20
+ declare function arrayFlatten(array: any): any;