summaryrefslogtreecommitdiff
path: root/node_modules/async/internal
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/async/internal')
-rw-r--r--node_modules/async/internal/DoublyLinkedList.js92
-rw-r--r--node_modules/async/internal/Heap.js120
-rw-r--r--node_modules/async/internal/applyEach.js29
-rw-r--r--node_modules/async/internal/asyncEachOfLimit.js75
-rw-r--r--node_modules/async/internal/awaitify.js27
-rw-r--r--node_modules/async/internal/breakLoop.js10
-rw-r--r--node_modules/async/internal/consoleFunc.js31
-rw-r--r--node_modules/async/internal/createTester.js40
-rw-r--r--node_modules/async/internal/eachOfLimit.js90
-rw-r--r--node_modules/async/internal/filter.js55
-rw-r--r--node_modules/async/internal/getIterator.js11
-rw-r--r--node_modules/async/internal/initialParams.js14
-rw-r--r--node_modules/async/internal/isArrayLike.js10
-rw-r--r--node_modules/async/internal/iterator.js57
-rw-r--r--node_modules/async/internal/map.js30
-rw-r--r--node_modules/async/internal/once.js17
-rw-r--r--node_modules/async/internal/onlyOnce.js15
-rw-r--r--node_modules/async/internal/parallel.js34
-rw-r--r--node_modules/async/internal/promiseCallback.js23
-rw-r--r--node_modules/async/internal/queue.js294
-rw-r--r--node_modules/async/internal/range.js14
-rw-r--r--node_modules/async/internal/reject.js26
-rw-r--r--node_modules/async/internal/setImmediate.js34
-rw-r--r--node_modules/async/internal/withoutIndex.js10
-rw-r--r--node_modules/async/internal/wrapAsync.js34
25 files changed, 1192 insertions, 0 deletions
diff --git a/node_modules/async/internal/DoublyLinkedList.js b/node_modules/async/internal/DoublyLinkedList.js
new file mode 100644
index 0000000..cd11c3b
--- /dev/null
+++ b/node_modules/async/internal/DoublyLinkedList.js
@@ -0,0 +1,92 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation
+// used for queues. This implementation assumes that the node provided by the user can be modified
+// to adjust the next and last properties. We implement only the minimal functionality
+// for queue support.
+class DLL {
+ constructor() {
+ this.head = this.tail = null;
+ this.length = 0;
+ }
+
+ removeLink(node) {
+ if (node.prev) node.prev.next = node.next;else this.head = node.next;
+ if (node.next) node.next.prev = node.prev;else this.tail = node.prev;
+
+ node.prev = node.next = null;
+ this.length -= 1;
+ return node;
+ }
+
+ empty() {
+ while (this.head) this.shift();
+ return this;
+ }
+
+ insertAfter(node, newNode) {
+ newNode.prev = node;
+ newNode.next = node.next;
+ if (node.next) node.next.prev = newNode;else this.tail = newNode;
+ node.next = newNode;
+ this.length += 1;
+ }
+
+ insertBefore(node, newNode) {
+ newNode.prev = node.prev;
+ newNode.next = node;
+ if (node.prev) node.prev.next = newNode;else this.head = newNode;
+ node.prev = newNode;
+ this.length += 1;
+ }
+
+ unshift(node) {
+ if (this.head) this.insertBefore(this.head, node);else setInitial(this, node);
+ }
+
+ push(node) {
+ if (this.tail) this.insertAfter(this.tail, node);else setInitial(this, node);
+ }
+
+ shift() {
+ return this.head && this.removeLink(this.head);
+ }
+
+ pop() {
+ return this.tail && this.removeLink(this.tail);
+ }
+
+ toArray() {
+ return [...this];
+ }
+
+ *[Symbol.iterator]() {
+ var cur = this.head;
+ while (cur) {
+ yield cur.data;
+ cur = cur.next;
+ }
+ }
+
+ remove(testFn) {
+ var curr = this.head;
+ while (curr) {
+ var { next } = curr;
+ if (testFn(curr)) {
+ this.removeLink(curr);
+ }
+ curr = next;
+ }
+ return this;
+ }
+}
+
+exports.default = DLL;
+function setInitial(dll, node) {
+ dll.length = 1;
+ dll.head = dll.tail = node;
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/Heap.js b/node_modules/async/internal/Heap.js
new file mode 100644
index 0000000..80762fe
--- /dev/null
+++ b/node_modules/async/internal/Heap.js
@@ -0,0 +1,120 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+// 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;
+ }
+}
+
+exports.default = Heap;
+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;
+ }
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/applyEach.js b/node_modules/async/internal/applyEach.js
new file mode 100644
index 0000000..a3f4ef1
--- /dev/null
+++ b/node_modules/async/internal/applyEach.js
@@ -0,0 +1,29 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+exports.default = function (eachfn) {
+ return function applyEach(fns, ...callArgs) {
+ const go = (0, _awaitify2.default)(function (callback) {
+ var that = this;
+ return eachfn(fns, (fn, cb) => {
+ (0, _wrapAsync2.default)(fn).apply(that, callArgs.concat(cb));
+ }, callback);
+ });
+ return go;
+ };
+};
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+var _awaitify = require('./awaitify.js');
+
+var _awaitify2 = _interopRequireDefault(_awaitify);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/asyncEachOfLimit.js b/node_modules/async/internal/asyncEachOfLimit.js
new file mode 100644
index 0000000..bba74c7
--- /dev/null
+++ b/node_modules/async/internal/asyncEachOfLimit.js
@@ -0,0 +1,75 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = asyncEachOfLimit;
+
+var _breakLoop = require('./breakLoop.js');
+
+var _breakLoop2 = _interopRequireDefault(_breakLoop);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// for async generators
+function asyncEachOfLimit(generator, limit, iteratee, callback) {
+ let done = false;
+ let canceled = false;
+ let awaiting = false;
+ let running = 0;
+ let idx = 0;
+
+ function replenish() {
+ //console.log('replenish')
+ if (running >= limit || awaiting || done) return;
+ //console.log('replenish awaiting')
+ awaiting = true;
+ generator.next().then(({ value, done: iterDone }) => {
+ //console.log('got value', value)
+ if (canceled || done) return;
+ awaiting = false;
+ if (iterDone) {
+ done = true;
+ if (running <= 0) {
+ //console.log('done nextCb')
+ callback(null);
+ }
+ return;
+ }
+ running++;
+ iteratee(value, idx, iterateeCallback);
+ idx++;
+ replenish();
+ }).catch(handleError);
+ }
+
+ function iterateeCallback(err, result) {
+ //console.log('iterateeCallback')
+ running -= 1;
+ if (canceled) return;
+ if (err) return handleError(err);
+
+ if (err === false) {
+ done = true;
+ canceled = true;
+ return;
+ }
+
+ if (result === _breakLoop2.default || done && running <= 0) {
+ done = true;
+ //console.log('done iterCb')
+ return callback(null);
+ }
+ replenish();
+ }
+
+ function handleError(err) {
+ if (canceled) return;
+ awaiting = false;
+ done = true;
+ callback(err);
+ }
+
+ replenish();
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/awaitify.js b/node_modules/async/internal/awaitify.js
new file mode 100644
index 0000000..7b36f1a
--- /dev/null
+++ b/node_modules/async/internal/awaitify.js
@@ -0,0 +1,27 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = awaitify;
+// 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);
+ });
+ }
+
+ return awaitable;
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/breakLoop.js b/node_modules/async/internal/breakLoop.js
new file mode 100644
index 0000000..8245e55
--- /dev/null
+++ b/node_modules/async/internal/breakLoop.js
@@ -0,0 +1,10 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+// A temporary value used to identify if the loop should be broken.
+// See #1064, #1293
+const breakLoop = {};
+exports.default = breakLoop;
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/consoleFunc.js b/node_modules/async/internal/consoleFunc.js
new file mode 100644
index 0000000..70347a5
--- /dev/null
+++ b/node_modules/async/internal/consoleFunc.js
@@ -0,0 +1,31 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = consoleFunc;
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function consoleFunc(name) {
+ return (fn, ...args) => (0, _wrapAsync2.default)(fn)(...args, (err, ...resultArgs) => {
+ /* istanbul ignore else */
+ if (typeof console === 'object') {
+ /* istanbul ignore else */
+ if (err) {
+ /* istanbul ignore else */
+ if (console.error) {
+ console.error(err);
+ }
+ } else if (console[name]) {
+ /* istanbul ignore else */
+ resultArgs.forEach(x => console[name](x));
+ }
+ }
+ });
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/createTester.js b/node_modules/async/internal/createTester.js
new file mode 100644
index 0000000..7b2d734
--- /dev/null
+++ b/node_modules/async/internal/createTester.js
@@ -0,0 +1,40 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = _createTester;
+
+var _breakLoop = require('./breakLoop.js');
+
+var _breakLoop2 = _interopRequireDefault(_breakLoop);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _createTester(check, getResult) {
+ return (eachfn, arr, _iteratee, cb) => {
+ var testPassed = false;
+ var testResult;
+ const iteratee = (0, _wrapAsync2.default)(_iteratee);
+ eachfn(arr, (value, _, callback) => {
+ iteratee(value, (err, result) => {
+ if (err || err === false) return callback(err);
+
+ if (check(result) && !testResult) {
+ testPassed = true;
+ testResult = getResult(true, value);
+ return callback(null, _breakLoop2.default);
+ }
+ callback();
+ });
+ }, err => {
+ if (err) return cb(err);
+ cb(null, testPassed ? testResult : getResult(false));
+ });
+ };
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/eachOfLimit.js b/node_modules/async/internal/eachOfLimit.js
new file mode 100644
index 0000000..fc26b20
--- /dev/null
+++ b/node_modules/async/internal/eachOfLimit.js
@@ -0,0 +1,90 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _once = require('./once.js');
+
+var _once2 = _interopRequireDefault(_once);
+
+var _iterator = require('./iterator.js');
+
+var _iterator2 = _interopRequireDefault(_iterator);
+
+var _onlyOnce = require('./onlyOnce.js');
+
+var _onlyOnce2 = _interopRequireDefault(_onlyOnce);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _asyncEachOfLimit = require('./asyncEachOfLimit.js');
+
+var _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);
+
+var _breakLoop = require('./breakLoop.js');
+
+var _breakLoop2 = _interopRequireDefault(_breakLoop);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+exports.default = limit => {
+ return (obj, iteratee, callback) => {
+ callback = (0, _once2.default)(callback);
+ if (limit <= 0) {
+ throw new RangeError('concurrency limit cannot be less than 1');
+ }
+ if (!obj) {
+ return callback(null);
+ }
+ if ((0, _wrapAsync.isAsyncGenerator)(obj)) {
+ return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);
+ }
+ if ((0, _wrapAsync.isAsyncIterable)(obj)) {
+ return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);
+ }
+ var nextElem = (0, _iterator2.default)(obj);
+ var done = false;
+ var canceled = false;
+ var running = 0;
+ var looping = false;
+
+ function iterateeCallback(err, value) {
+ if (canceled) return;
+ running -= 1;
+ if (err) {
+ done = true;
+ callback(err);
+ } else if (err === false) {
+ done = true;
+ canceled = true;
+ } else if (value === _breakLoop2.default || done && running <= 0) {
+ done = true;
+ return callback(null);
+ } else if (!looping) {
+ replenish();
+ }
+ }
+
+ function replenish() {
+ looping = true;
+ while (running < limit && !done) {
+ var elem = nextElem();
+ if (elem === null) {
+ done = true;
+ if (running <= 0) {
+ callback(null);
+ }
+ return;
+ }
+ running += 1;
+ iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));
+ }
+ looping = false;
+ }
+
+ replenish();
+ };
+};
+
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/filter.js b/node_modules/async/internal/filter.js
new file mode 100644
index 0000000..aef2b9d
--- /dev/null
+++ b/node_modules/async/internal/filter.js
@@ -0,0 +1,55 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = _filter;
+
+var _isArrayLike = require('./isArrayLike.js');
+
+var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function filterArray(eachfn, arr, iteratee, callback) {
+ var truthValues = new Array(arr.length);
+ eachfn(arr, (x, index, iterCb) => {
+ iteratee(x, (err, v) => {
+ truthValues[index] = !!v;
+ iterCb(err);
+ });
+ }, err => {
+ if (err) return callback(err);
+ var results = [];
+ for (var i = 0; i < arr.length; i++) {
+ if (truthValues[i]) results.push(arr[i]);
+ }
+ callback(null, results);
+ });
+}
+
+function filterGeneric(eachfn, coll, iteratee, callback) {
+ var results = [];
+ eachfn(coll, (x, index, iterCb) => {
+ iteratee(x, (err, v) => {
+ if (err) return iterCb(err);
+ if (v) {
+ results.push({ index, value: x });
+ }
+ iterCb(err);
+ });
+ }, err => {
+ if (err) return callback(err);
+ callback(null, results.sort((a, b) => a.index - b.index).map(v => v.value));
+ });
+}
+
+function _filter(eachfn, coll, iteratee, callback) {
+ var filter = (0, _isArrayLike2.default)(coll) ? filterArray : filterGeneric;
+ return filter(eachfn, coll, (0, _wrapAsync2.default)(iteratee), callback);
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/getIterator.js b/node_modules/async/internal/getIterator.js
new file mode 100644
index 0000000..830a545
--- /dev/null
+++ b/node_modules/async/internal/getIterator.js
@@ -0,0 +1,11 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+exports.default = function (coll) {
+ return coll[Symbol.iterator] && coll[Symbol.iterator]();
+};
+
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/initialParams.js b/node_modules/async/internal/initialParams.js
new file mode 100644
index 0000000..245378c
--- /dev/null
+++ b/node_modules/async/internal/initialParams.js
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+exports.default = function (fn) {
+ return function (...args /*, callback*/) {
+ var callback = args.pop();
+ return fn.call(this, args, callback);
+ };
+};
+
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/isArrayLike.js b/node_modules/async/internal/isArrayLike.js
new file mode 100644
index 0000000..ce07670
--- /dev/null
+++ b/node_modules/async/internal/isArrayLike.js
@@ -0,0 +1,10 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = isArrayLike;
+function isArrayLike(value) {
+ return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0;
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/iterator.js b/node_modules/async/internal/iterator.js
new file mode 100644
index 0000000..90b0223
--- /dev/null
+++ b/node_modules/async/internal/iterator.js
@@ -0,0 +1,57 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = createIterator;
+
+var _isArrayLike = require('./isArrayLike.js');
+
+var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
+
+var _getIterator = require('./getIterator.js');
+
+var _getIterator2 = _interopRequireDefault(_getIterator);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function createArrayIterator(coll) {
+ var i = -1;
+ var len = coll.length;
+ return function next() {
+ return ++i < len ? { value: coll[i], key: i } : null;
+ };
+}
+
+function createES2015Iterator(iterator) {
+ var i = -1;
+ return function next() {
+ var item = iterator.next();
+ if (item.done) return null;
+ i++;
+ return { value: item.value, key: i };
+ };
+}
+
+function createObjectIterator(obj) {
+ var okeys = obj ? Object.keys(obj) : [];
+ var i = -1;
+ var len = okeys.length;
+ return function next() {
+ var key = okeys[++i];
+ if (key === '__proto__') {
+ return next();
+ }
+ return i < len ? { value: obj[key], key } : null;
+ };
+}
+
+function createIterator(coll) {
+ if ((0, _isArrayLike2.default)(coll)) {
+ return createArrayIterator(coll);
+ }
+
+ var iterator = (0, _getIterator2.default)(coll);
+ return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/map.js b/node_modules/async/internal/map.js
new file mode 100644
index 0000000..af3fd09
--- /dev/null
+++ b/node_modules/async/internal/map.js
@@ -0,0 +1,30 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = _asyncMap;
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _asyncMap(eachfn, arr, iteratee, callback) {
+ arr = arr || [];
+ var results = [];
+ var counter = 0;
+ var _iteratee = (0, _wrapAsync2.default)(iteratee);
+
+ return eachfn(arr, (value, _, iterCb) => {
+ var index = counter++;
+ _iteratee(value, (err, v) => {
+ results[index] = v;
+ iterCb(err);
+ });
+ }, err => {
+ callback(err, results);
+ });
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/once.js b/node_modules/async/internal/once.js
new file mode 100644
index 0000000..49f3727
--- /dev/null
+++ b/node_modules/async/internal/once.js
@@ -0,0 +1,17 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = once;
+function once(fn) {
+ function wrapper(...args) {
+ if (fn === null) return;
+ var callFn = fn;
+ fn = null;
+ callFn.apply(this, args);
+ }
+ Object.assign(wrapper, fn);
+ return wrapper;
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/onlyOnce.js b/node_modules/async/internal/onlyOnce.js
new file mode 100644
index 0000000..6ad721b
--- /dev/null
+++ b/node_modules/async/internal/onlyOnce.js
@@ -0,0 +1,15 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = onlyOnce;
+function onlyOnce(fn) {
+ return function (...args) {
+ if (fn === null) throw new Error("Callback was already called.");
+ var callFn = fn;
+ fn = null;
+ callFn.apply(this, args);
+ };
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/parallel.js b/node_modules/async/internal/parallel.js
new file mode 100644
index 0000000..75741bb
--- /dev/null
+++ b/node_modules/async/internal/parallel.js
@@ -0,0 +1,34 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _isArrayLike = require('./isArrayLike.js');
+
+var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+var _awaitify = require('./awaitify.js');
+
+var _awaitify2 = _interopRequireDefault(_awaitify);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+exports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => {
+ var results = (0, _isArrayLike2.default)(tasks) ? [] : {};
+
+ eachfn(tasks, (task, key, taskCb) => {
+ (0, _wrapAsync2.default)(task)((err, ...result) => {
+ if (result.length < 2) {
+ [result] = result;
+ }
+ results[key] = result;
+ taskCb(err);
+ });
+ }, err => callback(err, results));
+}, 3);
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/promiseCallback.js b/node_modules/async/internal/promiseCallback.js
new file mode 100644
index 0000000..17a8301
--- /dev/null
+++ b/node_modules/async/internal/promiseCallback.js
@@ -0,0 +1,23 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+const PROMISE_SYMBOL = Symbol('promiseCallback');
+
+function promiseCallback() {
+ let resolve, reject;
+ function callback(err, ...args) {
+ if (err) return reject(err);
+ resolve(args.length > 1 ? args : args[0]);
+ }
+
+ callback[PROMISE_SYMBOL] = new Promise((res, rej) => {
+ resolve = res, reject = rej;
+ });
+
+ return callback;
+}
+
+exports.promiseCallback = promiseCallback;
+exports.PROMISE_SYMBOL = PROMISE_SYMBOL; \ No newline at end of file
diff --git a/node_modules/async/internal/queue.js b/node_modules/async/internal/queue.js
new file mode 100644
index 0000000..cbc590d
--- /dev/null
+++ b/node_modules/async/internal/queue.js
@@ -0,0 +1,294 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = queue;
+
+var _onlyOnce = require('./onlyOnce.js');
+
+var _onlyOnce2 = _interopRequireDefault(_onlyOnce);
+
+var _setImmediate = require('./setImmediate.js');
+
+var _setImmediate2 = _interopRequireDefault(_setImmediate);
+
+var _DoublyLinkedList = require('./DoublyLinkedList.js');
+
+var _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function queue(worker, concurrency, payload) {
+ if (concurrency == null) {
+ concurrency = 1;
+ } else if (concurrency === 0) {
+ throw new RangeError('Concurrency must not be zero');
+ }
+
+ var _worker = (0, _wrapAsync2.default)(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, rejectOnError, callback) {
+ if (callback != null && typeof callback !== 'function') {
+ throw new Error('task callback must be a function');
+ }
+ q.started = true;
+
+ var res, rej;
+ function promiseCallback(err, ...args) {
+ // we don't care about the error, let the global error handler
+ // deal with it
+ if (err) return rejectOnError ? rej(err) : res();
+ if (args.length <= 1) return res(args[0]);
+ res(args);
+ }
+
+ var item = q._createTaskItem(data, rejectOnError ? promiseCallback : callback || promiseCallback);
+
+ if (insertAtFront) {
+ q._tasks.unshift(item);
+ } else {
+ q._tasks.push(item);
+ }
+
+ if (!processingScheduled) {
+ processingScheduled = true;
+ (0, _setImmediate2.default)(() => {
+ processingScheduled = false;
+ q.process();
+ });
+ }
+
+ if (rejectOnError || !callback) {
+ return new Promise((resolve, reject) => {
+ res = resolve;
+ rej = reject;
+ });
+ }
+ }
+
+ function _createCB(tasks) {
+ return function (err, ...args) {
+ numRunning -= 1;
+
+ for (var i = 0, l = tasks.length; i < l; i++) {
+ var task = tasks[i];
+
+ var index = workersList.indexOf(task);
+ if (index === 0) {
+ workersList.shift();
+ } else if (index > 0) {
+ workersList.splice(index, 1);
+ }
+
+ task.callback(err, ...args);
+
+ if (err != null) {
+ trigger('error', err, task.data);
+ }
+ }
+
+ if (numRunning <= q.concurrency - q.buffer) {
+ trigger('unsaturated');
+ }
+
+ if (q.idle()) {
+ trigger('drain');
+ }
+ q.process();
+ };
+ }
+
+ function _maybeDrain(data) {
+ if (data.length === 0 && q.idle()) {
+ // call drain immediately if there are no tasks
+ (0, _setImmediate2.default)(() => trigger('drain'));
+ return true;
+ }
+ return false;
+ }
+
+ 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 _DoublyLinkedList2.default(),
+ _createTaskItem(data, callback) {
+ return {
+ data,
+ callback
+ };
+ },
+ *[Symbol.iterator]() {
+ yield* q._tasks[Symbol.iterator]();
+ },
+ concurrency,
+ payload,
+ buffer: concurrency / 4,
+ started: false,
+ paused: false,
+ push(data, callback) {
+ if (Array.isArray(data)) {
+ if (_maybeDrain(data)) return;
+ return data.map(datum => _insert(datum, false, false, callback));
+ }
+ return _insert(data, false, false, callback);
+ },
+ pushAsync(data, callback) {
+ if (Array.isArray(data)) {
+ if (_maybeDrain(data)) return;
+ return data.map(datum => _insert(datum, false, true, callback));
+ }
+ return _insert(data, false, true, callback);
+ },
+ kill() {
+ off();
+ q._tasks.empty();
+ },
+ unshift(data, callback) {
+ if (Array.isArray(data)) {
+ if (_maybeDrain(data)) return;
+ return data.map(datum => _insert(datum, true, false, callback));
+ }
+ return _insert(data, true, false, callback);
+ },
+ unshiftAsync(data, callback) {
+ if (Array.isArray(data)) {
+ if (_maybeDrain(data)) return;
+ return data.map(datum => _insert(datum, true, true, callback));
+ }
+ return _insert(data, true, true, callback);
+ },
+ remove(testFn) {
+ q._tasks.remove(testFn);
+ },
+ process() {
+ // Avoid trying to start too many processing operations. This can occur
+ // when callbacks resolve synchronously (#1267).
+ if (isProcessing) {
+ return;
+ }
+ isProcessing = true;
+ while (!q.paused && numRunning < q.concurrency && q._tasks.length) {
+ var tasks = [],
+ data = [];
+ var l = q._tasks.length;
+ if (q.payload) l = Math.min(l, q.payload);
+ for (var i = 0; i < l; i++) {
+ var node = q._tasks.shift();
+ tasks.push(node);
+ workersList.push(node);
+ data.push(node.data);
+ }
+
+ numRunning += 1;
+
+ if (q._tasks.length === 0) {
+ trigger('empty');
+ }
+
+ if (numRunning === q.concurrency) {
+ trigger('saturated');
+ }
+
+ var cb = (0, _onlyOnce2.default)(_createCB(tasks));
+ _worker(data, cb);
+ }
+ isProcessing = false;
+ },
+ length() {
+ return q._tasks.length;
+ },
+ running() {
+ return numRunning;
+ },
+ workersList() {
+ return workersList;
+ },
+ idle() {
+ return q._tasks.length + numRunning === 0;
+ },
+ pause() {
+ q.paused = true;
+ },
+ resume() {
+ if (q.paused === false) {
+ return;
+ }
+ q.paused = false;
+ (0, _setImmediate2.default)(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;
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/range.js b/node_modules/async/internal/range.js
new file mode 100644
index 0000000..6680e64
--- /dev/null
+++ b/node_modules/async/internal/range.js
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = range;
+function range(size) {
+ var result = Array(size);
+ while (size--) {
+ result[size] = size;
+ }
+ return result;
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/reject.js b/node_modules/async/internal/reject.js
new file mode 100644
index 0000000..7388ef4
--- /dev/null
+++ b/node_modules/async/internal/reject.js
@@ -0,0 +1,26 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = reject;
+
+var _filter = require('./filter.js');
+
+var _filter2 = _interopRequireDefault(_filter);
+
+var _wrapAsync = require('./wrapAsync.js');
+
+var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function reject(eachfn, arr, _iteratee, callback) {
+ const iteratee = (0, _wrapAsync2.default)(_iteratee);
+ return (0, _filter2.default)(eachfn, arr, (value, cb) => {
+ iteratee(value, (err, v) => {
+ cb(err, !v);
+ });
+ }, callback);
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/async/internal/setImmediate.js b/node_modules/async/internal/setImmediate.js
new file mode 100644
index 0000000..513efd1
--- /dev/null
+++ b/node_modules/async/internal/setImmediate.js
@@ -0,0 +1,34 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.fallback = fallback;
+exports.wrap = wrap;
+/* istanbul ignore file */
+
+var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;
+var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;
+var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';
+
+function fallback(fn) {
+ setTimeout(fn, 0);
+}
+
+function wrap(defer) {
+ return (fn, ...args) => defer(() => fn(...args));
+}
+
+var _defer;
+
+if (hasQueueMicrotask) {
+ _defer = queueMicrotask;
+} else if (hasSetImmediate) {
+ _defer = setImmediate;
+} else if (hasNextTick) {
+ _defer = process.nextTick;
+} else {
+ _defer = fallback;
+}
+
+exports.default = wrap(_defer); \ No newline at end of file
diff --git a/node_modules/async/internal/withoutIndex.js b/node_modules/async/internal/withoutIndex.js
new file mode 100644
index 0000000..ec45fa3
--- /dev/null
+++ b/node_modules/async/internal/withoutIndex.js
@@ -0,0 +1,10 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = _withoutIndex;
+function _withoutIndex(iteratee) {
+ return (value, index, callback) => iteratee(value, callback);
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/async/internal/wrapAsync.js b/node_modules/async/internal/wrapAsync.js
new file mode 100644
index 0000000..ad4d619
--- /dev/null
+++ b/node_modules/async/internal/wrapAsync.js
@@ -0,0 +1,34 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;
+
+var _asyncify = require('../asyncify.js');
+
+var _asyncify2 = _interopRequireDefault(_asyncify);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isAsync(fn) {
+ return fn[Symbol.toStringTag] === 'AsyncFunction';
+}
+
+function isAsyncGenerator(fn) {
+ return fn[Symbol.toStringTag] === 'AsyncGenerator';
+}
+
+function isAsyncIterable(obj) {
+ return typeof obj[Symbol.asyncIterator] === 'function';
+}
+
+function wrapAsync(asyncFn) {
+ if (typeof asyncFn !== 'function') throw new Error('expected a function');
+ return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;
+}
+
+exports.default = wrapAsync;
+exports.isAsync = isAsync;
+exports.isAsyncGenerator = isAsyncGenerator;
+exports.isAsyncIterable = isAsyncIterable; \ No newline at end of file