diff options
author | Alexander Early <alexander.early@gmail.com> | 2019-05-19 19:27:01 -0700 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2019-05-19 19:27:01 -0700 |
commit | bd881300c0f69b32a0113c3c9b955db87cdc8c8f (patch) | |
tree | ec01d0f02567d03293fe005c4bb712ac641fe73a | |
parent | 3fa33dd70c786d98dc203ae8a0d4d434d418dbd6 (diff) | |
download | async-bd881300c0f69b32a0113c3c9b955db87cdc8c8f.tar.gz |
Update built files
-rw-r--r-- | dist/async.js | 465 | ||||
-rw-r--r-- | dist/async.min.js | 2 | ||||
-rw-r--r-- | package-lock.json | 2 | ||||
-rw-r--r-- | package.json | 2 |
4 files changed, 326 insertions, 145 deletions
diff --git a/dist/async.js b/dist/async.js index 1e9b8bf..0f015bb 100644 --- a/dist/async.js +++ b/dist/async.js @@ -197,17 +197,39 @@ return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn; } - function applyEach(eachfn) { - return function(fns, ...callArgs) { - var go = initialParams(function(args, callback) { + // conditionally promisify a function. + // only return a promise if a callback is omitted + function awaitify (asyncFn, arity = asyncFn.length) { + if (!arity) throw new Error('arity is undefined') + function awaitable (...args) { + if (typeof args[arity - 1] === 'function') { + return asyncFn.apply(this, args) + } + + return new Promise((resolve, reject) => { + args[arity - 1] = (err, ...cbArgs) => { + if (err) return reject(err) + resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); + }; + asyncFn.apply(this, args); + }) + } + + Object.defineProperty(awaitable, 'name', { + value: `awaitable(${asyncFn.name})` + }); + + return awaitable + } + + function applyEach (eachfn) { + return function applyEach(fns, ...callArgs) { + const go = awaitify(function (callback) { var that = this; return eachfn(fns, (fn, cb) => { - wrapAsync(fn).apply(that, args.concat(cb)); + wrapAsync(fn).apply(that, callArgs.concat(cb)); }, callback); }); - if (callArgs.length) { - return go.apply(this, callArgs); - } return go; }; } @@ -426,31 +448,6 @@ }; }; - // conditionally promisify a function. - // only return a promise if a callback is omitted - function awaitify (asyncFn, arity = asyncFn.length) { - if (!arity) throw new Error('arity is undefined') - function awaitable (...args) { - if (typeof args[arity - 1] === 'function') { - return asyncFn.apply(this, args) - } - - return new Promise((resolve, reject) => { - args[arity - 1] = (err, ...cbArgs) => { - if (err) return reject(err) - resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); - }; - asyncFn.apply(this, args); - }) - } - - Object.defineProperty(awaitable, 'name', { - value: `awaitable(${asyncFn.name})` - }); - - return awaitable - } - /** * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a * time. @@ -977,7 +974,7 @@ } var FN_ARGS = /^(?:async\s+)?(?:function)?\s*[^(]*\(\s*([^)]+)\s*\)(?:\s*{)/m; - var ARROW_FN_ARGS = /^(?:async\s+)?\(?\s*([^)^=]+)\s*\)?(?:\s*=>)/m; + var ARROW_FN_ARGS = /^(?:async\s+)?(?:function\s+)?\(?\s*([^)^=]+)\s*\)?(?:\s*=>)/m; var FN_ARG_SPLIT = /,/; var FN_ARG = /(=.+)?(\s*)$/; var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; @@ -1212,8 +1209,6 @@ dll.head = dll.tail = node; } - const noop = () => {}; - function queue(worker, concurrency, payload) { if (concurrency == null) { concurrency = 1; @@ -1225,6 +1220,35 @@ var _worker = wrapAsync(worker); var numRunning = 0; var workersList = []; + const events = { + error: [], + drain: [], + saturated: [], + unsaturated: [], + empty: [] + }; + + function on (event, handler) { + events[event].push(handler); + } + + function once (event, handler) { + const handleAndRemove = (...args) => { + off(event, handleAndRemove); + handler(...args); + }; + events[event].push(handleAndRemove); + } + + function off (event, handler) { + if (!event) return Object.keys(events).forEach(ev => events[ev] = []) + if (!handler) return events[event] = [] + events[event] = events[event].filter(ev => ev !== handler); + } + + function trigger (event, ...args) { + events[event].forEach(handler => handler(...args)); + } var processingScheduled = false; function _insert(data, insertAtFront, callback) { @@ -1232,25 +1256,32 @@ throw new Error('task callback must be a function'); } q.started = true; - if (!Array.isArray(data)) { - data = [data]; - } - if (data.length === 0 && q.idle()) { - // call drain immediately if there are no tasks - return setImmediate$1(() => q.drain()); + if (Array.isArray(data)) { + if (data.length === 0 && q.idle()) { + // call drain immediately if there are no tasks + return setImmediate$1(() => trigger('drain')); + } + + return data.map(datum => _insert(datum, insertAtFront, callback)); } - for (var i = 0, l = data.length; i < l; i++) { - var item = { - data: data[i], - callback: callback || noop - }; + var res; - if (insertAtFront) { - q._tasks.unshift(item); - } else { - q._tasks.push(item); + var item = { + data, + callback: callback || function (err, ...args) { + // we don't care about the error, let the global error handler + // deal with it + if (err) return + if (args.length <= 1) return res(args[0]) + res(args); } + }; + + if (insertAtFront) { + q._tasks.unshift(item); + } else { + q._tasks.push(item); } if (!processingScheduled) { @@ -1260,9 +1291,15 @@ q.process(); }); } + + if (!callback) { + return new Promise((resolve) => { + res = resolve; + }) + } } - function _next(tasks) { + function _createCB(tasks) { return function (err, ...args) { numRunning -= 1; @@ -1279,21 +1316,35 @@ task.callback(err, ...args); if (err != null) { - q.error(err, task.data); + trigger('error', err, task.data); } } if (numRunning <= (q.concurrency - q.buffer) ) { - q.unsaturated(); + trigger('unsaturated'); } if (q.idle()) { - q.drain(); + trigger('drain'); } q.process(); }; } + const eventMethod = (name) => (handler) => { + if (!handler) { + return new Promise((resolve, reject) => { + once(name, (err, data) => { + if (err) return reject(err) + resolve(data); + }); + }) + } + off(name); + on(name, handler); + + }; + var isProcessing = false; var q = { _tasks: new DLL(), @@ -1302,23 +1353,18 @@ }, concurrency, payload, - saturated: noop, - unsaturated:noop, buffer: concurrency / 4, - empty: noop, - drain: noop, - error: noop, started: false, paused: false, push (data, callback) { - _insert(data, false, callback); + return _insert(data, false, callback); }, kill () { - q.drain = noop; + off(); q._tasks.empty(); }, unshift (data, callback) { - _insert(data, true, callback); + return _insert(data, true, callback); }, remove (testFn) { q._tasks.remove(testFn); @@ -1344,14 +1390,14 @@ numRunning += 1; if (q._tasks.length === 0) { - q.empty(); + trigger('empty'); } if (numRunning === q.concurrency) { - q.saturated(); + trigger('saturated'); } - var cb = onlyOnce(_next(tasks)); + var cb = onlyOnce(_createCB(tasks)); _worker(data, cb); } isProcessing = false; @@ -1377,40 +1423,33 @@ setImmediate$1(q.process); } }; + // define these as fixed properties, so people get useful errors when updating + Object.defineProperties(q, { + saturated: { + writable: false, + value: eventMethod('saturated') + }, + unsaturated: { + writable: false, + value: eventMethod('unsaturated') + }, + empty: { + writable: false, + value: eventMethod('empty') + }, + drain: { + writable: false, + value: eventMethod('drain') + }, + error: { + writable: false, + value: eventMethod('error') + }, + }); return q; } /** - * A cargo of tasks for the worker function to complete. Cargo inherits all of - * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}. - * @typedef {Object} CargoObject - * @memberOf module:ControlFlow - * @property {Function} length - A function returning the number of items - * waiting to be processed. Invoke like `cargo.length()`. - * @property {number} payload - An `integer` for determining how many tasks - * should be process per round. This property can be changed after a `cargo` is - * created to alter the payload on-the-fly. - * @property {Function} push - Adds `task` to the `queue`. The callback is - * called once the `worker` has finished processing the task. Instead of a - * single task, an array of `tasks` can be submitted. The respective callback is - * used for every task in the list. Invoke like `cargo.push(task, [callback])`. - * @property {Function} saturated - A callback that is called when the - * `queue.length()` hits the concurrency and further tasks will be queued. - * @property {Function} empty - A callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - A callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} idle - a function returning false if there are items - * waiting or being processed, or true if not. Invoke like `cargo.idle()`. - * @property {Function} pause - a function that pauses the processing of tasks - * until `resume()` is called. Invoke like `cargo.pause()`. - * @property {Function} resume - a function that resumes the processing of - * queued tasks when the queue is paused. Invoke like `cargo.resume()`. - * @property {Function} kill - a function that removes the `drain` callback and - * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`. - */ - - /** * Creates a `cargo` object with the specified payload. Tasks added to the * cargo will be processed altogether (up to the `payload` limit). If the * `worker` is in progress, the task is queued until it becomes available. Once @@ -1433,7 +1472,7 @@ * @param {number} [payload=Infinity] - An optional `integer` for determining * how many tasks should be processed per round; if omitted, the default is * unlimited. - * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can + * @returns {module:ControlFlow.QueueObject} A cargo object to manage the tasks. Callbacks can * attached as certain properties to listen for specific events during the * lifecycle of the cargo and inner queue. * @example @@ -1453,9 +1492,8 @@ * cargo.push({name: 'bar'}, function(err) { * console.log('finished processing bar'); * }); - * cargo.push({name: 'baz'}, function(err) { - * console.log('finished processing baz'); - * }); + * await cargo.push({name: 'baz'}); + * console.log('finished processing baz'); */ function cargo(worker, payload) { return queue(worker, 1, payload); @@ -1709,6 +1747,7 @@ * @method * @see [async.concat]{@link module:Collections.concat} * @category Collection + * @alias flatMapLimit * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. * @param {number} limit - The maximum number of async operations at a time. * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`, @@ -1724,7 +1763,7 @@ return mapLimit$1(coll, limit, (val, iterCb) => { _iteratee(val, (err, ...args) => { if (err) return iterCb(err); - return iterCb(null, args); + return iterCb(err, args); }); }, (err, mapResults) => { var result = []; @@ -1750,6 +1789,7 @@ * @memberOf module:Collections * @method * @category Collection + * @alias flatMap * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`, * which should use an array as its result. Invoked with (item, callback). @@ -1778,6 +1818,7 @@ * @method * @see [async.concat]{@link module:Collections.concat} * @category Collection + * @alias flatMapSeries * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over. * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`. * The iteratee should complete with an array an array of results. @@ -1849,7 +1890,7 @@ const iteratee = wrapAsync(_iteratee); eachfn(arr, (value, _, callback) => { iteratee(value, (err, result) => { - if (err) return callback(err) + if (err || err === false) return callback(err); if (check(result) && !testResult) { testPassed = true; @@ -2180,6 +2221,9 @@ /** * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time. * + * Note, that unlike [`each`]{@link module:Collections.each}, this function applies iteratee to each item + * in series and therefore the iteratee functions will complete in order. + * @name eachSeries * @static * @memberOf module:Collections @@ -2364,7 +2408,7 @@ if (v) { results.push({index, value: x}); } - iterCb(); + iterCb(err); }); }, err => { if (err) return callback(err); @@ -2529,7 +2573,7 @@ return mapLimit$1(coll, limit, (val, iterCb) => { _iteratee(val, (err, key) => { if (err) return iterCb(err); - return iterCb(null, {key, val}); + return iterCb(err, {key, val}); }); }, (err, mapResults) => { var result = {}; @@ -2678,7 +2722,7 @@ _iteratee(val, key, (err, result) => { if (err) return next(err); newObj[key] = result; - next(); + next(err); }); }, err => callback(err, newObj)); } @@ -3000,6 +3044,9 @@ * @property {number} concurrency - an integer for determining how many `worker` * functions should be run in parallel. This property can be changed after a * `queue` is created to alter the concurrency on-the-fly. + * @property {number} payload - an integer that specifies how many items are + * passed to the worker function at a time. only applies if this is a + * [cargo]{@link module:ControlFlow.cargo} object * @property {Function} push - add a new task to the `queue`. Calls `callback` * once the `worker` has finished processing the task. Instead of a single task, * a `tasks` array can be submitted. The respective callback is used for every @@ -3012,20 +3059,26 @@ * [priorityQueue]{@link module:ControlFlow.priorityQueue} object. * Invoked with `queue.remove(testFn)`, where `testFn` is of the form * `function ({data, priority}) {}` and returns a Boolean. - * @property {Function} saturated - a callback that is called when the number of - * running workers hits the `concurrency` limit, and further tasks will be - * queued. - * @property {Function} unsaturated - a callback that is called when the number - * of running workers is less than the `concurrency` & `buffer` limits, and - * further tasks will not be queued. + * @property {Function} saturated - a function that sets a callback that is + * called when the number of running workers hits the `concurrency` limit, and + * further tasks will be queued. If the callback is omitted, `q.saturated()` + * returns a promise for the next occurrence. + * @property {Function} unsaturated - a function that sets a callback that is + * called when the number of running workers is less than the `concurrency` & + * `buffer` limits, and further tasks will not be queued. If the callback is + * omitted, `q.unsaturated()` returns a promise for the next occurrence. * @property {number} buffer - A minimum threshold buffer in order to say that * the `queue` is `unsaturated`. - * @property {Function} empty - a callback that is called when the last item - * from the `queue` is given to a `worker`. - * @property {Function} drain - a callback that is called when the last item - * from the `queue` has returned from the `worker`. - * @property {Function} error - a callback that is called when a task errors. - * Has the signature `function(error, task)`. + * @property {Function} empty - a function that sets a callback that is called + * when the last item from the `queue` is given to a `worker`. If the callback + * is omitted, `q.empty()` returns a promise for the next occurrence. + * @property {Function} drain - a function that sets a callback that is called + * when the last item from the `queue` has returned from the `worker`. If the + * callback is omitted, `q.drain()` returns a promise for the next occurrence. + * @property {Function} error - a function that sets a callback that is called + * when a task errors. Has the signature `function(error, task)`. If the + * callback is omitted, `error()` returns a promise that rejects on the next + * error. * @property {boolean} paused - a boolean for determining whether the queue is * in a paused state. * @property {Function} pause - a function that pauses the processing of tasks @@ -3047,6 +3100,12 @@ * for (let item of q) { * console.log(item) * } + * + * q.drain(() => { + * console.log('all done') + * }) + * // or + * await q.drain() */ /** @@ -3078,22 +3137,23 @@ * }, 2); * * // assign a callback - * q.drain = function() { + * q.drain(function() { * console.log('all items have been processed'); - * }; + * }); + * // or await the end + * await q.drain() * * // assign an error callback - * q.error = function(err, task) { + * q.error(function(err, task) { * console.error('task experienced an error'); - * }; + * }); * * // add some items to the queue * q.push({name: 'foo'}, function(err) { * console.log('finished processing foo'); * }); - * q.push({name: 'bar'}, function (err) { - * console.log('finished processing bar'); - * }); + * // callback is optional + * q.push({name: 'bar'}); * * // add some items to the queue (batch-wise) * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) { @@ -3112,6 +3172,121 @@ }, concurrency, 1); } + // Binary min-heap implementation used for priority queue. + // Implementation is stable, i.e. push time is considered for equal priorities + class Heap { + constructor() { + this.heap = []; + this.pushCount = Number.MIN_SAFE_INTEGER; + } + + get length() { + return this.heap.length; + } + + empty () { + this.heap = []; + return this; + } + + percUp(index) { + let p; + + while (index > 0 && smaller(this.heap[index], this.heap[p=parent(index)])) { + let t = this.heap[index]; + this.heap[index] = this.heap[p]; + this.heap[p] = t; + + index = p; + } + } + + percDown(index) { + let l; + + while ((l=leftChi(index)) < this.heap.length) { + if (l+1 < this.heap.length && smaller(this.heap[l+1], this.heap[l])) { + l = l+1; + } + + if (smaller(this.heap[index], this.heap[l])) { + break; + } + + let t = this.heap[index]; + this.heap[index] = this.heap[l]; + this.heap[l] = t; + + index = l; + } + } + + push(node) { + node.pushCount = ++this.pushCount; + this.heap.push(node); + this.percUp(this.heap.length-1); + } + + unshift(node) { + return this.heap.push(node); + } + + shift() { + let [top] = this.heap; + + this.heap[0] = this.heap[this.heap.length-1]; + this.heap.pop(); + this.percDown(0); + + return top; + } + + toArray() { + return [...this]; + } + + *[Symbol.iterator] () { + for (let i = 0; i < this.heap.length; i++) { + yield this.heap[i].data; + } + } + + remove (testFn) { + let j = 0; + for (let i = 0; i < this.heap.length; i++) { + if (!testFn(this.heap[i])) { + this.heap[j] = this.heap[i]; + j++; + } + } + + this.heap.splice(j); + + for (let i = parent(this.heap.length-1); i >= 0; i--) { + this.percDown(i); + } + + return this; + } + } + + function leftChi(i) { + return (i<<1)+1; + } + + function parent(i) { + return ((i+1)>>1)-1; + } + + function smaller(x, y) { + if (x.priority !== y.priority) { + return x.priority < y.priority; + } + else { + return x.pushCount < y.pushCount; + } + } + /** * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and * completed in ascending priority order. @@ -3139,6 +3314,8 @@ // Start with a normal queue var q = queue$1(worker, concurrency); + q._tasks = new Heap(); + // Override push to accept second parameter representing priority q.push = function(data, priority = 0, callback = () => {}) { if (typeof callback !== 'function') { @@ -3148,16 +3325,11 @@ if (!Array.isArray(data)) { data = [data]; } - if (data.length === 0) { + if (data.length === 0 && q.idle()) { // call drain immediately if there are no tasks return setImmediate$1(() => q.drain()); } - var nextNode = q._tasks.head; - while (nextNode && priority >= nextNode.priority) { - nextNode = nextNode.next; - } - for (var i = 0, l = data.length; i < l; i++) { var item = { data: data[i], @@ -3165,12 +3337,9 @@ callback }; - if (nextNode) { - q._tasks.insertBefore(nextNode, item); - } else { - q._tasks.push(item); - } + q._tasks.push(item); } + setImmediate$1(q.process); }; @@ -3298,14 +3467,18 @@ var _fn = wrapAsync(fn); return initialParams(function reflectOn(args, reflectCallback) { args.push((error, ...cbArgs) => { + let retVal = {}; if (error) { - return reflectCallback(null, { error }); + retVal.error = error; } - var value = cbArgs; - if (cbArgs.length <= 1) { - [value] = cbArgs; + if (cbArgs.length > 0){ + var value = cbArgs; + if (cbArgs.length <= 1) { + [value] = cbArgs; + } + retVal.value = value; } - reflectCallback(null, { value }); + reflectCallback(null, retVal); }); return _fn.apply(this, args); @@ -3603,7 +3776,7 @@ if (err && attempt++ < options.times && (typeof options.errorFilter != 'function' || options.errorFilter(err))) { - setTimeout(retryAttempt, options.intervalFunc(attempt)); + setTimeout(retryAttempt, options.intervalFunc(attempt - 1)); } else { callback(err, ...args); } @@ -3896,7 +4069,7 @@ return map$1(coll, (x, iterCb) => { _iteratee(x, (err, criteria) => { if (err) return iterCb(err); - iterCb(null, {value: x, criteria}); + iterCb(err, {value: x, criteria}); }); }, (err, results) => { if (err) return callback(err); @@ -4169,6 +4342,8 @@ var result; return eachSeries$1(tasks, (task, taskCb) => { wrapAsync(task)((err, ...args) => { + if (err === false) return taskCb(err); + if (args.length < 2) { [result] = args; } else { @@ -4239,7 +4414,7 @@ callback = onlyOnce(callback); var _fn = wrapAsync(iteratee); var _test = wrapAsync(test); - var results; + var results = []; function next(err, ...rest) { if (err) return callback(err); @@ -4509,6 +4684,9 @@ find: detect$1, findLimit: detectLimit$1, findSeries: detectSeries$1, + flatMap: concat$1, + flatMapLimit: concatLimit$1, + flatMapSeries: concatSeries$1, forEach: each, forEachSeries: eachSeries$1, forEachLimit: eachLimit$2, @@ -4612,6 +4790,9 @@ exports.find = detect$1; exports.findLimit = detectLimit$1; exports.findSeries = detectSeries$1; + exports.flatMap = concat$1; + exports.flatMapLimit = concatLimit$1; + exports.flatMapSeries = concatSeries$1; exports.forEach = each; exports.forEachSeries = eachSeries$1; exports.forEachLimit = eachLimit$2; diff --git a/dist/async.min.js b/dist/async.min.js index c43b14f..996f15f 100644 --- a/dist/async.min.js +++ b/dist/async.min.js @@ -1 +1 @@ -(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.async={})})(this,function(e){"use strict";function t(e,...t){return(...n)=>e(...t,...n)}function n(e){return function(...t){var n=t.pop();return e.call(this,t,n)}}function i(e){setTimeout(e,0)}function a(e){return(t,...n)=>e(()=>t(...n))}function r(e){return d(e)?function(...t){const n=t.pop(),i=e.apply(this,t);return s(i,n)}:n(function(t,n){var i;try{i=e.apply(this,t)}catch(t){return n(t)}return i&&"function"==typeof i.then?s(i,n):void n(null,i)})}function s(e,t){return e.then(e=>{l(t,null,e)},e=>{l(t,e&&e.message?e:new Error(e))})}function l(e,t,n){try{e(t,n)}catch(e){ve(t=>{throw t},e)}}function d(e){return"AsyncFunction"===e[Symbol.toStringTag]}function c(e){return"AsyncGenerator"===e[Symbol.toStringTag]}function u(e){return"function"==typeof e[Symbol.asyncIterator]}function o(e){if("function"!=typeof e)throw new Error("expected a function");return d(e)?r(e):e}function f(e){return function(t,...i){var a=n(function(n,i){var a=this;return e(t,(e,t)=>{o(e).apply(a,n.concat(t))},i)});return i.length?a.apply(this,i):a}}function p(e,t,n,i){t=t||[];var a=[],r=0,s=o(n);return e(t,(e,t,n)=>{var i=r++;s(e,(e,t)=>{a[i]=t,n(e)})},e=>{i(e,a)})}function h(e){return e&&"number"==typeof e.length&&0<=e.length&&0==e.length%1}function y(e){function t(...t){if(null!==e){var n=e;e=null,n.apply(this,t)}}return Object.assign(t,e),t}function m(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}function g(e){var t=-1,n=e.length;return function(){return++t<n?{value:e[t],key:t}:null}}function k(e){var t=-1;return function(){var n=e.next();return n.done?null:(t++,{value:n.value,key:t})}}function S(e){var t=e?Object.keys(e):[],n=-1,a=t.length;return function(){var i=t[++n];return n<a?{value:e[i],key:i}:null}}function v(e){if(h(e))return g(e);var t=m(e);return t?k(t):S(e)}function L(e){return function(...t){if(null===e)throw new Error("Callback was already called.");var n=e;e=null,n.apply(this,t)}}function x(e,t,n,i){function a(){u>=t||c||l||(c=!0,e.next().then(({value:e,done:t})=>{if(!(d||l))return c=!1,t?(l=!0,void(0>=u&&i(null))):void(u++,n(e,o,r),o++,a())}).catch(s))}function r(e,t){return u-=1,d?void 0:e?s(e):!1===e?(l=!0,void(d=!0)):t===Le||l&&0>=u?(l=!0,i(null)):void a()}function s(e){d||(c=!1,l=!0,i(e))}let l=!1,d=!1,c=!1,u=0,o=0;a()}function E(e,t=e.length){function n(...n){return"function"==typeof n[t-1]?e.apply(this,n):new Promise((i,a)=>{n[t-1]=(e,...t)=>e?a(e):void i(1<t.length?t:t[0]),e.apply(this,n)})}if(!t)throw new Error("arity is undefined");return Object.defineProperty(n,"name",{value:`awaitable(${e.name})`}),n}function O(e,t,n){function i(e,t){!1===e&&(l=!0);!0===l||(e?n(e):(++r===s||t===Le)&&n(null))}n=y(n);var a=0,r=0,{length:s}=e,l=!1;for(0===s&&n(null);a<s;a++)t(e[a],a,L(i))}function b(e,t,n){return Ee(e,1/0,t,n)}function _(){function e(e,...i){return e?n(e):void t(1<i.length?i:i[0])}let t,n;return e[Be]=new Promise((e,i)=>{t=e,n=i}),e}function j(e,t,n){function i(e,t){g.push(()=>l(e,t))}function a(){if(!p){if(0===g.length&&0===f)return n(null,u);for(;g.length&&f<t;){var e=g.shift();e()}}}function r(e,t){var n=m[e];n||(n=m[e]=[]),n.push(t)}function s(e){var t=m[e]||[];t.forEach(e=>e()),a()}function l(e,t){if(!h){var i=L((t,...i)=>{if(f--,!1===t)return void(p=!0);if(2>i.length&&([i]=i),t){var a={};if(Object.keys(u).forEach(e=>{a[e]=u[e]}),a[e]=i,h=!0,m=Object.create(null),p)return;n(t,a)}else u[e]=i,s(e)});f++;var a=o(t[t.length-1]);1<t.length?a(u,i):a(i)}}function d(t){var n=[];return Object.keys(e).forEach(i=>{const a=e[i];Array.isArray(a)&&0<=a.indexOf(t)&&n.push(i)}),n}"number"!=typeof t&&(n=t,t=null),n=y(n||_());var c=Object.keys(e).length;if(!c)return n(null);t||(t=c);var u={},f=0,p=!1,h=!1,m=Object.create(null),g=[],k=[],S={};return Object.keys(e).forEach(t=>{var n=e[t];if(!Array.isArray(n))return i(t,[n]),void k.push(t);var a=n.slice(0,n.length-1),s=a.length;return 0===s?(i(t,n),void k.push(t)):void(S[t]=s,a.forEach(l=>{if(!e[l])throw new Error("async.auto task `"+t+"` has a non-existent dependency `"+l+"` in "+a.join(", "));r(l,()=>{s--,0===s&&i(t,n)})}))}),function(){for(var e,t=0;k.length;)e=k.pop(),t++,d(e).forEach(e=>{0==--S[e]&&k.push(e)});if(t!==c)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),a(),n[Be]}function I(e){const t=e.toString().replace(Pe,"");let n=t.match(Me);if(n||(n=t.match(Fe)),!n)throw new Error("could not parse args in autoInject\nSource:\n"+t);let[,i]=n;return i.replace(/\s/g,"").split(Te).map(e=>e.replace(we,"").trim())}function A(e,t){var n={};return Object.keys(e).forEach(t=>{function i(e,t){var n=a.map(t=>e[t]);n.push(t),o(r)(...n)}var a,r=e[t],s=d(r),l=!s&&1===r.length||s&&0===r.length;if(Array.isArray(r))a=[...r],r=a.pop(),n[t]=a.concat(0<a.length?i:r);else if(l)n[t]=r;else{if(a=I(r),0===r.length&&!s&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");s||a.pop(),n[t]=a.concat(i)}}),j(n,t)}function B(e,t){e.length=1,e.head=e.tail=t}function M(e,t,n){function i(e,t,n){if(null!=n&&"function"!=typeof n)throw new Error("task callback must be a function");if(f.started=!0,Array.isArray(e)||(e=[e]),0===e.length&&f.idle())return ve(()=>f.drain());for(var a,r=0,s=e.length;r<s;r++)a={data:e[r],callback:n||Re},t?f._tasks.unshift(a):f._tasks.push(a);c||(c=!0,ve(()=>{c=!1,f.process()}))}function a(e){return function(t,...n){s-=1;for(var a=0,r=e.length;a<r;a++){var l=e[a],c=d.indexOf(l);0===c?d.shift():0<c&&d.splice(c,1),l.callback(t,...n),null!=t&&f.error(t,l.data)}s<=f.concurrency-f.buffer&&f.unsaturated(),f.idle()&&f.drain(),f.process()}}if(null==t)t=1;else if(0===t)throw new RangeError("Concurrency must not be zero");var r=o(e),s=0,d=[],c=!1,u=!1,f={_tasks:new ze,*[Symbol.iterator](){yield*f._tasks[Symbol.iterator]()},concurrency:t,payload:n,saturated:Re,unsaturated:Re,buffer:t/4,empty:Re,drain:Re,error:Re,started:!1,paused:!1,push(e,t){i(e,!1,t)},kill(){f.drain=Re,f._tasks.empty()},unshift(e,t){i(e,!0,t)},remove(e){f._tasks.remove(e)},process(){if(!u){for(u=!0;!f.paused&&s<f.concurrency&&f._tasks.length;){var e=[],t=[],n=f._tasks.length;f.payload&&(n=Math.min(n,f.payload));for(var c,o=0;o<n;o++)c=f._tasks.shift(),e.push(c),d.push(c),t.push(c.data);s+=1,0===f._tasks.length&&f.empty(),s===f.concurrency&&f.saturated();var p=L(a(e));r(t,p)}u=!1}},length(){return f._tasks.length},running(){return s},workersList(){return d},idle(){return 0===f._tasks.length+s},pause(){f.paused=!0},resume(){!1===f.paused||(f.paused=!1,ve(f.process))}};return f}function F(e,t){return M(e,1,t)}function T(e,t,n){return M(e,t,n)}function w(...e){var t=e.map(o);return function(...e){var n=this,i=e[e.length-1];return"function"==typeof i?e.pop():i=_(),Ve(t,e,(e,t,i)=>{t.apply(n,e.concat((e,...t)=>{i(e,t)}))},(e,t)=>i(e,...t)),i[Be]}}function P(...e){return w(...e.reverse())}function z(...e){return function(...t){var n=t.pop();return n(null,...e)}}function R(e,t){return(n,i,a,r)=>{var s,l=!1;const d=o(a);n(i,(n,i,a)=>{d(n,(i,r)=>i?a(i):e(r)&&!s?(l=!0,s=t(!0,n),a(null,Le)):void a())},e=>e?r(e):void r(null,l?s:t(!1)))}}function Y(e){return(t,...n)=>o(t)(...n,(t,...n)=>{"object"==typeof console&&(t?console.error&&console.error(t):console[e]&&n.forEach(t=>console[e](t)))})}function V(e,t,n){const i=o(t);return Ke(e,(...e)=>{const t=e.pop();i(...e,(e,n)=>t(e,!n))},n)}function q(e){return(t,n,i)=>e(t,i)}function C(e){return d(e)?e:function(...t){var n=t.pop(),i=!0;t.push((...e)=>{i?ve(()=>n(...e)):n(...e)}),e.apply(this,t),i=!1}}function Q(e,t,n,a){var r=Array(t.length);e(t,(e,t,i)=>{n(e,(e,n)=>{r[t]=!!n,i(e)})},e=>{if(e)return a(e);for(var n=[],s=0;s<t.length;s++)r[s]&&n.push(t[s]);a(null,n)})}function N(e,t,n,i){var a=[];e(t,(e,t,i)=>{n(e,(n,r)=>n?i(n):void(r&&a.push({index:t,value:e}),i()))},e=>e?i(e):void i(null,a.sort((e,t)=>e.index-t.index).map(e=>e.value)))}function D(e,t,n,i){var a=h(t)?Q:N;return a(e,t,o(n),i)}function U(e,t,n){return rt(e,1/0,t,n)}function W(e,t,n){return rt(e,1,t,n)}function G(e,t,n){return lt(e,1/0,t,n)}function K(e,t,n){return lt(e,1,t,n)}function X(e,t=e=>e){var a=Object.create(null),r=Object.create(null),i=o(e),s=n((e,n)=>{var s=t(...e);s in a?ve(()=>n(null,...a[s])):s in r?r[s].push(n):(r[s]=[n],i(...e,(e,...t)=>{e||(a[s]=t);var n=r[s];delete r[s];for(var d=0,c=n.length;d<c;d++)n[d](e,...t)}))});return s.memo=a,s.unmemoized=e,s}function H(e,t){return ct(Oe,e,t)}function Z(e,t,n){return ct(xe(t),e,n)}function $(e,t){var n=o(e);return M((e,t)=>{n(e[0],t)},t,1)}function J(e,t){var n=$(e,t);return n.push=function(e,t=0,a=()=>{}){if("function"!=typeof a)throw new Error("task callback must be a function");if(n.started=!0,Array.isArray(e)||(e=[e]),0===e.length)return ve(()=>n.drain());for(var r=n._tasks.head;r&&t>=r.priority;)r=r.next;for(var s,d=0,c=e.length;d<c;d++)s={data:e[d],priority:t,callback:a},r?n._tasks.insertBefore(r,s):n._tasks.push(s);ve(n.process)},delete n.unshift,n}function ee(e,t,n,i){var a=[...e].reverse();return Ve(a,t,n,i)}function te(e){var t=o(e);return n(function(e,n){return e.push((e,...t)=>{if(e)return n(null,{error:e});var i=t;1>=t.length&&([i]=t),n(null,{value:i})}),t.apply(this,e)})}function ne(e){var t;return Array.isArray(e)?t=e.map(te):(t={},Object.keys(e).forEach(n=>{t[n]=te.call(this,e[n])})),t}function ie(e,t,n,i){const a=o(n);return D(e,t,(e,t)=>{a(e,(e,n)=>{t(e,!n)})},i)}function ae(e){return function(){return e}}function re(e,t,n){function i(){r((e,...t)=>{!1===e||(e&&s++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(e))?setTimeout(i,a.intervalFunc(s)):n(e,...t))})}var a={times:ht,intervalFunc:ae(yt)};if(3>arguments.length&&"function"==typeof e?(n=t||_(),t=e):(se(a,e),n=n||_()),"function"!=typeof t)throw new Error("Invalid arguments for async.retry");var r=o(t),s=1;return i(),n[Be]}function se(e,n){if("object"==typeof n)e.times=+n.times||ht,e.intervalFunc="function"==typeof n.interval?n.interval:ae(+n.interval||yt),e.errorFilter=n.errorFilter;else if("number"==typeof n||"string"==typeof n)e.times=+n||ht;else throw new Error("Invalid arguments for async.retry")}function le(e,t){t||(t=e,e=null);let i=e&&e.arity||t.length;d(t)&&(i+=1);var a=o(t);return n((t,n)=>{function r(e){a(...t,e)}return(t.length<i-1||null==n)&&(t.push(n),n=_()),e?re(e,r,n):re(r,n),n[Be]})}function de(e,t){return ct(je,e,t)}function ce(e,t,i){var a=o(e);return n((n,r)=>{var s,l=!1;n.push((...e)=>{l||(r(...e),clearTimeout(s))}),s=setTimeout(function(){var t=e.name||"anonymous",n=new Error("Callback function \""+t+"\" timed out.");n.code="ETIMEDOUT",i&&(n.info=i),l=!0,r(n)},t),a(...n)})}function ue(e){for(var t=Array(e);e--;)t[e]=e;return t}function oe(e,t,n,i){var a=o(n);return qe(ue(e),t,a,i)}function fe(e,t,n){return oe(e,1/0,t,n)}function pe(e,t,n){return oe(e,1,t,n)}function he(e,t,n,i){3>=arguments.length&&"function"==typeof t&&(i=n,n=t,t=Array.isArray(e)?[]:{}),i=y(i||_());var a=o(n);return Oe(e,(e,n,i)=>{a(t,e,n,i)},e=>i(e,t)),i[Be]}function ye(e){return(...t)=>(e.unmemoized||e)(...t)}function me(e,t,n){const i=o(e);return Lt(e=>i((t,n)=>e(t,!n)),t,n)}var ge,ke="function"==typeof setImmediate&&setImmediate,Se="object"==typeof process&&"function"==typeof process.nextTick;ge=ke?setImmediate:Se?process.nextTick:i;var ve=a(ge);const Le={};var xe=e=>(t,n,i)=>{function a(e,t){if(!d)if(o-=1,e)l=!0,i(e);else if(!1===e)l=!0,d=!0;else{if(t===Le||l&&0>=o)return l=!0,i(null);f||r()}}function r(){for(f=!0;o<e&&!l;){var t=s();if(null===t)return l=!0,void(0>=o&&i(null));o+=1,n(t.value,t.key,L(a))}f=!1}if(i=y(i),0>=e)throw new RangeError("concurrency limit cannot be less than 1");if(!t)return i(null);if(c(t))return x(t,e,n,i);if(u(t))return x(t[Symbol.asyncIterator](),e,n,i);var s=v(t),l=!1,d=!1,o=0,f=!1;r()},Ee=E(function(e,t,n,i){return xe(t)(e,o(n),i)},4),Oe=E(function(e,t,n){var i=h(e)?O:b;return i(e,o(t),n)},3),be=E(function(e,t,n){return p(Oe,e,t,n)},3),_e=f(be),je=E(function(e,t,n){return Ee(e,1,t,n)},3),Ie=E(function(e,t,n){return p(je,e,t,n)},3),Ae=f(Ie);const Be=Symbol("promiseCallback");var Me=/^(?:async\s+)?(?:function)?\s*[^(]*\(\s*([^)]+)\s*\)(?:\s*{)/m,Fe=/^(?:async\s+)?\(?\s*([^)^=]+)\s*\)?(?:\s*=>)/m,Te=/,/,we=/(=.+)?(\s*)$/,Pe=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;class ze{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,t){t.prev=e,t.next=e.next,e.next?e.next.prev=t:this.tail=t,e.next=t,this.length+=1}insertBefore(e,t){t.prev=e.prev,t.next=e,e.prev?e.prev.next=t:this.head=t,e.prev=t,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):B(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):B(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var t=this.head;t;){var{next:n}=t;e(t)&&this.removeLink(t),t=n}return this}}const Re=()=>{};var Ye,Ve=E(function(e,t,n,i){i=y(i);var a=o(n);return je(e,(e,n,i)=>{a(t,e,(e,n)=>{t=n,i(e)})},e=>i(e,t))},4),qe=E(function(e,t,n,i){return p(xe(t),e,n,i)},4),Ce=E(function(e,t,n,a){var i=o(n);return qe(e,t,(e,t)=>{i(e,(e,...n)=>e?t(e):t(null,n))},(e,t)=>{for(var n=[],r=0;r<t.length;r++)t[r]&&(n=n.concat(...t[r]));return a(e,n)})},4),Qe=E(function(e,t,n){return Ce(e,1/0,t,n)},3),Ne=E(function(e,t,n){return Ce(e,1,t,n)},3),De=E(function(e,t,n){return R(e=>e,(e,t)=>t)(Oe,e,t,n)},3),Ue=E(function(e,t,n,i){return R(e=>e,(e,t)=>t)(xe(t),e,n,i)},4),We=E(function(e,t,n){return R(e=>e,(e,t)=>t)(xe(1),e,t,n)},3),Ge=Y("dir"),Ke=E(function(e,t,n){function i(e,...t){return e?n(e):void(!1===e||(r=t,l(...t,a)))}function a(e,t){return e?n(e):!1===e?void 0:t?void s(i):n(null,...r)}n=L(n);var r,s=o(e),l=o(t);return a(null,!0)},3),Xe=E(function(e,t,n){return Oe(e,q(o(t)),n)},3),He=E(function(e,t,n,i){return xe(t)(e,q(o(n)),i)},4),Ze=E(function(e,t,n){return He(e,1,t,n)},3),$e=E(function(e,t,n){return R(e=>!e,e=>!e)(Oe,e,t,n)},3),Je=E(function(e,t,n,i){return R(e=>!e,e=>!e)(xe(t),e,n,i)},4),et=E(function(e,t,n){return R(e=>!e,e=>!e)(je,e,t,n)},3),tt=E(function(e,t,n){return D(Oe,e,t,n)},3),nt=E(function(e,t,n,i){return D(xe(t),e,n,i)},4),it=E(function(e,t,n){return D(je,e,t,n)},3),at=E(function(e,t){function n(e){return e?i(e):void(!1===e||a(n))}var i=L(t),a=o(C(e));return n()},2),rt=E(function(e,t,n,a){var i=o(n);return qe(e,t,(e,t)=>{i(e,(n,i)=>n?t(n):t(null,{key:i,val:e}))},(e,t)=>{for(var n={},{hasOwnProperty:r}=Object.prototype,s=0;s<t.length;s++)if(t[s]){var{key:l}=t[s],{val:d}=t[s];r.call(n,l)?n[l].push(d):n[l]=[d]}return a(e,n)})},4),st=Y("log"),lt=E(function(e,t,n,i){i=y(i);var a={},r=o(n);return xe(t)(e,(e,t,n)=>{r(e,t,(e,i)=>e?n(e):void(a[t]=i,n()))},e=>i(e,a))},4);Ye=Se?process.nextTick:ke?setImmediate:i;var dt=a(Ye),ct=E((e,t,n)=>{var i=h(t)?[]:{};e(t,(e,t,n)=>{o(e)((e,...a)=>{2>a.length&&([a]=a),i[t]=a,n(e)})},e=>n(e,i))},3),ut=E(function(e,t){if(t=y(t),!Array.isArray(e))return t(new TypeError("First argument to race must be an array of functions"));if(!e.length)return t();for(var n=0,a=e.length;n<a;n++)o(e[n])(t)},2),ot=E(function(e,t,n){return ie(Oe,e,t,n)},3),ft=E(function(e,t,n,i){return ie(xe(t),e,n,i)},4),pt=E(function(e,t,n){return ie(je,e,t,n)},3);const ht=5,yt=0;var mt=E(function(e,t,n){return R(Boolean,e=>e)(Oe,e,t,n)},3),gt=E(function(e,t,n,i){return R(Boolean,e=>e)(xe(t),e,n,i)},4),kt=E(function(e,t,n){return R(Boolean,e=>e)(je,e,t,n)},3),St=E(function(e,t,n){function i(e,t){var n=e.criteria,i=t.criteria;return n<i?-1:n>i?1:0}var a=o(t);return be(e,(e,t)=>{a(e,(n,i)=>n?t(n):void t(null,{value:e,criteria:i}))},(e,t)=>e?n(e):void n(null,t.sort(i).map(e=>e.value)))},3),vt=E(function(e,t){var n,i=null;return Ze(e,(e,t)=>{o(e)((e,...a)=>{2>a.length?[n]=a:n=a,i=e,t(e?null:{})})},()=>t(i,n))}),Lt=E(function(e,t,n){function i(e,...t){if(e)return n(e);r=t;!1===e||l(a)}function a(e,t){return e?n(e):!1===e?void 0:t?void s(i):n(null,...r)}n=L(n);var r,s=o(t),l=o(e);return l(a)},3),xt=E(function(e,t){function n(t){var n=o(e[a++]);n(...t,L(i))}function i(i,...r){return!1===i?void 0:i||a===e.length?t(i,...r):void n(r)}if(t=y(t),!Array.isArray(e))return t(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return t();var a=0;n([])});e.default={apply:t,applyEach:_e,applyEachSeries:Ae,asyncify:r,auto:j,autoInject:A,cargo:F,cargoQueue:T,compose:P,concat:Qe,concatLimit:Ce,concatSeries:Ne,constant:z,detect:De,detectLimit:Ue,detectSeries:We,dir:Ge,doUntil:V,doWhilst:Ke,each:Xe,eachLimit:He,eachOf:Oe,eachOfLimit:Ee,eachOfSeries:je,eachSeries:Ze,ensureAsync:C,every:$e,everyLimit:Je,everySeries:et,filter:tt,filterLimit:nt,filterSeries:it,forever:at,groupBy:U,groupByLimit:rt,groupBySeries:W,log:st,map:be,mapLimit:qe,mapSeries:Ie,mapValues:G,mapValuesLimit:lt,mapValuesSeries:K,memoize:X,nextTick:dt,parallel:H,parallelLimit:Z,priorityQueue:J,queue:$,race:ut,reduce:Ve,reduceRight:ee,reflect:te,reflectAll:ne,reject:ot,rejectLimit:ft,rejectSeries:pt,retry:re,retryable:le,seq:w,series:de,setImmediate:ve,some:mt,someLimit:gt,someSeries:kt,sortBy:St,timeout:ce,times:fe,timesLimit:oe,timesSeries:pe,transform:he,tryEach:vt,unmemoize:ye,until:me,waterfall:xt,whilst:Lt,all:$e,allLimit:Je,allSeries:et,any:mt,anyLimit:gt,anySeries:kt,find:De,findLimit:Ue,findSeries:We,forEach:Xe,forEachSeries:Ze,forEachLimit:He,forEachOf:Oe,forEachOfSeries:je,forEachOfLimit:Ee,inject:Ve,foldl:Ve,foldr:ee,select:tt,selectLimit:nt,selectSeries:it,wrapSync:r,during:Lt,doDuring:Ke},e.apply=t,e.applyEach=_e,e.applyEachSeries=Ae,e.asyncify=r,e.auto=j,e.autoInject=A,e.cargo=F,e.cargoQueue=T,e.compose=P,e.concat=Qe,e.concatLimit=Ce,e.concatSeries=Ne,e.constant=z,e.detect=De,e.detectLimit=Ue,e.detectSeries=We,e.dir=Ge,e.doUntil=V,e.doWhilst=Ke,e.each=Xe,e.eachLimit=He,e.eachOf=Oe,e.eachOfLimit=Ee,e.eachOfSeries=je,e.eachSeries=Ze,e.ensureAsync=C,e.every=$e,e.everyLimit=Je,e.everySeries=et,e.filter=tt,e.filterLimit=nt,e.filterSeries=it,e.forever=at,e.groupBy=U,e.groupByLimit=rt,e.groupBySeries=W,e.log=st,e.map=be,e.mapLimit=qe,e.mapSeries=Ie,e.mapValues=G,e.mapValuesLimit=lt,e.mapValuesSeries=K,e.memoize=X,e.nextTick=dt,e.parallel=H,e.parallelLimit=Z,e.priorityQueue=J,e.queue=$,e.race=ut,e.reduce=Ve,e.reduceRight=ee,e.reflect=te,e.reflectAll=ne,e.reject=ot,e.rejectLimit=ft,e.rejectSeries=pt,e.retry=re,e.retryable=le,e.seq=w,e.series=de,e.setImmediate=ve,e.some=mt,e.someLimit=gt,e.someSeries=kt,e.sortBy=St,e.timeout=ce,e.times=fe,e.timesLimit=oe,e.timesSeries=pe,e.transform=he,e.tryEach=vt,e.unmemoize=ye,e.until=me,e.waterfall=xt,e.whilst=Lt,e.all=$e,e.allLimit=Je,e.allSeries=et,e.any=mt,e.anyLimit=gt,e.anySeries=kt,e.find=De,e.findLimit=Ue,e.findSeries=We,e.forEach=Xe,e.forEachSeries=Ze,e.forEachLimit=He,e.forEachOf=Oe,e.forEachOfSeries=je,e.forEachOfLimit=Ee,e.inject=Ve,e.foldl=Ve,e.foldr=ee,e.select=tt,e.selectLimit=nt,e.selectSeries=it,e.wrapSync=r,e.during=Lt,e.doDuring=Ke,Object.defineProperty(e,"__esModule",{value:!0})});
\ No newline at end of file +(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.async={})})(this,function(e){'use strict';function t(e,...t){return(...n)=>e(...t,...n)}function n(e){return function(...t){var n=t.pop();return e.call(this,t,n)}}function a(e){setTimeout(e,0)}function i(e){return(t,...n)=>e(()=>t(...n))}function r(e){return u(e)?function(...t){const n=t.pop(),a=e.apply(this,t);return s(a,n)}:n(function(t,n){var a;try{a=e.apply(this,t)}catch(t){return n(t)}return a&&"function"==typeof a.then?s(a,n):void n(null,a)})}function s(e,t){return e.then(e=>{l(t,null,e)},e=>{l(t,e&&e.message?e:new Error(e))})}function l(e,t,n){try{e(t,n)}catch(e){Ee(t=>{throw t},e)}}function u(e){return"AsyncFunction"===e[Symbol.toStringTag]}function c(e){return"AsyncGenerator"===e[Symbol.toStringTag]}function d(e){return"function"==typeof e[Symbol.asyncIterator]}function p(e){if("function"!=typeof e)throw new Error("expected a function");return u(e)?r(e):e}function o(e,t=e.length){function n(...n){return"function"==typeof n[t-1]?e.apply(this,n):new Promise((a,i)=>{n[t-1]=(e,...t)=>e?i(e):void a(1<t.length?t:t[0]),e.apply(this,n)})}if(!t)throw new Error("arity is undefined");return Object.defineProperty(n,"name",{value:`awaitable(${e.name})`}),n}function h(e){return function(t,...n){const a=o(function(a){var i=this;return e(t,(e,t)=>{p(e).apply(i,n.concat(t))},a)});return a}}function f(e,t,n,a){t=t||[];var i=[],r=0,s=p(n);return e(t,(e,t,n)=>{var a=r++;s(e,(e,t)=>{i[a]=t,n(e)})},e=>{a(e,i)})}function y(e){return e&&"number"==typeof e.length&&0<=e.length&&0==e.length%1}function m(e){function t(...t){if(null!==e){var n=e;e=null,n.apply(this,t)}}return Object.assign(t,e),t}function g(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}function k(e){var t=-1,n=e.length;return function(){return++t<n?{value:e[t],key:t}:null}}function v(e){var t=-1;return function(){var n=e.next();return n.done?null:(t++,{value:n.value,key:t})}}function S(e){var t=e?Object.keys(e):[],n=-1,a=t.length;return function(){var i=t[++n];return n<a?{value:e[i],key:i}:null}}function L(e){if(y(e))return k(e);var t=g(e);return t?v(t):S(e)}function x(e){return function(...t){if(null===e)throw new Error("Callback was already called.");var n=e;e=null,n.apply(this,t)}}function E(e,t,n,a){function i(){d>=t||c||l||(c=!0,e.next().then(({value:e,done:t})=>{if(!(u||l))return c=!1,t?(l=!0,void(0>=d&&a(null))):void(d++,n(e,p,r),p++,i())}).catch(s))}function r(e,t){return d-=1,u?void 0:e?s(e):!1===e?(l=!0,void(u=!0)):t===be||l&&0>=d?(l=!0,a(null)):void i()}function s(e){u||(c=!1,l=!0,a(e))}let l=!1,u=!1,c=!1,d=0,p=0;i()}function b(e,t,n){function a(e,t){!1===e&&(l=!0);!0===l||(e?n(e):(++r===s||t===be)&&n(null))}n=m(n);var i=0,r=0,{length:s}=e,l=!1;for(0===s&&n(null);i<s;i++)t(e[i],i,x(a))}function O(e,t,n){return _e(e,1/0,t,n)}function _(){function e(e,...a){return e?n(e):void t(1<a.length?a:a[0])}let t,n;return e[Fe]=new Promise((e,a)=>{t=e,n=a}),e}function M(e,t,n){function a(e,t){g.push(()=>l(e,t))}function i(){if(!h){if(0===g.length&&0===o)return n(null,d);for(;g.length&&o<t;){var e=g.shift();e()}}}function r(e,t){var n=y[e];n||(n=y[e]=[]),n.push(t)}function s(e){var t=y[e]||[];t.forEach(e=>e()),i()}function l(e,t){if(!f){var a=x((t,...a)=>{if(o--,!1===t)return void(h=!0);if(2>a.length&&([a]=a),t){var i={};if(Object.keys(d).forEach(e=>{i[e]=d[e]}),i[e]=a,f=!0,y=Object.create(null),h)return;n(t,i)}else d[e]=a,s(e)});o++;var i=p(t[t.length-1]);1<t.length?i(d,a):i(a)}}function u(t){var n=[];return Object.keys(e).forEach(a=>{const i=e[a];Array.isArray(i)&&0<=i.indexOf(t)&&n.push(a)}),n}"number"!=typeof t&&(n=t,t=null),n=m(n||_());var c=Object.keys(e).length;if(!c)return n(null);t||(t=c);var d={},o=0,h=!1,f=!1,y=Object.create(null),g=[],k=[],v={};return Object.keys(e).forEach(t=>{var n=e[t];if(!Array.isArray(n))return a(t,[n]),void k.push(t);var i=n.slice(0,n.length-1),s=i.length;return 0===s?(a(t,n),void k.push(t)):void(v[t]=s,i.forEach(l=>{if(!e[l])throw new Error("async.auto task `"+t+"` has a non-existent dependency `"+l+"` in "+i.join(", "));r(l,()=>{s--,0===s&&a(t,n)})}))}),function(){for(var e,t=0;k.length;)e=k.pop(),t++,u(e).forEach(e=>{0==--v[e]&&k.push(e)});if(t!==c)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),i(),n[Fe]}function I(e){const t=e.toString().replace(ze,"");let n=t.match(Pe);if(n||(n=t.match(Te)),!n)throw new Error("could not parse args in autoInject\nSource:\n"+t);let[,a]=n;return a.replace(/\s/g,"").split(Re).map(e=>e.replace(Ce,"").trim())}function j(e,t){var n={};return Object.keys(e).forEach(t=>{function a(e,t){var n=i.map(t=>e[t]);n.push(t),p(r)(...n)}var i,r=e[t],s=u(r),l=!s&&1===r.length||s&&0===r.length;if(Array.isArray(r))i=[...r],r=i.pop(),n[t]=i.concat(0<i.length?a:r);else if(l)n[t]=r;else{if(i=I(r),0===r.length&&!s&&0===i.length)throw new Error("autoInject task functions require explicit parameters.");s||i.pop(),n[t]=i.concat(a)}}),M(n,t)}function A(e,t){e.length=1,e.head=e.tail=t}function w(e,t,n){function a(e,t){h[e].push(t)}function i(e,t){const n=(...a)=>{r(e,n),t(...a)};h[e].push(n)}function r(e,t){return e?t?void(h[e]=h[e].filter(e=>e!==t)):h[e]=[]:Object.keys(h).forEach(e=>h[e]=[])}function s(e,...t){h[e].forEach(e=>e(...t))}function l(e,t,n){if(null!=n&&"function"!=typeof n)throw new Error("task callback must be a function");if(g.started=!0,Array.isArray(e))return 0===e.length&&g.idle()?Ee(()=>s("drain")):e.map(e=>l(e,t,n));var a,i={data:e,callback:n||function(e,...t){return e?void 0:1>=t.length?a(t[0]):void a(t)}};if(t?g._tasks.unshift(i):g._tasks.push(i),f||(f=!0,Ee(()=>{f=!1,g.process()})),!n)return new Promise(e=>{a=e})}function u(e){return function(t,...n){d-=1;for(var a=0,r=e.length;a<r;a++){var l=e[a],u=o.indexOf(l);0===u?o.shift():0<u&&o.splice(u,1),l.callback(t,...n),null!=t&&s("error",t,l.data)}d<=g.concurrency-g.buffer&&s("unsaturated"),g.idle()&&s("drain"),g.process()}}if(null==t)t=1;else if(0===t)throw new RangeError("Concurrency must not be zero");var c=p(e),d=0,o=[];const h={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};var f=!1;const y=e=>t=>t?void(r(e),a(e,t)):new Promise((t,n)=>{i(e,(e,a)=>e?n(e):void t(a))});var m=!1,g={_tasks:new Ye,*[Symbol.iterator](){yield*g._tasks[Symbol.iterator]()},concurrency:t,payload:n,buffer:t/4,started:!1,paused:!1,push(e,t){return l(e,!1,t)},kill(){r(),g._tasks.empty()},unshift(e,t){return l(e,!0,t)},remove(e){g._tasks.remove(e)},process(){var e=Math.min;if(!m){for(m=!0;!g.paused&&d<g.concurrency&&g._tasks.length;){var t=[],n=[],a=g._tasks.length;g.payload&&(a=e(a,g.payload));for(var r,p=0;p<a;p++)r=g._tasks.shift(),t.push(r),o.push(r),n.push(r.data);d+=1,0===g._tasks.length&&s("empty"),d===g.concurrency&&s("saturated");var h=x(u(t));c(n,h)}m=!1}},length(){return g._tasks.length},running(){return d},workersList(){return o},idle(){return 0===g._tasks.length+d},pause(){g.paused=!0},resume(){!1===g.paused||(g.paused=!1,Ee(g.process))}};return Object.defineProperties(g,{saturated:{writable:!1,value:y("saturated")},unsaturated:{writable:!1,value:y("unsaturated")},empty:{writable:!1,value:y("empty")},drain:{writable:!1,value:y("drain")},error:{writable:!1,value:y("error")}}),g}function B(e,t){return w(e,1,t)}function F(e,t,n){return w(e,t,n)}function P(...e){var t=e.map(p);return function(...e){var n=this,a=e[e.length-1];return"function"==typeof a?e.pop():a=_(),Ne(t,e,(e,t,a)=>{t.apply(n,e.concat((e,...t)=>{a(e,t)}))},(e,t)=>a(e,...t)),a[Fe]}}function T(...e){return P(...e.reverse())}function R(...e){return function(...t){var n=t.pop();return n(null,...e)}}function C(e,t){return(n,a,i,r)=>{var s,l=!1;const u=p(i);n(a,(n,a,i)=>{u(n,(a,r)=>a||!1===a?i(a):e(r)&&!s?(l=!0,s=t(!0,n),i(null,be)):void i())},e=>e?r(e):void r(null,l?s:t(!1)))}}function z(e){return(t,...n)=>p(t)(...n,(t,...n)=>{"object"==typeof console&&(t?console.error&&console.error(t):console[e]&&n.forEach(t=>console[e](t)))})}function Y(e,t,n){const a=p(t);return Je(e,(...e)=>{const t=e.pop();a(...e,(e,n)=>t(e,!n))},n)}function V(e){return(t,n,a)=>e(t,a)}function N(e){return u(e)?e:function(...t){var n=t.pop(),a=!0;t.push((...e)=>{a?Ee(()=>n(...e)):n(...e)}),e.apply(this,t),a=!1}}function q(e,t,n,a){var r=Array(t.length);e(t,(e,t,a)=>{n(e,(e,n)=>{r[t]=!!n,a(e)})},e=>{if(e)return a(e);for(var n=[],s=0;s<t.length;s++)r[s]&&n.push(t[s]);a(null,n)})}function D(e,t,n,a){var i=[];e(t,(e,t,a)=>{n(e,(n,r)=>n?a(n):void(r&&i.push({index:t,value:e}),a(n)))},e=>e?a(e):void a(null,i.sort((e,t)=>e.index-t.index).map(e=>e.value)))}function Q(e,t,n,a){var i=y(t)?q:D;return i(e,t,p(n),a)}function U(e,t,n){return lt(e,1/0,t,n)}function G(e,t,n){return lt(e,1,t,n)}function W(e,t,n){return ct(e,1/0,t,n)}function K(e,t,n){return ct(e,1,t,n)}function X(e,t=e=>e){var a=Object.create(null),r=Object.create(null),s=p(e),l=n((e,n)=>{var u=t(...e);u in a?Ee(()=>n(null,...a[u])):u in r?r[u].push(n):(r[u]=[n],s(...e,(e,...t)=>{e||(a[u]=t);var n=r[u];delete r[u];for(var s=0,c=n.length;s<c;s++)n[s](e,...t)}))});return l.memo=a,l.unmemoized=e,l}function J(e,t){return pt(Me,e,t)}function Z(e,t,n){return pt(Oe(t),e,n)}function $(e,t){var n=p(e);return w((e,t)=>{n(e[0],t)},t,1)}function H(e){return(e<<1)+1}function ee(e){return(e+1>>1)-1}function te(e,t){return e.priority===t.priority?e.pushCount<t.pushCount:e.priority<t.priority}function ne(e,t){var n=$(e,t);return n._tasks=new ot,n.push=function(e,t=0,a=()=>{}){if("function"!=typeof a)throw new Error("task callback must be a function");if(n.started=!0,Array.isArray(e)||(e=[e]),0===e.length&&n.idle())return Ee(()=>n.drain());for(var r,s=0,u=e.length;s<u;s++)r={data:e[s],priority:t,callback:a},n._tasks.push(r);Ee(n.process)},delete n.unshift,n}function ae(e,t,n,a){var i=[...e].reverse();return Ne(i,t,n,a)}function ie(e){var t=p(e);return n(function(e,n){return e.push((e,...t)=>{let a={};if(e&&(a.error=e),0<t.length){var i=t;1>=t.length&&([i]=t),a.value=i}n(null,a)}),t.apply(this,e)})}function re(e){var t;return Array.isArray(e)?t=e.map(ie):(t={},Object.keys(e).forEach(n=>{t[n]=ie.call(this,e[n])})),t}function se(e,t,n,a){const i=p(n);return Q(e,t,(e,t)=>{i(e,(e,n)=>{t(e,!n)})},a)}function le(e){return function(){return e}}function ue(e,t,n){function a(){r((e,...t)=>{!1===e||(e&&s++<i.times&&("function"!=typeof i.errorFilter||i.errorFilter(e))?setTimeout(a,i.intervalFunc(s-1)):n(e,...t))})}var i={times:gt,intervalFunc:le(kt)};if(3>arguments.length&&"function"==typeof e?(n=t||_(),t=e):(ce(i,e),n=n||_()),"function"!=typeof t)throw new Error("Invalid arguments for async.retry");var r=p(t),s=1;return a(),n[Fe]}function ce(e,n){if("object"==typeof n)e.times=+n.times||gt,e.intervalFunc="function"==typeof n.interval?n.interval:le(+n.interval||kt),e.errorFilter=n.errorFilter;else if("number"==typeof n||"string"==typeof n)e.times=+n||gt;else throw new Error("Invalid arguments for async.retry")}function de(e,t){t||(t=e,e=null);let a=e&&e.arity||t.length;u(t)&&(a+=1);var i=p(t);return n((t,n)=>{function r(e){i(...t,e)}return(t.length<a-1||null==n)&&(t.push(n),n=_()),e?ue(e,r,n):ue(r,n),n[Fe]})}function pe(e,t){return pt(Ae,e,t)}function oe(e,t,a){var i=p(e);return n((n,r)=>{var s,l=!1;n.push((...e)=>{l||(r(...e),clearTimeout(s))}),s=setTimeout(function(){var t=e.name||"anonymous",n=new Error("Callback function \""+t+"\" timed out.");n.code="ETIMEDOUT",a&&(n.info=a),l=!0,r(n)},t),i(...n)})}function he(e){for(var t=Array(e);e--;)t[e]=e;return t}function fe(e,t,n,a){var i=p(n);return qe(he(e),t,i,a)}function ye(e,t,n){return fe(e,1/0,t,n)}function me(e,t,n){return fe(e,1,t,n)}function ge(e,t,n,a){3>=arguments.length&&"function"==typeof t&&(a=n,n=t,t=Array.isArray(e)?[]:{}),a=m(a||_());var i=p(n);return Me(e,(e,n,a)=>{i(t,e,n,a)},e=>a(e,t)),a[Fe]}function ke(e){return(...t)=>(e.unmemoized||e)(...t)}function ve(e,t,n){const a=p(e);return bt(e=>a((t,n)=>e(t,!n)),t,n)}var Se,Le="function"==typeof setImmediate&&setImmediate,xe="object"==typeof process&&"function"==typeof process.nextTick;Se=Le?setImmediate:xe?process.nextTick:a;var Ee=i(Se);const be={};var Oe=e=>(t,n,a)=>{function i(e,t){if(!u)if(p-=1,e)l=!0,a(e);else if(!1===e)l=!0,u=!0;else{if(t===be||l&&0>=p)return l=!0,a(null);o||r()}}function r(){for(o=!0;p<e&&!l;){var t=s();if(null===t)return l=!0,void(0>=p&&a(null));p+=1,n(t.value,t.key,x(i))}o=!1}if(a=m(a),0>=e)throw new RangeError("concurrency limit cannot be less than 1");if(!t)return a(null);if(c(t))return E(t,e,n,a);if(d(t))return E(t[Symbol.asyncIterator](),e,n,a);var s=L(t),l=!1,u=!1,p=0,o=!1;r()},_e=o(function(e,t,n,a){return Oe(t)(e,p(n),a)},4),Me=o(function(e,t,n){var a=y(e)?b:O;return a(e,p(t),n)},3),Ie=o(function(e,t,n){return f(Me,e,t,n)},3),je=h(Ie),Ae=o(function(e,t,n){return _e(e,1,t,n)},3),we=o(function(e,t,n){return f(Ae,e,t,n)},3),Be=h(we);const Fe=Symbol("promiseCallback");var Pe=/^(?:async\s+)?(?:function)?\s*[^(]*\(\s*([^)]+)\s*\)(?:\s*{)/m,Te=/^(?:async\s+)?(?:function\s+)?\(?\s*([^)^=]+)\s*\)?(?:\s*=>)/m,Re=/,/,Ce=/(=.+)?(\s*)$/,ze=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;class Ye{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,t){t.prev=e,t.next=e.next,e.next?e.next.prev=t:this.tail=t,e.next=t,this.length+=1}insertBefore(e,t){t.prev=e.prev,t.next=e,e.prev?e.prev.next=t:this.head=t,e.prev=t,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):A(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):A(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var t=this.head;t;){var{next:n}=t;e(t)&&this.removeLink(t),t=n}return this}}var Ve,Ne=o(function(e,t,n,a){a=m(a);var r=p(n);return Ae(e,(e,n,a)=>{r(t,e,(e,n)=>{t=n,a(e)})},e=>a(e,t))},4),qe=o(function(e,t,n,a){return f(Oe(t),e,n,a)},4),De=o(function(e,t,n,a){var i=p(n);return qe(e,t,(e,t)=>{i(e,(e,...n)=>e?t(e):t(e,n))},(e,t)=>{for(var n=[],r=0;r<t.length;r++)t[r]&&(n=n.concat(...t[r]));return a(e,n)})},4),Qe=o(function(e,t,n){return De(e,1/0,t,n)},3),Ue=o(function(e,t,n){return De(e,1,t,n)},3),Ge=o(function(e,t,n){return C(e=>e,(e,t)=>t)(Me,e,t,n)},3),We=o(function(e,t,n,a){return C(e=>e,(e,t)=>t)(Oe(t),e,n,a)},4),Ke=o(function(e,t,n){return C(e=>e,(e,t)=>t)(Oe(1),e,t,n)},3),Xe=z("dir"),Je=o(function(e,t,n){function a(e,...t){return e?n(e):void(!1===e||(r=t,l(...t,i)))}function i(e,t){return e?n(e):!1===e?void 0:t?void s(a):n(null,...r)}n=x(n);var r,s=p(e),l=p(t);return i(null,!0)},3),Ze=o(function(e,t,n){return Me(e,V(p(t)),n)},3),$e=o(function(e,t,n,a){return Oe(t)(e,V(p(n)),a)},4),He=o(function(e,t,n){return $e(e,1,t,n)},3),et=o(function(e,t,n){return C(e=>!e,e=>!e)(Me,e,t,n)},3),tt=o(function(e,t,n,a){return C(e=>!e,e=>!e)(Oe(t),e,n,a)},4),nt=o(function(e,t,n){return C(e=>!e,e=>!e)(Ae,e,t,n)},3),at=o(function(e,t,n){return Q(Me,e,t,n)},3),it=o(function(e,t,n,a){return Q(Oe(t),e,n,a)},4),rt=o(function(e,t,n){return Q(Ae,e,t,n)},3),st=o(function(e,t){function n(e){return e?a(e):void(!1===e||i(n))}var a=x(t),i=p(N(e));return n()},2),lt=o(function(e,t,n,a){var i=p(n);return qe(e,t,(e,t)=>{i(e,(n,a)=>n?t(n):t(n,{key:a,val:e}))},(e,t)=>{for(var n={},{hasOwnProperty:r}=Object.prototype,s=0;s<t.length;s++)if(t[s]){var{key:l}=t[s],{val:u}=t[s];r.call(n,l)?n[l].push(u):n[l]=[u]}return a(e,n)})},4),ut=z("log"),ct=o(function(e,t,n,a){a=m(a);var i={},r=p(n);return Oe(t)(e,(e,t,n)=>{r(e,t,(e,a)=>e?n(e):void(i[t]=a,n(e)))},e=>a(e,i))},4);Ve=xe?process.nextTick:Le?setImmediate:a;var dt=i(Ve),pt=o((e,t,n)=>{var a=y(t)?[]:{};e(t,(e,t,n)=>{p(e)((e,...i)=>{2>i.length&&([i]=i),a[t]=i,n(e)})},e=>n(e,a))},3);class ot{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){for(let n;0<e&&te(this.heap[e],this.heap[n=ee(e)]);){let a=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=a,e=n}}percDown(e){for(let n,a;(n=H(e))<this.heap.length&&(n+1<this.heap.length&&te(this.heap[n+1],this.heap[n])&&++n,!te(this.heap[e],this.heap[n]));)a=this.heap[e],this.heap[e]=this.heap[n],this.heap[n]=a,e=n}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let t=0;for(let n=0;n<this.heap.length;n++)e(this.heap[n])||(this.heap[t]=this.heap[n],t++);this.heap.splice(t);for(let t=ee(this.heap.length-1);0<=t;t--)this.percDown(t);return this}}var ht=o(function(e,t){if(t=m(t),!Array.isArray(e))return t(new TypeError("First argument to race must be an array of functions"));if(!e.length)return t();for(var n=0,a=e.length;n<a;n++)p(e[n])(t)},2),ft=o(function(e,t,n){return se(Me,e,t,n)},3),yt=o(function(e,t,n,a){return se(Oe(t),e,n,a)},4),mt=o(function(e,t,n){return se(Ae,e,t,n)},3);const gt=5,kt=0;var vt=o(function(e,t,n){return C(Boolean,e=>e)(Me,e,t,n)},3),St=o(function(e,t,n,a){return C(Boolean,e=>e)(Oe(t),e,n,a)},4),Lt=o(function(e,t,n){return C(Boolean,e=>e)(Ae,e,t,n)},3),xt=o(function(e,t,n){function a(e,t){var n=e.criteria,a=t.criteria;return n<a?-1:n>a?1:0}var i=p(t);return Ie(e,(e,t)=>{i(e,(n,a)=>n?t(n):void t(n,{value:e,criteria:a}))},(e,t)=>e?n(e):void n(null,t.sort(a).map(e=>e.value)))},3),Et=o(function(e,t){var n,a=null;return He(e,(e,t)=>{p(e)((e,...i)=>!1===e?t(e):void(2>i.length?[n]=i:n=i,a=e,t(e?null:{})))},()=>t(a,n))}),bt=o(function(e,t,n){function a(e,...t){if(e)return n(e);l=t;!1===e||s(i)}function i(e,t){return e?n(e):!1===e?void 0:t?void r(a):n(null,...l)}n=x(n);var r=p(t),s=p(e),l=[];return s(i)},3),Ot=o(function(e,t){function n(t){var n=p(e[i++]);n(...t,x(a))}function a(a,...r){return!1===a?void 0:a||i===e.length?t(a,...r):void n(r)}if(t=m(t),!Array.isArray(e))return t(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return t();var i=0;n([])});e.default={apply:t,applyEach:je,applyEachSeries:Be,asyncify:r,auto:M,autoInject:j,cargo:B,cargoQueue:F,compose:T,concat:Qe,concatLimit:De,concatSeries:Ue,constant:R,detect:Ge,detectLimit:We,detectSeries:Ke,dir:Xe,doUntil:Y,doWhilst:Je,each:Ze,eachLimit:$e,eachOf:Me,eachOfLimit:_e,eachOfSeries:Ae,eachSeries:He,ensureAsync:N,every:et,everyLimit:tt,everySeries:nt,filter:at,filterLimit:it,filterSeries:rt,forever:st,groupBy:U,groupByLimit:lt,groupBySeries:G,log:ut,map:Ie,mapLimit:qe,mapSeries:we,mapValues:W,mapValuesLimit:ct,mapValuesSeries:K,memoize:X,nextTick:dt,parallel:J,parallelLimit:Z,priorityQueue:ne,queue:$,race:ht,reduce:Ne,reduceRight:ae,reflect:ie,reflectAll:re,reject:ft,rejectLimit:yt,rejectSeries:mt,retry:ue,retryable:de,seq:P,series:pe,setImmediate:Ee,some:vt,someLimit:St,someSeries:Lt,sortBy:xt,timeout:oe,times:ye,timesLimit:fe,timesSeries:me,transform:ge,tryEach:Et,unmemoize:ke,until:ve,waterfall:Ot,whilst:bt,all:et,allLimit:tt,allSeries:nt,any:vt,anyLimit:St,anySeries:Lt,find:Ge,findLimit:We,findSeries:Ke,flatMap:Qe,flatMapLimit:De,flatMapSeries:Ue,forEach:Ze,forEachSeries:He,forEachLimit:$e,forEachOf:Me,forEachOfSeries:Ae,forEachOfLimit:_e,inject:Ne,foldl:Ne,foldr:ae,select:at,selectLimit:it,selectSeries:rt,wrapSync:r,during:bt,doDuring:Je},e.apply=t,e.applyEach=je,e.applyEachSeries=Be,e.asyncify=r,e.auto=M,e.autoInject=j,e.cargo=B,e.cargoQueue=F,e.compose=T,e.concat=Qe,e.concatLimit=De,e.concatSeries=Ue,e.constant=R,e.detect=Ge,e.detectLimit=We,e.detectSeries=Ke,e.dir=Xe,e.doUntil=Y,e.doWhilst=Je,e.each=Ze,e.eachLimit=$e,e.eachOf=Me,e.eachOfLimit=_e,e.eachOfSeries=Ae,e.eachSeries=He,e.ensureAsync=N,e.every=et,e.everyLimit=tt,e.everySeries=nt,e.filter=at,e.filterLimit=it,e.filterSeries=rt,e.forever=st,e.groupBy=U,e.groupByLimit=lt,e.groupBySeries=G,e.log=ut,e.map=Ie,e.mapLimit=qe,e.mapSeries=we,e.mapValues=W,e.mapValuesLimit=ct,e.mapValuesSeries=K,e.memoize=X,e.nextTick=dt,e.parallel=J,e.parallelLimit=Z,e.priorityQueue=ne,e.queue=$,e.race=ht,e.reduce=Ne,e.reduceRight=ae,e.reflect=ie,e.reflectAll=re,e.reject=ft,e.rejectLimit=yt,e.rejectSeries=mt,e.retry=ue,e.retryable=de,e.seq=P,e.series=pe,e.setImmediate=Ee,e.some=vt,e.someLimit=St,e.someSeries=Lt,e.sortBy=xt,e.timeout=oe,e.times=ye,e.timesLimit=fe,e.timesSeries=me,e.transform=ge,e.tryEach=Et,e.unmemoize=ke,e.until=ve,e.waterfall=Ot,e.whilst=bt,e.all=et,e.allLimit=tt,e.allSeries=nt,e.any=vt,e.anyLimit=St,e.anySeries=Lt,e.find=Ge,e.findLimit=We,e.findSeries=Ke,e.flatMap=Qe,e.flatMapLimit=De,e.flatMapSeries=Ue,e.forEach=Ze,e.forEachSeries=He,e.forEachLimit=$e,e.forEachOf=Me,e.forEachOfSeries=Ae,e.forEachOfLimit=_e,e.inject=Ne,e.foldl=Ne,e.foldr=ae,e.select=at,e.selectLimit=it,e.selectSeries=rt,e.wrapSync=r,e.during=bt,e.doDuring=Je,Object.defineProperty(e,"__esModule",{value:!0})});
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d27cc18..2ff9a70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "async", - "version": "3.0.1-0", + "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 23090c8..577bb6d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "async", "description": "Higher-order functions and common patterns for asynchronous code", - "version": "3.0.1-0", + "version": "2.0.1", "main": "dist/async.js", "author": "Caolan McMahon", "homepage": "https://caolan.github.io/async/", |