rubico 1.9.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/README.md +158 -81
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/build +472 -0
- package/compose.js +46 -0
- package/dist/Transducer.es.js +481 -0
- package/dist/Transducer.es.min.js +7 -0
- package/dist/Transducer.js +488 -0
- package/dist/Transducer.min.js +8 -0
- package/dist/Transducer.mjs +481 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +762 -883
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.global.js +2794 -0
- package/dist/rubico.global.min.js +8 -0
- package/dist/rubico.js +739 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.mjs +762 -883
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +31 -2042
- package/eq.js +21 -63
- package/es.js +739 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +739 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +22 -11
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/tmp.js +1 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/__.min.mjs +0 -7
- package/dist/all.min.mjs +0 -7
- package/dist/always.min.mjs +0 -7
- package/dist/and.min.mjs +0 -7
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/assign.min.mjs +0 -7
- package/dist/curry.min.mjs +0 -7
- package/dist/eq.min.mjs +0 -7
- package/dist/filter.min.mjs +0 -7
- package/dist/flatMap.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/get.min.mjs +0 -7
- package/dist/gt.min.mjs +0 -7
- package/dist/gte.min.mjs +0 -7
- package/dist/lt.min.mjs +0 -7
- package/dist/lte.min.mjs +0 -7
- package/dist/map.min.mjs +0 -7
- package/dist/not.min.mjs +0 -7
- package/dist/omit.min.mjs +0 -7
- package/dist/or.min.mjs +0 -7
- package/dist/pick.min.mjs +0 -7
- package/dist/pipe.min.mjs +0 -7
- package/dist/reduce.min.mjs +0 -7
- package/dist/rubico.min.mjs +0 -7
- package/dist/set.min.mjs +0 -7
- package/dist/switchCase.min.mjs +0 -7
- package/dist/tap.min.mjs +0 -7
- package/dist/thunkify.min.mjs +0 -7
- package/dist/transform.min.mjs +0 -7
- package/dist/tryCatch.min.mjs +0 -7
- package/dist/x/append.min.mjs +0 -7
- package/dist/x/callProp.min.mjs +0 -7
- package/dist/x/defaultsDeep.min.mjs +0 -7
- package/dist/x/differenceWith.min.mjs +0 -7
- package/dist/x/filterOut.min.mjs +0 -7
- package/dist/x/find.min.mjs +0 -7
- package/dist/x/findIndex.min.mjs +0 -7
- package/dist/x/first.min.mjs +0 -7
- package/dist/x/flatten.min.mjs +0 -7
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/dist/x/groupBy.min.mjs +0 -7
- package/dist/x/has.min.mjs +0 -7
- package/dist/x/identity.min.mjs +0 -7
- package/dist/x/includes.min.mjs +0 -7
- package/dist/x/isDeepEqual.min.mjs +0 -7
- package/dist/x/isEmpty.min.mjs +0 -7
- package/dist/x/isEqual.min.mjs +0 -7
- package/dist/x/isFunction.min.mjs +0 -7
- package/dist/x/isIn.min.mjs +0 -7
- package/dist/x/isObject.min.mjs +0 -7
- package/dist/x/isString.min.mjs +0 -7
- package/dist/x/keys.min.mjs +0 -7
- package/dist/x/last.min.mjs +0 -7
- package/dist/x/maxBy.min.mjs +0 -7
- package/dist/x/noop.min.mjs +0 -7
- package/dist/x/pluck.min.mjs +0 -7
- package/dist/x/prepend.min.mjs +0 -7
- package/dist/x/size.min.mjs +0 -7
- package/dist/x/trace.min.mjs +0 -7
- package/dist/x/unionWith.min.mjs +0 -7
- package/dist/x/uniq.min.mjs +0 -7
- package/dist/x/unless.min.mjs +0 -7
- package/dist/x/values.min.mjs +0 -7
- package/dist/x/when.min.mjs +0 -7
- package/distributor.js +0 -495
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/flatMap.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
else (root.flatMap = flatMap) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
14
16
|
const isArray = Array.isArray
|
|
15
17
|
|
|
16
18
|
const objectValues = Object.values
|
|
@@ -62,8 +64,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
62
64
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
66
|
-
|
|
67
67
|
const iteratorReduceAsync = async function (
|
|
68
68
|
iterator, reducer, result,
|
|
69
69
|
) {
|
|
@@ -295,13 +295,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
295
295
|
|
|
296
296
|
const objectKeys = Object.keys
|
|
297
297
|
|
|
298
|
-
const objectGetFirstKey = function (object) {
|
|
299
|
-
for (const key in object) {
|
|
300
|
-
return key
|
|
301
|
-
}
|
|
302
|
-
return undefined
|
|
303
|
-
}
|
|
304
|
-
|
|
305
298
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
306
299
|
const keysLength = keys.length
|
|
307
300
|
while (++index < keysLength) {
|
|
@@ -362,24 +355,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
362
355
|
return result
|
|
363
356
|
}
|
|
364
357
|
|
|
365
|
-
const funcConcatSync = (
|
|
366
|
-
funcA, funcB,
|
|
367
|
-
) => function pipedFunction(...args) {
|
|
368
|
-
return funcB(funcA(...args))
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
const generatorFunctionReduce = (
|
|
372
|
-
generatorFunction, reducer, result,
|
|
373
|
-
) => funcConcatSync(
|
|
374
|
-
generatorFunction,
|
|
375
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
376
|
-
|
|
377
|
-
const asyncGeneratorFunctionReduce = (
|
|
378
|
-
asyncGeneratorFunction, reducer, result,
|
|
379
|
-
) => funcConcatSync(
|
|
380
|
-
asyncGeneratorFunction,
|
|
381
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
382
|
-
|
|
383
358
|
const reducerConcat = (
|
|
384
359
|
reducerA, reducerB,
|
|
385
360
|
) => function pipedReducer(result, item) {
|
|
@@ -389,26 +364,10 @@ const reducerConcat = (
|
|
|
389
364
|
: reducerB(intermediate, item)
|
|
390
365
|
}
|
|
391
366
|
|
|
392
|
-
const genericReduce = function (
|
|
393
|
-
const collection = args[0]
|
|
367
|
+
const genericReduce = function (collection, reducer, result) {
|
|
394
368
|
if (isArray(collection)) {
|
|
395
369
|
return arrayReduce(collection, reducer, result)
|
|
396
370
|
}
|
|
397
|
-
if (typeof collection == 'function') {
|
|
398
|
-
if (isGeneratorFunction(collection)) {
|
|
399
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
400
|
-
}
|
|
401
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
402
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
403
|
-
}
|
|
404
|
-
return curryArgs3(
|
|
405
|
-
genericReduce,
|
|
406
|
-
__,
|
|
407
|
-
args.length == 1
|
|
408
|
-
? reducerConcat(reducer, collection)
|
|
409
|
-
: args.reduce(reducerConcat, reducer),
|
|
410
|
-
result)
|
|
411
|
-
}
|
|
412
371
|
if (collection == null) {
|
|
413
372
|
return result === undefined
|
|
414
373
|
? curry2(reducer, collection, __)
|
|
@@ -467,7 +426,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
467
426
|
return iteration
|
|
468
427
|
}
|
|
469
428
|
const monadAsArray = genericReduce(
|
|
470
|
-
|
|
429
|
+
flatMapper(iteration.value),
|
|
471
430
|
arrayPush,
|
|
472
431
|
[]) // this will always have at least one item
|
|
473
432
|
if (monadAsArray.length > 1) {
|
|
@@ -513,12 +472,12 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
513
472
|
} else {
|
|
514
473
|
const monad = flatMapper(value)
|
|
515
474
|
if (isPromise(monad)) {
|
|
516
|
-
const bufferLoading =
|
|
517
|
-
|
|
475
|
+
const bufferLoading =
|
|
476
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
518
477
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
519
478
|
promises.add(promise)
|
|
520
479
|
} else {
|
|
521
|
-
const bufferLoading = genericReduce(
|
|
480
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
522
481
|
if (isPromise(bufferLoading)) {
|
|
523
482
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
524
483
|
promises.add(promise)
|
|
@@ -538,8 +497,6 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
538
497
|
}
|
|
539
498
|
}
|
|
540
499
|
|
|
541
|
-
const isBinary = ArrayBuffer.isView
|
|
542
|
-
|
|
543
500
|
const always = value => function getter() { return value }
|
|
544
501
|
|
|
545
502
|
const getArg1 = (arg0, arg1) => arg1
|
|
@@ -548,6 +505,12 @@ const identity = value => value
|
|
|
548
505
|
|
|
549
506
|
const promiseAll = Promise.all.bind(Promise)
|
|
550
507
|
|
|
508
|
+
const funcConcatSync = (
|
|
509
|
+
funcA, funcB,
|
|
510
|
+
) => function pipedFunction(...args) {
|
|
511
|
+
return funcB(funcA(...args))
|
|
512
|
+
}
|
|
513
|
+
|
|
551
514
|
const asyncIteratorForEach = async function (asyncIterator, callback) {
|
|
552
515
|
const promises = []
|
|
553
516
|
for await (const item of asyncIterator) {
|
|
@@ -817,165 +780,10 @@ const stringFlatMap = function (string, flatMapper) {
|
|
|
817
780
|
: arrayFlattenToString(monadArray)
|
|
818
781
|
}
|
|
819
782
|
|
|
820
|
-
const
|
|
821
|
-
stream.write(chunk, encoding, callback)
|
|
822
|
-
return stream
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
const streamFlatExtend = async function (stream, item) {
|
|
826
|
-
const resultStreamWrite = curry2(streamWrite, stream, __),
|
|
827
|
-
// resultStreamWriteReducer = (_, subItem) => stream.write(subItem),
|
|
828
|
-
resultStreamWriteReducer = funcConcatSync(getArg1, resultStreamWrite),
|
|
829
|
-
promises = []
|
|
830
|
-
if (isArray(item)) {
|
|
831
|
-
const itemLength = item.length
|
|
832
|
-
let itemIndex = -1
|
|
833
|
-
while (++itemIndex < itemLength) {
|
|
834
|
-
stream.write(item[itemIndex])
|
|
835
|
-
}
|
|
836
|
-
} else if (item == null) {
|
|
837
|
-
stream.write(item)
|
|
838
|
-
} else if (typeof item[symbolIterator] == 'function') {
|
|
839
|
-
for (const subItem of item) {
|
|
840
|
-
stream.write(subItem)
|
|
841
|
-
}
|
|
842
|
-
} else if (typeof item[symbolAsyncIterator] == 'function') {
|
|
843
|
-
promises.push(
|
|
844
|
-
asyncIteratorForEach(item[symbolAsyncIterator](), resultStreamWrite))
|
|
845
|
-
} else if (typeof item.chain == 'function') {
|
|
846
|
-
const monadValue = item.chain(identity)
|
|
847
|
-
isPromise(monadValue)
|
|
848
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
849
|
-
: stream.write(monadValue)
|
|
850
|
-
} else if (typeof item.flatMap == 'function') {
|
|
851
|
-
const monadValue = item.flatMap(identity)
|
|
852
|
-
isPromise(monadValue)
|
|
853
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
854
|
-
: stream.write(monadValue)
|
|
855
|
-
} else if (typeof item.reduce == 'function') {
|
|
856
|
-
const folded = item.reduce(resultStreamWriteReducer, null)
|
|
857
|
-
isPromise(folded) && promises.push(folded)
|
|
858
|
-
} else if (item.constructor == Object) {
|
|
859
|
-
for (const key in item) {
|
|
860
|
-
stream.write(item[key])
|
|
861
|
-
}
|
|
862
|
-
} else {
|
|
863
|
-
stream.write(item)
|
|
864
|
-
}
|
|
865
|
-
return promises.length == 0
|
|
866
|
-
? stream
|
|
867
|
-
: promiseAll(promises).then(always(stream))
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
const streamFlatMap = async function (stream, flatMapper) {
|
|
871
|
-
const promises = new Set()
|
|
872
|
-
for await (const item of stream) {
|
|
873
|
-
const monad = flatMapper(item)
|
|
874
|
-
if (isPromise(monad)) {
|
|
875
|
-
const selfDeletingPromise = monad.then(
|
|
876
|
-
curry2(streamFlatExtend, stream, __)).then(
|
|
877
|
-
() => promises.delete(selfDeletingPromise))
|
|
878
|
-
promises.add(selfDeletingPromise)
|
|
879
|
-
} else {
|
|
880
|
-
const streamFlatteningOperation = streamFlatExtend(stream, monad)
|
|
881
|
-
if (isPromise(streamFlatteningOperation)) {
|
|
882
|
-
const selfDeletingPromise = streamFlatteningOperation.then(
|
|
883
|
-
() => promises.delete(selfDeletingPromise))
|
|
884
|
-
promises.add(selfDeletingPromise)
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
await promiseAll(promises)
|
|
889
|
-
return stream
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
const globalThisHasBuffer = typeof Buffer == 'function'
|
|
893
|
-
|
|
894
|
-
const noop = function () {}
|
|
895
|
-
|
|
896
|
-
const bufferAlloc = globalThisHasBuffer ? Buffer.alloc : noop
|
|
897
|
-
|
|
898
|
-
const _binaryExtend = function (typedArray, array) {
|
|
899
|
-
const offset = typedArray.length
|
|
900
|
-
const result = globalThisHasBuffer && typedArray.constructor == Buffer
|
|
901
|
-
? bufferAlloc(offset + array.length)
|
|
902
|
-
: new typedArray.constructor(offset + array.length)
|
|
903
|
-
result.set(typedArray)
|
|
904
|
-
result.set(array, offset)
|
|
905
|
-
return result
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
const binaryExtend = function (typedArray, array) {
|
|
909
|
-
if (isArray(array) || isBinary(array)) {
|
|
910
|
-
return _binaryExtend(typedArray, array)
|
|
911
|
-
}
|
|
912
|
-
return _binaryExtend(typedArray, [array])
|
|
913
|
-
}
|
|
914
|
-
|
|
915
|
-
const arrayJoinToBinary = function (array, init) {
|
|
916
|
-
const length = array.length
|
|
917
|
-
let index = -1,
|
|
918
|
-
result = init
|
|
919
|
-
while (++index < length) {
|
|
920
|
-
result = binaryExtend(result, array[index])
|
|
921
|
-
}
|
|
922
|
-
return result
|
|
923
|
-
}
|
|
924
|
-
|
|
925
|
-
const arrayFlattenToBinary = function (array, result) {
|
|
926
|
-
const flattened = arrayFlatten(array)
|
|
927
|
-
return isPromise(flattened)
|
|
928
|
-
? flattened.then(curry2(arrayJoinToBinary, __, result))
|
|
929
|
-
: arrayJoinToBinary(flattened, result)
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
const binaryFlatMap = function (binary, flatMapper) {
|
|
933
|
-
const monadArray = arrayMap(binary, flatMapper),
|
|
934
|
-
result = globalThisHasBuffer && binary.constructor == Buffer
|
|
935
|
-
? bufferAlloc(0)
|
|
936
|
-
: new binary.constructor(0)
|
|
937
|
-
return isPromise(monadArray)
|
|
938
|
-
? monadArray.then(curry2(arrayFlattenToBinary, __, result))
|
|
939
|
-
: arrayFlattenToBinary(monadArray, result)
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
const reducerFlatMap = (
|
|
943
|
-
reducer, flatMapper,
|
|
944
|
-
) => function flatMappingReducer(result, value) {
|
|
945
|
-
const monad = flatMapper(value)
|
|
946
|
-
return isPromise(monad)
|
|
947
|
-
? monad.then(curryArgs3(genericReduce, __, reducer, result))
|
|
948
|
-
: genericReduce([monad], reducer, result)
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
const generatorFunctionFlatMap = (
|
|
952
|
-
generatorFunction, flatMapper,
|
|
953
|
-
) => function* flatMappingGeneratorFunction(...args) {
|
|
954
|
-
yield* FlatMappingIterator(generatorFunction(...args), flatMapper)
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
const asyncGeneratorFunctionFlatMap = (
|
|
958
|
-
asyncGeneratorFunction, flatMapper,
|
|
959
|
-
) => async function* flatMappingAsyncGeneratorFunction(...args) {
|
|
960
|
-
yield* FlatMappingAsyncIterator(asyncGeneratorFunction(...args), flatMapper)
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
const flatMap = flatMapper => function flatMapping(value) {
|
|
783
|
+
const _flatMap = function (value, flatMapper) {
|
|
964
784
|
if (isArray(value)) {
|
|
965
785
|
return arrayFlatMap(value, flatMapper)
|
|
966
786
|
}
|
|
967
|
-
if (typeof value == 'function') {
|
|
968
|
-
if (isGeneratorFunction(value)) {
|
|
969
|
-
return generatorFunctionFlatMap(value, flatMapper)
|
|
970
|
-
}
|
|
971
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
972
|
-
return asyncGeneratorFunctionFlatMap(value, flatMapper)
|
|
973
|
-
}
|
|
974
|
-
return reducerFlatMap(value, flatMapper)
|
|
975
|
-
}
|
|
976
|
-
if (isBinary(value)) {
|
|
977
|
-
return binaryFlatMap(value, flatMapper)
|
|
978
|
-
}
|
|
979
787
|
if (value == null) {
|
|
980
788
|
return flatMapper(value)
|
|
981
789
|
}
|
|
@@ -994,12 +802,6 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
994
802
|
if (typeof value.flatMap == 'function') {
|
|
995
803
|
return value.flatMap(flatMapper)
|
|
996
804
|
}
|
|
997
|
-
if (
|
|
998
|
-
typeof value[symbolAsyncIterator] == 'function'
|
|
999
|
-
&& typeof value.write == 'function'
|
|
1000
|
-
) {
|
|
1001
|
-
return streamFlatMap(value, flatMapper)
|
|
1002
|
-
}
|
|
1003
805
|
const valueConstructor = value.constructor
|
|
1004
806
|
if (valueConstructor == Object) {
|
|
1005
807
|
return objectFlatMap(value, flatMapper)
|
|
@@ -1013,5 +815,16 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
1013
815
|
return flatMapper(value)
|
|
1014
816
|
}
|
|
1015
817
|
|
|
818
|
+
const flatMap = (...args) => {
|
|
819
|
+
const flatMapper = args.pop()
|
|
820
|
+
if (args.length == 0) {
|
|
821
|
+
return curry2(_flatMap, __, flatMapper)
|
|
822
|
+
}
|
|
823
|
+
const collection = args[0]
|
|
824
|
+
return isPromise(collection)
|
|
825
|
+
? collection.then(curry2(_flatMap, __, flatMapper))
|
|
826
|
+
: _flatMap(args[0], flatMapper)
|
|
827
|
+
}
|
|
828
|
+
|
|
1016
829
|
return flatMap
|
|
1017
830
|
}())))
|
package/dist/flatMap.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
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.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,e=(Object.values,Object.prototype.toString,Symbol.for("placeholder")),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o},u=Symbol.iterator,f=Symbol.asyncIterator,c=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},i=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},s=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},l=Object.keys,a=async function(t,e,o,r,u){const f=r.length;for(;++u<f;){const f=r[u];o=e(o,t[f],f,t),n(o)&&(o=await o)}return o},h=async function(t,e,o,r){for(const[u,f]of r)o=e(o,f,u,t),n(o)&&(o=await o);return o},p=function(p,d,y){return t(p)?function(t,o,r){const u=t.length;let f=-1;for(void 0===r&&(r=t[++f]);++f<u;)if(r=o(r,t[f],f,t),n(r))return r.then(i(s,t,o,e,f));return r}(p,d,y):null==p?void 0===y?c(d,p,e):d(y,p):p.constructor==Map?function(t,o,r){const u=t.entries();if(void 0===r){const n=u.next();if(n.done)return r;r=n.value[1]}for(const[f,c]of u)if(r=o(r,c,f,t),n(r))return r.then(i(h,t,o,e,u));return r}(p,d,y):"function"==typeof p[u]?function(t,u,f){let c=t.next();if(c.done)return f;for(void 0===f&&(f=c.value,c=t.next());!c.done;){if(f=u(f,c.value),n(f))return f.then(o(r,t,u,e));c=t.next()}return f}(p[u](),d,y):"function"==typeof p[f]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(p[f](),d,y):"function"==typeof p.reduce?p.reduce(d,y):"function"==typeof p.chain?p.chain(c(d,y,e)):"function"==typeof p.flatMap?p.flatMap(c(d,y,e)):p.constructor==Object?function(t,o,r){const u=l(t),f=u.length;let c=-1;for(void 0===r&&(r=t[u[++c]]);++c<f;){const f=u[c];if(r=o(r,t[f],f,t),n(r))return r.then((i=a,h=o,p=e,d=u,y=c,(s=t)==e?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,h,p,d,y):h==e?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,p,d,y):p==e?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,h,d,y):d==e?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,h,p,y):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,h,p,d)))}var i,s,h,p,d,y;return r}(p,d,y):void 0===y?c(d,p,e):d(y,p)},d=function(n,t){return n.push(t),n},y=Promise.race.bind(Promise),g=n=>new Promise((t=>{setTimeout(t,n)})),v=n=>function(){return n},b=(n,t)=>t,w=n=>n,x=Promise.all.bind(Promise),M=(n,t)=>function(...e){return t(n(...e))},j=async function(t,e){const o=[];for await(const r of t){const t=e(r);n(t)&&o.push(t)}return 0==o.length?t:x(o).then(v(t))},m=function(o){const r=o.length,i=[],s=[];let l=-1;for(;++l<r;){const r=o[l];if(t(r)){const n=r.length;let t=-1;for(;++t<n;)s.push(r[t])}else if(null==r)s.push(r);else if("function"==typeof r.then)i.push(r.then(c(d,s,e)));else if("function"==typeof r[u])for(const n of r)s.push(n);else if("function"==typeof r[f])i.push(j(r[f](),c(d,s,e)));else if("function"==typeof r.chain){const t=r.chain(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.flatMap){const t=r.flatMap(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.reduce){const t=r.reduce(M(b,c(d,s,e)),null);n(t)&&i.push(t)}else if(r.constructor==Object)for(const n in r)s.push(r[n]);else s.push(r)}return 0==i.length?s:x(i).then(v(s))},S=function(t,e){const o=t.length,r=Array(o);let u=-1,f=!1;for(;++u<o;){const o=e(t[u],u,t);n(o)&&(f=!0),r[u]=o}return f?x(r):r},A=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const f=t[u];n(f)?(r+=1,f.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=f}0==r&&e(o)})(t)),O=Object.assign,I=function(t){const o=[],r={},i=c(O,r,e),s=M(b,i);for(const e in t){const c=t[e];if(null!=c)if("function"==typeof c[u])for(const n of c)O(r,n);else if("function"==typeof c[f])o.push(j(c[f](),i));else if("function"==typeof c.chain){const t=c.chain(w);n(t)?o.push(t.then(i)):O(r,t)}else if("function"==typeof c.flatMap){const t=c.flatMap(w);n(t)?o.push(t.then(i)):i(t)}else if("function"==typeof c.reduce){const t=c.reduce(s,null);n(t)&&o.push(t)}else O(r,c)}return 0==o.length?r:x(o).then((()=>r))},P=function(t,e){const o=function(t,e){const o={};let r=!1;for(const u in t){const f=e(t[u],u,t);n(f)&&(r=!0),o[u]=f}return r?A(o):o}(t,e);return n(o)?o.then(I):I(o)},D=(n,t,e)=>n[t](e),z=function(r){r.size;const c=[],i=new Set,s=(n,t)=>i.add(t),l=o(D,i,"add",e);for(const e of r)if(t(e)){const n=e.length;let t=-1;for(;++t<n;)i.add(e[t])}else if(null==e)i.add(e);else if("function"==typeof e[u])for(const n of e)i.add(n);else if("function"==typeof e[f])c.push(j(e[f](),l));else if("function"==typeof e.chain){const t=e.chain(w);n(t)?c.push(t.then(l)):i.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(w);n(t)?c.push(t.then(l)):i.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(s,null);n(t)&&c.push(t)}else if(e.constructor==Object)for(const n in e)i.add(e[n]);else i.add(e);return 0==c.length?i:x(c).then((()=>i))},T=function(t,r){const u=function(t,r){const u=new Set,f=[];for(const c of t){const i=r(c,c,t);n(i)?f.push(i.then(o(D,u,"add",e))):u.add(i)}return 0==f.length?u:x(f).then(v(u))}(t,r);return n(u)?u.then(z):z(u)},k=(F=m,q=c(((n,t)=>n.join(t)),e,""),function(...t){const e=F(...t);return n(e)?e.then(q):q(e)});var F,q;const B=function(r,c){if(t(r))return function(t,e){const o=S(t,e);return n(o)?o.then(m):m(o)}(r,c);if(null==r)return c(r);if("function"==typeof r.then)return r.then(c);if("function"==typeof r.next)return u in r?function(n,t){let e=[],o=0;return{[u](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=p(t(r.value),d,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(r,c):function(t,r){const u=[],c=new Set;return{isAsyncIteratorDone:!1,[f](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||u.length>0||c.size>0;){if(!this.isAsyncIteratorDone){const{value:f,done:i}=await t.next();if(i)this.isAsyncIteratorDone=i;else{const t=r(f);if(n(t)){const n=t.then(o(p,e,d,u)).then((()=>c.delete(n)));c.add(n)}else{const e=p(t,d,u);if(n(e)){const n=e.then((()=>c.delete(n)));c.add(n)}}}}if(u.length>0)return{value:u.shift(),done:!1};c.size>0&&await y([g(1e3),...c])}return{value:void 0,done:!0}}}}(r,c);if("function"==typeof r.chain)return r.chain(c);if("function"==typeof r.flatMap)return r.flatMap(c);const i=r.constructor;return i==Object?P(r,c):i==Set?T(r,c):"string"==typeof r||i==String?function(t,e){const o=S(t,e);return n(o)?o.then(k):k(o)}(r,c):c(r)};return(...t)=>{const o=t.pop();if(0==t.length)return c(B,e,o);const r=t[0];return n(r)?r.then(c(B,e,o)):B(t[0],o)}}());
|