summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2016-06-19 13:40:38 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2016-06-19 13:40:38 -0400
commit9e1c9a215d94dd84d6b5cccbabcbc4e1b37bf36f (patch)
tree487752a71e2aacf464eb23cd2b5a749f892da370
parentdc4cac3dc9b5d15af7caca47e37cd6ee3b26ace0 (diff)
downloadasync-9e1c9a215d94dd84d6b5cccbabcbc4e1b37bf36f.tar.gz
Build docs
-rw-r--r--docs/ast/source/apply.js.json618
-rw-r--r--docs/ast/source/applyEach.js.json319
-rw-r--r--docs/ast/source/applyEachSeries.js.json319
-rw-r--r--docs/ast/source/asyncify.js.json1791
-rw-r--r--docs/ast/source/auto.js.json10661
-rw-r--r--docs/ast/source/autoInject.js.json3553
-rw-r--r--docs/ast/source/cargo.js.json466
-rw-r--r--docs/ast/source/compose.js.json631
-rw-r--r--docs/ast/source/concat.js.json319
-rw-r--r--docs/ast/source/concatSeries.js.json319
-rw-r--r--docs/ast/source/constant.js.json782
-rw-r--r--docs/ast/source/detect.js.json501
-rw-r--r--docs/ast/source/detectLimit.js.json501
-rw-r--r--docs/ast/source/detectSeries.js.json501
-rw-r--r--docs/ast/source/dir.js.json247
-rw-r--r--docs/ast/source/doDuring.js.json835
-rw-r--r--docs/ast/source/doUntil.js.json577
-rw-r--r--docs/ast/source/doWhilst.js.json724
-rw-r--r--docs/ast/source/during.js.json1542
-rw-r--r--docs/ast/source/each.js.json337
-rw-r--r--docs/ast/source/eachLimit.js.json576
-rw-r--r--docs/ast/source/eachOf.js.json337
-rw-r--r--docs/ast/source/eachOfLimit.js.json466
-rw-r--r--docs/ast/source/eachOfSeries.js.json338
-rw-r--r--docs/ast/source/eachSeries.js.json338
-rw-r--r--docs/ast/source/ensureAsync.js.json1366
-rw-r--r--docs/ast/source/every.js.json337
-rw-r--r--docs/ast/source/everyLimit.js.json428
-rw-r--r--docs/ast/source/everySeries.js.json338
-rw-r--r--docs/ast/source/filter.js.json337
-rw-r--r--docs/ast/source/filterLimit.js.json319
-rw-r--r--docs/ast/source/filterSeries.js.json338
-rw-r--r--docs/ast/source/forever.js.json996
-rw-r--r--docs/ast/source/index.js.json15575
-rw-r--r--docs/ast/source/internal/applyEach.js.json1288
-rw-r--r--docs/ast/source/internal/concat.js.json960
-rw-r--r--docs/ast/source/internal/consoleFunc.js.json1402
-rw-r--r--docs/ast/source/internal/createTester.js.json2590
-rw-r--r--docs/ast/source/internal/doLimit.js.json372
-rw-r--r--docs/ast/source/internal/doParallel.js.json427
-rw-r--r--docs/ast/source/internal/doParallelLimit.js.json482
-rw-r--r--docs/ast/source/internal/doSeries.js.json427
-rw-r--r--docs/ast/source/internal/eachOfLimit.js.json2875
-rw-r--r--docs/ast/source/internal/filter.js.json1844
-rw-r--r--docs/ast/source/internal/findGetResult.js.json169
-rw-r--r--docs/ast/source/internal/getIterator.js.json497
-rw-r--r--docs/ast/source/internal/initialParams.js.json614
-rw-r--r--docs/ast/source/internal/iterator.js.json2531
-rw-r--r--docs/ast/source/internal/map.js.json1450
-rw-r--r--docs/ast/source/internal/notId.js.json170
-rw-r--r--docs/ast/source/internal/once.js.json534
-rw-r--r--docs/ast/source/internal/onlyOnce.js.json589
-rw-r--r--docs/ast/source/internal/parallel.js.json1540
-rw-r--r--docs/ast/source/internal/queue.js.json10726
-rw-r--r--docs/ast/source/internal/reject.js.json832
-rw-r--r--docs/ast/source/internal/setImmediate.js.json1737
-rw-r--r--docs/ast/source/internal/withoutIndex.js.json318
-rw-r--r--docs/ast/source/iterator.js.json1142
-rw-r--r--docs/ast/source/log.js.json247
-rw-r--r--docs/ast/source/map.js.json337
-rw-r--r--docs/ast/source/mapLimit.js.json319
-rw-r--r--docs/ast/source/mapSeries.js.json338
-rw-r--r--docs/ast/source/mapValues.js.json337
-rw-r--r--docs/ast/source/mapValuesLimit.js.json1163
-rw-r--r--docs/ast/source/mapValuesSeries.js.json338
-rw-r--r--docs/ast/source/memoize.js.json3490
-rw-r--r--docs/ast/source/nextTick.js.json872
-rw-r--r--docs/ast/source/parallel.js.json337
-rw-r--r--docs/ast/source/parallelLimit.js.json521
-rw-r--r--docs/ast/source/priorityQueue.js.json4554
-rw-r--r--docs/ast/source/queue.js.json635
-rw-r--r--docs/ast/source/race.js.json1197
-rw-r--r--docs/ast/source/reduce.js.json947
-rw-r--r--docs/ast/source/reduceRight.js.json792
-rw-r--r--docs/ast/source/reflect.js.json1713
-rw-r--r--docs/ast/source/reflectAll.js.json375
-rw-r--r--docs/ast/source/reject.js.json337
-rw-r--r--docs/ast/source/rejectLimit.js.json319
-rw-r--r--docs/ast/source/rejectSeries.js.json338
-rw-r--r--docs/ast/source/retry.js.json5339
-rw-r--r--docs/ast/source/retryable.js.json1217
-rw-r--r--docs/ast/source/seq.js.json1990
-rw-r--r--docs/ast/source/series.js.json466
-rw-r--r--docs/ast/source/setImmediate.js.json209
-rw-r--r--docs/ast/source/some.js.json337
-rw-r--r--docs/ast/source/someLimit.js.json428
-rw-r--r--docs/ast/source/someSeries.js.json338
-rw-r--r--docs/ast/source/sortBy.js.json2030
-rw-r--r--docs/ast/source/timeout.js.json2186
-rw-r--r--docs/ast/source/times.js.json337
-rw-r--r--docs/ast/source/timesLimit.js.json595
-rw-r--r--docs/ast/source/timesSeries.js.json338
-rw-r--r--docs/ast/source/transform.js.json1267
-rw-r--r--docs/ast/source/unmemoize.js.json430
-rw-r--r--docs/ast/source/until.js.json577
-rw-r--r--docs/ast/source/waterfall.js.json2534
-rw-r--r--docs/ast/source/whilst.js.json1396
-rw-r--r--docs/badge.svg17
-rw-r--r--docs/coverage.json297
-rw-r--r--docs/css/prettify-tomorrow.css132
-rw-r--r--docs/css/style.css944
-rw-r--r--docs/dump.json5805
-rw-r--r--docs/file/lib/apply.js.html162
-rw-r--r--docs/file/lib/applyEach.js.html146
-rw-r--r--docs/file/lib/applyEachSeries.js.html134
-rw-r--r--docs/file/lib/asyncify.js.html189
-rw-r--r--docs/file/lib/auto.js.html366
-rw-r--r--docs/file/lib/autoInject.js.html245
-rw-r--r--docs/file/lib/cargo.js.html193
-rw-r--r--docs/file/lib/compose.js.html153
-rw-r--r--docs/file/lib/concat.js.html142
-rw-r--r--docs/file/lib/concatSeries.js.html134
-rw-r--r--docs/file/lib/constant.js.html162
-rw-r--r--docs/file/lib/detect.js.html153
-rw-r--r--docs/file/lib/detectLimit.js.html140
-rw-r--r--docs/file/lib/detectSeries.js.html138
-rw-r--r--docs/file/lib/dir.js.html142
-rw-r--r--docs/file/lib/doDuring.js.html142
-rw-r--r--docs/file/lib/doUntil.js.html138
-rw-r--r--docs/file/lib/doWhilst.js.html142
-rw-r--r--docs/file/lib/during.js.html172
-rw-r--r--docs/file/lib/each.js.html174
-rw-r--r--docs/file/lib/eachLimit.js.html138
-rw-r--r--docs/file/lib/eachOf.js.html155
-rw-r--r--docs/file/lib/eachOfLimit.js.html138
-rw-r--r--docs/file/lib/eachOfSeries.js.html134
-rw-r--r--docs/file/lib/eachSeries.js.html135
-rw-r--r--docs/file/lib/ensureAsync.js.html165
-rw-r--r--docs/file/lib/every.js.html143
-rw-r--r--docs/file/lib/everyLimit.js.html136
-rw-r--r--docs/file/lib/everySeries.js.html134
-rw-r--r--docs/file/lib/filter.js.html142
-rw-r--r--docs/file/lib/filterLimit.js.html134
-rw-r--r--docs/file/lib/filterSeries.js.html132
-rw-r--r--docs/file/lib/forever.js.html155
-rw-r--r--docs/file/lib/index.js.html385
-rw-r--r--docs/file/lib/internal/applyEach.js.html131
-rw-r--r--docs/file/lib/internal/concat.js.html123
-rw-r--r--docs/file/lib/internal/consoleFunc.js.html133
-rw-r--r--docs/file/lib/internal/createTester.js.html152
-rw-r--r--docs/file/lib/internal/doLimit.js.html117
-rw-r--r--docs/file/lib/internal/doParallel.js.html119
-rw-r--r--docs/file/lib/internal/doParallelLimit.js.html119
-rw-r--r--docs/file/lib/internal/doSeries.js.html119
-rw-r--r--docs/file/lib/internal/eachOfLimit.js.html160
-rw-r--r--docs/file/lib/internal/filter.js.html140
-rw-r--r--docs/file/lib/internal/findGetResult.js.html115
-rw-r--r--docs/file/lib/internal/getIterator.js.html117
-rw-r--r--docs/file/lib/internal/initialParams.js.html120
-rw-r--r--docs/file/lib/internal/iterator.js.html146
-rw-r--r--docs/file/lib/internal/map.js.html131
-rw-r--r--docs/file/lib/internal/notId.js.html115
-rw-r--r--docs/file/lib/internal/once.js.html120
-rw-r--r--docs/file/lib/internal/onlyOnce.js.html120
-rw-r--r--docs/file/lib/internal/parallel.js.html132
-rw-r--r--docs/file/lib/internal/queue.js.html267
-rw-r--r--docs/file/lib/internal/reject.js.html125
-rw-r--r--docs/file/lib/internal/setImmediate.js.html142
-rw-r--r--docs/file/lib/internal/withoutIndex.js.html117
-rw-r--r--docs/file/lib/iterator.js.html159
-rw-r--r--docs/file/lib/log.js.html141
-rw-r--r--docs/file/lib/map.js.html151
-rw-r--r--docs/file/lib/mapLimit.js.html134
-rw-r--r--docs/file/lib/mapSeries.js.html133
-rw-r--r--docs/file/lib/mapValues.js.html158
-rw-r--r--docs/file/lib/mapValuesLimit.js.html145
-rw-r--r--docs/file/lib/mapValuesSeries.js.html133
-rw-r--r--docs/file/lib/memoize.js.html186
-rw-r--r--docs/file/lib/nextTick.js.html157
-rw-r--r--docs/file/lib/parallel.js.html181
-rw-r--r--docs/file/lib/parallelLimit.js.html137
-rw-r--r--docs/file/lib/priorityQueue.js.html202
-rw-r--r--docs/file/lib/queue.js.html217
-rw-r--r--docs/file/lib/race.js.html161
-rw-r--r--docs/file/lib/reduce.js.html163
-rw-r--r--docs/file/lib/reduceRight.js.html141
-rw-r--r--docs/file/lib/reflect.js.html176
-rw-r--r--docs/file/lib/reflectAll.js.html156
-rw-r--r--docs/file/lib/reject.js.html141
-rw-r--r--docs/file/lib/rejectLimit.js.html133
-rw-r--r--docs/file/lib/rejectSeries.js.html131
-rw-r--r--docs/file/lib/retry.js.html257
-rw-r--r--docs/file/lib/retryable.js.html153
-rw-r--r--docs/file/lib/seq.js.html174
-rw-r--r--docs/file/lib/series.js.html181
-rw-r--r--docs/file/lib/setImmediate.js.html145
-rw-r--r--docs/file/lib/some.js.html145
-rw-r--r--docs/file/lib/someLimit.js.html137
-rw-r--r--docs/file/lib/someSeries.js.html135
-rw-r--r--docs/file/lib/sortBy.js.html178
-rw-r--r--docs/file/lib/timeout.js.html165
-rw-r--r--docs/file/lib/times.js.html147
-rw-r--r--docs/file/lib/timesLimit.js.html133
-rw-r--r--docs/file/lib/timesSeries.js.html129
-rw-r--r--docs/file/lib/transform.js.html173
-rw-r--r--docs/file/lib/unmemoize.js.html129
-rw-r--r--docs/file/lib/until.js.html141
-rw-r--r--docs/file/lib/waterfall.js.html201
-rw-r--r--docs/file/lib/whilst.js.html159
-rw-r--r--docs/function/index.html6168
-rw-r--r--docs/identifiers.html1591
-rw-r--r--docs/image/badge.svg17
-rw-r--r--docs/image/github.pngbin0 -> 4268 bytes
-rw-r--r--docs/image/search.pngbin0 -> 12704 bytes
-rw-r--r--docs/index.html268
-rw-r--r--docs/package.json69
-rw-r--r--docs/script/inherited-summary.js28
-rw-r--r--docs/script/inner-link.js31
-rw-r--r--docs/script/manual.js13
-rw-r--r--docs/script/patch-for-local.js8
-rw-r--r--docs/script/prettify/Apache-License-2.0.txt202
-rw-r--r--docs/script/prettify/prettify.js28
-rw-r--r--docs/script/pretty-print.js25
-rw-r--r--docs/script/search.js117
-rw-r--r--docs/script/search_index.js1250
-rw-r--r--docs/script/test-summary.js54
-rw-r--r--docs/source.html905
-rw-r--r--docs/typedef/index.html507
-rw-r--r--docs/variable/index.html250
219 files changed, 158385 insertions, 0 deletions
diff --git a/docs/ast/source/apply.js.json b/docs/ast/source/apply.js.json
new file mode 100644
index 0000000..441db35
--- /dev/null
+++ b/docs/ast/source/apply.js.json
@@ -0,0 +1,618 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n ",
+ "range": [
+ 33,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1259,
+ 1263
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1273,
+ 1275
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 29
+ },
+ "end": {
+ "line": 46,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1277,
+ 1281
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 33
+ },
+ "end": {
+ "line": 46,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1296,
+ 1300
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 47,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "callArgs",
+ "range": [
+ 1310,
+ 1318
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 47,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1337,
+ 1339
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1340,
+ 1345
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 18
+ },
+ "end": {
+ "line": 48,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1337,
+ 1345
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1346,
+ 1350
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 24
+ },
+ "end": {
+ "line": 48,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1352,
+ 1356
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 30
+ },
+ "end": {
+ "line": 48,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1357,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 35
+ },
+ "end": {
+ "line": 48,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1352,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 30
+ },
+ "end": {
+ "line": 48,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "callArgs",
+ "range": [
+ 1364,
+ 1372
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 42
+ },
+ "end": {
+ "line": 48,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1352,
+ 1373
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 30
+ },
+ "end": {
+ "line": 48,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 1337,
+ 1374
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 1330,
+ 1375
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "range": [
+ 1320,
+ 1381
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 35
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1301,
+ 1381
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 16
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1296,
+ 1382
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 49,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1289,
+ 1383
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 4
+ },
+ "end": {
+ "line": 49,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1283,
+ 1385
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 39
+ },
+ "end": {
+ "line": 50,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1264,
+ 1385
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 20
+ },
+ "end": {
+ "line": 50,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "range": [
+ 1259,
+ 1386
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 50,
+ "column": 2
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n ",
+ "range": [
+ 33,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1244,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n ",
+ "range": [
+ 33,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n ",
+ "range": [
+ 33,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/applyEach.js.json b/docs/ast/source/applyEach.js.json
new file mode 100644
index 0000000..afabfbd
--- /dev/null
+++ b/docs/ast/source/applyEach.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/applyEach",
+ "raw": "'./internal/applyEach'",
+ "range": [
+ 22,
+ 44
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 0,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 53,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 53,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./map",
+ "raw": "'./map'",
+ "range": [
+ 62,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 16
+ },
+ "end": {
+ "line": 2,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 46,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 24
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, then it will return a function which lets you pass in the\n * arguments as if it were a single function call.\n *\n * @name applyEach\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n ",
+ "range": [
+ 72,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 1179,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 1189,
+ 1192
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 25
+ },
+ "end": {
+ "line": 34,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 1179,
+ 1193
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 29
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, then it will return a function which lets you pass in the\n * arguments as if it were a single function call.\n *\n * @name applyEach\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n ",
+ "range": [
+ 72,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1164,
+ 1194
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 30
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, then it will return a function which lets you pass in the\n * arguments as if it were a single function call.\n *\n * @name applyEach\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n ",
+ "range": [
+ 72,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1194
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 30
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, then it will return a function which lets you pass in the\n * arguments as if it were a single function call.\n *\n * @name applyEach\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n ",
+ "range": [
+ 72,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/applyEachSeries.js.json b/docs/ast/source/applyEachSeries.js.json
new file mode 100644
index 0000000..12921bc
--- /dev/null
+++ b/docs/ast/source/applyEachSeries.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/applyEach",
+ "raw": "'./internal/applyEach'",
+ "range": [
+ 22,
+ 44
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 0,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 53,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 53,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapSeries",
+ "raw": "'./mapSeries'",
+ "range": [
+ 68,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 22
+ },
+ "end": {
+ "line": 2,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 46,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 36
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `applyEach` but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf async\n * @see async.applyEach\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n ",
+ "range": [
+ 84,
+ 777
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 793,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 803,
+ 812
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 25
+ },
+ "end": {
+ "line": 22,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 793,
+ 813
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `applyEach` but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf async\n * @see async.applyEach\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n ",
+ "range": [
+ 84,
+ 777
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 778,
+ 814
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `applyEach` but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf async\n * @see async.applyEach\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n ",
+ "range": [
+ 84,
+ 777
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 814
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `applyEach` but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf async\n * @see async.applyEach\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n ",
+ "range": [
+ 84,
+ 777
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/asyncify.js.json b/docs/ast/source/asyncify.js.json
new file mode 100644
index 0000000..2963a80
--- /dev/null
+++ b/docs/ast/source/asyncify.js.json
@@ -0,0 +1,1791 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isObject",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isObject",
+ "raw": "'lodash/isObject'",
+ "range": [
+ 21,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 47,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 47,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 66,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 26
+ },
+ "end": {
+ "line": 2,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 40,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2016 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf async\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function to convert to an\n * asynchronous function.\n * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with\n * (callback).\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es6 example\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n ",
+ "range": [
+ 95,
+ 1971
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 57,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 1996,
+ 2004
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 24
+ },
+ "end": {
+ "line": 58,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "func",
+ "range": [
+ 2005,
+ 2009
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 33
+ },
+ "end": {
+ "line": 58,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 2024,
+ 2037
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 11
+ },
+ "end": {
+ "line": 59,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2048,
+ 2052
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 35
+ },
+ "end": {
+ "line": 59,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2054,
+ 2062
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 41
+ },
+ "end": {
+ "line": 59,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2078,
+ 2084
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 18
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 2078,
+ 2084
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2074,
+ 2085
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "TryStatement",
+ "block": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2112,
+ 2118
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 12
+ },
+ "end": {
+ "line": 62,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "func",
+ "range": [
+ 2121,
+ 2125
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 21
+ },
+ "end": {
+ "line": 62,
+ "column": 25
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2126,
+ 2131
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 26
+ },
+ "end": {
+ "line": 62,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2121,
+ 2131
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 21
+ },
+ "end": {
+ "line": 62,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 2132,
+ 2136
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 32
+ },
+ "end": {
+ "line": 62,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2138,
+ 2142
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 38
+ },
+ "end": {
+ "line": 62,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 2121,
+ 2143
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 21
+ },
+ "end": {
+ "line": 62,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 2112,
+ 2143
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 12
+ },
+ "end": {
+ "line": 62,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 2112,
+ 2144
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 12
+ },
+ "end": {
+ "line": 62,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 2098,
+ 2154
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 63,
+ "column": 9
+ }
+ }
+ },
+ "handler": {
+ "type": "CatchClause",
+ "param": {
+ "type": "Identifier",
+ "name": "e",
+ "range": [
+ 2162,
+ 2163
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 17
+ },
+ "end": {
+ "line": 63,
+ "column": 18
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2186,
+ 2194
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 19
+ },
+ "end": {
+ "line": 64,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "e",
+ "range": [
+ 2195,
+ 2196
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 2186,
+ 2197
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 19
+ },
+ "end": {
+ "line": 64,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 2179,
+ 2198
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 12
+ },
+ "end": {
+ "line": 64,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 2165,
+ 2208
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 65,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 2155,
+ 2208
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 10
+ },
+ "end": {
+ "line": 65,
+ "column": 9
+ }
+ }
+ },
+ "finalizer": null,
+ "range": [
+ 2094,
+ 2208
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 8
+ },
+ "end": {
+ "line": 65,
+ "column": 9
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " if result is Promise object",
+ "range": [
+ 2217,
+ 2247
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 8
+ },
+ "end": {
+ "line": 66,
+ "column": 38
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isObject",
+ "range": [
+ 2260,
+ 2268
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 12
+ },
+ "end": {
+ "line": 67,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2269,
+ 2275
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 21
+ },
+ "end": {
+ "line": 67,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 2260,
+ 2276
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 12
+ },
+ "end": {
+ "line": 67,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2287,
+ 2293
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 39
+ },
+ "end": {
+ "line": 67,
+ "column": 45
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "then",
+ "range": [
+ 2294,
+ 2298
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 46
+ },
+ "end": {
+ "line": 67,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 2287,
+ 2298
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 39
+ },
+ "end": {
+ "line": 67,
+ "column": 50
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2280,
+ 2298
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 32
+ },
+ "end": {
+ "line": 67,
+ "column": 50
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 2303,
+ 2313
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 55
+ },
+ "end": {
+ "line": 67,
+ "column": 65
+ }
+ }
+ },
+ "range": [
+ 2280,
+ 2313
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 32
+ },
+ "end": {
+ "line": 67,
+ "column": 65
+ }
+ }
+ },
+ "range": [
+ 2260,
+ 2313
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 12
+ },
+ "end": {
+ "line": 67,
+ "column": 65
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2329,
+ 2335
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 68,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "then",
+ "range": [
+ 2336,
+ 2340
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 19
+ },
+ "end": {
+ "line": 68,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2329,
+ 2340
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 68,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 2350,
+ 2355
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 33
+ },
+ "end": {
+ "line": 68,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2375,
+ 2383
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2384,
+ 2388
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 25
+ },
+ "end": {
+ "line": 69,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 2390,
+ 2395
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 31
+ },
+ "end": {
+ "line": 69,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 2375,
+ 2396
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2375,
+ 2397
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 2357,
+ 2411
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 40
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2341,
+ 2411
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 24
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 2329,
+ 2412
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 70,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": "catch",
+ "raw": "'catch'",
+ "range": [
+ 2413,
+ 2420
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 15
+ },
+ "end": {
+ "line": 70,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 2329,
+ 2421
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 70,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2431,
+ 2434
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 33
+ },
+ "end": {
+ "line": 70,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2454,
+ 2462
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 16
+ },
+ "end": {
+ "line": 71,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2463,
+ 2466
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 25
+ },
+ "end": {
+ "line": 71,
+ "column": 28
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "message",
+ "range": [
+ 2467,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 29
+ },
+ "end": {
+ "line": 71,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 2463,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 25
+ },
+ "end": {
+ "line": 71,
+ "column": 36
+ }
+ }
+ },
+ "consequent": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2477,
+ 2480
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 39
+ },
+ "end": {
+ "line": 71,
+ "column": 42
+ }
+ }
+ },
+ "alternate": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 2487,
+ 2492
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 49
+ },
+ "end": {
+ "line": 71,
+ "column": 54
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2493,
+ 2496
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 55
+ },
+ "end": {
+ "line": 71,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 2483,
+ 2497
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 45
+ },
+ "end": {
+ "line": 71,
+ "column": 59
+ }
+ }
+ },
+ "range": [
+ 2463,
+ 2497
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 25
+ },
+ "end": {
+ "line": 71,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 2454,
+ 2498
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 16
+ },
+ "end": {
+ "line": 71,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 2454,
+ 2499
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 16
+ },
+ "end": {
+ "line": 71,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 2436,
+ 2513
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 38
+ },
+ "end": {
+ "line": 72,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2422,
+ 2513
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 24
+ },
+ "end": {
+ "line": 72,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 2329,
+ 2514
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 2329,
+ 2515
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 2315,
+ 2525
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 67
+ },
+ "end": {
+ "line": 73,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2545,
+ 2553
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2554,
+ 2558
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 21
+ },
+ "end": {
+ "line": 74,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 2560,
+ 2566
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 27
+ },
+ "end": {
+ "line": 74,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 2545,
+ 2567
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2545,
+ 2568
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 2531,
+ 2578
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 15
+ },
+ "end": {
+ "line": 75,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 2256,
+ 2578
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 8
+ },
+ "end": {
+ "line": 75,
+ "column": 9
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " if result is Promise object",
+ "range": [
+ 2217,
+ 2247
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 8
+ },
+ "end": {
+ "line": 66,
+ "column": 38
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 2064,
+ 2584
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 51
+ },
+ "end": {
+ "line": 76,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2038,
+ 2584
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 25
+ },
+ "end": {
+ "line": 76,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 2024,
+ 2585
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 11
+ },
+ "end": {
+ "line": 76,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 2017,
+ 2586
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 4
+ },
+ "end": {
+ "line": 76,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 2011,
+ 2588
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 39
+ },
+ "end": {
+ "line": 77,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1987,
+ 2588
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 15
+ },
+ "end": {
+ "line": 77,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2016 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf async\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function to convert to an\n * asynchronous function.\n * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with\n * (callback).\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es6 example\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n ",
+ "range": [
+ 95,
+ 1971
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 57,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1972,
+ 2588
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 0
+ },
+ "end": {
+ "line": 77,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2016 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf async\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function to convert to an\n * asynchronous function.\n * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with\n * (callback).\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es6 example\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n ",
+ "range": [
+ 95,
+ 1971
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 57,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2588
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 77,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2016 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf async\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function to convert to an\n * asynchronous function.\n * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with\n * (callback).\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es6 example\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n ",
+ "range": [
+ 95,
+ 1971
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 57,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " if result is Promise object",
+ "range": [
+ 2217,
+ 2247
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 8
+ },
+ "end": {
+ "line": 66,
+ "column": 38
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/auto.js.json b/docs/ast/source/auto.js.json
new file mode 100644
index 0000000..0fdc043
--- /dev/null
+++ b/docs/ast/source/auto.js.json
@@ -0,0 +1,10661 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayEach",
+ "raw": "'lodash/_arrayEach'",
+ "range": [
+ 22,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 0,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 50,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 50,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/forOwn",
+ "raw": "'lodash/forOwn'",
+ "range": [
+ 62,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 19
+ },
+ "end": {
+ "line": 2,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 43,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "indexOf",
+ "range": [
+ 86,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 86,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_baseIndexOf",
+ "raw": "'lodash/_baseIndexOf'",
+ "range": [
+ 99,
+ 120
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 20
+ },
+ "end": {
+ "line": 3,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 79,
+ 121
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 129,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 129,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 142,
+ 158
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 20
+ },
+ "end": {
+ "line": 4,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 122,
+ 159
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "okeys",
+ "range": [
+ 167,
+ 172
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 167,
+ 172
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/keys",
+ "raw": "'lodash/keys'",
+ "range": [
+ 178,
+ 191
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 160,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 200,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 200,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 210,
+ 223
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 193,
+ 224
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 6,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 232,
+ 236
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 232,
+ 236
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/once",
+ "raw": "'./internal/once'",
+ "range": [
+ 242,
+ 259
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 17
+ },
+ "end": {
+ "line": 7,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 225,
+ 260
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 268,
+ 272
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 268,
+ 272
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 278,
+ 291
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 17
+ },
+ "end": {
+ "line": 8,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 261,
+ 292
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 301,
+ 309
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 301,
+ 309
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/onlyOnce",
+ "raw": "'./internal/onlyOnce'",
+ "range": [
+ 315,
+ 336
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 21
+ },
+ "end": {
+ "line": 10,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 294,
+ 337
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 0
+ },
+ "end": {
+ "line": 10,
+ "column": 43
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Determines the best order for running the functions in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the functions pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * Functions also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the function itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n ",
+ "range": [
+ 339,
+ 3986
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4012,
+ 4017
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 25
+ },
+ "end": {
+ "line": 90,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4019,
+ 4030
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 32
+ },
+ "end": {
+ "line": 90,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4032,
+ 4040
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 45
+ },
+ "end": {
+ "line": 90,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4059,
+ 4070
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 15
+ },
+ "end": {
+ "line": 91,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4052,
+ 4070
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 8
+ },
+ "end": {
+ "line": 91,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 4075,
+ 4085
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 31
+ },
+ "end": {
+ "line": 91,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 4052,
+ 4085
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 8
+ },
+ "end": {
+ "line": 91,
+ "column": 41
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4149,
+ 4157
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 8
+ },
+ "end": {
+ "line": 93,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4160,
+ 4171
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 19
+ },
+ "end": {
+ "line": 93,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4149,
+ 4171
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 8
+ },
+ "end": {
+ "line": 93,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4149,
+ 4172
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 8
+ },
+ "end": {
+ "line": 93,
+ "column": 31
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " concurrency is optional, shift the args.",
+ "range": [
+ 4097,
+ 4140
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 8
+ },
+ "end": {
+ "line": 92,
+ "column": 51
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4181,
+ 4192
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 8
+ },
+ "end": {
+ "line": 94,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 4195,
+ 4199
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 22
+ },
+ "end": {
+ "line": 94,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 4181,
+ 4199
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 8
+ },
+ "end": {
+ "line": 94,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 4181,
+ 4200
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 8
+ },
+ "end": {
+ "line": 94,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 4087,
+ 4206
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 43
+ },
+ "end": {
+ "line": 95,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 4048,
+ 4206
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 4
+ },
+ "end": {
+ "line": 95,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4211,
+ 4219
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 4
+ },
+ "end": {
+ "line": 96,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 4222,
+ 4226
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 15
+ },
+ "end": {
+ "line": 96,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4227,
+ 4235
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 20
+ },
+ "end": {
+ "line": 96,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 4239,
+ 4243
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 32
+ },
+ "end": {
+ "line": 96,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4227,
+ 4243
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 20
+ },
+ "end": {
+ "line": 96,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 4222,
+ 4244
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 15
+ },
+ "end": {
+ "line": 96,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 4211,
+ 4244
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 4
+ },
+ "end": {
+ "line": 96,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 4211,
+ 4245
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 4
+ },
+ "end": {
+ "line": 96,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "keys",
+ "range": [
+ 4254,
+ 4258
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 8
+ },
+ "end": {
+ "line": 97,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "okeys",
+ "range": [
+ 4261,
+ 4266
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 15
+ },
+ "end": {
+ "line": 97,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4267,
+ 4272
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 21
+ },
+ "end": {
+ "line": 97,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 4261,
+ 4273
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 15
+ },
+ "end": {
+ "line": 97,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 4254,
+ 4273
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 8
+ },
+ "end": {
+ "line": 97,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4250,
+ 4274
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 4
+ },
+ "end": {
+ "line": 97,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "numTasks",
+ "range": [
+ 4283,
+ 4291
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "keys",
+ "range": [
+ 4294,
+ 4298
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 19
+ },
+ "end": {
+ "line": 98,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4299,
+ 4305
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 24
+ },
+ "end": {
+ "line": 98,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4294,
+ 4305
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 19
+ },
+ "end": {
+ "line": 98,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4283,
+ 4305
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4279,
+ 4306
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 4
+ },
+ "end": {
+ "line": 98,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "numTasks",
+ "range": [
+ 4316,
+ 4324
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 9
+ },
+ "end": {
+ "line": 99,
+ "column": 17
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4315,
+ 4324
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 8
+ },
+ "end": {
+ "line": 99,
+ "column": 17
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4343,
+ 4351
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 15
+ },
+ "end": {
+ "line": 100,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 4352,
+ 4356
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 24
+ },
+ "end": {
+ "line": 100,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 4343,
+ 4357
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 15
+ },
+ "end": {
+ "line": 100,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 4336,
+ 4358
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 100,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 4326,
+ 4364
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 19
+ },
+ "end": {
+ "line": 101,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 4311,
+ 4364
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 4
+ },
+ "end": {
+ "line": 101,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4374,
+ 4385
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 9
+ },
+ "end": {
+ "line": 102,
+ "column": 20
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4373,
+ 4385
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 8
+ },
+ "end": {
+ "line": 102,
+ "column": 20
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4397,
+ 4408
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "numTasks",
+ "range": [
+ 4411,
+ 4419
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 22
+ },
+ "end": {
+ "line": 103,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4397,
+ 4419
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 4397,
+ 4420
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 4387,
+ 4426
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 22
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 4369,
+ 4426
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 4
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 4436,
+ 4443
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 8
+ },
+ "end": {
+ "line": 106,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 4446,
+ 4448
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 18
+ },
+ "end": {
+ "line": 106,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 4436,
+ 4448
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 8
+ },
+ "end": {
+ "line": 106,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4432,
+ 4449
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 4
+ },
+ "end": {
+ "line": 106,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "runningTasks",
+ "range": [
+ 4458,
+ 4470
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 8
+ },
+ "end": {
+ "line": 107,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 4473,
+ 4474
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 23
+ },
+ "end": {
+ "line": 107,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 4458,
+ 4474
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 8
+ },
+ "end": {
+ "line": 107,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4454,
+ 4475
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 4
+ },
+ "end": {
+ "line": 107,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "hasError",
+ "range": [
+ 4484,
+ 4492
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 8
+ },
+ "end": {
+ "line": 108,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 4495,
+ 4500
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 19
+ },
+ "end": {
+ "line": 108,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 4484,
+ 4500
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 8
+ },
+ "end": {
+ "line": 108,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4480,
+ 4501
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 4
+ },
+ "end": {
+ "line": 108,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "listeners",
+ "range": [
+ 4511,
+ 4520
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 8
+ },
+ "end": {
+ "line": 110,
+ "column": 17
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 4523,
+ 4525
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 20
+ },
+ "end": {
+ "line": 110,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 4511,
+ 4525
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 8
+ },
+ "end": {
+ "line": 110,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4507,
+ 4526
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 4
+ },
+ "end": {
+ "line": 110,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "readyTasks",
+ "range": [
+ 4536,
+ 4546
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 8
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 4549,
+ 4551
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 21
+ },
+ "end": {
+ "line": 112,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 4536,
+ 4551
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 8
+ },
+ "end": {
+ "line": 112,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4532,
+ 4552
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 4
+ },
+ "end": {
+ "line": 112,
+ "column": 24
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " for cycle detection:",
+ "range": [
+ 4558,
+ 4581
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 4
+ },
+ "end": {
+ "line": 114,
+ "column": 27
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 4590,
+ 4602
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 8
+ },
+ "end": {
+ "line": 115,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 4605,
+ 4607
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 23
+ },
+ "end": {
+ "line": 115,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 4590,
+ 4607
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 8
+ },
+ "end": {
+ "line": 115,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4586,
+ 4608
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 4
+ },
+ "end": {
+ "line": 115,
+ "column": 26
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " for cycle detection:",
+ "range": [
+ 4558,
+ 4581
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 4
+ },
+ "end": {
+ "line": 114,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " tasks that have been identified as reachable",
+ "range": [
+ 4609,
+ 4656
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 27
+ },
+ "end": {
+ "line": 115,
+ "column": 74
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " without the possibility of returning to an ancestor task",
+ "range": [
+ 4661,
+ 4720
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 4
+ },
+ "end": {
+ "line": 116,
+ "column": 63
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "uncheckedDependencies",
+ "range": [
+ 4729,
+ 4750
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 8
+ },
+ "end": {
+ "line": 117,
+ "column": 29
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 4753,
+ 4755
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 32
+ },
+ "end": {
+ "line": 117,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 4729,
+ 4755
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 8
+ },
+ "end": {
+ "line": 117,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4725,
+ 4756
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 4
+ },
+ "end": {
+ "line": 117,
+ "column": 35
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " tasks that have been identified as reachable",
+ "range": [
+ 4609,
+ 4656
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 27
+ },
+ "end": {
+ "line": 115,
+ "column": 74
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " without the possibility of returning to an ancestor task",
+ "range": [
+ 4661,
+ 4720
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 4
+ },
+ "end": {
+ "line": 116,
+ "column": 63
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 4762,
+ 4768
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 4
+ },
+ "end": {
+ "line": 119,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4769,
+ 4774
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 11
+ },
+ "end": {
+ "line": 119,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 4786,
+ 4790
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 28
+ },
+ "end": {
+ "line": 119,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 4792,
+ 4795
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 34
+ },
+ "end": {
+ "line": 119,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 4812,
+ 4819
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 13
+ },
+ "end": {
+ "line": 120,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 4820,
+ 4824
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 21
+ },
+ "end": {
+ "line": 120,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 4812,
+ 4825
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 13
+ },
+ "end": {
+ "line": 120,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4811,
+ 4825
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 12
+ },
+ "end": {
+ "line": 120,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "enqueueTask",
+ "range": [
+ 4872,
+ 4883
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 12
+ },
+ "end": {
+ "line": 122,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 4884,
+ 4887
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 24
+ },
+ "end": {
+ "line": 122,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 4890,
+ 4894
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 30
+ },
+ "end": {
+ "line": 122,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 4889,
+ 4895
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 29
+ },
+ "end": {
+ "line": 122,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 4872,
+ 4896
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 12
+ },
+ "end": {
+ "line": 122,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4872,
+ 4897
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 12
+ },
+ "end": {
+ "line": 122,
+ "column": 37
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " no dependencies",
+ "range": [
+ 4841,
+ 4859
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 12
+ },
+ "end": {
+ "line": 121,
+ "column": 30
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 4910,
+ 4922
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 12
+ },
+ "end": {
+ "line": 123,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 4923,
+ 4927
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 25
+ },
+ "end": {
+ "line": 123,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 4910,
+ 4927
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 12
+ },
+ "end": {
+ "line": 123,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 4928,
+ 4931
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 30
+ },
+ "end": {
+ "line": 123,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 4910,
+ 4932
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 12
+ },
+ "end": {
+ "line": 123,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 4910,
+ 4933
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 12
+ },
+ "end": {
+ "line": 123,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 4946,
+ 4953
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 12
+ },
+ "end": {
+ "line": 124,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 4827,
+ 4963
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 28
+ },
+ "end": {
+ "line": 125,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 4807,
+ 4963
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 8
+ },
+ "end": {
+ "line": 125,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "dependencies",
+ "range": [
+ 4977,
+ 4989
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 4992,
+ 4996
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 27
+ },
+ "end": {
+ "line": 127,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "slice",
+ "range": [
+ 4997,
+ 5002
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 32
+ },
+ "end": {
+ "line": 127,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 4992,
+ 5002
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 27
+ },
+ "end": {
+ "line": 127,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 5003,
+ 5004
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 38
+ },
+ "end": {
+ "line": 127,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 5006,
+ 5010
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 41
+ },
+ "end": {
+ "line": 127,
+ "column": 45
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 5011,
+ 5017
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 46
+ },
+ "end": {
+ "line": 127,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 5006,
+ 5017
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 41
+ },
+ "end": {
+ "line": 127,
+ "column": 52
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 5020,
+ 5021
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 55
+ },
+ "end": {
+ "line": 127,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 5006,
+ 5021
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 41
+ },
+ "end": {
+ "line": 127,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 4992,
+ 5022
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 27
+ },
+ "end": {
+ "line": 127,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 4977,
+ 5022
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4973,
+ 5023
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 8
+ },
+ "end": {
+ "line": 127,
+ "column": 58
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "remainingDependencies",
+ "range": [
+ 5036,
+ 5057
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 33
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "dependencies",
+ "range": [
+ 5060,
+ 5072
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 36
+ },
+ "end": {
+ "line": 128,
+ "column": 48
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 5073,
+ 5079
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 49
+ },
+ "end": {
+ "line": 128,
+ "column": 55
+ }
+ }
+ },
+ "range": [
+ 5060,
+ 5079
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 36
+ },
+ "end": {
+ "line": 128,
+ "column": 55
+ }
+ }
+ },
+ "range": [
+ 5036,
+ 5079
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 55
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 5032,
+ 5080
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 8
+ },
+ "end": {
+ "line": 128,
+ "column": 56
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "remainingDependencies",
+ "range": [
+ 5093,
+ 5114
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 129,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 5119,
+ 5120
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 38
+ },
+ "end": {
+ "line": 129,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 5093,
+ 5120
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 129,
+ "column": 39
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "enqueueTask",
+ "range": [
+ 5136,
+ 5147
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 12
+ },
+ "end": {
+ "line": 130,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5148,
+ 5151
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 24
+ },
+ "end": {
+ "line": 130,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 5153,
+ 5157
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 29
+ },
+ "end": {
+ "line": 130,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 5136,
+ 5158
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 12
+ },
+ "end": {
+ "line": 130,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 5136,
+ 5159
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 12
+ },
+ "end": {
+ "line": 130,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 5172,
+ 5184
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 12
+ },
+ "end": {
+ "line": 131,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 5185,
+ 5189
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 25
+ },
+ "end": {
+ "line": 131,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 5172,
+ 5189
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 12
+ },
+ "end": {
+ "line": 131,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5190,
+ 5193
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 30
+ },
+ "end": {
+ "line": 131,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 5172,
+ 5194
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 12
+ },
+ "end": {
+ "line": 131,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 5172,
+ 5195
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 12
+ },
+ "end": {
+ "line": 131,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 5208,
+ 5215
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 12
+ },
+ "end": {
+ "line": 132,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 5122,
+ 5225
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 41
+ },
+ "end": {
+ "line": 133,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 5089,
+ 5225
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 8
+ },
+ "end": {
+ "line": 133,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "uncheckedDependencies",
+ "range": [
+ 5234,
+ 5255
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 134,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5256,
+ 5259
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 30
+ },
+ "end": {
+ "line": 134,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 5234,
+ 5260
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 134,
+ "column": 34
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "remainingDependencies",
+ "range": [
+ 5263,
+ 5284
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 37
+ },
+ "end": {
+ "line": 134,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 5234,
+ 5284
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 134,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 5234,
+ 5285
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 134,
+ "column": 59
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 5295,
+ 5304
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 8
+ },
+ "end": {
+ "line": 136,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "dependencies",
+ "range": [
+ 5305,
+ 5317
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 18
+ },
+ "end": {
+ "line": 136,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "dependencyName",
+ "range": [
+ 5329,
+ 5343
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 42
+ },
+ "end": {
+ "line": 136,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 5364,
+ 5369
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 17
+ },
+ "end": {
+ "line": 137,
+ "column": 22
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "dependencyName",
+ "range": [
+ 5370,
+ 5384
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 23
+ },
+ "end": {
+ "line": 137,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 5364,
+ 5385
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 17
+ },
+ "end": {
+ "line": 137,
+ "column": 38
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 5363,
+ 5385
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 16
+ },
+ "end": {
+ "line": 137,
+ "column": 38
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 5415,
+ 5420
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 26
+ },
+ "end": {
+ "line": 138,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "Literal",
+ "value": "async.auto task `",
+ "raw": "'async.auto task `'",
+ "range": [
+ 5421,
+ 5440
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 32
+ },
+ "end": {
+ "line": 138,
+ "column": 51
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5443,
+ 5446
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 54
+ },
+ "end": {
+ "line": 138,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 5421,
+ 5446
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 32
+ },
+ "end": {
+ "line": 138,
+ "column": 57
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "` has a non-existent dependency in ",
+ "raw": "'` has a non-existent dependency in '",
+ "range": [
+ 5469,
+ 5506
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 20
+ },
+ "end": {
+ "line": 139,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 5421,
+ 5506
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 32
+ },
+ "end": {
+ "line": 139,
+ "column": 57
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "dependencies",
+ "range": [
+ 5529,
+ 5541
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 20
+ },
+ "end": {
+ "line": 140,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "join",
+ "range": [
+ 5542,
+ 5546
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 33
+ },
+ "end": {
+ "line": 140,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 5529,
+ 5546
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 20
+ },
+ "end": {
+ "line": 140,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": ", ",
+ "raw": "', '",
+ "range": [
+ 5547,
+ 5551
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 38
+ },
+ "end": {
+ "line": 140,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 5529,
+ 5552
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 20
+ },
+ "end": {
+ "line": 140,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 5421,
+ 5552
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 32
+ },
+ "end": {
+ "line": 140,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 5411,
+ 5553
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 22
+ },
+ "end": {
+ "line": 140,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 5405,
+ 5554
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 16
+ },
+ "end": {
+ "line": 140,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 5387,
+ 5568
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 40
+ },
+ "end": {
+ "line": 141,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 5359,
+ 5568
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "addListener",
+ "range": [
+ 5581,
+ 5592
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 12
+ },
+ "end": {
+ "line": 142,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "dependencyName",
+ "range": [
+ 5593,
+ 5607
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 24
+ },
+ "end": {
+ "line": 142,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "--",
+ "argument": {
+ "type": "Identifier",
+ "name": "remainingDependencies",
+ "range": [
+ 5639,
+ 5660
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 16
+ },
+ "end": {
+ "line": 143,
+ "column": 37
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 5639,
+ 5662
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 16
+ },
+ "end": {
+ "line": 143,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 5639,
+ 5663
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 16
+ },
+ "end": {
+ "line": 143,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "remainingDependencies",
+ "range": [
+ 5684,
+ 5705
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 20
+ },
+ "end": {
+ "line": 144,
+ "column": 41
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 5710,
+ 5711
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 46
+ },
+ "end": {
+ "line": 144,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 5684,
+ 5711
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 20
+ },
+ "end": {
+ "line": 144,
+ "column": 47
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "enqueueTask",
+ "range": [
+ 5735,
+ 5746
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 20
+ },
+ "end": {
+ "line": 145,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5747,
+ 5750
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 32
+ },
+ "end": {
+ "line": 145,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 5752,
+ 5756
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 37
+ },
+ "end": {
+ "line": 145,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 5735,
+ 5757
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 20
+ },
+ "end": {
+ "line": 145,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 5735,
+ 5758
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 20
+ },
+ "end": {
+ "line": 145,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 5713,
+ 5776
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 49
+ },
+ "end": {
+ "line": 146,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 5680,
+ 5776
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 16
+ },
+ "end": {
+ "line": 146,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 5621,
+ 5790
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 52
+ },
+ "end": {
+ "line": 147,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5609,
+ 5790
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 40
+ },
+ "end": {
+ "line": 147,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 5581,
+ 5791
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 12
+ },
+ "end": {
+ "line": 147,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 5581,
+ 5792
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 12
+ },
+ "end": {
+ "line": 147,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 5345,
+ 5802
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 58
+ },
+ "end": {
+ "line": 148,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5319,
+ 5802
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 32
+ },
+ "end": {
+ "line": 148,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 5295,
+ 5803
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 8
+ },
+ "end": {
+ "line": 148,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5295,
+ 5804
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 8
+ },
+ "end": {
+ "line": 148,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 4797,
+ 5810
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 39
+ },
+ "end": {
+ "line": 149,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4776,
+ 5810
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 18
+ },
+ "end": {
+ "line": 149,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 4762,
+ 5811
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 4
+ },
+ "end": {
+ "line": 149,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 4762,
+ 5812
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 4
+ },
+ "end": {
+ "line": 149,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "checkForDeadlocks",
+ "range": [
+ 5818,
+ 5835
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 4
+ },
+ "end": {
+ "line": 151,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 5818,
+ 5837
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 4
+ },
+ "end": {
+ "line": 151,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 5818,
+ 5838
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 4
+ },
+ "end": {
+ "line": 151,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "processQueue",
+ "range": [
+ 5843,
+ 5855
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 4
+ },
+ "end": {
+ "line": 152,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 5843,
+ 5857
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 4
+ },
+ "end": {
+ "line": 152,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 5843,
+ 5858
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 4
+ },
+ "end": {
+ "line": 152,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "enqueueTask",
+ "range": [
+ 5873,
+ 5884
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 13
+ },
+ "end": {
+ "line": 154,
+ "column": 24
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5885,
+ 5888
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 25
+ },
+ "end": {
+ "line": 154,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 5890,
+ 5894
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 30
+ },
+ "end": {
+ "line": 154,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyTasks",
+ "range": [
+ 5906,
+ 5916
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 8
+ },
+ "end": {
+ "line": 155,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 5917,
+ 5921
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 19
+ },
+ "end": {
+ "line": 155,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 5906,
+ 5921
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 8
+ },
+ "end": {
+ "line": 155,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "runTask",
+ "range": [
+ 5948,
+ 5955
+ ],
+ "loc": {
+ "start": {
+ "line": 156,
+ "column": 12
+ },
+ "end": {
+ "line": 156,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5956,
+ 5959
+ ],
+ "loc": {
+ "start": {
+ "line": 156,
+ "column": 20
+ },
+ "end": {
+ "line": 156,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 5961,
+ 5965
+ ],
+ "loc": {
+ "start": {
+ "line": 156,
+ "column": 25
+ },
+ "end": {
+ "line": 156,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 5948,
+ 5966
+ ],
+ "loc": {
+ "start": {
+ "line": 156,
+ "column": 12
+ },
+ "end": {
+ "line": 156,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 5948,
+ 5967
+ ],
+ "loc": {
+ "start": {
+ "line": 156,
+ "column": 12
+ },
+ "end": {
+ "line": 156,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 5934,
+ 5977
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 36
+ },
+ "end": {
+ "line": 157,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5922,
+ 5977
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 24
+ },
+ "end": {
+ "line": 157,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 5906,
+ 5978
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 8
+ },
+ "end": {
+ "line": 157,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5906,
+ 5979
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 8
+ },
+ "end": {
+ "line": 157,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 5896,
+ 5985
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 36
+ },
+ "end": {
+ "line": 158,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5864,
+ 5985
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 4
+ },
+ "end": {
+ "line": 158,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "processQueue",
+ "range": [
+ 6000,
+ 6012
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 13
+ },
+ "end": {
+ "line": 160,
+ "column": 25
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyTasks",
+ "range": [
+ 6029,
+ 6039
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 12
+ },
+ "end": {
+ "line": 161,
+ "column": 22
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 6040,
+ 6046
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 23
+ },
+ "end": {
+ "line": 161,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 6029,
+ 6046
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 12
+ },
+ "end": {
+ "line": 161,
+ "column": 29
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 6051,
+ 6052
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 34
+ },
+ "end": {
+ "line": 161,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 6029,
+ 6052
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 12
+ },
+ "end": {
+ "line": 161,
+ "column": 35
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "runningTasks",
+ "range": [
+ 6056,
+ 6068
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 39
+ },
+ "end": {
+ "line": 161,
+ "column": 51
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 6073,
+ 6074
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 56
+ },
+ "end": {
+ "line": 161,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 6056,
+ 6074
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 39
+ },
+ "end": {
+ "line": 161,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 6029,
+ 6074
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 12
+ },
+ "end": {
+ "line": 161,
+ "column": 57
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 6097,
+ 6105
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 19
+ },
+ "end": {
+ "line": 162,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 6106,
+ 6110
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 28
+ },
+ "end": {
+ "line": 162,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 6112,
+ 6119
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 34
+ },
+ "end": {
+ "line": 162,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 6097,
+ 6120
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 19
+ },
+ "end": {
+ "line": 162,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 6090,
+ 6121
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 12
+ },
+ "end": {
+ "line": 162,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 6076,
+ 6131
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 59
+ },
+ "end": {
+ "line": 163,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 6025,
+ 6131
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 8
+ },
+ "end": {
+ "line": 163,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "WhileStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyTasks",
+ "range": [
+ 6146,
+ 6156
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 14
+ },
+ "end": {
+ "line": 164,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 6157,
+ 6163
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 25
+ },
+ "end": {
+ "line": 164,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 6146,
+ 6163
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 14
+ },
+ "end": {
+ "line": 164,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "runningTasks",
+ "range": [
+ 6167,
+ 6179
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 35
+ },
+ "end": {
+ "line": 164,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 6182,
+ 6193
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 50
+ },
+ "end": {
+ "line": 164,
+ "column": 61
+ }
+ }
+ },
+ "range": [
+ 6167,
+ 6193
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 35
+ },
+ "end": {
+ "line": 164,
+ "column": 61
+ }
+ }
+ },
+ "range": [
+ 6146,
+ 6193
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 14
+ },
+ "end": {
+ "line": 164,
+ "column": 61
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "run",
+ "range": [
+ 6213,
+ 6216
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 16
+ },
+ "end": {
+ "line": 165,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyTasks",
+ "range": [
+ 6219,
+ 6229
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 22
+ },
+ "end": {
+ "line": 165,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "shift",
+ "range": [
+ 6230,
+ 6235
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 33
+ },
+ "end": {
+ "line": 165,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 6219,
+ 6235
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 22
+ },
+ "end": {
+ "line": 165,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 6219,
+ 6237
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 22
+ },
+ "end": {
+ "line": 165,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 6213,
+ 6237
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 16
+ },
+ "end": {
+ "line": 165,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 6209,
+ 6238
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 12
+ },
+ "end": {
+ "line": 165,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "run",
+ "range": [
+ 6251,
+ 6254
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 12
+ },
+ "end": {
+ "line": 166,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 6251,
+ 6256
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 12
+ },
+ "end": {
+ "line": 166,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 6251,
+ 6257
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 12
+ },
+ "end": {
+ "line": 166,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 6195,
+ 6267
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 63
+ },
+ "end": {
+ "line": 167,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 6140,
+ 6267
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 8
+ },
+ "end": {
+ "line": 167,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 6015,
+ 6274
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 28
+ },
+ "end": {
+ "line": 169,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5991,
+ 6274
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 4
+ },
+ "end": {
+ "line": 169,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "addListener",
+ "range": [
+ 6289,
+ 6300
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 13
+ },
+ "end": {
+ "line": 171,
+ "column": 24
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 6301,
+ 6309
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 25
+ },
+ "end": {
+ "line": 171,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 6311,
+ 6313
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 35
+ },
+ "end": {
+ "line": 171,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6329,
+ 6342
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 12
+ },
+ "end": {
+ "line": 172,
+ "column": 25
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "listeners",
+ "range": [
+ 6345,
+ 6354
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 28
+ },
+ "end": {
+ "line": 172,
+ "column": 37
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 6355,
+ 6363
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 38
+ },
+ "end": {
+ "line": 172,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 6345,
+ 6364
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 28
+ },
+ "end": {
+ "line": 172,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 6329,
+ 6364
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 12
+ },
+ "end": {
+ "line": 172,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 6325,
+ 6365
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 8
+ },
+ "end": {
+ "line": 172,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6379,
+ 6392
+ ],
+ "loc": {
+ "start": {
+ "line": 173,
+ "column": 13
+ },
+ "end": {
+ "line": 173,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 6378,
+ 6392
+ ],
+ "loc": {
+ "start": {
+ "line": 173,
+ "column": 12
+ },
+ "end": {
+ "line": 173,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6408,
+ 6421
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 12
+ },
+ "end": {
+ "line": 174,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "listeners",
+ "range": [
+ 6424,
+ 6433
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 28
+ },
+ "end": {
+ "line": 174,
+ "column": 37
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 6434,
+ 6442
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 38
+ },
+ "end": {
+ "line": 174,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 6424,
+ 6443
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 28
+ },
+ "end": {
+ "line": 174,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 6446,
+ 6448
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 50
+ },
+ "end": {
+ "line": 174,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 6424,
+ 6448
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 28
+ },
+ "end": {
+ "line": 174,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 6408,
+ 6448
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 12
+ },
+ "end": {
+ "line": 174,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 6408,
+ 6449
+ ],
+ "loc": {
+ "start": {
+ "line": 174,
+ "column": 12
+ },
+ "end": {
+ "line": 174,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "range": [
+ 6394,
+ 6459
+ ],
+ "loc": {
+ "start": {
+ "line": 173,
+ "column": 28
+ },
+ "end": {
+ "line": 175,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 6374,
+ 6459
+ ],
+ "loc": {
+ "start": {
+ "line": 173,
+ "column": 8
+ },
+ "end": {
+ "line": 175,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6469,
+ 6482
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 8
+ },
+ "end": {
+ "line": 177,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 6483,
+ 6487
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 22
+ },
+ "end": {
+ "line": 177,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 6469,
+ 6487
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 8
+ },
+ "end": {
+ "line": 177,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 6488,
+ 6490
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 27
+ },
+ "end": {
+ "line": 177,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 6469,
+ 6491
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 8
+ },
+ "end": {
+ "line": 177,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 6469,
+ 6492
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 8
+ },
+ "end": {
+ "line": 177,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 6315,
+ 6498
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 39
+ },
+ "end": {
+ "line": 178,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 6280,
+ 6498
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 4
+ },
+ "end": {
+ "line": 178,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "taskComplete",
+ "range": [
+ 6513,
+ 6525
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 13
+ },
+ "end": {
+ "line": 180,
+ "column": 25
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 6526,
+ 6534
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 26
+ },
+ "end": {
+ "line": 180,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6550,
+ 6563
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 12
+ },
+ "end": {
+ "line": 181,
+ "column": 25
+ }
+ }
+ },
+ "init": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "listeners",
+ "range": [
+ 6566,
+ 6575
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 28
+ },
+ "end": {
+ "line": 181,
+ "column": 37
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 6576,
+ 6584
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 38
+ },
+ "end": {
+ "line": 181,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 6566,
+ 6585
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 28
+ },
+ "end": {
+ "line": 181,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 6589,
+ 6591
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 51
+ },
+ "end": {
+ "line": 181,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 6566,
+ 6591
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 28
+ },
+ "end": {
+ "line": 181,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 6550,
+ 6591
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 12
+ },
+ "end": {
+ "line": 181,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 6546,
+ 6592
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 8
+ },
+ "end": {
+ "line": 181,
+ "column": 54
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 6601,
+ 6610
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 8
+ },
+ "end": {
+ "line": 182,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskListeners",
+ "range": [
+ 6611,
+ 6624
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 18
+ },
+ "end": {
+ "line": 182,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 6636,
+ 6638
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 43
+ },
+ "end": {
+ "line": 182,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 6654,
+ 6656
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 12
+ },
+ "end": {
+ "line": 183,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 6654,
+ 6658
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 12
+ },
+ "end": {
+ "line": 183,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 6654,
+ 6659
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 12
+ },
+ "end": {
+ "line": 183,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 6640,
+ 6669
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 47
+ },
+ "end": {
+ "line": 184,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 6626,
+ 6669
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 33
+ },
+ "end": {
+ "line": 184,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 6601,
+ 6670
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 8
+ },
+ "end": {
+ "line": 184,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 6601,
+ 6671
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 8
+ },
+ "end": {
+ "line": 184,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "processQueue",
+ "range": [
+ 6680,
+ 6692
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 8
+ },
+ "end": {
+ "line": 185,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 6680,
+ 6694
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 8
+ },
+ "end": {
+ "line": 185,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 6680,
+ 6695
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 8
+ },
+ "end": {
+ "line": 185,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 6536,
+ 6701
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 36
+ },
+ "end": {
+ "line": 186,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 6504,
+ 6701
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 4
+ },
+ "end": {
+ "line": 186,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "runTask",
+ "range": [
+ 6717,
+ 6724
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 13
+ },
+ "end": {
+ "line": 189,
+ "column": 20
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 6725,
+ 6728
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 21
+ },
+ "end": {
+ "line": 189,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 6730,
+ 6734
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 26
+ },
+ "end": {
+ "line": 189,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "hasError",
+ "range": [
+ 6750,
+ 6758
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 12
+ },
+ "end": {
+ "line": 190,
+ "column": 20
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 6760,
+ 6767
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 22
+ },
+ "end": {
+ "line": 190,
+ "column": 29
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 6746,
+ 6767
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 8
+ },
+ "end": {
+ "line": 190,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskCallback",
+ "range": [
+ 6781,
+ 6793
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 12
+ },
+ "end": {
+ "line": 192,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 6796,
+ 6804
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 27
+ },
+ "end": {
+ "line": 192,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 6805,
+ 6809
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 36
+ },
+ "end": {
+ "line": 192,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 6819,
+ 6822
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 50
+ },
+ "end": {
+ "line": 192,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 6824,
+ 6828
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 55
+ },
+ "end": {
+ "line": 192,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "--",
+ "argument": {
+ "type": "Identifier",
+ "name": "runningTasks",
+ "range": [
+ 6844,
+ 6856
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 12
+ },
+ "end": {
+ "line": 193,
+ "column": 24
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 6844,
+ 6858
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 12
+ },
+ "end": {
+ "line": 193,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 6844,
+ 6859
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 12
+ },
+ "end": {
+ "line": 193,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 6876,
+ 6880
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 16
+ },
+ "end": {
+ "line": 194,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 6881,
+ 6887
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 21
+ },
+ "end": {
+ "line": 194,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 6876,
+ 6887
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 16
+ },
+ "end": {
+ "line": 194,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 6891,
+ 6892
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 31
+ },
+ "end": {
+ "line": 194,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 6876,
+ 6892
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 16
+ },
+ "end": {
+ "line": 194,
+ "column": 32
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 6912,
+ 6916
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 16
+ },
+ "end": {
+ "line": 195,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 6919,
+ 6923
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 23
+ },
+ "end": {
+ "line": 195,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 6924,
+ 6925
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 28
+ },
+ "end": {
+ "line": 195,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 6919,
+ 6926
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 23
+ },
+ "end": {
+ "line": 195,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 6912,
+ 6926
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 16
+ },
+ "end": {
+ "line": 195,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 6912,
+ 6927
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 16
+ },
+ "end": {
+ "line": 195,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 6894,
+ 6941
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 34
+ },
+ "end": {
+ "line": 196,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 6872,
+ 6941
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 12
+ },
+ "end": {
+ "line": 196,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 6958,
+ 6961
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 16
+ },
+ "end": {
+ "line": 197,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "safeResults",
+ "range": [
+ 6985,
+ 6996
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 20
+ },
+ "end": {
+ "line": 198,
+ "column": 31
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 6999,
+ 7001
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 34
+ },
+ "end": {
+ "line": 198,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 6985,
+ 7001
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 20
+ },
+ "end": {
+ "line": 198,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 6981,
+ 7002
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 16
+ },
+ "end": {
+ "line": 198,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 7019,
+ 7025
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 16
+ },
+ "end": {
+ "line": 199,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 7026,
+ 7033
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 23
+ },
+ "end": {
+ "line": 199,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "val",
+ "range": [
+ 7044,
+ 7047
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 41
+ },
+ "end": {
+ "line": 199,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "rkey",
+ "range": [
+ 7049,
+ 7053
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 46
+ },
+ "end": {
+ "line": 199,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "safeResults",
+ "range": [
+ 7077,
+ 7088
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 20
+ },
+ "end": {
+ "line": 200,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "rkey",
+ "range": [
+ 7089,
+ 7093
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 32
+ },
+ "end": {
+ "line": 200,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 7077,
+ 7094
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 20
+ },
+ "end": {
+ "line": 200,
+ "column": 37
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "val",
+ "range": [
+ 7097,
+ 7100
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 40
+ },
+ "end": {
+ "line": 200,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 7077,
+ 7100
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 20
+ },
+ "end": {
+ "line": 200,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 7077,
+ 7101
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 20
+ },
+ "end": {
+ "line": 200,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 7055,
+ 7119
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 52
+ },
+ "end": {
+ "line": 201,
+ "column": 17
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 7035,
+ 7119
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 32
+ },
+ "end": {
+ "line": 201,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 7019,
+ 7120
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 16
+ },
+ "end": {
+ "line": 201,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7019,
+ 7121
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 16
+ },
+ "end": {
+ "line": 201,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "safeResults",
+ "range": [
+ 7138,
+ 7149
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 16
+ },
+ "end": {
+ "line": 202,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 7150,
+ 7153
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 28
+ },
+ "end": {
+ "line": 202,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 7138,
+ 7154
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 16
+ },
+ "end": {
+ "line": 202,
+ "column": 32
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 7157,
+ 7161
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 35
+ },
+ "end": {
+ "line": 202,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 7138,
+ 7161
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 16
+ },
+ "end": {
+ "line": 202,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 7138,
+ 7162
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 16
+ },
+ "end": {
+ "line": 202,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "hasError",
+ "range": [
+ 7179,
+ 7187
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 16
+ },
+ "end": {
+ "line": 203,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 7190,
+ 7194
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 27
+ },
+ "end": {
+ "line": 203,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 7179,
+ 7194
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 16
+ },
+ "end": {
+ "line": 203,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 7179,
+ 7195
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 16
+ },
+ "end": {
+ "line": 203,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "listeners",
+ "range": [
+ 7212,
+ 7221
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 16
+ },
+ "end": {
+ "line": 204,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 7224,
+ 7226
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 28
+ },
+ "end": {
+ "line": 204,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 7212,
+ 7226
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 16
+ },
+ "end": {
+ "line": 204,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 7212,
+ 7227
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 16
+ },
+ "end": {
+ "line": 204,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 7245,
+ 7253
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 16
+ },
+ "end": {
+ "line": 206,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 7254,
+ 7257
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 25
+ },
+ "end": {
+ "line": 206,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "safeResults",
+ "range": [
+ 7259,
+ 7270
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 30
+ },
+ "end": {
+ "line": 206,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 7245,
+ 7271
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 16
+ },
+ "end": {
+ "line": 206,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 7245,
+ 7272
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 16
+ },
+ "end": {
+ "line": 206,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 6963,
+ 7286
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 21
+ },
+ "end": {
+ "line": 207,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 7310,
+ 7317
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 16
+ },
+ "end": {
+ "line": 208,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 7318,
+ 7321
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 24
+ },
+ "end": {
+ "line": 208,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 7310,
+ 7322
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 16
+ },
+ "end": {
+ "line": 208,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 7325,
+ 7329
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 31
+ },
+ "end": {
+ "line": 208,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 7310,
+ 7329
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 16
+ },
+ "end": {
+ "line": 208,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 7310,
+ 7330
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 16
+ },
+ "end": {
+ "line": 208,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "taskComplete",
+ "range": [
+ 7347,
+ 7359
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 16
+ },
+ "end": {
+ "line": 209,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 7360,
+ 7363
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 29
+ },
+ "end": {
+ "line": 209,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 7347,
+ 7364
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 16
+ },
+ "end": {
+ "line": 209,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 7347,
+ 7365
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 16
+ },
+ "end": {
+ "line": 209,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 7292,
+ 7379
+ ],
+ "loc": {
+ "start": {
+ "line": 207,
+ "column": 19
+ },
+ "end": {
+ "line": 210,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6954,
+ 7379
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 12
+ },
+ "end": {
+ "line": 210,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 6830,
+ 7389
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 61
+ },
+ "end": {
+ "line": 211,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 6810,
+ 7389
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 41
+ },
+ "end": {
+ "line": 211,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 6805,
+ 7390
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 36
+ },
+ "end": {
+ "line": 211,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 6796,
+ 7391
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 27
+ },
+ "end": {
+ "line": 211,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 6781,
+ 7391
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 12
+ },
+ "end": {
+ "line": 211,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 6777,
+ 7392
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 8
+ },
+ "end": {
+ "line": 211,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "runningTasks",
+ "range": [
+ 7402,
+ 7414
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 8
+ },
+ "end": {
+ "line": 213,
+ "column": 20
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 7402,
+ 7416
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 8
+ },
+ "end": {
+ "line": 213,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 7402,
+ 7417
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 8
+ },
+ "end": {
+ "line": 213,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 7430,
+ 7436
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 12
+ },
+ "end": {
+ "line": 214,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 7439,
+ 7443
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 21
+ },
+ "end": {
+ "line": 214,
+ "column": 25
+ }
+ }
+ },
+ "property": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 7444,
+ 7448
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 26
+ },
+ "end": {
+ "line": 214,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 7449,
+ 7455
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 31
+ },
+ "end": {
+ "line": 214,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 7444,
+ 7455
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 26
+ },
+ "end": {
+ "line": 214,
+ "column": 37
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 7458,
+ 7459
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 40
+ },
+ "end": {
+ "line": 214,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 7444,
+ 7459
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 26
+ },
+ "end": {
+ "line": 214,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 7439,
+ 7460
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 21
+ },
+ "end": {
+ "line": 214,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 7430,
+ 7460
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 12
+ },
+ "end": {
+ "line": 214,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 7426,
+ 7461
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 8
+ },
+ "end": {
+ "line": 214,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 7474,
+ 7478
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 12
+ },
+ "end": {
+ "line": 215,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 7479,
+ 7485
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 17
+ },
+ "end": {
+ "line": 215,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 7474,
+ 7485
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 12
+ },
+ "end": {
+ "line": 215,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 7488,
+ 7489
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 26
+ },
+ "end": {
+ "line": 215,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 7474,
+ 7489
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 12
+ },
+ "end": {
+ "line": 215,
+ "column": 27
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 7505,
+ 7511
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 12
+ },
+ "end": {
+ "line": 216,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 7512,
+ 7519
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 19
+ },
+ "end": {
+ "line": 216,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "taskCallback",
+ "range": [
+ 7521,
+ 7533
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 28
+ },
+ "end": {
+ "line": 216,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 7505,
+ 7534
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 12
+ },
+ "end": {
+ "line": 216,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 7505,
+ 7535
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 12
+ },
+ "end": {
+ "line": 216,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 7491,
+ 7545
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 29
+ },
+ "end": {
+ "line": 217,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 7565,
+ 7571
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 12
+ },
+ "end": {
+ "line": 218,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskCallback",
+ "range": [
+ 7572,
+ 7584
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 19
+ },
+ "end": {
+ "line": 218,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 7565,
+ 7585
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 12
+ },
+ "end": {
+ "line": 218,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 7565,
+ 7586
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 12
+ },
+ "end": {
+ "line": 218,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 7551,
+ 7596
+ ],
+ "loc": {
+ "start": {
+ "line": 217,
+ "column": 15
+ },
+ "end": {
+ "line": 219,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 7470,
+ 7596
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 8
+ },
+ "end": {
+ "line": 219,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 6736,
+ 7602
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 32
+ },
+ "end": {
+ "line": 220,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 6708,
+ 7602
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 4
+ },
+ "end": {
+ "line": 220,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "checkForDeadlocks",
+ "range": [
+ 7617,
+ 7634
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 13
+ },
+ "end": {
+ "line": 222,
+ "column": 30
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "currentTask",
+ "range": [
+ 7846,
+ 7857
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 12
+ },
+ "end": {
+ "line": 226,
+ "column": 23
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 7846,
+ 7857
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 12
+ },
+ "end": {
+ "line": 226,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 7842,
+ 7858
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 8
+ },
+ "end": {
+ "line": 226,
+ "column": 24
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Kahn's algorithm",
+ "range": [
+ 7647,
+ 7666
+ ],
+ "loc": {
+ "start": {
+ "line": 223,
+ "column": 8
+ },
+ "end": {
+ "line": 223,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm",
+ "range": [
+ 7675,
+ 7746
+ ],
+ "loc": {
+ "start": {
+ "line": 224,
+ "column": 8
+ },
+ "end": {
+ "line": 224,
+ "column": 79
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html",
+ "range": [
+ 7755,
+ 7833
+ ],
+ "loc": {
+ "start": {
+ "line": 225,
+ "column": 8
+ },
+ "end": {
+ "line": 225,
+ "column": 86
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "counter",
+ "range": [
+ 7871,
+ 7878
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 12
+ },
+ "end": {
+ "line": 227,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 7881,
+ 7882
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 22
+ },
+ "end": {
+ "line": 227,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 7871,
+ 7882
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 12
+ },
+ "end": {
+ "line": 227,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 7867,
+ 7883
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 8
+ },
+ "end": {
+ "line": 227,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "WhileStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 7899,
+ 7911
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 15
+ },
+ "end": {
+ "line": 228,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 7912,
+ 7918
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 28
+ },
+ "end": {
+ "line": 228,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 7899,
+ 7918
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 15
+ },
+ "end": {
+ "line": 228,
+ "column": 34
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "currentTask",
+ "range": [
+ 7934,
+ 7945
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 12
+ },
+ "end": {
+ "line": 229,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 7948,
+ 7960
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 26
+ },
+ "end": {
+ "line": 229,
+ "column": 38
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "pop",
+ "range": [
+ 7961,
+ 7964
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 39
+ },
+ "end": {
+ "line": 229,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 7948,
+ 7964
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 26
+ },
+ "end": {
+ "line": 229,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 7948,
+ 7966
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 26
+ },
+ "end": {
+ "line": 229,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 7934,
+ 7966
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 12
+ },
+ "end": {
+ "line": 229,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 7934,
+ 7967
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 12
+ },
+ "end": {
+ "line": 229,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "counter",
+ "range": [
+ 7980,
+ 7987
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 12
+ },
+ "end": {
+ "line": 230,
+ "column": 19
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 7980,
+ 7989
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 12
+ },
+ "end": {
+ "line": 230,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 7980,
+ 7990
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 12
+ },
+ "end": {
+ "line": 230,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 8003,
+ 8012
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 12
+ },
+ "end": {
+ "line": 231,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "getDependents",
+ "range": [
+ 8013,
+ 8026
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 22
+ },
+ "end": {
+ "line": 231,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "currentTask",
+ "range": [
+ 8027,
+ 8038
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 36
+ },
+ "end": {
+ "line": 231,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 8013,
+ 8039
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 22
+ },
+ "end": {
+ "line": 231,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "dependent",
+ "range": [
+ 8051,
+ 8060
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 60
+ },
+ "end": {
+ "line": 231,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "UpdateExpression",
+ "operator": "--",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "uncheckedDependencies",
+ "range": [
+ 8088,
+ 8109
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 24
+ },
+ "end": {
+ "line": 232,
+ "column": 45
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "dependent",
+ "range": [
+ 8110,
+ 8119
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 46
+ },
+ "end": {
+ "line": 232,
+ "column": 55
+ }
+ }
+ },
+ "range": [
+ 8088,
+ 8120
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 24
+ },
+ "end": {
+ "line": 232,
+ "column": 56
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 8086,
+ 8120
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 22
+ },
+ "end": {
+ "line": 232,
+ "column": 56
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 8084,
+ 8121
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 20
+ },
+ "end": {
+ "line": 232,
+ "column": 57
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "readyToCheck",
+ "range": [
+ 8145,
+ 8157
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 20
+ },
+ "end": {
+ "line": 233,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 8158,
+ 8162
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 33
+ },
+ "end": {
+ "line": 233,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 8145,
+ 8162
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 20
+ },
+ "end": {
+ "line": 233,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "dependent",
+ "range": [
+ 8163,
+ 8172
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 38
+ },
+ "end": {
+ "line": 233,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 8145,
+ 8173
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 20
+ },
+ "end": {
+ "line": 233,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 8145,
+ 8174
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 20
+ },
+ "end": {
+ "line": 233,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 8123,
+ 8192
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 59
+ },
+ "end": {
+ "line": 234,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 8080,
+ 8192
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 16
+ },
+ "end": {
+ "line": 234,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 8062,
+ 8206
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 71
+ },
+ "end": {
+ "line": 235,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 8041,
+ 8206
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 50
+ },
+ "end": {
+ "line": 235,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 8003,
+ 8207
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 12
+ },
+ "end": {
+ "line": 235,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 8003,
+ 8208
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 12
+ },
+ "end": {
+ "line": 235,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 7920,
+ 8218
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 36
+ },
+ "end": {
+ "line": 236,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 7892,
+ 8218
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 8
+ },
+ "end": {
+ "line": 236,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "!==",
+ "left": {
+ "type": "Identifier",
+ "name": "counter",
+ "range": [
+ 8232,
+ 8239
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 12
+ },
+ "end": {
+ "line": 238,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "numTasks",
+ "range": [
+ 8244,
+ 8252
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 24
+ },
+ "end": {
+ "line": 238,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 8232,
+ 8252
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 12
+ },
+ "end": {
+ "line": 238,
+ "column": 32
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 8278,
+ 8283
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 22
+ },
+ "end": {
+ "line": 239,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "async.auto cannot execute tasks due to a recursive dependency",
+ "raw": "'async.auto cannot execute tasks due to a recursive dependency'",
+ "range": [
+ 8301,
+ 8364
+ ],
+ "loc": {
+ "start": {
+ "line": 240,
+ "column": 16
+ },
+ "end": {
+ "line": 240,
+ "column": 79
+ }
+ }
+ }
+ ],
+ "range": [
+ 8274,
+ 8378
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 18
+ },
+ "end": {
+ "line": 241,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 8268,
+ 8379
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 12
+ },
+ "end": {
+ "line": 241,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 8254,
+ 8389
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 34
+ },
+ "end": {
+ "line": 242,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 8228,
+ 8389
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 8
+ },
+ "end": {
+ "line": 242,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 7637,
+ 8395
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 33
+ },
+ "end": {
+ "line": 243,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 7608,
+ 8395
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 4
+ },
+ "end": {
+ "line": 243,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "getDependents",
+ "range": [
+ 8410,
+ 8423
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 13
+ },
+ "end": {
+ "line": 245,
+ "column": 26
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 8424,
+ 8432
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 27
+ },
+ "end": {
+ "line": 245,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 8448,
+ 8454
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 12
+ },
+ "end": {
+ "line": 246,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 8457,
+ 8459
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 21
+ },
+ "end": {
+ "line": 246,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 8448,
+ 8459
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 12
+ },
+ "end": {
+ "line": 246,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 8444,
+ 8460
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 8
+ },
+ "end": {
+ "line": 246,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 8469,
+ 8475
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 8
+ },
+ "end": {
+ "line": 247,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 8476,
+ 8481
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 15
+ },
+ "end": {
+ "line": 247,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 8493,
+ 8497
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 32
+ },
+ "end": {
+ "line": 247,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 8499,
+ 8502
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 38
+ },
+ "end": {
+ "line": 247,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 8522,
+ 8529
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 16
+ },
+ "end": {
+ "line": 248,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 8530,
+ 8534
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 24
+ },
+ "end": {
+ "line": 248,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 8522,
+ 8535
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 16
+ },
+ "end": {
+ "line": 248,
+ "column": 29
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": ">=",
+ "left": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "indexOf",
+ "range": [
+ 8539,
+ 8546
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 33
+ },
+ "end": {
+ "line": 248,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 8547,
+ 8551
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 41
+ },
+ "end": {
+ "line": 248,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "taskName",
+ "range": [
+ 8553,
+ 8561
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 47
+ },
+ "end": {
+ "line": 248,
+ "column": 55
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 8563,
+ 8564
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 57
+ },
+ "end": {
+ "line": 248,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 8539,
+ 8565
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 33
+ },
+ "end": {
+ "line": 248,
+ "column": 59
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 8569,
+ 8570
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 63
+ },
+ "end": {
+ "line": 248,
+ "column": 64
+ }
+ }
+ },
+ "range": [
+ 8539,
+ 8570
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 33
+ },
+ "end": {
+ "line": 248,
+ "column": 64
+ }
+ }
+ },
+ "range": [
+ 8522,
+ 8570
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 16
+ },
+ "end": {
+ "line": 248,
+ "column": 64
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 8590,
+ 8596
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 16
+ },
+ "end": {
+ "line": 249,
+ "column": 22
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 8597,
+ 8601
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 23
+ },
+ "end": {
+ "line": 249,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 8590,
+ 8601
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 16
+ },
+ "end": {
+ "line": 249,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 8602,
+ 8605
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 28
+ },
+ "end": {
+ "line": 249,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 8590,
+ 8606
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 16
+ },
+ "end": {
+ "line": 249,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 8590,
+ 8607
+ ],
+ "loc": {
+ "start": {
+ "line": 249,
+ "column": 16
+ },
+ "end": {
+ "line": 249,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 8572,
+ 8621
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 66
+ },
+ "end": {
+ "line": 250,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 8518,
+ 8621
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 12
+ },
+ "end": {
+ "line": 250,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 8504,
+ 8631
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 43
+ },
+ "end": {
+ "line": 251,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 8483,
+ 8631
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 22
+ },
+ "end": {
+ "line": 251,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 8469,
+ 8632
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 8
+ },
+ "end": {
+ "line": 251,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 8469,
+ 8633
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 8
+ },
+ "end": {
+ "line": 251,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 8649,
+ 8655
+ ],
+ "loc": {
+ "start": {
+ "line": 252,
+ "column": 15
+ },
+ "end": {
+ "line": 252,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 8642,
+ 8656
+ ],
+ "loc": {
+ "start": {
+ "line": 252,
+ "column": 8
+ },
+ "end": {
+ "line": 252,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 8434,
+ 8662
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 37
+ },
+ "end": {
+ "line": 253,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 8401,
+ 8662
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 4
+ },
+ "end": {
+ "line": 253,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 4042,
+ 8664
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 55
+ },
+ "end": {
+ "line": 254,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4002,
+ 8664
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 15
+ },
+ "end": {
+ "line": 254,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Determines the best order for running the functions in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the functions pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * Functions also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the function itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n ",
+ "range": [
+ 339,
+ 3986
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 3987,
+ 8664
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 0
+ },
+ "end": {
+ "line": 254,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Determines the best order for running the functions in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the functions pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * Functions also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the function itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n ",
+ "range": [
+ 339,
+ 3986
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 8664
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 254,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Determines the best order for running the functions in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the functions pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * Functions also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the function itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n ",
+ "range": [
+ 339,
+ 3986
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " concurrency is optional, shift the args.",
+ "range": [
+ 4097,
+ 4140
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 8
+ },
+ "end": {
+ "line": 92,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " for cycle detection:",
+ "range": [
+ 4558,
+ 4581
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 4
+ },
+ "end": {
+ "line": 114,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " tasks that have been identified as reachable",
+ "range": [
+ 4609,
+ 4656
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 27
+ },
+ "end": {
+ "line": 115,
+ "column": 74
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " without the possibility of returning to an ancestor task",
+ "range": [
+ 4661,
+ 4720
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 4
+ },
+ "end": {
+ "line": 116,
+ "column": 63
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " no dependencies",
+ "range": [
+ 4841,
+ 4859
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 12
+ },
+ "end": {
+ "line": 121,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Kahn's algorithm",
+ "range": [
+ 7647,
+ 7666
+ ],
+ "loc": {
+ "start": {
+ "line": 223,
+ "column": 8
+ },
+ "end": {
+ "line": 223,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm",
+ "range": [
+ 7675,
+ 7746
+ ],
+ "loc": {
+ "start": {
+ "line": 224,
+ "column": 8
+ },
+ "end": {
+ "line": 224,
+ "column": 79
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html",
+ "range": [
+ 7755,
+ 7833
+ ],
+ "loc": {
+ "start": {
+ "line": 225,
+ "column": 8
+ },
+ "end": {
+ "line": 225,
+ "column": 86
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/autoInject.js.json b/docs/ast/source/autoInject.js.json
new file mode 100644
index 0000000..e9bca62
--- /dev/null
+++ b/docs/ast/source/autoInject.js.json
@@ -0,0 +1,3553 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./auto",
+ "raw": "'./auto'",
+ "range": [
+ 17,
+ 25
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 0,
+ 26
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 34,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 34,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/forOwn",
+ "raw": "'lodash/forOwn'",
+ "range": [
+ 46,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 19
+ },
+ "end": {
+ "line": 2,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 27,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 70,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 70,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayMap",
+ "raw": "'lodash/_arrayMap'",
+ "range": [
+ 84,
+ 102
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 21
+ },
+ "end": {
+ "line": 3,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 63,
+ 103
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "clone",
+ "range": [
+ 111,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 111,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_copyArray",
+ "raw": "'lodash/_copyArray'",
+ "range": [
+ 122,
+ 141
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 18
+ },
+ "end": {
+ "line": 4,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 104,
+ 142
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 150,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 150,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 163,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 20
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 143,
+ 180
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "trim",
+ "range": [
+ 188,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 188,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/trim",
+ "raw": "'lodash/trim'",
+ "range": [
+ 198,
+ 211
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 181,
+ 212
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 6,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "argsRegex",
+ "range": [
+ 218,
+ 227
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 8,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": {},
+ "raw": "/^(function[^\\(]*)?\\(?\\s*([^\\)=]*)/m",
+ "regex": {
+ "pattern": "^(function[^\\(]*)?\\(?\\s*([^\\)=]*)",
+ "flags": "m"
+ },
+ "range": [
+ 230,
+ 266
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 16
+ },
+ "end": {
+ "line": 8,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 218,
+ 266
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 8,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 214,
+ 267
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "parseParams",
+ "range": [
+ 278,
+ 289
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 9
+ },
+ "end": {
+ "line": 10,
+ "column": 20
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "func",
+ "range": [
+ 290,
+ 294
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 21
+ },
+ "end": {
+ "line": 10,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "trim",
+ "range": [
+ 309,
+ 313
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 11
+ },
+ "end": {
+ "line": 11,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "func",
+ "range": [
+ 314,
+ 318
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "toString",
+ "range": [
+ 319,
+ 327
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 21
+ },
+ "end": {
+ "line": 11,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 314,
+ 327
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 314,
+ 329
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "match",
+ "range": [
+ 330,
+ 335
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 32
+ },
+ "end": {
+ "line": 11,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 314,
+ 335
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "argsRegex",
+ "range": [
+ 336,
+ 345
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 38
+ },
+ "end": {
+ "line": 11,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 314,
+ 346
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 48
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 2,
+ "raw": "2",
+ "range": [
+ 347,
+ 348
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 49
+ },
+ "end": {
+ "line": 11,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 314,
+ 349
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 309,
+ 350
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 11
+ },
+ "end": {
+ "line": 11,
+ "column": 52
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "split",
+ "range": [
+ 351,
+ 356
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 53
+ },
+ "end": {
+ "line": 11,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 309,
+ 356
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 11
+ },
+ "end": {
+ "line": 11,
+ "column": 58
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": {},
+ "raw": "/\\s*\\,\\s*/",
+ "regex": {
+ "pattern": "\\s*\\,\\s*",
+ "flags": ""
+ },
+ "range": [
+ 357,
+ 367
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 59
+ },
+ "end": {
+ "line": 11,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "range": [
+ 309,
+ 368
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 11
+ },
+ "end": {
+ "line": 11,
+ "column": 70
+ }
+ }
+ },
+ "range": [
+ 302,
+ 369
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 4
+ },
+ "end": {
+ "line": 11,
+ "column": 71
+ }
+ }
+ }
+ ],
+ "range": [
+ 296,
+ 371
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 27
+ },
+ "end": {
+ "line": 12,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 269,
+ 371
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 0
+ },
+ "end": {
+ "line": 12,
+ "column": 1
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A dependency-injected version of the {@link async.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to {@link async.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf async\n * @see async.auto\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is a function of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. The remaining parameters are task names\n * whose results you are interested in. This callback will only be called when\n * all tasks have finished or an error has occurred, and so do not specify\n * dependencies in the same way as `tasks` do. If an error occurs, no further\n * `tasks` will be performed, and `results` will only be valid for those tasks\n * which managed to complete. Invoked with (err, [results...]).\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection. The final\n * // results callback can be provided as an array in the same way.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, ['email_link', function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * }]);\n ",
+ "range": [
+ 373,
+ 4488
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 0
+ },
+ "end": {
+ "line": 99,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 4513,
+ 4523
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 24
+ },
+ "end": {
+ "line": 100,
+ "column": 34
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4524,
+ 4529
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 35
+ },
+ "end": {
+ "line": 100,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4531,
+ 4539
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 42
+ },
+ "end": {
+ "line": 100,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "newTasks",
+ "range": [
+ 4551,
+ 4559
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 8
+ },
+ "end": {
+ "line": 101,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 4562,
+ 4564
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 19
+ },
+ "end": {
+ "line": 101,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 4551,
+ 4564
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 8
+ },
+ "end": {
+ "line": 101,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4547,
+ 4565
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 4
+ },
+ "end": {
+ "line": 101,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "forOwn",
+ "range": [
+ 4571,
+ 4577
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 4
+ },
+ "end": {
+ "line": 103,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4578,
+ 4583
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 11
+ },
+ "end": {
+ "line": 103,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4595,
+ 4601
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 28
+ },
+ "end": {
+ "line": 103,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 4603,
+ 4606
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 36
+ },
+ "end": {
+ "line": 103,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 4622,
+ 4628
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 12
+ },
+ "end": {
+ "line": 104,
+ "column": 18
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 4622,
+ 4628
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 12
+ },
+ "end": {
+ "line": 104,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4618,
+ 4629
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 8
+ },
+ "end": {
+ "line": 104,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 4643,
+ 4650
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 12
+ },
+ "end": {
+ "line": 106,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4651,
+ 4657
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 20
+ },
+ "end": {
+ "line": 106,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 4643,
+ 4658
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 12
+ },
+ "end": {
+ "line": 106,
+ "column": 27
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 4674,
+ 4680
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 12
+ },
+ "end": {
+ "line": 107,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "clone",
+ "range": [
+ 4683,
+ 4688
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 21
+ },
+ "end": {
+ "line": 107,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4689,
+ 4695
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 27
+ },
+ "end": {
+ "line": 107,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 4683,
+ 4696
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 21
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 4674,
+ 4696
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 12
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 4674,
+ 4697
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 12
+ },
+ "end": {
+ "line": 107,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4710,
+ 4716
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 12
+ },
+ "end": {
+ "line": 108,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 4719,
+ 4725
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 21
+ },
+ "end": {
+ "line": 108,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "pop",
+ "range": [
+ 4726,
+ 4729
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 28
+ },
+ "end": {
+ "line": 108,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 4719,
+ 4729
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 21
+ },
+ "end": {
+ "line": 108,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 4719,
+ 4731
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 21
+ },
+ "end": {
+ "line": 108,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 4710,
+ 4731
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 12
+ },
+ "end": {
+ "line": 108,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 4710,
+ 4732
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 12
+ },
+ "end": {
+ "line": 108,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "newTasks",
+ "range": [
+ 4746,
+ 4754
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 12
+ },
+ "end": {
+ "line": 110,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 4755,
+ 4758
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 21
+ },
+ "end": {
+ "line": 110,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 4746,
+ 4759
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 12
+ },
+ "end": {
+ "line": 110,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 4762,
+ 4768
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 28
+ },
+ "end": {
+ "line": 110,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 4769,
+ 4775
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 35
+ },
+ "end": {
+ "line": 110,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 4762,
+ 4775
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 28
+ },
+ "end": {
+ "line": 110,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 4776,
+ 4782
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 42
+ },
+ "end": {
+ "line": 110,
+ "column": 48
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4783,
+ 4789
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 49
+ },
+ "end": {
+ "line": 110,
+ "column": 55
+ }
+ }
+ },
+ "range": [
+ 4776,
+ 4789
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 42
+ },
+ "end": {
+ "line": 110,
+ "column": 55
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 4792,
+ 4793
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 58
+ },
+ "end": {
+ "line": 110,
+ "column": 59
+ }
+ }
+ },
+ "range": [
+ 4776,
+ 4793
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 42
+ },
+ "end": {
+ "line": 110,
+ "column": 59
+ }
+ }
+ },
+ "consequent": {
+ "type": "Identifier",
+ "name": "newTask",
+ "range": [
+ 4796,
+ 4803
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 62
+ },
+ "end": {
+ "line": 110,
+ "column": 69
+ }
+ }
+ },
+ "alternate": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4806,
+ 4812
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 72
+ },
+ "end": {
+ "line": 110,
+ "column": 78
+ }
+ }
+ },
+ "range": [
+ 4776,
+ 4812
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 42
+ },
+ "end": {
+ "line": 110,
+ "column": 78
+ }
+ }
+ }
+ ],
+ "range": [
+ 4762,
+ 4813
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 28
+ },
+ "end": {
+ "line": 110,
+ "column": 79
+ }
+ }
+ },
+ "range": [
+ 4746,
+ 4813
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 12
+ },
+ "end": {
+ "line": 110,
+ "column": 79
+ }
+ }
+ },
+ "range": [
+ 4746,
+ 4814
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 12
+ },
+ "end": {
+ "line": 110,
+ "column": 80
+ }
+ }
+ }
+ ],
+ "range": [
+ 4660,
+ 4824
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 29
+ },
+ "end": {
+ "line": 111,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4834,
+ 4840
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 19
+ },
+ "end": {
+ "line": 111,
+ "column": 25
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4841,
+ 4847
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 26
+ },
+ "end": {
+ "line": 111,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 4834,
+ 4847
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 19
+ },
+ "end": {
+ "line": 111,
+ "column": 32
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 4852,
+ 4853
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 37
+ },
+ "end": {
+ "line": 111,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 4834,
+ 4853
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 19
+ },
+ "end": {
+ "line": 111,
+ "column": 38
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 4879,
+ 4884
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 22
+ },
+ "end": {
+ "line": 112,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "autoInject task functions require explicit parameters.",
+ "raw": "\"autoInject task functions require explicit parameters.\"",
+ "range": [
+ 4885,
+ 4941
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 28
+ },
+ "end": {
+ "line": 112,
+ "column": 84
+ }
+ }
+ }
+ ],
+ "range": [
+ 4875,
+ 4942
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 18
+ },
+ "end": {
+ "line": 112,
+ "column": 85
+ }
+ }
+ },
+ "range": [
+ 4869,
+ 4943
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 12
+ },
+ "end": {
+ "line": 112,
+ "column": 86
+ }
+ }
+ }
+ ],
+ "range": [
+ 4855,
+ 4953
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 40
+ },
+ "end": {
+ "line": 113,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 4963,
+ 4969
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 19
+ },
+ "end": {
+ "line": 113,
+ "column": 25
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4970,
+ 4976
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 26
+ },
+ "end": {
+ "line": 113,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 4963,
+ 4976
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 19
+ },
+ "end": {
+ "line": 113,
+ "column": 32
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4981,
+ 4982
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 37
+ },
+ "end": {
+ "line": 113,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 4963,
+ 4982
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 19
+ },
+ "end": {
+ "line": 113,
+ "column": 38
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "newTasks",
+ "range": [
+ 5053,
+ 5061
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5062,
+ 5065
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 21
+ },
+ "end": {
+ "line": 115,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 5053,
+ 5066
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 5069,
+ 5075
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 28
+ },
+ "end": {
+ "line": 115,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 5053,
+ 5075
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 5053,
+ 5076
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 35
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " no dependencies, use the function as-is",
+ "range": [
+ 4998,
+ 5040
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 12
+ },
+ "end": {
+ "line": 114,
+ "column": 54
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 4984,
+ 5086
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 40
+ },
+ "end": {
+ "line": 116,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 5106,
+ 5112
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "parseParams",
+ "range": [
+ 5115,
+ 5126
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 21
+ },
+ "end": {
+ "line": 117,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 5127,
+ 5133
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 33
+ },
+ "end": {
+ "line": 117,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 5115,
+ 5134
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 21
+ },
+ "end": {
+ "line": 117,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 5106,
+ 5134
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 5106,
+ 5135
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 5148,
+ 5154
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 12
+ },
+ "end": {
+ "line": 118,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "pop",
+ "range": [
+ 5155,
+ 5158
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 19
+ },
+ "end": {
+ "line": 118,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 5148,
+ 5158
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 12
+ },
+ "end": {
+ "line": 118,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 5148,
+ 5160
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 12
+ },
+ "end": {
+ "line": 118,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 5148,
+ 5161
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 12
+ },
+ "end": {
+ "line": 118,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "newTasks",
+ "range": [
+ 5175,
+ 5183
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 12
+ },
+ "end": {
+ "line": 120,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 5184,
+ 5187
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 21
+ },
+ "end": {
+ "line": 120,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 5175,
+ 5188
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 12
+ },
+ "end": {
+ "line": 120,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 5191,
+ 5197
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 28
+ },
+ "end": {
+ "line": 120,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 5198,
+ 5204
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 35
+ },
+ "end": {
+ "line": 120,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 5191,
+ 5204
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 28
+ },
+ "end": {
+ "line": 120,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "newTask",
+ "range": [
+ 5205,
+ 5212
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 42
+ },
+ "end": {
+ "line": 120,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 5191,
+ 5213
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 28
+ },
+ "end": {
+ "line": 120,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 5175,
+ 5213
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 12
+ },
+ "end": {
+ "line": 120,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 5175,
+ 5214
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 12
+ },
+ "end": {
+ "line": 120,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 5092,
+ 5224
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 15
+ },
+ "end": {
+ "line": 121,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 4959,
+ 5224
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 15
+ },
+ "end": {
+ "line": 121,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 4830,
+ 5224
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 15
+ },
+ "end": {
+ "line": 121,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 4639,
+ 5224
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 8
+ },
+ "end": {
+ "line": 121,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "newTask",
+ "range": [
+ 5243,
+ 5250
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 17
+ },
+ "end": {
+ "line": 123,
+ "column": 24
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 5251,
+ 5258
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 25
+ },
+ "end": {
+ "line": 123,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "taskCb",
+ "range": [
+ 5260,
+ 5266
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 34
+ },
+ "end": {
+ "line": 123,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "newArgs",
+ "range": [
+ 5286,
+ 5293
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 16
+ },
+ "end": {
+ "line": 124,
+ "column": 23
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 5296,
+ 5304
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 26
+ },
+ "end": {
+ "line": 124,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "params",
+ "range": [
+ 5305,
+ 5311
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 35
+ },
+ "end": {
+ "line": 124,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 5323,
+ 5327
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 53
+ },
+ "end": {
+ "line": 124,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 5354,
+ 5361
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 23
+ },
+ "end": {
+ "line": 125,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 5362,
+ 5366
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 31
+ },
+ "end": {
+ "line": 125,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 5354,
+ 5367
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 23
+ },
+ "end": {
+ "line": 125,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 5347,
+ 5368
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 16
+ },
+ "end": {
+ "line": 125,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 5329,
+ 5382
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 59
+ },
+ "end": {
+ "line": 126,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5313,
+ 5382
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 43
+ },
+ "end": {
+ "line": 126,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 5296,
+ 5383
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 26
+ },
+ "end": {
+ "line": 126,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 5286,
+ 5383
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 16
+ },
+ "end": {
+ "line": 126,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 5282,
+ 5384
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 12
+ },
+ "end": {
+ "line": 126,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "newArgs",
+ "range": [
+ 5397,
+ 5404
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 5405,
+ 5409
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 20
+ },
+ "end": {
+ "line": 127,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 5397,
+ 5409
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskCb",
+ "range": [
+ 5410,
+ 5416
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 25
+ },
+ "end": {
+ "line": 127,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 5397,
+ 5417
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 5397,
+ 5418
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 12
+ },
+ "end": {
+ "line": 127,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 5431,
+ 5437
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 5438,
+ 5443
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 19
+ },
+ "end": {
+ "line": 128,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 5431,
+ 5443
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 5444,
+ 5448
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 25
+ },
+ "end": {
+ "line": 128,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "newArgs",
+ "range": [
+ 5450,
+ 5457
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 31
+ },
+ "end": {
+ "line": 128,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 5431,
+ 5458
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 5431,
+ 5459
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 12
+ },
+ "end": {
+ "line": 128,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 5268,
+ 5469
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 42
+ },
+ "end": {
+ "line": 129,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 5234,
+ 5469
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 8
+ },
+ "end": {
+ "line": 129,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 4608,
+ 5475
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 41
+ },
+ "end": {
+ "line": 130,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4585,
+ 5475
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 18
+ },
+ "end": {
+ "line": 130,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 4571,
+ 5476
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 4
+ },
+ "end": {
+ "line": 130,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 4571,
+ 5477
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 4
+ },
+ "end": {
+ "line": 130,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 5483,
+ 5487
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 4
+ },
+ "end": {
+ "line": 132,
+ "column": 8
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "newTasks",
+ "range": [
+ 5488,
+ 5496
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 9
+ },
+ "end": {
+ "line": 132,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 5498,
+ 5506
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 19
+ },
+ "end": {
+ "line": 132,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 5483,
+ 5507
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 4
+ },
+ "end": {
+ "line": 132,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 5483,
+ 5508
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 4
+ },
+ "end": {
+ "line": 132,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 4541,
+ 5510
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 52
+ },
+ "end": {
+ "line": 133,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4504,
+ 5510
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 15
+ },
+ "end": {
+ "line": 133,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A dependency-injected version of the {@link async.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to {@link async.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf async\n * @see async.auto\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is a function of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. The remaining parameters are task names\n * whose results you are interested in. This callback will only be called when\n * all tasks have finished or an error has occurred, and so do not specify\n * dependencies in the same way as `tasks` do. If an error occurs, no further\n * `tasks` will be performed, and `results` will only be valid for those tasks\n * which managed to complete. Invoked with (err, [results...]).\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection. The final\n * // results callback can be provided as an array in the same way.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, ['email_link', function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * }]);\n ",
+ "range": [
+ 373,
+ 4488
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 0
+ },
+ "end": {
+ "line": 99,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 4489,
+ 5510
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 0
+ },
+ "end": {
+ "line": 133,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A dependency-injected version of the {@link async.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to {@link async.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf async\n * @see async.auto\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is a function of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. The remaining parameters are task names\n * whose results you are interested in. This callback will only be called when\n * all tasks have finished or an error has occurred, and so do not specify\n * dependencies in the same way as `tasks` do. If an error occurs, no further\n * `tasks` will be performed, and `results` will only be valid for those tasks\n * which managed to complete. Invoked with (err, [results...]).\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection. The final\n * // results callback can be provided as an array in the same way.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, ['email_link', function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * }]);\n ",
+ "range": [
+ 373,
+ 4488
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 0
+ },
+ "end": {
+ "line": 99,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 5510
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 133,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A dependency-injected version of the {@link async.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to {@link async.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf async\n * @see async.auto\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is a function of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. The remaining parameters are task names\n * whose results you are interested in. This callback will only be called when\n * all tasks have finished or an error has occurred, and so do not specify\n * dependencies in the same way as `tasks` do. If an error occurs, no further\n * `tasks` will be performed, and `results` will only be valid for those tasks\n * which managed to complete. Invoked with (err, [results...]).\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection. The final\n * // results callback can be provided as an array in the same way.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, ['email_link', function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * }]);\n ",
+ "range": [
+ 373,
+ 4488
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 0
+ },
+ "end": {
+ "line": 99,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " no dependencies, use the function as-is",
+ "range": [
+ 4998,
+ 5040
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 12
+ },
+ "end": {
+ "line": 114,
+ "column": 54
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/cargo.js.json b/docs/ast/source/cargo.js.json
new file mode 100644
index 0000000..391474d
--- /dev/null
+++ b/docs/ast/source/cargo.js.json
@@ -0,0 +1,466 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/queue",
+ "raw": "'./internal/queue'",
+ "range": [
+ 18,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 18
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 0,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as {@link async.queue}.\n * @typedef {Object} CargoObject\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke with (task, [callback]).\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [queue](#queue) passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing an array\n * of queued tasks, which must call its `callback(err)` argument when finished,\n * with an optional `err` argument. Invoked with (tasks, callback).\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n ",
+ "range": [
+ 1797,
+ 4128
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 78,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 4153,
+ 4158
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 24
+ },
+ "end": {
+ "line": 79,
+ "column": 29
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 4159,
+ 4165
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 30
+ },
+ "end": {
+ "line": 79,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 4167,
+ 4174
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 38
+ },
+ "end": {
+ "line": 79,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 4189,
+ 4194
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 11
+ },
+ "end": {
+ "line": 80,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 4195,
+ 4201
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 17
+ },
+ "end": {
+ "line": 80,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4203,
+ 4204
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 25
+ },
+ "end": {
+ "line": 80,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 4206,
+ 4213
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 28
+ },
+ "end": {
+ "line": 80,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 4189,
+ 4214
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 11
+ },
+ "end": {
+ "line": 80,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4182,
+ 4215
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 4
+ },
+ "end": {
+ "line": 80,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 4176,
+ 4217
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 47
+ },
+ "end": {
+ "line": 81,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4144,
+ 4217
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 15
+ },
+ "end": {
+ "line": 81,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as {@link async.queue}.\n * @typedef {Object} CargoObject\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke with (task, [callback]).\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [queue](#queue) passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing an array\n * of queued tasks, which must call its `callback(err)` argument when finished,\n * with an optional `err` argument. Invoked with (tasks, callback).\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n ",
+ "range": [
+ 1797,
+ 4128
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 78,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 4129,
+ 4217
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 0
+ },
+ "end": {
+ "line": 81,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as {@link async.queue}.\n * @typedef {Object} CargoObject\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke with (task, [callback]).\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [queue](#queue) passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing an array\n * of queued tasks, which must call its `callback(err)` argument when finished,\n * with an optional `err` argument. Invoked with (tasks, callback).\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n ",
+ "range": [
+ 1797,
+ 4128
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 78,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 4217
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 81,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as {@link async.queue}.\n * @typedef {Object} CargoObject\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke with (task, [callback]).\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [queue](#queue) passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing an array\n * of queued tasks, which must call its `callback(err)` argument when finished,\n * with an optional `err` argument. Invoked with (tasks, callback).\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n ",
+ "range": [
+ 1797,
+ 4128
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 78,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/compose.js.json b/docs/ast/source/compose.js.json
new file mode 100644
index 0000000..a97d253
--- /dev/null
+++ b/docs/ast/source/compose.js.json
@@ -0,0 +1,631 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 7,
+ 10
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7,
+ 10
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./seq",
+ "raw": "'./seq'",
+ "range": [
+ 16,
+ 23
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 16
+ },
+ "end": {
+ "line": 1,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 0,
+ 24
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "reverse",
+ "range": [
+ 30,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Array",
+ "range": [
+ 40,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 14
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "prototype",
+ "range": [
+ 46,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 20
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 40,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 14
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "reverse",
+ "range": [
+ 56,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 30
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 40,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 14
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 30,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 26,
+ 64
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 38
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n ",
+ "range": [
+ 66,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 1116,
+ 1123
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 1157,
+ 1160
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 11
+ },
+ "end": {
+ "line": 40,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1161,
+ 1166
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 15
+ },
+ "end": {
+ "line": 40,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1157,
+ 1166
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 11
+ },
+ "end": {
+ "line": 40,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1167,
+ 1171
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 21
+ },
+ "end": {
+ "line": 40,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "reverse",
+ "range": [
+ 1173,
+ 1180
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 27
+ },
+ "end": {
+ "line": 40,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "call",
+ "range": [
+ 1181,
+ 1185
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 35
+ },
+ "end": {
+ "line": 40,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1173,
+ 1185
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 27
+ },
+ "end": {
+ "line": 40,
+ "column": 39
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1186,
+ 1195
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 40
+ },
+ "end": {
+ "line": 40,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 1173,
+ 1196
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 27
+ },
+ "end": {
+ "line": 40,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1157,
+ 1197
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 11
+ },
+ "end": {
+ "line": 40,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1150,
+ 1198
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 1144,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 52
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": " functions... ",
+ "range": [
+ 1124,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 32
+ },
+ "end": {
+ "line": 39,
+ "column": 50
+ }
+ }
+ }
+ ]
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1107,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 15
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n ",
+ "range": [
+ 66,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1092,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n ",
+ "range": [
+ 66,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n ",
+ "range": [
+ 66,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": " functions... ",
+ "range": [
+ 1124,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 32
+ },
+ "end": {
+ "line": 39,
+ "column": 50
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/concat.js.json b/docs/ast/source/concat.js.json
new file mode 100644
index 0000000..5d5c43a
--- /dev/null
+++ b/docs/ast/source/concat.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/concat",
+ "raw": "'./internal/concat'",
+ "range": [
+ 19,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doParallel",
+ "range": [
+ 47,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 47,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doParallel",
+ "raw": "'./internal/doParallel'",
+ "range": [
+ 63,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 23
+ },
+ "end": {
+ "line": 2,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 40,
+ 87
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 47
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n ",
+ "range": [
+ 89,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doParallel",
+ "range": [
+ 1281,
+ 1291
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 25
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1292,
+ 1298
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 26
+ },
+ "end": {
+ "line": 30,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1281,
+ 1299
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 33
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n ",
+ "range": [
+ 89,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1266,
+ 1300
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 34
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n ",
+ "range": [
+ 89,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1300
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 34
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n ",
+ "range": [
+ 89,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/concatSeries.js.json b/docs/ast/source/concatSeries.js.json
new file mode 100644
index 0000000..c473da2
--- /dev/null
+++ b/docs/ast/source/concatSeries.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/concat",
+ "raw": "'./internal/concat'",
+ "range": [
+ 19,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doSeries",
+ "range": [
+ 47,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 47,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doSeries",
+ "raw": "'./internal/doSeries'",
+ "range": [
+ 61,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 40,
+ 83
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `concat` but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf async\n * @see async.concat\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n ",
+ "range": [
+ 85,
+ 856
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doSeries",
+ "range": [
+ 872,
+ 880
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 881,
+ 887
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 24
+ },
+ "end": {
+ "line": 22,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 872,
+ 888
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 31
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `concat` but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf async\n * @see async.concat\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n ",
+ "range": [
+ 85,
+ 856
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 857,
+ 889
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 32
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `concat` but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf async\n * @see async.concat\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n ",
+ "range": [
+ 85,
+ 856
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 889
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 32
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `concat` but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf async\n * @see async.concat\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n ",
+ "range": [
+ 85,
+ 856
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/constant.js.json b/docs/ast/source/constant.js.json
new file mode 100644
index 0000000..216ebbc
--- /dev/null
+++ b/docs/ast/source/constant.js.json
@@ -0,0 +1,782 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 39,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 39,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 58,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 26
+ },
+ "end": {
+ "line": 2,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 32,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a `waterfall`, or for plugging values in to\n * `auto`.\n *\n * @name constant\n * @static\n * @memberOf async\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {Function} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n ",
+ "range": [
+ 87,
+ 1147
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1163,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 15
+ },
+ "end": {
+ "line": 45,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "values",
+ "range": [
+ 1177,
+ 1183
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 29
+ },
+ "end": {
+ "line": 45,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1195,
+ 1199
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 8
+ },
+ "end": {
+ "line": 46,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1203,
+ 1207
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 16
+ },
+ "end": {
+ "line": 46,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 1202,
+ 1208
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1209,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1202,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "values",
+ "range": [
+ 1216,
+ 1222
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 29
+ },
+ "end": {
+ "line": 46,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1202,
+ 1223
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 1195,
+ 1223
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 8
+ },
+ "end": {
+ "line": 46,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1191,
+ 1224
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 1236,
+ 1249
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 47,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "ignoredArgs",
+ "range": [
+ 1260,
+ 1271
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 35
+ },
+ "end": {
+ "line": 47,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1273,
+ 1281
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 48
+ },
+ "end": {
+ "line": 47,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1300,
+ 1308
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1309,
+ 1314
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 24
+ },
+ "end": {
+ "line": 48,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1300,
+ 1314
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1315,
+ 1319
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 30
+ },
+ "end": {
+ "line": 48,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1321,
+ 1325
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 36
+ },
+ "end": {
+ "line": 48,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 1300,
+ 1326
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1293,
+ 1327
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 1283,
+ 1333
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 58
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1250,
+ 1333
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1236,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 49,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1229,
+ 1335
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 4
+ },
+ "end": {
+ "line": 49,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1185,
+ 1337
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 37
+ },
+ "end": {
+ "line": 50,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1168,
+ 1337
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 20
+ },
+ "end": {
+ "line": 50,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "range": [
+ 1163,
+ 1338
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 15
+ },
+ "end": {
+ "line": 50,
+ "column": 2
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a `waterfall`, or for plugging values in to\n * `auto`.\n *\n * @name constant\n * @static\n * @memberOf async\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {Function} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n ",
+ "range": [
+ 87,
+ 1147
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1148,
+ 1339
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a `waterfall`, or for plugging values in to\n * `auto`.\n *\n * @name constant\n * @static\n * @memberOf async\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {Function} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n ",
+ "range": [
+ 87,
+ 1147
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1339
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a `waterfall`, or for plugging values in to\n * `auto`.\n *\n * @name constant\n * @static\n * @memberOf async\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {Function} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n ",
+ "range": [
+ 87,
+ 1147
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/detect.js.json b/docs/ast/source/detect.js.json
new file mode 100644
index 0000000..b3132a4
--- /dev/null
+++ b/docs/ast/source/detect.js.json
@@ -0,0 +1,501 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/identity",
+ "raw": "'lodash/identity'",
+ "range": [
+ 21,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/createTester",
+ "raw": "'./internal/createTester'",
+ "range": [
+ 66,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 41,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 100,
+ 106
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 100,
+ 106
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOf",
+ "raw": "'./eachOf'",
+ "range": [
+ 112,
+ 122
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 19
+ },
+ "end": {
+ "line": 4,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 93,
+ 123
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 131,
+ 144
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 131,
+ 144
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/findGetResult",
+ "raw": "'./internal/findGetResult'",
+ "range": [
+ 150,
+ 176
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 124,
+ 177
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * `detectSeries`.\n *\n * @name detect\n * @static\n * @memberOf async\n * @alias find\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n ",
+ "range": [
+ 179,
+ 1583
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 1599,
+ 1611
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 15
+ },
+ "end": {
+ "line": 41,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 1612,
+ 1618
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 28
+ },
+ "end": {
+ "line": 41,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 1620,
+ 1628
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 36
+ },
+ "end": {
+ "line": 41,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 1630,
+ 1643
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 46
+ },
+ "end": {
+ "line": 41,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 1599,
+ 1644
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 15
+ },
+ "end": {
+ "line": 41,
+ "column": 60
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * `detectSeries`.\n *\n * @name detect\n * @static\n * @memberOf async\n * @alias find\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n ",
+ "range": [
+ 179,
+ 1583
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1584,
+ 1645
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 61
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * `detectSeries`.\n *\n * @name detect\n * @static\n * @memberOf async\n * @alias find\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n ",
+ "range": [
+ 179,
+ 1583
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1645
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 61
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * `detectSeries`.\n *\n * @name detect\n * @static\n * @memberOf async\n * @alias find\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n ",
+ "range": [
+ 179,
+ 1583
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/detectLimit.js.json b/docs/ast/source/detectLimit.js.json
new file mode 100644
index 0000000..15c0313
--- /dev/null
+++ b/docs/ast/source/detectLimit.js.json
@@ -0,0 +1,501 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/identity",
+ "raw": "'lodash/identity'",
+ "range": [
+ 21,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/createTester",
+ "raw": "'./internal/createTester'",
+ "range": [
+ 66,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 41,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 100,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 100,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 117,
+ 132
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 93,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 141,
+ 154
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 141,
+ 154
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/findGetResult",
+ "raw": "'./internal/findGetResult'",
+ "range": [
+ 160,
+ 186
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 134,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 189,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 27,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 1107,
+ 1119
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 1120,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 28
+ },
+ "end": {
+ "line": 28,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 1133,
+ 1141
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 41
+ },
+ "end": {
+ "line": 28,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 1143,
+ 1156
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 51
+ },
+ "end": {
+ "line": 28,
+ "column": 64
+ }
+ }
+ }
+ ],
+ "range": [
+ 1107,
+ 1157
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 65
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 189,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 27,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1092,
+ 1158
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 66
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 189,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 27,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1158
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 66
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 189,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 27,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/detectSeries.js.json b/docs/ast/source/detectSeries.js.json
new file mode 100644
index 0000000..08229f0
--- /dev/null
+++ b/docs/ast/source/detectSeries.js.json
@@ -0,0 +1,501 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/identity",
+ "raw": "'lodash/identity'",
+ "range": [
+ 21,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 48,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/createTester",
+ "raw": "'./internal/createTester'",
+ "range": [
+ 66,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 41,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 100,
+ 112
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 100,
+ 112
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfSeries",
+ "raw": "'./eachOfSeries'",
+ "range": [
+ 118,
+ 134
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 25
+ },
+ "end": {
+ "line": 4,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 93,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 143,
+ 156
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 143,
+ 156
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/findGetResult",
+ "raw": "'./internal/findGetResult'",
+ "range": [
+ 162,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 136,
+ 189
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 191,
+ 1007
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 1023,
+ 1035
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 15
+ },
+ "end": {
+ "line": 26,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 1036,
+ 1048
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 28
+ },
+ "end": {
+ "line": 26,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 1050,
+ 1058
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 42
+ },
+ "end": {
+ "line": 26,
+ "column": 50
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "findGetResult",
+ "range": [
+ 1060,
+ 1073
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 52
+ },
+ "end": {
+ "line": 26,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "range": [
+ 1023,
+ 1074
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 15
+ },
+ "end": {
+ "line": 26,
+ "column": 66
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 191,
+ 1007
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1008,
+ 1075
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 67
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 191,
+ 1007
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1075
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 67
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `detect` but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n ",
+ "range": [
+ 191,
+ 1007
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/dir.js.json b/docs/ast/source/dir.js.json
new file mode 100644
index 0000000..f9b3cc4
--- /dev/null
+++ b/docs/ast/source/dir.js.json
@@ -0,0 +1,247 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "consoleFunc",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/consoleFunc",
+ "raw": "'./internal/consoleFunc'",
+ "range": [
+ 24,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 0,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console` using `console.dir`\n * to display the properties of the resulting object. Only works in Node.js or\n * in browsers that support `console.dir` and `console.error` (such as FF and\n * Chrome). If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n ",
+ "range": [
+ 51,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "consoleFunc",
+ "range": [
+ 930,
+ 941
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "dir",
+ "raw": "'dir'",
+ "range": [
+ 942,
+ 947
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 27
+ },
+ "end": {
+ "line": 30,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 930,
+ 948
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 33
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console` using `console.dir`\n * to display the properties of the resulting object. Only works in Node.js or\n * in browsers that support `console.dir` and `console.error` (such as FF and\n * Chrome). If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n ",
+ "range": [
+ 51,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 915,
+ 949
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 34
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console` using `console.dir`\n * to display the properties of the resulting object. Only works in Node.js or\n * in browsers that support `console.dir` and `console.error` (such as FF and\n * Chrome). If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n ",
+ "range": [
+ 51,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 949
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 34
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console` using `console.dir`\n * to display the properties of the resulting object. Only works in Node.js or\n * in browsers that support `console.dir` and `console.error` (such as FF and\n * Chrome). If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n ",
+ "range": [
+ 51,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/doDuring.js.json b/docs/ast/source/doDuring.js.json
new file mode 100644
index 0000000..454f534
--- /dev/null
+++ b/docs/ast/source/doDuring.js.json
@@ -0,0 +1,835 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./during",
+ "raw": "'./during'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of {@link async.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf async\n * @see async.during\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 1012,
+ 1020
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 24
+ },
+ "end": {
+ "line": 23,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1021,
+ 1023
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 33
+ },
+ "end": {
+ "line": 23,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1025,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 37
+ },
+ "end": {
+ "line": 23,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1031,
+ 1039
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 43
+ },
+ "end": {
+ "line": 23,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "calls",
+ "range": [
+ 1051,
+ 1056
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1059,
+ 1060
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1051,
+ 1060
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1047,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 24,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 1067,
+ 1073
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 26,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1083,
+ 1087
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 20
+ },
+ "end": {
+ "line": 26,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "calls",
+ "range": [
+ 1103,
+ 1108
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 17
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 1103,
+ 1110
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1113,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 22
+ },
+ "end": {
+ "line": 27,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1103,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1123,
+ 1127
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 32
+ },
+ "end": {
+ "line": 27,
+ "column": 36
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1128,
+ 1132
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 37
+ },
+ "end": {
+ "line": 27,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 1134,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 43
+ },
+ "end": {
+ "line": 27,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 1123,
+ 1139
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 32
+ },
+ "end": {
+ "line": 27,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 1116,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 25
+ },
+ "end": {
+ "line": 27,
+ "column": 49
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1099,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1149,
+ 1153
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1154,
+ 1159
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 13
+ },
+ "end": {
+ "line": 28,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1149,
+ 1159
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1160,
+ 1164
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 19
+ },
+ "end": {
+ "line": 28,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1166,
+ 1175
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 25
+ },
+ "end": {
+ "line": 28,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1149,
+ 1176
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1149,
+ 1177
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1089,
+ 1183
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 26
+ },
+ "end": {
+ "line": 29,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1074,
+ 1183
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 11
+ },
+ "end": {
+ "line": 29,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1185,
+ 1187
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 7
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1189,
+ 1197
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 11
+ },
+ "end": {
+ "line": 29,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1067,
+ 1198
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 29,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1067,
+ 1199
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 29,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1041,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 53
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1003,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of {@link async.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf async\n * @see async.during\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 988,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of {@link async.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf async\n * @see async.during\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of {@link async.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf async\n * @see async.during\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/doUntil.js.json b/docs/ast/source/doUntil.js.json
new file mode 100644
index 0000000..0845b0a
--- /dev/null
+++ b/docs/ast/source/doUntil.js.json
@@ -0,0 +1,577 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./doWhilst",
+ "raw": "'./doWhilst'",
+ "range": [
+ 21,
+ 33
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 0,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf async\n * @see async.doWhilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with the non-error callback results of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 36,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 926,
+ 933
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 24
+ },
+ "end": {
+ "line": 22,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 934,
+ 936
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 32
+ },
+ "end": {
+ "line": 22,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 938,
+ 942
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 36
+ },
+ "end": {
+ "line": 22,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 944,
+ 952
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 42
+ },
+ "end": {
+ "line": 22,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 960,
+ 968
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 23,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 969,
+ 971
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1002,
+ 1006
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1007,
+ 1012
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 21
+ },
+ "end": {
+ "line": 24,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 1002,
+ 1012
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1013,
+ 1017
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 27
+ },
+ "end": {
+ "line": 24,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1019,
+ 1028
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 33
+ },
+ "end": {
+ "line": 24,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 1002,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 43
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1001,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 15
+ },
+ "end": {
+ "line": 24,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 994,
+ 1030
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 984,
+ 1036
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 28
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 973,
+ 1036
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 17
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1038,
+ 1046
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 7
+ },
+ "end": {
+ "line": 25,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 960,
+ 1047
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 960,
+ 1048
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 954,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 52
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 917,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf async\n * @see async.doWhilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with the non-error callback results of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 36,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 902,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf async\n * @see async.doWhilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with the non-error callback results of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 36,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf async\n * @see async.doWhilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with the non-error callback results of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 36,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/doWhilst.js.json b/docs/ast/source/doWhilst.js.json
new file mode 100644
index 0000000..25e9095
--- /dev/null
+++ b/docs/ast/source/doWhilst.js.json
@@ -0,0 +1,724 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./whilst",
+ "raw": "'./whilst'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with Invoked with the non-error callback results\n * of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 1031
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 1056,
+ 1064
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 24
+ },
+ "end": {
+ "line": 25,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1065,
+ 1067
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 33
+ },
+ "end": {
+ "line": 25,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1069,
+ 1073
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 37
+ },
+ "end": {
+ "line": 25,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1075,
+ 1083
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 43
+ },
+ "end": {
+ "line": 25,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "calls",
+ "range": [
+ 1095,
+ 1100
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 8
+ },
+ "end": {
+ "line": 26,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1103,
+ 1104
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 16
+ },
+ "end": {
+ "line": 26,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1095,
+ 1104
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 8
+ },
+ "end": {
+ "line": 26,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1091,
+ 1105
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 26,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 1110,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "calls",
+ "range": [
+ 1147,
+ 1152
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 17
+ },
+ "end": {
+ "line": 28,
+ "column": 22
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1145,
+ 1152
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 22
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1156,
+ 1157
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 26
+ },
+ "end": {
+ "line": 28,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1145,
+ 1157
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1161,
+ 1165
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 31
+ },
+ "end": {
+ "line": 28,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1166,
+ 1171
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 36
+ },
+ "end": {
+ "line": 28,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1161,
+ 1171
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 31
+ },
+ "end": {
+ "line": 28,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1172,
+ 1176
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 42
+ },
+ "end": {
+ "line": 28,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1178,
+ 1187
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 48
+ },
+ "end": {
+ "line": 28,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "range": [
+ 1161,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 31
+ },
+ "end": {
+ "line": 28,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 1145,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 1138,
+ 1189
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 1128,
+ 1195
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 22
+ },
+ "end": {
+ "line": 29,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1117,
+ 1195
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 11
+ },
+ "end": {
+ "line": 29,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1197,
+ 1199
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 7
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1201,
+ 1209
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 11
+ },
+ "end": {
+ "line": 29,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1110,
+ 1210
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 29,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1110,
+ 1211
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 29,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1085,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 53
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1047,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with Invoked with the non-error callback results\n * of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 1031
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1032,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with Invoked with the non-error callback results\n * of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 1031
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The post-check version of {@link async.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with Invoked with the non-error callback results\n * of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 1031
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/during.js.json b/docs/ast/source/during.js.json
new file mode 100644
index 0000000..00d324d
--- /dev/null
+++ b/docs/ast/source/during.js.json
@@ -0,0 +1,1542 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 49,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 32,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1355
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 1380,
+ 1386
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 24
+ },
+ "end": {
+ "line": 41,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1387,
+ 1391
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 31
+ },
+ "end": {
+ "line": 41,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1393,
+ 1395
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 37
+ },
+ "end": {
+ "line": 41,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1397,
+ 1405
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 41
+ },
+ "end": {
+ "line": 41,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1413,
+ 1421
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1424,
+ 1432
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 42,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1436,
+ 1440
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 27
+ },
+ "end": {
+ "line": 42,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1424,
+ 1440
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 42,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1413,
+ 1440
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1413,
+ 1441
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1451,
+ 1455
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1458,
+ 1462
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 15
+ },
+ "end": {
+ "line": 44,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1472,
+ 1475
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 29
+ },
+ "end": {
+ "line": 44,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1477,
+ 1481
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 34
+ },
+ "end": {
+ "line": 44,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1497,
+ 1500
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 12
+ },
+ "end": {
+ "line": 45,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1516,
+ 1524
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1525,
+ 1528
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 21
+ },
+ "end": {
+ "line": 46,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 1516,
+ 1529
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1516,
+ 1530
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1502,
+ 1540
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 17
+ },
+ "end": {
+ "line": 47,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1560,
+ 1564
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 1565,
+ 1569
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 17
+ },
+ "end": {
+ "line": 48,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1560,
+ 1569
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "check",
+ "range": [
+ 1570,
+ 1575
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 22
+ },
+ "end": {
+ "line": 48,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 1560,
+ 1576
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1560,
+ 1577
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1590,
+ 1594
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 12
+ },
+ "end": {
+ "line": 49,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1595,
+ 1600
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 17
+ },
+ "end": {
+ "line": 49,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1590,
+ 1600
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 12
+ },
+ "end": {
+ "line": 49,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1601,
+ 1605
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 23
+ },
+ "end": {
+ "line": 49,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1607,
+ 1611
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 29
+ },
+ "end": {
+ "line": 49,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 1590,
+ 1612
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 12
+ },
+ "end": {
+ "line": 49,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1590,
+ 1613
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 12
+ },
+ "end": {
+ "line": 49,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1546,
+ 1623
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 15
+ },
+ "end": {
+ "line": 50,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1493,
+ 1623
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1483,
+ 1629
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 40
+ },
+ "end": {
+ "line": 51,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1463,
+ 1629
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 20
+ },
+ "end": {
+ "line": 51,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1458,
+ 1630
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 15
+ },
+ "end": {
+ "line": 51,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1451,
+ 1630
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1447,
+ 1631
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 4
+ },
+ "end": {
+ "line": 51,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "check",
+ "range": [
+ 1641,
+ 1646
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1658,
+ 1661
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 25
+ },
+ "end": {
+ "line": 53,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "truth",
+ "range": [
+ 1663,
+ 1668
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 30
+ },
+ "end": {
+ "line": 53,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1684,
+ 1687
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 54,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1696,
+ 1704
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 24
+ },
+ "end": {
+ "line": 54,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1705,
+ 1708
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 33
+ },
+ "end": {
+ "line": 54,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1696,
+ 1709
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 24
+ },
+ "end": {
+ "line": 54,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1689,
+ 1710
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 17
+ },
+ "end": {
+ "line": 54,
+ "column": 38
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1680,
+ 1710
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 8
+ },
+ "end": {
+ "line": 54,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "truth",
+ "range": [
+ 1724,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 13
+ },
+ "end": {
+ "line": 55,
+ "column": 18
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1723,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 12
+ },
+ "end": {
+ "line": 55,
+ "column": 18
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1738,
+ 1746
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 27
+ },
+ "end": {
+ "line": 55,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1747,
+ 1751
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 36
+ },
+ "end": {
+ "line": 55,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 1738,
+ 1752
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 27
+ },
+ "end": {
+ "line": 55,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1731,
+ 1753
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 20
+ },
+ "end": {
+ "line": 55,
+ "column": 42
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1719,
+ 1753
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 8
+ },
+ "end": {
+ "line": 55,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1762,
+ 1764
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 8
+ },
+ "end": {
+ "line": 56,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1765,
+ 1769
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 11
+ },
+ "end": {
+ "line": 56,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 1762,
+ 1770
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 8
+ },
+ "end": {
+ "line": 56,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 1762,
+ 1771
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 8
+ },
+ "end": {
+ "line": 56,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1670,
+ 1777
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 37
+ },
+ "end": {
+ "line": 57,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1649,
+ 1777
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 16
+ },
+ "end": {
+ "line": 57,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 1641,
+ 1777
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 57,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1637,
+ 1778
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 4
+ },
+ "end": {
+ "line": 57,
+ "column": 6
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1784,
+ 1788
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 4
+ },
+ "end": {
+ "line": 59,
+ "column": 8
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "check",
+ "range": [
+ 1789,
+ 1794
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 9
+ },
+ "end": {
+ "line": 59,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 1784,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 4
+ },
+ "end": {
+ "line": 59,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1784,
+ 1796
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 4
+ },
+ "end": {
+ "line": 59,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "range": [
+ 1407,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 51
+ },
+ "end": {
+ "line": 60,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1371,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 15
+ },
+ "end": {
+ "line": 60,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1355
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1356,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 0
+ },
+ "end": {
+ "line": 60,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1355
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 60,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like {@link async.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1355
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/each.js.json b/docs/ast/source/each.js.json
new file mode 100644
index 0000000..79d3b6b
--- /dev/null
+++ b/docs/ast/source/each.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachLimit",
+ "raw": "'./eachLimit'",
+ "range": [
+ 22,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 0,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 57,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 37,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf async\n * @alias forEach\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item\n * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n * it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is not\n * passed to the iteratee. Invoked with (item, callback). If you need the index,\n * use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n ",
+ "range": [
+ 80,
+ 2364
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 2380,
+ 2387
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 2388,
+ 2397
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 23
+ },
+ "end": {
+ "line": 62,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 2399,
+ 2407
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 34
+ },
+ "end": {
+ "line": 62,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 2380,
+ 2408
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 43
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf async\n * @alias forEach\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item\n * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n * it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is not\n * passed to the iteratee. Invoked with (item, callback). If you need the index,\n * use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n ",
+ "range": [
+ 80,
+ 2364
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 2365,
+ 2409
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 0
+ },
+ "end": {
+ "line": 62,
+ "column": 44
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf async\n * @alias forEach\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item\n * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n * it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is not\n * passed to the iteratee. Invoked with (item, callback). If you need the index,\n * use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n ",
+ "range": [
+ 80,
+ 2364
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2409
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 62,
+ "column": 44
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf async\n * @alias forEach\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item\n * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n * it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is not\n * passed to the iteratee. Invoked with (item, callback). If you need the index,\n * use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n ",
+ "range": [
+ 80,
+ 2364
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/eachLimit.js.json b/docs/ast/source/eachLimit.js.json
new file mode 100644
index 0000000..e7e3bf6
--- /dev/null
+++ b/docs/ast/source/eachLimit.js.json
@@ -0,0 +1,576 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/eachOfLimit",
+ "raw": "'./internal/eachOfLimit'",
+ "range": [
+ 24,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 0,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "withoutIndex",
+ "range": [
+ 57,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 57,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/withoutIndex",
+ "raw": "'./internal/withoutIndex'",
+ "range": [
+ 75,
+ 100
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 25
+ },
+ "end": {
+ "line": 2,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 50,
+ 101
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 51
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Object} coll - A colleciton to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * iteratee is passed a `callback(err)` which must be called once it has\n * completed. If no error has occurred, the `callback` should be run without\n * arguments or with an explicit `null` argument. The array index is not passed\n * to the iteratee. Invoked with (item, callback). If you need the index, use\n * `eachOfLimit`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 103,
+ 1002
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 1027,
+ 1036
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 24,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1037,
+ 1041
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 34
+ },
+ "end": {
+ "line": 24,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 1043,
+ 1048
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 40
+ },
+ "end": {
+ "line": 24,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1050,
+ 1058
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 47
+ },
+ "end": {
+ "line": 24,
+ "column": 55
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1060,
+ 1068
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 57
+ },
+ "end": {
+ "line": 24,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 1076,
+ 1087
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 1088,
+ 1093
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 16
+ },
+ "end": {
+ "line": 25,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1076,
+ 1094
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1095,
+ 1099
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 23
+ },
+ "end": {
+ "line": 25,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "withoutIndex",
+ "range": [
+ 1101,
+ 1113
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 29
+ },
+ "end": {
+ "line": 25,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1114,
+ 1122
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 42
+ },
+ "end": {
+ "line": 25,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1101,
+ 1123
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 29
+ },
+ "end": {
+ "line": 25,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1125,
+ 1133
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 53
+ },
+ "end": {
+ "line": 25,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 1076,
+ 1134
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 1076,
+ 1135
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 63
+ }
+ }
+ }
+ ],
+ "range": [
+ 1070,
+ 1137
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 67
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1018,
+ 1137
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 15
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Object} coll - A colleciton to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * iteratee is passed a `callback(err)` which must be called once it has\n * completed. If no error has occurred, the `callback` should be run without\n * arguments or with an explicit `null` argument. The array index is not passed\n * to the iteratee. Invoked with (item, callback). If you need the index, use\n * `eachOfLimit`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 103,
+ 1002
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1003,
+ 1137
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Object} coll - A colleciton to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * iteratee is passed a `callback(err)` which must be called once it has\n * completed. If no error has occurred, the `callback` should be run without\n * arguments or with an explicit `null` argument. The array index is not passed\n * to the iteratee. Invoked with (item, callback). If you need the index, use\n * `eachOfLimit`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 103,
+ 1002
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1137
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Object} coll - A colleciton to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * iteratee is passed a `callback(err)` which must be called once it has\n * completed. If no error has occurred, the `callback` should be run without\n * arguments or with an explicit `null` argument. The array index is not passed\n * to the iteratee. Invoked with (item, callback). If you need the index, use\n * `eachOfLimit`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 103,
+ 1002
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/eachOf.js.json b/docs/ast/source/eachOf.js.json
new file mode 100644
index 0000000..13ca2bf
--- /dev/null
+++ b/docs/ast/source/eachOf.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like `each`, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf async\n * @alias forEachOf\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n ",
+ "range": [
+ 84,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 42,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1498,
+ 1505
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 15
+ },
+ "end": {
+ "line": 43,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 1506,
+ 1517
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 23
+ },
+ "end": {
+ "line": 43,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1519,
+ 1527
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 36
+ },
+ "end": {
+ "line": 43,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 1498,
+ 1528
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 15
+ },
+ "end": {
+ "line": 43,
+ "column": 45
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like `each`, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf async\n * @alias forEachOf\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n ",
+ "range": [
+ 84,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 42,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1483,
+ 1529
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 46
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like `each`, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf async\n * @alias forEachOf\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n ",
+ "range": [
+ 84,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 42,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1529
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 46
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Like `each`, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf async\n * @alias forEachOf\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n ",
+ "range": [
+ 84,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 42,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/eachOfLimit.js.json b/docs/ast/source/eachOfLimit.js.json
new file mode 100644
index 0000000..82a05a4
--- /dev/null
+++ b/docs/ast/source/eachOfLimit.js.json
@@ -0,0 +1,466 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "_eachOfLimit",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/eachOfLimit",
+ "raw": "'./internal/eachOfLimit'",
+ "range": [
+ 25,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 0,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 50
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 52,
+ 939
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 964,
+ 975
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 24,
+ "column": 35
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 976,
+ 980
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 36
+ },
+ "end": {
+ "line": 24,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 982,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 42
+ },
+ "end": {
+ "line": 24,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 989,
+ 997
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 49
+ },
+ "end": {
+ "line": 24,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 999,
+ 1007
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 59
+ },
+ "end": {
+ "line": 24,
+ "column": 67
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_eachOfLimit",
+ "range": [
+ 1015,
+ 1027
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 1028,
+ 1033
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 17
+ },
+ "end": {
+ "line": 25,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 1015,
+ 1034
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1035,
+ 1039
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 24
+ },
+ "end": {
+ "line": 25,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1041,
+ 1049
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 30
+ },
+ "end": {
+ "line": 25,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1051,
+ 1059
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 40
+ },
+ "end": {
+ "line": 25,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1015,
+ 1060
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 1015,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1009,
+ 1063
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 69
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 955,
+ 1063
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 15
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 52,
+ 939
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 940,
+ 1063
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 52,
+ 939
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1063
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 52,
+ 939
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/eachOfSeries.js.json b/docs/ast/source/eachOfSeries.js.json
new file mode 100644
index 0000000..9508ef8
--- /dev/null
+++ b/docs/ast/source/eachOfSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * `key` is the item's key, or index in the case of an array. The iteratee is\n * passed a `callback(err)` which must be called once it has completed. If no\n * error has occurred, the callback should be run without arguments or with an\n * explicit `null` argument. Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 84,
+ 882
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 898,
+ 905
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 906,
+ 917
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 23
+ },
+ "end": {
+ "line": 22,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 919,
+ 920
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 36
+ },
+ "end": {
+ "line": 22,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 898,
+ 921
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * `key` is the item's key, or index in the case of an array. The iteratee is\n * passed a `callback(err)` which must be called once it has completed. If no\n * error has occurred, the callback should be run without arguments or with an\n * explicit `null` argument. Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 84,
+ 882
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 883,
+ 922
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * `key` is the item's key, or index in the case of an array. The iteratee is\n * passed a `callback(err)` which must be called once it has completed. If no\n * error has occurred, the callback should be run without arguments or with an\n * explicit `null` argument. Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 84,
+ 882
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 922
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 39
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `eachOf` but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * `key` is the item's key, or index in the case of an array. The iteratee is\n * passed a `callback(err)` which must be called once it has completed. If no\n * error has occurred, the callback should be run without arguments or with an\n * explicit `null` argument. Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 84,
+ 882
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/eachSeries.js.json b/docs/ast/source/eachSeries.js.json
new file mode 100644
index 0000000..b282338
--- /dev/null
+++ b/docs/ast/source/eachSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachLimit",
+ "raw": "'./eachLimit'",
+ "range": [
+ 22,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 0,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 57,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 37,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n * once it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is\n * not passed to the iteratee. Invoked with (item, callback). If you need the\n * index, use `eachOfSeries`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 80,
+ 897
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 913,
+ 920
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 23,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 921,
+ 930
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 23
+ },
+ "end": {
+ "line": 23,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 932,
+ 933
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 34
+ },
+ "end": {
+ "line": 23,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 913,
+ 934
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 23,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n * once it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is\n * not passed to the iteratee. Invoked with (item, callback). If you need the\n * index, use `eachOfSeries`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 80,
+ 897
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 898,
+ 935
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n * once it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is\n * not passed to the iteratee. Invoked with (item, callback). If you need the\n * index, use `eachOfSeries`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 80,
+ 897
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 935
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `each` but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n * once it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is\n * not passed to the iteratee. Invoked with (item, callback). If you need the\n * index, use `eachOfSeries`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n ",
+ "range": [
+ 80,
+ 897
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/ensureAsync.js.json b/docs/ast/source/ensureAsync.js.json
new file mode 100644
index 0000000..917d73b
--- /dev/null
+++ b/docs/ast/source/ensureAsync.js.json
@@ -0,0 +1,1366 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/setImmediate",
+ "raw": "'./internal/setImmediate'",
+ "range": [
+ 25,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 59,
+ 72
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 59,
+ 72
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 78,
+ 104
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 26
+ },
+ "end": {
+ "line": 2,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 52,
+ 105
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained.\n *\n * @name ensureAsync\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {Function} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n ",
+ "range": [
+ 107,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 36,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 1388,
+ 1399
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 24
+ },
+ "end": {
+ "line": 37,
+ "column": 35
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1400,
+ 1402
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 36
+ },
+ "end": {
+ "line": 37,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 1417,
+ 1430
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 11
+ },
+ "end": {
+ "line": 38,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1441,
+ 1445
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 35
+ },
+ "end": {
+ "line": 38,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1447,
+ 1455
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 41
+ },
+ "end": {
+ "line": 38,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "sync",
+ "range": [
+ 1471,
+ 1475
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 1478,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 19
+ },
+ "end": {
+ "line": 39,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1471,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1467,
+ 1483
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1492,
+ 1496
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 1497,
+ 1501
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 13
+ },
+ "end": {
+ "line": 40,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1492,
+ 1501
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "innerArgs",
+ "range": [
+ 1532,
+ 1541
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 16
+ },
+ "end": {
+ "line": 41,
+ "column": 25
+ }
+ }
+ },
+ "init": {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1544,
+ 1553
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 28
+ },
+ "end": {
+ "line": 41,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1532,
+ 1553
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 16
+ },
+ "end": {
+ "line": 41,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1528,
+ 1554
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "sync",
+ "range": [
+ 1571,
+ 1575
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 16
+ },
+ "end": {
+ "line": 42,
+ "column": 20
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 1595,
+ 1607
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 43,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1642,
+ 1650
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 20
+ },
+ "end": {
+ "line": 44,
+ "column": 28
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1651,
+ 1656
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 29
+ },
+ "end": {
+ "line": 44,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1642,
+ 1656
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 20
+ },
+ "end": {
+ "line": 44,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1657,
+ 1661
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 35
+ },
+ "end": {
+ "line": 44,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "innerArgs",
+ "range": [
+ 1663,
+ 1672
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 41
+ },
+ "end": {
+ "line": 44,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1642,
+ 1673
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 20
+ },
+ "end": {
+ "line": 44,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1642,
+ 1674
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 20
+ },
+ "end": {
+ "line": 44,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 1620,
+ 1692
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 41
+ },
+ "end": {
+ "line": 45,
+ "column": 17
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1608,
+ 1692
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 29
+ },
+ "end": {
+ "line": 45,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1595,
+ 1693
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1595,
+ 1694
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1577,
+ 1708
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1732,
+ 1740
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 16
+ },
+ "end": {
+ "line": 47,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1741,
+ 1746
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 47,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1732,
+ 1746
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 16
+ },
+ "end": {
+ "line": 47,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1747,
+ 1751
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 31
+ },
+ "end": {
+ "line": 47,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "innerArgs",
+ "range": [
+ 1753,
+ 1762
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 37
+ },
+ "end": {
+ "line": 47,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1732,
+ 1763
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 16
+ },
+ "end": {
+ "line": 47,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1732,
+ 1764
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 16
+ },
+ "end": {
+ "line": 47,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1714,
+ 1778
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 19
+ },
+ "end": {
+ "line": 48,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1567,
+ 1778
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1514,
+ 1788
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 30
+ },
+ "end": {
+ "line": 49,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1502,
+ 1788
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 18
+ },
+ "end": {
+ "line": 49,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1492,
+ 1789
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1492,
+ 1790
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1799,
+ 1801
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 10
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1802,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 11
+ },
+ "end": {
+ "line": 50,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 1799,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1808,
+ 1812
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 17
+ },
+ "end": {
+ "line": 50,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1814,
+ 1818
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 23
+ },
+ "end": {
+ "line": 50,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 1799,
+ 1819
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1799,
+ 1820
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "sync",
+ "range": [
+ 1829,
+ 1833
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 1836,
+ 1841
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 15
+ },
+ "end": {
+ "line": 51,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1829,
+ 1841
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1829,
+ 1842
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1457,
+ 1848
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 51
+ },
+ "end": {
+ "line": 52,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1431,
+ 1848
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 25
+ },
+ "end": {
+ "line": 52,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1417,
+ 1849
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 11
+ },
+ "end": {
+ "line": 52,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1410,
+ 1850
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 4
+ },
+ "end": {
+ "line": 52,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1404,
+ 1852
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 40
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1379,
+ 1852
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 15
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained.\n *\n * @name ensureAsync\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {Function} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n ",
+ "range": [
+ 107,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 36,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1364,
+ 1852
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 0
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained.\n *\n * @name ensureAsync\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {Function} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n ",
+ "range": [
+ 107,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 36,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1852
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained.\n *\n * @name ensureAsync\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {Function} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n ",
+ "range": [
+ 107,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 36,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/every.js.json b/docs/ast/source/every.js.json
new file mode 100644
index 0000000..a33563a
--- /dev/null
+++ b/docs/ast/source/every.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./everyLimit",
+ "raw": "'./everyLimit'",
+ "range": [
+ 23,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 23
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 0,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 59,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 39,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf async\n * @alias all\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n ",
+ "range": [
+ 82,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1158,
+ 1165
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 15
+ },
+ "end": {
+ "line": 31,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 1166,
+ 1176
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 23
+ },
+ "end": {
+ "line": 31,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1178,
+ 1186
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 35
+ },
+ "end": {
+ "line": 31,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 1158,
+ 1187
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 15
+ },
+ "end": {
+ "line": 31,
+ "column": 44
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf async\n * @alias all\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n ",
+ "range": [
+ 82,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1143,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 45
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf async\n * @alias all\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n ",
+ "range": [
+ 82,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 45
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf async\n * @alias all\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n ",
+ "range": [
+ 82,
+ 1142
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/everyLimit.js.json b/docs/ast/source/everyLimit.js.json
new file mode 100644
index 0000000..c853bea
--- /dev/null
+++ b/docs/ast/source/everyLimit.js.json
@@ -0,0 +1,428 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/createTester",
+ "raw": "'./internal/createTester'",
+ "range": [
+ 25,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 59,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 59,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 76,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 24
+ },
+ "end": {
+ "line": 2,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 52,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "notId",
+ "range": [
+ 100,
+ 105
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 100,
+ 105
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/notId",
+ "raw": "'./internal/notId'",
+ "range": [
+ 111,
+ 129
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 18
+ },
+ "end": {
+ "line": 3,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 93,
+ 130
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf async\n * @see async.every\n * @alias allLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 132,
+ 964
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 980,
+ 992
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 15
+ },
+ "end": {
+ "line": 24,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 993,
+ 1004
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 28
+ },
+ "end": {
+ "line": 24,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "notId",
+ "range": [
+ 1006,
+ 1011
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 41
+ },
+ "end": {
+ "line": 24,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "notId",
+ "range": [
+ 1013,
+ 1018
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 48
+ },
+ "end": {
+ "line": 24,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "range": [
+ 980,
+ 1019
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 15
+ },
+ "end": {
+ "line": 24,
+ "column": 54
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf async\n * @see async.every\n * @alias allLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 132,
+ 964
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 965,
+ 1020
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 55
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf async\n * @see async.every\n * @alias allLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 132,
+ 964
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1020
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 55
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf async\n * @see async.every\n * @alias allLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 132,
+ 964
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/everySeries.js.json b/docs/ast/source/everySeries.js.json
new file mode 100644
index 0000000..8cdd48a
--- /dev/null
+++ b/docs/ast/source/everySeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./everyLimit",
+ "raw": "'./everyLimit'",
+ "range": [
+ 23,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 23
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 0,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 59,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 39,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf async\n * @see async.every\n * @alias allSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 82,
+ 831
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 847,
+ 854
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 855,
+ 865
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 23
+ },
+ "end": {
+ "line": 22,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 867,
+ 868
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 35
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 847,
+ 869
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 37
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf async\n * @see async.every\n * @alias allSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 82,
+ 831
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 832,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf async\n * @see async.every\n * @alias allSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 82,
+ 831
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `every` but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf async\n * @see async.every\n * @alias allSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n ",
+ "range": [
+ 82,
+ 831
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/filter.js.json b/docs/ast/source/filter.js.json
new file mode 100644
index 0000000..1e9a283
--- /dev/null
+++ b/docs/ast/source/filter.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filterLimit",
+ "raw": "'./filterLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf async\n * @alias select\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n ",
+ "range": [
+ 84,
+ 1093
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1109,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 1117,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 23
+ },
+ "end": {
+ "line": 30,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1130,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 36
+ },
+ "end": {
+ "line": 30,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 1109,
+ 1139
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 45
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf async\n * @alias select\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n ",
+ "range": [
+ 84,
+ 1093
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1094,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 46
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf async\n * @alias select\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n ",
+ "range": [
+ 84,
+ 1093
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 46
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf async\n * @alias select\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n ",
+ "range": [
+ 84,
+ 1093
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/filterLimit.js.json b/docs/ast/source/filterLimit.js.json
new file mode 100644
index 0000000..c2ce5f7
--- /dev/null
+++ b/docs/ast/source/filterLimit.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/filter",
+ "raw": "'./internal/filter'",
+ "range": [
+ 19,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 47,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 47,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doParallelLimit",
+ "raw": "'./internal/doParallelLimit'",
+ "range": [
+ 68,
+ 96
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 28
+ },
+ "end": {
+ "line": 2,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 40,
+ 97
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 57
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 833
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 849,
+ 864
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 865,
+ 871
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 31
+ },
+ "end": {
+ "line": 22,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 849,
+ 872
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 833
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 834,
+ 873
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 833
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 873
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 39
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 833
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/filterSeries.js.json b/docs/ast/source/filterSeries.js.json
new file mode 100644
index 0000000..32e14a8
--- /dev/null
+++ b/docs/ast/source/filterSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filterLimit",
+ "raw": "'./filterLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n ",
+ "range": [
+ 84,
+ 731
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 747,
+ 754
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 15
+ },
+ "end": {
+ "line": 20,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 755,
+ 766
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 23
+ },
+ "end": {
+ "line": 20,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 768,
+ 769
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 36
+ },
+ "end": {
+ "line": 20,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 747,
+ 770
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 15
+ },
+ "end": {
+ "line": 20,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n ",
+ "range": [
+ 84,
+ 731
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 732,
+ 771
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n ",
+ "range": [
+ 84,
+ 731
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 771
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 39
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `filter` but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n ",
+ "range": [
+ 84,
+ 731
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/forever.js.json b/docs/ast/source/forever.js.json
new file mode 100644
index 0000000..d15d517
--- /dev/null
+++ b/docs/ast/source/forever.js.json
@@ -0,0 +1,996 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 40,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 40,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/onlyOnce",
+ "raw": "'./internal/onlyOnce'",
+ "range": [
+ 54,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 21
+ },
+ "end": {
+ "line": 3,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 33,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 84,
+ 95
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 84,
+ 95
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./ensureAsync",
+ "raw": "'./ensureAsync'",
+ "range": [
+ 101,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 77,
+ 117
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 40
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the\n * callback then `errback` is called with the error, and execution stops,\n * otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} fn - a function to call repeatedly. Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n ",
+ "range": [
+ 119,
+ 1112
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 1137,
+ 1144
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 24
+ },
+ "end": {
+ "line": 34,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1145,
+ 1147
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 32
+ },
+ "end": {
+ "line": 34,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "errback",
+ "range": [
+ 1149,
+ 1156
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 36
+ },
+ "end": {
+ "line": 34,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 1168,
+ 1172
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 8
+ },
+ "end": {
+ "line": 35,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 1175,
+ 1183
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 15
+ },
+ "end": {
+ "line": 35,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "errback",
+ "range": [
+ 1184,
+ 1191
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 24
+ },
+ "end": {
+ "line": 35,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1195,
+ 1199
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 35
+ },
+ "end": {
+ "line": 35,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1184,
+ 1199
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 24
+ },
+ "end": {
+ "line": 35,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 1175,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 15
+ },
+ "end": {
+ "line": 35,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 1168,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 8
+ },
+ "end": {
+ "line": 35,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1164,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 4
+ },
+ "end": {
+ "line": 35,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1210,
+ 1214
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 8
+ },
+ "end": {
+ "line": 36,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 1217,
+ 1228
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 15
+ },
+ "end": {
+ "line": 36,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1229,
+ 1231
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 27
+ },
+ "end": {
+ "line": 36,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 1217,
+ 1232
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 15
+ },
+ "end": {
+ "line": 36,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1210,
+ 1232
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 8
+ },
+ "end": {
+ "line": 36,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1206,
+ 1233
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 4
+ },
+ "end": {
+ "line": 36,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1248,
+ 1252
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 17
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1253,
+ 1256
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 18
+ },
+ "end": {
+ "line": 38,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1272,
+ 1275
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 1284,
+ 1288
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1289,
+ 1292
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 29
+ },
+ "end": {
+ "line": 39,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1284,
+ 1293
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1277,
+ 1294
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 17
+ },
+ "end": {
+ "line": 39,
+ "column": 34
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1268,
+ 1294
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1303,
+ 1307
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1308,
+ 1312
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 13
+ },
+ "end": {
+ "line": 40,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1303,
+ 1313
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1303,
+ 1314
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1258,
+ 1320
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 23
+ },
+ "end": {
+ "line": 41,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1239,
+ 1320
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 4
+ },
+ "end": {
+ "line": 41,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1325,
+ 1329
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 8
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1325,
+ 1331
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1325,
+ 1332
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1158,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 45
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1128,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the\n * callback then `errback` is called with the error, and execution stops,\n * otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} fn - a function to call repeatedly. Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n ",
+ "range": [
+ 119,
+ 1112
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1113,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the\n * callback then `errback` is called with the error, and execution stops,\n * otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} fn - a function to call repeatedly. Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n ",
+ "range": [
+ 119,
+ 1112
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the\n * callback then `errback` is called with the error, and execution stops,\n * otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} fn - a function to call repeatedly. Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n ",
+ "range": [
+ 119,
+ 1112
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/index.js.json b/docs/ast/source/index.js.json
new file mode 100644
index 0000000..148ad9d
--- /dev/null
+++ b/docs/ast/source/index.js.json
@@ -0,0 +1,15575 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 331,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 331,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./applyEach",
+ "raw": "'./applyEach'",
+ "range": [
+ 346,
+ 359
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 22
+ },
+ "end": {
+ "line": 8,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 324,
+ 360
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @namespace async\n ",
+ "range": [
+ 0,
+ 323
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "applyEachSeries",
+ "range": [
+ 368,
+ 383
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 7
+ },
+ "end": {
+ "line": 9,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 368,
+ 383
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 7
+ },
+ "end": {
+ "line": 9,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./applyEachSeries",
+ "raw": "'./applyEachSeries'",
+ "range": [
+ 389,
+ 408
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 28
+ },
+ "end": {
+ "line": 9,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 361,
+ 409
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 0
+ },
+ "end": {
+ "line": 9,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 417,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 417,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./apply",
+ "raw": "'./apply'",
+ "range": [
+ 428,
+ 437
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 18
+ },
+ "end": {
+ "line": 10,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 410,
+ 438
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 0
+ },
+ "end": {
+ "line": 10,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 446,
+ 454
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 7
+ },
+ "end": {
+ "line": 11,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 446,
+ 454
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 7
+ },
+ "end": {
+ "line": 11,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./asyncify",
+ "raw": "'./asyncify'",
+ "range": [
+ 460,
+ 472
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 21
+ },
+ "end": {
+ "line": 11,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 439,
+ 473
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 0
+ },
+ "end": {
+ "line": 11,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 481,
+ 485
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 7
+ },
+ "end": {
+ "line": 12,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 481,
+ 485
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 7
+ },
+ "end": {
+ "line": 12,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./auto",
+ "raw": "'./auto'",
+ "range": [
+ 491,
+ 499
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 17
+ },
+ "end": {
+ "line": 12,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 474,
+ 500
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 12,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 508,
+ 518
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 7
+ },
+ "end": {
+ "line": 13,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 508,
+ 518
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 7
+ },
+ "end": {
+ "line": 13,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./autoInject",
+ "raw": "'./autoInject'",
+ "range": [
+ 524,
+ 538
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 23
+ },
+ "end": {
+ "line": 13,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 501,
+ 539
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 0
+ },
+ "end": {
+ "line": 13,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 547,
+ 552
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 7
+ },
+ "end": {
+ "line": 14,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 547,
+ 552
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 7
+ },
+ "end": {
+ "line": 14,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./cargo",
+ "raw": "'./cargo'",
+ "range": [
+ 558,
+ 567
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 18
+ },
+ "end": {
+ "line": 14,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 540,
+ 568
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 0
+ },
+ "end": {
+ "line": 14,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 576,
+ 583
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 7
+ },
+ "end": {
+ "line": 15,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 576,
+ 583
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 7
+ },
+ "end": {
+ "line": 15,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./compose",
+ "raw": "'./compose'",
+ "range": [
+ 589,
+ 600
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 20
+ },
+ "end": {
+ "line": 15,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 569,
+ 601
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 0
+ },
+ "end": {
+ "line": 15,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 609,
+ 615
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 7
+ },
+ "end": {
+ "line": 16,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 609,
+ 615
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 7
+ },
+ "end": {
+ "line": 16,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./concat",
+ "raw": "'./concat'",
+ "range": [
+ 621,
+ 631
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 19
+ },
+ "end": {
+ "line": 16,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 602,
+ 632
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 0
+ },
+ "end": {
+ "line": 16,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "concatSeries",
+ "range": [
+ 640,
+ 652
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 7
+ },
+ "end": {
+ "line": 17,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 640,
+ 652
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 7
+ },
+ "end": {
+ "line": 17,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./concatSeries",
+ "raw": "'./concatSeries'",
+ "range": [
+ 658,
+ 674
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 25
+ },
+ "end": {
+ "line": 17,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 633,
+ 675
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 0
+ },
+ "end": {
+ "line": 17,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 683,
+ 691
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 7
+ },
+ "end": {
+ "line": 18,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 683,
+ 691
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 7
+ },
+ "end": {
+ "line": 18,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./constant",
+ "raw": "'./constant'",
+ "range": [
+ 697,
+ 709
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 21
+ },
+ "end": {
+ "line": 18,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 676,
+ 710
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 718,
+ 724
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 7
+ },
+ "end": {
+ "line": 19,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 718,
+ 724
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 7
+ },
+ "end": {
+ "line": 19,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./detect",
+ "raw": "'./detect'",
+ "range": [
+ 730,
+ 740
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 19
+ },
+ "end": {
+ "line": 19,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 711,
+ 741
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 749,
+ 760
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 7
+ },
+ "end": {
+ "line": 20,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 749,
+ 760
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 7
+ },
+ "end": {
+ "line": 20,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./detectLimit",
+ "raw": "'./detectLimit'",
+ "range": [
+ 766,
+ 781
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 742,
+ 782
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 790,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 7
+ },
+ "end": {
+ "line": 21,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 790,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 7
+ },
+ "end": {
+ "line": 21,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./detectSeries",
+ "raw": "'./detectSeries'",
+ "range": [
+ 808,
+ 824
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 25
+ },
+ "end": {
+ "line": 21,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 783,
+ 825
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "dir",
+ "range": [
+ 833,
+ 836
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 7
+ },
+ "end": {
+ "line": 22,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 833,
+ 836
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 7
+ },
+ "end": {
+ "line": 22,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./dir",
+ "raw": "'./dir'",
+ "range": [
+ 842,
+ 849
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 16
+ },
+ "end": {
+ "line": 22,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 826,
+ 850
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 858,
+ 866
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 7
+ },
+ "end": {
+ "line": 23,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 858,
+ 866
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 7
+ },
+ "end": {
+ "line": 23,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./doDuring",
+ "raw": "'./doDuring'",
+ "range": [
+ 872,
+ 884
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 21
+ },
+ "end": {
+ "line": 23,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 851,
+ 885
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 893,
+ 900
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 7
+ },
+ "end": {
+ "line": 24,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 893,
+ 900
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 7
+ },
+ "end": {
+ "line": 24,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./doUntil",
+ "raw": "'./doUntil'",
+ "range": [
+ 906,
+ 917
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 20
+ },
+ "end": {
+ "line": 24,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 886,
+ 918
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 926,
+ 934
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 7
+ },
+ "end": {
+ "line": 25,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 926,
+ 934
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 7
+ },
+ "end": {
+ "line": 25,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./doWhilst",
+ "raw": "'./doWhilst'",
+ "range": [
+ 940,
+ 952
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 21
+ },
+ "end": {
+ "line": 25,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 919,
+ 953
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 961,
+ 967
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 7
+ },
+ "end": {
+ "line": 26,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 961,
+ 967
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 7
+ },
+ "end": {
+ "line": 26,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./during",
+ "raw": "'./during'",
+ "range": [
+ 973,
+ 983
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 19
+ },
+ "end": {
+ "line": 26,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 954,
+ 984
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 992,
+ 996
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 7
+ },
+ "end": {
+ "line": 27,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 992,
+ 996
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 7
+ },
+ "end": {
+ "line": 27,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./each",
+ "raw": "'./each'",
+ "range": [
+ 1002,
+ 1010
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 17
+ },
+ "end": {
+ "line": 27,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 985,
+ 1011
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 0
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 1019,
+ 1028
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 7
+ },
+ "end": {
+ "line": 28,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 1019,
+ 1028
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 7
+ },
+ "end": {
+ "line": 28,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachLimit",
+ "raw": "'./eachLimit'",
+ "range": [
+ 1034,
+ 1047
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 22
+ },
+ "end": {
+ "line": 28,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1012,
+ 1048
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 1056,
+ 1062
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 7
+ },
+ "end": {
+ "line": 29,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1056,
+ 1062
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 7
+ },
+ "end": {
+ "line": 29,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOf",
+ "raw": "'./eachOf'",
+ "range": [
+ 1068,
+ 1078
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 19
+ },
+ "end": {
+ "line": 29,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1049,
+ 1079
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 1087,
+ 1098
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 7
+ },
+ "end": {
+ "line": 30,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1087,
+ 1098
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 7
+ },
+ "end": {
+ "line": 30,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 1104,
+ 1119
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 24
+ },
+ "end": {
+ "line": 30,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1080,
+ 1120
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 1128,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 7
+ },
+ "end": {
+ "line": 31,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 1128,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 7
+ },
+ "end": {
+ "line": 31,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfSeries",
+ "raw": "'./eachOfSeries'",
+ "range": [
+ 1146,
+ 1162
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 25
+ },
+ "end": {
+ "line": 31,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1121,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 1171,
+ 1181
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 7
+ },
+ "end": {
+ "line": 32,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1171,
+ 1181
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 7
+ },
+ "end": {
+ "line": 32,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachSeries",
+ "raw": "'./eachSeries'",
+ "range": [
+ 1187,
+ 1201
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 23
+ },
+ "end": {
+ "line": 32,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1164,
+ 1202
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 1210,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 7
+ },
+ "end": {
+ "line": 33,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1210,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 7
+ },
+ "end": {
+ "line": 33,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./ensureAsync",
+ "raw": "'./ensureAsync'",
+ "range": [
+ 1227,
+ 1242
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 24
+ },
+ "end": {
+ "line": 33,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1203,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 1251,
+ 1256
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 7
+ },
+ "end": {
+ "line": 34,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 1251,
+ 1256
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 7
+ },
+ "end": {
+ "line": 34,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./every",
+ "raw": "'./every'",
+ "range": [
+ 1262,
+ 1271
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 18
+ },
+ "end": {
+ "line": 34,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1244,
+ 1272
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 1280,
+ 1290
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 7
+ },
+ "end": {
+ "line": 35,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1280,
+ 1290
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 7
+ },
+ "end": {
+ "line": 35,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./everyLimit",
+ "raw": "'./everyLimit'",
+ "range": [
+ 1296,
+ 1310
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 23
+ },
+ "end": {
+ "line": 35,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1273,
+ 1311
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 0
+ },
+ "end": {
+ "line": 35,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 1319,
+ 1330
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 7
+ },
+ "end": {
+ "line": 36,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1319,
+ 1330
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 7
+ },
+ "end": {
+ "line": 36,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./everySeries",
+ "raw": "'./everySeries'",
+ "range": [
+ 1336,
+ 1351
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 24
+ },
+ "end": {
+ "line": 36,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1312,
+ 1352
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 0
+ },
+ "end": {
+ "line": 36,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 1360,
+ 1366
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 7
+ },
+ "end": {
+ "line": 37,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1360,
+ 1366
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 7
+ },
+ "end": {
+ "line": 37,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filter",
+ "raw": "'./filter'",
+ "range": [
+ 1372,
+ 1382
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 19
+ },
+ "end": {
+ "line": 37,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1353,
+ 1383
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 0
+ },
+ "end": {
+ "line": 37,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 1391,
+ 1402
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 7
+ },
+ "end": {
+ "line": 38,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1391,
+ 1402
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 7
+ },
+ "end": {
+ "line": 38,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filterLimit",
+ "raw": "'./filterLimit'",
+ "range": [
+ 1408,
+ 1423
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1384,
+ 1424
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 1432,
+ 1444
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 7
+ },
+ "end": {
+ "line": 39,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 1432,
+ 1444
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 7
+ },
+ "end": {
+ "line": 39,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filterSeries",
+ "raw": "'./filterSeries'",
+ "range": [
+ 1450,
+ 1466
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 25
+ },
+ "end": {
+ "line": 39,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1425,
+ 1467
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 0
+ },
+ "end": {
+ "line": 39,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 1475,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 7
+ },
+ "end": {
+ "line": 40,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 1475,
+ 1482
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 7
+ },
+ "end": {
+ "line": 40,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./forever",
+ "raw": "'./forever'",
+ "range": [
+ 1488,
+ 1499
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 20
+ },
+ "end": {
+ "line": 40,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1468,
+ 1500
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 1508,
+ 1516
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 7
+ },
+ "end": {
+ "line": 41,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1508,
+ 1516
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 7
+ },
+ "end": {
+ "line": 41,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./iterator",
+ "raw": "'./iterator'",
+ "range": [
+ 1522,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 21
+ },
+ "end": {
+ "line": 41,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1501,
+ 1535
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "log",
+ "range": [
+ 1543,
+ 1546
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 7
+ },
+ "end": {
+ "line": 42,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1543,
+ 1546
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 7
+ },
+ "end": {
+ "line": 42,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./log",
+ "raw": "'./log'",
+ "range": [
+ 1552,
+ 1559
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 16
+ },
+ "end": {
+ "line": 42,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1536,
+ 1560
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 42,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 1568,
+ 1571
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 7
+ },
+ "end": {
+ "line": 43,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1568,
+ 1571
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 7
+ },
+ "end": {
+ "line": 43,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./map",
+ "raw": "'./map'",
+ "range": [
+ 1577,
+ 1584
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 43,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1561,
+ 1585
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 1593,
+ 1601
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 7
+ },
+ "end": {
+ "line": 44,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1593,
+ 1601
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 7
+ },
+ "end": {
+ "line": 44,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapLimit",
+ "raw": "'./mapLimit'",
+ "range": [
+ 1607,
+ 1619
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 21
+ },
+ "end": {
+ "line": 44,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1586,
+ 1620
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 1628,
+ 1637
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 7
+ },
+ "end": {
+ "line": 45,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 1628,
+ 1637
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 7
+ },
+ "end": {
+ "line": 45,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapSeries",
+ "raw": "'./mapSeries'",
+ "range": [
+ 1643,
+ 1656
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 22
+ },
+ "end": {
+ "line": 45,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1621,
+ 1657
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapValues",
+ "range": [
+ 1665,
+ 1674
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 7
+ },
+ "end": {
+ "line": 46,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 1665,
+ 1674
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 7
+ },
+ "end": {
+ "line": 46,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapValues",
+ "raw": "'./mapValues'",
+ "range": [
+ 1680,
+ 1693
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1658,
+ 1694
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 1702,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 7
+ },
+ "end": {
+ "line": 47,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1702,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 7
+ },
+ "end": {
+ "line": 47,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapValuesLimit",
+ "raw": "'./mapValuesLimit'",
+ "range": [
+ 1722,
+ 1740
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 27
+ },
+ "end": {
+ "line": 47,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1695,
+ 1741
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesSeries",
+ "range": [
+ 1749,
+ 1764
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 7
+ },
+ "end": {
+ "line": 48,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1749,
+ 1764
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 7
+ },
+ "end": {
+ "line": 48,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapValuesSeries",
+ "raw": "'./mapValuesSeries'",
+ "range": [
+ 1770,
+ 1789
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 28
+ },
+ "end": {
+ "line": 48,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1742,
+ 1790
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 1798,
+ 1805
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 7
+ },
+ "end": {
+ "line": 49,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 1798,
+ 1805
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 7
+ },
+ "end": {
+ "line": 49,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./memoize",
+ "raw": "'./memoize'",
+ "range": [
+ 1811,
+ 1822
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 20
+ },
+ "end": {
+ "line": 49,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1791,
+ 1823
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 49,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 1831,
+ 1839
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 7
+ },
+ "end": {
+ "line": 50,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1831,
+ 1839
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 7
+ },
+ "end": {
+ "line": 50,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./nextTick",
+ "raw": "'./nextTick'",
+ "range": [
+ 1845,
+ 1857
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 21
+ },
+ "end": {
+ "line": 50,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1824,
+ 1858
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 1866,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 7
+ },
+ "end": {
+ "line": 51,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1866,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 7
+ },
+ "end": {
+ "line": 51,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./parallel",
+ "raw": "'./parallel'",
+ "range": [
+ 1880,
+ 1892
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 21
+ },
+ "end": {
+ "line": 51,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1859,
+ 1893
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 0
+ },
+ "end": {
+ "line": 51,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 1901,
+ 1914
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 7
+ },
+ "end": {
+ "line": 52,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1901,
+ 1914
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 7
+ },
+ "end": {
+ "line": 52,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./parallelLimit",
+ "raw": "'./parallelLimit'",
+ "range": [
+ 1920,
+ 1937
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 26
+ },
+ "end": {
+ "line": 52,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 1894,
+ 1938
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 0
+ },
+ "end": {
+ "line": 52,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "priorityQueue",
+ "range": [
+ 1946,
+ 1959
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 7
+ },
+ "end": {
+ "line": 53,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1946,
+ 1959
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 7
+ },
+ "end": {
+ "line": 53,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./priorityQueue",
+ "raw": "'./priorityQueue'",
+ "range": [
+ 1965,
+ 1982
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 26
+ },
+ "end": {
+ "line": 53,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 1939,
+ 1983
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 0
+ },
+ "end": {
+ "line": 53,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 1991,
+ 1996
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 7
+ },
+ "end": {
+ "line": 54,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 1991,
+ 1996
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 7
+ },
+ "end": {
+ "line": 54,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./queue",
+ "raw": "'./queue'",
+ "range": [
+ 2002,
+ 2011
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 18
+ },
+ "end": {
+ "line": 54,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1984,
+ 2012
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 0
+ },
+ "end": {
+ "line": 54,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 2020,
+ 2024
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 7
+ },
+ "end": {
+ "line": 55,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 2020,
+ 2024
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 7
+ },
+ "end": {
+ "line": 55,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./race",
+ "raw": "'./race'",
+ "range": [
+ 2030,
+ 2038
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 17
+ },
+ "end": {
+ "line": 55,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2013,
+ 2039
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 0
+ },
+ "end": {
+ "line": 55,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 2047,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 7
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2047,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 7
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reduce",
+ "raw": "'./reduce'",
+ "range": [
+ 2059,
+ 2069
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 19
+ },
+ "end": {
+ "line": 56,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2040,
+ 2070
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 0
+ },
+ "end": {
+ "line": 56,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 2078,
+ 2089
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 7
+ },
+ "end": {
+ "line": 57,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 2078,
+ 2089
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 7
+ },
+ "end": {
+ "line": 57,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reduceRight",
+ "raw": "'./reduceRight'",
+ "range": [
+ 2095,
+ 2110
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 24
+ },
+ "end": {
+ "line": 57,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 2071,
+ 2111
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 0
+ },
+ "end": {
+ "line": 57,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 2119,
+ 2126
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 7
+ },
+ "end": {
+ "line": 58,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 2119,
+ 2126
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 7
+ },
+ "end": {
+ "line": 58,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reflect",
+ "raw": "'./reflect'",
+ "range": [
+ 2132,
+ 2143
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 20
+ },
+ "end": {
+ "line": 58,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2112,
+ 2144
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 0
+ },
+ "end": {
+ "line": 58,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 2152,
+ 2158
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 7
+ },
+ "end": {
+ "line": 59,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2152,
+ 2158
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 7
+ },
+ "end": {
+ "line": 59,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reject",
+ "raw": "'./reject'",
+ "range": [
+ 2164,
+ 2174
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 19
+ },
+ "end": {
+ "line": 59,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2145,
+ 2175
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 0
+ },
+ "end": {
+ "line": 59,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 2183,
+ 2193
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 7
+ },
+ "end": {
+ "line": 60,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2183,
+ 2193
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 7
+ },
+ "end": {
+ "line": 60,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reflectAll",
+ "raw": "'./reflectAll'",
+ "range": [
+ 2199,
+ 2213
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 23
+ },
+ "end": {
+ "line": 60,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2176,
+ 2214
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 0
+ },
+ "end": {
+ "line": 60,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 2222,
+ 2233
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 7
+ },
+ "end": {
+ "line": 61,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 2222,
+ 2233
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 7
+ },
+ "end": {
+ "line": 61,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./rejectLimit",
+ "raw": "'./rejectLimit'",
+ "range": [
+ 2239,
+ 2254
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 24
+ },
+ "end": {
+ "line": 61,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 2215,
+ 2255
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rejectSeries",
+ "range": [
+ 2263,
+ 2275
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 7
+ },
+ "end": {
+ "line": 62,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2263,
+ 2275
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 7
+ },
+ "end": {
+ "line": 62,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./rejectSeries",
+ "raw": "'./rejectSeries'",
+ "range": [
+ 2281,
+ 2297
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 25
+ },
+ "end": {
+ "line": 62,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 2256,
+ 2298
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 0
+ },
+ "end": {
+ "line": 62,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 2306,
+ 2311
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 7
+ },
+ "end": {
+ "line": 63,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 2306,
+ 2311
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 7
+ },
+ "end": {
+ "line": 63,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./retry",
+ "raw": "'./retry'",
+ "range": [
+ 2317,
+ 2326
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 18
+ },
+ "end": {
+ "line": 63,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 2299,
+ 2327
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "retryable",
+ "range": [
+ 2335,
+ 2344
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 7
+ },
+ "end": {
+ "line": 64,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2335,
+ 2344
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 7
+ },
+ "end": {
+ "line": 64,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./retryable",
+ "raw": "'./retryable'",
+ "range": [
+ 2350,
+ 2363
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 22
+ },
+ "end": {
+ "line": 64,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2328,
+ 2364
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 0
+ },
+ "end": {
+ "line": 64,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 2372,
+ 2375
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 7
+ },
+ "end": {
+ "line": 65,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 2372,
+ 2375
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 7
+ },
+ "end": {
+ "line": 65,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./seq",
+ "raw": "'./seq'",
+ "range": [
+ 2381,
+ 2388
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 16
+ },
+ "end": {
+ "line": 65,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2365,
+ 2389
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 0
+ },
+ "end": {
+ "line": 65,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 2397,
+ 2403
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 7
+ },
+ "end": {
+ "line": 66,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2397,
+ 2403
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 7
+ },
+ "end": {
+ "line": 66,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./series",
+ "raw": "'./series'",
+ "range": [
+ 2409,
+ 2419
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 19
+ },
+ "end": {
+ "line": 66,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2390,
+ 2420
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 2428,
+ 2440
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 7
+ },
+ "end": {
+ "line": 67,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2428,
+ 2440
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 7
+ },
+ "end": {
+ "line": 67,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./setImmediate",
+ "raw": "'./setImmediate'",
+ "range": [
+ 2446,
+ 2462
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 25
+ },
+ "end": {
+ "line": 67,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 2421,
+ 2463
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 0
+ },
+ "end": {
+ "line": 67,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 2471,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 7
+ },
+ "end": {
+ "line": 68,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 2471,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 7
+ },
+ "end": {
+ "line": 68,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./some",
+ "raw": "'./some'",
+ "range": [
+ 2481,
+ 2489
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 17
+ },
+ "end": {
+ "line": 68,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2464,
+ 2490
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 0
+ },
+ "end": {
+ "line": 68,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 2498,
+ 2507
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 7
+ },
+ "end": {
+ "line": 69,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2498,
+ 2507
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 7
+ },
+ "end": {
+ "line": 69,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./someLimit",
+ "raw": "'./someLimit'",
+ "range": [
+ 2513,
+ 2526
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 22
+ },
+ "end": {
+ "line": 69,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2491,
+ 2527
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 0
+ },
+ "end": {
+ "line": 69,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 2535,
+ 2545
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 7
+ },
+ "end": {
+ "line": 70,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2535,
+ 2545
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 7
+ },
+ "end": {
+ "line": 70,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./someSeries",
+ "raw": "'./someSeries'",
+ "range": [
+ 2551,
+ 2565
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 23
+ },
+ "end": {
+ "line": 70,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2528,
+ 2566
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 0
+ },
+ "end": {
+ "line": 70,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 2574,
+ 2580
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 7
+ },
+ "end": {
+ "line": 71,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2574,
+ 2580
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 7
+ },
+ "end": {
+ "line": 71,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./sortBy",
+ "raw": "'./sortBy'",
+ "range": [
+ 2586,
+ 2596
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 19
+ },
+ "end": {
+ "line": 71,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2567,
+ 2597
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 0
+ },
+ "end": {
+ "line": 71,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 2605,
+ 2612
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 7
+ },
+ "end": {
+ "line": 72,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 2605,
+ 2612
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 7
+ },
+ "end": {
+ "line": 72,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./timeout",
+ "raw": "'./timeout'",
+ "range": [
+ 2618,
+ 2629
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 20
+ },
+ "end": {
+ "line": 72,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2598,
+ 2630
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 0
+ },
+ "end": {
+ "line": 72,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 2638,
+ 2643
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 7
+ },
+ "end": {
+ "line": 73,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 2638,
+ 2643
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 7
+ },
+ "end": {
+ "line": 73,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./times",
+ "raw": "'./times'",
+ "range": [
+ 2649,
+ 2658
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 18
+ },
+ "end": {
+ "line": 73,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 2631,
+ 2659
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 0
+ },
+ "end": {
+ "line": 73,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 2667,
+ 2677
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 7
+ },
+ "end": {
+ "line": 74,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2667,
+ 2677
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 7
+ },
+ "end": {
+ "line": 74,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./timesLimit",
+ "raw": "'./timesLimit'",
+ "range": [
+ 2683,
+ 2697
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 23
+ },
+ "end": {
+ "line": 74,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2660,
+ 2698
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 0
+ },
+ "end": {
+ "line": 74,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "timesSeries",
+ "range": [
+ 2706,
+ 2717
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 7
+ },
+ "end": {
+ "line": 75,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 2706,
+ 2717
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 7
+ },
+ "end": {
+ "line": 75,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./timesSeries",
+ "raw": "'./timesSeries'",
+ "range": [
+ 2723,
+ 2738
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 24
+ },
+ "end": {
+ "line": 75,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 2699,
+ 2739
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 0
+ },
+ "end": {
+ "line": 75,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 2747,
+ 2756
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 7
+ },
+ "end": {
+ "line": 76,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2747,
+ 2756
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 7
+ },
+ "end": {
+ "line": 76,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./transform",
+ "raw": "'./transform'",
+ "range": [
+ 2762,
+ 2775
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 22
+ },
+ "end": {
+ "line": 76,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2740,
+ 2776
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 0
+ },
+ "end": {
+ "line": 76,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 2784,
+ 2793
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 7
+ },
+ "end": {
+ "line": 77,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2784,
+ 2793
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 7
+ },
+ "end": {
+ "line": 77,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./unmemoize",
+ "raw": "'./unmemoize'",
+ "range": [
+ 2799,
+ 2812
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 22
+ },
+ "end": {
+ "line": 77,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2777,
+ 2813
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 0
+ },
+ "end": {
+ "line": 77,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 2821,
+ 2826
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 7
+ },
+ "end": {
+ "line": 78,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 2821,
+ 2826
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 7
+ },
+ "end": {
+ "line": 78,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./until",
+ "raw": "'./until'",
+ "range": [
+ 2832,
+ 2841
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 18
+ },
+ "end": {
+ "line": 78,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 2814,
+ 2842
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 0
+ },
+ "end": {
+ "line": 78,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "waterfall",
+ "range": [
+ 2850,
+ 2859
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 7
+ },
+ "end": {
+ "line": 79,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2850,
+ 2859
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 7
+ },
+ "end": {
+ "line": 79,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./waterfall",
+ "raw": "'./waterfall'",
+ "range": [
+ 2865,
+ 2878
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 22
+ },
+ "end": {
+ "line": 79,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2843,
+ 2879
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 0
+ },
+ "end": {
+ "line": 79,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 2887,
+ 2893
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 7
+ },
+ "end": {
+ "line": 80,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2887,
+ 2893
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 7
+ },
+ "end": {
+ "line": 80,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./whilst",
+ "raw": "'./whilst'",
+ "range": [
+ 2899,
+ 2909
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 19
+ },
+ "end": {
+ "line": 80,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2880,
+ 2910
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 0
+ },
+ "end": {
+ "line": 80,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 2933,
+ 2942
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 4
+ },
+ "end": {
+ "line": 83,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 2944,
+ 2953
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 15
+ },
+ "end": {
+ "line": 83,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2933,
+ 2953
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 4
+ },
+ "end": {
+ "line": 83,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "applyEachSeries",
+ "range": [
+ 2959,
+ 2974
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 4
+ },
+ "end": {
+ "line": 84,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "applyEachSeries",
+ "range": [
+ 2976,
+ 2991
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 21
+ },
+ "end": {
+ "line": 84,
+ "column": 36
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2959,
+ 2991
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 4
+ },
+ "end": {
+ "line": 84,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2997,
+ 3002
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 4
+ },
+ "end": {
+ "line": 85,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 3004,
+ 3009
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 11
+ },
+ "end": {
+ "line": 85,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2997,
+ 3009
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 4
+ },
+ "end": {
+ "line": 85,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 3015,
+ 3023
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 3025,
+ 3033
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 14
+ },
+ "end": {
+ "line": 86,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3015,
+ 3033
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 3039,
+ 3043
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 4
+ },
+ "end": {
+ "line": 87,
+ "column": 8
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 3045,
+ 3049
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 10
+ },
+ "end": {
+ "line": 87,
+ "column": 14
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3039,
+ 3049
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 4
+ },
+ "end": {
+ "line": 87,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 3055,
+ 3065
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 4
+ },
+ "end": {
+ "line": 88,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 3067,
+ 3077
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 16
+ },
+ "end": {
+ "line": 88,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3055,
+ 3077
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 4
+ },
+ "end": {
+ "line": 88,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 3083,
+ 3088
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 4
+ },
+ "end": {
+ "line": 89,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 3090,
+ 3095
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 11
+ },
+ "end": {
+ "line": 89,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3083,
+ 3095
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 4
+ },
+ "end": {
+ "line": 89,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 3101,
+ 3108
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 4
+ },
+ "end": {
+ "line": 90,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 3110,
+ 3117
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 13
+ },
+ "end": {
+ "line": 90,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3101,
+ 3117
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 4
+ },
+ "end": {
+ "line": 90,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 3123,
+ 3129
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 4
+ },
+ "end": {
+ "line": 91,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 3131,
+ 3137
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 12
+ },
+ "end": {
+ "line": 91,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3123,
+ 3137
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 4
+ },
+ "end": {
+ "line": 91,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "concatSeries",
+ "range": [
+ 3143,
+ 3155
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 4
+ },
+ "end": {
+ "line": 92,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "concatSeries",
+ "range": [
+ 3157,
+ 3169
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 18
+ },
+ "end": {
+ "line": 92,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3143,
+ 3169
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 4
+ },
+ "end": {
+ "line": 92,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 3175,
+ 3183
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 4
+ },
+ "end": {
+ "line": 93,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 3185,
+ 3193
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 14
+ },
+ "end": {
+ "line": 93,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3175,
+ 3193
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 4
+ },
+ "end": {
+ "line": 93,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 3199,
+ 3205
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 4
+ },
+ "end": {
+ "line": 94,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 3207,
+ 3213
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 12
+ },
+ "end": {
+ "line": 94,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3199,
+ 3213
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 4
+ },
+ "end": {
+ "line": 94,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 3219,
+ 3230
+ ],
+ "loc": {
+ "start": {
+ "line": 95,
+ "column": 4
+ },
+ "end": {
+ "line": 95,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 3232,
+ 3243
+ ],
+ "loc": {
+ "start": {
+ "line": 95,
+ "column": 17
+ },
+ "end": {
+ "line": 95,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3219,
+ 3243
+ ],
+ "loc": {
+ "start": {
+ "line": 95,
+ "column": 4
+ },
+ "end": {
+ "line": 95,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 3249,
+ 3261
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 4
+ },
+ "end": {
+ "line": 96,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 3263,
+ 3275
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 18
+ },
+ "end": {
+ "line": 96,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3249,
+ 3275
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 4
+ },
+ "end": {
+ "line": 96,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "dir",
+ "range": [
+ 3281,
+ 3284
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 4
+ },
+ "end": {
+ "line": 97,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "dir",
+ "range": [
+ 3286,
+ 3289
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 9
+ },
+ "end": {
+ "line": 97,
+ "column": 12
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3281,
+ 3289
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 4
+ },
+ "end": {
+ "line": 97,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 3295,
+ 3303
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 4
+ },
+ "end": {
+ "line": 98,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 3305,
+ 3313
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 14
+ },
+ "end": {
+ "line": 98,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3295,
+ 3313
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 4
+ },
+ "end": {
+ "line": 98,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 3319,
+ 3326
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 4
+ },
+ "end": {
+ "line": 99,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 3328,
+ 3335
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 13
+ },
+ "end": {
+ "line": 99,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3319,
+ 3335
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 4
+ },
+ "end": {
+ "line": 99,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 3341,
+ 3349
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 4
+ },
+ "end": {
+ "line": 100,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 3351,
+ 3359
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 14
+ },
+ "end": {
+ "line": 100,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3341,
+ 3359
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 4
+ },
+ "end": {
+ "line": 100,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 3365,
+ 3371
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 4
+ },
+ "end": {
+ "line": 101,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 3373,
+ 3379
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 12
+ },
+ "end": {
+ "line": 101,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3365,
+ 3379
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 4
+ },
+ "end": {
+ "line": 101,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 3385,
+ 3389
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 4
+ },
+ "end": {
+ "line": 102,
+ "column": 8
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 3391,
+ 3395
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 10
+ },
+ "end": {
+ "line": 102,
+ "column": 14
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3385,
+ 3395
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 4
+ },
+ "end": {
+ "line": 102,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 3401,
+ 3410
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 4
+ },
+ "end": {
+ "line": 103,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 3412,
+ 3421
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 15
+ },
+ "end": {
+ "line": 103,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3401,
+ 3421
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 4
+ },
+ "end": {
+ "line": 103,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 3427,
+ 3433
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 4
+ },
+ "end": {
+ "line": 104,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 3435,
+ 3441
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 12
+ },
+ "end": {
+ "line": 104,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3427,
+ 3441
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 4
+ },
+ "end": {
+ "line": 104,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 3447,
+ 3458
+ ],
+ "loc": {
+ "start": {
+ "line": 105,
+ "column": 4
+ },
+ "end": {
+ "line": 105,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 3460,
+ 3471
+ ],
+ "loc": {
+ "start": {
+ "line": 105,
+ "column": 17
+ },
+ "end": {
+ "line": 105,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3447,
+ 3471
+ ],
+ "loc": {
+ "start": {
+ "line": 105,
+ "column": 4
+ },
+ "end": {
+ "line": 105,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 3477,
+ 3489
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 4
+ },
+ "end": {
+ "line": 106,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 3491,
+ 3503
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 18
+ },
+ "end": {
+ "line": 106,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3477,
+ 3503
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 4
+ },
+ "end": {
+ "line": 106,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 3509,
+ 3519
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 4
+ },
+ "end": {
+ "line": 107,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 3521,
+ 3531
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 16
+ },
+ "end": {
+ "line": 107,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3509,
+ 3531
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 4
+ },
+ "end": {
+ "line": 107,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 3537,
+ 3548
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 4
+ },
+ "end": {
+ "line": 108,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 3550,
+ 3561
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 17
+ },
+ "end": {
+ "line": 108,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3537,
+ 3561
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 4
+ },
+ "end": {
+ "line": 108,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 3567,
+ 3572
+ ],
+ "loc": {
+ "start": {
+ "line": 109,
+ "column": 4
+ },
+ "end": {
+ "line": 109,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 3574,
+ 3579
+ ],
+ "loc": {
+ "start": {
+ "line": 109,
+ "column": 11
+ },
+ "end": {
+ "line": 109,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3567,
+ 3579
+ ],
+ "loc": {
+ "start": {
+ "line": 109,
+ "column": 4
+ },
+ "end": {
+ "line": 109,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 3585,
+ 3595
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 4
+ },
+ "end": {
+ "line": 110,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 3597,
+ 3607
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 16
+ },
+ "end": {
+ "line": 110,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3585,
+ 3607
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 4
+ },
+ "end": {
+ "line": 110,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 3613,
+ 3624
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 4
+ },
+ "end": {
+ "line": 111,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 3626,
+ 3637
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 17
+ },
+ "end": {
+ "line": 111,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3613,
+ 3637
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 4
+ },
+ "end": {
+ "line": 111,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 3643,
+ 3649
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 4
+ },
+ "end": {
+ "line": 112,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 3651,
+ 3657
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 12
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3643,
+ 3657
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 4
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 3663,
+ 3674
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 4
+ },
+ "end": {
+ "line": 113,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 3676,
+ 3687
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 17
+ },
+ "end": {
+ "line": 113,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3663,
+ 3687
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 4
+ },
+ "end": {
+ "line": 113,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 3693,
+ 3705
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 4
+ },
+ "end": {
+ "line": 114,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 3707,
+ 3719
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 18
+ },
+ "end": {
+ "line": 114,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3693,
+ 3719
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 4
+ },
+ "end": {
+ "line": 114,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 3725,
+ 3732
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 4
+ },
+ "end": {
+ "line": 115,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 3734,
+ 3741
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 13
+ },
+ "end": {
+ "line": 115,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3725,
+ 3741
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 4
+ },
+ "end": {
+ "line": 115,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 3747,
+ 3755
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 4
+ },
+ "end": {
+ "line": 116,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 3757,
+ 3765
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 14
+ },
+ "end": {
+ "line": 116,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3747,
+ 3765
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 4
+ },
+ "end": {
+ "line": 116,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "log",
+ "range": [
+ 3771,
+ 3774
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 4
+ },
+ "end": {
+ "line": 117,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "log",
+ "range": [
+ 3776,
+ 3779
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 9
+ },
+ "end": {
+ "line": 117,
+ "column": 12
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3771,
+ 3779
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 4
+ },
+ "end": {
+ "line": 117,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 3785,
+ 3788
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 4
+ },
+ "end": {
+ "line": 118,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 3790,
+ 3793
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 9
+ },
+ "end": {
+ "line": 118,
+ "column": 12
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3785,
+ 3793
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 4
+ },
+ "end": {
+ "line": 118,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 3799,
+ 3807
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 4
+ },
+ "end": {
+ "line": 119,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 3809,
+ 3817
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 14
+ },
+ "end": {
+ "line": 119,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3799,
+ 3817
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 4
+ },
+ "end": {
+ "line": 119,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 3823,
+ 3832
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 4
+ },
+ "end": {
+ "line": 120,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 3834,
+ 3843
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 15
+ },
+ "end": {
+ "line": 120,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3823,
+ 3843
+ ],
+ "loc": {
+ "start": {
+ "line": 120,
+ "column": 4
+ },
+ "end": {
+ "line": 120,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "mapValues",
+ "range": [
+ 3849,
+ 3858
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 4
+ },
+ "end": {
+ "line": 121,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "mapValues",
+ "range": [
+ 3860,
+ 3869
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 15
+ },
+ "end": {
+ "line": 121,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3849,
+ 3869
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 4
+ },
+ "end": {
+ "line": 121,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 3875,
+ 3889
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 4
+ },
+ "end": {
+ "line": 122,
+ "column": 18
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 3891,
+ 3905
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 34
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3875,
+ 3905
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 4
+ },
+ "end": {
+ "line": 122,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "mapValuesSeries",
+ "range": [
+ 3911,
+ 3926
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 4
+ },
+ "end": {
+ "line": 123,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "mapValuesSeries",
+ "range": [
+ 3928,
+ 3943
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 21
+ },
+ "end": {
+ "line": 123,
+ "column": 36
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3911,
+ 3943
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 4
+ },
+ "end": {
+ "line": 123,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 3949,
+ 3956
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 4
+ },
+ "end": {
+ "line": 124,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 3958,
+ 3965
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 13
+ },
+ "end": {
+ "line": 124,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3949,
+ 3965
+ ],
+ "loc": {
+ "start": {
+ "line": 124,
+ "column": 4
+ },
+ "end": {
+ "line": 124,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 3971,
+ 3979
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 4
+ },
+ "end": {
+ "line": 125,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 3981,
+ 3989
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 14
+ },
+ "end": {
+ "line": 125,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3971,
+ 3989
+ ],
+ "loc": {
+ "start": {
+ "line": 125,
+ "column": 4
+ },
+ "end": {
+ "line": 125,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 3995,
+ 4003
+ ],
+ "loc": {
+ "start": {
+ "line": 126,
+ "column": 4
+ },
+ "end": {
+ "line": 126,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 4005,
+ 4013
+ ],
+ "loc": {
+ "start": {
+ "line": 126,
+ "column": 14
+ },
+ "end": {
+ "line": 126,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3995,
+ 4013
+ ],
+ "loc": {
+ "start": {
+ "line": 126,
+ "column": 4
+ },
+ "end": {
+ "line": 126,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 4019,
+ 4032
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 4
+ },
+ "end": {
+ "line": 127,
+ "column": 17
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 4034,
+ 4047
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 19
+ },
+ "end": {
+ "line": 127,
+ "column": 32
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4019,
+ 4047
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 4
+ },
+ "end": {
+ "line": 127,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "priorityQueue",
+ "range": [
+ 4053,
+ 4066
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 4
+ },
+ "end": {
+ "line": 128,
+ "column": 17
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "priorityQueue",
+ "range": [
+ 4068,
+ 4081
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 19
+ },
+ "end": {
+ "line": 128,
+ "column": 32
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4053,
+ 4081
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 4
+ },
+ "end": {
+ "line": 128,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 4087,
+ 4092
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 4
+ },
+ "end": {
+ "line": 129,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 4094,
+ 4099
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 11
+ },
+ "end": {
+ "line": 129,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4087,
+ 4099
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 4
+ },
+ "end": {
+ "line": 129,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 4105,
+ 4109
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 4
+ },
+ "end": {
+ "line": 130,
+ "column": 8
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 4111,
+ 4115
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 10
+ },
+ "end": {
+ "line": 130,
+ "column": 14
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4105,
+ 4115
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 4
+ },
+ "end": {
+ "line": 130,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 4121,
+ 4127
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 4
+ },
+ "end": {
+ "line": 131,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 4129,
+ 4135
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 12
+ },
+ "end": {
+ "line": 131,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4121,
+ 4135
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 4
+ },
+ "end": {
+ "line": 131,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 4141,
+ 4152
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 4
+ },
+ "end": {
+ "line": 132,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 4154,
+ 4165
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 17
+ },
+ "end": {
+ "line": 132,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4141,
+ 4165
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 4
+ },
+ "end": {
+ "line": 132,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 4171,
+ 4178
+ ],
+ "loc": {
+ "start": {
+ "line": 133,
+ "column": 4
+ },
+ "end": {
+ "line": 133,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 4180,
+ 4187
+ ],
+ "loc": {
+ "start": {
+ "line": 133,
+ "column": 13
+ },
+ "end": {
+ "line": 133,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4171,
+ 4187
+ ],
+ "loc": {
+ "start": {
+ "line": 133,
+ "column": 4
+ },
+ "end": {
+ "line": 133,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 4193,
+ 4203
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 4
+ },
+ "end": {
+ "line": 134,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 4205,
+ 4215
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 16
+ },
+ "end": {
+ "line": 134,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4193,
+ 4215
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 4
+ },
+ "end": {
+ "line": 134,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 4221,
+ 4227
+ ],
+ "loc": {
+ "start": {
+ "line": 135,
+ "column": 4
+ },
+ "end": {
+ "line": 135,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 4229,
+ 4235
+ ],
+ "loc": {
+ "start": {
+ "line": 135,
+ "column": 12
+ },
+ "end": {
+ "line": 135,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4221,
+ 4235
+ ],
+ "loc": {
+ "start": {
+ "line": 135,
+ "column": 4
+ },
+ "end": {
+ "line": 135,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 4241,
+ 4252
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 4
+ },
+ "end": {
+ "line": 136,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 4254,
+ 4265
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 17
+ },
+ "end": {
+ "line": 136,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4241,
+ 4265
+ ],
+ "loc": {
+ "start": {
+ "line": 136,
+ "column": 4
+ },
+ "end": {
+ "line": 136,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "rejectSeries",
+ "range": [
+ 4271,
+ 4283
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 4
+ },
+ "end": {
+ "line": 137,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "rejectSeries",
+ "range": [
+ 4285,
+ 4297
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 18
+ },
+ "end": {
+ "line": 137,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4271,
+ 4297
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 4
+ },
+ "end": {
+ "line": 137,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 4303,
+ 4308
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 4
+ },
+ "end": {
+ "line": 138,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 4310,
+ 4315
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 11
+ },
+ "end": {
+ "line": 138,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4303,
+ 4315
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 4
+ },
+ "end": {
+ "line": 138,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "retryable",
+ "range": [
+ 4321,
+ 4330
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 4
+ },
+ "end": {
+ "line": 139,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "retryable",
+ "range": [
+ 4332,
+ 4341
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 15
+ },
+ "end": {
+ "line": 139,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4321,
+ 4341
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 4
+ },
+ "end": {
+ "line": 139,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 4347,
+ 4350
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 4
+ },
+ "end": {
+ "line": 140,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 4352,
+ 4355
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 9
+ },
+ "end": {
+ "line": 140,
+ "column": 12
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4347,
+ 4355
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 4
+ },
+ "end": {
+ "line": 140,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 4361,
+ 4367
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 4
+ },
+ "end": {
+ "line": 141,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 4369,
+ 4375
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4361,
+ 4375
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 4
+ },
+ "end": {
+ "line": 141,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 4381,
+ 4393
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 4
+ },
+ "end": {
+ "line": 142,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 4395,
+ 4407
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 18
+ },
+ "end": {
+ "line": 142,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4381,
+ 4407
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 4
+ },
+ "end": {
+ "line": 142,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 4413,
+ 4417
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 4
+ },
+ "end": {
+ "line": 143,
+ "column": 8
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 4419,
+ 4423
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 10
+ },
+ "end": {
+ "line": 143,
+ "column": 14
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4413,
+ 4423
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 4
+ },
+ "end": {
+ "line": 143,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 4429,
+ 4438
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 4
+ },
+ "end": {
+ "line": 144,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 4440,
+ 4449
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 15
+ },
+ "end": {
+ "line": 144,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4429,
+ 4449
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 4
+ },
+ "end": {
+ "line": 144,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 4455,
+ 4465
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 4
+ },
+ "end": {
+ "line": 145,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 4467,
+ 4477
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 16
+ },
+ "end": {
+ "line": 145,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4455,
+ 4477
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 4
+ },
+ "end": {
+ "line": 145,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 4483,
+ 4489
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 4
+ },
+ "end": {
+ "line": 146,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 4491,
+ 4497
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 12
+ },
+ "end": {
+ "line": 146,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4483,
+ 4497
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 4
+ },
+ "end": {
+ "line": 146,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 4503,
+ 4510
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 4
+ },
+ "end": {
+ "line": 147,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 4512,
+ 4519
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 13
+ },
+ "end": {
+ "line": 147,
+ "column": 20
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4503,
+ 4519
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 4
+ },
+ "end": {
+ "line": 147,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 4525,
+ 4530
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 4
+ },
+ "end": {
+ "line": 148,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 4532,
+ 4537
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 11
+ },
+ "end": {
+ "line": 148,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4525,
+ 4537
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 4
+ },
+ "end": {
+ "line": 148,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 4543,
+ 4553
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 4
+ },
+ "end": {
+ "line": 149,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 4555,
+ 4565
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 16
+ },
+ "end": {
+ "line": 149,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4543,
+ 4565
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 4
+ },
+ "end": {
+ "line": 149,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "timesSeries",
+ "range": [
+ 4571,
+ 4582
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 4
+ },
+ "end": {
+ "line": 150,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "timesSeries",
+ "range": [
+ 4584,
+ 4595
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 17
+ },
+ "end": {
+ "line": 150,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4571,
+ 4595
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 4
+ },
+ "end": {
+ "line": 150,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 4601,
+ 4610
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 4
+ },
+ "end": {
+ "line": 151,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 4612,
+ 4621
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 15
+ },
+ "end": {
+ "line": 151,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4601,
+ 4621
+ ],
+ "loc": {
+ "start": {
+ "line": 151,
+ "column": 4
+ },
+ "end": {
+ "line": 151,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 4627,
+ 4636
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 4
+ },
+ "end": {
+ "line": 152,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 4638,
+ 4647
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 15
+ },
+ "end": {
+ "line": 152,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4627,
+ 4647
+ ],
+ "loc": {
+ "start": {
+ "line": 152,
+ "column": 4
+ },
+ "end": {
+ "line": 152,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 4653,
+ 4658
+ ],
+ "loc": {
+ "start": {
+ "line": 153,
+ "column": 4
+ },
+ "end": {
+ "line": 153,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 4660,
+ 4665
+ ],
+ "loc": {
+ "start": {
+ "line": 153,
+ "column": 11
+ },
+ "end": {
+ "line": 153,
+ "column": 16
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4653,
+ 4665
+ ],
+ "loc": {
+ "start": {
+ "line": 153,
+ "column": 4
+ },
+ "end": {
+ "line": 153,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "waterfall",
+ "range": [
+ 4671,
+ 4680
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 4
+ },
+ "end": {
+ "line": 154,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "waterfall",
+ "range": [
+ 4682,
+ 4691
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 15
+ },
+ "end": {
+ "line": 154,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4671,
+ 4691
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 4
+ },
+ "end": {
+ "line": 154,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 4697,
+ 4703
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 4
+ },
+ "end": {
+ "line": 155,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 4705,
+ 4711
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 12
+ },
+ "end": {
+ "line": 155,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4697,
+ 4711
+ ],
+ "loc": {
+ "start": {
+ "line": 155,
+ "column": 4
+ },
+ "end": {
+ "line": 155,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "all",
+ "range": [
+ 4733,
+ 4736
+ ],
+ "loc": {
+ "start": {
+ "line": 158,
+ "column": 4
+ },
+ "end": {
+ "line": 158,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 4738,
+ 4743
+ ],
+ "loc": {
+ "start": {
+ "line": 158,
+ "column": 9
+ },
+ "end": {
+ "line": 158,
+ "column": 14
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4733,
+ 4743
+ ],
+ "loc": {
+ "start": {
+ "line": 158,
+ "column": 4
+ },
+ "end": {
+ "line": 158,
+ "column": 14
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " aliases",
+ "range": [
+ 4718,
+ 4728
+ ],
+ "loc": {
+ "start": {
+ "line": 157,
+ "column": 4
+ },
+ "end": {
+ "line": 157,
+ "column": 14
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "any",
+ "range": [
+ 4749,
+ 4752
+ ],
+ "loc": {
+ "start": {
+ "line": 159,
+ "column": 4
+ },
+ "end": {
+ "line": 159,
+ "column": 7
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 4754,
+ 4758
+ ],
+ "loc": {
+ "start": {
+ "line": 159,
+ "column": 9
+ },
+ "end": {
+ "line": 159,
+ "column": 13
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4749,
+ 4758
+ ],
+ "loc": {
+ "start": {
+ "line": 159,
+ "column": 4
+ },
+ "end": {
+ "line": 159,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEach",
+ "range": [
+ 4764,
+ 4771
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 4
+ },
+ "end": {
+ "line": 160,
+ "column": 11
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 4773,
+ 4777
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 13
+ },
+ "end": {
+ "line": 160,
+ "column": 17
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4764,
+ 4777
+ ],
+ "loc": {
+ "start": {
+ "line": 160,
+ "column": 4
+ },
+ "end": {
+ "line": 160,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEachSeries",
+ "range": [
+ 4783,
+ 4796
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 4
+ },
+ "end": {
+ "line": 161,
+ "column": 17
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 4798,
+ 4808
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 19
+ },
+ "end": {
+ "line": 161,
+ "column": 29
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4783,
+ 4808
+ ],
+ "loc": {
+ "start": {
+ "line": 161,
+ "column": 4
+ },
+ "end": {
+ "line": 161,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEachLimit",
+ "range": [
+ 4814,
+ 4826
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 4
+ },
+ "end": {
+ "line": 162,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 4828,
+ 4837
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 18
+ },
+ "end": {
+ "line": 162,
+ "column": 27
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4814,
+ 4837
+ ],
+ "loc": {
+ "start": {
+ "line": 162,
+ "column": 4
+ },
+ "end": {
+ "line": 162,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEachOf",
+ "range": [
+ 4843,
+ 4852
+ ],
+ "loc": {
+ "start": {
+ "line": 163,
+ "column": 4
+ },
+ "end": {
+ "line": 163,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 4854,
+ 4860
+ ],
+ "loc": {
+ "start": {
+ "line": 163,
+ "column": 15
+ },
+ "end": {
+ "line": 163,
+ "column": 21
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4843,
+ 4860
+ ],
+ "loc": {
+ "start": {
+ "line": 163,
+ "column": 4
+ },
+ "end": {
+ "line": 163,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEachOfSeries",
+ "range": [
+ 4866,
+ 4881
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 4
+ },
+ "end": {
+ "line": 164,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 4883,
+ 4895
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 21
+ },
+ "end": {
+ "line": 164,
+ "column": 33
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4866,
+ 4895
+ ],
+ "loc": {
+ "start": {
+ "line": 164,
+ "column": 4
+ },
+ "end": {
+ "line": 164,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "forEachOfLimit",
+ "range": [
+ 4901,
+ 4915
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 4
+ },
+ "end": {
+ "line": 165,
+ "column": 18
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 4917,
+ 4928
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 20
+ },
+ "end": {
+ "line": 165,
+ "column": 31
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4901,
+ 4928
+ ],
+ "loc": {
+ "start": {
+ "line": 165,
+ "column": 4
+ },
+ "end": {
+ "line": 165,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "inject",
+ "range": [
+ 4934,
+ 4940
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 4
+ },
+ "end": {
+ "line": 166,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 4942,
+ 4948
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 12
+ },
+ "end": {
+ "line": 166,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4934,
+ 4948
+ ],
+ "loc": {
+ "start": {
+ "line": 166,
+ "column": 4
+ },
+ "end": {
+ "line": 166,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "foldl",
+ "range": [
+ 4954,
+ 4959
+ ],
+ "loc": {
+ "start": {
+ "line": 167,
+ "column": 4
+ },
+ "end": {
+ "line": 167,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 4961,
+ 4967
+ ],
+ "loc": {
+ "start": {
+ "line": 167,
+ "column": 11
+ },
+ "end": {
+ "line": 167,
+ "column": 17
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4954,
+ 4967
+ ],
+ "loc": {
+ "start": {
+ "line": 167,
+ "column": 4
+ },
+ "end": {
+ "line": 167,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "foldr",
+ "range": [
+ 4973,
+ 4978
+ ],
+ "loc": {
+ "start": {
+ "line": 168,
+ "column": 4
+ },
+ "end": {
+ "line": 168,
+ "column": 9
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 4980,
+ 4991
+ ],
+ "loc": {
+ "start": {
+ "line": 168,
+ "column": 11
+ },
+ "end": {
+ "line": 168,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4973,
+ 4991
+ ],
+ "loc": {
+ "start": {
+ "line": 168,
+ "column": 4
+ },
+ "end": {
+ "line": 168,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "select",
+ "range": [
+ 4997,
+ 5003
+ ],
+ "loc": {
+ "start": {
+ "line": 169,
+ "column": 4
+ },
+ "end": {
+ "line": 169,
+ "column": 10
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 5005,
+ 5011
+ ],
+ "loc": {
+ "start": {
+ "line": 169,
+ "column": 12
+ },
+ "end": {
+ "line": 169,
+ "column": 18
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4997,
+ 5011
+ ],
+ "loc": {
+ "start": {
+ "line": 169,
+ "column": 4
+ },
+ "end": {
+ "line": 169,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "selectLimit",
+ "range": [
+ 5017,
+ 5028
+ ],
+ "loc": {
+ "start": {
+ "line": 170,
+ "column": 4
+ },
+ "end": {
+ "line": 170,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 5030,
+ 5041
+ ],
+ "loc": {
+ "start": {
+ "line": 170,
+ "column": 17
+ },
+ "end": {
+ "line": 170,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 5017,
+ 5041
+ ],
+ "loc": {
+ "start": {
+ "line": 170,
+ "column": 4
+ },
+ "end": {
+ "line": 170,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "selectSeries",
+ "range": [
+ 5047,
+ 5059
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 4
+ },
+ "end": {
+ "line": 171,
+ "column": 16
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 5061,
+ 5073
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 18
+ },
+ "end": {
+ "line": 171,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 5047,
+ 5073
+ ],
+ "loc": {
+ "start": {
+ "line": 171,
+ "column": 4
+ },
+ "end": {
+ "line": 171,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "wrapSync",
+ "range": [
+ 5079,
+ 5087
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 4
+ },
+ "end": {
+ "line": 172,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 5089,
+ 5097
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 14
+ },
+ "end": {
+ "line": 172,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 5079,
+ 5097
+ ],
+ "loc": {
+ "start": {
+ "line": 172,
+ "column": 4
+ },
+ "end": {
+ "line": 172,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 2927,
+ 5099
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 15
+ },
+ "end": {
+ "line": 173,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 2912,
+ 5100
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 0
+ },
+ "end": {
+ "line": 173,
+ "column": 2
+ }
+ }
+ },
+ {
+ "type": "ExportNamedDeclaration",
+ "declaration": null,
+ "specifiers": [
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 5128,
+ 5137
+ ],
+ "loc": {
+ "start": {
+ "line": 176,
+ "column": 17
+ },
+ "end": {
+ "line": 176,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 5115,
+ 5124
+ ],
+ "loc": {
+ "start": {
+ "line": 176,
+ "column": 4
+ },
+ "end": {
+ "line": 176,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 5115,
+ 5137
+ ],
+ "loc": {
+ "start": {
+ "line": 176,
+ "column": 4
+ },
+ "end": {
+ "line": 176,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "applyEachSeries",
+ "range": [
+ 5162,
+ 5177
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 23
+ },
+ "end": {
+ "line": 177,
+ "column": 38
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "applyEachSeries",
+ "range": [
+ 5143,
+ 5158
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 4
+ },
+ "end": {
+ "line": 177,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 5143,
+ 5177
+ ],
+ "loc": {
+ "start": {
+ "line": 177,
+ "column": 4
+ },
+ "end": {
+ "line": 177,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 5192,
+ 5197
+ ],
+ "loc": {
+ "start": {
+ "line": 178,
+ "column": 13
+ },
+ "end": {
+ "line": 178,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 5183,
+ 5188
+ ],
+ "loc": {
+ "start": {
+ "line": 178,
+ "column": 4
+ },
+ "end": {
+ "line": 178,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 5183,
+ 5197
+ ],
+ "loc": {
+ "start": {
+ "line": 178,
+ "column": 4
+ },
+ "end": {
+ "line": 178,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 5215,
+ 5223
+ ],
+ "loc": {
+ "start": {
+ "line": 179,
+ "column": 16
+ },
+ "end": {
+ "line": 179,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 5203,
+ 5211
+ ],
+ "loc": {
+ "start": {
+ "line": 179,
+ "column": 4
+ },
+ "end": {
+ "line": 179,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 5203,
+ 5223
+ ],
+ "loc": {
+ "start": {
+ "line": 179,
+ "column": 4
+ },
+ "end": {
+ "line": 179,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 5237,
+ 5241
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 12
+ },
+ "end": {
+ "line": 180,
+ "column": 16
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "auto",
+ "range": [
+ 5229,
+ 5233
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 4
+ },
+ "end": {
+ "line": 180,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 5229,
+ 5241
+ ],
+ "loc": {
+ "start": {
+ "line": 180,
+ "column": 4
+ },
+ "end": {
+ "line": 180,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 5261,
+ 5271
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 18
+ },
+ "end": {
+ "line": 181,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "autoInject",
+ "range": [
+ 5247,
+ 5257
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 4
+ },
+ "end": {
+ "line": 181,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 5247,
+ 5271
+ ],
+ "loc": {
+ "start": {
+ "line": 181,
+ "column": 4
+ },
+ "end": {
+ "line": 181,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 5286,
+ 5291
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 13
+ },
+ "end": {
+ "line": 182,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "cargo",
+ "range": [
+ 5277,
+ 5282
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 4
+ },
+ "end": {
+ "line": 182,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 5277,
+ 5291
+ ],
+ "loc": {
+ "start": {
+ "line": 182,
+ "column": 4
+ },
+ "end": {
+ "line": 182,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 5308,
+ 5315
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 15
+ },
+ "end": {
+ "line": 183,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "compose",
+ "range": [
+ 5297,
+ 5304
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 4
+ },
+ "end": {
+ "line": 183,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 5297,
+ 5315
+ ],
+ "loc": {
+ "start": {
+ "line": 183,
+ "column": 4
+ },
+ "end": {
+ "line": 183,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 5331,
+ 5337
+ ],
+ "loc": {
+ "start": {
+ "line": 184,
+ "column": 14
+ },
+ "end": {
+ "line": 184,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 5321,
+ 5327
+ ],
+ "loc": {
+ "start": {
+ "line": 184,
+ "column": 4
+ },
+ "end": {
+ "line": 184,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5321,
+ 5337
+ ],
+ "loc": {
+ "start": {
+ "line": 184,
+ "column": 4
+ },
+ "end": {
+ "line": 184,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "concatSeries",
+ "range": [
+ 5359,
+ 5371
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 20
+ },
+ "end": {
+ "line": 185,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "concatSeries",
+ "range": [
+ 5343,
+ 5355
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 4
+ },
+ "end": {
+ "line": 185,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 5343,
+ 5371
+ ],
+ "loc": {
+ "start": {
+ "line": 185,
+ "column": 4
+ },
+ "end": {
+ "line": 185,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 5389,
+ 5397
+ ],
+ "loc": {
+ "start": {
+ "line": 186,
+ "column": 16
+ },
+ "end": {
+ "line": 186,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 5377,
+ 5385
+ ],
+ "loc": {
+ "start": {
+ "line": 186,
+ "column": 4
+ },
+ "end": {
+ "line": 186,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 5377,
+ 5397
+ ],
+ "loc": {
+ "start": {
+ "line": 186,
+ "column": 4
+ },
+ "end": {
+ "line": 186,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 5413,
+ 5419
+ ],
+ "loc": {
+ "start": {
+ "line": 187,
+ "column": 14
+ },
+ "end": {
+ "line": 187,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 5403,
+ 5409
+ ],
+ "loc": {
+ "start": {
+ "line": 187,
+ "column": 4
+ },
+ "end": {
+ "line": 187,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5403,
+ 5419
+ ],
+ "loc": {
+ "start": {
+ "line": 187,
+ "column": 4
+ },
+ "end": {
+ "line": 187,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 5440,
+ 5451
+ ],
+ "loc": {
+ "start": {
+ "line": 188,
+ "column": 19
+ },
+ "end": {
+ "line": 188,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 5425,
+ 5436
+ ],
+ "loc": {
+ "start": {
+ "line": 188,
+ "column": 4
+ },
+ "end": {
+ "line": 188,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 5425,
+ 5451
+ ],
+ "loc": {
+ "start": {
+ "line": 188,
+ "column": 4
+ },
+ "end": {
+ "line": 188,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 5473,
+ 5485
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 20
+ },
+ "end": {
+ "line": 189,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 5457,
+ 5469
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 4
+ },
+ "end": {
+ "line": 189,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 5457,
+ 5485
+ ],
+ "loc": {
+ "start": {
+ "line": 189,
+ "column": 4
+ },
+ "end": {
+ "line": 189,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "dir",
+ "range": [
+ 5498,
+ 5501
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 11
+ },
+ "end": {
+ "line": 190,
+ "column": 14
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "dir",
+ "range": [
+ 5491,
+ 5494
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 4
+ },
+ "end": {
+ "line": 190,
+ "column": 7
+ }
+ }
+ },
+ "range": [
+ 5491,
+ 5501
+ ],
+ "loc": {
+ "start": {
+ "line": 190,
+ "column": 4
+ },
+ "end": {
+ "line": 190,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 5519,
+ 5527
+ ],
+ "loc": {
+ "start": {
+ "line": 191,
+ "column": 16
+ },
+ "end": {
+ "line": 191,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "doDuring",
+ "range": [
+ 5507,
+ 5515
+ ],
+ "loc": {
+ "start": {
+ "line": 191,
+ "column": 4
+ },
+ "end": {
+ "line": 191,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 5507,
+ 5527
+ ],
+ "loc": {
+ "start": {
+ "line": 191,
+ "column": 4
+ },
+ "end": {
+ "line": 191,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 5544,
+ 5551
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 15
+ },
+ "end": {
+ "line": 192,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "doUntil",
+ "range": [
+ 5533,
+ 5540
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 4
+ },
+ "end": {
+ "line": 192,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 5533,
+ 5551
+ ],
+ "loc": {
+ "start": {
+ "line": 192,
+ "column": 4
+ },
+ "end": {
+ "line": 192,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 5569,
+ 5577
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 16
+ },
+ "end": {
+ "line": 193,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "doWhilst",
+ "range": [
+ 5557,
+ 5565
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 4
+ },
+ "end": {
+ "line": 193,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 5557,
+ 5577
+ ],
+ "loc": {
+ "start": {
+ "line": 193,
+ "column": 4
+ },
+ "end": {
+ "line": 193,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 5593,
+ 5599
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 14
+ },
+ "end": {
+ "line": 194,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "during",
+ "range": [
+ 5583,
+ 5589
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 4
+ },
+ "end": {
+ "line": 194,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5583,
+ 5599
+ ],
+ "loc": {
+ "start": {
+ "line": 194,
+ "column": 4
+ },
+ "end": {
+ "line": 194,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 5613,
+ 5617
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 12
+ },
+ "end": {
+ "line": 195,
+ "column": 16
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 5605,
+ 5609
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 4
+ },
+ "end": {
+ "line": 195,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 5605,
+ 5617
+ ],
+ "loc": {
+ "start": {
+ "line": 195,
+ "column": 4
+ },
+ "end": {
+ "line": 195,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 5636,
+ 5645
+ ],
+ "loc": {
+ "start": {
+ "line": 196,
+ "column": 17
+ },
+ "end": {
+ "line": 196,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 5623,
+ 5632
+ ],
+ "loc": {
+ "start": {
+ "line": 196,
+ "column": 4
+ },
+ "end": {
+ "line": 196,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 5623,
+ 5645
+ ],
+ "loc": {
+ "start": {
+ "line": 196,
+ "column": 4
+ },
+ "end": {
+ "line": 196,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 5661,
+ 5667
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 14
+ },
+ "end": {
+ "line": 197,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 5651,
+ 5657
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 4
+ },
+ "end": {
+ "line": 197,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5651,
+ 5667
+ ],
+ "loc": {
+ "start": {
+ "line": 197,
+ "column": 4
+ },
+ "end": {
+ "line": 197,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 5688,
+ 5699
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 19
+ },
+ "end": {
+ "line": 198,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 5673,
+ 5684
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 4
+ },
+ "end": {
+ "line": 198,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 5673,
+ 5699
+ ],
+ "loc": {
+ "start": {
+ "line": 198,
+ "column": 4
+ },
+ "end": {
+ "line": 198,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 5721,
+ 5733
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 20
+ },
+ "end": {
+ "line": 199,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 5705,
+ 5717
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 4
+ },
+ "end": {
+ "line": 199,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 5705,
+ 5733
+ ],
+ "loc": {
+ "start": {
+ "line": 199,
+ "column": 4
+ },
+ "end": {
+ "line": 199,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 5753,
+ 5763
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 18
+ },
+ "end": {
+ "line": 200,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 5739,
+ 5749
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 4
+ },
+ "end": {
+ "line": 200,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 5739,
+ 5763
+ ],
+ "loc": {
+ "start": {
+ "line": 200,
+ "column": 4
+ },
+ "end": {
+ "line": 200,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 5784,
+ 5795
+ ],
+ "loc": {
+ "start": {
+ "line": 201,
+ "column": 19
+ },
+ "end": {
+ "line": 201,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "ensureAsync",
+ "range": [
+ 5769,
+ 5780
+ ],
+ "loc": {
+ "start": {
+ "line": 201,
+ "column": 4
+ },
+ "end": {
+ "line": 201,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 5769,
+ 5795
+ ],
+ "loc": {
+ "start": {
+ "line": 201,
+ "column": 4
+ },
+ "end": {
+ "line": 201,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 5810,
+ 5815
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 13
+ },
+ "end": {
+ "line": 202,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 5801,
+ 5806
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 4
+ },
+ "end": {
+ "line": 202,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 5801,
+ 5815
+ ],
+ "loc": {
+ "start": {
+ "line": 202,
+ "column": 4
+ },
+ "end": {
+ "line": 202,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 5835,
+ 5845
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 18
+ },
+ "end": {
+ "line": 203,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 5821,
+ 5831
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 4
+ },
+ "end": {
+ "line": 203,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 5821,
+ 5845
+ ],
+ "loc": {
+ "start": {
+ "line": 203,
+ "column": 4
+ },
+ "end": {
+ "line": 203,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 5866,
+ 5877
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 19
+ },
+ "end": {
+ "line": 204,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 5851,
+ 5862
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 4
+ },
+ "end": {
+ "line": 204,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 5851,
+ 5877
+ ],
+ "loc": {
+ "start": {
+ "line": 204,
+ "column": 4
+ },
+ "end": {
+ "line": 204,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 5893,
+ 5899
+ ],
+ "loc": {
+ "start": {
+ "line": 205,
+ "column": 14
+ },
+ "end": {
+ "line": 205,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 5883,
+ 5889
+ ],
+ "loc": {
+ "start": {
+ "line": 205,
+ "column": 4
+ },
+ "end": {
+ "line": 205,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 5883,
+ 5899
+ ],
+ "loc": {
+ "start": {
+ "line": 205,
+ "column": 4
+ },
+ "end": {
+ "line": 205,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 5920,
+ 5931
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 19
+ },
+ "end": {
+ "line": 206,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 5905,
+ 5916
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 4
+ },
+ "end": {
+ "line": 206,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 5905,
+ 5931
+ ],
+ "loc": {
+ "start": {
+ "line": 206,
+ "column": 4
+ },
+ "end": {
+ "line": 206,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 5953,
+ 5965
+ ],
+ "loc": {
+ "start": {
+ "line": 207,
+ "column": 20
+ },
+ "end": {
+ "line": 207,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 5937,
+ 5949
+ ],
+ "loc": {
+ "start": {
+ "line": 207,
+ "column": 4
+ },
+ "end": {
+ "line": 207,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 5937,
+ 5965
+ ],
+ "loc": {
+ "start": {
+ "line": 207,
+ "column": 4
+ },
+ "end": {
+ "line": 207,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 5982,
+ 5989
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 15
+ },
+ "end": {
+ "line": 208,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "forever",
+ "range": [
+ 5971,
+ 5978
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 4
+ },
+ "end": {
+ "line": 208,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 5971,
+ 5989
+ ],
+ "loc": {
+ "start": {
+ "line": 208,
+ "column": 4
+ },
+ "end": {
+ "line": 208,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 6007,
+ 6015
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 16
+ },
+ "end": {
+ "line": 209,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 5995,
+ 6003
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 4
+ },
+ "end": {
+ "line": 209,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 5995,
+ 6015
+ ],
+ "loc": {
+ "start": {
+ "line": 209,
+ "column": 4
+ },
+ "end": {
+ "line": 209,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "log",
+ "range": [
+ 6028,
+ 6031
+ ],
+ "loc": {
+ "start": {
+ "line": 210,
+ "column": 11
+ },
+ "end": {
+ "line": 210,
+ "column": 14
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "log",
+ "range": [
+ 6021,
+ 6024
+ ],
+ "loc": {
+ "start": {
+ "line": 210,
+ "column": 4
+ },
+ "end": {
+ "line": 210,
+ "column": 7
+ }
+ }
+ },
+ "range": [
+ 6021,
+ 6031
+ ],
+ "loc": {
+ "start": {
+ "line": 210,
+ "column": 4
+ },
+ "end": {
+ "line": 210,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 6044,
+ 6047
+ ],
+ "loc": {
+ "start": {
+ "line": 211,
+ "column": 11
+ },
+ "end": {
+ "line": 211,
+ "column": 14
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 6037,
+ 6040
+ ],
+ "loc": {
+ "start": {
+ "line": 211,
+ "column": 4
+ },
+ "end": {
+ "line": 211,
+ "column": 7
+ }
+ }
+ },
+ "range": [
+ 6037,
+ 6047
+ ],
+ "loc": {
+ "start": {
+ "line": 211,
+ "column": 4
+ },
+ "end": {
+ "line": 211,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 6065,
+ 6073
+ ],
+ "loc": {
+ "start": {
+ "line": 212,
+ "column": 16
+ },
+ "end": {
+ "line": 212,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 6053,
+ 6061
+ ],
+ "loc": {
+ "start": {
+ "line": 212,
+ "column": 4
+ },
+ "end": {
+ "line": 212,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 6053,
+ 6073
+ ],
+ "loc": {
+ "start": {
+ "line": 212,
+ "column": 4
+ },
+ "end": {
+ "line": 212,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 6092,
+ 6101
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 17
+ },
+ "end": {
+ "line": 213,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "mapSeries",
+ "range": [
+ 6079,
+ 6088
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 4
+ },
+ "end": {
+ "line": 213,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6079,
+ 6101
+ ],
+ "loc": {
+ "start": {
+ "line": 213,
+ "column": 4
+ },
+ "end": {
+ "line": 213,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "mapValues",
+ "range": [
+ 6120,
+ 6129
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 17
+ },
+ "end": {
+ "line": 214,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "mapValues",
+ "range": [
+ 6107,
+ 6116
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 4
+ },
+ "end": {
+ "line": 214,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6107,
+ 6129
+ ],
+ "loc": {
+ "start": {
+ "line": 214,
+ "column": 4
+ },
+ "end": {
+ "line": 214,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 6153,
+ 6167
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 22
+ },
+ "end": {
+ "line": 215,
+ "column": 36
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 6135,
+ 6149
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 4
+ },
+ "end": {
+ "line": 215,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 6135,
+ 6167
+ ],
+ "loc": {
+ "start": {
+ "line": 215,
+ "column": 4
+ },
+ "end": {
+ "line": 215,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "mapValuesSeries",
+ "range": [
+ 6192,
+ 6207
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 23
+ },
+ "end": {
+ "line": 216,
+ "column": 38
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesSeries",
+ "range": [
+ 6173,
+ 6188
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 4
+ },
+ "end": {
+ "line": 216,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 6173,
+ 6207
+ ],
+ "loc": {
+ "start": {
+ "line": 216,
+ "column": 4
+ },
+ "end": {
+ "line": 216,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 6224,
+ 6231
+ ],
+ "loc": {
+ "start": {
+ "line": 217,
+ "column": 15
+ },
+ "end": {
+ "line": 217,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 6213,
+ 6220
+ ],
+ "loc": {
+ "start": {
+ "line": 217,
+ "column": 4
+ },
+ "end": {
+ "line": 217,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 6213,
+ 6231
+ ],
+ "loc": {
+ "start": {
+ "line": 217,
+ "column": 4
+ },
+ "end": {
+ "line": 217,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 6249,
+ 6257
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 16
+ },
+ "end": {
+ "line": 218,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 6237,
+ 6245
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 4
+ },
+ "end": {
+ "line": 218,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 6237,
+ 6257
+ ],
+ "loc": {
+ "start": {
+ "line": 218,
+ "column": 4
+ },
+ "end": {
+ "line": 218,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 6275,
+ 6283
+ ],
+ "loc": {
+ "start": {
+ "line": 219,
+ "column": 16
+ },
+ "end": {
+ "line": 219,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 6263,
+ 6271
+ ],
+ "loc": {
+ "start": {
+ "line": 219,
+ "column": 4
+ },
+ "end": {
+ "line": 219,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 6263,
+ 6283
+ ],
+ "loc": {
+ "start": {
+ "line": 219,
+ "column": 4
+ },
+ "end": {
+ "line": 219,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 6306,
+ 6319
+ ],
+ "loc": {
+ "start": {
+ "line": 220,
+ "column": 21
+ },
+ "end": {
+ "line": 220,
+ "column": 34
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 6289,
+ 6302
+ ],
+ "loc": {
+ "start": {
+ "line": 220,
+ "column": 4
+ },
+ "end": {
+ "line": 220,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 6289,
+ 6319
+ ],
+ "loc": {
+ "start": {
+ "line": 220,
+ "column": 4
+ },
+ "end": {
+ "line": 220,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "priorityQueue",
+ "range": [
+ 6342,
+ 6355
+ ],
+ "loc": {
+ "start": {
+ "line": 221,
+ "column": 21
+ },
+ "end": {
+ "line": 221,
+ "column": 34
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "priorityQueue",
+ "range": [
+ 6325,
+ 6338
+ ],
+ "loc": {
+ "start": {
+ "line": 221,
+ "column": 4
+ },
+ "end": {
+ "line": 221,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 6325,
+ 6355
+ ],
+ "loc": {
+ "start": {
+ "line": 221,
+ "column": 4
+ },
+ "end": {
+ "line": 221,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 6370,
+ 6375
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 13
+ },
+ "end": {
+ "line": 222,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 6361,
+ 6366
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 4
+ },
+ "end": {
+ "line": 222,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 6361,
+ 6375
+ ],
+ "loc": {
+ "start": {
+ "line": 222,
+ "column": 4
+ },
+ "end": {
+ "line": 222,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 6389,
+ 6393
+ ],
+ "loc": {
+ "start": {
+ "line": 223,
+ "column": 12
+ },
+ "end": {
+ "line": 223,
+ "column": 16
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 6381,
+ 6385
+ ],
+ "loc": {
+ "start": {
+ "line": 223,
+ "column": 4
+ },
+ "end": {
+ "line": 223,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 6381,
+ 6393
+ ],
+ "loc": {
+ "start": {
+ "line": 223,
+ "column": 4
+ },
+ "end": {
+ "line": 223,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 6409,
+ 6415
+ ],
+ "loc": {
+ "start": {
+ "line": 224,
+ "column": 14
+ },
+ "end": {
+ "line": 224,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 6399,
+ 6405
+ ],
+ "loc": {
+ "start": {
+ "line": 224,
+ "column": 4
+ },
+ "end": {
+ "line": 224,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 6399,
+ 6415
+ ],
+ "loc": {
+ "start": {
+ "line": 224,
+ "column": 4
+ },
+ "end": {
+ "line": 224,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 6436,
+ 6447
+ ],
+ "loc": {
+ "start": {
+ "line": 225,
+ "column": 19
+ },
+ "end": {
+ "line": 225,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 6421,
+ 6432
+ ],
+ "loc": {
+ "start": {
+ "line": 225,
+ "column": 4
+ },
+ "end": {
+ "line": 225,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 6421,
+ 6447
+ ],
+ "loc": {
+ "start": {
+ "line": 225,
+ "column": 4
+ },
+ "end": {
+ "line": 225,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 6464,
+ 6471
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 15
+ },
+ "end": {
+ "line": 226,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 6453,
+ 6460
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 4
+ },
+ "end": {
+ "line": 226,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 6453,
+ 6471
+ ],
+ "loc": {
+ "start": {
+ "line": 226,
+ "column": 4
+ },
+ "end": {
+ "line": 226,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 6491,
+ 6501
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 18
+ },
+ "end": {
+ "line": 227,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 6477,
+ 6487
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 4
+ },
+ "end": {
+ "line": 227,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 6477,
+ 6501
+ ],
+ "loc": {
+ "start": {
+ "line": 227,
+ "column": 4
+ },
+ "end": {
+ "line": 227,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 6517,
+ 6523
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 14
+ },
+ "end": {
+ "line": 228,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 6507,
+ 6513
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 4
+ },
+ "end": {
+ "line": 228,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 6507,
+ 6523
+ ],
+ "loc": {
+ "start": {
+ "line": 228,
+ "column": 4
+ },
+ "end": {
+ "line": 228,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 6544,
+ 6555
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 19
+ },
+ "end": {
+ "line": 229,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 6529,
+ 6540
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 4
+ },
+ "end": {
+ "line": 229,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 6529,
+ 6555
+ ],
+ "loc": {
+ "start": {
+ "line": 229,
+ "column": 4
+ },
+ "end": {
+ "line": 229,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "rejectSeries",
+ "range": [
+ 6577,
+ 6589
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 20
+ },
+ "end": {
+ "line": 230,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "rejectSeries",
+ "range": [
+ 6561,
+ 6573
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 4
+ },
+ "end": {
+ "line": 230,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 6561,
+ 6589
+ ],
+ "loc": {
+ "start": {
+ "line": 230,
+ "column": 4
+ },
+ "end": {
+ "line": 230,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 6604,
+ 6609
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 13
+ },
+ "end": {
+ "line": 231,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 6595,
+ 6600
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 4
+ },
+ "end": {
+ "line": 231,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 6595,
+ 6609
+ ],
+ "loc": {
+ "start": {
+ "line": 231,
+ "column": 4
+ },
+ "end": {
+ "line": 231,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "retryable",
+ "range": [
+ 6628,
+ 6637
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 17
+ },
+ "end": {
+ "line": 232,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "retryable",
+ "range": [
+ 6615,
+ 6624
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 4
+ },
+ "end": {
+ "line": 232,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6615,
+ 6637
+ ],
+ "loc": {
+ "start": {
+ "line": 232,
+ "column": 4
+ },
+ "end": {
+ "line": 232,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 6650,
+ 6653
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 11
+ },
+ "end": {
+ "line": 233,
+ "column": 14
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 6643,
+ 6646
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 4
+ },
+ "end": {
+ "line": 233,
+ "column": 7
+ }
+ }
+ },
+ "range": [
+ 6643,
+ 6653
+ ],
+ "loc": {
+ "start": {
+ "line": 233,
+ "column": 4
+ },
+ "end": {
+ "line": 233,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 6669,
+ 6675
+ ],
+ "loc": {
+ "start": {
+ "line": 234,
+ "column": 14
+ },
+ "end": {
+ "line": 234,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 6659,
+ 6665
+ ],
+ "loc": {
+ "start": {
+ "line": 234,
+ "column": 4
+ },
+ "end": {
+ "line": 234,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 6659,
+ 6675
+ ],
+ "loc": {
+ "start": {
+ "line": 234,
+ "column": 4
+ },
+ "end": {
+ "line": 234,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 6697,
+ 6709
+ ],
+ "loc": {
+ "start": {
+ "line": 235,
+ "column": 20
+ },
+ "end": {
+ "line": 235,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 6681,
+ 6693
+ ],
+ "loc": {
+ "start": {
+ "line": 235,
+ "column": 4
+ },
+ "end": {
+ "line": 235,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 6681,
+ 6709
+ ],
+ "loc": {
+ "start": {
+ "line": 235,
+ "column": 4
+ },
+ "end": {
+ "line": 235,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 6723,
+ 6727
+ ],
+ "loc": {
+ "start": {
+ "line": 236,
+ "column": 12
+ },
+ "end": {
+ "line": 236,
+ "column": 16
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 6715,
+ 6719
+ ],
+ "loc": {
+ "start": {
+ "line": 236,
+ "column": 4
+ },
+ "end": {
+ "line": 236,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 6715,
+ 6727
+ ],
+ "loc": {
+ "start": {
+ "line": 236,
+ "column": 4
+ },
+ "end": {
+ "line": 236,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 6746,
+ 6755
+ ],
+ "loc": {
+ "start": {
+ "line": 237,
+ "column": 17
+ },
+ "end": {
+ "line": 237,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 6733,
+ 6742
+ ],
+ "loc": {
+ "start": {
+ "line": 237,
+ "column": 4
+ },
+ "end": {
+ "line": 237,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6733,
+ 6755
+ ],
+ "loc": {
+ "start": {
+ "line": 237,
+ "column": 4
+ },
+ "end": {
+ "line": 237,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 6775,
+ 6785
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 18
+ },
+ "end": {
+ "line": 238,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 6761,
+ 6771
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 4
+ },
+ "end": {
+ "line": 238,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 6761,
+ 6785
+ ],
+ "loc": {
+ "start": {
+ "line": 238,
+ "column": 4
+ },
+ "end": {
+ "line": 238,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 6801,
+ 6807
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 14
+ },
+ "end": {
+ "line": 239,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 6791,
+ 6797
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 4
+ },
+ "end": {
+ "line": 239,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 6791,
+ 6807
+ ],
+ "loc": {
+ "start": {
+ "line": 239,
+ "column": 4
+ },
+ "end": {
+ "line": 239,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 6824,
+ 6831
+ ],
+ "loc": {
+ "start": {
+ "line": 240,
+ "column": 15
+ },
+ "end": {
+ "line": 240,
+ "column": 22
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 6813,
+ 6820
+ ],
+ "loc": {
+ "start": {
+ "line": 240,
+ "column": 4
+ },
+ "end": {
+ "line": 240,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 6813,
+ 6831
+ ],
+ "loc": {
+ "start": {
+ "line": 240,
+ "column": 4
+ },
+ "end": {
+ "line": 240,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 6846,
+ 6851
+ ],
+ "loc": {
+ "start": {
+ "line": 241,
+ "column": 13
+ },
+ "end": {
+ "line": 241,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 6837,
+ 6842
+ ],
+ "loc": {
+ "start": {
+ "line": 241,
+ "column": 4
+ },
+ "end": {
+ "line": 241,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 6837,
+ 6851
+ ],
+ "loc": {
+ "start": {
+ "line": 241,
+ "column": 4
+ },
+ "end": {
+ "line": 241,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 6871,
+ 6881
+ ],
+ "loc": {
+ "start": {
+ "line": 242,
+ "column": 18
+ },
+ "end": {
+ "line": 242,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 6857,
+ 6867
+ ],
+ "loc": {
+ "start": {
+ "line": 242,
+ "column": 4
+ },
+ "end": {
+ "line": 242,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 6857,
+ 6881
+ ],
+ "loc": {
+ "start": {
+ "line": 242,
+ "column": 4
+ },
+ "end": {
+ "line": 242,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "timesSeries",
+ "range": [
+ 6902,
+ 6913
+ ],
+ "loc": {
+ "start": {
+ "line": 243,
+ "column": 19
+ },
+ "end": {
+ "line": 243,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "timesSeries",
+ "range": [
+ 6887,
+ 6898
+ ],
+ "loc": {
+ "start": {
+ "line": 243,
+ "column": 4
+ },
+ "end": {
+ "line": 243,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 6887,
+ 6913
+ ],
+ "loc": {
+ "start": {
+ "line": 243,
+ "column": 4
+ },
+ "end": {
+ "line": 243,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 6932,
+ 6941
+ ],
+ "loc": {
+ "start": {
+ "line": 244,
+ "column": 17
+ },
+ "end": {
+ "line": 244,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 6919,
+ 6928
+ ],
+ "loc": {
+ "start": {
+ "line": 244,
+ "column": 4
+ },
+ "end": {
+ "line": 244,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6919,
+ 6941
+ ],
+ "loc": {
+ "start": {
+ "line": 244,
+ "column": 4
+ },
+ "end": {
+ "line": 244,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 6960,
+ 6969
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 17
+ },
+ "end": {
+ "line": 245,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 6947,
+ 6956
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 4
+ },
+ "end": {
+ "line": 245,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6947,
+ 6969
+ ],
+ "loc": {
+ "start": {
+ "line": 245,
+ "column": 4
+ },
+ "end": {
+ "line": 245,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 6984,
+ 6989
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 13
+ },
+ "end": {
+ "line": 246,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 6975,
+ 6980
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 4
+ },
+ "end": {
+ "line": 246,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 6975,
+ 6989
+ ],
+ "loc": {
+ "start": {
+ "line": 246,
+ "column": 4
+ },
+ "end": {
+ "line": 246,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "waterfall",
+ "range": [
+ 7008,
+ 7017
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 17
+ },
+ "end": {
+ "line": 247,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "waterfall",
+ "range": [
+ 6995,
+ 7004
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 4
+ },
+ "end": {
+ "line": 247,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 6995,
+ 7017
+ ],
+ "loc": {
+ "start": {
+ "line": 247,
+ "column": 4
+ },
+ "end": {
+ "line": 247,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 7033,
+ 7039
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 14
+ },
+ "end": {
+ "line": 248,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 7023,
+ 7029
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 4
+ },
+ "end": {
+ "line": 248,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7023,
+ 7039
+ ],
+ "loc": {
+ "start": {
+ "line": 248,
+ "column": 4
+ },
+ "end": {
+ "line": 248,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "all",
+ "range": [
+ 7070,
+ 7073
+ ],
+ "loc": {
+ "start": {
+ "line": 251,
+ "column": 13
+ },
+ "end": {
+ "line": 251,
+ "column": 16
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "every",
+ "range": [
+ 7061,
+ 7066
+ ],
+ "loc": {
+ "start": {
+ "line": 251,
+ "column": 4
+ },
+ "end": {
+ "line": 251,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 7061,
+ 7073
+ ],
+ "loc": {
+ "start": {
+ "line": 251,
+ "column": 4
+ },
+ "end": {
+ "line": 251,
+ "column": 16
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Aliases",
+ "range": [
+ 7046,
+ 7056
+ ],
+ "loc": {
+ "start": {
+ "line": 250,
+ "column": 4
+ },
+ "end": {
+ "line": 250,
+ "column": 14
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "allLimit",
+ "range": [
+ 7093,
+ 7101
+ ],
+ "loc": {
+ "start": {
+ "line": 252,
+ "column": 18
+ },
+ "end": {
+ "line": 252,
+ "column": 26
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "everyLimit",
+ "range": [
+ 7079,
+ 7089
+ ],
+ "loc": {
+ "start": {
+ "line": 252,
+ "column": 4
+ },
+ "end": {
+ "line": 252,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7079,
+ 7101
+ ],
+ "loc": {
+ "start": {
+ "line": 252,
+ "column": 4
+ },
+ "end": {
+ "line": 252,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "allSeries",
+ "range": [
+ 7122,
+ 7131
+ ],
+ "loc": {
+ "start": {
+ "line": 253,
+ "column": 19
+ },
+ "end": {
+ "line": 253,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "everySeries",
+ "range": [
+ 7107,
+ 7118
+ ],
+ "loc": {
+ "start": {
+ "line": 253,
+ "column": 4
+ },
+ "end": {
+ "line": 253,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7107,
+ 7131
+ ],
+ "loc": {
+ "start": {
+ "line": 253,
+ "column": 4
+ },
+ "end": {
+ "line": 253,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "any",
+ "range": [
+ 7145,
+ 7148
+ ],
+ "loc": {
+ "start": {
+ "line": 254,
+ "column": 12
+ },
+ "end": {
+ "line": 254,
+ "column": 15
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "some",
+ "range": [
+ 7137,
+ 7141
+ ],
+ "loc": {
+ "start": {
+ "line": 254,
+ "column": 4
+ },
+ "end": {
+ "line": 254,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 7137,
+ 7148
+ ],
+ "loc": {
+ "start": {
+ "line": 254,
+ "column": 4
+ },
+ "end": {
+ "line": 254,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "anyLimit",
+ "range": [
+ 7167,
+ 7175
+ ],
+ "loc": {
+ "start": {
+ "line": 255,
+ "column": 17
+ },
+ "end": {
+ "line": 255,
+ "column": 25
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 7154,
+ 7163
+ ],
+ "loc": {
+ "start": {
+ "line": 255,
+ "column": 4
+ },
+ "end": {
+ "line": 255,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7154,
+ 7175
+ ],
+ "loc": {
+ "start": {
+ "line": 255,
+ "column": 4
+ },
+ "end": {
+ "line": 255,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "anySeries",
+ "range": [
+ 7195,
+ 7204
+ ],
+ "loc": {
+ "start": {
+ "line": 256,
+ "column": 18
+ },
+ "end": {
+ "line": 256,
+ "column": 27
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "someSeries",
+ "range": [
+ 7181,
+ 7191
+ ],
+ "loc": {
+ "start": {
+ "line": 256,
+ "column": 4
+ },
+ "end": {
+ "line": 256,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7181,
+ 7204
+ ],
+ "loc": {
+ "start": {
+ "line": 256,
+ "column": 4
+ },
+ "end": {
+ "line": 256,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "find",
+ "range": [
+ 7220,
+ 7224
+ ],
+ "loc": {
+ "start": {
+ "line": 257,
+ "column": 14
+ },
+ "end": {
+ "line": 257,
+ "column": 18
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detect",
+ "range": [
+ 7210,
+ 7216
+ ],
+ "loc": {
+ "start": {
+ "line": 257,
+ "column": 4
+ },
+ "end": {
+ "line": 257,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7210,
+ 7224
+ ],
+ "loc": {
+ "start": {
+ "line": 257,
+ "column": 4
+ },
+ "end": {
+ "line": 257,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "findLimit",
+ "range": [
+ 7245,
+ 7254
+ ],
+ "loc": {
+ "start": {
+ "line": 258,
+ "column": 19
+ },
+ "end": {
+ "line": 258,
+ "column": 28
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detectLimit",
+ "range": [
+ 7230,
+ 7241
+ ],
+ "loc": {
+ "start": {
+ "line": 258,
+ "column": 4
+ },
+ "end": {
+ "line": 258,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7230,
+ 7254
+ ],
+ "loc": {
+ "start": {
+ "line": 258,
+ "column": 4
+ },
+ "end": {
+ "line": 258,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "findSeries",
+ "range": [
+ 7276,
+ 7286
+ ],
+ "loc": {
+ "start": {
+ "line": 259,
+ "column": 20
+ },
+ "end": {
+ "line": 259,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "detectSeries",
+ "range": [
+ 7260,
+ 7272
+ ],
+ "loc": {
+ "start": {
+ "line": 259,
+ "column": 4
+ },
+ "end": {
+ "line": 259,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7260,
+ 7286
+ ],
+ "loc": {
+ "start": {
+ "line": 259,
+ "column": 4
+ },
+ "end": {
+ "line": 259,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEach",
+ "range": [
+ 7300,
+ 7307
+ ],
+ "loc": {
+ "start": {
+ "line": 260,
+ "column": 12
+ },
+ "end": {
+ "line": 260,
+ "column": 19
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 7292,
+ 7296
+ ],
+ "loc": {
+ "start": {
+ "line": 260,
+ "column": 4
+ },
+ "end": {
+ "line": 260,
+ "column": 8
+ }
+ }
+ },
+ "range": [
+ 7292,
+ 7307
+ ],
+ "loc": {
+ "start": {
+ "line": 260,
+ "column": 4
+ },
+ "end": {
+ "line": 260,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEachSeries",
+ "range": [
+ 7327,
+ 7340
+ ],
+ "loc": {
+ "start": {
+ "line": 261,
+ "column": 18
+ },
+ "end": {
+ "line": 261,
+ "column": 31
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachSeries",
+ "range": [
+ 7313,
+ 7323
+ ],
+ "loc": {
+ "start": {
+ "line": 261,
+ "column": 4
+ },
+ "end": {
+ "line": 261,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7313,
+ 7340
+ ],
+ "loc": {
+ "start": {
+ "line": 261,
+ "column": 4
+ },
+ "end": {
+ "line": 261,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEachLimit",
+ "range": [
+ 7359,
+ 7371
+ ],
+ "loc": {
+ "start": {
+ "line": 262,
+ "column": 17
+ },
+ "end": {
+ "line": 262,
+ "column": 29
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachLimit",
+ "range": [
+ 7346,
+ 7355
+ ],
+ "loc": {
+ "start": {
+ "line": 262,
+ "column": 4
+ },
+ "end": {
+ "line": 262,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7346,
+ 7371
+ ],
+ "loc": {
+ "start": {
+ "line": 262,
+ "column": 4
+ },
+ "end": {
+ "line": 262,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEachOf",
+ "range": [
+ 7387,
+ 7396
+ ],
+ "loc": {
+ "start": {
+ "line": 263,
+ "column": 14
+ },
+ "end": {
+ "line": 263,
+ "column": 23
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 7377,
+ 7383
+ ],
+ "loc": {
+ "start": {
+ "line": 263,
+ "column": 4
+ },
+ "end": {
+ "line": 263,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7377,
+ 7396
+ ],
+ "loc": {
+ "start": {
+ "line": 263,
+ "column": 4
+ },
+ "end": {
+ "line": 263,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEachOfSeries",
+ "range": [
+ 7418,
+ 7433
+ ],
+ "loc": {
+ "start": {
+ "line": 264,
+ "column": 20
+ },
+ "end": {
+ "line": 264,
+ "column": 35
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 7402,
+ 7414
+ ],
+ "loc": {
+ "start": {
+ "line": 264,
+ "column": 4
+ },
+ "end": {
+ "line": 264,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7402,
+ 7433
+ ],
+ "loc": {
+ "start": {
+ "line": 264,
+ "column": 4
+ },
+ "end": {
+ "line": 264,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "forEachOfLimit",
+ "range": [
+ 7454,
+ 7468
+ ],
+ "loc": {
+ "start": {
+ "line": 265,
+ "column": 19
+ },
+ "end": {
+ "line": 265,
+ "column": 33
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7439,
+ 7450
+ ],
+ "loc": {
+ "start": {
+ "line": 265,
+ "column": 4
+ },
+ "end": {
+ "line": 265,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7439,
+ 7468
+ ],
+ "loc": {
+ "start": {
+ "line": 265,
+ "column": 4
+ },
+ "end": {
+ "line": 265,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "inject",
+ "range": [
+ 7484,
+ 7490
+ ],
+ "loc": {
+ "start": {
+ "line": 266,
+ "column": 14
+ },
+ "end": {
+ "line": 266,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 7474,
+ 7480
+ ],
+ "loc": {
+ "start": {
+ "line": 266,
+ "column": 4
+ },
+ "end": {
+ "line": 266,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7474,
+ 7490
+ ],
+ "loc": {
+ "start": {
+ "line": 266,
+ "column": 4
+ },
+ "end": {
+ "line": 266,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "foldl",
+ "range": [
+ 7506,
+ 7511
+ ],
+ "loc": {
+ "start": {
+ "line": 267,
+ "column": 14
+ },
+ "end": {
+ "line": 267,
+ "column": 19
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 7496,
+ 7502
+ ],
+ "loc": {
+ "start": {
+ "line": 267,
+ "column": 4
+ },
+ "end": {
+ "line": 267,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7496,
+ 7511
+ ],
+ "loc": {
+ "start": {
+ "line": 267,
+ "column": 4
+ },
+ "end": {
+ "line": 267,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "foldr",
+ "range": [
+ 7532,
+ 7537
+ ],
+ "loc": {
+ "start": {
+ "line": 268,
+ "column": 19
+ },
+ "end": {
+ "line": 268,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 7517,
+ 7528
+ ],
+ "loc": {
+ "start": {
+ "line": 268,
+ "column": 4
+ },
+ "end": {
+ "line": 268,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7517,
+ 7537
+ ],
+ "loc": {
+ "start": {
+ "line": 268,
+ "column": 4
+ },
+ "end": {
+ "line": 268,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "select",
+ "range": [
+ 7553,
+ 7559
+ ],
+ "loc": {
+ "start": {
+ "line": 269,
+ "column": 14
+ },
+ "end": {
+ "line": 269,
+ "column": 20
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 7543,
+ 7549
+ ],
+ "loc": {
+ "start": {
+ "line": 269,
+ "column": 4
+ },
+ "end": {
+ "line": 269,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 7543,
+ 7559
+ ],
+ "loc": {
+ "start": {
+ "line": 269,
+ "column": 4
+ },
+ "end": {
+ "line": 269,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "selectLimit",
+ "range": [
+ 7580,
+ 7591
+ ],
+ "loc": {
+ "start": {
+ "line": 270,
+ "column": 19
+ },
+ "end": {
+ "line": 270,
+ "column": 30
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filterLimit",
+ "range": [
+ 7565,
+ 7576
+ ],
+ "loc": {
+ "start": {
+ "line": 270,
+ "column": 4
+ },
+ "end": {
+ "line": 270,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7565,
+ 7591
+ ],
+ "loc": {
+ "start": {
+ "line": 270,
+ "column": 4
+ },
+ "end": {
+ "line": 270,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "selectSeries",
+ "range": [
+ 7613,
+ 7625
+ ],
+ "loc": {
+ "start": {
+ "line": 271,
+ "column": 20
+ },
+ "end": {
+ "line": 271,
+ "column": 32
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "filterSeries",
+ "range": [
+ 7597,
+ 7609
+ ],
+ "loc": {
+ "start": {
+ "line": 271,
+ "column": 4
+ },
+ "end": {
+ "line": 271,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7597,
+ 7625
+ ],
+ "loc": {
+ "start": {
+ "line": 271,
+ "column": 4
+ },
+ "end": {
+ "line": 271,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExportSpecifier",
+ "exported": {
+ "type": "Identifier",
+ "name": "wrapSync",
+ "range": [
+ 7643,
+ 7651
+ ],
+ "loc": {
+ "start": {
+ "line": 272,
+ "column": 16
+ },
+ "end": {
+ "line": 272,
+ "column": 24
+ }
+ }
+ },
+ "local": {
+ "type": "Identifier",
+ "name": "asyncify",
+ "range": [
+ 7631,
+ 7639
+ ],
+ "loc": {
+ "start": {
+ "line": 272,
+ "column": 4
+ },
+ "end": {
+ "line": 272,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 7631,
+ 7651
+ ],
+ "loc": {
+ "start": {
+ "line": 272,
+ "column": 4
+ },
+ "end": {
+ "line": 272,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "source": null,
+ "range": [
+ 5102,
+ 7654
+ ],
+ "loc": {
+ "start": {
+ "line": 175,
+ "column": 0
+ },
+ "end": {
+ "line": 273,
+ "column": 2
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 324,
+ 7654
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 273,
+ "column": 2
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @namespace async\n ",
+ "range": [
+ 0,
+ 323
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " aliases",
+ "range": [
+ 4718,
+ 4728
+ ],
+ "loc": {
+ "start": {
+ "line": 157,
+ "column": 4
+ },
+ "end": {
+ "line": 157,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Aliases",
+ "range": [
+ 7046,
+ 7056
+ ],
+ "loc": {
+ "start": {
+ "line": 250,
+ "column": 4
+ },
+ "end": {
+ "line": 250,
+ "column": 14
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/applyEach.js.json b/docs/ast/source/internal/applyEach.js.json
new file mode 100644
index 0000000..cde8b6f
--- /dev/null
+++ b/docs/ast/source/internal/applyEach.js.json
@@ -0,0 +1,1288 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 39,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 39,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./initialParams",
+ "raw": "'./initialParams'",
+ "range": [
+ 58,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 26
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 32,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "applyEach",
+ "range": [
+ 102,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 112,
+ 118
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 34
+ },
+ "end": {
+ "line": 4,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 133,
+ 137
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fns",
+ "range": [
+ 147,
+ 150
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 25
+ },
+ "end": {
+ "line": 5,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 152,
+ 156
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 30
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "go",
+ "range": [
+ 172,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 177,
+ 190
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 200,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 40
+ },
+ "end": {
+ "line": 6,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 206,
+ 214
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 46
+ },
+ "end": {
+ "line": 6,
+ "column": 54
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "that",
+ "range": [
+ 234,
+ 238
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "ThisExpression",
+ "range": [
+ 241,
+ 245
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 23
+ },
+ "end": {
+ "line": 7,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 234,
+ 245
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 230,
+ 246
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 12
+ },
+ "end": {
+ "line": 7,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 266,
+ 272
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 19
+ },
+ "end": {
+ "line": 8,
+ "column": 25
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "fns",
+ "range": [
+ 273,
+ 276
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 26
+ },
+ "end": {
+ "line": 8,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 288,
+ 290
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 41
+ },
+ "end": {
+ "line": 8,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 292,
+ 294
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 45
+ },
+ "end": {
+ "line": 8,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 314,
+ 316
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 317,
+ 322
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 314,
+ 322
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "that",
+ "range": [
+ 323,
+ 327
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 25
+ },
+ "end": {
+ "line": 9,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 329,
+ 333
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 31
+ },
+ "end": {
+ "line": 9,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 334,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 36
+ },
+ "end": {
+ "line": 9,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 329,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 31
+ },
+ "end": {
+ "line": 9,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 342,
+ 344
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 44
+ },
+ "end": {
+ "line": 9,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 341,
+ 345
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 43
+ },
+ "end": {
+ "line": 9,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 329,
+ 346
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 31
+ },
+ "end": {
+ "line": 9,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 314,
+ 347
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 314,
+ 348
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 296,
+ 362
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 49
+ },
+ "end": {
+ "line": 10,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 278,
+ 362
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 31
+ },
+ "end": {
+ "line": 10,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 364,
+ 372
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 15
+ },
+ "end": {
+ "line": 10,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 266,
+ 373
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 19
+ },
+ "end": {
+ "line": 10,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 259,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 12
+ },
+ "end": {
+ "line": 10,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 216,
+ 384
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 56
+ },
+ "end": {
+ "line": 11,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 191,
+ 384
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 31
+ },
+ "end": {
+ "line": 11,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 177,
+ 385
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 11,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 172,
+ 385
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 168,
+ 386
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 399,
+ 403
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 404,
+ 410
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 17
+ },
+ "end": {
+ "line": 12,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 399,
+ 410
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "go",
+ "range": [
+ 433,
+ 435
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 19
+ },
+ "end": {
+ "line": 13,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 436,
+ 441
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 22
+ },
+ "end": {
+ "line": 13,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 433,
+ 441
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 19
+ },
+ "end": {
+ "line": 13,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 442,
+ 446
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 28
+ },
+ "end": {
+ "line": 13,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 448,
+ 452
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 34
+ },
+ "end": {
+ "line": 13,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 433,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 19
+ },
+ "end": {
+ "line": 13,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 426,
+ 454
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 412,
+ 464
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 25
+ },
+ "end": {
+ "line": 14,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "go",
+ "range": [
+ 499,
+ 501
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 19
+ },
+ "end": {
+ "line": 16,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 492,
+ 502
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 12
+ },
+ "end": {
+ "line": 16,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 478,
+ 512
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 13
+ },
+ "end": {
+ "line": 17,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 395,
+ 512
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 158,
+ 518
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 36
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 138,
+ 518
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 16
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 133,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 18,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 126,
+ 520
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 18,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 120,
+ 522
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 42
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 93,
+ 522
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 15
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 78,
+ 522
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 522
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/concat.js.json b/docs/ast/source/internal/concat.js.json
new file mode 100644
index 0000000..8c43153
--- /dev/null
+++ b/docs/ast/source/internal/concat.js.json
@@ -0,0 +1,960 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 24,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 31,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 31
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 39,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 39
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 44,
+ 46
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 44
+ },
+ "end": {
+ "line": 1,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 48,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 48
+ },
+ "end": {
+ "line": 1,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 68,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 8
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 77,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 68,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 8
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 64,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 85,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 3,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 92,
+ 95
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 11
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 107,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 26
+ },
+ "end": {
+ "line": 3,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 110,
+ 115
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 29
+ },
+ "end": {
+ "line": 3,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 117,
+ 119
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 36
+ },
+ "end": {
+ "line": 3,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 131,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 8
+ },
+ "end": {
+ "line": 4,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 134,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 147,
+ 150
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "y",
+ "range": [
+ 152,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 29
+ },
+ "end": {
+ "line": 4,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 169,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 12
+ },
+ "end": {
+ "line": 5,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 178,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 21
+ },
+ "end": {
+ "line": 5,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 185,
+ 191
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 28
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 178,
+ 191
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 21
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "y",
+ "range": [
+ 192,
+ 193
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 35
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 197,
+ 199
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 40
+ },
+ "end": {
+ "line": 5,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 192,
+ 199
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 35
+ },
+ "end": {
+ "line": 5,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 178,
+ 200
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 21
+ },
+ "end": {
+ "line": 5,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 169,
+ 200
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 12
+ },
+ "end": {
+ "line": 5,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 169,
+ 201
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 12
+ },
+ "end": {
+ "line": 5,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 214,
+ 216
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 217,
+ 220
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 15
+ },
+ "end": {
+ "line": 6,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 214,
+ 221
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 6,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 214,
+ 222
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 155,
+ 232
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 32
+ },
+ "end": {
+ "line": 7,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 137,
+ 232
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 14
+ },
+ "end": {
+ "line": 7,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 131,
+ 233
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 131,
+ 234
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 121,
+ 240
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 40
+ },
+ "end": {
+ "line": 8,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 97,
+ 240
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 16
+ },
+ "end": {
+ "line": 8,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 252,
+ 255
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 17
+ },
+ "end": {
+ "line": 8,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 267,
+ 275
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 276,
+ 279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 17
+ },
+ "end": {
+ "line": 9,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 281,
+ 287
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 22
+ },
+ "end": {
+ "line": 9,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 267,
+ 288
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 267,
+ 289
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 257,
+ 295
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 22
+ },
+ "end": {
+ "line": 10,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 242,
+ 295
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 85,
+ 296
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 10,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 85,
+ 297
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 10,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 58,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 58
+ },
+ "end": {
+ "line": 11,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 11,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 11,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 11,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/consoleFunc.js.json b/docs/ast/source/internal/consoleFunc.js.json
new file mode 100644
index 0000000..a3a3bc8
--- /dev/null
+++ b/docs/ast/source/internal/consoleFunc.js.json
@@ -0,0 +1,1402 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayEach",
+ "raw": "'lodash/_arrayEach'",
+ "range": [
+ 22,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 0,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 50,
+ 54
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 50,
+ 54
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 60,
+ 73
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 43,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "consoleFunc",
+ "range": [
+ 100,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 35
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 112,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 36
+ },
+ "end": {
+ "line": 4,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 131,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 146,
+ 148
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 150,
+ 154
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 30
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 166,
+ 168
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 10
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 169,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 166,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 175,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 181,
+ 185
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 23
+ },
+ "end": {
+ "line": 6,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 186,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 28
+ },
+ "end": {
+ "line": 6,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 181,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 23
+ },
+ "end": {
+ "line": 6,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 194,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 36
+ },
+ "end": {
+ "line": 6,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 209,
+ 212
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 51
+ },
+ "end": {
+ "line": 6,
+ "column": 54
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 214,
+ 218
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 56
+ },
+ "end": {
+ "line": 6,
+ "column": 60
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "console",
+ "range": [
+ 245,
+ 252
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 23
+ },
+ "end": {
+ "line": 7,
+ "column": 30
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 238,
+ 252
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 30
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "object",
+ "raw": "'object'",
+ "range": [
+ 257,
+ 265
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 35
+ },
+ "end": {
+ "line": 7,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 238,
+ 265
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 43
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 289,
+ 292
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 20
+ },
+ "end": {
+ "line": 8,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "console",
+ "range": [
+ 320,
+ 327
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 24
+ },
+ "end": {
+ "line": 9,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 328,
+ 333
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 32
+ },
+ "end": {
+ "line": 9,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 320,
+ 333
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 24
+ },
+ "end": {
+ "line": 9,
+ "column": 37
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "console",
+ "range": [
+ 361,
+ 368
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 369,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 32
+ },
+ "end": {
+ "line": 10,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 361,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 375,
+ 378
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 38
+ },
+ "end": {
+ "line": 10,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 361,
+ 379
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 361,
+ 380
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 335,
+ 402
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 39
+ },
+ "end": {
+ "line": 11,
+ "column": 21
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 316,
+ 402
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 294,
+ 420
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 25
+ },
+ "end": {
+ "line": 12,
+ "column": 17
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "console",
+ "range": [
+ 446,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 25
+ },
+ "end": {
+ "line": 13,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 454,
+ 458
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 33
+ },
+ "end": {
+ "line": 13,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 446,
+ 459
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 25
+ },
+ "end": {
+ "line": 13,
+ "column": 38
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 483,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 20
+ },
+ "end": {
+ "line": 14,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 493,
+ 497
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 30
+ },
+ "end": {
+ "line": 14,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 509,
+ 510
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 46
+ },
+ "end": {
+ "line": 14,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "console",
+ "range": [
+ 538,
+ 545
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 546,
+ 550
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 32
+ },
+ "end": {
+ "line": 15,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 538,
+ 551
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 552,
+ 553
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 38
+ },
+ "end": {
+ "line": 15,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 538,
+ 554
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 538,
+ 555
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 512,
+ 577
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 49
+ },
+ "end": {
+ "line": 16,
+ "column": 21
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 499,
+ 577
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 36
+ },
+ "end": {
+ "line": 16,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 483,
+ 578
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 20
+ },
+ "end": {
+ "line": 16,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 483,
+ 579
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 20
+ },
+ "end": {
+ "line": 16,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 461,
+ 597
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 40
+ },
+ "end": {
+ "line": 17,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 442,
+ 597
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 21
+ },
+ "end": {
+ "line": 17,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 285,
+ 597
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 16
+ },
+ "end": {
+ "line": 17,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 267,
+ 611
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 45
+ },
+ "end": {
+ "line": 18,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 234,
+ 611
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 12
+ },
+ "end": {
+ "line": 18,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 220,
+ 621
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 62
+ },
+ "end": {
+ "line": 19,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 199,
+ 621
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 41
+ },
+ "end": {
+ "line": 19,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 194,
+ 622
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 36
+ },
+ "end": {
+ "line": 19,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 193,
+ 623
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 35
+ },
+ "end": {
+ "line": 19,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 181,
+ 624
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 23
+ },
+ "end": {
+ "line": 19,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "range": [
+ 166,
+ 625
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 19,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 166,
+ 626
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 19,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 156,
+ 632
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 36
+ },
+ "end": {
+ "line": 20,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 136,
+ 632
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 16
+ },
+ "end": {
+ "line": 20,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 131,
+ 633
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 20,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 124,
+ 634
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 118,
+ 636
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 42
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 91,
+ 636
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 76,
+ 636
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 636
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/createTester.js.json b/docs/ast/source/internal/createTester.js.json
new file mode 100644
index 0000000..f641c05
--- /dev/null
+++ b/docs/ast/source/internal/createTester.js.json
@@ -0,0 +1,2590 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "Literal",
+ "value": "use strict",
+ "raw": "'use strict'",
+ "range": [
+ 0,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 0,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 21,
+ 25
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 21,
+ 25
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 31,
+ 44
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 14,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_createTester",
+ "range": [
+ 71,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 37
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 85,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 38
+ },
+ "end": {
+ "line": 4,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "check",
+ "range": [
+ 93,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 46
+ },
+ "end": {
+ "line": 4,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "getResult",
+ "range": [
+ 100,
+ 109
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 53
+ },
+ "end": {
+ "line": 4,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 133,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 20
+ },
+ "end": {
+ "line": 5,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 138,
+ 143
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 25
+ },
+ "end": {
+ "line": 5,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 145,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 32
+ },
+ "end": {
+ "line": 5,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 155,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 42
+ },
+ "end": {
+ "line": 5,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 178,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 21
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 183,
+ 186
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 22
+ },
+ "end": {
+ "line": 6,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 206,
+ 208
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 18
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 232,
+ 235
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 20
+ },
+ "end": {
+ "line": 8,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 259,
+ 261
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 20
+ },
+ "end": {
+ "line": 9,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 262,
+ 265
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 23
+ },
+ "end": {
+ "line": 9,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 259,
+ 266
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 20
+ },
+ "end": {
+ "line": 9,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 259,
+ 267
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 20
+ },
+ "end": {
+ "line": 9,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 237,
+ 285
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 25
+ },
+ "end": {
+ "line": 10,
+ "column": 17
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 313,
+ 315
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 316,
+ 320
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 23
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "getResult",
+ "range": [
+ 322,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 29
+ },
+ "end": {
+ "line": 11,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 332,
+ 337
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 39
+ },
+ "end": {
+ "line": 11,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 322,
+ 338
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 29
+ },
+ "end": {
+ "line": 11,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 313,
+ 339
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 313,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 291,
+ 358
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 23
+ },
+ "end": {
+ "line": 12,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 228,
+ 358
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 16
+ },
+ "end": {
+ "line": 12,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 210,
+ 372
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 202,
+ 372
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 188,
+ 382
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 27
+ },
+ "end": {
+ "line": 14,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 169,
+ 382
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 14,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "wrappedIteratee",
+ "range": [
+ 400,
+ 415
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 17
+ },
+ "end": {
+ "line": 15,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 416,
+ 417
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 33
+ },
+ "end": {
+ "line": 15,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "_",
+ "range": [
+ 419,
+ 420
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 36
+ },
+ "end": {
+ "line": 15,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 422,
+ 430
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 39
+ },
+ "end": {
+ "line": 15,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 451,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 17
+ },
+ "end": {
+ "line": 16,
+ "column": 19
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 450,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 16
+ },
+ "end": {
+ "line": 16,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 462,
+ 470
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 28
+ },
+ "end": {
+ "line": 16,
+ "column": 36
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 462,
+ 472
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 28
+ },
+ "end": {
+ "line": 16,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 455,
+ 473
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 21
+ },
+ "end": {
+ "line": 16,
+ "column": 39
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 446,
+ 473
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 12
+ },
+ "end": {
+ "line": 16,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 486,
+ 494
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 12
+ },
+ "end": {
+ "line": 17,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 495,
+ 496
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 21
+ },
+ "end": {
+ "line": 17,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 508,
+ 511
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 34
+ },
+ "end": {
+ "line": 17,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 513,
+ 514
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 39
+ },
+ "end": {
+ "line": 17,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 538,
+ 540
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 20
+ },
+ "end": {
+ "line": 18,
+ "column": 22
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 568,
+ 571
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 24
+ },
+ "end": {
+ "line": 19,
+ "column": 27
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 599,
+ 601
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 602,
+ 605
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 27
+ },
+ "end": {
+ "line": 20,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 599,
+ 606
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 599,
+ 607
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 632,
+ 634
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 24
+ },
+ "end": {
+ "line": 21,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 637,
+ 645
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 29
+ },
+ "end": {
+ "line": 21,
+ "column": 37
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 648,
+ 653
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 40
+ },
+ "end": {
+ "line": 21,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 637,
+ 653
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 29
+ },
+ "end": {
+ "line": 21,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 632,
+ 653
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 24
+ },
+ "end": {
+ "line": 21,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 632,
+ 654
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 24
+ },
+ "end": {
+ "line": 21,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 573,
+ 676
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 29
+ },
+ "end": {
+ "line": 22,
+ "column": 21
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "check",
+ "range": [
+ 686,
+ 691
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 31
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 692,
+ 693
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 37
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 686,
+ 694
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 31
+ },
+ "end": {
+ "line": 22,
+ "column": 39
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 722,
+ 724
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 24
+ },
+ "end": {
+ "line": 23,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 725,
+ 729
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 27
+ },
+ "end": {
+ "line": 23,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "getResult",
+ "range": [
+ 731,
+ 740
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 33
+ },
+ "end": {
+ "line": 23,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 741,
+ 745
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 43
+ },
+ "end": {
+ "line": 23,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 747,
+ 748
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 49
+ },
+ "end": {
+ "line": 23,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 731,
+ 749
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 33
+ },
+ "end": {
+ "line": 23,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 722,
+ 750
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 24
+ },
+ "end": {
+ "line": 23,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 722,
+ 751
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 24
+ },
+ "end": {
+ "line": 23,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 776,
+ 778
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 24,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 781,
+ 789
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 29
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 792,
+ 797
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 40
+ },
+ "end": {
+ "line": 24,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 781,
+ 797
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 29
+ },
+ "end": {
+ "line": 24,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 776,
+ 797
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 24,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 776,
+ 798
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 24,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 696,
+ 820
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 41
+ },
+ "end": {
+ "line": 25,
+ "column": 21
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 682,
+ 820
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 27
+ },
+ "end": {
+ "line": 25,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 564,
+ 820
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 20
+ },
+ "end": {
+ "line": 25,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 542,
+ 838
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 24
+ },
+ "end": {
+ "line": 26,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 534,
+ 838
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 16
+ },
+ "end": {
+ "line": 26,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 855,
+ 863
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 855,
+ 865
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 855,
+ 866
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 516,
+ 880
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 42
+ },
+ "end": {
+ "line": 28,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 498,
+ 880
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 24
+ },
+ "end": {
+ "line": 28,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 486,
+ 881
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 12
+ },
+ "end": {
+ "line": 28,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 486,
+ 882
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 12
+ },
+ "end": {
+ "line": 28,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 432,
+ 892
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 49
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 391,
+ 892
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 905,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 12
+ },
+ "end": {
+ "line": 30,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 915,
+ 921
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 22
+ },
+ "end": {
+ "line": 30,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 905,
+ 921
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 12
+ },
+ "end": {
+ "line": 30,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 3,
+ "raw": "3",
+ "range": [
+ 924,
+ 925
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 31
+ },
+ "end": {
+ "line": 30,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 905,
+ 925
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 12
+ },
+ "end": {
+ "line": 30,
+ "column": 32
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 941,
+ 943
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 946,
+ 948
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 17
+ },
+ "end": {
+ "line": 31,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 952,
+ 956
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 23
+ },
+ "end": {
+ "line": 31,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 946,
+ 956
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 17
+ },
+ "end": {
+ "line": 31,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 941,
+ 956
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 941,
+ 957
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 970,
+ 976
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 977,
+ 980
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 19
+ },
+ "end": {
+ "line": 32,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 982,
+ 987
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 24
+ },
+ "end": {
+ "line": 32,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "wrappedIteratee",
+ "range": [
+ 989,
+ 1004
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 31
+ },
+ "end": {
+ "line": 32,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 1006,
+ 1010
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 48
+ },
+ "end": {
+ "line": 32,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 970,
+ 1011
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 970,
+ 1012
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 54
+ }
+ }
+ }
+ ],
+ "range": [
+ 927,
+ 1022
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 34
+ },
+ "end": {
+ "line": 33,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1042,
+ 1044
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1047,
+ 1055
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 17
+ },
+ "end": {
+ "line": 34,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1042,
+ 1055
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1042,
+ 1056
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1069,
+ 1071
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 12
+ },
+ "end": {
+ "line": 35,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1074,
+ 1076
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 17
+ },
+ "end": {
+ "line": 35,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1080,
+ 1084
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 23
+ },
+ "end": {
+ "line": 35,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1074,
+ 1084
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 17
+ },
+ "end": {
+ "line": 35,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1069,
+ 1084
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 12
+ },
+ "end": {
+ "line": 35,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1069,
+ 1085
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 12
+ },
+ "end": {
+ "line": 35,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1098,
+ 1106
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 12
+ },
+ "end": {
+ "line": 36,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 1109,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 23
+ },
+ "end": {
+ "line": 36,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1098,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 12
+ },
+ "end": {
+ "line": 36,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1098,
+ 1115
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 12
+ },
+ "end": {
+ "line": 36,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 1128,
+ 1134
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 1135,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 19
+ },
+ "end": {
+ "line": 37,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "wrappedIteratee",
+ "range": [
+ 1140,
+ 1155
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 24
+ },
+ "end": {
+ "line": 37,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 1157,
+ 1161
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 41
+ },
+ "end": {
+ "line": 37,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 1128,
+ 1162
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 1128,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 1028,
+ 1173
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 15
+ },
+ "end": {
+ "line": 38,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 901,
+ 1173
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 38,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 159,
+ 1179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 46
+ },
+ "end": {
+ "line": 39,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 124,
+ 1179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 39,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 117,
+ 1180
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 39,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 111,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 64
+ },
+ "end": {
+ "line": 40,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 62,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 15
+ },
+ "end": {
+ "line": 40,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 47,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 40,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/doLimit.js.json b/docs/ast/source/internal/doLimit.js.json
new file mode 100644
index 0000000..b816bb6
--- /dev/null
+++ b/docs/ast/source/internal/doLimit.js.json
@@ -0,0 +1,372 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 24,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 32,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 32
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 36,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 36
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "iterable",
+ "range": [
+ 66,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 76,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 31
+ },
+ "end": {
+ "line": 2,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 86,
+ 94
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 41
+ },
+ "end": {
+ "line": 2,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 113,
+ 115
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "iterable",
+ "range": [
+ 116,
+ 124
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 18
+ },
+ "end": {
+ "line": 3,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 126,
+ 131
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 28
+ },
+ "end": {
+ "line": 3,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 133,
+ 141
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 35
+ },
+ "end": {
+ "line": 3,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 143,
+ 151
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 45
+ },
+ "end": {
+ "line": 3,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "range": [
+ 113,
+ 152
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 54
+ }
+ }
+ },
+ "range": [
+ 106,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 8
+ },
+ "end": {
+ "line": 3,
+ "column": 55
+ }
+ }
+ }
+ ],
+ "range": [
+ 96,
+ 159
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 51
+ },
+ "end": {
+ "line": 4,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 56,
+ 159
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 49,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 4,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 43,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 43
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/doParallel.js.json b/docs/ast/source/internal/doParallel.js.json
new file mode 100644
index 0000000..b016785
--- /dev/null
+++ b/docs/ast/source/internal/doParallel.js.json
@@ -0,0 +1,427 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "../eachOf",
+ "raw": "'../eachOf'",
+ "range": [
+ 19,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doParallel",
+ "range": [
+ 57,
+ 67
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 24
+ },
+ "end": {
+ "line": 3,
+ "column": 34
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 68,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 35
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 95,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 100,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 26
+ },
+ "end": {
+ "line": 4,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 110,
+ 118
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 36
+ },
+ "end": {
+ "line": 4,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 137,
+ 139
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 140,
+ 146
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 148,
+ 151
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 153,
+ 161
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 31
+ },
+ "end": {
+ "line": 5,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 163,
+ 171
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 41
+ },
+ "end": {
+ "line": 5,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 137,
+ 172
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 130,
+ 173
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 120,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 46
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 85,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 78,
+ 180
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 72,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 39
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 48,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 33,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/doParallelLimit.js.json b/docs/ast/source/internal/doParallelLimit.js.json
new file mode 100644
index 0000000..2799f7d
--- /dev/null
+++ b/docs/ast/source/internal/doParallelLimit.js.json
@@ -0,0 +1,482 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 66,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 24
+ },
+ "end": {
+ "line": 3,
+ "column": 39
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 82,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 40
+ },
+ "end": {
+ "line": 3,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 109,
+ 112
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 114,
+ 119
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 26
+ },
+ "end": {
+ "line": 4,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 121,
+ 129
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 33
+ },
+ "end": {
+ "line": 4,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 131,
+ 139
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 43
+ },
+ "end": {
+ "line": 4,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 158,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 161,
+ 172
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 173,
+ 178
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 30
+ },
+ "end": {
+ "line": 5,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 161,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 181,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 38
+ },
+ "end": {
+ "line": 5,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 186,
+ 194
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 43
+ },
+ "end": {
+ "line": 5,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 196,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 53
+ },
+ "end": {
+ "line": 5,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 158,
+ 205
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 151,
+ 206
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 63
+ }
+ }
+ }
+ ],
+ "range": [
+ 141,
+ 212
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 53
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 99,
+ 212
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 92,
+ 213
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 86,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 44
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 57,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 42,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/doSeries.js.json b/docs/ast/source/internal/doSeries.js.json
new file mode 100644
index 0000000..53a9876
--- /dev/null
+++ b/docs/ast/source/internal/doSeries.js.json
@@ -0,0 +1,427 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "../eachOfSeries",
+ "raw": "'../eachOfSeries'",
+ "range": [
+ 25,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 0,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "doSeries",
+ "range": [
+ 69,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 24
+ },
+ "end": {
+ "line": 3,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 78,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 33
+ },
+ "end": {
+ "line": 3,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 105,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 110,
+ 118
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 26
+ },
+ "end": {
+ "line": 4,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 120,
+ 128
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 36
+ },
+ "end": {
+ "line": 4,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 147,
+ 149
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 150,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 164,
+ 167
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 32
+ },
+ "end": {
+ "line": 5,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 169,
+ 177
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 37
+ },
+ "end": {
+ "line": 5,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 179,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 47
+ },
+ "end": {
+ "line": 5,
+ "column": 55
+ }
+ }
+ }
+ ],
+ "range": [
+ 147,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 140,
+ 189
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "range": [
+ 130,
+ 195
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 46
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 95,
+ 195
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 88,
+ 196
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 82,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 37
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 60,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 45,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/eachOfLimit.js.json b/docs/ast/source/internal/eachOfLimit.js.json
new file mode 100644
index 0000000..526157e
--- /dev/null
+++ b/docs/ast/source/internal/eachOfLimit.js.json
@@ -0,0 +1,2875 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./once",
+ "raw": "'./once'",
+ "range": [
+ 49,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 32,
+ 58
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 67,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 67,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./iterator",
+ "raw": "'./iterator'",
+ "range": [
+ 81,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 60,
+ 94
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 102,
+ 110
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 102,
+ 110
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./onlyOnce",
+ "raw": "'./onlyOnce'",
+ "range": [
+ 116,
+ 128
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 21
+ },
+ "end": {
+ "line": 5,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 95,
+ 129
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_eachOfLimit",
+ "range": [
+ 155,
+ 167
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 24
+ },
+ "end": {
+ "line": 7,
+ "column": 36
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 168,
+ 173
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 37
+ },
+ "end": {
+ "line": 7,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 198,
+ 201
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 21
+ },
+ "end": {
+ "line": 8,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 203,
+ 211
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 26
+ },
+ "end": {
+ "line": 8,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 213,
+ 221
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 36
+ },
+ "end": {
+ "line": 8,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 233,
+ 241
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 244,
+ 248
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 249,
+ 257
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 24
+ },
+ "end": {
+ "line": 9,
+ "column": 32
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 261,
+ 265
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 36
+ },
+ "end": {
+ "line": 9,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 249,
+ 265
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 24
+ },
+ "end": {
+ "line": 9,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 244,
+ 266
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 233,
+ 266
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 233,
+ 267
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 276,
+ 279
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 10,
+ "column": 11
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 282,
+ 285
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 14
+ },
+ "end": {
+ "line": 10,
+ "column": 17
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 289,
+ 291
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 21
+ },
+ "end": {
+ "line": 10,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 282,
+ 291
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 14
+ },
+ "end": {
+ "line": 10,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 276,
+ 291
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 10,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 276,
+ 292
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 10,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "nextElem",
+ "range": [
+ 305,
+ 313
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 316,
+ 324
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 23
+ },
+ "end": {
+ "line": 11,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 325,
+ 328
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 32
+ },
+ "end": {
+ "line": 11,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 316,
+ 329
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 23
+ },
+ "end": {
+ "line": 11,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 305,
+ 329
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 301,
+ 330
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 343,
+ 348
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 17
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 352,
+ 353
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 21
+ },
+ "end": {
+ "line": 12,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 343,
+ 353
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 22
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 376,
+ 384
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 19
+ },
+ "end": {
+ "line": 13,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 385,
+ 389
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 28
+ },
+ "end": {
+ "line": 13,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 376,
+ 390
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 19
+ },
+ "end": {
+ "line": 13,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 369,
+ 391
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 355,
+ 401
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 24
+ },
+ "end": {
+ "line": 14,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 339,
+ 401
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 14,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 414,
+ 418
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 421,
+ 426
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 19
+ },
+ "end": {
+ "line": 15,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 414,
+ 426
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 410,
+ 427
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 8
+ },
+ "end": {
+ "line": 15,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 440,
+ 447
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 12
+ },
+ "end": {
+ "line": 16,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 450,
+ 451
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 22
+ },
+ "end": {
+ "line": 16,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 440,
+ 451
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 12
+ },
+ "end": {
+ "line": 16,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 436,
+ 452
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "errored",
+ "range": [
+ 465,
+ 472
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 12
+ },
+ "end": {
+ "line": 17,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 475,
+ 480
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 22
+ },
+ "end": {
+ "line": 17,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 465,
+ 480
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 12
+ },
+ "end": {
+ "line": 17,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 461,
+ 481
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "replenish",
+ "range": [
+ 501,
+ 510
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 18
+ },
+ "end": {
+ "line": 19,
+ "column": 27
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 532,
+ 536
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 16
+ },
+ "end": {
+ "line": 20,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 540,
+ 547
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 551,
+ 552
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 35
+ },
+ "end": {
+ "line": 20,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 540,
+ 552
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 24
+ },
+ "end": {
+ "line": 20,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 532,
+ 552
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 16
+ },
+ "end": {
+ "line": 20,
+ "column": 36
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 579,
+ 587
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 23
+ },
+ "end": {
+ "line": 21,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 588,
+ 592
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 32
+ },
+ "end": {
+ "line": 21,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 579,
+ 593
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 23
+ },
+ "end": {
+ "line": 21,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 572,
+ 594
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 16
+ },
+ "end": {
+ "line": 21,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 554,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 38
+ },
+ "end": {
+ "line": 22,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 528,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 12
+ },
+ "end": {
+ "line": 22,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "WhileStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 629,
+ 636
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 19
+ },
+ "end": {
+ "line": 24,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 639,
+ 644
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 29
+ },
+ "end": {
+ "line": 24,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 629,
+ 644
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 19
+ },
+ "end": {
+ "line": 24,
+ "column": 34
+ }
+ }
+ },
+ "right": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "errored",
+ "range": [
+ 649,
+ 656
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 39
+ },
+ "end": {
+ "line": 24,
+ "column": 46
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 648,
+ 656
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 38
+ },
+ "end": {
+ "line": 24,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 629,
+ 656
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 19
+ },
+ "end": {
+ "line": 24,
+ "column": 46
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "elem",
+ "range": [
+ 680,
+ 684
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 20
+ },
+ "end": {
+ "line": 25,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "nextElem",
+ "range": [
+ 687,
+ 695
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 27
+ },
+ "end": {
+ "line": 25,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 687,
+ 697
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 27
+ },
+ "end": {
+ "line": 25,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 680,
+ 697
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 20
+ },
+ "end": {
+ "line": 25,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 676,
+ 698
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 16
+ },
+ "end": {
+ "line": 25,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "elem",
+ "range": [
+ 719,
+ 723
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 20
+ },
+ "end": {
+ "line": 26,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 728,
+ 732
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 29
+ },
+ "end": {
+ "line": 26,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 719,
+ 732
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 20
+ },
+ "end": {
+ "line": 26,
+ "column": 33
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 756,
+ 760
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 20
+ },
+ "end": {
+ "line": 27,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 763,
+ 767
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 27
+ },
+ "end": {
+ "line": 27,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 756,
+ 767
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 20
+ },
+ "end": {
+ "line": 27,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 756,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 20
+ },
+ "end": {
+ "line": 27,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 793,
+ 800
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 24
+ },
+ "end": {
+ "line": 28,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 804,
+ 805
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 35
+ },
+ "end": {
+ "line": 28,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 793,
+ 805
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 24
+ },
+ "end": {
+ "line": 28,
+ "column": 36
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 833,
+ 841
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 24
+ },
+ "end": {
+ "line": 29,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 842,
+ 846
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 33
+ },
+ "end": {
+ "line": 29,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 833,
+ 847
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 24
+ },
+ "end": {
+ "line": 29,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 833,
+ 848
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 24
+ },
+ "end": {
+ "line": 29,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 807,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 38
+ },
+ "end": {
+ "line": 30,
+ "column": 21
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 789,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 20
+ },
+ "end": {
+ "line": 30,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 891,
+ 898
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 20
+ },
+ "end": {
+ "line": 31,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 734,
+ 916
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 35
+ },
+ "end": {
+ "line": 32,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 715,
+ 916
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 16
+ },
+ "end": {
+ "line": 32,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "+=",
+ "left": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 933,
+ 940
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 16
+ },
+ "end": {
+ "line": 33,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 944,
+ 945
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 27
+ },
+ "end": {
+ "line": 33,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 933,
+ 945
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 16
+ },
+ "end": {
+ "line": 33,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 933,
+ 946
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 16
+ },
+ "end": {
+ "line": 33,
+ "column": 29
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": " eslint {no-loop-func: 0} ",
+ "range": [
+ 963,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 16
+ },
+ "end": {
+ "line": 34,
+ "column": 46
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1010,
+ 1018
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 16
+ },
+ "end": {
+ "line": 35,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "elem",
+ "range": [
+ 1019,
+ 1023
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 25
+ },
+ "end": {
+ "line": 35,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1024,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 30
+ },
+ "end": {
+ "line": 35,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1019,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 25
+ },
+ "end": {
+ "line": 35,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "elem",
+ "range": [
+ 1031,
+ 1035
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 37
+ },
+ "end": {
+ "line": 35,
+ "column": 41
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1036,
+ 1039
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 42
+ },
+ "end": {
+ "line": 35,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1031,
+ 1039
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 37
+ },
+ "end": {
+ "line": 35,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 1041,
+ 1049
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 47
+ },
+ "end": {
+ "line": 35,
+ "column": 55
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1060,
+ 1063
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 66
+ },
+ "end": {
+ "line": 35,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "-=",
+ "left": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 1087,
+ 1094
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 20
+ },
+ "end": {
+ "line": 36,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1098,
+ 1099
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 31
+ },
+ "end": {
+ "line": 36,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1087,
+ 1099
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 20
+ },
+ "end": {
+ "line": 36,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1087,
+ 1100
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 20
+ },
+ "end": {
+ "line": 36,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1125,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 24
+ },
+ "end": {
+ "line": 37,
+ "column": 27
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1156,
+ 1164
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1165,
+ 1168
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 33
+ },
+ "end": {
+ "line": 38,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1156,
+ 1169
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1156,
+ 1170
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "errored",
+ "range": [
+ 1195,
+ 1202
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 1205,
+ 1209
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 34
+ },
+ "end": {
+ "line": 39,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1195,
+ 1209
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1195,
+ 1210
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 24
+ },
+ "end": {
+ "line": 39,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 1130,
+ 1232
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 29
+ },
+ "end": {
+ "line": 40,
+ "column": 21
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "replenish",
+ "range": [
+ 1284,
+ 1293
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 33
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1284,
+ 1295
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1284,
+ 1296
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1258,
+ 1318
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 25
+ },
+ "end": {
+ "line": 43,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1121,
+ 1318
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 20
+ },
+ "end": {
+ "line": 43,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1065,
+ 1336
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 71
+ },
+ "end": {
+ "line": 44,
+ "column": 17
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1050,
+ 1336
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 56
+ },
+ "end": {
+ "line": 44,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1041,
+ 1337
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 47
+ },
+ "end": {
+ "line": 44,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 1010,
+ 1338
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 16
+ },
+ "end": {
+ "line": 44,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 1010,
+ 1339
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 16
+ },
+ "end": {
+ "line": 44,
+ "column": 20
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": " eslint {no-loop-func: 0} ",
+ "range": [
+ 963,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 16
+ },
+ "end": {
+ "line": 34,
+ "column": 46
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 658,
+ 1353
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 48
+ },
+ "end": {
+ "line": 45,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 622,
+ 1353
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 12
+ },
+ "end": {
+ "line": 45,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 514,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 31
+ },
+ "end": {
+ "line": 46,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 492,
+ 1363
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 9
+ },
+ "end": {
+ "line": 46,
+ "column": 9
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 491,
+ 1366
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 8
+ },
+ "end": {
+ "line": 46,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 491,
+ 1367
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 8
+ },
+ "end": {
+ "line": 46,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 223,
+ 1373
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 46
+ },
+ "end": {
+ "line": 47,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 188,
+ 1373
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 11
+ },
+ "end": {
+ "line": 47,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 181,
+ 1374
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 47,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 175,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 44
+ },
+ "end": {
+ "line": 48,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 146,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 131,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": " eslint {no-loop-func: 0} ",
+ "range": [
+ 963,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 16
+ },
+ "end": {
+ "line": 34,
+ "column": 46
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/filter.js.json b/docs/ast/source/internal/filter.js.json
new file mode 100644
index 0000000..e83c4c9
--- /dev/null
+++ b/docs/ast/source/internal/filter.js.json
@@ -0,0 +1,1844 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayMap",
+ "raw": "'lodash/_arrayMap'",
+ "range": [
+ 21,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 48,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 48,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_baseProperty",
+ "raw": "'lodash/_baseProperty'",
+ "range": [
+ 62,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 41,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_filter",
+ "range": [
+ 111,
+ 118
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 119,
+ 125
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 32
+ },
+ "end": {
+ "line": 4,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 127,
+ 130
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 40
+ },
+ "end": {
+ "line": 4,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 132,
+ 140
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 45
+ },
+ "end": {
+ "line": 4,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 142,
+ 150
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 55
+ },
+ "end": {
+ "line": 4,
+ "column": 63
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 162,
+ 169
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 172,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 18
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 162,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 158,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 5,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 180,
+ 186
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 187,
+ 190
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 202,
+ 203
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 26
+ },
+ "end": {
+ "line": 6,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 205,
+ 210
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 29
+ },
+ "end": {
+ "line": 6,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 212,
+ 220
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 36
+ },
+ "end": {
+ "line": 6,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 232,
+ 240
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 241,
+ 242
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 17
+ },
+ "end": {
+ "line": 7,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 254,
+ 257
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 30
+ },
+ "end": {
+ "line": 7,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 259,
+ 260
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 35
+ },
+ "end": {
+ "line": 7,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 280,
+ 283
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 16
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 303,
+ 311
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 312,
+ 315
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 25
+ },
+ "end": {
+ "line": 9,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 303,
+ 316
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 303,
+ 317
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 285,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 21
+ },
+ "end": {
+ "line": 10,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 371,
+ 372
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 20
+ },
+ "end": {
+ "line": 12,
+ "column": 21
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 396,
+ 403
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 404,
+ 408
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 28
+ },
+ "end": {
+ "line": 13,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 396,
+ 408
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 410,
+ 415
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 34
+ },
+ "end": {
+ "line": 13,
+ "column": 39
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 417,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 41
+ },
+ "end": {
+ "line": 13,
+ "column": 46
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 410,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 34
+ },
+ "end": {
+ "line": 13,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 424,
+ 429
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 48
+ },
+ "end": {
+ "line": 13,
+ "column": 53
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 431,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 55
+ },
+ "end": {
+ "line": 13,
+ "column": 56
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 424,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 48
+ },
+ "end": {
+ "line": 13,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 409,
+ 433
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 33
+ },
+ "end": {
+ "line": 13,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "range": [
+ 396,
+ 434
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 396,
+ 435
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 374,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 23
+ },
+ "end": {
+ "line": 14,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 367,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 16
+ },
+ "end": {
+ "line": 14,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 470,
+ 478
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 470,
+ 480
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 470,
+ 481
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 349,
+ 495
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 17
+ },
+ "end": {
+ "line": 16,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 276,
+ 495
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 12
+ },
+ "end": {
+ "line": 16,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 262,
+ 505
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 38
+ },
+ "end": {
+ "line": 17,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 244,
+ 505
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 20
+ },
+ "end": {
+ "line": 17,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 232,
+ 506
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 232,
+ 507
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 222,
+ 513
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 46
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 192,
+ 513
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 16
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 525,
+ 528
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 17
+ },
+ "end": {
+ "line": 18,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 544,
+ 547
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 12
+ },
+ "end": {
+ "line": 19,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 563,
+ 571
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 12
+ },
+ "end": {
+ "line": 20,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 572,
+ 575
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 21
+ },
+ "end": {
+ "line": 20,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 563,
+ 576
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 12
+ },
+ "end": {
+ "line": 20,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 563,
+ 577
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 12
+ },
+ "end": {
+ "line": 20,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 549,
+ 587
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 17
+ },
+ "end": {
+ "line": 21,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 615,
+ 623
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 23,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 624,
+ 628
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 21
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 630,
+ 638
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 27
+ },
+ "end": {
+ "line": 23,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 639,
+ 646
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 36
+ },
+ "end": {
+ "line": 23,
+ "column": 43
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "sort",
+ "range": [
+ 647,
+ 651
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 44
+ },
+ "end": {
+ "line": 23,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 639,
+ 651
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 36
+ },
+ "end": {
+ "line": 23,
+ "column": 48
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 662,
+ 663
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 59
+ },
+ "end": {
+ "line": 23,
+ "column": 60
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 665,
+ 666
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 62
+ },
+ "end": {
+ "line": 23,
+ "column": 63
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 693,
+ 694
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 23
+ },
+ "end": {
+ "line": 24,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 695,
+ 700
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 25
+ },
+ "end": {
+ "line": 24,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 693,
+ 700
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 23
+ },
+ "end": {
+ "line": 24,
+ "column": 30
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 703,
+ 704
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 33
+ },
+ "end": {
+ "line": 24,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 705,
+ 710
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 35
+ },
+ "end": {
+ "line": 24,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 703,
+ 710
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 33
+ },
+ "end": {
+ "line": 24,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 693,
+ 710
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 23
+ },
+ "end": {
+ "line": 24,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 686,
+ 711
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 668,
+ 725
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 65
+ },
+ "end": {
+ "line": 25,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 652,
+ 725
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 49
+ },
+ "end": {
+ "line": 25,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 639,
+ 726
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 36
+ },
+ "end": {
+ "line": 25,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 728,
+ 736
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 16
+ },
+ "end": {
+ "line": 25,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "value",
+ "raw": "'value'",
+ "range": [
+ 737,
+ 744
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 25
+ },
+ "end": {
+ "line": 25,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 728,
+ 745
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 16
+ },
+ "end": {
+ "line": 25,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 630,
+ 746
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 27
+ },
+ "end": {
+ "line": 25,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 615,
+ 747
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 25,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 615,
+ 748
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 25,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 601,
+ 758
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 26,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 540,
+ 758
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 8
+ },
+ "end": {
+ "line": 26,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 530,
+ 764
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 22
+ },
+ "end": {
+ "line": 27,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 515,
+ 764
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 7
+ },
+ "end": {
+ "line": 27,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 180,
+ 765
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 180,
+ 766
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 152,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 65
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 102,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 15
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 87,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/findGetResult.js.json b/docs/ast/source/internal/findGetResult.js.json
new file mode 100644
index 0000000..14cd637
--- /dev/null
+++ b/docs/ast/source/internal/findGetResult.js.json
@@ -0,0 +1,169 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_findGetResult",
+ "range": [
+ 24,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 39,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 39
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 42,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 42
+ },
+ "end": {
+ "line": 1,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 58,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 2,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 51,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 45,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 45
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/getIterator.js.json b/docs/ast/source/internal/getIterator.js.json
new file mode 100644
index 0000000..6e0ff19
--- /dev/null
+++ b/docs/ast/source/internal/getIterator.js.json
@@ -0,0 +1,497 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "iteratorSymbol",
+ "range": [
+ 4,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 4
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "Symbol",
+ "range": [
+ 28,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 28
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 21,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 39,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 39
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 21,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Symbol",
+ "range": [
+ 53,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 53
+ },
+ "end": {
+ "line": 1,
+ "column": 59
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 60,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 60
+ },
+ "end": {
+ "line": 1,
+ "column": 68
+ }
+ }
+ },
+ "range": [
+ 53,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 53
+ },
+ "end": {
+ "line": 1,
+ "column": 68
+ }
+ }
+ },
+ "range": [
+ 21,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 68
+ }
+ }
+ },
+ "range": [
+ 4,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 4
+ },
+ "end": {
+ "line": 1,
+ "column": 68
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 0,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 69
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 96,
+ 100
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "Identifier",
+ "name": "iteratorSymbol",
+ "range": [
+ 115,
+ 129
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 133,
+ 137
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 29
+ },
+ "end": {
+ "line": 4,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "iteratorSymbol",
+ "range": [
+ 138,
+ 152
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 34
+ },
+ "end": {
+ "line": 4,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 133,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 29
+ },
+ "end": {
+ "line": 4,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 115,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 49
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 157,
+ 161
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 53
+ },
+ "end": {
+ "line": 4,
+ "column": 57
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "iteratorSymbol",
+ "range": [
+ 162,
+ 176
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 58
+ },
+ "end": {
+ "line": 4,
+ "column": 72
+ }
+ }
+ },
+ "range": [
+ 157,
+ 177
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 53
+ },
+ "end": {
+ "line": 4,
+ "column": 73
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 157,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 53
+ },
+ "end": {
+ "line": 4,
+ "column": 75
+ }
+ }
+ },
+ "range": [
+ 115,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 75
+ }
+ }
+ },
+ "range": [
+ 108,
+ 180
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 4,
+ "column": 76
+ }
+ }
+ }
+ ],
+ "range": [
+ 102,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 31
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 86,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 71,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/initialParams.js.json b/docs/ast/source/internal/initialParams.js.json
new file mode 100644
index 0000000..1656e40
--- /dev/null
+++ b/docs/ast/source/internal/initialParams.js.json
@@ -0,0 +1,614 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 58,
+ 60
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 75,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 90,
+ 94
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 26
+ },
+ "end": {
+ "line": 4,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "..., callback",
+ "range": [
+ 94,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 30
+ },
+ "end": {
+ "line": 4,
+ "column": 47
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 127,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 12
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 138,
+ 142
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 23
+ },
+ "end": {
+ "line": 5,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "pop",
+ "range": [
+ 143,
+ 146
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 28
+ },
+ "end": {
+ "line": 5,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 138,
+ 146
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 23
+ },
+ "end": {
+ "line": 5,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 138,
+ 148
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 23
+ },
+ "end": {
+ "line": 5,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 127,
+ 148
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 12
+ },
+ "end": {
+ "line": 5,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 123,
+ 149
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 158,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 10
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "call",
+ "range": [
+ 161,
+ 165
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 158,
+ 165
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 166,
+ 170
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 16
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 172,
+ 176
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 22
+ },
+ "end": {
+ "line": 6,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 178,
+ 186
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 28
+ },
+ "end": {
+ "line": 6,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 158,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 158,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 113,
+ 194
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 49
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "..., callback",
+ "range": [
+ 94,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 30
+ },
+ "end": {
+ "line": 4,
+ "column": 47
+ }
+ }
+ }
+ ]
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 80,
+ 194
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 75,
+ 195
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 7,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 68,
+ 196
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 62,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 29
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 48,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 33,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "..., callback",
+ "range": [
+ 94,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 30
+ },
+ "end": {
+ "line": 4,
+ "column": 47
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/iterator.js.json b/docs/ast/source/internal/iterator.js.json
new file mode 100644
index 0000000..81089ad
--- /dev/null
+++ b/docs/ast/source/internal/iterator.js.json
@@ -0,0 +1,2531 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArrayLike",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArrayLike",
+ "raw": "'lodash/isArrayLike'",
+ "range": [
+ 24,
+ 44
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 0,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "getIterator",
+ "range": [
+ 53,
+ 64
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 53,
+ 64
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./getIterator",
+ "raw": "'./getIterator'",
+ "range": [
+ 70,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 24
+ },
+ "end": {
+ "line": 2,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 46,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "keys",
+ "range": [
+ 94,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 94,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/keys",
+ "raw": "'lodash/keys'",
+ "range": [
+ 104,
+ 117
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 87,
+ 118
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "iterator",
+ "range": [
+ 144,
+ 152
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 24
+ },
+ "end": {
+ "line": 5,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 153,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 33
+ },
+ "end": {
+ "line": 5,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 169,
+ 170
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 9
+ }
+ }
+ },
+ "init": {
+ "type": "UnaryExpression",
+ "operator": "-",
+ "argument": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 174,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 13
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 173,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 169,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 165,
+ 176
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "len",
+ "range": [
+ 185,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 11
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 185,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 181,
+ 189
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArrayLike",
+ "range": [
+ 198,
+ 209
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 8
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 210,
+ 214
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 20
+ },
+ "end": {
+ "line": 8,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 198,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 8
+ },
+ "end": {
+ "line": 8,
+ "column": 25
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "len",
+ "range": [
+ 227,
+ 230
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 11
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 233,
+ 237
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 14
+ },
+ "end": {
+ "line": 9,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 238,
+ 244
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 233,
+ 244
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 14
+ },
+ "end": {
+ "line": 9,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 227,
+ 244
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 227,
+ 245
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 8
+ },
+ "end": {
+ "line": 9,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 270,
+ 274
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 28
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 291,
+ 292
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 13
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 291,
+ 294
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 291,
+ 295
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 315,
+ 316
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 19
+ },
+ "end": {
+ "line": 12,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "len",
+ "range": [
+ 319,
+ 322
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 23
+ },
+ "end": {
+ "line": 12,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 315,
+ 322
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 19
+ },
+ "end": {
+ "line": 12,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 326,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 30
+ },
+ "end": {
+ "line": 12,
+ "column": 35
+ }
+ }
+ },
+ "value": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 333,
+ 337
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 37
+ },
+ "end": {
+ "line": 12,
+ "column": 41
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 338,
+ 339
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 42
+ },
+ "end": {
+ "line": 12,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 333,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 37
+ },
+ "end": {
+ "line": 12,
+ "column": 44
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 326,
+ 340
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 30
+ },
+ "end": {
+ "line": 12,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 342,
+ 345
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 46
+ },
+ "end": {
+ "line": 12,
+ "column": 49
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 347,
+ 348
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 51
+ },
+ "end": {
+ "line": 12,
+ "column": 52
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 342,
+ 348
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 46
+ },
+ "end": {
+ "line": 12,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 325,
+ 349
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 29
+ },
+ "end": {
+ "line": 12,
+ "column": 53
+ }
+ }
+ },
+ "alternate": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 352,
+ 356
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 56
+ },
+ "end": {
+ "line": 12,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 315,
+ 356
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 19
+ },
+ "end": {
+ "line": 12,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 308,
+ 357
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 277,
+ 367
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 31
+ },
+ "end": {
+ "line": 13,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 261,
+ 367
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 15
+ },
+ "end": {
+ "line": 13,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 254,
+ 368
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 13,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 217,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 27
+ },
+ "end": {
+ "line": 14,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 194,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 14,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "iterate",
+ "range": [
+ 384,
+ 391
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "getIterator",
+ "range": [
+ 394,
+ 405
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 18
+ },
+ "end": {
+ "line": 16,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 406,
+ 410
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 30
+ },
+ "end": {
+ "line": 16,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 394,
+ 411
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 18
+ },
+ "end": {
+ "line": 16,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 384,
+ 411
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 380,
+ 412
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 4
+ },
+ "end": {
+ "line": 16,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "iterate",
+ "range": [
+ 421,
+ 428
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 456,
+ 460
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 24
+ },
+ "end": {
+ "line": 18,
+ "column": 28
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 481,
+ 485
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 16
+ },
+ "end": {
+ "line": 19,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "iterate",
+ "range": [
+ 488,
+ 495
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 23
+ },
+ "end": {
+ "line": 19,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 496,
+ 500
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 31
+ },
+ "end": {
+ "line": 19,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 488,
+ 500
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 23
+ },
+ "end": {
+ "line": 19,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 488,
+ 502
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 23
+ },
+ "end": {
+ "line": 19,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 481,
+ 502
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 16
+ },
+ "end": {
+ "line": 19,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 477,
+ 503
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 12
+ },
+ "end": {
+ "line": 19,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 520,
+ 524
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 16
+ },
+ "end": {
+ "line": 20,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 525,
+ 529
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 21
+ },
+ "end": {
+ "line": 20,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 520,
+ 529
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 16
+ },
+ "end": {
+ "line": 20,
+ "column": 25
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 554,
+ 558
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 23
+ },
+ "end": {
+ "line": 21,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 547,
+ 559
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 16
+ },
+ "end": {
+ "line": 21,
+ "column": 28
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 516,
+ 559
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 12
+ },
+ "end": {
+ "line": 21,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 572,
+ 573
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 12
+ },
+ "end": {
+ "line": 22,
+ "column": 13
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 572,
+ 575
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 12
+ },
+ "end": {
+ "line": 22,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 572,
+ 576
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 12
+ },
+ "end": {
+ "line": 22,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 597,
+ 602
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 20
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ "value": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 604,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 27
+ },
+ "end": {
+ "line": 23,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 609,
+ 614
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 32
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 604,
+ 614
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 27
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 597,
+ 614
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 20
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 616,
+ 619
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 39
+ },
+ "end": {
+ "line": 23,
+ "column": 42
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 621,
+ 622
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 44
+ },
+ "end": {
+ "line": 23,
+ "column": 45
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 616,
+ 622
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 39
+ },
+ "end": {
+ "line": 23,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 596,
+ 623
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 19
+ },
+ "end": {
+ "line": 23,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 589,
+ 624
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 23,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 463,
+ 634
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 31
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 447,
+ 634
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 15
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 440,
+ 635
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 430,
+ 641
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 17
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 417,
+ 641
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "okeys",
+ "range": [
+ 651,
+ 656
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "keys",
+ "range": [
+ 659,
+ 663
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 664,
+ 668
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 21
+ },
+ "end": {
+ "line": 27,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 659,
+ 669
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 651,
+ 669
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 647,
+ 670
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "len",
+ "range": [
+ 675,
+ 678
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 7
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "okeys",
+ "range": [
+ 681,
+ 686
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 10
+ },
+ "end": {
+ "line": 28,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 687,
+ 693
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 16
+ },
+ "end": {
+ "line": 28,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 681,
+ 693
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 10
+ },
+ "end": {
+ "line": 28,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 675,
+ 693
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 675,
+ 694
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 715,
+ 719
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 20
+ },
+ "end": {
+ "line": 29,
+ "column": 24
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 732,
+ 733
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 9
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 732,
+ 735
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 732,
+ 736
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 749,
+ 752
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "okeys",
+ "range": [
+ 755,
+ 760
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 18
+ },
+ "end": {
+ "line": 31,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 761,
+ 762
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 24
+ },
+ "end": {
+ "line": 31,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 755,
+ 763
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 18
+ },
+ "end": {
+ "line": 31,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 749,
+ 763
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 745,
+ 764
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 31,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 780,
+ 781
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 15
+ },
+ "end": {
+ "line": 32,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "len",
+ "range": [
+ 784,
+ 787
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 19
+ },
+ "end": {
+ "line": 32,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 780,
+ 787
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 15
+ },
+ "end": {
+ "line": 32,
+ "column": 22
+ }
+ }
+ },
+ "consequent": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 791,
+ 796
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 26
+ },
+ "end": {
+ "line": 32,
+ "column": 31
+ }
+ }
+ },
+ "value": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 798,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 33
+ },
+ "end": {
+ "line": 32,
+ "column": 37
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 803,
+ 806
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 38
+ },
+ "end": {
+ "line": 32,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 798,
+ 807
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 33
+ },
+ "end": {
+ "line": 32,
+ "column": 42
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 791,
+ 807
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 26
+ },
+ "end": {
+ "line": 32,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 809,
+ 812
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 44
+ },
+ "end": {
+ "line": 32,
+ "column": 47
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 814,
+ 817
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 49
+ },
+ "end": {
+ "line": 32,
+ "column": 52
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 809,
+ 817
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 44
+ },
+ "end": {
+ "line": 32,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 790,
+ 818
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 25
+ },
+ "end": {
+ "line": 32,
+ "column": 53
+ }
+ }
+ },
+ "alternate": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 821,
+ 825
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 56
+ },
+ "end": {
+ "line": 32,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 780,
+ 825
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 15
+ },
+ "end": {
+ "line": 32,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 773,
+ 826
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 8
+ },
+ "end": {
+ "line": 32,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 722,
+ 832
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 27
+ },
+ "end": {
+ "line": 33,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 706,
+ 832
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 11
+ },
+ "end": {
+ "line": 33,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 699,
+ 833
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 4
+ },
+ "end": {
+ "line": 33,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 159,
+ 835
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 39
+ },
+ "end": {
+ "line": 34,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 135,
+ 835
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 120,
+ 835
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 835
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/map.js.json b/docs/ast/source/internal/map.js.json
new file mode 100644
index 0000000..b8fe8c3
--- /dev/null
+++ b/docs/ast/source/internal/map.js.json
@@ -0,0 +1,1450 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./once",
+ "raw": "'./once'",
+ "range": [
+ 49,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 32,
+ 58
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_asyncMap",
+ "range": [
+ 84,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 4,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 94,
+ 100
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 34
+ },
+ "end": {
+ "line": 4,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 102,
+ 105
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 42
+ },
+ "end": {
+ "line": 4,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 107,
+ 115
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 47
+ },
+ "end": {
+ "line": 4,
+ "column": 55
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 117,
+ 125
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 57
+ },
+ "end": {
+ "line": 4,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 133,
+ 141
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 5,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 144,
+ 148
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 149,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 20
+ },
+ "end": {
+ "line": 5,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 161,
+ 165
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 32
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 149,
+ 165
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 20
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 144,
+ 166
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 133,
+ 166
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 5,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 133,
+ 167
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 4
+ },
+ "end": {
+ "line": 5,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 172,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 7
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 178,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 10
+ },
+ "end": {
+ "line": 6,
+ "column": 13
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 185,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 17
+ },
+ "end": {
+ "line": 6,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 178,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 10
+ },
+ "end": {
+ "line": 6,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 172,
+ 187
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 172,
+ 188
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 197,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 207,
+ 209
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 197,
+ 209
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 193,
+ 210
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "counter",
+ "range": [
+ 219,
+ 226
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 8
+ },
+ "end": {
+ "line": 8,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 229,
+ 230
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 18
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 219,
+ 230
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 8
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 215,
+ 231
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 8,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 237,
+ 243
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 4
+ },
+ "end": {
+ "line": 10,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 244,
+ 247
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 11
+ },
+ "end": {
+ "line": 10,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 259,
+ 264
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 26
+ },
+ "end": {
+ "line": 10,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "_",
+ "range": [
+ 266,
+ 267
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 33
+ },
+ "end": {
+ "line": 10,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 269,
+ 277
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 36
+ },
+ "end": {
+ "line": 10,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 293,
+ 298
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 17
+ }
+ }
+ },
+ "init": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "counter",
+ "range": [
+ 301,
+ 308
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 301,
+ 310
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 20
+ },
+ "end": {
+ "line": 11,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 293,
+ 310
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 11,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 289,
+ 311
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 320,
+ 328
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 12,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 329,
+ 334
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 17
+ },
+ "end": {
+ "line": 12,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 346,
+ 349
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 34
+ },
+ "end": {
+ "line": 12,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 351,
+ 352
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 39
+ },
+ "end": {
+ "line": 12,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 368,
+ 375
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 376,
+ 381
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 20
+ },
+ "end": {
+ "line": 13,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 368,
+ 382
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 385,
+ 386
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 29
+ },
+ "end": {
+ "line": 13,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 368,
+ 386
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 368,
+ 387
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 400,
+ 408
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 409,
+ 412
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 21
+ },
+ "end": {
+ "line": 14,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 400,
+ 413
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 400,
+ 414
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 354,
+ 424
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 42
+ },
+ "end": {
+ "line": 15,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 336,
+ 424
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 320,
+ 425
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 15,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 320,
+ 426
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 15,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 279,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 46
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 249,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 16
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 444,
+ 447
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 17
+ },
+ "end": {
+ "line": 16,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 459,
+ 467
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 468,
+ 471
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 17
+ },
+ "end": {
+ "line": 17,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 473,
+ 480
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 22
+ },
+ "end": {
+ "line": 17,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 459,
+ 481
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 459,
+ 482
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 8
+ },
+ "end": {
+ "line": 17,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 449,
+ 488
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 22
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 434,
+ 488
+ ],
+ "loc": {
+ "start": {
+ "line": 16,
+ "column": 7
+ },
+ "end": {
+ "line": 18,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 237,
+ 489
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 4
+ },
+ "end": {
+ "line": 18,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 237,
+ 490
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 4
+ },
+ "end": {
+ "line": 18,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 127,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 67
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 75,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 15
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 60,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/notId.js.json b/docs/ast/source/internal/notId.js.json
new file mode 100644
index 0000000..d814cd8
--- /dev/null
+++ b/docs/ast/source/internal/notId.js.json
@@ -0,0 +1,170 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "notId",
+ "range": [
+ 24,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 30,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 30
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 47,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 12
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 46,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 2,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 39,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 33,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 33
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/once.js.json b/docs/ast/source/internal/once.js.json
new file mode 100644
index 0000000..7b9d858
--- /dev/null
+++ b/docs/ast/source/internal/once.js.json
@@ -0,0 +1,534 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 24,
+ 28
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 28
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 29,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 29
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 72,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 79,
+ 83
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 19
+ },
+ "end": {
+ "line": 3,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 72,
+ 83
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 85,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 32
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 68,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 8
+ },
+ "end": {
+ "line": 3,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "callFn",
+ "range": [
+ 105,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 12
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 114,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 105,
+ 116
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 12
+ },
+ "end": {
+ "line": 4,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 101,
+ 117
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 8
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 126,
+ 128
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 131,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 13
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 126,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 126,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callFn",
+ "range": [
+ 145,
+ 151
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 152,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 15
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 145,
+ 157
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 158,
+ 162
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 21
+ },
+ "end": {
+ "line": 6,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 164,
+ 173
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 27
+ },
+ "end": {
+ "line": 6,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 145,
+ 174
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 145,
+ 175
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 58,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 23
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 46,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 39,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 33,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 33
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/onlyOnce.js.json b/docs/ast/source/internal/onlyOnce.js.json
new file mode 100644
index 0000000..3717c34
--- /dev/null
+++ b/docs/ast/source/internal/onlyOnce.js.json
@@ -0,0 +1,589 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 24,
+ 32
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 33,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 33
+ },
+ "end": {
+ "line": 1,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 75,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 82,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 19
+ },
+ "end": {
+ "line": 3,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 75,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 98,
+ 103
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 35
+ },
+ "end": {
+ "line": 3,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "Callback was already called.",
+ "raw": "\"Callback was already called.\"",
+ "range": [
+ 104,
+ 134
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 41
+ },
+ "end": {
+ "line": 3,
+ "column": 71
+ }
+ }
+ }
+ ],
+ "range": [
+ 94,
+ 135
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 31
+ },
+ "end": {
+ "line": 3,
+ "column": 72
+ }
+ }
+ },
+ "range": [
+ 88,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 25
+ },
+ "end": {
+ "line": 3,
+ "column": 73
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 71,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 8
+ },
+ "end": {
+ "line": 3,
+ "column": 73
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "callFn",
+ "range": [
+ 149,
+ 155
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 12
+ },
+ "end": {
+ "line": 4,
+ "column": 18
+ }
+ }
+ },
+ "init": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 158,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 21
+ },
+ "end": {
+ "line": 4,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 149,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 12
+ },
+ "end": {
+ "line": 4,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 145,
+ 161
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 8
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 170,
+ 172
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 175,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 13
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 170,
+ 179
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 170,
+ 180
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callFn",
+ "range": [
+ 189,
+ 195
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 196,
+ 201
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 15
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 189,
+ 201
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 202,
+ 206
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 21
+ },
+ "end": {
+ "line": 6,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 208,
+ 217
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 27
+ },
+ "end": {
+ "line": 6,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 189,
+ 218
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 189,
+ 219
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 8
+ },
+ "end": {
+ "line": 6,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 61,
+ 225
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 22
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 50,
+ 225
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 7,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 43,
+ 226
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 37,
+ 228
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 37
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 228
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 228
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 228
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/parallel.js.json b/docs/ast/source/internal/parallel.js.json
new file mode 100644
index 0000000..1db1426
--- /dev/null
+++ b/docs/ast/source/internal/parallel.js.json
@@ -0,0 +1,1540 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArrayLike",
+ "range": [
+ 39,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 39,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArrayLike",
+ "raw": "'lodash/isArrayLike'",
+ "range": [
+ 56,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 24
+ },
+ "end": {
+ "line": 2,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 32,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 85,
+ 89
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 85,
+ 89
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 95,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 78,
+ 109
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_parallel",
+ "range": [
+ 135,
+ 144
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 24
+ },
+ "end": {
+ "line": 5,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 145,
+ 151
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 34
+ },
+ "end": {
+ "line": 5,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 153,
+ 158
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 42
+ },
+ "end": {
+ "line": 5,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 160,
+ 168
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 49
+ },
+ "end": {
+ "line": 5,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 176,
+ 184
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 187,
+ 195
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 15
+ },
+ "end": {
+ "line": 6,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 199,
+ 203
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 27
+ },
+ "end": {
+ "line": 6,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 187,
+ 203
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 15
+ },
+ "end": {
+ "line": 6,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 176,
+ 203
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 176,
+ 204
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 4
+ },
+ "end": {
+ "line": 6,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 213,
+ 220
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArrayLike",
+ "range": [
+ 223,
+ 234
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 235,
+ 240
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 30
+ },
+ "end": {
+ "line": 7,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 223,
+ 241
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 36
+ }
+ }
+ },
+ "consequent": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 244,
+ 246
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 39
+ },
+ "end": {
+ "line": 7,
+ "column": 41
+ }
+ }
+ },
+ "alternate": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 249,
+ 251
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 44
+ },
+ "end": {
+ "line": 7,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 223,
+ 251
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 213,
+ 251
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 8
+ },
+ "end": {
+ "line": 7,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 209,
+ 252
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 4
+ },
+ "end": {
+ "line": 7,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 258,
+ 264
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 9,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 265,
+ 270
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 11
+ },
+ "end": {
+ "line": 9,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 282,
+ 286
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 28
+ },
+ "end": {
+ "line": 9,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 288,
+ 291
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 34
+ },
+ "end": {
+ "line": 9,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 293,
+ 301
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 39
+ },
+ "end": {
+ "line": 9,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 313,
+ 317
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 10,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 318,
+ 322
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 13
+ },
+ "end": {
+ "line": 10,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 333,
+ 336
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 28
+ },
+ "end": {
+ "line": 10,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 338,
+ 342
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 33
+ },
+ "end": {
+ "line": 10,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 362,
+ 366
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 367,
+ 373
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 21
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 362,
+ 373
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 377,
+ 378
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 31
+ },
+ "end": {
+ "line": 11,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 362,
+ 378
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 16
+ },
+ "end": {
+ "line": 11,
+ "column": 32
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 398,
+ 402
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 16
+ },
+ "end": {
+ "line": 12,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 405,
+ 409
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 23
+ },
+ "end": {
+ "line": 12,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 410,
+ 411
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 28
+ },
+ "end": {
+ "line": 12,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 405,
+ 412
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 23
+ },
+ "end": {
+ "line": 12,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 398,
+ 412
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 16
+ },
+ "end": {
+ "line": 12,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 398,
+ 413
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 16
+ },
+ "end": {
+ "line": 12,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 380,
+ 427
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 34
+ },
+ "end": {
+ "line": 13,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 358,
+ 427
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 12
+ },
+ "end": {
+ "line": 13,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 440,
+ 447
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 448,
+ 451
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 20
+ },
+ "end": {
+ "line": 14,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 440,
+ 452
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 455,
+ 459
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 27
+ },
+ "end": {
+ "line": 14,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 440,
+ 459
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 440,
+ 460
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 473,
+ 481
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 482,
+ 485
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 21
+ },
+ "end": {
+ "line": 15,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 473,
+ 486
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 473,
+ 487
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 344,
+ 497
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 39
+ },
+ "end": {
+ "line": 16,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 323,
+ 497
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 18
+ },
+ "end": {
+ "line": 16,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 318,
+ 498
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 13
+ },
+ "end": {
+ "line": 16,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 313,
+ 499
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 313,
+ 500
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "range": [
+ 303,
+ 506
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 49
+ },
+ "end": {
+ "line": 17,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 272,
+ 506
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 18
+ },
+ "end": {
+ "line": 17,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 518,
+ 521
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 17
+ },
+ "end": {
+ "line": 17,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 533,
+ 541
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 18,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 542,
+ 545
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 17
+ },
+ "end": {
+ "line": 18,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 547,
+ 554
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 22
+ },
+ "end": {
+ "line": 18,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 533,
+ 555
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 18,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 533,
+ 556
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 18,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 523,
+ 562
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 22
+ },
+ "end": {
+ "line": 19,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 508,
+ 562
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 7
+ },
+ "end": {
+ "line": 19,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 258,
+ 563
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 19,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 258,
+ 564
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 19,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 170,
+ 566
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 59
+ },
+ "end": {
+ "line": 20,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 126,
+ 566
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 15
+ },
+ "end": {
+ "line": 20,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 111,
+ 566
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 566
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/queue.js.json b/docs/ast/source/internal/queue.js.json
new file mode 100644
index 0000000..110e8df
--- /dev/null
+++ b/docs/ast/source/internal/queue.js.json
@@ -0,0 +1,10726 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayEach",
+ "raw": "'lodash/_arrayEach'",
+ "range": [
+ 22,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 0,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 50,
+ 58
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 50,
+ 58
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayMap",
+ "raw": "'lodash/_arrayMap'",
+ "range": [
+ 64,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 43,
+ 83
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 91,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 91,
+ 98
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 104,
+ 120
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 20
+ },
+ "end": {
+ "line": 3,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 84,
+ 121
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 129,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 129,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 139,
+ 152
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 17
+ },
+ "end": {
+ "line": 4,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 122,
+ 153
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 161,
+ 169
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 161,
+ 169
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_baseProperty",
+ "raw": "'lodash/_baseProperty'",
+ "range": [
+ 175,
+ 197
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 21
+ },
+ "end": {
+ "line": 5,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 154,
+ 198
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 207,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 207,
+ 215
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./onlyOnce",
+ "raw": "'./onlyOnce'",
+ "range": [
+ 221,
+ 233
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 21
+ },
+ "end": {
+ "line": 7,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 200,
+ 234
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 242,
+ 254
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 242,
+ 254
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 8,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./setImmediate",
+ "raw": "'./setImmediate'",
+ "range": [
+ 260,
+ 276
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 25
+ },
+ "end": {
+ "line": 8,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 235,
+ 277
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 8,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 303,
+ 308
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 24
+ },
+ "end": {
+ "line": 10,
+ "column": 29
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 309,
+ 315
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 30
+ },
+ "end": {
+ "line": 10,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 317,
+ 328
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 38
+ },
+ "end": {
+ "line": 10,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 330,
+ 337
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 51
+ },
+ "end": {
+ "line": 10,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "==",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 349,
+ 360
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 364,
+ 368
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 23
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 349,
+ 368
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 27
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 380,
+ 391
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 12,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 394,
+ 395
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 22
+ },
+ "end": {
+ "line": 12,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 380,
+ 395
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 12,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 380,
+ 396
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 8
+ },
+ "end": {
+ "line": 12,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 370,
+ 402
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 29
+ },
+ "end": {
+ "line": 13,
+ "column": 5
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 415,
+ 426
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 431,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 28
+ },
+ "end": {
+ "line": 14,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 415,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 12
+ },
+ "end": {
+ "line": 14,
+ "column": 29
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 454,
+ 459
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 18
+ },
+ "end": {
+ "line": 15,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "Concurrency must not be zero",
+ "raw": "'Concurrency must not be zero'",
+ "range": [
+ 460,
+ 490
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 24
+ },
+ "end": {
+ "line": 15,
+ "column": 54
+ }
+ }
+ }
+ ],
+ "range": [
+ 450,
+ 491
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 14
+ },
+ "end": {
+ "line": 15,
+ "column": 55
+ }
+ }
+ },
+ "range": [
+ 444,
+ 492
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 8
+ },
+ "end": {
+ "line": 15,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 434,
+ 498
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 31
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 412,
+ 498
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 9
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 345,
+ 498
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 4
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_insert",
+ "range": [
+ 512,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 13
+ },
+ "end": {
+ "line": 17,
+ "column": 20
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 520,
+ 521
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 21
+ },
+ "end": {
+ "line": 17,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 523,
+ 527
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 24
+ },
+ "end": {
+ "line": 17,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "pos",
+ "range": [
+ 529,
+ 532
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 30
+ },
+ "end": {
+ "line": 17,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 534,
+ 542
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 35
+ },
+ "end": {
+ "line": 17,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "!=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 558,
+ 566
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 12
+ },
+ "end": {
+ "line": 18,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 570,
+ 574
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 24
+ },
+ "end": {
+ "line": 18,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 558,
+ 574
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 12
+ },
+ "end": {
+ "line": 18,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "!==",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 585,
+ 593
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 39
+ },
+ "end": {
+ "line": 18,
+ "column": 47
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 578,
+ 593
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 32
+ },
+ "end": {
+ "line": 18,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 598,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 52
+ },
+ "end": {
+ "line": 18,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 578,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 32
+ },
+ "end": {
+ "line": 18,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 558,
+ 608
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 12
+ },
+ "end": {
+ "line": 18,
+ "column": 62
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 634,
+ 639
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 22
+ },
+ "end": {
+ "line": 19,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "task callback must be a function",
+ "raw": "'task callback must be a function'",
+ "range": [
+ 640,
+ 674
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 28
+ },
+ "end": {
+ "line": 19,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "range": [
+ 630,
+ 675
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 18
+ },
+ "end": {
+ "line": 19,
+ "column": 63
+ }
+ }
+ },
+ "range": [
+ 624,
+ 676
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 12
+ },
+ "end": {
+ "line": 19,
+ "column": 64
+ }
+ }
+ }
+ ],
+ "range": [
+ 610,
+ 686
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 64
+ },
+ "end": {
+ "line": 20,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 554,
+ 686
+ ],
+ "loc": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 20,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 695,
+ 696
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 9
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "started",
+ "range": [
+ 697,
+ 704
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 10
+ },
+ "end": {
+ "line": 21,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 695,
+ 704
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 17
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 707,
+ 711
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 20
+ },
+ "end": {
+ "line": 21,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 695,
+ 711
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 695,
+ 712
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 726,
+ 733
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 734,
+ 738
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 21
+ },
+ "end": {
+ "line": 22,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 726,
+ 739
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 725,
+ 739
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 12
+ },
+ "end": {
+ "line": 22,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 755,
+ 759
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 23,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 763,
+ 767
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 20
+ },
+ "end": {
+ "line": 23,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 762,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 19
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 755,
+ 768
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 755,
+ 769
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 12
+ },
+ "end": {
+ "line": 23,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 741,
+ 779
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 28
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 721,
+ 779
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 791,
+ 795
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 11
+ },
+ "end": {
+ "line": 25,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 796,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 16
+ },
+ "end": {
+ "line": 25,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 791,
+ 802
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 11
+ },
+ "end": {
+ "line": 25,
+ "column": 22
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 807,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 27
+ },
+ "end": {
+ "line": 25,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 791,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 11
+ },
+ "end": {
+ "line": 25,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 812,
+ 813
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 32
+ },
+ "end": {
+ "line": 25,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "idle",
+ "range": [
+ 814,
+ 818
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 34
+ },
+ "end": {
+ "line": 25,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 812,
+ 818
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 32
+ },
+ "end": {
+ "line": 25,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 812,
+ 820
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 32
+ },
+ "end": {
+ "line": 25,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 791,
+ 820
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 11
+ },
+ "end": {
+ "line": 25,
+ "column": 40
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 903,
+ 915
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 945,
+ 946
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 16
+ },
+ "end": {
+ "line": 28,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "drain",
+ "range": [
+ 947,
+ 952
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 18
+ },
+ "end": {
+ "line": 28,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 945,
+ 952
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 16
+ },
+ "end": {
+ "line": 28,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 945,
+ 954
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 16
+ },
+ "end": {
+ "line": 28,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 945,
+ 955
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 16
+ },
+ "end": {
+ "line": 28,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 927,
+ 969
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 43
+ },
+ "end": {
+ "line": 29,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 916,
+ 969
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 32
+ },
+ "end": {
+ "line": 29,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 903,
+ 970
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 29,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 896,
+ 971
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 29,
+ "column": 15
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " call drain immediately if there are no tasks",
+ "range": [
+ 836,
+ 883
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 12
+ },
+ "end": {
+ "line": 26,
+ "column": 59
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 822,
+ 981
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 42
+ },
+ "end": {
+ "line": 30,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 788,
+ 981
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 990,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 31,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 1000,
+ 1004
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 18
+ },
+ "end": {
+ "line": 31,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1015,
+ 1019
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 33
+ },
+ "end": {
+ "line": 31,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 1039,
+ 1043
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 16
+ },
+ "end": {
+ "line": 32,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 1064,
+ 1068
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 16
+ },
+ "end": {
+ "line": 33,
+ "column": 20
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1070,
+ 1074
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 22
+ },
+ "end": {
+ "line": 33,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1064,
+ 1074
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 16
+ },
+ "end": {
+ "line": 33,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1092,
+ 1100
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 16
+ },
+ "end": {
+ "line": 34,
+ "column": 24
+ }
+ }
+ },
+ "value": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1102,
+ 1110
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 26
+ },
+ "end": {
+ "line": 34,
+ "column": 34
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1114,
+ 1118
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 38
+ },
+ "end": {
+ "line": 34,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 1102,
+ 1118
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 26
+ },
+ "end": {
+ "line": 34,
+ "column": 42
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1092,
+ 1118
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 16
+ },
+ "end": {
+ "line": 34,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 1046,
+ 1132
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 23
+ },
+ "end": {
+ "line": 35,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1039,
+ 1132
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 16
+ },
+ "end": {
+ "line": 35,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1035,
+ 1133
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 35,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "pos",
+ "range": [
+ 1151,
+ 1154
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1174,
+ 1175
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 16
+ },
+ "end": {
+ "line": 38,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1176,
+ 1181
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 18
+ },
+ "end": {
+ "line": 38,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1174,
+ 1181
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 16
+ },
+ "end": {
+ "line": 38,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "unshift",
+ "range": [
+ 1182,
+ 1189
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1174,
+ 1189
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 16
+ },
+ "end": {
+ "line": 38,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 1190,
+ 1194
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 32
+ },
+ "end": {
+ "line": 38,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1174,
+ 1195
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 16
+ },
+ "end": {
+ "line": 38,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1174,
+ 1196
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 16
+ },
+ "end": {
+ "line": 38,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 1156,
+ 1210
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 21
+ },
+ "end": {
+ "line": 39,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1234,
+ 1235
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 16
+ },
+ "end": {
+ "line": 40,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1236,
+ 1241
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 18
+ },
+ "end": {
+ "line": 40,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1234,
+ 1241
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 16
+ },
+ "end": {
+ "line": 40,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 1242,
+ 1246
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 24
+ },
+ "end": {
+ "line": 40,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1234,
+ 1246
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 16
+ },
+ "end": {
+ "line": 40,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 1247,
+ 1251
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 29
+ },
+ "end": {
+ "line": 40,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 1234,
+ 1252
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 16
+ },
+ "end": {
+ "line": 40,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1234,
+ 1253
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 16
+ },
+ "end": {
+ "line": 40,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1216,
+ 1267
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 19
+ },
+ "end": {
+ "line": 41,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1147,
+ 1267
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1021,
+ 1278
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 39
+ },
+ "end": {
+ "line": 43,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1006,
+ 1278
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 24
+ },
+ "end": {
+ "line": 43,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 990,
+ 1279
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 990,
+ 1280
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 1289,
+ 1301
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1302,
+ 1303
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 21
+ },
+ "end": {
+ "line": 44,
+ "column": 22
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 1304,
+ 1311
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 23
+ },
+ "end": {
+ "line": 44,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1302,
+ 1311
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 21
+ },
+ "end": {
+ "line": 44,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1289,
+ 1312
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1289,
+ 1313
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 544,
+ 1319
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 45
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 503,
+ 1319
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 4
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_next",
+ "range": [
+ 1333,
+ 1338
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 13
+ },
+ "end": {
+ "line": 46,
+ "column": 18
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1339,
+ 1340
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 19
+ },
+ "end": {
+ "line": 46,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1342,
+ 1347
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "-=",
+ "left": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 1390,
+ 1397
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1401,
+ 1402
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 23
+ },
+ "end": {
+ "line": 48,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1390,
+ 1402
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1390,
+ 1403
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "removed",
+ "range": [
+ 1422,
+ 1429
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 16
+ },
+ "end": {
+ "line": 51,
+ "column": 23
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 1432,
+ 1437
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 26
+ },
+ "end": {
+ "line": 51,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1422,
+ 1437
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 16
+ },
+ "end": {
+ "line": 51,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1418,
+ 1438
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 12
+ },
+ "end": {
+ "line": 51,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1455,
+ 1459
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 16
+ },
+ "end": {
+ "line": 52,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1462,
+ 1471
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 23
+ },
+ "end": {
+ "line": 52,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1455,
+ 1471
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 16
+ },
+ "end": {
+ "line": 52,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1451,
+ 1472
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 1485,
+ 1494
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 53,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1495,
+ 1500
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1512,
+ 1516
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 39
+ },
+ "end": {
+ "line": 53,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 1536,
+ 1545
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 16
+ },
+ "end": {
+ "line": 54,
+ "column": 25
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 1546,
+ 1557
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 26
+ },
+ "end": {
+ "line": 54,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 1569,
+ 1575
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 49
+ },
+ "end": {
+ "line": 54,
+ "column": 55
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 1577,
+ 1582
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 57
+ },
+ "end": {
+ "line": 54,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 1610,
+ 1616
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 24
+ },
+ "end": {
+ "line": 55,
+ "column": 30
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1621,
+ 1625
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 35
+ },
+ "end": {
+ "line": 55,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1610,
+ 1625
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 24
+ },
+ "end": {
+ "line": 55,
+ "column": 39
+ }
+ }
+ },
+ "right": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "removed",
+ "range": [
+ 1630,
+ 1637
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 44
+ },
+ "end": {
+ "line": 55,
+ "column": 51
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1629,
+ 1637
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 43
+ },
+ "end": {
+ "line": 55,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1610,
+ 1637
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 24
+ },
+ "end": {
+ "line": 55,
+ "column": 51
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 1665,
+ 1676
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 24
+ },
+ "end": {
+ "line": 56,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "splice",
+ "range": [
+ 1677,
+ 1683
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 36
+ },
+ "end": {
+ "line": 56,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 1665,
+ 1683
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 24
+ },
+ "end": {
+ "line": 56,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 1684,
+ 1689
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 43
+ },
+ "end": {
+ "line": 56,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1691,
+ 1692
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 50
+ },
+ "end": {
+ "line": 56,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 1665,
+ 1693
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 24
+ },
+ "end": {
+ "line": 56,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 1665,
+ 1694
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 24
+ },
+ "end": {
+ "line": 56,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "removed",
+ "range": [
+ 1719,
+ 1726
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 24
+ },
+ "end": {
+ "line": 57,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 1729,
+ 1733
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 34
+ },
+ "end": {
+ "line": 57,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1719,
+ 1733
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 24
+ },
+ "end": {
+ "line": 57,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1719,
+ 1734
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 24
+ },
+ "end": {
+ "line": 57,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 1639,
+ 1756
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 53
+ },
+ "end": {
+ "line": 58,
+ "column": 21
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1606,
+ 1756
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 20
+ },
+ "end": {
+ "line": 58,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1584,
+ 1774
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 64
+ },
+ "end": {
+ "line": 59,
+ "column": 17
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1559,
+ 1774
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 39
+ },
+ "end": {
+ "line": 59,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1536,
+ 1775
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 16
+ },
+ "end": {
+ "line": 59,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1536,
+ 1776
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 16
+ },
+ "end": {
+ "line": 59,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1794,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1799,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 21
+ },
+ "end": {
+ "line": 61,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1794,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1808,
+ 1813
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 30
+ },
+ "end": {
+ "line": 61,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1794,
+ 1813
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1814,
+ 1818
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 36
+ },
+ "end": {
+ "line": 61,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1820,
+ 1824
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 42
+ },
+ "end": {
+ "line": 61,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1794,
+ 1825
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1794,
+ 1826
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "!=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1848,
+ 1852
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 63,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1853,
+ 1854
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 25
+ },
+ "end": {
+ "line": 63,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 1848,
+ 1855
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 63,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1859,
+ 1863
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 31
+ },
+ "end": {
+ "line": 63,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1848,
+ 1863
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 63,
+ "column": 35
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1887,
+ 1888
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 20
+ },
+ "end": {
+ "line": 64,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1889,
+ 1894
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 22
+ },
+ "end": {
+ "line": 64,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1887,
+ 1894
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 20
+ },
+ "end": {
+ "line": 64,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1895,
+ 1899
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1900,
+ 1901
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 33
+ },
+ "end": {
+ "line": 64,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1895,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1904,
+ 1908
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 37
+ },
+ "end": {
+ "line": 64,
+ "column": 41
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 1909,
+ 1913
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 42
+ },
+ "end": {
+ "line": 64,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 1904,
+ 1913
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 37
+ },
+ "end": {
+ "line": 64,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1887,
+ 1914
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 20
+ },
+ "end": {
+ "line": 64,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1887,
+ 1915
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 20
+ },
+ "end": {
+ "line": 64,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1865,
+ 1933
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 37
+ },
+ "end": {
+ "line": 65,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1844,
+ 1933
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 16
+ },
+ "end": {
+ "line": 65,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1518,
+ 1947
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 45
+ },
+ "end": {
+ "line": 66,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1502,
+ 1947
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 29
+ },
+ "end": {
+ "line": 66,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1485,
+ 1948
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 66,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 1485,
+ 1949
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 66,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 1967,
+ 1974
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 16
+ },
+ "end": {
+ "line": 68,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1979,
+ 1980
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 28
+ },
+ "end": {
+ "line": 68,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 1981,
+ 1992
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 30
+ },
+ "end": {
+ "line": 68,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1979,
+ 1992
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 28
+ },
+ "end": {
+ "line": 68,
+ "column": 41
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1995,
+ 1996
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 44
+ },
+ "end": {
+ "line": 68,
+ "column": 45
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "buffer",
+ "range": [
+ 1997,
+ 2003
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 46
+ },
+ "end": {
+ "line": 68,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 1995,
+ 2003
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 44
+ },
+ "end": {
+ "line": 68,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 1979,
+ 2003
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 28
+ },
+ "end": {
+ "line": 68,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 1967,
+ 2004
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 16
+ },
+ "end": {
+ "line": 68,
+ "column": 53
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2025,
+ 2026
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "unsaturated",
+ "range": [
+ 2027,
+ 2038
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 18
+ },
+ "end": {
+ "line": 69,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2025,
+ 2038
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 2025,
+ 2040
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2025,
+ 2041
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 2007,
+ 2055
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 56
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1963,
+ 2055
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 12
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2073,
+ 2074
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 16
+ },
+ "end": {
+ "line": 72,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2075,
+ 2080
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 18
+ },
+ "end": {
+ "line": 72,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2073,
+ 2080
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 16
+ },
+ "end": {
+ "line": 72,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2081,
+ 2087
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 24
+ },
+ "end": {
+ "line": 72,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 2073,
+ 2087
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 16
+ },
+ "end": {
+ "line": 72,
+ "column": 30
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 2090,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 33
+ },
+ "end": {
+ "line": 72,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 2073,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 16
+ },
+ "end": {
+ "line": 72,
+ "column": 40
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2102,
+ 2103
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 45
+ },
+ "end": {
+ "line": 72,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 2073,
+ 2103
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 16
+ },
+ "end": {
+ "line": 72,
+ "column": 46
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2123,
+ 2124
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 16
+ },
+ "end": {
+ "line": 73,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "drain",
+ "range": [
+ 2125,
+ 2130
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 18
+ },
+ "end": {
+ "line": 73,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2123,
+ 2130
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 16
+ },
+ "end": {
+ "line": 73,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 2123,
+ 2132
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 16
+ },
+ "end": {
+ "line": 73,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2123,
+ 2133
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 16
+ },
+ "end": {
+ "line": 73,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 2105,
+ 2147
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 48
+ },
+ "end": {
+ "line": 74,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2069,
+ 2147
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2160,
+ 2161
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 75,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 2162,
+ 2169
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 14
+ },
+ "end": {
+ "line": 75,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 2160,
+ 2169
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 75,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 2160,
+ 2171
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 75,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2160,
+ 2172
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 75,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 1376,
+ 2182
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 76,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1366,
+ 2182
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 15
+ },
+ "end": {
+ "line": 76,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1359,
+ 2183
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 8
+ },
+ "end": {
+ "line": 76,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 1349,
+ 2189
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 29
+ },
+ "end": {
+ "line": 77,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1324,
+ 2189
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 77,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 2199,
+ 2206
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2209,
+ 2210
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 18
+ },
+ "end": {
+ "line": 79,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2199,
+ 2210
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2195,
+ 2211
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 4
+ },
+ "end": {
+ "line": 79,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 2220,
+ 2231
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 8
+ },
+ "end": {
+ "line": 80,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 2234,
+ 2236
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 22
+ },
+ "end": {
+ "line": 80,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2220,
+ 2236
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 8
+ },
+ "end": {
+ "line": 80,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2216,
+ 2237
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 4
+ },
+ "end": {
+ "line": 80,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2246,
+ 2247
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 8
+ },
+ "end": {
+ "line": 81,
+ "column": 9
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2260,
+ 2265
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 2267,
+ 2269
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 15
+ },
+ "end": {
+ "line": 82,
+ "column": 17
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2260,
+ 2269
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 2279,
+ 2290
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 8
+ },
+ "end": {
+ "line": 83,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 2292,
+ 2303
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 21
+ },
+ "end": {
+ "line": 83,
+ "column": 32
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2279,
+ 2303
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 8
+ },
+ "end": {
+ "line": 83,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 2313,
+ 2320
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 8
+ },
+ "end": {
+ "line": 84,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 2322,
+ 2329
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 17
+ },
+ "end": {
+ "line": 84,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2313,
+ 2329
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 8
+ },
+ "end": {
+ "line": 84,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "saturated",
+ "range": [
+ 2339,
+ 2348
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 17
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2350,
+ 2354
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 19
+ },
+ "end": {
+ "line": 85,
+ "column": 23
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2339,
+ 2354
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "unsaturated",
+ "range": [
+ 2364,
+ 2375
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 8
+ },
+ "end": {
+ "line": 86,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2376,
+ 2380
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 20
+ },
+ "end": {
+ "line": 86,
+ "column": 24
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2364,
+ 2380
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 8
+ },
+ "end": {
+ "line": 86,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "buffer",
+ "range": [
+ 2390,
+ 2396
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 8
+ },
+ "end": {
+ "line": 87,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "BinaryExpression",
+ "operator": "/",
+ "left": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 2398,
+ 2409
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 16
+ },
+ "end": {
+ "line": 87,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 4,
+ "raw": "4",
+ "range": [
+ 2412,
+ 2413
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 30
+ },
+ "end": {
+ "line": 87,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2398,
+ 2413
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 16
+ },
+ "end": {
+ "line": 87,
+ "column": 31
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2390,
+ 2413
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 8
+ },
+ "end": {
+ "line": 87,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "empty",
+ "range": [
+ 2423,
+ 2428
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 8
+ },
+ "end": {
+ "line": 88,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2430,
+ 2434
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 15
+ },
+ "end": {
+ "line": 88,
+ "column": 19
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2423,
+ 2434
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 8
+ },
+ "end": {
+ "line": 88,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "drain",
+ "range": [
+ 2444,
+ 2449
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 8
+ },
+ "end": {
+ "line": 89,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2451,
+ 2455
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 15
+ },
+ "end": {
+ "line": 89,
+ "column": 19
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2444,
+ 2455
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 8
+ },
+ "end": {
+ "line": 89,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 2465,
+ 2470
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 8
+ },
+ "end": {
+ "line": 90,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2472,
+ 2476
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 15
+ },
+ "end": {
+ "line": 90,
+ "column": 19
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2465,
+ 2476
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 8
+ },
+ "end": {
+ "line": 90,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "started",
+ "range": [
+ 2486,
+ 2493
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 8
+ },
+ "end": {
+ "line": 91,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 2495,
+ 2500
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 17
+ },
+ "end": {
+ "line": 91,
+ "column": 22
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2486,
+ 2500
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 8
+ },
+ "end": {
+ "line": 91,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "paused",
+ "range": [
+ 2510,
+ 2516
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 8
+ },
+ "end": {
+ "line": 92,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 2518,
+ 2523
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 16
+ },
+ "end": {
+ "line": 92,
+ "column": 21
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2510,
+ 2523
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 8
+ },
+ "end": {
+ "line": 92,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 2533,
+ 2537
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 8
+ },
+ "end": {
+ "line": 93,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2549,
+ 2553
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 24
+ },
+ "end": {
+ "line": 93,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2555,
+ 2563
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 30
+ },
+ "end": {
+ "line": 93,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_insert",
+ "range": [
+ 2579,
+ 2586
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 12
+ },
+ "end": {
+ "line": 94,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2587,
+ 2588
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 20
+ },
+ "end": {
+ "line": 94,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2590,
+ 2594
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 23
+ },
+ "end": {
+ "line": 94,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 2596,
+ 2601
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 29
+ },
+ "end": {
+ "line": 94,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2603,
+ 2611
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 36
+ },
+ "end": {
+ "line": 94,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 2579,
+ 2612
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 12
+ },
+ "end": {
+ "line": 94,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 2579,
+ 2613
+ ],
+ "loc": {
+ "start": {
+ "line": 94,
+ "column": 12
+ },
+ "end": {
+ "line": 94,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 2565,
+ 2623
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 40
+ },
+ "end": {
+ "line": 95,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2539,
+ 2623
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 14
+ },
+ "end": {
+ "line": 95,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2533,
+ 2623
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 8
+ },
+ "end": {
+ "line": 95,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "kill",
+ "range": [
+ 2633,
+ 2637
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 8
+ },
+ "end": {
+ "line": 96,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2665,
+ 2666
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 12
+ },
+ "end": {
+ "line": 97,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "drain",
+ "range": [
+ 2667,
+ 2672
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 14
+ },
+ "end": {
+ "line": 97,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2665,
+ 2672
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 12
+ },
+ "end": {
+ "line": 97,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2675,
+ 2679
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 22
+ },
+ "end": {
+ "line": 97,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 2665,
+ 2679
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 12
+ },
+ "end": {
+ "line": 97,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 2665,
+ 2680
+ ],
+ "loc": {
+ "start": {
+ "line": 97,
+ "column": 12
+ },
+ "end": {
+ "line": 97,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2693,
+ 2694
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 12
+ },
+ "end": {
+ "line": 98,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2695,
+ 2700
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 14
+ },
+ "end": {
+ "line": 98,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2693,
+ 2700
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 12
+ },
+ "end": {
+ "line": 98,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 2703,
+ 2705
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 22
+ },
+ "end": {
+ "line": 98,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2693,
+ 2705
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 12
+ },
+ "end": {
+ "line": 98,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2693,
+ 2706
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 12
+ },
+ "end": {
+ "line": 98,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 2651,
+ 2716
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 26
+ },
+ "end": {
+ "line": 99,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2639,
+ 2716
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 14
+ },
+ "end": {
+ "line": 99,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2633,
+ 2716
+ ],
+ "loc": {
+ "start": {
+ "line": 96,
+ "column": 8
+ },
+ "end": {
+ "line": 99,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "unshift",
+ "range": [
+ 2726,
+ 2733
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 100,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2745,
+ 2749
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 27
+ },
+ "end": {
+ "line": 100,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2751,
+ 2759
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 33
+ },
+ "end": {
+ "line": 100,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_insert",
+ "range": [
+ 2775,
+ 2782
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 12
+ },
+ "end": {
+ "line": 101,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2783,
+ 2784
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 20
+ },
+ "end": {
+ "line": 101,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2786,
+ 2790
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 23
+ },
+ "end": {
+ "line": 101,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 2792,
+ 2796
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 29
+ },
+ "end": {
+ "line": 101,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2798,
+ 2806
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 35
+ },
+ "end": {
+ "line": 101,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 2775,
+ 2807
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 12
+ },
+ "end": {
+ "line": 101,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 2775,
+ 2808
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 12
+ },
+ "end": {
+ "line": 101,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 2761,
+ 2818
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 43
+ },
+ "end": {
+ "line": 102,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2735,
+ 2818
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 17
+ },
+ "end": {
+ "line": 102,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2726,
+ 2818
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 102,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 2828,
+ 2835
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "WhileStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2870,
+ 2871
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 19
+ },
+ "end": {
+ "line": 104,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "paused",
+ "range": [
+ 2872,
+ 2878
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 21
+ },
+ "end": {
+ "line": 104,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 2870,
+ 2878
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 19
+ },
+ "end": {
+ "line": 104,
+ "column": 27
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2869,
+ 2878
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 18
+ },
+ "end": {
+ "line": 104,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 2882,
+ 2889
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 31
+ },
+ "end": {
+ "line": 104,
+ "column": 38
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2892,
+ 2893
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 41
+ },
+ "end": {
+ "line": 104,
+ "column": 42
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 2894,
+ 2905
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 43
+ },
+ "end": {
+ "line": 104,
+ "column": 54
+ }
+ }
+ },
+ "range": [
+ 2892,
+ 2905
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 41
+ },
+ "end": {
+ "line": 104,
+ "column": 54
+ }
+ }
+ },
+ "range": [
+ 2882,
+ 2905
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 31
+ },
+ "end": {
+ "line": 104,
+ "column": 54
+ }
+ }
+ },
+ "range": [
+ 2869,
+ 2905
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 18
+ },
+ "end": {
+ "line": 104,
+ "column": 54
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2909,
+ 2910
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 58
+ },
+ "end": {
+ "line": 104,
+ "column": 59
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2911,
+ 2916
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 60
+ },
+ "end": {
+ "line": 104,
+ "column": 65
+ }
+ }
+ },
+ "range": [
+ 2909,
+ 2916
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 58
+ },
+ "end": {
+ "line": 104,
+ "column": 65
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2917,
+ 2923
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 66
+ },
+ "end": {
+ "line": 104,
+ "column": 72
+ }
+ }
+ },
+ "range": [
+ 2909,
+ 2923
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 58
+ },
+ "end": {
+ "line": 104,
+ "column": 72
+ }
+ }
+ },
+ "range": [
+ 2869,
+ 2923
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 18
+ },
+ "end": {
+ "line": 104,
+ "column": 72
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2947,
+ 2952
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 20
+ },
+ "end": {
+ "line": 106,
+ "column": 25
+ }
+ }
+ },
+ "init": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2955,
+ 2956
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 28
+ },
+ "end": {
+ "line": 106,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 2957,
+ 2964
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 30
+ },
+ "end": {
+ "line": 106,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2955,
+ 2964
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 28
+ },
+ "end": {
+ "line": 106,
+ "column": 37
+ }
+ }
+ },
+ "consequent": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2987,
+ 2988
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 20
+ },
+ "end": {
+ "line": 107,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2989,
+ 2994
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 22
+ },
+ "end": {
+ "line": 107,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 2987,
+ 2994
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 20
+ },
+ "end": {
+ "line": 107,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "splice",
+ "range": [
+ 2995,
+ 3001
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 28
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2987,
+ 3001
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 20
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3002,
+ 3003
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 35
+ },
+ "end": {
+ "line": 107,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3005,
+ 3006
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 38
+ },
+ "end": {
+ "line": 107,
+ "column": 39
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "payload",
+ "range": [
+ 3007,
+ 3014
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 40
+ },
+ "end": {
+ "line": 107,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 3005,
+ 3014
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 38
+ },
+ "end": {
+ "line": 107,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 2987,
+ 3015
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 20
+ },
+ "end": {
+ "line": 107,
+ "column": 48
+ }
+ }
+ },
+ "alternate": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3038,
+ 3039
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 20
+ },
+ "end": {
+ "line": 108,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3040,
+ 3045
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 22
+ },
+ "end": {
+ "line": 108,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 3038,
+ 3045
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 20
+ },
+ "end": {
+ "line": 108,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "splice",
+ "range": [
+ 3046,
+ 3052
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 28
+ },
+ "end": {
+ "line": 108,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 3038,
+ 3052
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 20
+ },
+ "end": {
+ "line": 108,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3053,
+ 3054
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 35
+ },
+ "end": {
+ "line": 108,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3056,
+ 3057
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 38
+ },
+ "end": {
+ "line": 108,
+ "column": 39
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3058,
+ 3063
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 40
+ },
+ "end": {
+ "line": 108,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 3056,
+ 3063
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 38
+ },
+ "end": {
+ "line": 108,
+ "column": 45
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3064,
+ 3070
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 46
+ },
+ "end": {
+ "line": 108,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 3056,
+ 3070
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 38
+ },
+ "end": {
+ "line": 108,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 3038,
+ 3071
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 20
+ },
+ "end": {
+ "line": 108,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 2955,
+ 3071
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 28
+ },
+ "end": {
+ "line": 108,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 2947,
+ 3071
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 20
+ },
+ "end": {
+ "line": 108,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2943,
+ 3072
+ ],
+ "loc": {
+ "start": {
+ "line": 106,
+ "column": 16
+ },
+ "end": {
+ "line": 108,
+ "column": 54
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 3094,
+ 3098
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 20
+ },
+ "end": {
+ "line": 110,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 3101,
+ 3109
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 27
+ },
+ "end": {
+ "line": 110,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3110,
+ 3115
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 36
+ },
+ "end": {
+ "line": 110,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 3117,
+ 3125
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 43
+ },
+ "end": {
+ "line": 110,
+ "column": 51
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "data",
+ "raw": "'data'",
+ "range": [
+ 3126,
+ 3132
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 52
+ },
+ "end": {
+ "line": 110,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 3117,
+ 3133
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 43
+ },
+ "end": {
+ "line": 110,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 3101,
+ 3134
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 27
+ },
+ "end": {
+ "line": 110,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 3094,
+ 3134
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 20
+ },
+ "end": {
+ "line": 110,
+ "column": 60
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 3090,
+ 3135
+ ],
+ "loc": {
+ "start": {
+ "line": 110,
+ "column": 16
+ },
+ "end": {
+ "line": 110,
+ "column": 61
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3157,
+ 3158
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3159,
+ 3164
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 22
+ },
+ "end": {
+ "line": 112,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 3157,
+ 3164
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3165,
+ 3171
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 28
+ },
+ "end": {
+ "line": 112,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 3157,
+ 3171
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 34
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3176,
+ 3177
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 39
+ },
+ "end": {
+ "line": 112,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 3157,
+ 3177
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 40
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3201,
+ 3202
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 20
+ },
+ "end": {
+ "line": 113,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "empty",
+ "range": [
+ 3203,
+ 3208
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 22
+ },
+ "end": {
+ "line": 113,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 3201,
+ 3208
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 20
+ },
+ "end": {
+ "line": 113,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 3201,
+ 3210
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 20
+ },
+ "end": {
+ "line": 113,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 3201,
+ 3211
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 20
+ },
+ "end": {
+ "line": 113,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 3179,
+ 3229
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 42
+ },
+ "end": {
+ "line": 114,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 3153,
+ 3229
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 16
+ },
+ "end": {
+ "line": 114,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "+=",
+ "left": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 3246,
+ 3253
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 16
+ },
+ "end": {
+ "line": 115,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 3257,
+ 3258
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 27
+ },
+ "end": {
+ "line": 115,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3246,
+ 3258
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 16
+ },
+ "end": {
+ "line": 115,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3246,
+ 3259
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 16
+ },
+ "end": {
+ "line": 115,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 3276,
+ 3287
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 16
+ },
+ "end": {
+ "line": 116,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 3288,
+ 3292
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 28
+ },
+ "end": {
+ "line": 116,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 3276,
+ 3292
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 16
+ },
+ "end": {
+ "line": 116,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3293,
+ 3298
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 33
+ },
+ "end": {
+ "line": 116,
+ "column": 38
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3299,
+ 3300
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 39
+ },
+ "end": {
+ "line": 116,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 3293,
+ 3301
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 33
+ },
+ "end": {
+ "line": 116,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 3276,
+ 3302
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 16
+ },
+ "end": {
+ "line": 116,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 3276,
+ 3303
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 16
+ },
+ "end": {
+ "line": 116,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 3325,
+ 3332
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 20
+ },
+ "end": {
+ "line": 118,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3337,
+ 3338
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 32
+ },
+ "end": {
+ "line": 118,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 3339,
+ 3350
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 34
+ },
+ "end": {
+ "line": 118,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 3337,
+ 3350
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 32
+ },
+ "end": {
+ "line": 118,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 3325,
+ 3350
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 20
+ },
+ "end": {
+ "line": 118,
+ "column": 45
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3374,
+ 3375
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 20
+ },
+ "end": {
+ "line": 119,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "saturated",
+ "range": [
+ 3376,
+ 3385
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 22
+ },
+ "end": {
+ "line": 119,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 3374,
+ 3385
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 20
+ },
+ "end": {
+ "line": 119,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 3374,
+ 3387
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 20
+ },
+ "end": {
+ "line": 119,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3374,
+ 3388
+ ],
+ "loc": {
+ "start": {
+ "line": 119,
+ "column": 20
+ },
+ "end": {
+ "line": 119,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 3352,
+ 3406
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 47
+ },
+ "end": {
+ "line": 120,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 3321,
+ 3406
+ ],
+ "loc": {
+ "start": {
+ "line": 118,
+ "column": 16
+ },
+ "end": {
+ "line": 120,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 3428,
+ 3430
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 22
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 3433,
+ 3441
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 25
+ },
+ "end": {
+ "line": 122,
+ "column": 33
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_next",
+ "range": [
+ 3442,
+ 3447
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 34
+ },
+ "end": {
+ "line": 122,
+ "column": 39
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3448,
+ 3449
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 40
+ },
+ "end": {
+ "line": 122,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3451,
+ 3456
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 43
+ },
+ "end": {
+ "line": 122,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 3442,
+ 3457
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 34
+ },
+ "end": {
+ "line": 122,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 3433,
+ 3458
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 25
+ },
+ "end": {
+ "line": 122,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 3428,
+ 3458
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 3424,
+ 3459
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 16
+ },
+ "end": {
+ "line": 122,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 3476,
+ 3482
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 16
+ },
+ "end": {
+ "line": 123,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 3483,
+ 3487
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 23
+ },
+ "end": {
+ "line": 123,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 3489,
+ 3491
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 29
+ },
+ "end": {
+ "line": 123,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 3476,
+ 3492
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 16
+ },
+ "end": {
+ "line": 123,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 3476,
+ 3493
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 16
+ },
+ "end": {
+ "line": 123,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 2924,
+ 3509
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 73
+ },
+ "end": {
+ "line": 126,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2863,
+ 3509
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 12
+ },
+ "end": {
+ "line": 126,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 2849,
+ 3519
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 29
+ },
+ "end": {
+ "line": 127,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2837,
+ 3519
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 17
+ },
+ "end": {
+ "line": 127,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2828,
+ 3519
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 127,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3529,
+ 3535
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 8
+ },
+ "end": {
+ "line": 128,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3570,
+ 3571
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 19
+ },
+ "end": {
+ "line": 129,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3572,
+ 3577
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 21
+ },
+ "end": {
+ "line": 129,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 3570,
+ 3577
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 19
+ },
+ "end": {
+ "line": 129,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3578,
+ 3584
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 27
+ },
+ "end": {
+ "line": 129,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3570,
+ 3584
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 19
+ },
+ "end": {
+ "line": 129,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3563,
+ 3585
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 129,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 3549,
+ 3595
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 28
+ },
+ "end": {
+ "line": 130,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3537,
+ 3595
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 16
+ },
+ "end": {
+ "line": 130,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3529,
+ 3595
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 8
+ },
+ "end": {
+ "line": 130,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "running",
+ "range": [
+ 3605,
+ 3612
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 8
+ },
+ "end": {
+ "line": 131,
+ "column": 15
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 3647,
+ 3654
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 19
+ },
+ "end": {
+ "line": 132,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 3640,
+ 3655
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 12
+ },
+ "end": {
+ "line": 132,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 3626,
+ 3665
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 29
+ },
+ "end": {
+ "line": 133,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3614,
+ 3665
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 17
+ },
+ "end": {
+ "line": 133,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3605,
+ 3665
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 8
+ },
+ "end": {
+ "line": 133,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 3675,
+ 3686
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 134,
+ "column": 19
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "workersList",
+ "range": [
+ 3721,
+ 3732
+ ],
+ "loc": {
+ "start": {
+ "line": 135,
+ "column": 19
+ },
+ "end": {
+ "line": 135,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 3714,
+ 3733
+ ],
+ "loc": {
+ "start": {
+ "line": 135,
+ "column": 12
+ },
+ "end": {
+ "line": 135,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 3700,
+ 3743
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 33
+ },
+ "end": {
+ "line": 136,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3688,
+ 3743
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 21
+ },
+ "end": {
+ "line": 136,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3675,
+ 3743
+ ],
+ "loc": {
+ "start": {
+ "line": 134,
+ "column": 8
+ },
+ "end": {
+ "line": 136,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "idle",
+ "range": [
+ 3753,
+ 3757
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 8
+ },
+ "end": {
+ "line": 137,
+ "column": 12
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3791,
+ 3792
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 19
+ },
+ "end": {
+ "line": 138,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 3793,
+ 3798
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 21
+ },
+ "end": {
+ "line": 138,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 3791,
+ 3798
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 19
+ },
+ "end": {
+ "line": 138,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3799,
+ 3805
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 27
+ },
+ "end": {
+ "line": 138,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3791,
+ 3805
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 19
+ },
+ "end": {
+ "line": 138,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "workers",
+ "range": [
+ 3808,
+ 3815
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 36
+ },
+ "end": {
+ "line": 138,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 3791,
+ 3815
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 19
+ },
+ "end": {
+ "line": 138,
+ "column": 43
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3820,
+ 3821
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 48
+ },
+ "end": {
+ "line": 138,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 3791,
+ 3821
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 19
+ },
+ "end": {
+ "line": 138,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 3784,
+ 3822
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 12
+ },
+ "end": {
+ "line": 138,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 3770,
+ 3832
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 25
+ },
+ "end": {
+ "line": 139,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3759,
+ 3832
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 14
+ },
+ "end": {
+ "line": 139,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3753,
+ 3832
+ ],
+ "loc": {
+ "start": {
+ "line": 137,
+ "column": 8
+ },
+ "end": {
+ "line": 139,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "pause",
+ "range": [
+ 3842,
+ 3847
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 8
+ },
+ "end": {
+ "line": 140,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3875,
+ 3876
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "paused",
+ "range": [
+ 3877,
+ 3883
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 14
+ },
+ "end": {
+ "line": 141,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 3875,
+ 3883
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 3886,
+ 3890
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 23
+ },
+ "end": {
+ "line": 141,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 3875,
+ 3890
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 3875,
+ 3891
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 12
+ },
+ "end": {
+ "line": 141,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 3861,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 27
+ },
+ "end": {
+ "line": 142,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3849,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 15
+ },
+ "end": {
+ "line": 142,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3842,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 8
+ },
+ "end": {
+ "line": 142,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "resume",
+ "range": [
+ 3911,
+ 3917
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 8
+ },
+ "end": {
+ "line": 143,
+ "column": 14
+ }
+ }
+ },
+ "value": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3949,
+ 3950
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 16
+ },
+ "end": {
+ "line": 144,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "paused",
+ "range": [
+ 3951,
+ 3957
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 18
+ },
+ "end": {
+ "line": 144,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 3949,
+ 3957
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 16
+ },
+ "end": {
+ "line": 144,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 3962,
+ 3967
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 29
+ },
+ "end": {
+ "line": 144,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 3949,
+ 3967
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 16
+ },
+ "end": {
+ "line": 144,
+ "column": 34
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": null,
+ "range": [
+ 3971,
+ 3978
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 38
+ },
+ "end": {
+ "line": 144,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 3969,
+ 3980
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 36
+ },
+ "end": {
+ "line": 144,
+ "column": 47
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 3945,
+ 3980
+ ],
+ "loc": {
+ "start": {
+ "line": 144,
+ "column": 12
+ },
+ "end": {
+ "line": 144,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 3993,
+ 3994
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 12
+ },
+ "end": {
+ "line": 145,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "paused",
+ "range": [
+ 3995,
+ 4001
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 14
+ },
+ "end": {
+ "line": 145,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 3993,
+ 4001
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 12
+ },
+ "end": {
+ "line": 145,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 4004,
+ 4009
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 23
+ },
+ "end": {
+ "line": 145,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3993,
+ 4009
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 12
+ },
+ "end": {
+ "line": 145,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3993,
+ 4010
+ ],
+ "loc": {
+ "start": {
+ "line": 145,
+ "column": 12
+ },
+ "end": {
+ "line": 145,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "resumeCount",
+ "range": [
+ 4027,
+ 4038
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 16
+ },
+ "end": {
+ "line": 146,
+ "column": 27
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Math",
+ "range": [
+ 4041,
+ 4045
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 30
+ },
+ "end": {
+ "line": 146,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "min",
+ "range": [
+ 4046,
+ 4049
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 35
+ },
+ "end": {
+ "line": 146,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 4041,
+ 4049
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 30
+ },
+ "end": {
+ "line": 146,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 4050,
+ 4051
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 39
+ },
+ "end": {
+ "line": 146,
+ "column": 40
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4052,
+ 4063
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 41
+ },
+ "end": {
+ "line": 146,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 4050,
+ 4063
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 39
+ },
+ "end": {
+ "line": 146,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 4065,
+ 4066
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 54
+ },
+ "end": {
+ "line": 146,
+ "column": 55
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 4067,
+ 4072
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 56
+ },
+ "end": {
+ "line": 146,
+ "column": 61
+ }
+ }
+ },
+ "range": [
+ 4065,
+ 4072
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 54
+ },
+ "end": {
+ "line": 146,
+ "column": 61
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4073,
+ 4079
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 62
+ },
+ "end": {
+ "line": 146,
+ "column": 68
+ }
+ }
+ },
+ "range": [
+ 4065,
+ 4079
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 54
+ },
+ "end": {
+ "line": 146,
+ "column": 68
+ }
+ }
+ }
+ ],
+ "range": [
+ 4041,
+ 4080
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 30
+ },
+ "end": {
+ "line": 146,
+ "column": 69
+ }
+ }
+ },
+ "range": [
+ 4027,
+ 4080
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 16
+ },
+ "end": {
+ "line": 146,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4023,
+ 4081
+ ],
+ "loc": {
+ "start": {
+ "line": 146,
+ "column": 12
+ },
+ "end": {
+ "line": 146,
+ "column": 70
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " Need to call q.process once per concurrent",
+ "range": [
+ 4094,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 12
+ },
+ "end": {
+ "line": 147,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " worker to preserve full concurrency after pause",
+ "range": [
+ 4152,
+ 4202
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 12
+ },
+ "end": {
+ "line": 148,
+ "column": 62
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ForStatement",
+ "init": {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "w",
+ "range": [
+ 4224,
+ 4225
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 21
+ },
+ "end": {
+ "line": 149,
+ "column": 22
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4228,
+ 4229
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 25
+ },
+ "end": {
+ "line": 149,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 4224,
+ 4229
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 21
+ },
+ "end": {
+ "line": 149,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4220,
+ 4229
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 17
+ },
+ "end": {
+ "line": 149,
+ "column": 26
+ }
+ }
+ },
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<=",
+ "left": {
+ "type": "Identifier",
+ "name": "w",
+ "range": [
+ 4231,
+ 4232
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 28
+ },
+ "end": {
+ "line": 149,
+ "column": 29
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "resumeCount",
+ "range": [
+ 4236,
+ 4247
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 33
+ },
+ "end": {
+ "line": 149,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 4231,
+ 4247
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 28
+ },
+ "end": {
+ "line": 149,
+ "column": 44
+ }
+ }
+ },
+ "update": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "w",
+ "range": [
+ 4249,
+ 4250
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 46
+ },
+ "end": {
+ "line": 149,
+ "column": 47
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 4249,
+ 4252
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 46
+ },
+ "end": {
+ "line": 149,
+ "column": 49
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 4272,
+ 4284
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 16
+ },
+ "end": {
+ "line": 150,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 4285,
+ 4286
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 29
+ },
+ "end": {
+ "line": 150,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 4287,
+ 4294
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 31
+ },
+ "end": {
+ "line": 150,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 4285,
+ 4294
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 29
+ },
+ "end": {
+ "line": 150,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 4272,
+ 4295
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 16
+ },
+ "end": {
+ "line": 150,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 4272,
+ 4296
+ ],
+ "loc": {
+ "start": {
+ "line": 150,
+ "column": 16
+ },
+ "end": {
+ "line": 150,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 4254,
+ 4310
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 51
+ },
+ "end": {
+ "line": 151,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 4215,
+ 4310
+ ],
+ "loc": {
+ "start": {
+ "line": 149,
+ "column": 12
+ },
+ "end": {
+ "line": 151,
+ "column": 13
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Need to call q.process once per concurrent",
+ "range": [
+ 4094,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 12
+ },
+ "end": {
+ "line": 147,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " worker to preserve full concurrency after pause",
+ "range": [
+ 4152,
+ 4202
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 12
+ },
+ "end": {
+ "line": 148,
+ "column": 62
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 3931,
+ 4320
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 28
+ },
+ "end": {
+ "line": 152,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3919,
+ 4320
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 16
+ },
+ "end": {
+ "line": 152,
+ "column": 9
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3911,
+ 4320
+ ],
+ "loc": {
+ "start": {
+ "line": 143,
+ "column": 8
+ },
+ "end": {
+ "line": 152,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 2250,
+ 4326
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 12
+ },
+ "end": {
+ "line": 153,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 2246,
+ 4326
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 8
+ },
+ "end": {
+ "line": 153,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2242,
+ 4327
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 4
+ },
+ "end": {
+ "line": 153,
+ "column": 6
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 4339,
+ 4340
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 11
+ },
+ "end": {
+ "line": 154,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 4332,
+ 4341
+ ],
+ "loc": {
+ "start": {
+ "line": 154,
+ "column": 4
+ },
+ "end": {
+ "line": 154,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 339,
+ 4343
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 60
+ },
+ "end": {
+ "line": 155,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 294,
+ 4343
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 15
+ },
+ "end": {
+ "line": 155,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 279,
+ 4343
+ ],
+ "loc": {
+ "start": {
+ "line": 10,
+ "column": 0
+ },
+ "end": {
+ "line": 155,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 4343
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 155,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Line",
+ "value": " call drain immediately if there are no tasks",
+ "range": [
+ 836,
+ 883
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 12
+ },
+ "end": {
+ "line": 26,
+ "column": 59
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Need to call q.process once per concurrent",
+ "range": [
+ 4094,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 147,
+ "column": 12
+ },
+ "end": {
+ "line": 147,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " worker to preserve full concurrency after pause",
+ "range": [
+ 4152,
+ 4202
+ ],
+ "loc": {
+ "start": {
+ "line": 148,
+ "column": 12
+ },
+ "end": {
+ "line": 148,
+ "column": 62
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/reject.js.json b/docs/ast/source/internal/reject.js.json
new file mode 100644
index 0000000..4ce7327
--- /dev/null
+++ b/docs/ast/source/internal/reject.js.json
@@ -0,0 +1,832 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./filter",
+ "raw": "'./filter'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 56,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 24
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 63,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 31
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 71,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 39
+ },
+ "end": {
+ "line": 3,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 76,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 44
+ },
+ "end": {
+ "line": 3,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 86,
+ 94
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 54
+ },
+ "end": {
+ "line": 3,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "filter",
+ "range": [
+ 102,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 4,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachfn",
+ "range": [
+ 109,
+ 115
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arr",
+ "range": [
+ 117,
+ 120
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 19
+ },
+ "end": {
+ "line": 4,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 131,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 33
+ },
+ "end": {
+ "line": 4,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 138,
+ 140
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 40
+ },
+ "end": {
+ "line": 4,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 152,
+ 160
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 5,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 161,
+ 166
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 17
+ },
+ "end": {
+ "line": 5,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 177,
+ 180
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 33
+ },
+ "end": {
+ "line": 5,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 182,
+ 183
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 38
+ },
+ "end": {
+ "line": 5,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 203,
+ 206
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 16
+ },
+ "end": {
+ "line": 6,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 226,
+ 228
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 229,
+ 232
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 19
+ },
+ "end": {
+ "line": 7,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 226,
+ 233
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 226,
+ 234
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 16
+ },
+ "end": {
+ "line": 7,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 208,
+ 248
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 21
+ },
+ "end": {
+ "line": 8,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 272,
+ 274
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 275,
+ 279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 282,
+ 283
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 26
+ },
+ "end": {
+ "line": 9,
+ "column": 27
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 281,
+ 283
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 25
+ },
+ "end": {
+ "line": 9,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 272,
+ 284
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 272,
+ 285
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 16
+ },
+ "end": {
+ "line": 9,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 254,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 19
+ },
+ "end": {
+ "line": 10,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 199,
+ 299
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 12
+ },
+ "end": {
+ "line": 10,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 185,
+ 309
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 41
+ },
+ "end": {
+ "line": 11,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 168,
+ 309
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 24
+ },
+ "end": {
+ "line": 11,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 152,
+ 310
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 152,
+ 311
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 8
+ },
+ "end": {
+ "line": 11,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 142,
+ 317
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 44
+ },
+ "end": {
+ "line": 12,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 122,
+ 317
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 24
+ },
+ "end": {
+ "line": 12,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 319,
+ 327
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 7
+ },
+ "end": {
+ "line": 12,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 102,
+ 328
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 12,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 102,
+ 329
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 4
+ },
+ "end": {
+ "line": 12,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 96,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 64
+ },
+ "end": {
+ "line": 13,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 47,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 13,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 32,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 13,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 331
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 13,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/setImmediate.js.json b/docs/ast/source/internal/setImmediate.js.json
new file mode 100644
index 0000000..ac9084e
--- /dev/null
+++ b/docs/ast/source/internal/setImmediate.js.json
@@ -0,0 +1,1737 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "Literal",
+ "value": "use strict",
+ "raw": "'use strict'",
+ "range": [
+ 0,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 0,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 22,
+ 26
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 22,
+ 26
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 32,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 15,
+ 46
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExportNamedDeclaration",
+ "declaration": {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "hasSetImmediate",
+ "range": [
+ 59,
+ 74
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 5,
+ "column": 26
+ }
+ }
+ },
+ "init": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 84,
+ 96
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 36
+ },
+ "end": {
+ "line": 5,
+ "column": 48
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 77,
+ 96
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 29
+ },
+ "end": {
+ "line": 5,
+ "column": 48
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 101,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 53
+ },
+ "end": {
+ "line": 5,
+ "column": 63
+ }
+ }
+ },
+ "range": [
+ 77,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 29
+ },
+ "end": {
+ "line": 5,
+ "column": 63
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 115,
+ 127
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 67
+ },
+ "end": {
+ "line": 5,
+ "column": 79
+ }
+ }
+ },
+ "range": [
+ 77,
+ 127
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 29
+ },
+ "end": {
+ "line": 5,
+ "column": 79
+ }
+ }
+ },
+ "range": [
+ 59,
+ 127
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 11
+ },
+ "end": {
+ "line": 5,
+ "column": 79
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 55,
+ 128
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 80
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "specifiers": [],
+ "source": null,
+ "range": [
+ 48,
+ 128
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 80
+ }
+ }
+ },
+ {
+ "type": "ExportNamedDeclaration",
+ "declaration": {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "hasNextTick",
+ "range": [
+ 140,
+ 151
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 22
+ }
+ }
+ },
+ "init": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 161,
+ 168
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 32
+ },
+ "end": {
+ "line": 6,
+ "column": 39
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 154,
+ 168
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 25
+ },
+ "end": {
+ "line": 6,
+ "column": 39
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "object",
+ "raw": "'object'",
+ "range": [
+ 173,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 44
+ },
+ "end": {
+ "line": 6,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 154,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 25
+ },
+ "end": {
+ "line": 6,
+ "column": 52
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 192,
+ 199
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 63
+ },
+ "end": {
+ "line": 6,
+ "column": 70
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 200,
+ 208
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 71
+ },
+ "end": {
+ "line": 6,
+ "column": 79
+ }
+ }
+ },
+ "range": [
+ 192,
+ 208
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 63
+ },
+ "end": {
+ "line": 6,
+ "column": 79
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 185,
+ 208
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 56
+ },
+ "end": {
+ "line": 6,
+ "column": 79
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 213,
+ 223
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 84
+ },
+ "end": {
+ "line": 6,
+ "column": 94
+ }
+ }
+ },
+ "range": [
+ 185,
+ 223
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 56
+ },
+ "end": {
+ "line": 6,
+ "column": 94
+ }
+ }
+ },
+ "range": [
+ 154,
+ 223
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 25
+ },
+ "end": {
+ "line": 6,
+ "column": 94
+ }
+ }
+ },
+ "range": [
+ 140,
+ 223
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 11
+ },
+ "end": {
+ "line": 6,
+ "column": 94
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 136,
+ 224
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 95
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "specifiers": [],
+ "source": null,
+ "range": [
+ 129,
+ 224
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 6,
+ "column": 95
+ }
+ }
+ },
+ {
+ "type": "ExportNamedDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "fallback",
+ "range": [
+ 242,
+ 250
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 16
+ },
+ "end": {
+ "line": 8,
+ "column": 24
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 251,
+ 253
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 25
+ },
+ "end": {
+ "line": 8,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setTimeout",
+ "range": [
+ 261,
+ 271
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 9,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 272,
+ 274
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 15
+ },
+ "end": {
+ "line": 9,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 276,
+ 277
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 19
+ },
+ "end": {
+ "line": 9,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 261,
+ 278
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 9,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 261,
+ 279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 4
+ },
+ "end": {
+ "line": 9,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 255,
+ 281
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 29
+ },
+ "end": {
+ "line": 10,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 233,
+ 281
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 7
+ },
+ "end": {
+ "line": 10,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "specifiers": [],
+ "source": null,
+ "range": [
+ 226,
+ 281
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 10,
+ "column": 1
+ }
+ }
+ },
+ {
+ "type": "ExportNamedDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "wrap",
+ "range": [
+ 299,
+ 303
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 16
+ },
+ "end": {
+ "line": 12,
+ "column": 20
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "defer",
+ "range": [
+ 304,
+ 309
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 21
+ },
+ "end": {
+ "line": 12,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 324,
+ 328
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 11
+ },
+ "end": {
+ "line": 13,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 339,
+ 341
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 26
+ },
+ "end": {
+ "line": 13,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 343,
+ 347
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 30
+ },
+ "end": {
+ "line": 13,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "defer",
+ "range": [
+ 359,
+ 364
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 8
+ },
+ "end": {
+ "line": 14,
+ "column": 13
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 391,
+ 393
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 394,
+ 399
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 15
+ },
+ "end": {
+ "line": 15,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 391,
+ 399
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 400,
+ 404
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 21
+ },
+ "end": {
+ "line": 15,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 406,
+ 410
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 27
+ },
+ "end": {
+ "line": 15,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 391,
+ 411
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 391,
+ 412
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 12
+ },
+ "end": {
+ "line": 15,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 377,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 26
+ },
+ "end": {
+ "line": 16,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 365,
+ 422
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 14
+ },
+ "end": {
+ "line": 16,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 359,
+ 423
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 359,
+ 424
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 8
+ },
+ "end": {
+ "line": 16,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 349,
+ 430
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 36
+ },
+ "end": {
+ "line": 17,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 329,
+ 430
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 16
+ },
+ "end": {
+ "line": 17,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 324,
+ 431
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 11
+ },
+ "end": {
+ "line": 17,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 317,
+ 432
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 4
+ },
+ "end": {
+ "line": 17,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 311,
+ 434
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 28
+ },
+ "end": {
+ "line": 18,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 290,
+ 434
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 7
+ },
+ "end": {
+ "line": 18,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "specifiers": [],
+ "source": null,
+ "range": [
+ 283,
+ 434
+ ],
+ "loc": {
+ "start": {
+ "line": 12,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 1
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 440,
+ 446
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 10
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 440,
+ 446
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 436,
+ 447
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 11
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "hasSetImmediate",
+ "range": [
+ 453,
+ 468
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 4
+ },
+ "end": {
+ "line": 22,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 476,
+ 482
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 23,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 485,
+ 497
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 476,
+ 497
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 23,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 476,
+ 498
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 23,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 470,
+ 500
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 21
+ },
+ "end": {
+ "line": 24,
+ "column": 1
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "hasNextTick",
+ "range": [
+ 510,
+ 521
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 11
+ },
+ "end": {
+ "line": 24,
+ "column": 22
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 529,
+ 535
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 538,
+ 545
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 546,
+ 554
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 21
+ },
+ "end": {
+ "line": 25,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 538,
+ 554
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 529,
+ 554
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 529,
+ 555
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 4
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 523,
+ 557
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 24
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 569,
+ 575
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "fallback",
+ "range": [
+ 578,
+ 586
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 13
+ },
+ "end": {
+ "line": 27,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 569,
+ 586
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 569,
+ 587
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 563,
+ 589
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 7
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ }
+ },
+ "range": [
+ 506,
+ 589
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 7
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ }
+ },
+ "range": [
+ 449,
+ 589
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 1
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "wrap",
+ "range": [
+ 606,
+ 610
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 611,
+ 617
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 20
+ },
+ "end": {
+ "line": 30,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 606,
+ 618
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 27
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 591,
+ 619
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 619
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 30,
+ "column": 28
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/internal/withoutIndex.js.json b/docs/ast/source/internal/withoutIndex.js.json
new file mode 100644
index 0000000..bf051e4
--- /dev/null
+++ b/docs/ast/source/internal/withoutIndex.js.json
@@ -0,0 +1,318 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_withoutIndex",
+ "range": [
+ 24,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 38,
+ 46
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 38
+ },
+ "end": {
+ "line": 1,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 71,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 78,
+ 83
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 28
+ },
+ "end": {
+ "line": 2,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 85,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 35
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 112,
+ 120
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 121,
+ 126
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 24
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 128,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 31
+ },
+ "end": {
+ "line": 3,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 112,
+ 137
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 15
+ },
+ "end": {
+ "line": 3,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 105,
+ 138
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 8
+ },
+ "end": {
+ "line": 3,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 95,
+ 144
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 45
+ },
+ "end": {
+ "line": 4,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 61,
+ 144
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 11
+ },
+ "end": {
+ "line": 4,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 54,
+ 145
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 4
+ },
+ "end": {
+ "line": 4,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 48,
+ 147
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 48
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 15,
+ 147
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 15
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 0,
+ 147
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 147
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 1
+ }
+ },
+ "comments": []
+} \ No newline at end of file
diff --git a/docs/ast/source/iterator.js.json b/docs/ast/source/iterator.js.json
new file mode 100644
index 0000000..1fb40e7
--- /dev/null
+++ b/docs/ast/source/iterator.js.json
@@ -0,0 +1,1142 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 957,
+ 962
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 24
+ },
+ "end": {
+ "line": 33,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "makeCallback",
+ "range": [
+ 979,
+ 991
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 13
+ },
+ "end": {
+ "line": 34,
+ "column": 25
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 992,
+ 997
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 26
+ },
+ "end": {
+ "line": 34,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1018,
+ 1020
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 17
+ },
+ "end": {
+ "line": 35,
+ "column": 19
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1041,
+ 1046
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 16
+ },
+ "end": {
+ "line": 36,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1047,
+ 1053
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 22
+ },
+ "end": {
+ "line": 36,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1041,
+ 1053
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 16
+ },
+ "end": {
+ "line": 36,
+ "column": 28
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1073,
+ 1078
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 1079,
+ 1084
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 22
+ },
+ "end": {
+ "line": 37,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1073,
+ 1085
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 28
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1086,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 29
+ },
+ "end": {
+ "line": 37,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1073,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1092,
+ 1096
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 35
+ },
+ "end": {
+ "line": 37,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1098,
+ 1107
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 41
+ },
+ "end": {
+ "line": 37,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1073,
+ 1108
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1073,
+ 1109
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 16
+ },
+ "end": {
+ "line": 37,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "range": [
+ 1055,
+ 1123
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 30
+ },
+ "end": {
+ "line": 38,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1037,
+ 1123
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 12
+ },
+ "end": {
+ "line": 38,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1143,
+ 1145
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 19
+ },
+ "end": {
+ "line": 39,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1146,
+ 1150
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 22
+ },
+ "end": {
+ "line": 39,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 1143,
+ 1150
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 19
+ },
+ "end": {
+ "line": 39,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1143,
+ 1152
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 19
+ },
+ "end": {
+ "line": 39,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1136,
+ 1153
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 1023,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 22
+ },
+ "end": {
+ "line": 40,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1009,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1172,
+ 1174
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 41,
+ "column": 10
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1175,
+ 1179
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 11
+ },
+ "end": {
+ "line": 41,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 1172,
+ 1179
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 41,
+ "column": 15
+ }
+ }
+ },
+ "right": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 1215,
+ 1220
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 20
+ },
+ "end": {
+ "line": 42,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1223,
+ 1228
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 28
+ },
+ "end": {
+ "line": 42,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1229,
+ 1235
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 34
+ },
+ "end": {
+ "line": 42,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 1223,
+ 1235
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 28
+ },
+ "end": {
+ "line": 42,
+ "column": 40
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1238,
+ 1239
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 43
+ },
+ "end": {
+ "line": 42,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 1223,
+ 1239
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 28
+ },
+ "end": {
+ "line": 42,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 1215,
+ 1239
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 20
+ },
+ "end": {
+ "line": 42,
+ "column": 44
+ }
+ }
+ },
+ "consequent": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "makeCallback",
+ "range": [
+ 1243,
+ 1255
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 48
+ },
+ "end": {
+ "line": 42,
+ "column": 60
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "Identifier",
+ "name": "index",
+ "range": [
+ 1256,
+ 1261
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 61
+ },
+ "end": {
+ "line": 42,
+ "column": 66
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1264,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 69
+ },
+ "end": {
+ "line": 42,
+ "column": 70
+ }
+ }
+ },
+ "range": [
+ 1256,
+ 1265
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 61
+ },
+ "end": {
+ "line": 42,
+ "column": 70
+ }
+ }
+ }
+ ],
+ "range": [
+ 1243,
+ 1266
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 48
+ },
+ "end": {
+ "line": 42,
+ "column": 71
+ }
+ }
+ },
+ "alternate": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1269,
+ 1273
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 74
+ },
+ "end": {
+ "line": 42,
+ "column": 78
+ }
+ }
+ },
+ "range": [
+ 1214,
+ 1273
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 19
+ },
+ "end": {
+ "line": 42,
+ "column": 78
+ }
+ }
+ },
+ "range": [
+ 1207,
+ 1274
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 12
+ },
+ "end": {
+ "line": 42,
+ "column": 79
+ }
+ }
+ }
+ ],
+ "range": [
+ 1193,
+ 1284
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 29
+ },
+ "end": {
+ "line": 43,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1182,
+ 1284
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 18
+ },
+ "end": {
+ "line": 43,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1172,
+ 1284
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1172,
+ 1285
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 10
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1301,
+ 1303
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 15
+ },
+ "end": {
+ "line": 44,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1294,
+ 1304
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 999,
+ 1310
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 33
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 970,
+ 1310
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 4
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "makeCallback",
+ "range": [
+ 1322,
+ 1334
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 11
+ },
+ "end": {
+ "line": 46,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1335,
+ 1336
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 24
+ },
+ "end": {
+ "line": 46,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 1322,
+ 1337
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 11
+ },
+ "end": {
+ "line": 46,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 1315,
+ 1338
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 964,
+ 1340
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 31
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 948,
+ 1340
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 15
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates an iterator function which calls the next function in the `tasks`\n * array, returning a continuation to call the next one after that. It's also\n * possible to “peek” at the next iterator with `iterator.next()`.\n *\n * This function is used internally by the `async` module, but can be useful\n * when you want to manually control the flow of functions in series.\n *\n * @name iterator\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run.\n * @returns The next function to run in the series.\n * @example\n *\n * var iterator = async.iterator([\n * function() { sys.p('one'); },\n * function() { sys.p('two'); },\n * function() { sys.p('three'); }\n * ]);\n *\n * node> var iterator2 = iterator();\n * 'one'\n * node> var iterator3 = iterator2();\n * 'two'\n * node> iterator3();\n * 'three'\n * node> var nextfn = iterator2.next();\n * node> nextfn();\n * 'three'\n ",
+ "range": [
+ 0,
+ 932
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 933,
+ 1340
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates an iterator function which calls the next function in the `tasks`\n * array, returning a continuation to call the next one after that. It's also\n * possible to “peek” at the next iterator with `iterator.next()`.\n *\n * This function is used internally by the `async` module, but can be useful\n * when you want to manually control the flow of functions in series.\n *\n * @name iterator\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run.\n * @returns The next function to run in the series.\n * @example\n *\n * var iterator = async.iterator([\n * function() { sys.p('one'); },\n * function() { sys.p('two'); },\n * function() { sys.p('three'); }\n * ]);\n *\n * node> var iterator2 = iterator();\n * 'one'\n * node> var iterator3 = iterator2();\n * 'two'\n * node> iterator3();\n * 'three'\n * node> var nextfn = iterator2.next();\n * node> nextfn();\n * 'three'\n ",
+ "range": [
+ 0,
+ 932
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 933,
+ 1340
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Creates an iterator function which calls the next function in the `tasks`\n * array, returning a continuation to call the next one after that. It's also\n * possible to “peek” at the next iterator with `iterator.next()`.\n *\n * This function is used internally by the `async` module, but can be useful\n * when you want to manually control the flow of functions in series.\n *\n * @name iterator\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run.\n * @returns The next function to run in the series.\n * @example\n *\n * var iterator = async.iterator([\n * function() { sys.p('one'); },\n * function() { sys.p('two'); },\n * function() { sys.p('three'); }\n * ]);\n *\n * node> var iterator2 = iterator();\n * 'one'\n * node> var iterator3 = iterator2();\n * 'two'\n * node> iterator3();\n * 'three'\n * node> var nextfn = iterator2.next();\n * node> nextfn();\n * 'three'\n ",
+ "range": [
+ 0,
+ 932
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/log.js.json b/docs/ast/source/log.js.json
new file mode 100644
index 0000000..f7f8f27
--- /dev/null
+++ b/docs/ast/source/log.js.json
@@ -0,0 +1,247 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "consoleFunc",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/consoleFunc",
+ "raw": "'./internal/consoleFunc'",
+ "range": [
+ 24,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 0,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n ",
+ "range": [
+ 51,
+ 840
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "consoleFunc",
+ "range": [
+ 856,
+ 867
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "log",
+ "raw": "'log'",
+ "range": [
+ 868,
+ 873
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 27
+ },
+ "end": {
+ "line": 29,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 856,
+ 874
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 33
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n ",
+ "range": [
+ 51,
+ 840
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 841,
+ 875
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 34
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n ",
+ "range": [
+ 51,
+ 840
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 875
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 34
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n ",
+ "range": [
+ 51,
+ 840
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/map.js.json b/docs/ast/source/map.js.json
new file mode 100644
index 0000000..b918ff4
--- /dev/null
+++ b/docs/ast/source/map.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapLimit",
+ "raw": "'./mapLimit'",
+ "range": [
+ 21,
+ 33
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 0,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 42,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 42,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 55,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 35,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines)\n *\n * @name map\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n ",
+ "range": [
+ 78,
+ 1747
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1763,
+ 1770
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 15
+ },
+ "end": {
+ "line": 39,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 1771,
+ 1779
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 23
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1781,
+ 1789
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 33
+ },
+ "end": {
+ "line": 39,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 1763,
+ 1790
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 15
+ },
+ "end": {
+ "line": 39,
+ "column": 42
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines)\n *\n * @name map\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n ",
+ "range": [
+ 78,
+ 1747
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1748,
+ 1791
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 0
+ },
+ "end": {
+ "line": 39,
+ "column": 43
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines)\n *\n * @name map\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n ",
+ "range": [
+ 78,
+ 1747
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1791
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 39,
+ "column": 43
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines)\n *\n * @name map\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n ",
+ "range": [
+ 78,
+ 1747
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 38,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/mapLimit.js.json b/docs/ast/source/mapLimit.js.json
new file mode 100644
index 0000000..4814e5c
--- /dev/null
+++ b/docs/ast/source/mapLimit.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 7,
+ 22
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 7,
+ 22
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doParallelLimit",
+ "raw": "'./internal/doParallelLimit'",
+ "range": [
+ 28,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 28
+ },
+ "end": {
+ "line": 1,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 0,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 65,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 65,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/map",
+ "raw": "'./internal/map'",
+ "range": [
+ 74,
+ 90
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 16
+ },
+ "end": {
+ "line": 2,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 58,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 33
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a transformed\n * item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 93,
+ 907
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 923,
+ 938
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 939,
+ 942
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 31
+ },
+ "end": {
+ "line": 22,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 923,
+ 943
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a transformed\n * item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 93,
+ 907
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 908,
+ 944
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a transformed\n * item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 93,
+ 907
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 944
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 36
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a transformed\n * item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 93,
+ 907
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/mapSeries.js.json b/docs/ast/source/mapSeries.js.json
new file mode 100644
index 0000000..29f8f10
--- /dev/null
+++ b/docs/ast/source/mapSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapLimit",
+ "raw": "'./mapLimit'",
+ "range": [
+ 21,
+ 33
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 0,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 42,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 42,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 55,
+ 75
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 35,
+ 76
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 78,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 824,
+ 831
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 832,
+ 840
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 23
+ },
+ "end": {
+ "line": 21,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 842,
+ 843
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 33
+ },
+ "end": {
+ "line": 21,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 824,
+ 844
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 35
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 78,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 809,
+ 845
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 78,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 845
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 36
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `map` but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n ",
+ "range": [
+ 78,
+ 808
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/mapValues.js.json b/docs/ast/source/mapValues.js.json
new file mode 100644
index 0000000..6ff66d9
--- /dev/null
+++ b/docs/ast/source/mapValues.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 7,
+ 21
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 7,
+ 21
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapValuesLimit",
+ "raw": "'./mapValuesLimit'",
+ "range": [
+ 27,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 27
+ },
+ "end": {
+ "line": 1,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 0,
+ 46
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 54,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 54,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 67,
+ 87
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 47,
+ 88
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `map`, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf async\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value and key in\n * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n * called once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `obj`. Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, fs.stat, function(err, result) {\n * // results is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n ",
+ "range": [
+ 91,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1753,
+ 1760
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 1761,
+ 1775
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 23
+ },
+ "end": {
+ "line": 46,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1777,
+ 1785
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 39
+ },
+ "end": {
+ "line": 46,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 1753,
+ 1786
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 15
+ },
+ "end": {
+ "line": 46,
+ "column": 48
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `map`, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf async\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value and key in\n * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n * called once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `obj`. Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, fs.stat, function(err, result) {\n * // results is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n ",
+ "range": [
+ 91,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1738,
+ 1787
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 49
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `map`, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf async\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value and key in\n * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n * called once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `obj`. Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, fs.stat, function(err, result) {\n * // results is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n ",
+ "range": [
+ 91,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1787
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 49
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `map`, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf async\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value and key in\n * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n * called once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `obj`. Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, fs.stat, function(err, result) {\n * // results is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n ",
+ "range": [
+ 91,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/mapValuesLimit.js.json b/docs/ast/source/mapValuesLimit.js.json
new file mode 100644
index 0000000..34c4c7f
--- /dev/null
+++ b/docs/ast/source/mapValuesLimit.js.json
@@ -0,0 +1,1163 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 42,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 901,
+ 915
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 24
+ },
+ "end": {
+ "line": 22,
+ "column": 38
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 916,
+ 919
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 39
+ },
+ "end": {
+ "line": 22,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 921,
+ 926
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 44
+ },
+ "end": {
+ "line": 22,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 928,
+ 936
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 51
+ },
+ "end": {
+ "line": 22,
+ "column": 59
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 938,
+ 946
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 61
+ },
+ "end": {
+ "line": 22,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "newObj",
+ "range": [
+ 958,
+ 964
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 8
+ },
+ "end": {
+ "line": 23,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 967,
+ 969
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 17
+ },
+ "end": {
+ "line": 23,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 958,
+ 969
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 8
+ },
+ "end": {
+ "line": 23,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 954,
+ 970
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 4
+ },
+ "end": {
+ "line": 23,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 975,
+ 986
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 24,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 987,
+ 990
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 16
+ },
+ "end": {
+ "line": 24,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 992,
+ 997
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 21
+ },
+ "end": {
+ "line": 24,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "val",
+ "range": [
+ 1008,
+ 1011
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 37
+ },
+ "end": {
+ "line": 24,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1013,
+ 1016
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 42
+ },
+ "end": {
+ "line": 24,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1018,
+ 1022
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 47
+ },
+ "end": {
+ "line": 24,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1034,
+ 1042
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 25,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "val",
+ "range": [
+ 1043,
+ 1046
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 17
+ },
+ "end": {
+ "line": 25,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1048,
+ 1051
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 22
+ },
+ "end": {
+ "line": 25,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1063,
+ 1066
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 37
+ },
+ "end": {
+ "line": 25,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 1068,
+ 1074
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 42
+ },
+ "end": {
+ "line": 25,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1094,
+ 1097
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 16
+ },
+ "end": {
+ "line": 26,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1106,
+ 1110
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 28
+ },
+ "end": {
+ "line": 26,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1111,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 33
+ },
+ "end": {
+ "line": 26,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1106,
+ 1115
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 28
+ },
+ "end": {
+ "line": 26,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1099,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 21
+ },
+ "end": {
+ "line": 26,
+ "column": 38
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1090,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 12
+ },
+ "end": {
+ "line": 26,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "newObj",
+ "range": [
+ 1129,
+ 1135
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1136,
+ 1139
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1129,
+ 1140
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 1143,
+ 1149
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 26
+ },
+ "end": {
+ "line": 27,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1129,
+ 1149
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1129,
+ 1150
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 12
+ },
+ "end": {
+ "line": 27,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1163,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 12
+ },
+ "end": {
+ "line": 28,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1163,
+ 1169
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 12
+ },
+ "end": {
+ "line": 28,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1163,
+ 1170
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 12
+ },
+ "end": {
+ "line": 28,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1076,
+ 1180
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 50
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1053,
+ 1180
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 27
+ },
+ "end": {
+ "line": 29,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1034,
+ 1181
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1034,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1024,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 53
+ },
+ "end": {
+ "line": 30,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 999,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 28
+ },
+ "end": {
+ "line": 30,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1200,
+ 1203
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 17
+ },
+ "end": {
+ "line": 30,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1215,
+ 1223
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 31,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1224,
+ 1227
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 17
+ },
+ "end": {
+ "line": 31,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "newObj",
+ "range": [
+ 1229,
+ 1235
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 22
+ },
+ "end": {
+ "line": 31,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 1215,
+ 1236
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 31,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1215,
+ 1237
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 8
+ },
+ "end": {
+ "line": 31,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1205,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 22
+ },
+ "end": {
+ "line": 32,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1190,
+ 1243
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 7
+ },
+ "end": {
+ "line": 32,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 975,
+ 1244
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 32,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 975,
+ 1245
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 32,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 948,
+ 1247
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 71
+ },
+ "end": {
+ "line": 33,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 892,
+ 1247
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 15
+ },
+ "end": {
+ "line": 33,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 42,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 877,
+ 1247
+ ],
+ "loc": {
+ "start": {
+ "line": 22,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 42,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1247
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 42,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/mapValuesSeries.js.json b/docs/ast/source/mapValuesSeries.js.json
new file mode 100644
index 0000000..2cb1bae
--- /dev/null
+++ b/docs/ast/source/mapValuesSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 7,
+ 21
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 7,
+ 21
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapValuesLimit",
+ "raw": "'./mapValuesLimit'",
+ "range": [
+ 27,
+ 45
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 27
+ },
+ "end": {
+ "line": 1,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 0,
+ 46
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 54,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 54,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 67,
+ 87
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 47,
+ 88
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 90,
+ 837
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 853,
+ 860
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "mapValuesLimit",
+ "range": [
+ 861,
+ 875
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 23
+ },
+ "end": {
+ "line": 21,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 877,
+ 878
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 39
+ },
+ "end": {
+ "line": 21,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 853,
+ 879
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 41
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 90,
+ 837
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 838,
+ 880
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 42
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 90,
+ 837
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 880
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 42
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `mapValues` but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n ",
+ "range": [
+ 90,
+ 837
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/memoize.js.json b/docs/ast/source/memoize.js.json
new file mode 100644
index 0000000..68f6e7e
--- /dev/null
+++ b/docs/ast/source/memoize.js.json
@@ -0,0 +1,3490 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/identity",
+ "raw": "'lodash/identity'",
+ "range": [
+ 21,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 47,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 47,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 57,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 40,
+ 71
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 80,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 80,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/setImmediate",
+ "raw": "'./internal/setImmediate'",
+ "range": [
+ 98,
+ 123
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 25
+ },
+ "end": {
+ "line": 4,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 73,
+ 124
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 132,
+ 145
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 132,
+ 145
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 151,
+ 177
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 26
+ },
+ "end": {
+ "line": 5,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 125,
+ 178
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "has",
+ "range": [
+ 189,
+ 192
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 9
+ },
+ "end": {
+ "line": 7,
+ "column": 12
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 193,
+ 196
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 13
+ },
+ "end": {
+ "line": 7,
+ "column": 16
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 198,
+ 201
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "BinaryExpression",
+ "operator": "in",
+ "left": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 216,
+ 219
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 11
+ },
+ "end": {
+ "line": 8,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "obj",
+ "range": [
+ 223,
+ 226
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 18
+ },
+ "end": {
+ "line": 8,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 216,
+ 226
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 11
+ },
+ "end": {
+ "line": 8,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 209,
+ 227
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 4
+ },
+ "end": {
+ "line": 8,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 203,
+ 229
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 23
+ },
+ "end": {
+ "line": 9,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 180,
+ 229
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 9,
+ "column": 1
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Caches the results of an `async` function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {Function} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n ",
+ "range": [
+ 231,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "memoize",
+ "range": [
+ 1559,
+ 1566
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 24
+ },
+ "end": {
+ "line": 47,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1567,
+ 1569
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 32
+ },
+ "end": {
+ "line": 47,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "hasher",
+ "range": [
+ 1571,
+ 1577
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 36
+ },
+ "end": {
+ "line": 47,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1589,
+ 1593
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Object",
+ "range": [
+ 1596,
+ 1602
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "create",
+ "range": [
+ 1603,
+ 1609
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 22
+ },
+ "end": {
+ "line": 48,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1596,
+ 1609
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1610,
+ 1614
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 29
+ },
+ "end": {
+ "line": 48,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 1596,
+ 1615
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1589,
+ 1615
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1585,
+ 1616
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 4
+ },
+ "end": {
+ "line": 48,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 1625,
+ 1631
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Object",
+ "range": [
+ 1634,
+ 1640
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 17
+ },
+ "end": {
+ "line": 49,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "create",
+ "range": [
+ 1641,
+ 1647
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 24
+ },
+ "end": {
+ "line": 49,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1634,
+ 1647
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 17
+ },
+ "end": {
+ "line": 49,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1648,
+ 1652
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 31
+ },
+ "end": {
+ "line": 49,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1634,
+ 1653
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 17
+ },
+ "end": {
+ "line": 49,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 1625,
+ 1653
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1621,
+ 1654
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 4
+ },
+ "end": {
+ "line": 49,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "hasher",
+ "range": [
+ 1659,
+ 1665
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 4
+ },
+ "end": {
+ "line": 50,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "hasher",
+ "range": [
+ 1668,
+ 1674
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 13
+ },
+ "end": {
+ "line": 50,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 1678,
+ 1686
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 23
+ },
+ "end": {
+ "line": 50,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1668,
+ 1686
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 13
+ },
+ "end": {
+ "line": 50,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1659,
+ 1686
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 4
+ },
+ "end": {
+ "line": 50,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1659,
+ 1687
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 4
+ },
+ "end": {
+ "line": 50,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "memoized",
+ "range": [
+ 1696,
+ 1704
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 1707,
+ 1720
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 19
+ },
+ "end": {
+ "line": 51,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "memoized",
+ "range": [
+ 1730,
+ 1738
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 42
+ },
+ "end": {
+ "line": 51,
+ "column": 50
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1739,
+ 1743
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 51
+ },
+ "end": {
+ "line": 51,
+ "column": 55
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1745,
+ 1753
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 57
+ },
+ "end": {
+ "line": 51,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1769,
+ 1772
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "hasher",
+ "range": [
+ 1775,
+ 1781
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 18
+ },
+ "end": {
+ "line": 52,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1782,
+ 1787
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 25
+ },
+ "end": {
+ "line": 52,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1775,
+ 1787
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 18
+ },
+ "end": {
+ "line": 52,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1788,
+ 1792
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 31
+ },
+ "end": {
+ "line": 52,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1794,
+ 1798
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 37
+ },
+ "end": {
+ "line": 52,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 1775,
+ 1799
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 18
+ },
+ "end": {
+ "line": 52,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 1769,
+ 1799
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1765,
+ 1800
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 52,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "has",
+ "range": [
+ 1813,
+ 1816
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 53,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1817,
+ 1821
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 16
+ },
+ "end": {
+ "line": 53,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1823,
+ 1826
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 1813,
+ 1827
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 53,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 1843,
+ 1855
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 54,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1885,
+ 1893
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1894,
+ 1899
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 25
+ },
+ "end": {
+ "line": 55,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1885,
+ 1899
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1900,
+ 1904
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 31
+ },
+ "end": {
+ "line": 55,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1906,
+ 1910
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 37
+ },
+ "end": {
+ "line": 55,
+ "column": 41
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1911,
+ 1914
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 42
+ },
+ "end": {
+ "line": 55,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1906,
+ 1915
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 37
+ },
+ "end": {
+ "line": 55,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1885,
+ 1916
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1885,
+ 1917
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1867,
+ 1931
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 36
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1856,
+ 1931
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 25
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1843,
+ 1932
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 56,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 1843,
+ 1933
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 56,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 1829,
+ 1943
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 28
+ },
+ "end": {
+ "line": 57,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "has",
+ "range": [
+ 1953,
+ 1956
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 19
+ },
+ "end": {
+ "line": 57,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 1957,
+ 1963
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 23
+ },
+ "end": {
+ "line": 57,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1965,
+ 1968
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 31
+ },
+ "end": {
+ "line": 57,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1953,
+ 1969
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 19
+ },
+ "end": {
+ "line": 57,
+ "column": 35
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 1985,
+ 1991
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 1992,
+ 1995
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 19
+ },
+ "end": {
+ "line": 58,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1985,
+ 1996
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 23
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 1997,
+ 2001
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 24
+ },
+ "end": {
+ "line": 58,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1985,
+ 2001
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 28
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2002,
+ 2010
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 29
+ },
+ "end": {
+ "line": 58,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 1985,
+ 2011
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1985,
+ 2012
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 1971,
+ 2022
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 37
+ },
+ "end": {
+ "line": 59,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 2042,
+ 2048
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 2049,
+ 2052
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 19
+ },
+ "end": {
+ "line": 60,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 2042,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2057,
+ 2065
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 27
+ },
+ "end": {
+ "line": 60,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 2056,
+ 2066
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 26
+ },
+ "end": {
+ "line": 60,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 2042,
+ 2066
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 2042,
+ 2067
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 2080,
+ 2082
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 61,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2083,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 15
+ },
+ "end": {
+ "line": 61,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 2080,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 61,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2089,
+ 2093
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 21
+ },
+ "end": {
+ "line": 61,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2095,
+ 2099
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 27
+ },
+ "end": {
+ "line": 61,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 2100,
+ 2106
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 32
+ },
+ "end": {
+ "line": 61,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 2095,
+ 2106
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 27
+ },
+ "end": {
+ "line": 61,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 2108,
+ 2112
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 40
+ },
+ "end": {
+ "line": 61,
+ "column": 44
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2122,
+ 2126
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 54
+ },
+ "end": {
+ "line": 61,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 2146,
+ 2150
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 2151,
+ 2154
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 21
+ },
+ "end": {
+ "line": 62,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2146,
+ 2155
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2158,
+ 2162
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 28
+ },
+ "end": {
+ "line": 62,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 2146,
+ 2162
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 2146,
+ 2163
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2184,
+ 2185
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 63,
+ "column": 21
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 2188,
+ 2194
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 24
+ },
+ "end": {
+ "line": 63,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 2195,
+ 2198
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 31
+ },
+ "end": {
+ "line": 63,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2188,
+ 2199
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 24
+ },
+ "end": {
+ "line": 63,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2184,
+ 2199
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 20
+ },
+ "end": {
+ "line": 63,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2180,
+ 2200
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 16
+ },
+ "end": {
+ "line": 63,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UnaryExpression",
+ "operator": "delete",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "queues",
+ "range": [
+ 2224,
+ 2230
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 23
+ },
+ "end": {
+ "line": 64,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "key",
+ "range": [
+ 2231,
+ 2234
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 30
+ },
+ "end": {
+ "line": 64,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 2224,
+ 2235
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 23
+ },
+ "end": {
+ "line": 64,
+ "column": 34
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2217,
+ 2235
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 16
+ },
+ "end": {
+ "line": 64,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2217,
+ 2236
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 16
+ },
+ "end": {
+ "line": 64,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ForStatement",
+ "init": {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 2262,
+ 2263
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 25
+ },
+ "end": {
+ "line": 65,
+ "column": 26
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2266,
+ 2267
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 29
+ },
+ "end": {
+ "line": 65,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 2262,
+ 2267
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 25
+ },
+ "end": {
+ "line": 65,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "l",
+ "range": [
+ 2269,
+ 2270
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 32
+ },
+ "end": {
+ "line": 65,
+ "column": 33
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2273,
+ 2274
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 36
+ },
+ "end": {
+ "line": 65,
+ "column": 37
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2275,
+ 2281
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 38
+ },
+ "end": {
+ "line": 65,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 2273,
+ 2281
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 36
+ },
+ "end": {
+ "line": 65,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 2269,
+ 2281
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 32
+ },
+ "end": {
+ "line": 65,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2258,
+ 2281
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 21
+ },
+ "end": {
+ "line": 65,
+ "column": 44
+ }
+ }
+ },
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 2283,
+ 2284
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 46
+ },
+ "end": {
+ "line": 65,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "l",
+ "range": [
+ 2287,
+ 2288
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 50
+ },
+ "end": {
+ "line": 65,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 2283,
+ 2288
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 46
+ },
+ "end": {
+ "line": 65,
+ "column": 51
+ }
+ }
+ },
+ "update": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 2290,
+ 2291
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 53
+ },
+ "end": {
+ "line": 65,
+ "column": 54
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 2290,
+ 2293
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 53
+ },
+ "end": {
+ "line": 65,
+ "column": 56
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2317,
+ 2318
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 20
+ },
+ "end": {
+ "line": 66,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 2319,
+ 2320
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 22
+ },
+ "end": {
+ "line": 66,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2317,
+ 2321
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 20
+ },
+ "end": {
+ "line": 66,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2322,
+ 2327
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 25
+ },
+ "end": {
+ "line": 66,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 2317,
+ 2327
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 20
+ },
+ "end": {
+ "line": 66,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2328,
+ 2332
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 31
+ },
+ "end": {
+ "line": 66,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2334,
+ 2338
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 37
+ },
+ "end": {
+ "line": 66,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "range": [
+ 2317,
+ 2339
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 20
+ },
+ "end": {
+ "line": 66,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 2317,
+ 2340
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 20
+ },
+ "end": {
+ "line": 66,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 2295,
+ 2358
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 58
+ },
+ "end": {
+ "line": 67,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2253,
+ 2358
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 16
+ },
+ "end": {
+ "line": 67,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 2128,
+ 2372
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 60
+ },
+ "end": {
+ "line": 68,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2113,
+ 2372
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 45
+ },
+ "end": {
+ "line": 68,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 2108,
+ 2373
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 40
+ },
+ "end": {
+ "line": 68,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 2107,
+ 2374
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 39
+ },
+ "end": {
+ "line": 68,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 2095,
+ 2375
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 27
+ },
+ "end": {
+ "line": 68,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "range": [
+ 2080,
+ 2376
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 68,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2080,
+ 2377
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 68,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 2028,
+ 2387
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 15
+ },
+ "end": {
+ "line": 69,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1949,
+ 2387
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 15
+ },
+ "end": {
+ "line": 69,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1809,
+ 2387
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 69,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1755,
+ 2393
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 67
+ },
+ "end": {
+ "line": 70,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1721,
+ 2393
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 33
+ },
+ "end": {
+ "line": 70,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1707,
+ 2394
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 19
+ },
+ "end": {
+ "line": 70,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1696,
+ 2394
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 70,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1692,
+ 2395
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 4
+ },
+ "end": {
+ "line": 70,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "memoized",
+ "range": [
+ 2400,
+ 2408
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 4
+ },
+ "end": {
+ "line": 71,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 2409,
+ 2413
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 13
+ },
+ "end": {
+ "line": 71,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2400,
+ 2413
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 4
+ },
+ "end": {
+ "line": 71,
+ "column": 17
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 2416,
+ 2420
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 20
+ },
+ "end": {
+ "line": 71,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2400,
+ 2420
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 4
+ },
+ "end": {
+ "line": 71,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 2400,
+ 2421
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 4
+ },
+ "end": {
+ "line": 71,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "memoized",
+ "range": [
+ 2426,
+ 2434
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 4
+ },
+ "end": {
+ "line": 72,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "unmemoized",
+ "range": [
+ 2435,
+ 2445
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 13
+ },
+ "end": {
+ "line": 72,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2426,
+ 2445
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 4
+ },
+ "end": {
+ "line": 72,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 2448,
+ 2450
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 26
+ },
+ "end": {
+ "line": 72,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 2426,
+ 2450
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 4
+ },
+ "end": {
+ "line": 72,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 2426,
+ 2451
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 4
+ },
+ "end": {
+ "line": 72,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "memoized",
+ "range": [
+ 2463,
+ 2471
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 11
+ },
+ "end": {
+ "line": 73,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2456,
+ 2472
+ ],
+ "loc": {
+ "start": {
+ "line": 73,
+ "column": 4
+ },
+ "end": {
+ "line": 73,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 1579,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 44
+ },
+ "end": {
+ "line": 74,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1550,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 15
+ },
+ "end": {
+ "line": 74,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Caches the results of an `async` function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {Function} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n ",
+ "range": [
+ 231,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1535,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 0
+ },
+ "end": {
+ "line": 74,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Caches the results of an `async` function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {Function} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n ",
+ "range": [
+ 231,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2474
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 74,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Caches the results of an `async` function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {Function} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n ",
+ "range": [
+ 231,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 11,
+ "column": 0
+ },
+ "end": {
+ "line": 46,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/nextTick.js.json b/docs/ast/source/nextTick.js.json
new file mode 100644
index 0000000..4c00899
--- /dev/null
+++ b/docs/ast/source/nextTick.js.json
@@ -0,0 +1,872 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "Literal",
+ "value": "use strict",
+ "raw": "'use strict'",
+ "range": [
+ 0,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 0,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "hasNextTick",
+ "range": [
+ 24,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 9
+ },
+ "end": {
+ "line": 3,
+ "column": 20
+ }
+ }
+ },
+ "imported": {
+ "type": "Identifier",
+ "name": "hasNextTick",
+ "range": [
+ 24,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 9
+ },
+ "end": {
+ "line": 3,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 24,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 9
+ },
+ "end": {
+ "line": 3,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ImportSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "hasSetImmediate",
+ "range": [
+ 37,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 22
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ "imported": {
+ "type": "Identifier",
+ "name": "hasSetImmediate",
+ "range": [
+ 37,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 22
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 37,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 22
+ },
+ "end": {
+ "line": 3,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "fallback",
+ "range": [
+ 54,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 39
+ },
+ "end": {
+ "line": 3,
+ "column": 47
+ }
+ }
+ },
+ "imported": {
+ "type": "Identifier",
+ "name": "fallback",
+ "range": [
+ 54,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 39
+ },
+ "end": {
+ "line": 3,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 54,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 39
+ },
+ "end": {
+ "line": 3,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "ImportSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "wrap",
+ "range": [
+ 64,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 49
+ },
+ "end": {
+ "line": 3,
+ "column": 53
+ }
+ }
+ },
+ "imported": {
+ "type": "Identifier",
+ "name": "wrap",
+ "range": [
+ 64,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 49
+ },
+ "end": {
+ "line": 3,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 64,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 49
+ },
+ "end": {
+ "line": 3,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/setImmediate",
+ "raw": "'./internal/setImmediate'",
+ "range": [
+ 77,
+ 102
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 62
+ },
+ "end": {
+ "line": 3,
+ "column": 87
+ }
+ }
+ },
+ "range": [
+ 15,
+ 103
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 88
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf async\n * @alias setImmediate\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 105,
+ 1066
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 1071,
+ 1077
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 4
+ },
+ "end": {
+ "line": 35,
+ "column": 10
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 1071,
+ 1077
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 4
+ },
+ "end": {
+ "line": 35,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1067,
+ 1078
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 0
+ },
+ "end": {
+ "line": 35,
+ "column": 11
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf async\n * @alias setImmediate\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 105,
+ 1066
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "hasNextTick",
+ "range": [
+ 1084,
+ 1095
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 4
+ },
+ "end": {
+ "line": 37,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 1103,
+ 1109
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 4
+ },
+ "end": {
+ "line": 38,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 1112,
+ 1119
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "nextTick",
+ "range": [
+ 1120,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 21
+ },
+ "end": {
+ "line": 38,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1112,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1103,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 4
+ },
+ "end": {
+ "line": 38,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1103,
+ 1129
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 4
+ },
+ "end": {
+ "line": 38,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1097,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 17
+ },
+ "end": {
+ "line": 39,
+ "column": 1
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "hasSetImmediate",
+ "range": [
+ 1141,
+ 1156
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 11
+ },
+ "end": {
+ "line": 39,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 1164,
+ 1170
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 1173,
+ 1185
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 13
+ },
+ "end": {
+ "line": 40,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1164,
+ 1185
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1164,
+ 1186
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1158,
+ 1188
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 28
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 1200,
+ 1206
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "fallback",
+ "range": [
+ 1209,
+ 1217
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 13
+ },
+ "end": {
+ "line": 42,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1200,
+ 1217
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1200,
+ 1218
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 4
+ },
+ "end": {
+ "line": 42,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 1194,
+ 1220
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 7
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ }
+ },
+ "range": [
+ 1137,
+ 1220
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 7
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ }
+ },
+ "range": [
+ 1080,
+ 1220
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 0
+ },
+ "end": {
+ "line": 43,
+ "column": 1
+ }
+ }
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "wrap",
+ "range": [
+ 1237,
+ 1241
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 15
+ },
+ "end": {
+ "line": 45,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "_defer",
+ "range": [
+ 1242,
+ 1248
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 20
+ },
+ "end": {
+ "line": 45,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1237,
+ 1249
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 15
+ },
+ "end": {
+ "line": 45,
+ "column": 27
+ }
+ },
+ "leadingComments": [],
+ "trailingComments": []
+ },
+ "range": [
+ 1222,
+ 1250
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1250
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 45,
+ "column": 28
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf async\n * @alias setImmediate\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 105,
+ 1066
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/parallel.js.json b/docs/ast/source/parallel.js.json
new file mode 100644
index 0000000..48e6ea5
--- /dev/null
+++ b/docs/ast/source/parallel.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./parallelLimit",
+ "raw": "'./parallelLimit'",
+ "range": [
+ 26,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 26
+ },
+ "end": {
+ "line": 1,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 0,
+ 44
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 52,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 52,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 65,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 45,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2549
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 68,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 2565,
+ 2572
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 15
+ },
+ "end": {
+ "line": 69,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 2573,
+ 2586
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 23
+ },
+ "end": {
+ "line": 69,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 2588,
+ 2596
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 38
+ },
+ "end": {
+ "line": 69,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 2565,
+ 2597
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 15
+ },
+ "end": {
+ "line": 69,
+ "column": 47
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2549
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 68,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 2550,
+ 2598
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 0
+ },
+ "end": {
+ "line": 69,
+ "column": 48
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2549
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 68,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2598
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 69,
+ "column": 48
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2549
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 68,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/parallelLimit.js.json b/docs/ast/source/parallelLimit.js.json
new file mode 100644
index 0000000..1a711e3
--- /dev/null
+++ b/docs/ast/source/parallelLimit.js.json
@@ -0,0 +1,521 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/eachOfLimit",
+ "raw": "'./internal/eachOfLimit'",
+ "range": [
+ 24,
+ 48
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 0,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 49
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 57,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 57,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/parallel",
+ "raw": "'./internal/parallel'",
+ "range": [
+ 71,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 50,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `parallel` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @see async.parallel\n * @category Control Flow\n * @param {Array|Collection} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n ",
+ "range": [
+ 95,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "parallelLimit",
+ "range": [
+ 901,
+ 914
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 24
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 915,
+ 920
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 38
+ },
+ "end": {
+ "line": 23,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 922,
+ 927
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 45
+ },
+ "end": {
+ "line": 23,
+ "column": 50
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 929,
+ 937
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 52
+ },
+ "end": {
+ "line": 23,
+ "column": 60
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 945,
+ 953
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 24,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 954,
+ 965
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 966,
+ 971
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 25
+ },
+ "end": {
+ "line": 24,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 954,
+ 972
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 974,
+ 979
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 33
+ },
+ "end": {
+ "line": 24,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 981,
+ 989
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 40
+ },
+ "end": {
+ "line": 24,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 945,
+ 990
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 24,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 945,
+ 991
+ ],
+ "loc": {
+ "start": {
+ "line": 24,
+ "column": 4
+ },
+ "end": {
+ "line": 24,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 939,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 62
+ },
+ "end": {
+ "line": 25,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 892,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 25,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `parallel` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @see async.parallel\n * @category Control Flow\n * @param {Array|Collection} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n ",
+ "range": [
+ 95,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 877,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `parallel` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @see async.parallel\n * @category Control Flow\n * @param {Array|Collection} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n ",
+ "range": [
+ 95,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 993
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `parallel` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @see async.parallel\n * @category Control Flow\n * @param {Array|Collection} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n ",
+ "range": [
+ 95,
+ 876
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/priorityQueue.js.json b/docs/ast/source/priorityQueue.js.json
new file mode 100644
index 0000000..1e943cc
--- /dev/null
+++ b/docs/ast/source/priorityQueue.js.json
@@ -0,0 +1,4554 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayEach",
+ "raw": "'lodash/_arrayEach'",
+ "range": [
+ 22,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 0,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 50,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 50,
+ 57
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 63,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 43,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 88,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 88,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 98,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 81,
+ 112
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 121,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 121,
+ 133
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 7
+ },
+ "end": {
+ "line": 5,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./setImmediate",
+ "raw": "'./setImmediate'",
+ "range": [
+ 139,
+ 155
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 25
+ },
+ "end": {
+ "line": 5,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 114,
+ 156
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 5,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 165,
+ 170
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 165,
+ 170
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 7
+ },
+ "end": {
+ "line": 7,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./queue",
+ "raw": "'./queue'",
+ "range": [
+ 176,
+ 185
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 18
+ },
+ "end": {
+ "line": 7,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 158,
+ 186
+ ],
+ "loc": {
+ "start": {
+ "line": 7,
+ "column": 0
+ },
+ "end": {
+ "line": 7,
+ "column": 28
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {queue} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n ",
+ "range": [
+ 188,
+ 1279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 1304,
+ 1310
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 24
+ },
+ "end": {
+ "line": 32,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 1312,
+ 1323
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 32
+ },
+ "end": {
+ "line": 32,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_compareTasks",
+ "range": [
+ 1340,
+ 1353
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 13
+ },
+ "end": {
+ "line": 33,
+ "column": 26
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 1354,
+ 1355
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 27
+ },
+ "end": {
+ "line": 33,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 1357,
+ 1358
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 30
+ },
+ "end": {
+ "line": 33,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 1377,
+ 1378
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 1379,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 17
+ },
+ "end": {
+ "line": 34,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1377,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 1390,
+ 1391
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 28
+ },
+ "end": {
+ "line": 34,
+ "column": 29
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 1392,
+ 1400
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 30
+ },
+ "end": {
+ "line": 34,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1390,
+ 1400
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 28
+ },
+ "end": {
+ "line": 34,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1377,
+ 1400
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 15
+ },
+ "end": {
+ "line": 34,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1370,
+ 1401
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 8
+ },
+ "end": {
+ "line": 34,
+ "column": 39
+ }
+ }
+ }
+ ],
+ "range": [
+ 1360,
+ 1407
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 33
+ },
+ "end": {
+ "line": 35,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1331,
+ 1407
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 4
+ },
+ "end": {
+ "line": 35,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_binarySearch",
+ "range": [
+ 1422,
+ 1435
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 13
+ },
+ "end": {
+ "line": 37,
+ "column": 26
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "sequence",
+ "range": [
+ 1436,
+ 1444
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 27
+ },
+ "end": {
+ "line": 37,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 1446,
+ 1450
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 37
+ },
+ "end": {
+ "line": 37,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "compare",
+ "range": [
+ 1452,
+ 1459
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 43
+ },
+ "end": {
+ "line": 37,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1475,
+ 1478
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 12
+ },
+ "end": {
+ "line": 38,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "UnaryExpression",
+ "operator": "-",
+ "argument": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1482,
+ 1483
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 19
+ },
+ "end": {
+ "line": 38,
+ "column": 20
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1481,
+ 1483
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 18
+ },
+ "end": {
+ "line": 38,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1475,
+ 1483
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 12
+ },
+ "end": {
+ "line": 38,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "end",
+ "range": [
+ 1497,
+ 1500
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "sequence",
+ "range": [
+ 1503,
+ 1511
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 18
+ },
+ "end": {
+ "line": 39,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1512,
+ 1518
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 27
+ },
+ "end": {
+ "line": 39,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1503,
+ 1518
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 18
+ },
+ "end": {
+ "line": 39,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1521,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 36
+ },
+ "end": {
+ "line": 39,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1503,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 18
+ },
+ "end": {
+ "line": 39,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1497,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 12
+ },
+ "end": {
+ "line": 39,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1471,
+ 1523
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "WhileStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1539,
+ 1542
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 15
+ },
+ "end": {
+ "line": 40,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "end",
+ "range": [
+ 1545,
+ 1548
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 21
+ },
+ "end": {
+ "line": 40,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1539,
+ 1548
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 15
+ },
+ "end": {
+ "line": 40,
+ "column": 24
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "mid",
+ "range": [
+ 1568,
+ 1571
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 16
+ },
+ "end": {
+ "line": 41,
+ "column": 19
+ }
+ }
+ },
+ "init": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1574,
+ 1577
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 22
+ },
+ "end": {
+ "line": 41,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": ">>>",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "Identifier",
+ "name": "end",
+ "range": [
+ 1582,
+ 1585
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 30
+ },
+ "end": {
+ "line": 41,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1588,
+ 1591
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 36
+ },
+ "end": {
+ "line": 41,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1582,
+ 1591
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 30
+ },
+ "end": {
+ "line": 41,
+ "column": 39
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1594,
+ 1595
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 42
+ },
+ "end": {
+ "line": 41,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 1582,
+ 1595
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 30
+ },
+ "end": {
+ "line": 41,
+ "column": 43
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1601,
+ 1602
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 49
+ },
+ "end": {
+ "line": 41,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 1581,
+ 1602
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 29
+ },
+ "end": {
+ "line": 41,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 1574,
+ 1603
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 22
+ },
+ "end": {
+ "line": 41,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1568,
+ 1603
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 16
+ },
+ "end": {
+ "line": 41,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1564,
+ 1604
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">=",
+ "left": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "compare",
+ "range": [
+ 1621,
+ 1628
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 16
+ },
+ "end": {
+ "line": 42,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 1629,
+ 1633
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "sequence",
+ "range": [
+ 1635,
+ 1643
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 30
+ },
+ "end": {
+ "line": 42,
+ "column": 38
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "mid",
+ "range": [
+ 1644,
+ 1647
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 39
+ },
+ "end": {
+ "line": 42,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 1635,
+ 1648
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 30
+ },
+ "end": {
+ "line": 42,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 1621,
+ 1649
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 16
+ },
+ "end": {
+ "line": 42,
+ "column": 44
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1653,
+ 1654
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 48
+ },
+ "end": {
+ "line": 42,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 1621,
+ 1654
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 16
+ },
+ "end": {
+ "line": 42,
+ "column": 49
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1674,
+ 1677
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 43,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "mid",
+ "range": [
+ 1680,
+ 1683
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 22
+ },
+ "end": {
+ "line": 43,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1674,
+ 1683
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 43,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1674,
+ 1684
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 43,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1656,
+ 1698
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 51
+ },
+ "end": {
+ "line": 44,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "end",
+ "range": [
+ 1722,
+ 1725
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "Identifier",
+ "name": "mid",
+ "range": [
+ 1728,
+ 1731
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 22
+ },
+ "end": {
+ "line": 45,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1734,
+ 1735
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 28
+ },
+ "end": {
+ "line": 45,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1728,
+ 1735
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 22
+ },
+ "end": {
+ "line": 45,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1722,
+ 1735
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1722,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1704,
+ 1750
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 19
+ },
+ "end": {
+ "line": 46,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1617,
+ 1750
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1550,
+ 1760
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 26
+ },
+ "end": {
+ "line": 47,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1532,
+ 1760
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "beg",
+ "range": [
+ 1776,
+ 1779
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 15
+ },
+ "end": {
+ "line": 48,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1769,
+ 1780
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1461,
+ 1786
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 52
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1413,
+ 1786
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 4
+ },
+ "end": {
+ "line": 49,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "_insert",
+ "range": [
+ 1801,
+ 1808
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 13
+ },
+ "end": {
+ "line": 51,
+ "column": 20
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1809,
+ 1810
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 21
+ },
+ "end": {
+ "line": 51,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 1812,
+ 1816
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 24
+ },
+ "end": {
+ "line": 51,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 1818,
+ 1826
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 30
+ },
+ "end": {
+ "line": 51,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1828,
+ 1836
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 40
+ },
+ "end": {
+ "line": 51,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "!=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1852,
+ 1860
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1864,
+ 1868
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 24
+ },
+ "end": {
+ "line": 52,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 1852,
+ 1868
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "!==",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1879,
+ 1887
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 39
+ },
+ "end": {
+ "line": 52,
+ "column": 47
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1872,
+ 1887
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 32
+ },
+ "end": {
+ "line": 52,
+ "column": 47
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 1892,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 52
+ },
+ "end": {
+ "line": 52,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 1872,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 32
+ },
+ "end": {
+ "line": 52,
+ "column": 62
+ }
+ }
+ },
+ "range": [
+ 1852,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 12
+ },
+ "end": {
+ "line": 52,
+ "column": 62
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 1928,
+ 1933
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "task callback must be a function",
+ "raw": "'task callback must be a function'",
+ "range": [
+ 1934,
+ 1968
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 28
+ },
+ "end": {
+ "line": 53,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "range": [
+ 1924,
+ 1969
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 18
+ },
+ "end": {
+ "line": 53,
+ "column": 63
+ }
+ }
+ },
+ "range": [
+ 1918,
+ 1970
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 12
+ },
+ "end": {
+ "line": 53,
+ "column": 64
+ }
+ }
+ }
+ ],
+ "range": [
+ 1904,
+ 1980
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 64
+ },
+ "end": {
+ "line": 54,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1848,
+ 1980
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 54,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 1989,
+ 1990
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 8
+ },
+ "end": {
+ "line": 55,
+ "column": 9
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "started",
+ "range": [
+ 1991,
+ 1998
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 10
+ },
+ "end": {
+ "line": 55,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1989,
+ 1998
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 8
+ },
+ "end": {
+ "line": 55,
+ "column": 17
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 2001,
+ 2005
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 20
+ },
+ "end": {
+ "line": 55,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1989,
+ 2005
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 8
+ },
+ "end": {
+ "line": 55,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1989,
+ 2006
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 8
+ },
+ "end": {
+ "line": 55,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 2020,
+ 2027
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 13
+ },
+ "end": {
+ "line": 56,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2028,
+ 2032
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 21
+ },
+ "end": {
+ "line": 56,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 2020,
+ 2033
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 13
+ },
+ "end": {
+ "line": 56,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2019,
+ 2033
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 12
+ },
+ "end": {
+ "line": 56,
+ "column": 26
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2049,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 12
+ },
+ "end": {
+ "line": 57,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2057,
+ 2061
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 20
+ },
+ "end": {
+ "line": 57,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 2056,
+ 2062
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 19
+ },
+ "end": {
+ "line": 57,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2049,
+ 2062
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 12
+ },
+ "end": {
+ "line": 57,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2049,
+ 2063
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 12
+ },
+ "end": {
+ "line": 57,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 2035,
+ 2073
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 28
+ },
+ "end": {
+ "line": 58,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2015,
+ 2073
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 8
+ },
+ "end": {
+ "line": 58,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2086,
+ 2090
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2091,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 17
+ },
+ "end": {
+ "line": 59,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2086,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2102,
+ 2103
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 28
+ },
+ "end": {
+ "line": 59,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2086,
+ 2103
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 29
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 2186,
+ 2198
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 19
+ },
+ "end": {
+ "line": 61,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2228,
+ 2229
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "drain",
+ "range": [
+ 2230,
+ 2235
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 18
+ },
+ "end": {
+ "line": 62,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 2228,
+ 2235
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 2228,
+ 2237
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 2228,
+ 2238
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 16
+ },
+ "end": {
+ "line": 62,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 2210,
+ 2252
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 43
+ },
+ "end": {
+ "line": 63,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2199,
+ 2252
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 32
+ },
+ "end": {
+ "line": 63,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 2186,
+ 2253
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 19
+ },
+ "end": {
+ "line": 63,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 2179,
+ 2254
+ ],
+ "loc": {
+ "start": {
+ "line": 61,
+ "column": 12
+ },
+ "end": {
+ "line": 63,
+ "column": 15
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " call drain immediately if there are no tasks",
+ "range": [
+ 2119,
+ 2166
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 59
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "range": [
+ 2105,
+ 2264
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 31
+ },
+ "end": {
+ "line": 64,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2082,
+ 2264
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 64,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayEach",
+ "range": [
+ 2273,
+ 2282
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 8
+ },
+ "end": {
+ "line": 65,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2283,
+ 2287
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 18
+ },
+ "end": {
+ "line": 65,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 2298,
+ 2302
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 33
+ },
+ "end": {
+ "line": 65,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 2322,
+ 2326
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 16
+ },
+ "end": {
+ "line": 66,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2347,
+ 2351
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 16
+ },
+ "end": {
+ "line": 67,
+ "column": 20
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 2353,
+ 2357
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 22
+ },
+ "end": {
+ "line": 67,
+ "column": 26
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2347,
+ 2357
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 16
+ },
+ "end": {
+ "line": 67,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 2375,
+ 2383
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 16
+ },
+ "end": {
+ "line": 68,
+ "column": 24
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 2385,
+ 2393
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 26
+ },
+ "end": {
+ "line": 68,
+ "column": 34
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2375,
+ 2393
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 16
+ },
+ "end": {
+ "line": 68,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2411,
+ 2419
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 24
+ }
+ }
+ },
+ "value": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2428,
+ 2436
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 33
+ },
+ "end": {
+ "line": 69,
+ "column": 41
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2421,
+ 2436
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 26
+ },
+ "end": {
+ "line": 69,
+ "column": 41
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 2441,
+ 2451
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 46
+ },
+ "end": {
+ "line": 69,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 2421,
+ 2451
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 26
+ },
+ "end": {
+ "line": 69,
+ "column": 56
+ }
+ }
+ },
+ "consequent": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2454,
+ 2462
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 59
+ },
+ "end": {
+ "line": 69,
+ "column": 67
+ }
+ }
+ },
+ "alternate": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2465,
+ 2469
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 70
+ },
+ "end": {
+ "line": 69,
+ "column": 74
+ }
+ }
+ },
+ "range": [
+ 2421,
+ 2469
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 26
+ },
+ "end": {
+ "line": 69,
+ "column": 74
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 2411,
+ 2469
+ ],
+ "loc": {
+ "start": {
+ "line": 69,
+ "column": 16
+ },
+ "end": {
+ "line": 69,
+ "column": 74
+ }
+ }
+ }
+ ],
+ "range": [
+ 2329,
+ 2483
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 23
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 2322,
+ 2483
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 16
+ },
+ "end": {
+ "line": 70,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2318,
+ 2484
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 12
+ },
+ "end": {
+ "line": 70,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2498,
+ 2499
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2500,
+ 2505
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 14
+ },
+ "end": {
+ "line": 72,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 2498,
+ 2505
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "splice",
+ "range": [
+ 2506,
+ 2512
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 20
+ },
+ "end": {
+ "line": 72,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 2498,
+ 2512
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_binarySearch",
+ "range": [
+ 2513,
+ 2526
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 27
+ },
+ "end": {
+ "line": 72,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2527,
+ 2528
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 41
+ },
+ "end": {
+ "line": 72,
+ "column": 42
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2529,
+ 2534
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 43
+ },
+ "end": {
+ "line": 72,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 2527,
+ 2534
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 41
+ },
+ "end": {
+ "line": 72,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 2536,
+ 2540
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 50
+ },
+ "end": {
+ "line": 72,
+ "column": 54
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "_compareTasks",
+ "range": [
+ 2542,
+ 2555
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 56
+ },
+ "end": {
+ "line": 72,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "range": [
+ 2513,
+ 2556
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 27
+ },
+ "end": {
+ "line": 72,
+ "column": 70
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 2559,
+ 2560
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 73
+ },
+ "end": {
+ "line": 72,
+ "column": 74
+ }
+ }
+ },
+ "range": [
+ 2513,
+ 2560
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 27
+ },
+ "end": {
+ "line": 72,
+ "column": 74
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2562,
+ 2563
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 76
+ },
+ "end": {
+ "line": 72,
+ "column": 77
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "item",
+ "range": [
+ 2565,
+ 2569
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 79
+ },
+ "end": {
+ "line": 72,
+ "column": 83
+ }
+ }
+ }
+ ],
+ "range": [
+ 2498,
+ 2570
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 84
+ }
+ }
+ },
+ "range": [
+ 2498,
+ 2571
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 85
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 2585,
+ 2597
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2598,
+ 2599
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 25
+ },
+ "end": {
+ "line": 74,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "process",
+ "range": [
+ 2600,
+ 2607
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 27
+ },
+ "end": {
+ "line": 74,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2598,
+ 2607
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 25
+ },
+ "end": {
+ "line": 74,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 2585,
+ 2608
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 2585,
+ 2609
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 12
+ },
+ "end": {
+ "line": 74,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 2304,
+ 2619
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 39
+ },
+ "end": {
+ "line": 75,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2289,
+ 2619
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 24
+ },
+ "end": {
+ "line": 75,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 2273,
+ 2620
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 8
+ },
+ "end": {
+ "line": 75,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 2273,
+ 2621
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 8
+ },
+ "end": {
+ "line": 75,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1838,
+ 2627
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 50
+ },
+ "end": {
+ "line": 76,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1792,
+ 2627
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 4
+ },
+ "end": {
+ "line": 76,
+ "column": 5
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " Start with a normal queue",
+ "range": [
+ 2633,
+ 2661
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 4
+ },
+ "end": {
+ "line": 78,
+ "column": 32
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2670,
+ 2671
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 9
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 2674,
+ 2679
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 12
+ },
+ "end": {
+ "line": 79,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 2680,
+ 2686
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 18
+ },
+ "end": {
+ "line": 79,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 2688,
+ 2699
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 26
+ },
+ "end": {
+ "line": 79,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 2674,
+ 2700
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 12
+ },
+ "end": {
+ "line": 79,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 2670,
+ 2700
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2666,
+ 2701
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 4
+ },
+ "end": {
+ "line": 79,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Start with a normal queue",
+ "range": [
+ 2633,
+ 2661
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 4
+ },
+ "end": {
+ "line": 78,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " Override push to accept second parameter representing priority",
+ "range": [
+ 2707,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 4
+ },
+ "end": {
+ "line": 81,
+ "column": 69
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2777,
+ 2778
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 4
+ },
+ "end": {
+ "line": 82,
+ "column": 5
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 2779,
+ 2783
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 6
+ },
+ "end": {
+ "line": 82,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 2777,
+ 2783
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 4
+ },
+ "end": {
+ "line": 82,
+ "column": 10
+ }
+ }
+ },
+ "right": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2795,
+ 2799
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 22
+ },
+ "end": {
+ "line": 82,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 2801,
+ 2809
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 28
+ },
+ "end": {
+ "line": 82,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2811,
+ 2819
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 38
+ },
+ "end": {
+ "line": 82,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "_insert",
+ "range": [
+ 2831,
+ 2838
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 8
+ },
+ "end": {
+ "line": 83,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2839,
+ 2840
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 16
+ },
+ "end": {
+ "line": 83,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 2842,
+ 2846
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 19
+ },
+ "end": {
+ "line": 83,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "priority",
+ "range": [
+ 2848,
+ 2856
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 25
+ },
+ "end": {
+ "line": 83,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2858,
+ 2866
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 35
+ },
+ "end": {
+ "line": 83,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 2831,
+ 2867
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 8
+ },
+ "end": {
+ "line": 83,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 2831,
+ 2868
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 8
+ },
+ "end": {
+ "line": 83,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 2821,
+ 2874
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 48
+ },
+ "end": {
+ "line": 84,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2786,
+ 2874
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 13
+ },
+ "end": {
+ "line": 84,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 2777,
+ 2874
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 4
+ },
+ "end": {
+ "line": 84,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 2777,
+ 2875
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 4
+ },
+ "end": {
+ "line": 84,
+ "column": 6
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Override push to accept second parameter representing priority",
+ "range": [
+ 2707,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 4
+ },
+ "end": {
+ "line": 81,
+ "column": 69
+ }
+ }
+ }
+ ],
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " Remove unshift function",
+ "range": [
+ 2881,
+ 2907
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 30
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "UnaryExpression",
+ "operator": "delete",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2919,
+ 2920
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 11
+ },
+ "end": {
+ "line": 87,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "unshift",
+ "range": [
+ 2921,
+ 2928
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 13
+ },
+ "end": {
+ "line": 87,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 2919,
+ 2928
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 11
+ },
+ "end": {
+ "line": 87,
+ "column": 20
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2912,
+ 2928
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 4
+ },
+ "end": {
+ "line": 87,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 2912,
+ 2929
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 4
+ },
+ "end": {
+ "line": 87,
+ "column": 21
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " Remove unshift function",
+ "range": [
+ 2881,
+ 2907
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 30
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "Identifier",
+ "name": "q",
+ "range": [
+ 2942,
+ 2943
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 11
+ },
+ "end": {
+ "line": 89,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 2935,
+ 2944
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 4
+ },
+ "end": {
+ "line": 89,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1325,
+ 2946
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 45
+ },
+ "end": {
+ "line": 90,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1295,
+ 2946
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 15
+ },
+ "end": {
+ "line": 90,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {queue} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n ",
+ "range": [
+ 188,
+ 1279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1280,
+ 2946
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 0
+ },
+ "end": {
+ "line": 90,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {queue} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n ",
+ "range": [
+ 188,
+ 1279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2946
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 90,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {queue} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n ",
+ "range": [
+ 188,
+ 1279
+ ],
+ "loc": {
+ "start": {
+ "line": 9,
+ "column": 0
+ },
+ "end": {
+ "line": 31,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " call drain immediately if there are no tasks",
+ "range": [
+ 2119,
+ 2166
+ ],
+ "loc": {
+ "start": {
+ "line": 60,
+ "column": 12
+ },
+ "end": {
+ "line": 60,
+ "column": 59
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Start with a normal queue",
+ "range": [
+ 2633,
+ 2661
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 4
+ },
+ "end": {
+ "line": 78,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Override push to accept second parameter representing priority",
+ "range": [
+ 2707,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 81,
+ "column": 4
+ },
+ "end": {
+ "line": 81,
+ "column": 69
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " Remove unshift function",
+ "range": [
+ 2881,
+ 2907
+ ],
+ "loc": {
+ "start": {
+ "line": 86,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 30
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/queue.js.json b/docs/ast/source/queue.js.json
new file mode 100644
index 0000000..9f03675
--- /dev/null
+++ b/docs/ast/source/queue.js.json
@@ -0,0 +1,635 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/queue",
+ "raw": "'./internal/queue'",
+ "range": [
+ 18,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 18
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 0,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {Function} started - a function returning whether or not any\n * items have been pushed and processed by the queue. Invoke with ().\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with ().\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with ().\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with (task, [callback]),\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with (task, [callback]).\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n ",
+ "range": [
+ 2774,
+ 4726
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 100,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 4752,
+ 4758
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 25
+ },
+ "end": {
+ "line": 101,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4760,
+ 4771
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 33
+ },
+ "end": {
+ "line": 101,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "queue",
+ "range": [
+ 4786,
+ 4791
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 11
+ },
+ "end": {
+ "line": 102,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "items",
+ "range": [
+ 4802,
+ 4807
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 27
+ },
+ "end": {
+ "line": 102,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 4809,
+ 4811
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 34
+ },
+ "end": {
+ "line": 102,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "worker",
+ "range": [
+ 4823,
+ 4829
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "items",
+ "range": [
+ 4830,
+ 4835
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 15
+ },
+ "end": {
+ "line": 103,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 4836,
+ 4837
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 21
+ },
+ "end": {
+ "line": 103,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 4830,
+ 4838
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 15
+ },
+ "end": {
+ "line": 103,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 4840,
+ 4842
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 25
+ },
+ "end": {
+ "line": 103,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 4823,
+ 4843
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 4823,
+ 4844
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 4813,
+ 4850
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 38
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4792,
+ 4850
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 17
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "concurrency",
+ "range": [
+ 4852,
+ 4863
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 7
+ },
+ "end": {
+ "line": 104,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4865,
+ 4866
+ ],
+ "loc": {
+ "start": {
+ "line": 104,
+ "column": 20
+ },
+ "end": {
+ "line": 104,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 4786,
+ 4867
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 11
+ },
+ "end": {
+ "line": 104,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 4779,
+ 4868
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 4
+ },
+ "end": {
+ "line": 104,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 4773,
+ 4870
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 46
+ },
+ "end": {
+ "line": 105,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4742,
+ 4870
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 15
+ },
+ "end": {
+ "line": 105,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {Function} started - a function returning whether or not any\n * items have been pushed and processed by the queue. Invoke with ().\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with ().\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with ().\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with (task, [callback]),\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with (task, [callback]).\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n ",
+ "range": [
+ 2774,
+ 4726
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 100,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 4727,
+ 4870
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 0
+ },
+ "end": {
+ "line": 105,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {Function} started - a function returning whether or not any\n * items have been pushed and processed by the queue. Invoke with ().\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with ().\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with ().\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with (task, [callback]),\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with (task, [callback]).\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n ",
+ "range": [
+ 2774,
+ 4726
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 100,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 4870
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 105,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {Function} started - a function returning whether or not any\n * items have been pushed and processed by the queue. Invoke with ().\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with ().\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with ().\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with (task, [callback]),\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with (task, [callback]).\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n ",
+ "range": [
+ 39,
+ 2772
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Block",
+ "value": "*\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n ",
+ "range": [
+ 2774,
+ 4726
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 100,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/race.js.json b/docs/ast/source/race.js.json
new file mode 100644
index 0000000..0583d69
--- /dev/null
+++ b/docs/ast/source/race.js.json
@@ -0,0 +1,1197 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 20,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 20
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 0,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 45,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 45,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/each",
+ "raw": "'lodash/each'",
+ "range": [
+ 55,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 38,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 77,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 77,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 87,
+ 100
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 70,
+ 101
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 109,
+ 113
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 109,
+ 113
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/once",
+ "raw": "'./internal/once'",
+ "range": [
+ 119,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 17
+ },
+ "end": {
+ "line": 4,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 102,
+ 137
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 35
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any the `tasks` completed or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array containing functions to run. Each function\n * is passed a `callback(err, result)` which it must call on completion with an\n * error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n ",
+ "range": [
+ 139,
+ 1356
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "race",
+ "range": [
+ 1381,
+ 1385
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 28
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1386,
+ 1391
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 29
+ },
+ "end": {
+ "line": 42,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1393,
+ 1401
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 36
+ },
+ "end": {
+ "line": 42,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1409,
+ 1417
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 43,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 1420,
+ 1424
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 15
+ },
+ "end": {
+ "line": 43,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1425,
+ 1433
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 20
+ },
+ "end": {
+ "line": 43,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1437,
+ 1441
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 32
+ },
+ "end": {
+ "line": 43,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 1425,
+ 1441
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 20
+ },
+ "end": {
+ "line": 43,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1420,
+ 1442
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 15
+ },
+ "end": {
+ "line": 43,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1409,
+ 1442
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 43,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1409,
+ 1443
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 43,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 1453,
+ 1460
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 9
+ },
+ "end": {
+ "line": 44,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1461,
+ 1466
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 17
+ },
+ "end": {
+ "line": 44,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 1453,
+ 1467
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 9
+ },
+ "end": {
+ "line": 44,
+ "column": 23
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1452,
+ 1467
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1476,
+ 1484
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 32
+ },
+ "end": {
+ "line": 44,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "TypeError",
+ "range": [
+ 1489,
+ 1498
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 45
+ },
+ "end": {
+ "line": 44,
+ "column": 54
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "First argument to race must be an array of functions",
+ "raw": "'First argument to race must be an array of functions'",
+ "range": [
+ 1499,
+ 1553
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 55
+ },
+ "end": {
+ "line": 44,
+ "column": 109
+ }
+ }
+ }
+ ],
+ "range": [
+ 1485,
+ 1554
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 41
+ },
+ "end": {
+ "line": 44,
+ "column": 110
+ }
+ }
+ }
+ ],
+ "range": [
+ 1476,
+ 1555
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 32
+ },
+ "end": {
+ "line": 44,
+ "column": 111
+ }
+ }
+ },
+ "range": [
+ 1469,
+ 1556
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 25
+ },
+ "end": {
+ "line": 44,
+ "column": 112
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1448,
+ 1556
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 4
+ },
+ "end": {
+ "line": 44,
+ "column": 112
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1566,
+ 1571
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 9
+ },
+ "end": {
+ "line": 45,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1572,
+ 1578
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 15
+ },
+ "end": {
+ "line": 45,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1566,
+ 1578
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 9
+ },
+ "end": {
+ "line": 45,
+ "column": 21
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1565,
+ 1578
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 8
+ },
+ "end": {
+ "line": 45,
+ "column": 21
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1587,
+ 1595
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 30
+ },
+ "end": {
+ "line": 45,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1587,
+ 1597
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 30
+ },
+ "end": {
+ "line": 45,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 1580,
+ 1598
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 23
+ },
+ "end": {
+ "line": 45,
+ "column": 41
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1561,
+ 1598
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 4
+ },
+ "end": {
+ "line": 45,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "each",
+ "range": [
+ 1603,
+ 1607
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 8
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1608,
+ 1613
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 9
+ },
+ "end": {
+ "line": 46,
+ "column": 14
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1625,
+ 1629
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 26
+ },
+ "end": {
+ "line": 46,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1641,
+ 1645
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1646,
+ 1654
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 13
+ },
+ "end": {
+ "line": 47,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1641,
+ 1655
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1641,
+ 1656
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 1631,
+ 1662
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 32
+ },
+ "end": {
+ "line": 48,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1615,
+ 1662
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 16
+ },
+ "end": {
+ "line": 48,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1603,
+ 1663
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 48,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1603,
+ 1664
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 48,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1403,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 46
+ },
+ "end": {
+ "line": 49,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1372,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 49,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any the `tasks` completed or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array containing functions to run. Each function\n * is passed a `callback(err, result)` which it must call on completion with an\n * error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n ",
+ "range": [
+ 139,
+ 1356
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1357,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 49,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any the `tasks` completed or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array containing functions to run. Each function\n * is passed a `callback(err, result)` which it must call on completion with an\n * error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n ",
+ "range": [
+ 139,
+ 1356
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 49,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any the `tasks` completed or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array containing functions to run. Each function\n * is passed a `callback(err, result)` which it must call on completion with an\n * error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n ",
+ "range": [
+ 139,
+ 1356
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/reduce.js.json b/docs/ast/source/reduce.js.json
new file mode 100644
index 0000000..ed9477e
--- /dev/null
+++ b/docs/ast/source/reduce.js.json
@@ -0,0 +1,947 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfSeries",
+ "raw": "'./eachOfSeries'",
+ "range": [
+ 25,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 0,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf async\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n ",
+ "range": [
+ 44,
+ 1734
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 1759,
+ 1765
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1766,
+ 1770
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 31
+ },
+ "end": {
+ "line": 42,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1772,
+ 1776
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 37
+ },
+ "end": {
+ "line": 42,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1778,
+ 1786
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 43
+ },
+ "end": {
+ "line": 42,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1788,
+ 1796
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 53
+ },
+ "end": {
+ "line": 42,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 1804,
+ 1816
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 43,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1817,
+ 1821
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 17
+ },
+ "end": {
+ "line": 43,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 1832,
+ 1833
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 32
+ },
+ "end": {
+ "line": 43,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 1835,
+ 1836
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 35
+ },
+ "end": {
+ "line": 43,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1838,
+ 1846
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 38
+ },
+ "end": {
+ "line": 43,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1858,
+ 1866
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1867,
+ 1871
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 17
+ },
+ "end": {
+ "line": 44,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 1873,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 23
+ },
+ "end": {
+ "line": 44,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1885,
+ 1888
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 35
+ },
+ "end": {
+ "line": 44,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 1890,
+ 1891
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 40
+ },
+ "end": {
+ "line": 44,
+ "column": 41
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1907,
+ 1911
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 12
+ },
+ "end": {
+ "line": 45,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 1914,
+ 1915
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 19
+ },
+ "end": {
+ "line": 45,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1907,
+ 1915
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 12
+ },
+ "end": {
+ "line": 45,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1907,
+ 1916
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 12
+ },
+ "end": {
+ "line": 45,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1929,
+ 1937
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1938,
+ 1941
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 21
+ },
+ "end": {
+ "line": 46,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "range": [
+ 1929,
+ 1942
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 1929,
+ 1943
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1893,
+ 1953
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 43
+ },
+ "end": {
+ "line": 47,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1876,
+ 1953
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 26
+ },
+ "end": {
+ "line": 47,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1858,
+ 1954
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1858,
+ 1955
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 47,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1848,
+ 1961
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 48
+ },
+ "end": {
+ "line": 48,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1823,
+ 1961
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 23
+ },
+ "end": {
+ "line": 48,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1972,
+ 1975
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 16
+ },
+ "end": {
+ "line": 48,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1987,
+ 1995
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1996,
+ 1999
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 17
+ },
+ "end": {
+ "line": 49,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 2001,
+ 2005
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 22
+ },
+ "end": {
+ "line": 49,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "range": [
+ 1987,
+ 2006
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1987,
+ 2007
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 1977,
+ 2013
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 21
+ },
+ "end": {
+ "line": 50,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1963,
+ 2013
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 7
+ },
+ "end": {
+ "line": 50,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1804,
+ 2014
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 50,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1804,
+ 2015
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 50,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1798,
+ 2017
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 63
+ },
+ "end": {
+ "line": 51,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1750,
+ 2017
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 51,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf async\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n ",
+ "range": [
+ 44,
+ 1734
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1735,
+ 2017
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 51,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf async\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n ",
+ "range": [
+ 44,
+ 1734
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2017
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 51,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf async\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n ",
+ "range": [
+ 44,
+ 1734
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/reduceRight.js.json b/docs/ast/source/reduceRight.js.json
new file mode 100644
index 0000000..d93f9d2
--- /dev/null
+++ b/docs/ast/source/reduceRight.js.json
@@ -0,0 +1,792 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reduce",
+ "raw": "'./reduce'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "slice",
+ "range": [
+ 36,
+ 41
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 3,
+ "column": 9
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "Array",
+ "range": [
+ 44,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "prototype",
+ "range": [
+ 50,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 18
+ },
+ "end": {
+ "line": 3,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 44,
+ 59
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "slice",
+ "range": [
+ 60,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 28
+ },
+ "end": {
+ "line": 3,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 44,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 12
+ },
+ "end": {
+ "line": 3,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 36,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 4
+ },
+ "end": {
+ "line": 3,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 32,
+ 66
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 34
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Same as `reduce`, only operates on `coll` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf async\n * @see async.reduce\n * @alias foldr\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n ",
+ "range": [
+ 68,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "reduceRight",
+ "range": [
+ 1024,
+ 1035
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 24
+ },
+ "end": {
+ "line": 26,
+ "column": 35
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1037,
+ 1041
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 37
+ },
+ "end": {
+ "line": 26,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1043,
+ 1047
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 43
+ },
+ "end": {
+ "line": 26,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1049,
+ 1057
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 49
+ },
+ "end": {
+ "line": 26,
+ "column": 57
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1059,
+ 1067
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 59
+ },
+ "end": {
+ "line": 26,
+ "column": 67
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "reversed",
+ "range": [
+ 1079,
+ 1087
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "slice",
+ "range": [
+ 1090,
+ 1095
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "call",
+ "range": [
+ 1096,
+ 1100
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 25
+ },
+ "end": {
+ "line": 27,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1090,
+ 1100
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1101,
+ 1105
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 30
+ },
+ "end": {
+ "line": 27,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1090,
+ 1106
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "reverse",
+ "range": [
+ 1107,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 36
+ },
+ "end": {
+ "line": 27,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 1090,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 43
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1090,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1079,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1075,
+ 1117
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 1122,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "reversed",
+ "range": [
+ 1129,
+ 1137
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 11
+ },
+ "end": {
+ "line": 28,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "memo",
+ "range": [
+ 1139,
+ 1143
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 21
+ },
+ "end": {
+ "line": 28,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1145,
+ 1153
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 27
+ },
+ "end": {
+ "line": 28,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1155,
+ 1163
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 37
+ },
+ "end": {
+ "line": 28,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 1122,
+ 1164
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 1122,
+ 1165
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 1069,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 69
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1015,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Same as `reduce`, only operates on `coll` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf async\n * @see async.reduce\n * @alias foldr\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n ",
+ "range": [
+ 68,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1000,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Same as `reduce`, only operates on `coll` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf async\n * @see async.reduce\n * @alias foldr\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n ",
+ "range": [
+ 68,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1167
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Same as `reduce`, only operates on `coll` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf async\n * @see async.reduce\n * @alias foldr\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n ",
+ "range": [
+ 68,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/reflect.js.json b/docs/ast/source/reflect.js.json
new file mode 100644
index 0000000..3173087
--- /dev/null
+++ b/docs/ast/source/reflect.js.json
@@ -0,0 +1,1713 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 26,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 26
+ },
+ "end": {
+ "line": 1,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 0,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 61,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 61,
+ 65
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 71,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 54,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wraps the function in another function that always returns data even when it\n * errors.\n *\n * The object returned has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 87,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 1225,
+ 1232
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1233,
+ 1235
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 32
+ },
+ "end": {
+ "line": 42,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 1250,
+ 1263
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 43,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "reflectOn",
+ "range": [
+ 1273,
+ 1282
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 34
+ },
+ "end": {
+ "line": 43,
+ "column": 43
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1283,
+ 1287
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 44
+ },
+ "end": {
+ "line": 43,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "reflectCallback",
+ "range": [
+ 1289,
+ 1304
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 50
+ },
+ "end": {
+ "line": 43,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1316,
+ 1320
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 1321,
+ 1325
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 13
+ },
+ "end": {
+ "line": 44,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1316,
+ 1325
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1326,
+ 1330
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 18
+ },
+ "end": {
+ "line": 44,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1340,
+ 1348
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 32
+ },
+ "end": {
+ "line": 44,
+ "column": 40
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1349,
+ 1352
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 41
+ },
+ "end": {
+ "line": 44,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cbArgs",
+ "range": [
+ 1354,
+ 1360
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 46
+ },
+ "end": {
+ "line": 44,
+ "column": 52
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1380,
+ 1383
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 16
+ },
+ "end": {
+ "line": 45,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "reflectCallback",
+ "range": [
+ 1403,
+ 1418
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 16
+ },
+ "end": {
+ "line": 46,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1419,
+ 1423
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 32
+ },
+ "end": {
+ "line": 46,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1447,
+ 1452
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 20
+ },
+ "end": {
+ "line": 47,
+ "column": 25
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1454,
+ 1457
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 27
+ },
+ "end": {
+ "line": 47,
+ "column": 30
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1447,
+ 1457
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 20
+ },
+ "end": {
+ "line": 47,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1425,
+ 1475
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 38
+ },
+ "end": {
+ "line": 48,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1403,
+ 1476
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 16
+ },
+ "end": {
+ "line": 48,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1403,
+ 1477
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 16
+ },
+ "end": {
+ "line": 48,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1385,
+ 1491
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 21
+ },
+ "end": {
+ "line": 49,
+ "column": 13
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1519,
+ 1524
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 20
+ },
+ "end": {
+ "line": 50,
+ "column": 25
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1527,
+ 1531
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 28
+ },
+ "end": {
+ "line": 50,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1519,
+ 1531
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 20
+ },
+ "end": {
+ "line": 50,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1515,
+ 1532
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 16
+ },
+ "end": {
+ "line": 50,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "cbArgs",
+ "range": [
+ 1553,
+ 1559
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 20
+ },
+ "end": {
+ "line": 51,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1560,
+ 1566
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 27
+ },
+ "end": {
+ "line": 51,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1553,
+ 1566
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 20
+ },
+ "end": {
+ "line": 51,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1571,
+ 1572
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 38
+ },
+ "end": {
+ "line": 51,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1553,
+ 1572
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 20
+ },
+ "end": {
+ "line": 51,
+ "column": 39
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1596,
+ 1601
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 20
+ },
+ "end": {
+ "line": 52,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "cbArgs",
+ "range": [
+ 1604,
+ 1610
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 28
+ },
+ "end": {
+ "line": 52,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 1611,
+ 1612
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 35
+ },
+ "end": {
+ "line": 52,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 1604,
+ 1613
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 28
+ },
+ "end": {
+ "line": 52,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1596,
+ 1613
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 20
+ },
+ "end": {
+ "line": 52,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1596,
+ 1614
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 20
+ },
+ "end": {
+ "line": 52,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 1574,
+ 1632
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 41
+ },
+ "end": {
+ "line": 53,
+ "column": 17
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "cbArgs",
+ "range": [
+ 1642,
+ 1648
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 27
+ },
+ "end": {
+ "line": 53,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1649,
+ 1655
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 34
+ },
+ "end": {
+ "line": 53,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 1642,
+ 1655
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 27
+ },
+ "end": {
+ "line": 53,
+ "column": 40
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1658,
+ 1659
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 43
+ },
+ "end": {
+ "line": 53,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 1642,
+ 1659
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 27
+ },
+ "end": {
+ "line": 53,
+ "column": 44
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1683,
+ 1688
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 20
+ },
+ "end": {
+ "line": 54,
+ "column": 25
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "cbArgs",
+ "range": [
+ 1691,
+ 1697
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 28
+ },
+ "end": {
+ "line": 54,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1683,
+ 1697
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 20
+ },
+ "end": {
+ "line": 54,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1683,
+ 1698
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 20
+ },
+ "end": {
+ "line": 54,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1661,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 46
+ },
+ "end": {
+ "line": 55,
+ "column": 17
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1638,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 23
+ },
+ "end": {
+ "line": 55,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1549,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 17
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "reflectCallback",
+ "range": [
+ 1733,
+ 1748
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 16
+ },
+ "end": {
+ "line": 56,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1749,
+ 1753
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 32
+ },
+ "end": {
+ "line": 56,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1777,
+ 1782
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 20
+ },
+ "end": {
+ "line": 57,
+ "column": 25
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1784,
+ 1789
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 27
+ },
+ "end": {
+ "line": 57,
+ "column": 32
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1777,
+ 1789
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 20
+ },
+ "end": {
+ "line": 57,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1755,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 38
+ },
+ "end": {
+ "line": 58,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1733,
+ 1808
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 16
+ },
+ "end": {
+ "line": 58,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1733,
+ 1809
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 16
+ },
+ "end": {
+ "line": 58,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1497,
+ 1823
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 19
+ },
+ "end": {
+ "line": 59,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 1376,
+ 1823
+ ],
+ "loc": {
+ "start": {
+ "line": 45,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1362,
+ 1833
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 54
+ },
+ "end": {
+ "line": 60,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1331,
+ 1833
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 23
+ },
+ "end": {
+ "line": 60,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1326,
+ 1834
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 18
+ },
+ "end": {
+ "line": 60,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 1316,
+ 1835
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 1316,
+ 1836
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1853,
+ 1855
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1856,
+ 1861
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 18
+ },
+ "end": {
+ "line": 62,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1853,
+ 1861
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1862,
+ 1866
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 24
+ },
+ "end": {
+ "line": 62,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1868,
+ 1872
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 30
+ },
+ "end": {
+ "line": 62,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1853,
+ 1873
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1846,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 8
+ },
+ "end": {
+ "line": 62,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1306,
+ 1880
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 67
+ },
+ "end": {
+ "line": 63,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1264,
+ 1880
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 25
+ },
+ "end": {
+ "line": 63,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1250,
+ 1881
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 63,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1243,
+ 1882
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 63,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1237,
+ 1884
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 36
+ },
+ "end": {
+ "line": 64,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1216,
+ 1884
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 64,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wraps the function in another function that always returns data even when it\n * errors.\n *\n * The object returned has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 87,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1201,
+ 1884
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 64,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wraps the function in another function that always returns data even when it\n * errors.\n *\n * The object returned has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 87,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1884
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 64,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Wraps the function in another function that always returns data even when it\n * errors.\n *\n * The object returned has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 87,
+ 1200
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/reflectAll.js.json b/docs/ast/source/reflectAll.js.json
new file mode 100644
index 0000000..ba1273c
--- /dev/null
+++ b/docs/ast/source/reflectAll.js.json
@@ -0,0 +1,375 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reflect",
+ "raw": "'./reflect'",
+ "range": [
+ 20,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 20
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 0,
+ 32
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 32
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A helper function that wraps an array of functions with reflect.\n *\n * @name reflectAll\n * @static\n * @memberOf async\n * @see async.reflect\n * @category Util\n * @param {Array} tasks - The array of functions to wrap in `async.reflect`.\n * @returns {Array} Returns an array of functions, each function wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 34,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "reflectAll",
+ "range": [
+ 1086,
+ 1096
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 34
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1097,
+ 1102
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 35
+ },
+ "end": {
+ "line": 42,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 1117,
+ 1122
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 43,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 1123,
+ 1126
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 17
+ },
+ "end": {
+ "line": 43,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1117,
+ 1126
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 43,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "reflect",
+ "range": [
+ 1127,
+ 1134
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 21
+ },
+ "end": {
+ "line": 43,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "range": [
+ 1117,
+ 1135
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 43,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1110,
+ 1136
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 43,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1104,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 42
+ },
+ "end": {
+ "line": 44,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1077,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 44,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A helper function that wraps an array of functions with reflect.\n *\n * @name reflectAll\n * @static\n * @memberOf async\n * @see async.reflect\n * @category Util\n * @param {Array} tasks - The array of functions to wrap in `async.reflect`.\n * @returns {Array} Returns an array of functions, each function wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 34,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1062,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A helper function that wraps an array of functions with reflect.\n *\n * @name reflectAll\n * @static\n * @memberOf async\n * @see async.reflect\n * @category Util\n * @param {Array} tasks - The array of functions to wrap in `async.reflect`.\n * @returns {Array} Returns an array of functions, each function wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 34,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1138
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 44,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A helper function that wraps an array of functions with reflect.\n *\n * @name reflectAll\n * @static\n * @memberOf async\n * @see async.reflect\n * @category Util\n * @param {Array} tasks - The array of functions to wrap in `async.reflect`.\n * @returns {Array} Returns an array of functions, each function wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n ",
+ "range": [
+ 34,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/reject.js.json b/docs/ast/source/reject.js.json
new file mode 100644
index 0000000..8de349c
--- /dev/null
+++ b/docs/ast/source/reject.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./rejectLimit",
+ "raw": "'./rejectLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The opposite of `filter`. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf async\n * @see async.filter\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n ",
+ "range": [
+ 84,
+ 1003
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1019,
+ 1026
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 1027,
+ 1038
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 23
+ },
+ "end": {
+ "line": 29,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1040,
+ 1048
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 36
+ },
+ "end": {
+ "line": 29,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 1019,
+ 1049
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 45
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The opposite of `filter`. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf async\n * @see async.filter\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n ",
+ "range": [
+ 84,
+ 1003
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1004,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 46
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The opposite of `filter`. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf async\n * @see async.filter\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n ",
+ "range": [
+ 84,
+ 1003
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 46
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The opposite of `filter`. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf async\n * @see async.filter\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n ",
+ "range": [
+ 84,
+ 1003
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 28,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/rejectLimit.js.json b/docs/ast/source/rejectLimit.js.json
new file mode 100644
index 0000000..2019930
--- /dev/null
+++ b/docs/ast/source/rejectLimit.js.json
@@ -0,0 +1,319 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/reject",
+ "raw": "'./internal/reject'",
+ "range": [
+ 19,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 0,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 47,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 47,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doParallelLimit",
+ "raw": "'./internal/doParallelLimit'",
+ "range": [
+ 68,
+ 96
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 28
+ },
+ "end": {
+ "line": 2,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 40,
+ 97
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 57
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 811
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doParallelLimit",
+ "range": [
+ 827,
+ 842
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "reject",
+ "range": [
+ 843,
+ 849
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 31
+ },
+ "end": {
+ "line": 21,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 827,
+ 850
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 811
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 812,
+ 851
+ ],
+ "loc": {
+ "start": {
+ "line": 21,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 811
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 851
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 39
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 99,
+ 811
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 20,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/rejectSeries.js.json b/docs/ast/source/rejectSeries.js.json
new file mode 100644
index 0000000..3cde3cf
--- /dev/null
+++ b/docs/ast/source/rejectSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 7,
+ 18
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./rejectLimit",
+ "raw": "'./rejectLimit'",
+ "range": [
+ 24,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 24
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 48,
+ 55
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 61,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 41,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 84,
+ 709
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 725,
+ 732
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 15
+ },
+ "end": {
+ "line": 19,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "rejectLimit",
+ "range": [
+ 733,
+ 744
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 23
+ },
+ "end": {
+ "line": 19,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 746,
+ 747
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 36
+ },
+ "end": {
+ "line": 19,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 725,
+ 748
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 15
+ },
+ "end": {
+ "line": 19,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 84,
+ 709
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 710,
+ 749
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 39
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 84,
+ 709
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 749
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 19,
+ "column": 39
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `reject` but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n ",
+ "range": [
+ 84,
+ 709
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/retry.js.json b/docs/ast/source/retry.js.json
new file mode 100644
index 0000000..2afc7b4
--- /dev/null
+++ b/docs/ast/source/retry.js.json
@@ -0,0 +1,5339 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./series",
+ "raw": "'./series'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 38,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 38,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 48,
+ 61
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 31,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 70,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 70,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/constant",
+ "raw": "'lodash/constant'",
+ "range": [
+ 84,
+ 101
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 21
+ },
+ "end": {
+ "line": 3,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 63,
+ 102
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 39
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {Function} task - A function which receives two arguments: (1) a\n * `callback(err, result)` which must be called when finished, passing `err`\n * (which can be `null`) and the `result` of the function's execution, and (2)\n * a `results` object, containing the results of the previously executed\n * functions (if nested inside another control flow). Invoked with\n * (callback, results).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // It can also be embedded within other control flow functions to retry\n * // individual methods that are not as reliable, like this:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retry(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n ",
+ "range": [
+ 104,
+ 2990
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 73,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 3015,
+ 3020
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 24
+ },
+ "end": {
+ "line": 74,
+ "column": 29
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 3021,
+ 3025
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 30
+ },
+ "end": {
+ "line": 74,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 3027,
+ 3031
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 36
+ },
+ "end": {
+ "line": 74,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 3033,
+ 3041
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 42
+ },
+ "end": {
+ "line": 74,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "DEFAULT_TIMES",
+ "range": [
+ 3053,
+ 3066
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 8
+ },
+ "end": {
+ "line": 75,
+ "column": 21
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 5,
+ "raw": "5",
+ "range": [
+ 3069,
+ 3070
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 24
+ },
+ "end": {
+ "line": 75,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 3053,
+ 3070
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 8
+ },
+ "end": {
+ "line": 75,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 3049,
+ 3071
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 4
+ },
+ "end": {
+ "line": 75,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "DEFAULT_INTERVAL",
+ "range": [
+ 3080,
+ 3096
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 8
+ },
+ "end": {
+ "line": 76,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 3099,
+ 3100
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 27
+ },
+ "end": {
+ "line": 76,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3080,
+ 3100
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 8
+ },
+ "end": {
+ "line": 76,
+ "column": 28
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 3076,
+ 3101
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 4
+ },
+ "end": {
+ "line": 76,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "options",
+ "range": [
+ 3111,
+ 3118
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 8
+ },
+ "end": {
+ "line": 78,
+ "column": 15
+ }
+ }
+ },
+ "init": {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 3131,
+ 3136
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 13
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "DEFAULT_TIMES",
+ "range": [
+ 3138,
+ 3151
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 15
+ },
+ "end": {
+ "line": 79,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3131,
+ 3151
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 8
+ },
+ "end": {
+ "line": 79,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "intervalFunc",
+ "range": [
+ 3161,
+ 3173
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 8
+ },
+ "end": {
+ "line": 80,
+ "column": 20
+ }
+ }
+ },
+ "value": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 3175,
+ 3183
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 22
+ },
+ "end": {
+ "line": 80,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "DEFAULT_INTERVAL",
+ "range": [
+ 3184,
+ 3200
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 31
+ },
+ "end": {
+ "line": 80,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 3175,
+ 3201
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 22
+ },
+ "end": {
+ "line": 80,
+ "column": 48
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 3161,
+ 3201
+ ],
+ "loc": {
+ "start": {
+ "line": 80,
+ "column": 8
+ },
+ "end": {
+ "line": 80,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 3121,
+ 3207
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 18
+ },
+ "end": {
+ "line": 81,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 3111,
+ 3207
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 8
+ },
+ "end": {
+ "line": 81,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 3107,
+ 3208
+ ],
+ "loc": {
+ "start": {
+ "line": 78,
+ "column": 4
+ },
+ "end": {
+ "line": 81,
+ "column": 6
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "parseTimes",
+ "range": [
+ 3223,
+ 3233
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 13
+ },
+ "end": {
+ "line": 83,
+ "column": 23
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "acc",
+ "range": [
+ 3234,
+ 3237
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 24
+ },
+ "end": {
+ "line": 83,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3239,
+ 3240
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 29
+ },
+ "end": {
+ "line": 83,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3263,
+ 3264
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 19
+ },
+ "end": {
+ "line": 84,
+ "column": 20
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3256,
+ 3264
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 12
+ },
+ "end": {
+ "line": 84,
+ "column": 20
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "object",
+ "raw": "'object'",
+ "range": [
+ 3269,
+ 3277
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 25
+ },
+ "end": {
+ "line": 84,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3256,
+ 3277
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 12
+ },
+ "end": {
+ "line": 84,
+ "column": 33
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "acc",
+ "range": [
+ 3293,
+ 3296
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 12
+ },
+ "end": {
+ "line": 85,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 3297,
+ 3302
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 16
+ },
+ "end": {
+ "line": 85,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 3293,
+ 3302
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 12
+ },
+ "end": {
+ "line": 85,
+ "column": 21
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "+",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3306,
+ 3307
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 25
+ },
+ "end": {
+ "line": 85,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 3308,
+ 3313
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 27
+ },
+ "end": {
+ "line": 85,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 3306,
+ 3313
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 25
+ },
+ "end": {
+ "line": 85,
+ "column": 32
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3305,
+ 3313
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 24
+ },
+ "end": {
+ "line": 85,
+ "column": 32
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "DEFAULT_TIMES",
+ "range": [
+ 3317,
+ 3330
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 36
+ },
+ "end": {
+ "line": 85,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 3305,
+ 3330
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 24
+ },
+ "end": {
+ "line": 85,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 3293,
+ 3330
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 12
+ },
+ "end": {
+ "line": 85,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 3293,
+ 3331
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 12
+ },
+ "end": {
+ "line": 85,
+ "column": 50
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "acc",
+ "range": [
+ 3345,
+ 3348
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 12
+ },
+ "end": {
+ "line": 87,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "intervalFunc",
+ "range": [
+ 3349,
+ 3361
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 16
+ },
+ "end": {
+ "line": 87,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3345,
+ 3361
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 12
+ },
+ "end": {
+ "line": 87,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3371,
+ 3372
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 38
+ },
+ "end": {
+ "line": 87,
+ "column": 39
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 3373,
+ 3381
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 40
+ },
+ "end": {
+ "line": 87,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 3371,
+ 3381
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 38
+ },
+ "end": {
+ "line": 87,
+ "column": 48
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3364,
+ 3381
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 31
+ },
+ "end": {
+ "line": 87,
+ "column": 48
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 3386,
+ 3396
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 53
+ },
+ "end": {
+ "line": 87,
+ "column": 63
+ }
+ }
+ },
+ "range": [
+ 3364,
+ 3396
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 31
+ },
+ "end": {
+ "line": 87,
+ "column": 63
+ }
+ }
+ },
+ "consequent": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3415,
+ 3416
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 16
+ },
+ "end": {
+ "line": 88,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 3417,
+ 3425
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 18
+ },
+ "end": {
+ "line": 88,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 3415,
+ 3425
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 16
+ },
+ "end": {
+ "line": 88,
+ "column": 26
+ }
+ }
+ },
+ "alternate": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "constant",
+ "range": [
+ 3444,
+ 3452
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 16
+ },
+ "end": {
+ "line": 89,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "+",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3454,
+ 3455
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 26
+ },
+ "end": {
+ "line": 89,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 3456,
+ 3464
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 28
+ },
+ "end": {
+ "line": 89,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 3454,
+ 3464
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 26
+ },
+ "end": {
+ "line": 89,
+ "column": 36
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3453,
+ 3464
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 25
+ },
+ "end": {
+ "line": 89,
+ "column": 36
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "DEFAULT_INTERVAL",
+ "range": [
+ 3468,
+ 3484
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 40
+ },
+ "end": {
+ "line": 89,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 3453,
+ 3484
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 25
+ },
+ "end": {
+ "line": 89,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 3444,
+ 3485
+ ],
+ "loc": {
+ "start": {
+ "line": 89,
+ "column": 16
+ },
+ "end": {
+ "line": 89,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 3364,
+ 3485
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 31
+ },
+ "end": {
+ "line": 89,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 3345,
+ 3485
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 12
+ },
+ "end": {
+ "line": 89,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 3345,
+ 3486
+ ],
+ "loc": {
+ "start": {
+ "line": 87,
+ "column": 12
+ },
+ "end": {
+ "line": 89,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 3279,
+ 3496
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 35
+ },
+ "end": {
+ "line": 90,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3513,
+ 3514
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 26
+ },
+ "end": {
+ "line": 90,
+ "column": 27
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3506,
+ 3514
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 19
+ },
+ "end": {
+ "line": 90,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "number",
+ "raw": "'number'",
+ "range": [
+ 3519,
+ 3527
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 32
+ },
+ "end": {
+ "line": 90,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 3506,
+ 3527
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 19
+ },
+ "end": {
+ "line": 90,
+ "column": 40
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3538,
+ 3539
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 51
+ },
+ "end": {
+ "line": 90,
+ "column": 52
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3531,
+ 3539
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 44
+ },
+ "end": {
+ "line": 90,
+ "column": 52
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "string",
+ "raw": "'string'",
+ "range": [
+ 3544,
+ 3552
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 57
+ },
+ "end": {
+ "line": 90,
+ "column": 65
+ }
+ }
+ },
+ "range": [
+ 3531,
+ 3552
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 44
+ },
+ "end": {
+ "line": 90,
+ "column": 65
+ }
+ }
+ },
+ "range": [
+ 3506,
+ 3552
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 19
+ },
+ "end": {
+ "line": 90,
+ "column": 65
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "acc",
+ "range": [
+ 3568,
+ 3571
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 12
+ },
+ "end": {
+ "line": 91,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 3572,
+ 3577
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 16
+ },
+ "end": {
+ "line": 91,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 3568,
+ 3577
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 12
+ },
+ "end": {
+ "line": 91,
+ "column": 21
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "+",
+ "argument": {
+ "type": "Identifier",
+ "name": "t",
+ "range": [
+ 3581,
+ 3582
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 25
+ },
+ "end": {
+ "line": 91,
+ "column": 26
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3580,
+ 3582
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 24
+ },
+ "end": {
+ "line": 91,
+ "column": 26
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "DEFAULT_TIMES",
+ "range": [
+ 3586,
+ 3599
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 30
+ },
+ "end": {
+ "line": 91,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 3580,
+ 3599
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 24
+ },
+ "end": {
+ "line": 91,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 3568,
+ 3599
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 12
+ },
+ "end": {
+ "line": 91,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 3568,
+ 3600
+ ],
+ "loc": {
+ "start": {
+ "line": 91,
+ "column": 12
+ },
+ "end": {
+ "line": 91,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 3554,
+ 3610
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 67
+ },
+ "end": {
+ "line": 92,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 3640,
+ 3645
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 22
+ },
+ "end": {
+ "line": 93,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "Invalid arguments for async.retry",
+ "raw": "\"Invalid arguments for async.retry\"",
+ "range": [
+ 3646,
+ 3681
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 28
+ },
+ "end": {
+ "line": 93,
+ "column": 63
+ }
+ }
+ }
+ ],
+ "range": [
+ 3636,
+ 3682
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 18
+ },
+ "end": {
+ "line": 93,
+ "column": 64
+ }
+ }
+ },
+ "range": [
+ 3630,
+ 3683
+ ],
+ "loc": {
+ "start": {
+ "line": 93,
+ "column": 12
+ },
+ "end": {
+ "line": 93,
+ "column": 65
+ }
+ }
+ }
+ ],
+ "range": [
+ 3616,
+ 3693
+ ],
+ "loc": {
+ "start": {
+ "line": 92,
+ "column": 15
+ },
+ "end": {
+ "line": 94,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 3502,
+ 3693
+ ],
+ "loc": {
+ "start": {
+ "line": 90,
+ "column": 15
+ },
+ "end": {
+ "line": 94,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 3252,
+ 3693
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 8
+ },
+ "end": {
+ "line": 94,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 3242,
+ 3699
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 32
+ },
+ "end": {
+ "line": 95,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3214,
+ 3699
+ ],
+ "loc": {
+ "start": {
+ "line": 83,
+ "column": 4
+ },
+ "end": {
+ "line": 95,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 3710,
+ 3719
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 3720,
+ 3726
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 18
+ },
+ "end": {
+ "line": 98,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 3710,
+ 3726
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 3,
+ "raw": "3",
+ "range": [
+ 3729,
+ 3730
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 27
+ },
+ "end": {
+ "line": 98,
+ "column": 28
+ }
+ }
+ },
+ "range": [
+ 3710,
+ 3730
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 3741,
+ 3745
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 39
+ },
+ "end": {
+ "line": 98,
+ "column": 43
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3734,
+ 3745
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 32
+ },
+ "end": {
+ "line": 98,
+ "column": 43
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 3750,
+ 3760
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 48
+ },
+ "end": {
+ "line": 98,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 3734,
+ 3760
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 32
+ },
+ "end": {
+ "line": 98,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 3710,
+ 3760
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 8
+ },
+ "end": {
+ "line": 98,
+ "column": 58
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 3772,
+ 3780
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 8
+ },
+ "end": {
+ "line": 99,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 3783,
+ 3787
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 19
+ },
+ "end": {
+ "line": 99,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 3791,
+ 3795
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 27
+ },
+ "end": {
+ "line": 99,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 3783,
+ 3795
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 19
+ },
+ "end": {
+ "line": 99,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 3772,
+ 3795
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 8
+ },
+ "end": {
+ "line": 99,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 3772,
+ 3796
+ ],
+ "loc": {
+ "start": {
+ "line": 99,
+ "column": 8
+ },
+ "end": {
+ "line": 99,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 3805,
+ 3809
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 100,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 3812,
+ 3816
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 15
+ },
+ "end": {
+ "line": 100,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 3805,
+ 3816
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 100,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 3805,
+ 3817
+ ],
+ "loc": {
+ "start": {
+ "line": 100,
+ "column": 8
+ },
+ "end": {
+ "line": 100,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 3762,
+ 3823
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 60
+ },
+ "end": {
+ "line": 101,
+ "column": 5
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "parseTimes",
+ "range": [
+ 3839,
+ 3849
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 8
+ },
+ "end": {
+ "line": 102,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "options",
+ "range": [
+ 3850,
+ 3857
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 19
+ },
+ "end": {
+ "line": 102,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 3859,
+ 3863
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 28
+ },
+ "end": {
+ "line": 102,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 3839,
+ 3864
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 8
+ },
+ "end": {
+ "line": 102,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 3839,
+ 3865
+ ],
+ "loc": {
+ "start": {
+ "line": 102,
+ "column": 8
+ },
+ "end": {
+ "line": 102,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 3874,
+ 3882
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 3885,
+ 3893
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 19
+ },
+ "end": {
+ "line": 103,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 3897,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 31
+ },
+ "end": {
+ "line": 103,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 3885,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 19
+ },
+ "end": {
+ "line": 103,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 3874,
+ 3901
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 3874,
+ 3902
+ ],
+ "loc": {
+ "start": {
+ "line": 103,
+ "column": 8
+ },
+ "end": {
+ "line": 103,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 3829,
+ 3908
+ ],
+ "loc": {
+ "start": {
+ "line": 101,
+ "column": 11
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 3706,
+ 3908
+ ],
+ "loc": {
+ "start": {
+ "line": 98,
+ "column": 4
+ },
+ "end": {
+ "line": 104,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "!==",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 3926,
+ 3930
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 15
+ },
+ "end": {
+ "line": 107,
+ "column": 19
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 3919,
+ 3930
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 8
+ },
+ "end": {
+ "line": 107,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 3935,
+ 3945
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 24
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 3919,
+ 3945
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 8
+ },
+ "end": {
+ "line": 107,
+ "column": 34
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ThrowStatement",
+ "argument": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 3967,
+ 3972
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 18
+ },
+ "end": {
+ "line": 108,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "Invalid arguments for async.retry",
+ "raw": "\"Invalid arguments for async.retry\"",
+ "range": [
+ 3973,
+ 4008
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 24
+ },
+ "end": {
+ "line": 108,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 3963,
+ 4009
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 14
+ },
+ "end": {
+ "line": 108,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 3957,
+ 4010
+ ],
+ "loc": {
+ "start": {
+ "line": 108,
+ "column": 8
+ },
+ "end": {
+ "line": 108,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 3947,
+ 4016
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 36
+ },
+ "end": {
+ "line": 109,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 3915,
+ 4016
+ ],
+ "loc": {
+ "start": {
+ "line": 107,
+ "column": 4
+ },
+ "end": {
+ "line": 109,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "attempts",
+ "range": [
+ 4026,
+ 4034
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 8
+ },
+ "end": {
+ "line": 111,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 4037,
+ 4039
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 19
+ },
+ "end": {
+ "line": 111,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 4026,
+ 4039
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 8
+ },
+ "end": {
+ "line": 111,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4022,
+ 4040
+ ],
+ "loc": {
+ "start": {
+ "line": 111,
+ "column": 4
+ },
+ "end": {
+ "line": 111,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "ForStatement",
+ "init": {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 4054,
+ 4055
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 13
+ },
+ "end": {
+ "line": 112,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4058,
+ 4059
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 17
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 4054,
+ 4059
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 13
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4050,
+ 4059
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 9
+ },
+ "end": {
+ "line": 112,
+ "column": 18
+ }
+ }
+ },
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 4061,
+ 4062
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 21
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "options",
+ "range": [
+ 4065,
+ 4072
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 24
+ },
+ "end": {
+ "line": 112,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 4073,
+ 4078
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 32
+ },
+ "end": {
+ "line": 112,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 4065,
+ 4078
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 24
+ },
+ "end": {
+ "line": 112,
+ "column": 37
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4081,
+ 4082
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 40
+ },
+ "end": {
+ "line": 112,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 4065,
+ 4082
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 24
+ },
+ "end": {
+ "line": 112,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 4061,
+ 4082
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 20
+ },
+ "end": {
+ "line": 112,
+ "column": 41
+ }
+ }
+ },
+ "update": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 4084,
+ 4085
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 43
+ },
+ "end": {
+ "line": 112,
+ "column": 44
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 4084,
+ 4087
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 43
+ },
+ "end": {
+ "line": 112,
+ "column": 46
+ }
+ }
+ },
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "isFinalAttempt",
+ "range": [
+ 4103,
+ 4117
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 12
+ },
+ "end": {
+ "line": 113,
+ "column": 26
+ }
+ }
+ },
+ "init": {
+ "type": "BinaryExpression",
+ "operator": "==",
+ "left": {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 4121,
+ 4122
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 30
+ },
+ "end": {
+ "line": 113,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "options",
+ "range": [
+ 4126,
+ 4133
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 35
+ },
+ "end": {
+ "line": 113,
+ "column": 42
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "times",
+ "range": [
+ 4134,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 43
+ },
+ "end": {
+ "line": 113,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 4126,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 35
+ },
+ "end": {
+ "line": 113,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 4121,
+ 4139
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 30
+ },
+ "end": {
+ "line": 113,
+ "column": 48
+ }
+ }
+ },
+ "range": [
+ 4103,
+ 4140
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 12
+ },
+ "end": {
+ "line": 113,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4099,
+ 4141
+ ],
+ "loc": {
+ "start": {
+ "line": 113,
+ "column": 8
+ },
+ "end": {
+ "line": 113,
+ "column": 50
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "attempts",
+ "range": [
+ 4150,
+ 4158
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 8
+ },
+ "end": {
+ "line": 114,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 4159,
+ 4163
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 17
+ },
+ "end": {
+ "line": 114,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 4150,
+ 4163
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 8
+ },
+ "end": {
+ "line": 114,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "retryAttempt",
+ "range": [
+ 4164,
+ 4176
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 22
+ },
+ "end": {
+ "line": 114,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "isFinalAttempt",
+ "range": [
+ 4177,
+ 4191
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 35
+ },
+ "end": {
+ "line": 114,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 4164,
+ 4192
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 22
+ },
+ "end": {
+ "line": 114,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 4150,
+ 4193
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 8
+ },
+ "end": {
+ "line": 114,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 4150,
+ 4194
+ ],
+ "loc": {
+ "start": {
+ "line": 114,
+ "column": 8
+ },
+ "end": {
+ "line": 114,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 4207,
+ 4215
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 20
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "options",
+ "range": [
+ 4218,
+ 4225
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 23
+ },
+ "end": {
+ "line": 115,
+ "column": 30
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "intervalFunc",
+ "range": [
+ 4226,
+ 4238
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 31
+ },
+ "end": {
+ "line": 115,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 4218,
+ 4238
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 23
+ },
+ "end": {
+ "line": 115,
+ "column": 43
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "i",
+ "range": [
+ 4239,
+ 4240
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 44
+ },
+ "end": {
+ "line": 115,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 4218,
+ 4241
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 23
+ },
+ "end": {
+ "line": 115,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 4207,
+ 4241
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 12
+ },
+ "end": {
+ "line": 115,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 4203,
+ 4242
+ ],
+ "loc": {
+ "start": {
+ "line": 115,
+ "column": 8
+ },
+ "end": {
+ "line": 115,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "LogicalExpression",
+ "operator": "&&",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "isFinalAttempt",
+ "range": [
+ 4256,
+ 4270
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 13
+ },
+ "end": {
+ "line": 116,
+ "column": 27
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4255,
+ 4270
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 12
+ },
+ "end": {
+ "line": 116,
+ "column": 27
+ }
+ }
+ },
+ "right": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 4274,
+ 4282
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 31
+ },
+ "end": {
+ "line": 116,
+ "column": 39
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 4285,
+ 4286
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 42
+ },
+ "end": {
+ "line": 116,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 4274,
+ 4286
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 31
+ },
+ "end": {
+ "line": 116,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 4255,
+ 4286
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 12
+ },
+ "end": {
+ "line": 116,
+ "column": 43
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "attempts",
+ "range": [
+ 4302,
+ 4310
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 4311,
+ 4315
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 21
+ },
+ "end": {
+ "line": 117,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 4302,
+ 4315
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 25
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "retryInterval",
+ "range": [
+ 4316,
+ 4329
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 26
+ },
+ "end": {
+ "line": 117,
+ "column": 39
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 4330,
+ 4338
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 40
+ },
+ "end": {
+ "line": 117,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 4316,
+ 4339
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 26
+ },
+ "end": {
+ "line": 117,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "range": [
+ 4302,
+ 4340
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 4302,
+ 4341
+ ],
+ "loc": {
+ "start": {
+ "line": 117,
+ "column": 12
+ },
+ "end": {
+ "line": 117,
+ "column": 51
+ }
+ }
+ }
+ ],
+ "range": [
+ 4288,
+ 4351
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 45
+ },
+ "end": {
+ "line": 118,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 4251,
+ 4351
+ ],
+ "loc": {
+ "start": {
+ "line": 116,
+ "column": 8
+ },
+ "end": {
+ "line": 118,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 4089,
+ 4357
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 48
+ },
+ "end": {
+ "line": 119,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 4045,
+ 4357
+ ],
+ "loc": {
+ "start": {
+ "line": 112,
+ "column": 4
+ },
+ "end": {
+ "line": 119,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 4363,
+ 4369
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 4
+ },
+ "end": {
+ "line": 121,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "attempts",
+ "range": [
+ 4370,
+ 4378
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 11
+ },
+ "end": {
+ "line": 121,
+ "column": 19
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "done",
+ "range": [
+ 4389,
+ 4393
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 30
+ },
+ "end": {
+ "line": 121,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4395,
+ 4399
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 36
+ },
+ "end": {
+ "line": 121,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4411,
+ 4415
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 8
+ },
+ "end": {
+ "line": 122,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4418,
+ 4422
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 15
+ },
+ "end": {
+ "line": 122,
+ "column": 19
+ }
+ }
+ },
+ "property": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4423,
+ 4427
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 4428,
+ 4434
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 25
+ },
+ "end": {
+ "line": 122,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 4423,
+ 4434
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 4437,
+ 4438
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 34
+ },
+ "end": {
+ "line": 122,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 4423,
+ 4438
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 20
+ },
+ "end": {
+ "line": 122,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 4418,
+ 4439
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 15
+ },
+ "end": {
+ "line": 122,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4411,
+ 4439
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 8
+ },
+ "end": {
+ "line": 122,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4411,
+ 4440
+ ],
+ "loc": {
+ "start": {
+ "line": 122,
+ "column": 8
+ },
+ "end": {
+ "line": 122,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 4449,
+ 4457
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 8
+ },
+ "end": {
+ "line": 123,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4458,
+ 4462
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 17
+ },
+ "end": {
+ "line": 123,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 4463,
+ 4466
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 22
+ },
+ "end": {
+ "line": 123,
+ "column": 25
+ }
+ }
+ },
+ "range": [
+ 4458,
+ 4466
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 17
+ },
+ "end": {
+ "line": 123,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "data",
+ "range": [
+ 4468,
+ 4472
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 27
+ },
+ "end": {
+ "line": 123,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 4473,
+ 4479
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 32
+ },
+ "end": {
+ "line": 123,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 4468,
+ 4479
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 27
+ },
+ "end": {
+ "line": 123,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 4449,
+ 4480
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 8
+ },
+ "end": {
+ "line": 123,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 4449,
+ 4481
+ ],
+ "loc": {
+ "start": {
+ "line": 123,
+ "column": 8
+ },
+ "end": {
+ "line": 123,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 4401,
+ 4487
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 42
+ },
+ "end": {
+ "line": 124,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4380,
+ 4487
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 21
+ },
+ "end": {
+ "line": 124,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 4363,
+ 4488
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 4
+ },
+ "end": {
+ "line": 124,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 4363,
+ 4489
+ ],
+ "loc": {
+ "start": {
+ "line": 121,
+ "column": 4
+ },
+ "end": {
+ "line": 124,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "retryAttempt",
+ "range": [
+ 4505,
+ 4517
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 13
+ },
+ "end": {
+ "line": 127,
+ "column": 25
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "isFinalAttempt",
+ "range": [
+ 4518,
+ 4532
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 26
+ },
+ "end": {
+ "line": 127,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "seriesCallback",
+ "range": [
+ 4560,
+ 4574
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 24
+ },
+ "end": {
+ "line": 128,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 4590,
+ 4594
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 129,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 4604,
+ 4607
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 26
+ },
+ "end": {
+ "line": 129,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 4609,
+ 4615
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 31
+ },
+ "end": {
+ "line": 129,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "seriesCallback",
+ "range": [
+ 4635,
+ 4649
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 16
+ },
+ "end": {
+ "line": 130,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 4651,
+ 4654
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 32
+ },
+ "end": {
+ "line": 130,
+ "column": 35
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 4650,
+ 4654
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 31
+ },
+ "end": {
+ "line": 130,
+ "column": 35
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "isFinalAttempt",
+ "range": [
+ 4658,
+ 4672
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 39
+ },
+ "end": {
+ "line": 130,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 4650,
+ 4672
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 31
+ },
+ "end": {
+ "line": 130,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 4696,
+ 4699
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 20
+ },
+ "end": {
+ "line": 131,
+ "column": 23
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 4701,
+ 4704
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 25
+ },
+ "end": {
+ "line": 131,
+ "column": 28
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4696,
+ 4704
+ ],
+ "loc": {
+ "start": {
+ "line": 131,
+ "column": 20
+ },
+ "end": {
+ "line": 131,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 4726,
+ 4732
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 20
+ },
+ "end": {
+ "line": 132,
+ "column": 26
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "result",
+ "range": [
+ 4734,
+ 4740
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 28
+ },
+ "end": {
+ "line": 132,
+ "column": 34
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 4726,
+ 4740
+ ],
+ "loc": {
+ "start": {
+ "line": 132,
+ "column": 20
+ },
+ "end": {
+ "line": 132,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 4674,
+ 4758
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 55
+ },
+ "end": {
+ "line": 133,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 4635,
+ 4759
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 16
+ },
+ "end": {
+ "line": 133,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 4635,
+ 4760
+ ],
+ "loc": {
+ "start": {
+ "line": 130,
+ "column": 16
+ },
+ "end": {
+ "line": 133,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 4617,
+ 4774
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 39
+ },
+ "end": {
+ "line": 134,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4595,
+ 4774
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 17
+ },
+ "end": {
+ "line": 134,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 4590,
+ 4775
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 134,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 4590,
+ 4776
+ ],
+ "loc": {
+ "start": {
+ "line": 129,
+ "column": 12
+ },
+ "end": {
+ "line": 134,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 4576,
+ 4786
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 40
+ },
+ "end": {
+ "line": 135,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4551,
+ 4786
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 15
+ },
+ "end": {
+ "line": 135,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 4544,
+ 4787
+ ],
+ "loc": {
+ "start": {
+ "line": 128,
+ "column": 8
+ },
+ "end": {
+ "line": 135,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 4534,
+ 4793
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 42
+ },
+ "end": {
+ "line": 136,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4496,
+ 4793
+ ],
+ "loc": {
+ "start": {
+ "line": 127,
+ "column": 4
+ },
+ "end": {
+ "line": 136,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "retryInterval",
+ "range": [
+ 4808,
+ 4821
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 13
+ },
+ "end": {
+ "line": 138,
+ "column": 26
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 4822,
+ 4830
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 27
+ },
+ "end": {
+ "line": 138,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "seriesCallback",
+ "range": [
+ 4858,
+ 4872
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 24
+ },
+ "end": {
+ "line": 139,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setTimeout",
+ "range": [
+ 4888,
+ 4898
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 12
+ },
+ "end": {
+ "line": 140,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "seriesCallback",
+ "range": [
+ 4928,
+ 4942
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 16
+ },
+ "end": {
+ "line": 141,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 4943,
+ 4947
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 31
+ },
+ "end": {
+ "line": 141,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 4928,
+ 4948
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 16
+ },
+ "end": {
+ "line": 141,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 4928,
+ 4949
+ ],
+ "loc": {
+ "start": {
+ "line": 141,
+ "column": 16
+ },
+ "end": {
+ "line": 141,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 4910,
+ 4963
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 34
+ },
+ "end": {
+ "line": 142,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4899,
+ 4963
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 23
+ },
+ "end": {
+ "line": 142,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "interval",
+ "range": [
+ 4965,
+ 4973
+ ],
+ "loc": {
+ "start": {
+ "line": 142,
+ "column": 15
+ },
+ "end": {
+ "line": 142,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 4888,
+ 4974
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 12
+ },
+ "end": {
+ "line": 142,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 4888,
+ 4975
+ ],
+ "loc": {
+ "start": {
+ "line": 140,
+ "column": 12
+ },
+ "end": {
+ "line": 142,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 4874,
+ 4985
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 40
+ },
+ "end": {
+ "line": 143,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4849,
+ 4985
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 15
+ },
+ "end": {
+ "line": 143,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 4842,
+ 4986
+ ],
+ "loc": {
+ "start": {
+ "line": 139,
+ "column": 8
+ },
+ "end": {
+ "line": 143,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 4832,
+ 4992
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 37
+ },
+ "end": {
+ "line": 144,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 4799,
+ 4992
+ ],
+ "loc": {
+ "start": {
+ "line": 138,
+ "column": 4
+ },
+ "end": {
+ "line": 144,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 3043,
+ 4994
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 52
+ },
+ "end": {
+ "line": 145,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 3006,
+ 4994
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 15
+ },
+ "end": {
+ "line": 145,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {Function} task - A function which receives two arguments: (1) a\n * `callback(err, result)` which must be called when finished, passing `err`\n * (which can be `null`) and the `result` of the function's execution, and (2)\n * a `results` object, containing the results of the previously executed\n * functions (if nested inside another control flow). Invoked with\n * (callback, results).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // It can also be embedded within other control flow functions to retry\n * // individual methods that are not as reliable, like this:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retry(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n ",
+ "range": [
+ 104,
+ 2990
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 73,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 2991,
+ 4994
+ ],
+ "loc": {
+ "start": {
+ "line": 74,
+ "column": 0
+ },
+ "end": {
+ "line": 145,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {Function} task - A function which receives two arguments: (1) a\n * `callback(err, result)` which must be called when finished, passing `err`\n * (which can be `null`) and the `result` of the function's execution, and (2)\n * a `results` object, containing the results of the previously executed\n * functions (if nested inside another control flow). Invoked with\n * (callback, results).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // It can also be embedded within other control flow functions to retry\n * // individual methods that are not as reliable, like this:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retry(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n ",
+ "range": [
+ 104,
+ 2990
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 73,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 4994
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 145,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {Function} task - A function which receives two arguments: (1) a\n * `callback(err, result)` which must be called when finished, passing `err`\n * (which can be `null`) and the `result` of the function's execution, and (2)\n * a `results` object, containing the results of the previously executed\n * functions (if nested inside another control flow). Invoked with\n * (callback, results).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // It can also be embedded within other control flow functions to retry\n * // individual methods that are not as reliable, like this:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retry(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n ",
+ "range": [
+ 104,
+ 2990
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 73,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/retryable.js.json b/docs/ast/source/retryable.js.json
new file mode 100644
index 0000000..b98105a
--- /dev/null
+++ b/docs/ast/source/retryable.js.json
@@ -0,0 +1,1217 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 7,
+ 12
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./retry",
+ "raw": "'./retry'",
+ "range": [
+ 18,
+ 27
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 18
+ },
+ "end": {
+ "line": 1,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 0,
+ 28
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 36,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 36,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 55,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 26
+ },
+ "end": {
+ "line": 2,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 29,
+ 82
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A close relative of `retry`. This method wraps a task and makes it\n * retryable, rather than immediately calling it with retries.\n *\n * @name retryable\n * @static\n * @memberOf async\n * @see async.retry\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {Function} task - the asynchronous function to wrap\n * @returns {Functions} The wrapped function, which when invoked, will retry on\n * an error, based on the parameters specified in `opts`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n ",
+ "range": [
+ 84,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 896,
+ 900
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 25
+ },
+ "end": {
+ "line": 27,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 902,
+ 906
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 31
+ },
+ "end": {
+ "line": 27,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 919,
+ 923
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 9
+ },
+ "end": {
+ "line": 28,
+ "column": 13
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 918,
+ 923
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 8
+ },
+ "end": {
+ "line": 28,
+ "column": 13
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 935,
+ 939
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 942,
+ 946
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 935,
+ 946
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 935,
+ 947
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 8
+ },
+ "end": {
+ "line": 29,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 956,
+ 960
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 963,
+ 967
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 15
+ },
+ "end": {
+ "line": 30,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 956,
+ 967
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 956,
+ 968
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 30,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "range": [
+ 925,
+ 974
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 15
+ },
+ "end": {
+ "line": 31,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 914,
+ 974
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 4
+ },
+ "end": {
+ "line": 31,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 986,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 11
+ },
+ "end": {
+ "line": 32,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1010,
+ 1014
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 35
+ },
+ "end": {
+ "line": 32,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1016,
+ 1024
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 41
+ },
+ "end": {
+ "line": 32,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 1045,
+ 1051
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 17
+ },
+ "end": {
+ "line": 33,
+ "column": 23
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1052,
+ 1054
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 24
+ },
+ "end": {
+ "line": 33,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 1070,
+ 1074
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1075,
+ 1080
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 17
+ },
+ "end": {
+ "line": 34,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1070,
+ 1080
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1081,
+ 1085
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 23
+ },
+ "end": {
+ "line": 34,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1087,
+ 1091
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 29
+ },
+ "end": {
+ "line": 34,
+ "column": 33
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1092,
+ 1098
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 34
+ },
+ "end": {
+ "line": 34,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 1087,
+ 1098
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 29
+ },
+ "end": {
+ "line": 34,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1100,
+ 1102
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 42
+ },
+ "end": {
+ "line": 34,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 1099,
+ 1103
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 41
+ },
+ "end": {
+ "line": 34,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 1087,
+ 1104
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 29
+ },
+ "end": {
+ "line": 34,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1070,
+ 1105
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1070,
+ 1106
+ ],
+ "loc": {
+ "start": {
+ "line": 34,
+ "column": 12
+ },
+ "end": {
+ "line": 34,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1056,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 28
+ },
+ "end": {
+ "line": 35,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1036,
+ 1116
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 8
+ },
+ "end": {
+ "line": 35,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 1130,
+ 1134
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 16
+ }
+ }
+ },
+ "consequent": {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 1136,
+ 1141
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 18
+ },
+ "end": {
+ "line": 37,
+ "column": 23
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "opts",
+ "range": [
+ 1142,
+ 1146
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 24
+ },
+ "end": {
+ "line": 37,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 1148,
+ 1154
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 30
+ },
+ "end": {
+ "line": 37,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1156,
+ 1164
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 38
+ },
+ "end": {
+ "line": 37,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1136,
+ 1165
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 18
+ },
+ "end": {
+ "line": 37,
+ "column": 47
+ }
+ }
+ },
+ "range": [
+ 1136,
+ 1166
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 18
+ },
+ "end": {
+ "line": 37,
+ "column": 48
+ }
+ }
+ },
+ "alternate": {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "retry",
+ "range": [
+ 1180,
+ 1185
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskFn",
+ "range": [
+ 1186,
+ 1192
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 19
+ },
+ "end": {
+ "line": 38,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1194,
+ 1202
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 27
+ },
+ "end": {
+ "line": 38,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 1180,
+ 1203
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 1180,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 13
+ },
+ "end": {
+ "line": 38,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1126,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 8
+ },
+ "end": {
+ "line": 38,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 1026,
+ 1211
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 51
+ },
+ "end": {
+ "line": 40,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1000,
+ 1211
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 25
+ },
+ "end": {
+ "line": 40,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 986,
+ 1212
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 11
+ },
+ "end": {
+ "line": 40,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 979,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 908,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 37
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 886,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 15
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A close relative of `retry`. This method wraps a task and makes it\n * retryable, rather than immediately calling it with retries.\n *\n * @name retryable\n * @static\n * @memberOf async\n * @see async.retry\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {Function} task - the asynchronous function to wrap\n * @returns {Functions} The wrapped function, which when invoked, will retry on\n * an error, based on the parameters specified in `opts`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n ",
+ "range": [
+ 84,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 871,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A close relative of `retry`. This method wraps a task and makes it\n * retryable, rather than immediately calling it with retries.\n *\n * @name retryable\n * @static\n * @memberOf async\n * @see async.retry\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {Function} task - the asynchronous function to wrap\n * @returns {Functions} The wrapped function, which when invoked, will retry on\n * an error, based on the parameters specified in `opts`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n ",
+ "range": [
+ 84,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1215
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A close relative of `retry`. This method wraps a task and makes it\n * retryable, rather than immediately calling it with retries.\n *\n * @name retryable\n * @static\n * @memberOf async\n * @see async.retry\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {Function} task - the asynchronous function to wrap\n * @returns {Functions} The wrapped function, which when invoked, will retry on\n * an error, based on the parameters specified in `opts`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n ",
+ "range": [
+ 84,
+ 870
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 26,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/seq.js.json b/docs/ast/source/seq.js.json
new file mode 100644
index 0000000..2f1a04d
--- /dev/null
+++ b/docs/ast/source/seq.js.json
@@ -0,0 +1,1990 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 49,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 32,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 71,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 71,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./reduce",
+ "raw": "'./reduce'",
+ "range": [
+ 83,
+ 93
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 19
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 64,
+ 94
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * {@link async.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf async\n * @see async.compose\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n ",
+ "range": [
+ 96,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1538,
+ 1542
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 42,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": {
+ "type": "Identifier",
+ "name": "seq",
+ "range": [
+ 1552,
+ 1555
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 29
+ },
+ "end": {
+ "line": 42,
+ "column": 32
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "functions",
+ "range": [
+ 1556,
+ 1565
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 33
+ },
+ "end": {
+ "line": 42,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1580,
+ 1584
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 43,
+ "column": 15
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1594,
+ 1598
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 25
+ },
+ "end": {
+ "line": 43,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "that",
+ "range": [
+ 1614,
+ 1618
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 12
+ },
+ "end": {
+ "line": 44,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "ThisExpression",
+ "range": [
+ 1621,
+ 1625
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 19
+ },
+ "end": {
+ "line": 44,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1614,
+ 1625
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 12
+ },
+ "end": {
+ "line": 44,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1610,
+ 1626
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1640,
+ 1642
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 14
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1645,
+ 1649
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 17
+ },
+ "end": {
+ "line": 46,
+ "column": 21
+ }
+ }
+ },
+ "property": {
+ "type": "BinaryExpression",
+ "operator": "-",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1650,
+ 1654
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1655,
+ 1661
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 27
+ },
+ "end": {
+ "line": 46,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1650,
+ 1661
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 33
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 1664,
+ 1665
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 36
+ },
+ "end": {
+ "line": 46,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1650,
+ 1665
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 22
+ },
+ "end": {
+ "line": 46,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1645,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 17
+ },
+ "end": {
+ "line": 46,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1640,
+ 1666
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 12
+ },
+ "end": {
+ "line": 46,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1636,
+ 1667
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 8
+ },
+ "end": {
+ "line": 46,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "==",
+ "left": {
+ "type": "UnaryExpression",
+ "operator": "typeof",
+ "argument": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1687,
+ 1689
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 19
+ },
+ "end": {
+ "line": 47,
+ "column": 21
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1680,
+ 1689
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 12
+ },
+ "end": {
+ "line": 47,
+ "column": 21
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "function",
+ "raw": "'function'",
+ "range": [
+ 1693,
+ 1703
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 47,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 1680,
+ 1703
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 12
+ },
+ "end": {
+ "line": 47,
+ "column": 35
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1719,
+ 1723
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "pop",
+ "range": [
+ 1724,
+ 1727
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 17
+ },
+ "end": {
+ "line": 48,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1719,
+ 1727
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1719,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1719,
+ 1730
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 12
+ },
+ "end": {
+ "line": 48,
+ "column": 23
+ }
+ }
+ }
+ ],
+ "range": [
+ 1705,
+ 1740
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 37
+ },
+ "end": {
+ "line": 49,
+ "column": 9
+ }
+ }
+ },
+ "alternate": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1760,
+ 1762
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 12
+ },
+ "end": {
+ "line": 50,
+ "column": 14
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1765,
+ 1769
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 17
+ },
+ "end": {
+ "line": 50,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1760,
+ 1769
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 12
+ },
+ "end": {
+ "line": 50,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1760,
+ 1770
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 12
+ },
+ "end": {
+ "line": 50,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 1746,
+ 1780
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 15
+ },
+ "end": {
+ "line": 51,
+ "column": 9
+ }
+ }
+ },
+ "range": [
+ 1676,
+ 1780
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "reduce",
+ "range": [
+ 1790,
+ 1796
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 14
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "functions",
+ "range": [
+ 1797,
+ 1806
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 15
+ },
+ "end": {
+ "line": 53,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1808,
+ 1812
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 26
+ },
+ "end": {
+ "line": 53,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "newargs",
+ "range": [
+ 1823,
+ 1830
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 41
+ },
+ "end": {
+ "line": 53,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1832,
+ 1834
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 50
+ },
+ "end": {
+ "line": 53,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1836,
+ 1838
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 54
+ },
+ "end": {
+ "line": 53,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1854,
+ 1856
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 54,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1857,
+ 1862
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 15
+ },
+ "end": {
+ "line": 54,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1854,
+ 1862
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 54,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "that",
+ "range": [
+ 1863,
+ 1867
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 21
+ },
+ "end": {
+ "line": 54,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "newargs",
+ "range": [
+ 1869,
+ 1876
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 27
+ },
+ "end": {
+ "line": 54,
+ "column": 34
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1877,
+ 1883
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 35
+ },
+ "end": {
+ "line": 54,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1869,
+ 1883
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 27
+ },
+ "end": {
+ "line": 54,
+ "column": 41
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1885,
+ 1889
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 43
+ },
+ "end": {
+ "line": 54,
+ "column": 47
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1899,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 57
+ },
+ "end": {
+ "line": 54,
+ "column": 60
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "nextargs",
+ "range": [
+ 1904,
+ 1912
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 62
+ },
+ "end": {
+ "line": 54,
+ "column": 70
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 1932,
+ 1934
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1935,
+ 1938
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 19
+ },
+ "end": {
+ "line": 55,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "nextargs",
+ "range": [
+ 1940,
+ 1948
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 24
+ },
+ "end": {
+ "line": 55,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1932,
+ 1949
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 1932,
+ 1950
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 16
+ },
+ "end": {
+ "line": 55,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1914,
+ 1964
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 72
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1890,
+ 1964
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 48
+ },
+ "end": {
+ "line": 56,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "range": [
+ 1885,
+ 1965
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 43
+ },
+ "end": {
+ "line": 56,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "range": [
+ 1884,
+ 1966
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 42
+ },
+ "end": {
+ "line": 56,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 1869,
+ 1967
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 27
+ },
+ "end": {
+ "line": 56,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "range": [
+ 1854,
+ 1968
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 56,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 1854,
+ 1969
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 56,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "range": [
+ 1840,
+ 1979
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 58
+ },
+ "end": {
+ "line": 57,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1814,
+ 1979
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 32
+ },
+ "end": {
+ "line": 57,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1998,
+ 2001
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 17
+ },
+ "end": {
+ "line": 58,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 2003,
+ 2010
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 22
+ },
+ "end": {
+ "line": 58,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 2026,
+ 2028
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2029,
+ 2034
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 15
+ },
+ "end": {
+ "line": 59,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 2026,
+ 2034
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "that",
+ "range": [
+ 2035,
+ 2039
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 21
+ },
+ "end": {
+ "line": 59,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2042,
+ 2045
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 28
+ },
+ "end": {
+ "line": 59,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 2041,
+ 2046
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 27
+ },
+ "end": {
+ "line": 59,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 2047,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 33
+ },
+ "end": {
+ "line": 59,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 2041,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 27
+ },
+ "end": {
+ "line": 59,
+ "column": 39
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 2054,
+ 2061
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 40
+ },
+ "end": {
+ "line": 59,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 2041,
+ 2062
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 27
+ },
+ "end": {
+ "line": 59,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 2026,
+ 2063
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 2026,
+ 2064
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 12
+ },
+ "end": {
+ "line": 59,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 2012,
+ 2074
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 31
+ },
+ "end": {
+ "line": 60,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1989,
+ 2074
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1790,
+ 2075
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1790,
+ 2076
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 60,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1600,
+ 2082
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 31
+ },
+ "end": {
+ "line": 61,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1585,
+ 2082
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 16
+ },
+ "end": {
+ "line": 61,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1580,
+ 2083
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 11
+ },
+ "end": {
+ "line": 61,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1573,
+ 2084
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 4
+ },
+ "end": {
+ "line": 61,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1567,
+ 2086
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 44
+ },
+ "end": {
+ "line": 62,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1543,
+ 2086
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 20
+ },
+ "end": {
+ "line": 62,
+ "column": 1
+ }
+ }
+ }
+ ],
+ "range": [
+ 1538,
+ 2087
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 15
+ },
+ "end": {
+ "line": 62,
+ "column": 2
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * {@link async.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf async\n * @see async.compose\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n ",
+ "range": [
+ 96,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1523,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 0
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * {@link async.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf async\n * @see async.compose\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n ",
+ "range": [
+ 96,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 0
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * {@link async.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf async\n * @see async.compose\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n ",
+ "range": [
+ 96,
+ 1522
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 41,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/series.js.json b/docs/ast/source/series.js.json
new file mode 100644
index 0000000..ab0896c
--- /dev/null
+++ b/docs/ast/source/series.js.json
@@ -0,0 +1,466 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/parallel",
+ "raw": "'./internal/parallel'",
+ "range": [
+ 21,
+ 42
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 0,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 43
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 51,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 51,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfSeries",
+ "raw": "'./eachOfSeries'",
+ "range": [
+ 69,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 25
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 44,
+ 86
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 42
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run, each\n * function is passed a `callback(err, result)` it must call on completion with\n * an error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "series",
+ "range": [
+ 2500,
+ 2506
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 24
+ },
+ "end": {
+ "line": 67,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2507,
+ 2512
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 31
+ },
+ "end": {
+ "line": 67,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2514,
+ 2522
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 38
+ },
+ "end": {
+ "line": 67,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "parallel",
+ "range": [
+ 2530,
+ 2538
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 4
+ },
+ "end": {
+ "line": 68,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfSeries",
+ "range": [
+ 2539,
+ 2551
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 13
+ },
+ "end": {
+ "line": 68,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2553,
+ 2558
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 27
+ },
+ "end": {
+ "line": 68,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2560,
+ 2568
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 34
+ },
+ "end": {
+ "line": 68,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 2530,
+ 2569
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 4
+ },
+ "end": {
+ "line": 68,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 2530,
+ 2570
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 4
+ },
+ "end": {
+ "line": 68,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 2524,
+ 2572
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 48
+ },
+ "end": {
+ "line": 69,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2491,
+ 2572
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 15
+ },
+ "end": {
+ "line": 69,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run, each\n * function is passed a `callback(err, result)` it must call on completion with\n * an error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 2476,
+ 2572
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 0
+ },
+ "end": {
+ "line": 69,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run, each\n * function is passed a `callback(err, result)` it must call on completion with\n * an error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2572
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 69,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run, each\n * function is passed a `callback(err, result)` it must call on completion with\n * an error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n ",
+ "range": [
+ 88,
+ 2475
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/setImmediate.js.json b/docs/ast/source/setImmediate.js.json
new file mode 100644
index 0000000..65dda44
--- /dev/null
+++ b/docs/ast/source/setImmediate.js.json
@@ -0,0 +1,209 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/setImmediate",
+ "raw": "'./internal/setImmediate'",
+ "range": [
+ 25,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 51
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name setImmediate\n * @static\n * @memberOf async\n * @alias nextTick\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 53,
+ 1014
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "Identifier",
+ "name": "setImmediate",
+ "range": [
+ 1030,
+ 1042
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 15
+ },
+ "end": {
+ "line": 33,
+ "column": 27
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name setImmediate\n * @static\n * @memberOf async\n * @alias nextTick\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 53,
+ 1014
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1015,
+ 1043
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 28
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name setImmediate\n * @static\n * @memberOf async\n * @alias nextTick\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 53,
+ 1014
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1043
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 28
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name setImmediate\n * @static\n * @memberOf async\n * @alias nextTick\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n ",
+ "range": [
+ 53,
+ 1014
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/some.js.json b/docs/ast/source/some.js.json
new file mode 100644
index 0000000..22c76db
--- /dev/null
+++ b/docs/ast/source/some.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./someLimit",
+ "raw": "'./someLimit'",
+ "range": [
+ 22,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 0,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 57,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 37,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf async\n * @alias any\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n ",
+ "range": [
+ 80,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 1220,
+ 1227
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 15
+ },
+ "end": {
+ "line": 33,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 1228,
+ 1237
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 23
+ },
+ "end": {
+ "line": 33,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 1239,
+ 1247
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 34
+ },
+ "end": {
+ "line": 33,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 1220,
+ 1248
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 15
+ },
+ "end": {
+ "line": 33,
+ "column": 43
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf async\n * @alias any\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n ",
+ "range": [
+ 80,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1205,
+ 1249
+ ],
+ "loc": {
+ "start": {
+ "line": 33,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 44
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf async\n * @alias any\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n ",
+ "range": [
+ 80,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1249
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 33,
+ "column": 44
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf async\n * @alias any\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n ",
+ "range": [
+ 80,
+ 1204
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 32,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/someLimit.js.json b/docs/ast/source/someLimit.js.json
new file mode 100644
index 0000000..cd8dab6
--- /dev/null
+++ b/docs/ast/source/someLimit.js.json
@@ -0,0 +1,428 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ },
+ "range": [
+ 7,
+ 19
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/createTester",
+ "raw": "'./internal/createTester'",
+ "range": [
+ 25,
+ 50
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 25
+ },
+ "end": {
+ "line": 1,
+ "column": 50
+ }
+ }
+ },
+ "range": [
+ 0,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 51
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 59,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 59,
+ 70
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 18
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOfLimit",
+ "raw": "'./eachOfLimit'",
+ "range": [
+ 76,
+ 91
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 24
+ },
+ "end": {
+ "line": 2,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 52,
+ 92
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 100,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 100,
+ 108
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/identity",
+ "raw": "'lodash/identity'",
+ "range": [
+ 114,
+ 131
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 21
+ },
+ "end": {
+ "line": 3,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 93,
+ 132
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 39
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf async\n * @see async.some\n * @alias anyLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 134,
+ 1001
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "createTester",
+ "range": [
+ 1017,
+ 1029
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 15
+ },
+ "end": {
+ "line": 25,
+ "column": 27
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "eachOfLimit",
+ "range": [
+ 1030,
+ 1041
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 28
+ },
+ "end": {
+ "line": 25,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Boolean",
+ "range": [
+ 1043,
+ 1050
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 41
+ },
+ "end": {
+ "line": 25,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "identity",
+ "range": [
+ 1052,
+ 1060
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 50
+ },
+ "end": {
+ "line": 25,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 1017,
+ 1061
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 15
+ },
+ "end": {
+ "line": 25,
+ "column": 59
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf async\n * @see async.some\n * @alias anyLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 134,
+ 1001
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1002,
+ 1062
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 60
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf async\n * @see async.some\n * @alias anyLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 134,
+ 1001
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1062
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 25,
+ "column": 60
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf async\n * @see async.some\n * @alias anyLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 134,
+ 1001
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/someSeries.js.json b/docs/ast/source/someSeries.js.json
new file mode 100644
index 0000000..5eed4b4
--- /dev/null
+++ b/docs/ast/source/someSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 7,
+ 16
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 16
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./someLimit",
+ "raw": "'./someLimit'",
+ "range": [
+ 22,
+ 35
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 22
+ },
+ "end": {
+ "line": 1,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 0,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 44,
+ 51
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 57,
+ 77
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 37,
+ 78
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf async\n * @see async.some\n * @alias anySeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 80,
+ 864
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 880,
+ 887
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 23,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "someLimit",
+ "range": [
+ 888,
+ 897
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 23
+ },
+ "end": {
+ "line": 23,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 899,
+ 900
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 34
+ },
+ "end": {
+ "line": 23,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 880,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 15
+ },
+ "end": {
+ "line": 23,
+ "column": 36
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf async\n * @see async.some\n * @alias anySeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 80,
+ 864
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 865,
+ 902
+ ],
+ "loc": {
+ "start": {
+ "line": 23,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf async\n * @see async.some\n * @alias anySeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 80,
+ 864
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 902
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 23,
+ "column": 37
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as `some` but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf async\n * @see async.some\n * @alias anySeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n ",
+ "range": [
+ 80,
+ 864
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 22,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/sortBy.js.json b/docs/ast/source/sortBy.js.json
new file mode 100644
index 0000000..06513fc
--- /dev/null
+++ b/docs/ast/source/sortBy.js.json
@@ -0,0 +1,2030 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_arrayMap",
+ "raw": "'lodash/_arrayMap'",
+ "range": [
+ 21,
+ 39
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 0,
+ 40
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 40
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 48,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 48,
+ 56
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_baseProperty",
+ "raw": "'lodash/_baseProperty'",
+ "range": [
+ 62,
+ 84
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 21
+ },
+ "end": {
+ "line": 2,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 41,
+ 85
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 44
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 94,
+ 97
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 94,
+ 97
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./map",
+ "raw": "'./map'",
+ "range": [
+ 103,
+ 110
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 16
+ },
+ "end": {
+ "line": 4,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 87,
+ 111
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 24
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, sortValue)` which must be called once\n * it has completed with an error (which can be `null`) and a value to use as\n * the sort criteria. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n ",
+ "range": [
+ 113,
+ 1679
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "sortBy",
+ "range": [
+ 1704,
+ 1710
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 24
+ },
+ "end": {
+ "line": 51,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1712,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 32
+ },
+ "end": {
+ "line": 51,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1718,
+ 1726
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 38
+ },
+ "end": {
+ "line": 51,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1728,
+ 1736
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 48
+ },
+ "end": {
+ "line": 51,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "map",
+ "range": [
+ 1744,
+ 1747
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 4
+ },
+ "end": {
+ "line": 52,
+ "column": 7
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1748,
+ 1752
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 52,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 1764,
+ 1765
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 24
+ },
+ "end": {
+ "line": 52,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1767,
+ 1775
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 27
+ },
+ "end": {
+ "line": 52,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1787,
+ 1795
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 1796,
+ 1797
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 17
+ },
+ "end": {
+ "line": 53,
+ "column": 18
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1809,
+ 1812
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 30
+ },
+ "end": {
+ "line": 53,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "criteria",
+ "range": [
+ 1814,
+ 1822
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 35
+ },
+ "end": {
+ "line": 53,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1842,
+ 1845
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 16
+ },
+ "end": {
+ "line": 54,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1854,
+ 1862
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 28
+ },
+ "end": {
+ "line": 54,
+ "column": 36
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1863,
+ 1866
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 37
+ },
+ "end": {
+ "line": 54,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 1854,
+ 1867
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 28
+ },
+ "end": {
+ "line": 54,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 1847,
+ 1868
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 21
+ },
+ "end": {
+ "line": 54,
+ "column": 42
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1838,
+ 1868
+ ],
+ "loc": {
+ "start": {
+ "line": 54,
+ "column": 12
+ },
+ "end": {
+ "line": 54,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1881,
+ 1889
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 12
+ },
+ "end": {
+ "line": 55,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1890,
+ 1894
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 21
+ },
+ "end": {
+ "line": 55,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "ObjectExpression",
+ "properties": [
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "value",
+ "range": [
+ 1897,
+ 1902
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 28
+ },
+ "end": {
+ "line": 55,
+ "column": 33
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "x",
+ "range": [
+ 1904,
+ 1905
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 35
+ },
+ "end": {
+ "line": 55,
+ "column": 36
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1897,
+ 1905
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 28
+ },
+ "end": {
+ "line": 55,
+ "column": 36
+ }
+ }
+ },
+ {
+ "type": "Property",
+ "key": {
+ "type": "Identifier",
+ "name": "criteria",
+ "range": [
+ 1907,
+ 1915
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 38
+ },
+ "end": {
+ "line": 55,
+ "column": 46
+ }
+ }
+ },
+ "value": {
+ "type": "Identifier",
+ "name": "criteria",
+ "range": [
+ 1917,
+ 1925
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 48
+ },
+ "end": {
+ "line": 55,
+ "column": 56
+ }
+ }
+ },
+ "kind": "init",
+ "method": false,
+ "shorthand": false,
+ "computed": false,
+ "range": [
+ 1907,
+ 1925
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 38
+ },
+ "end": {
+ "line": 55,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 1896,
+ 1926
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 27
+ },
+ "end": {
+ "line": 55,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "range": [
+ 1881,
+ 1927
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 12
+ },
+ "end": {
+ "line": 55,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 1881,
+ 1928
+ ],
+ "loc": {
+ "start": {
+ "line": 55,
+ "column": 12
+ },
+ "end": {
+ "line": 55,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 1824,
+ 1938
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 45
+ },
+ "end": {
+ "line": 56,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1799,
+ 1938
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 20
+ },
+ "end": {
+ "line": 56,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1787,
+ 1939
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 56,
+ "column": 10
+ }
+ }
+ },
+ "range": [
+ 1787,
+ 1940
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 56,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "range": [
+ 1777,
+ 1946
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 37
+ },
+ "end": {
+ "line": 57,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1754,
+ 1946
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 14
+ },
+ "end": {
+ "line": 57,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1958,
+ 1961
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 17
+ },
+ "end": {
+ "line": 57,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 1963,
+ 1970
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 22
+ },
+ "end": {
+ "line": 57,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1986,
+ 1989
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 12
+ },
+ "end": {
+ "line": 58,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1998,
+ 2006
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 24
+ },
+ "end": {
+ "line": 58,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2007,
+ 2010
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 33
+ },
+ "end": {
+ "line": 58,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1998,
+ 2011
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 24
+ },
+ "end": {
+ "line": 58,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1991,
+ 2012
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 17
+ },
+ "end": {
+ "line": 58,
+ "column": 38
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1982,
+ 2012
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 8
+ },
+ "end": {
+ "line": 58,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2021,
+ 2029
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2030,
+ 2034
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 17
+ },
+ "end": {
+ "line": 59,
+ "column": 21
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "arrayMap",
+ "range": [
+ 2036,
+ 2044
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 23
+ },
+ "end": {
+ "line": 59,
+ "column": 31
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "results",
+ "range": [
+ 2045,
+ 2052
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 32
+ },
+ "end": {
+ "line": 59,
+ "column": 39
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "sort",
+ "range": [
+ 2053,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 40
+ },
+ "end": {
+ "line": 59,
+ "column": 44
+ }
+ }
+ },
+ "range": [
+ 2045,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 32
+ },
+ "end": {
+ "line": 59,
+ "column": 44
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "comparator",
+ "range": [
+ 2058,
+ 2068
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 45
+ },
+ "end": {
+ "line": 59,
+ "column": 55
+ }
+ }
+ }
+ ],
+ "range": [
+ 2045,
+ 2069
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 32
+ },
+ "end": {
+ "line": 59,
+ "column": 56
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "property",
+ "range": [
+ 2071,
+ 2079
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 58
+ },
+ "end": {
+ "line": 59,
+ "column": 66
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "value",
+ "raw": "'value'",
+ "range": [
+ 2080,
+ 2087
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 67
+ },
+ "end": {
+ "line": 59,
+ "column": 74
+ }
+ }
+ }
+ ],
+ "range": [
+ 2071,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 58
+ },
+ "end": {
+ "line": 59,
+ "column": 75
+ }
+ }
+ }
+ ],
+ "range": [
+ 2036,
+ 2089
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 23
+ },
+ "end": {
+ "line": 59,
+ "column": 76
+ }
+ }
+ }
+ ],
+ "range": [
+ 2021,
+ 2090
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 77
+ }
+ }
+ },
+ "range": [
+ 2021,
+ 2091
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 78
+ }
+ }
+ }
+ ],
+ "range": [
+ 1972,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 31
+ },
+ "end": {
+ "line": 60,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1948,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 7
+ },
+ "end": {
+ "line": 60,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1744,
+ 2098
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 4
+ },
+ "end": {
+ "line": 60,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1744,
+ 2099
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 4
+ },
+ "end": {
+ "line": 60,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "comparator",
+ "range": [
+ 2114,
+ 2124
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 13
+ },
+ "end": {
+ "line": 62,
+ "column": 23
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "left",
+ "range": [
+ 2125,
+ 2129
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 24
+ },
+ "end": {
+ "line": 62,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "right",
+ "range": [
+ 2131,
+ 2136
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 30
+ },
+ "end": {
+ "line": 62,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 2152,
+ 2153
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 12
+ },
+ "end": {
+ "line": 63,
+ "column": 13
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "left",
+ "range": [
+ 2156,
+ 2160
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 16
+ },
+ "end": {
+ "line": 63,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "criteria",
+ "range": [
+ 2161,
+ 2169
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 21
+ },
+ "end": {
+ "line": 63,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2156,
+ 2169
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 16
+ },
+ "end": {
+ "line": 63,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 2152,
+ 2169
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 12
+ },
+ "end": {
+ "line": 63,
+ "column": 29
+ }
+ }
+ },
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 2171,
+ 2172
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 31
+ },
+ "end": {
+ "line": 63,
+ "column": 32
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "right",
+ "range": [
+ 2175,
+ 2180
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 35
+ },
+ "end": {
+ "line": 63,
+ "column": 40
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "criteria",
+ "range": [
+ 2181,
+ 2189
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 41
+ },
+ "end": {
+ "line": 63,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 2175,
+ 2189
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 35
+ },
+ "end": {
+ "line": 63,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 2171,
+ 2189
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 31
+ },
+ "end": {
+ "line": 63,
+ "column": 49
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2148,
+ 2190
+ ],
+ "loc": {
+ "start": {
+ "line": 63,
+ "column": 8
+ },
+ "end": {
+ "line": 63,
+ "column": 50
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "<",
+ "left": {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 2206,
+ 2207
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 15
+ },
+ "end": {
+ "line": 64,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 2210,
+ 2211
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 19
+ },
+ "end": {
+ "line": 64,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 2206,
+ 2211
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 15
+ },
+ "end": {
+ "line": 64,
+ "column": 20
+ }
+ }
+ },
+ "consequent": {
+ "type": "UnaryExpression",
+ "operator": "-",
+ "argument": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 2215,
+ 2216
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 24
+ },
+ "end": {
+ "line": 64,
+ "column": 25
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2214,
+ 2216
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 23
+ },
+ "end": {
+ "line": 64,
+ "column": 25
+ }
+ }
+ },
+ "alternate": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": ">",
+ "left": {
+ "type": "Identifier",
+ "name": "a",
+ "range": [
+ 2219,
+ 2220
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 29
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "b",
+ "range": [
+ 2223,
+ 2224
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 32
+ },
+ "end": {
+ "line": 64,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 2219,
+ 2224
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 33
+ }
+ }
+ },
+ "consequent": {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 2227,
+ 2228
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 36
+ },
+ "end": {
+ "line": 64,
+ "column": 37
+ }
+ }
+ },
+ "alternate": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2231,
+ 2232
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 40
+ },
+ "end": {
+ "line": 64,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 2219,
+ 2232
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 28
+ },
+ "end": {
+ "line": 64,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 2206,
+ 2232
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 15
+ },
+ "end": {
+ "line": 64,
+ "column": 41
+ }
+ }
+ },
+ "range": [
+ 2199,
+ 2233
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 8
+ },
+ "end": {
+ "line": 64,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 2138,
+ 2239
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 37
+ },
+ "end": {
+ "line": 65,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2105,
+ 2239
+ ],
+ "loc": {
+ "start": {
+ "line": 62,
+ "column": 4
+ },
+ "end": {
+ "line": 65,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1738,
+ 2241
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 58
+ },
+ "end": {
+ "line": 66,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1695,
+ 2241
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 15
+ },
+ "end": {
+ "line": 66,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, sortValue)` which must be called once\n * it has completed with an error (which can be `null`) and a value to use as\n * the sort criteria. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n ",
+ "range": [
+ 113,
+ 1679
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1680,
+ 2241
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, sortValue)` which must be called once\n * it has completed with an error (which can be `null`) and a value to use as\n * the sort criteria. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n ",
+ "range": [
+ 113,
+ 1679
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2241
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 66,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, sortValue)` which must be called once\n * it has completed with an error (which can be `null`) and a value to use as\n * the sort criteria. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n ",
+ "range": [
+ 113,
+ 1679
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 50,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/timeout.js.json b/docs/ast/source/timeout.js.json
new file mode 100644
index 0000000..f3dfb7c
--- /dev/null
+++ b/docs/ast/source/timeout.js.json
@@ -0,0 +1,2186 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 7,
+ 20
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 20
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/initialParams",
+ "raw": "'./internal/initialParams'",
+ "range": [
+ 26,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 26
+ },
+ "end": {
+ "line": 1,
+ "column": 52
+ }
+ }
+ },
+ "range": [
+ 0,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 53
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} asyncFn - The asynchronous function you want to set the\n * time limit.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {Function} Returns a wrapped function that can be used with any of\n * the control flow functions.\n * @example\n *\n * async.timeout(function(callback) {\n * doAsyncTask(callback);\n * }, 1000);\n ",
+ "range": [
+ 55,
+ 847
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "timeout",
+ "range": [
+ 872,
+ 879
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 24
+ },
+ "end": {
+ "line": 25,
+ "column": 31
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "asyncFn",
+ "range": [
+ 880,
+ 887
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 32
+ },
+ "end": {
+ "line": 25,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "milliseconds",
+ "range": [
+ 889,
+ 901
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 41
+ },
+ "end": {
+ "line": 25,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "info",
+ "range": [
+ 903,
+ 907
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 55
+ },
+ "end": {
+ "line": 25,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "originalCallback",
+ "range": [
+ 919,
+ 935
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 8
+ },
+ "end": {
+ "line": 26,
+ "column": 24
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 919,
+ 935
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 8
+ },
+ "end": {
+ "line": 26,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "timer",
+ "range": [
+ 937,
+ 942
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 26
+ },
+ "end": {
+ "line": 26,
+ "column": 31
+ }
+ }
+ },
+ "init": null,
+ "range": [
+ 937,
+ 942
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 26
+ },
+ "end": {
+ "line": 26,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 915,
+ 943
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 26,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "timedOut",
+ "range": [
+ 952,
+ 960
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": false,
+ "raw": "false",
+ "range": [
+ 963,
+ 968
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 19
+ },
+ "end": {
+ "line": 27,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 952,
+ 968
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 24
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 948,
+ 969
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 4
+ },
+ "end": {
+ "line": 27,
+ "column": 25
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "injectedCallback",
+ "range": [
+ 984,
+ 1000
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 13
+ },
+ "end": {
+ "line": 29,
+ "column": 29
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "Identifier",
+ "name": "timedOut",
+ "range": [
+ 1018,
+ 1026
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 13
+ },
+ "end": {
+ "line": 30,
+ "column": 21
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1017,
+ 1026
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 12
+ },
+ "end": {
+ "line": 30,
+ "column": 21
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "originalCallback",
+ "range": [
+ 1042,
+ 1058
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 28
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1059,
+ 1064
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 29
+ },
+ "end": {
+ "line": 31,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 1042,
+ 1064
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 34
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1065,
+ 1069
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 35
+ },
+ "end": {
+ "line": 31,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1071,
+ 1080
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 41
+ },
+ "end": {
+ "line": 31,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1042,
+ 1081
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 51
+ }
+ }
+ },
+ "range": [
+ 1042,
+ 1082
+ ],
+ "loc": {
+ "start": {
+ "line": 31,
+ "column": 12
+ },
+ "end": {
+ "line": 31,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "clearTimeout",
+ "range": [
+ 1095,
+ 1107
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "timer",
+ "range": [
+ 1108,
+ 1113
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 25
+ },
+ "end": {
+ "line": 32,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1095,
+ 1114
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1095,
+ 1115
+ ],
+ "loc": {
+ "start": {
+ "line": 32,
+ "column": 12
+ },
+ "end": {
+ "line": 32,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1028,
+ 1125
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 23
+ },
+ "end": {
+ "line": 33,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1013,
+ 1125
+ ],
+ "loc": {
+ "start": {
+ "line": 30,
+ "column": 8
+ },
+ "end": {
+ "line": 33,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 1003,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 32
+ },
+ "end": {
+ "line": 34,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 975,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 29,
+ "column": 4
+ },
+ "end": {
+ "line": 34,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "timeoutCallback",
+ "range": [
+ 1146,
+ 1161
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 13
+ },
+ "end": {
+ "line": 36,
+ "column": 28
+ }
+ }
+ },
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 1178,
+ 1182
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "asyncFn",
+ "range": [
+ 1185,
+ 1192
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 19
+ },
+ "end": {
+ "line": 37,
+ "column": 26
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 1193,
+ 1197
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 27
+ },
+ "end": {
+ "line": 37,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1185,
+ 1197
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 19
+ },
+ "end": {
+ "line": 37,
+ "column": 31
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "anonymous",
+ "raw": "'anonymous'",
+ "range": [
+ 1201,
+ 1212
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 35
+ },
+ "end": {
+ "line": 37,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 1185,
+ 1212
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 19
+ },
+ "end": {
+ "line": 37,
+ "column": 46
+ }
+ }
+ },
+ "range": [
+ 1178,
+ 1212
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 12
+ },
+ "end": {
+ "line": 37,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1174,
+ 1213
+ ],
+ "loc": {
+ "start": {
+ "line": 37,
+ "column": 8
+ },
+ "end": {
+ "line": 37,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1226,
+ 1231
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 12
+ },
+ "end": {
+ "line": 38,
+ "column": 17
+ }
+ }
+ },
+ "init": {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 1239,
+ 1244
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 25
+ },
+ "end": {
+ "line": 38,
+ "column": 30
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "BinaryExpression",
+ "operator": "+",
+ "left": {
+ "type": "Literal",
+ "value": "Callback function \"",
+ "raw": "'Callback function \"'",
+ "range": [
+ 1245,
+ 1266
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 31
+ },
+ "end": {
+ "line": 38,
+ "column": 52
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "name",
+ "range": [
+ 1269,
+ 1273
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 55
+ },
+ "end": {
+ "line": 38,
+ "column": 59
+ }
+ }
+ },
+ "range": [
+ 1245,
+ 1273
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 31
+ },
+ "end": {
+ "line": 38,
+ "column": 59
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "\" timed out.",
+ "raw": "'\" timed out.'",
+ "range": [
+ 1276,
+ 1290
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 62
+ },
+ "end": {
+ "line": 38,
+ "column": 76
+ }
+ }
+ },
+ "range": [
+ 1245,
+ 1290
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 31
+ },
+ "end": {
+ "line": 38,
+ "column": 76
+ }
+ }
+ }
+ ],
+ "range": [
+ 1235,
+ 1291
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 21
+ },
+ "end": {
+ "line": 38,
+ "column": 77
+ }
+ }
+ },
+ "range": [
+ 1226,
+ 1291
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 12
+ },
+ "end": {
+ "line": 38,
+ "column": 77
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1222,
+ 1292
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 8
+ },
+ "end": {
+ "line": 38,
+ "column": 78
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1301,
+ 1306
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 13
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "code",
+ "range": [
+ 1307,
+ 1311
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 14
+ },
+ "end": {
+ "line": 39,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1301,
+ 1311
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 18
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": "ETIMEDOUT",
+ "raw": "'ETIMEDOUT'",
+ "range": [
+ 1314,
+ 1325
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 21
+ },
+ "end": {
+ "line": 39,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1301,
+ 1325
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 32
+ }
+ }
+ },
+ "range": [
+ 1301,
+ 1326
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 8
+ },
+ "end": {
+ "line": 39,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "info",
+ "range": [
+ 1339,
+ 1343
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 12
+ },
+ "end": {
+ "line": 40,
+ "column": 16
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1359,
+ 1364
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "info",
+ "range": [
+ 1365,
+ 1369
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 18
+ },
+ "end": {
+ "line": 41,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1359,
+ 1369
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 22
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "info",
+ "range": [
+ 1372,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 25
+ },
+ "end": {
+ "line": 41,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1359,
+ 1376
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 1359,
+ 1377
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 12
+ },
+ "end": {
+ "line": 41,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1345,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 18
+ },
+ "end": {
+ "line": 42,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1335,
+ 1387
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 42,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "timedOut",
+ "range": [
+ 1396,
+ 1404
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": true,
+ "raw": "true",
+ "range": [
+ 1407,
+ 1411
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 19
+ },
+ "end": {
+ "line": 43,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1396,
+ 1411
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 23
+ }
+ }
+ },
+ "range": [
+ 1396,
+ 1412
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 24
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "originalCallback",
+ "range": [
+ 1421,
+ 1437
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "error",
+ "range": [
+ 1438,
+ 1443
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 25
+ },
+ "end": {
+ "line": 44,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 1421,
+ 1444
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1421,
+ 1445
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 32
+ }
+ }
+ }
+ ],
+ "range": [
+ 1164,
+ 1451
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 31
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1137,
+ 1451
+ ],
+ "loc": {
+ "start": {
+ "line": 36,
+ "column": 4
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "initialParams",
+ "range": [
+ 1464,
+ 1477
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 47,
+ "column": 24
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1488,
+ 1492
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 35
+ },
+ "end": {
+ "line": 47,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "origCallback",
+ "range": [
+ 1494,
+ 1506
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 41
+ },
+ "end": {
+ "line": 47,
+ "column": 53
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "originalCallback",
+ "range": [
+ 1518,
+ 1534
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "origCallback",
+ "range": [
+ 1537,
+ 1549
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 27
+ },
+ "end": {
+ "line": 48,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1518,
+ 1549
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1518,
+ 1550
+ ],
+ "loc": {
+ "start": {
+ "line": 48,
+ "column": 8
+ },
+ "end": {
+ "line": 48,
+ "column": 40
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Line",
+ "value": " setup timer and call original function",
+ "range": [
+ 1559,
+ 1600
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 49
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "timer",
+ "range": [
+ 1609,
+ 1614
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 13
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "setTimeout",
+ "range": [
+ 1617,
+ 1627
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 16
+ },
+ "end": {
+ "line": 50,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "timeoutCallback",
+ "range": [
+ 1628,
+ 1643
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 27
+ },
+ "end": {
+ "line": 50,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "milliseconds",
+ "range": [
+ 1645,
+ 1657
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 44
+ },
+ "end": {
+ "line": 50,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 1617,
+ 1658
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 16
+ },
+ "end": {
+ "line": 50,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 1609,
+ 1658
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 1609,
+ 1659
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 58
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Line",
+ "value": " setup timer and call original function",
+ "range": [
+ 1559,
+ 1600
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 49
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "asyncFn",
+ "range": [
+ 1668,
+ 1675
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 15
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1676,
+ 1681
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 16
+ },
+ "end": {
+ "line": 51,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 1668,
+ 1681
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 21
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1682,
+ 1686
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 22
+ },
+ "end": {
+ "line": 51,
+ "column": 26
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1688,
+ 1692
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 28
+ },
+ "end": {
+ "line": 51,
+ "column": 32
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1693,
+ 1699
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 33
+ },
+ "end": {
+ "line": 51,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 1688,
+ 1699
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 28
+ },
+ "end": {
+ "line": 51,
+ "column": 39
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "injectedCallback",
+ "range": [
+ 1700,
+ 1716
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 40
+ },
+ "end": {
+ "line": 51,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 1688,
+ 1717
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 28
+ },
+ "end": {
+ "line": 51,
+ "column": 57
+ }
+ }
+ }
+ ],
+ "range": [
+ 1668,
+ 1718
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 58
+ }
+ }
+ },
+ "range": [
+ 1668,
+ 1719
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 1508,
+ 1725
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 55
+ },
+ "end": {
+ "line": 52,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1478,
+ 1725
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 25
+ },
+ "end": {
+ "line": 52,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1464,
+ 1726
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 11
+ },
+ "end": {
+ "line": 52,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1457,
+ 1727
+ ],
+ "loc": {
+ "start": {
+ "line": 47,
+ "column": 4
+ },
+ "end": {
+ "line": 52,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 909,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 61
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 863,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 15
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} asyncFn - The asynchronous function you want to set the\n * time limit.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {Function} Returns a wrapped function that can be used with any of\n * the control flow functions.\n * @example\n *\n * async.timeout(function(callback) {\n * doAsyncTask(callback);\n * }, 1000);\n ",
+ "range": [
+ 55,
+ 847
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 848,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 0
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} asyncFn - The asynchronous function you want to set the\n * time limit.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {Function} Returns a wrapped function that can be used with any of\n * the control flow functions.\n * @example\n *\n * async.timeout(function(callback) {\n * doAsyncTask(callback);\n * }, 1000);\n ",
+ "range": [
+ 55,
+ 847
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1729
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 53,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} asyncFn - The asynchronous function you want to set the\n * time limit.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {Function} Returns a wrapped function that can be used with any of\n * the control flow functions.\n * @example\n *\n * async.timeout(function(callback) {\n * doAsyncTask(callback);\n * }, 1000);\n ",
+ "range": [
+ 55,
+ 847
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ },
+ {
+ "type": "Line",
+ "value": " setup timer and call original function",
+ "range": [
+ 1559,
+ 1600
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 8
+ },
+ "end": {
+ "line": 49,
+ "column": 49
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/times.js.json b/docs/ast/source/times.js.json
new file mode 100644
index 0000000..2a9d019
--- /dev/null
+++ b/docs/ast/source/times.js.json
@@ -0,0 +1,337 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./timesLimit",
+ "raw": "'./timesLimit'",
+ "range": [
+ 23,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 23
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 0,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 59,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 39,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with {@link async.map}.\n *\n * @name times\n * @static\n * @memberOf async\n * @see async.map\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n ",
+ "range": [
+ 82,
+ 954
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 970,
+ 977
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 15
+ },
+ "end": {
+ "line": 35,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 978,
+ 988
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 23
+ },
+ "end": {
+ "line": 35,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "Infinity",
+ "range": [
+ 990,
+ 998
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 35
+ },
+ "end": {
+ "line": 35,
+ "column": 43
+ }
+ }
+ }
+ ],
+ "range": [
+ 970,
+ 999
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 15
+ },
+ "end": {
+ "line": 35,
+ "column": 44
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with {@link async.map}.\n *\n * @name times\n * @static\n * @memberOf async\n * @see async.map\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n ",
+ "range": [
+ 82,
+ 954
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 955,
+ 1000
+ ],
+ "loc": {
+ "start": {
+ "line": 35,
+ "column": 0
+ },
+ "end": {
+ "line": 35,
+ "column": 45
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with {@link async.map}.\n *\n * @name times\n * @static\n * @memberOf async\n * @see async.map\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n ",
+ "range": [
+ 82,
+ 954
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1000
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 35,
+ "column": 45
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with {@link async.map}.\n *\n * @name times\n * @static\n * @memberOf async\n * @see async.map\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n ",
+ "range": [
+ 82,
+ 954
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 34,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/timesLimit.js.json b/docs/ast/source/timesLimit.js.json
new file mode 100644
index 0000000..9143557
--- /dev/null
+++ b/docs/ast/source/timesLimit.js.json
@@ -0,0 +1,595 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 7,
+ 15
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./mapLimit",
+ "raw": "'./mapLimit'",
+ "range": [
+ 21,
+ 33
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 21
+ },
+ "end": {
+ "line": 1,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 0,
+ 34
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "range",
+ "range": [
+ 42,
+ 47
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 12
+ }
+ }
+ },
+ "range": [
+ 42,
+ 47
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 12
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/_baseRange",
+ "raw": "'lodash/_baseRange'",
+ "range": [
+ 53,
+ 72
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 18
+ },
+ "end": {
+ "line": 2,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 35,
+ 73
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 38
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n* The same as {@link times} but runs a maximum of `limit` async operations at a\n* time.\n *\n * @name timesLimit\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 75,
+ 595
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "timeLimit",
+ "range": [
+ 620,
+ 629
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 24
+ },
+ "end": {
+ "line": 19,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "count",
+ "range": [
+ 630,
+ 635
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 34
+ },
+ "end": {
+ "line": 19,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 637,
+ 642
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 41
+ },
+ "end": {
+ "line": 19,
+ "column": 46
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 644,
+ 652
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 48
+ },
+ "end": {
+ "line": 19,
+ "column": 56
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 654,
+ 662
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 58
+ },
+ "end": {
+ "line": 19,
+ "column": 66
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "mapLimit",
+ "range": [
+ 670,
+ 678
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "range",
+ "range": [
+ 679,
+ 684
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 13
+ },
+ "end": {
+ "line": 20,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 685,
+ 686
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 19
+ },
+ "end": {
+ "line": 20,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "count",
+ "range": [
+ 688,
+ 693
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 22
+ },
+ "end": {
+ "line": 20,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 695,
+ 696
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 29
+ },
+ "end": {
+ "line": 20,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 679,
+ 697
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 13
+ },
+ "end": {
+ "line": 20,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "limit",
+ "range": [
+ 699,
+ 704
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 33
+ },
+ "end": {
+ "line": 20,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 706,
+ 714
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 40
+ },
+ "end": {
+ "line": 20,
+ "column": 48
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 716,
+ 724
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 50
+ },
+ "end": {
+ "line": 20,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 670,
+ 725
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 59
+ }
+ }
+ },
+ "range": [
+ 670,
+ 726
+ ],
+ "loc": {
+ "start": {
+ "line": 20,
+ "column": 4
+ },
+ "end": {
+ "line": 20,
+ "column": 60
+ }
+ }
+ }
+ ],
+ "range": [
+ 664,
+ 728
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 68
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 611,
+ 728
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 15
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n* The same as {@link times} but runs a maximum of `limit` async operations at a\n* time.\n *\n * @name timesLimit\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 75,
+ 595
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 596,
+ 728
+ ],
+ "loc": {
+ "start": {
+ "line": 19,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n* The same as {@link times} but runs a maximum of `limit` async operations at a\n* time.\n *\n * @name timesLimit\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 75,
+ 595
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 728
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 21,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n* The same as {@link times} but runs a maximum of `limit` async operations at a\n* time.\n *\n * @name timesLimit\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 75,
+ 595
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 18,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/timesSeries.js.json b/docs/ast/source/timesSeries.js.json
new file mode 100644
index 0000000..7d8f505
--- /dev/null
+++ b/docs/ast/source/timesSeries.js.json
@@ -0,0 +1,338 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 7,
+ 17
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./timesLimit",
+ "raw": "'./timesLimit'",
+ "range": [
+ 23,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 23
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 0,
+ 38
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 46,
+ 53
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/doLimit",
+ "raw": "'./internal/doLimit'",
+ "range": [
+ 59,
+ 79
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 20
+ },
+ "end": {
+ "line": 2,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 39,
+ 80
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 41
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 82,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 16,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "doLimit",
+ "range": [
+ 535,
+ 542
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 15
+ },
+ "end": {
+ "line": 17,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "timesLimit",
+ "range": [
+ 543,
+ 553
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 23
+ },
+ "end": {
+ "line": 17,
+ "column": 33
+ }
+ }
+ },
+ {
+ "type": "Literal",
+ "value": 1,
+ "raw": "1",
+ "range": [
+ 555,
+ 556
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 35
+ },
+ "end": {
+ "line": 17,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 535,
+ 557
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 15
+ },
+ "end": {
+ "line": 17,
+ "column": 37
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 82,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 16,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 520,
+ 558
+ ],
+ "loc": {
+ "start": {
+ "line": 17,
+ "column": 0
+ },
+ "end": {
+ "line": 17,
+ "column": 38
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 82,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 16,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 558
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 17,
+ "column": 38
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * The same as {@link async.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n ",
+ "range": [
+ 82,
+ 519
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 16,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/transform.js.json b/docs/ast/source/transform.js.json
new file mode 100644
index 0000000..27ee287
--- /dev/null
+++ b/docs/ast/source/transform.js.json
@@ -0,0 +1,1267 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 20,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 20
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 0,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 46,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 46,
+ 52
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./eachOf",
+ "raw": "'./eachOf'",
+ "range": [
+ 58,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 19
+ },
+ "end": {
+ "line": 3,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 39,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {Function} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator. The `iteratee` is\n * passed a `callback(err)` which accepts an optional error as its first\n * argument. If an error is passed to the callback, the transform is stopped\n * and the main `callback` is immediately called with the error.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n ",
+ "range": [
+ 71,
+ 1773
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "transform",
+ "range": [
+ 1798,
+ 1807
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 24
+ },
+ "end": {
+ "line": 49,
+ "column": 33
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1809,
+ 1813
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 35
+ },
+ "end": {
+ "line": 49,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "accumulator",
+ "range": [
+ 1815,
+ 1826
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 41
+ },
+ "end": {
+ "line": 49,
+ "column": 52
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1828,
+ 1836
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 54
+ },
+ "end": {
+ "line": 49,
+ "column": 62
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1838,
+ 1846
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 64
+ },
+ "end": {
+ "line": 49,
+ "column": 72
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1858,
+ 1867
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 17
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 1868,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 18
+ },
+ "end": {
+ "line": 50,
+ "column": 24
+ }
+ }
+ },
+ "range": [
+ 1858,
+ 1874
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 24
+ }
+ }
+ },
+ "right": {
+ "type": "Literal",
+ "value": 3,
+ "raw": "3",
+ "range": [
+ 1879,
+ 1880
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 29
+ },
+ "end": {
+ "line": 50,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1858,
+ 1880
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 8
+ },
+ "end": {
+ "line": 50,
+ "column": 30
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1892,
+ 1900
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1903,
+ 1911
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 19
+ },
+ "end": {
+ "line": 51,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1892,
+ 1911
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 27
+ }
+ }
+ },
+ "range": [
+ 1892,
+ 1912
+ ],
+ "loc": {
+ "start": {
+ "line": 51,
+ "column": 8
+ },
+ "end": {
+ "line": 51,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1921,
+ 1929
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 52,
+ "column": 16
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "accumulator",
+ "range": [
+ 1932,
+ 1943
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 19
+ },
+ "end": {
+ "line": 52,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1921,
+ 1943
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 52,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 1921,
+ 1944
+ ],
+ "loc": {
+ "start": {
+ "line": 52,
+ "column": 8
+ },
+ "end": {
+ "line": 52,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "accumulator",
+ "range": [
+ 1953,
+ 1964
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 19
+ }
+ }
+ },
+ "right": {
+ "type": "ConditionalExpression",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 1967,
+ 1974
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 29
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 1975,
+ 1979
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 30
+ },
+ "end": {
+ "line": 53,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1967,
+ 1980
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 35
+ }
+ }
+ },
+ "consequent": {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 1983,
+ 1985
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 38
+ },
+ "end": {
+ "line": 53,
+ "column": 40
+ }
+ }
+ },
+ "alternate": {
+ "type": "ObjectExpression",
+ "properties": [],
+ "range": [
+ 1988,
+ 1990
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 43
+ },
+ "end": {
+ "line": 53,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1967,
+ 1990
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 22
+ },
+ "end": {
+ "line": 53,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1953,
+ 1990
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 45
+ }
+ }
+ },
+ "range": [
+ 1953,
+ 1991
+ ],
+ "loc": {
+ "start": {
+ "line": 53,
+ "column": 8
+ },
+ "end": {
+ "line": 53,
+ "column": 46
+ }
+ }
+ }
+ ],
+ "range": [
+ 1882,
+ 1997
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 32
+ },
+ "end": {
+ "line": 54,
+ "column": 5
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1854,
+ 1997
+ ],
+ "loc": {
+ "start": {
+ "line": 50,
+ "column": 4
+ },
+ "end": {
+ "line": 54,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "eachOf",
+ "range": [
+ 2003,
+ 2009
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 4
+ },
+ "end": {
+ "line": 56,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "coll",
+ "range": [
+ 2010,
+ 2014
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 11
+ },
+ "end": {
+ "line": 56,
+ "column": 15
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 2025,
+ 2026
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 26
+ },
+ "end": {
+ "line": 56,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "k",
+ "range": [
+ 2028,
+ 2029
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 29
+ },
+ "end": {
+ "line": 56,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 2031,
+ 2033
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 32
+ },
+ "end": {
+ "line": 56,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 2045,
+ 2053
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 8
+ },
+ "end": {
+ "line": 57,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "accumulator",
+ "range": [
+ 2054,
+ 2065
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 17
+ },
+ "end": {
+ "line": 57,
+ "column": 28
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "v",
+ "range": [
+ 2067,
+ 2068
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 30
+ },
+ "end": {
+ "line": 57,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "k",
+ "range": [
+ 2070,
+ 2071
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 33
+ },
+ "end": {
+ "line": 57,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "cb",
+ "range": [
+ 2073,
+ 2075
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 36
+ },
+ "end": {
+ "line": 57,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "range": [
+ 2045,
+ 2076
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 8
+ },
+ "end": {
+ "line": 57,
+ "column": 39
+ }
+ }
+ },
+ "range": [
+ 2045,
+ 2077
+ ],
+ "loc": {
+ "start": {
+ "line": 57,
+ "column": 8
+ },
+ "end": {
+ "line": 57,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "range": [
+ 2035,
+ 2083
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 36
+ },
+ "end": {
+ "line": 58,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2016,
+ 2083
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 17
+ },
+ "end": {
+ "line": 58,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2094,
+ 2097
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 16
+ },
+ "end": {
+ "line": 58,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2109,
+ 2117
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2118,
+ 2121
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 17
+ },
+ "end": {
+ "line": 59,
+ "column": 20
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "accumulator",
+ "range": [
+ 2123,
+ 2134
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 22
+ },
+ "end": {
+ "line": 59,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 2109,
+ 2135
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 2109,
+ 2136
+ ],
+ "loc": {
+ "start": {
+ "line": 59,
+ "column": 8
+ },
+ "end": {
+ "line": 59,
+ "column": 35
+ }
+ }
+ }
+ ],
+ "range": [
+ 2099,
+ 2142
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 21
+ },
+ "end": {
+ "line": 60,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2085,
+ 2142
+ ],
+ "loc": {
+ "start": {
+ "line": 58,
+ "column": 7
+ },
+ "end": {
+ "line": 60,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 2003,
+ 2143
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 4
+ },
+ "end": {
+ "line": 60,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 2003,
+ 2144
+ ],
+ "loc": {
+ "start": {
+ "line": 56,
+ "column": 4
+ },
+ "end": {
+ "line": 60,
+ "column": 7
+ }
+ }
+ }
+ ],
+ "range": [
+ 1848,
+ 2146
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 74
+ },
+ "end": {
+ "line": 61,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1789,
+ 2146
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 15
+ },
+ "end": {
+ "line": 61,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {Function} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator. The `iteratee` is\n * passed a `callback(err)` which accepts an optional error as its first\n * argument. If an error is passed to the callback, the transform is stopped\n * and the main `callback` is immediately called with the error.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n ",
+ "range": [
+ 71,
+ 1773
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1774,
+ 2146
+ ],
+ "loc": {
+ "start": {
+ "line": 49,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {Function} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator. The `iteratee` is\n * passed a `callback(err)` which accepts an optional error as its first\n * argument. If an error is passed to the callback, the transform is stopped\n * and the main `callback` is immediately called with the error.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n ",
+ "range": [
+ 71,
+ 1773
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2146
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 61,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {Function} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator. The `iteratee` is\n * passed a `callback(err)` which accepts an optional error as its first\n * argument. If an error is passed to the callback, the transform is stopped\n * and the main `callback` is immediately called with the error.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n ",
+ "range": [
+ 71,
+ 1773
+ ],
+ "loc": {
+ "start": {
+ "line": 5,
+ "column": 0
+ },
+ "end": {
+ "line": 48,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/unmemoize.js.json b/docs/ast/source/unmemoize.js.json
new file mode 100644
index 0000000..2dd7816
--- /dev/null
+++ b/docs/ast/source/unmemoize.js.json
@@ -0,0 +1,430 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "unmemoize",
+ "range": [
+ 365,
+ 374
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 25
+ },
+ "end": {
+ "line": 13,
+ "column": 34
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 375,
+ 377
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 35
+ },
+ "end": {
+ "line": 13,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 422,
+ 424
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 18
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "unmemoized",
+ "range": [
+ 425,
+ 435
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 19
+ },
+ "end": {
+ "line": 15,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 422,
+ 435
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 29
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 439,
+ 441
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 33
+ },
+ "end": {
+ "line": 15,
+ "column": 35
+ }
+ }
+ },
+ "range": [
+ 422,
+ 441
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 16
+ },
+ "end": {
+ "line": 15,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 443,
+ 448
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 37
+ },
+ "end": {
+ "line": 15,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 421,
+ 448
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 15
+ },
+ "end": {
+ "line": 15,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 449,
+ 453
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 43
+ },
+ "end": {
+ "line": 15,
+ "column": 47
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 455,
+ 464
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 49
+ },
+ "end": {
+ "line": 15,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 421,
+ 465
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 15
+ },
+ "end": {
+ "line": 15,
+ "column": 59
+ }
+ }
+ },
+ "range": [
+ 414,
+ 466
+ ],
+ "loc": {
+ "start": {
+ "line": 15,
+ "column": 8
+ },
+ "end": {
+ "line": 15,
+ "column": 60
+ }
+ }
+ }
+ ],
+ "range": [
+ 404,
+ 472
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 23
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 392,
+ 472
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 11
+ },
+ "end": {
+ "line": 16,
+ "column": 5
+ }
+ }
+ },
+ "range": [
+ 385,
+ 473
+ ],
+ "loc": {
+ "start": {
+ "line": 14,
+ "column": 4
+ },
+ "end": {
+ "line": 16,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "range": [
+ 379,
+ 475
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 39
+ },
+ "end": {
+ "line": 17,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 356,
+ 475
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 16
+ },
+ "end": {
+ "line": 17,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Undoes a {@link async.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf async\n * @see async.memoize\n * @category Util\n * @param {Function} fn - the memoized function\n * @returns {Function} a function that calls the original unmemoized function\n ",
+ "range": [
+ 0,
+ 339
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 12,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 340,
+ 475
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 0
+ },
+ "end": {
+ "line": 17,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Undoes a {@link async.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf async\n * @see async.memoize\n * @category Util\n * @param {Function} fn - the memoized function\n * @returns {Function} a function that calls the original unmemoized function\n ",
+ "range": [
+ 0,
+ 339
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 12,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 340,
+ 475
+ ],
+ "loc": {
+ "start": {
+ "line": 13,
+ "column": 0
+ },
+ "end": {
+ "line": 17,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Undoes a {@link async.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf async\n * @see async.memoize\n * @category Util\n * @param {Function} fn - the memoized function\n * @returns {Function} a function that calls the original unmemoized function\n ",
+ "range": [
+ 0,
+ 339
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 12,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/until.js.json b/docs/ast/source/until.js.json
new file mode 100644
index 0000000..4dae3c0
--- /dev/null
+++ b/docs/ast/source/until.js.json
@@ -0,0 +1,577 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ },
+ "range": [
+ 7,
+ 13
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 13
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./whilst",
+ "raw": "'./whilst'",
+ "range": [
+ 19,
+ 29
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 19
+ },
+ "end": {
+ "line": 1,
+ "column": 29
+ }
+ }
+ },
+ "range": [
+ 0,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `fn`'s callback.\n *\n * The inverse of {@link async.whilst}.\n *\n * @name until\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 986
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "until",
+ "range": [
+ 1011,
+ 1016
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 24
+ },
+ "end": {
+ "line": 25,
+ "column": 29
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1017,
+ 1021
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 30
+ },
+ "end": {
+ "line": 25,
+ "column": 34
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1023,
+ 1025
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 36
+ },
+ "end": {
+ "line": 25,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1027,
+ 1035
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 40
+ },
+ "end": {
+ "line": 25,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 1043,
+ 1049
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 26,
+ "column": 10
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1079,
+ 1083
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 20
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1084,
+ 1089
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 21
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 1079,
+ 1089
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 26
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1090,
+ 1094
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 27
+ },
+ "end": {
+ "line": 27,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "arguments",
+ "range": [
+ 1096,
+ 1105
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 33
+ },
+ "end": {
+ "line": 27,
+ "column": 42
+ }
+ }
+ }
+ ],
+ "range": [
+ 1079,
+ 1106
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 16
+ },
+ "end": {
+ "line": 27,
+ "column": 43
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1078,
+ 1106
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 15
+ },
+ "end": {
+ "line": 27,
+ "column": 43
+ }
+ }
+ },
+ "range": [
+ 1071,
+ 1107
+ ],
+ "loc": {
+ "start": {
+ "line": 27,
+ "column": 8
+ },
+ "end": {
+ "line": 27,
+ "column": 44
+ }
+ }
+ }
+ ],
+ "range": [
+ 1061,
+ 1113
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 22
+ },
+ "end": {
+ "line": 28,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1050,
+ 1113
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 11
+ },
+ "end": {
+ "line": 28,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "fn",
+ "range": [
+ 1115,
+ 1117
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 7
+ },
+ "end": {
+ "line": 28,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1119,
+ 1127
+ ],
+ "loc": {
+ "start": {
+ "line": 28,
+ "column": 11
+ },
+ "end": {
+ "line": 28,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1043,
+ 1128
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 20
+ }
+ }
+ },
+ "range": [
+ 1043,
+ 1129
+ ],
+ "loc": {
+ "start": {
+ "line": 26,
+ "column": 4
+ },
+ "end": {
+ "line": 28,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "range": [
+ 1037,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 50
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1002,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 15
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `fn`'s callback.\n *\n * The inverse of {@link async.whilst}.\n *\n * @name until\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 986
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 987,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 25,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `fn`'s callback.\n *\n * The inverse of {@link async.whilst}.\n *\n * @name until\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 986
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1131
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 29,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `fn`'s callback.\n *\n * The inverse of {@link async.whilst}.\n *\n * @name until\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n ",
+ "range": [
+ 32,
+ 986
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 24,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/waterfall.js.json b/docs/ast/source/waterfall.js.json
new file mode 100644
index 0000000..4a3fc90
--- /dev/null
+++ b/docs/ast/source/waterfall.js.json
@@ -0,0 +1,2534 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ },
+ "range": [
+ 7,
+ 14
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 14
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/isArray",
+ "raw": "'lodash/isArray'",
+ "range": [
+ 20,
+ 36
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 20
+ },
+ "end": {
+ "line": 1,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 0,
+ 37
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 37
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 45,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 45,
+ 49
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 55,
+ 68
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 38,
+ 69
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 77,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 77,
+ 81
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 7
+ },
+ "end": {
+ "line": 3,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/once",
+ "raw": "'./internal/once'",
+ "range": [
+ 87,
+ 104
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 17
+ },
+ "end": {
+ "line": 3,
+ "column": 34
+ }
+ }
+ },
+ "range": [
+ 70,
+ 105
+ ],
+ "loc": {
+ "start": {
+ "line": 3,
+ "column": 0
+ },
+ "end": {
+ "line": 3,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 113,
+ 117
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 113,
+ 117
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 7
+ },
+ "end": {
+ "line": 4,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 123,
+ 136
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 17
+ },
+ "end": {
+ "line": 4,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 106,
+ 137
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 4,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 146,
+ 154
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 15
+ }
+ }
+ },
+ "range": [
+ 146,
+ 154
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 7
+ },
+ "end": {
+ "line": 6,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "./internal/onlyOnce",
+ "raw": "'./internal/onlyOnce'",
+ "range": [
+ 160,
+ 181
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 21
+ },
+ "end": {
+ "line": 6,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 139,
+ 182
+ ],
+ "loc": {
+ "start": {
+ "line": 6,
+ "column": 0
+ },
+ "end": {
+ "line": 6,
+ "column": 43
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run, each function is passed\n * a `callback(err, result1, result2, ...)` it must call on completion. The\n * first argument is an error (which can be `null`) and any further arguments\n * will be passed as arguments in order to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n ",
+ "range": [
+ 184,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2083,
+ 2088
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 25
+ },
+ "end": {
+ "line": 64,
+ "column": 30
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2090,
+ 2098
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 32
+ },
+ "end": {
+ "line": 64,
+ "column": 40
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2106,
+ 2114
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 4
+ },
+ "end": {
+ "line": 65,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "once",
+ "range": [
+ 2117,
+ 2121
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 15
+ },
+ "end": {
+ "line": 65,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2122,
+ 2130
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 20
+ },
+ "end": {
+ "line": 65,
+ "column": 28
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 2134,
+ 2138
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 32
+ },
+ "end": {
+ "line": 65,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 2122,
+ 2138
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 20
+ },
+ "end": {
+ "line": 65,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 2117,
+ 2139
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 15
+ },
+ "end": {
+ "line": 65,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2106,
+ 2139
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 4
+ },
+ "end": {
+ "line": 65,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2106,
+ 2140
+ ],
+ "loc": {
+ "start": {
+ "line": 65,
+ "column": 4
+ },
+ "end": {
+ "line": 65,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "isArray",
+ "range": [
+ 2150,
+ 2157
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 9
+ },
+ "end": {
+ "line": 66,
+ "column": 16
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2158,
+ 2163
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 17
+ },
+ "end": {
+ "line": 66,
+ "column": 22
+ }
+ }
+ }
+ ],
+ "range": [
+ 2150,
+ 2164
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 9
+ },
+ "end": {
+ "line": 66,
+ "column": 23
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2149,
+ 2164
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 8
+ },
+ "end": {
+ "line": 66,
+ "column": 23
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2173,
+ 2181
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 32
+ },
+ "end": {
+ "line": 66,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "NewExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "Error",
+ "range": [
+ 2186,
+ 2191
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 45
+ },
+ "end": {
+ "line": 66,
+ "column": 50
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": "First argument to waterfall must be an array of functions",
+ "raw": "'First argument to waterfall must be an array of functions'",
+ "range": [
+ 2192,
+ 2251
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 51
+ },
+ "end": {
+ "line": 66,
+ "column": 110
+ }
+ }
+ }
+ ],
+ "range": [
+ 2182,
+ 2252
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 41
+ },
+ "end": {
+ "line": 66,
+ "column": 111
+ }
+ }
+ }
+ ],
+ "range": [
+ 2173,
+ 2253
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 32
+ },
+ "end": {
+ "line": 66,
+ "column": 112
+ }
+ }
+ },
+ "range": [
+ 2166,
+ 2254
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 25
+ },
+ "end": {
+ "line": 66,
+ "column": 113
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2145,
+ 2254
+ ],
+ "loc": {
+ "start": {
+ "line": 66,
+ "column": 4
+ },
+ "end": {
+ "line": 66,
+ "column": 113
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2264,
+ 2269
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 9
+ },
+ "end": {
+ "line": 67,
+ "column": 14
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2270,
+ 2276
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 15
+ },
+ "end": {
+ "line": 67,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 2264,
+ 2276
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 9
+ },
+ "end": {
+ "line": 67,
+ "column": 21
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 2263,
+ 2276
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 8
+ },
+ "end": {
+ "line": 67,
+ "column": 21
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2285,
+ 2293
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 30
+ },
+ "end": {
+ "line": 67,
+ "column": 38
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 2285,
+ 2295
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 30
+ },
+ "end": {
+ "line": 67,
+ "column": 40
+ }
+ }
+ },
+ "range": [
+ 2278,
+ 2296
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 23
+ },
+ "end": {
+ "line": 67,
+ "column": 41
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2259,
+ 2296
+ ],
+ "loc": {
+ "start": {
+ "line": 67,
+ "column": 4
+ },
+ "end": {
+ "line": 67,
+ "column": 41
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskIndex",
+ "range": [
+ 2305,
+ 2314
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 8
+ },
+ "end": {
+ "line": 68,
+ "column": 17
+ }
+ }
+ },
+ "init": {
+ "type": "Literal",
+ "value": 0,
+ "raw": "0",
+ "range": [
+ 2317,
+ 2318
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 20
+ },
+ "end": {
+ "line": 68,
+ "column": 21
+ }
+ }
+ },
+ "range": [
+ 2305,
+ 2318
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 8
+ },
+ "end": {
+ "line": 68,
+ "column": 21
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2301,
+ 2319
+ ],
+ "loc": {
+ "start": {
+ "line": 68,
+ "column": 4
+ },
+ "end": {
+ "line": 68,
+ "column": 22
+ }
+ }
+ },
+ {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "nextTask",
+ "range": [
+ 2334,
+ 2342
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 13
+ },
+ "end": {
+ "line": 70,
+ "column": 21
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2343,
+ 2347
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 22
+ },
+ "end": {
+ "line": 70,
+ "column": 26
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "BinaryExpression",
+ "operator": "===",
+ "left": {
+ "type": "Identifier",
+ "name": "taskIndex",
+ "range": [
+ 2363,
+ 2372
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 12
+ },
+ "end": {
+ "line": 71,
+ "column": 21
+ }
+ }
+ },
+ "right": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2377,
+ 2382
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 26
+ },
+ "end": {
+ "line": 71,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "length",
+ "range": [
+ 2383,
+ 2389
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 32
+ },
+ "end": {
+ "line": 71,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 2377,
+ 2389
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 26
+ },
+ "end": {
+ "line": 71,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 2363,
+ 2389
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 12
+ },
+ "end": {
+ "line": 71,
+ "column": 38
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2412,
+ 2420
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 19
+ },
+ "end": {
+ "line": 72,
+ "column": 27
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2421,
+ 2426
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 28
+ },
+ "end": {
+ "line": 72,
+ "column": 33
+ }
+ }
+ },
+ "range": [
+ 2412,
+ 2426
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 19
+ },
+ "end": {
+ "line": 72,
+ "column": 33
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2427,
+ 2431
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 34
+ },
+ "end": {
+ "line": 72,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2434,
+ 2438
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 41
+ },
+ "end": {
+ "line": 72,
+ "column": 45
+ }
+ }
+ }
+ ],
+ "range": [
+ 2433,
+ 2439
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 40
+ },
+ "end": {
+ "line": 72,
+ "column": 46
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 2440,
+ 2446
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 47
+ },
+ "end": {
+ "line": 72,
+ "column": 53
+ }
+ }
+ },
+ "range": [
+ 2433,
+ 2446
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 40
+ },
+ "end": {
+ "line": 72,
+ "column": 53
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2447,
+ 2451
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 54
+ },
+ "end": {
+ "line": 72,
+ "column": 58
+ }
+ }
+ }
+ ],
+ "range": [
+ 2433,
+ 2452
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 40
+ },
+ "end": {
+ "line": 72,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "range": [
+ 2412,
+ 2453
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 19
+ },
+ "end": {
+ "line": 72,
+ "column": 60
+ }
+ }
+ },
+ "range": [
+ 2405,
+ 2454
+ ],
+ "loc": {
+ "start": {
+ "line": 72,
+ "column": 12
+ },
+ "end": {
+ "line": 72,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 2391,
+ 2464
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 40
+ },
+ "end": {
+ "line": 73,
+ "column": 9
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2359,
+ 2464
+ ],
+ "loc": {
+ "start": {
+ "line": 71,
+ "column": 8
+ },
+ "end": {
+ "line": 73,
+ "column": 9
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "taskCallback",
+ "range": [
+ 2478,
+ 2490
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 75,
+ "column": 24
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "onlyOnce",
+ "range": [
+ 2493,
+ 2501
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 27
+ },
+ "end": {
+ "line": 75,
+ "column": 35
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 2502,
+ 2506
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 36
+ },
+ "end": {
+ "line": 75,
+ "column": 40
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2516,
+ 2519
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 50
+ },
+ "end": {
+ "line": 75,
+ "column": 53
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2521,
+ 2525
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 55
+ },
+ "end": {
+ "line": 75,
+ "column": 59
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2545,
+ 2548
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 16
+ },
+ "end": {
+ "line": 76,
+ "column": 19
+ }
+ }
+ },
+ "consequent": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 2575,
+ 2583
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 23
+ },
+ "end": {
+ "line": 77,
+ "column": 31
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2584,
+ 2589
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 32
+ },
+ "end": {
+ "line": 77,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2575,
+ 2589
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 23
+ },
+ "end": {
+ "line": 77,
+ "column": 37
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2590,
+ 2594
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 38
+ },
+ "end": {
+ "line": 77,
+ "column": 42
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 2597,
+ 2600
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 45
+ },
+ "end": {
+ "line": 77,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 2596,
+ 2601
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 44
+ },
+ "end": {
+ "line": 77,
+ "column": 49
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 2602,
+ 2608
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 50
+ },
+ "end": {
+ "line": 77,
+ "column": 56
+ }
+ }
+ },
+ "range": [
+ 2596,
+ 2608
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 44
+ },
+ "end": {
+ "line": 77,
+ "column": 56
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2609,
+ 2613
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 57
+ },
+ "end": {
+ "line": 77,
+ "column": 61
+ }
+ }
+ }
+ ],
+ "range": [
+ 2596,
+ 2614
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 44
+ },
+ "end": {
+ "line": 77,
+ "column": 62
+ }
+ }
+ }
+ ],
+ "range": [
+ 2575,
+ 2615
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 23
+ },
+ "end": {
+ "line": 77,
+ "column": 63
+ }
+ }
+ },
+ "range": [
+ 2568,
+ 2616
+ ],
+ "loc": {
+ "start": {
+ "line": 77,
+ "column": 16
+ },
+ "end": {
+ "line": 77,
+ "column": 64
+ }
+ }
+ }
+ ],
+ "range": [
+ 2550,
+ 2630
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 21
+ },
+ "end": {
+ "line": 78,
+ "column": 13
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 2541,
+ 2630
+ ],
+ "loc": {
+ "start": {
+ "line": 76,
+ "column": 12
+ },
+ "end": {
+ "line": 78,
+ "column": 13
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "nextTask",
+ "range": [
+ 2643,
+ 2651
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 12
+ },
+ "end": {
+ "line": 79,
+ "column": 20
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2652,
+ 2656
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 21
+ },
+ "end": {
+ "line": 79,
+ "column": 25
+ }
+ }
+ }
+ ],
+ "range": [
+ 2643,
+ 2657
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 12
+ },
+ "end": {
+ "line": 79,
+ "column": 26
+ }
+ }
+ },
+ "range": [
+ 2643,
+ 2658
+ ],
+ "loc": {
+ "start": {
+ "line": 79,
+ "column": 12
+ },
+ "end": {
+ "line": 79,
+ "column": 27
+ }
+ }
+ }
+ ],
+ "range": [
+ 2527,
+ 2668
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 61
+ },
+ "end": {
+ "line": 80,
+ "column": 9
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2507,
+ 2668
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 41
+ },
+ "end": {
+ "line": 80,
+ "column": 9
+ }
+ }
+ }
+ ],
+ "range": [
+ 2502,
+ 2669
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 36
+ },
+ "end": {
+ "line": 80,
+ "column": 10
+ }
+ }
+ }
+ ],
+ "range": [
+ 2493,
+ 2670
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 27
+ },
+ "end": {
+ "line": 80,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 2478,
+ 2670
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 12
+ },
+ "end": {
+ "line": 80,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2474,
+ 2671
+ ],
+ "loc": {
+ "start": {
+ "line": 75,
+ "column": 8
+ },
+ "end": {
+ "line": 80,
+ "column": 12
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2681,
+ 2685
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "push",
+ "range": [
+ 2686,
+ 2690
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 13
+ },
+ "end": {
+ "line": 82,
+ "column": 17
+ }
+ }
+ },
+ "range": [
+ 2681,
+ 2690
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 17
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "taskCallback",
+ "range": [
+ 2691,
+ 2703
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 18
+ },
+ "end": {
+ "line": 82,
+ "column": 30
+ }
+ }
+ }
+ ],
+ "range": [
+ 2681,
+ 2704
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 2681,
+ 2705
+ ],
+ "loc": {
+ "start": {
+ "line": 82,
+ "column": 8
+ },
+ "end": {
+ "line": 82,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 2719,
+ 2723
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 12
+ },
+ "end": {
+ "line": 84,
+ "column": 16
+ }
+ }
+ },
+ "init": {
+ "type": "MemberExpression",
+ "computed": true,
+ "object": {
+ "type": "Identifier",
+ "name": "tasks",
+ "range": [
+ 2726,
+ 2731
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 19
+ },
+ "end": {
+ "line": 84,
+ "column": 24
+ }
+ }
+ },
+ "property": {
+ "type": "UpdateExpression",
+ "operator": "++",
+ "argument": {
+ "type": "Identifier",
+ "name": "taskIndex",
+ "range": [
+ 2732,
+ 2741
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 25
+ },
+ "end": {
+ "line": 84,
+ "column": 34
+ }
+ }
+ },
+ "prefix": false,
+ "range": [
+ 2732,
+ 2743
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 25
+ },
+ "end": {
+ "line": 84,
+ "column": 36
+ }
+ }
+ },
+ "range": [
+ 2726,
+ 2744
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 19
+ },
+ "end": {
+ "line": 84,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 2719,
+ 2744
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 12
+ },
+ "end": {
+ "line": 84,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 2715,
+ 2745
+ ],
+ "loc": {
+ "start": {
+ "line": 84,
+ "column": 8
+ },
+ "end": {
+ "line": 84,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "task",
+ "range": [
+ 2754,
+ 2758
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 12
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 2759,
+ 2764
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 13
+ },
+ "end": {
+ "line": 85,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 2754,
+ 2764
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 18
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 2765,
+ 2769
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 19
+ },
+ "end": {
+ "line": 85,
+ "column": 23
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 2771,
+ 2775
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 25
+ },
+ "end": {
+ "line": 85,
+ "column": 29
+ }
+ }
+ }
+ ],
+ "range": [
+ 2754,
+ 2776
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 2754,
+ 2777
+ ],
+ "loc": {
+ "start": {
+ "line": 85,
+ "column": 8
+ },
+ "end": {
+ "line": 85,
+ "column": 31
+ }
+ }
+ }
+ ],
+ "range": [
+ 2349,
+ 2783
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 28
+ },
+ "end": {
+ "line": 86,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2325,
+ 2783
+ ],
+ "loc": {
+ "start": {
+ "line": 70,
+ "column": 4
+ },
+ "end": {
+ "line": 86,
+ "column": 5
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "nextTask",
+ "range": [
+ 2789,
+ 2797
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 4
+ },
+ "end": {
+ "line": 88,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ArrayExpression",
+ "elements": [],
+ "range": [
+ 2798,
+ 2800
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 13
+ },
+ "end": {
+ "line": 88,
+ "column": 15
+ }
+ }
+ }
+ ],
+ "range": [
+ 2789,
+ 2801
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 4
+ },
+ "end": {
+ "line": 88,
+ "column": 16
+ }
+ }
+ },
+ "range": [
+ 2789,
+ 2802
+ ],
+ "loc": {
+ "start": {
+ "line": 88,
+ "column": 4
+ },
+ "end": {
+ "line": 88,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 2100,
+ 2804
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 42
+ },
+ "end": {
+ "line": 89,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 2074,
+ 2804
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 16
+ },
+ "end": {
+ "line": 89,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run, each function is passed\n * a `callback(err, result1, result2, ...)` it must call on completion. The\n * first argument is an error (which can be `null`) and any further arguments\n * will be passed as arguments in order to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n ",
+ "range": [
+ 184,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 2058,
+ 2804
+ ],
+ "loc": {
+ "start": {
+ "line": 64,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run, each function is passed\n * a `callback(err, result1, result2, ...)` it must call on completion. The\n * first argument is an error (which can be `null`) and any further arguments\n * will be passed as arguments in order to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n ",
+ "range": [
+ 184,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 2804
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 89,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run, each function is passed\n * a `callback(err, result1, result2, ...)` it must call on completion. The\n * first argument is an error (which can be `null`) and any further arguments\n * will be passed as arguments in order to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n ",
+ "range": [
+ 184,
+ 2057
+ ],
+ "loc": {
+ "start": {
+ "line": 8,
+ "column": 0
+ },
+ "end": {
+ "line": 63,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/ast/source/whilst.js.json b/docs/ast/source/whilst.js.json
new file mode 100644
index 0000000..3cdd2cc
--- /dev/null
+++ b/docs/ast/source/whilst.js.json
@@ -0,0 +1,1396 @@
+{
+ "type": "Program",
+ "body": [
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 7,
+ 11
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 7
+ },
+ "end": {
+ "line": 1,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/noop",
+ "raw": "'lodash/noop'",
+ "range": [
+ 17,
+ 30
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 17
+ },
+ "end": {
+ "line": 1,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 0,
+ 31
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 1,
+ "column": 31
+ }
+ }
+ },
+ {
+ "type": "ImportDeclaration",
+ "specifiers": [
+ {
+ "type": "ImportDefaultSpecifier",
+ "local": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ },
+ "range": [
+ 39,
+ 43
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 7
+ },
+ "end": {
+ "line": 2,
+ "column": 11
+ }
+ }
+ }
+ ],
+ "source": {
+ "type": "Literal",
+ "value": "lodash/rest",
+ "raw": "'lodash/rest'",
+ "range": [
+ 49,
+ 62
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 17
+ },
+ "end": {
+ "line": 2,
+ "column": 30
+ }
+ }
+ },
+ "range": [
+ 32,
+ 63
+ ],
+ "loc": {
+ "start": {
+ "line": 2,
+ "column": 0
+ },
+ "end": {
+ "line": 2,
+ "column": 31
+ }
+ },
+ "trailingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} iteratee - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 37,
+ "column": 3
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ExportDefaultDeclaration",
+ "declaration": {
+ "type": "FunctionDeclaration",
+ "id": {
+ "type": "Identifier",
+ "name": "whilst",
+ "range": [
+ 1246,
+ 1252
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 24
+ },
+ "end": {
+ "line": 38,
+ "column": 30
+ }
+ }
+ },
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1253,
+ 1257
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 31
+ },
+ "end": {
+ "line": 38,
+ "column": 35
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1259,
+ 1267
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 37
+ },
+ "end": {
+ "line": 38,
+ "column": 45
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1269,
+ 1277
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 47
+ },
+ "end": {
+ "line": 38,
+ "column": 55
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1285,
+ 1293
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 4
+ },
+ "end": {
+ "line": 39,
+ "column": 12
+ }
+ }
+ },
+ "right": {
+ "type": "LogicalExpression",
+ "operator": "||",
+ "left": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1296,
+ 1304
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 15
+ },
+ "end": {
+ "line": 39,
+ "column": 23
+ }
+ }
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "noop",
+ "range": [
+ 1308,
+ 1312
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 27
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1296,
+ 1312
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 15
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1285,
+ 1312
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 4
+ },
+ "end": {
+ "line": 39,
+ "column": 31
+ }
+ }
+ },
+ "range": [
+ 1285,
+ 1313
+ ],
+ "loc": {
+ "start": {
+ "line": 39,
+ "column": 4
+ },
+ "end": {
+ "line": 39,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "UnaryExpression",
+ "operator": "!",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1323,
+ 1327
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 9
+ },
+ "end": {
+ "line": 40,
+ "column": 13
+ }
+ }
+ },
+ "arguments": [],
+ "range": [
+ 1323,
+ 1329
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 9
+ },
+ "end": {
+ "line": 40,
+ "column": 15
+ }
+ }
+ },
+ "prefix": true,
+ "range": [
+ 1322,
+ 1329
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 8
+ },
+ "end": {
+ "line": 40,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1338,
+ 1346
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 24
+ },
+ "end": {
+ "line": 40,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1347,
+ 1351
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 33
+ },
+ "end": {
+ "line": 40,
+ "column": 37
+ }
+ }
+ }
+ ],
+ "range": [
+ 1338,
+ 1352
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 24
+ },
+ "end": {
+ "line": 40,
+ "column": 38
+ }
+ }
+ },
+ "range": [
+ 1331,
+ 1353
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 17
+ },
+ "end": {
+ "line": 40,
+ "column": 39
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1318,
+ 1353
+ ],
+ "loc": {
+ "start": {
+ "line": 40,
+ "column": 4
+ },
+ "end": {
+ "line": 40,
+ "column": 39
+ }
+ }
+ },
+ {
+ "type": "VariableDeclaration",
+ "declarations": [
+ {
+ "type": "VariableDeclarator",
+ "id": {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1362,
+ 1366
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 41,
+ "column": 12
+ }
+ }
+ },
+ "init": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "rest",
+ "range": [
+ 1369,
+ 1373
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 15
+ },
+ "end": {
+ "line": 41,
+ "column": 19
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "FunctionExpression",
+ "id": null,
+ "params": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1383,
+ 1386
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 29
+ },
+ "end": {
+ "line": 41,
+ "column": 32
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1388,
+ 1392
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 34
+ },
+ "end": {
+ "line": 41,
+ "column": 38
+ }
+ }
+ }
+ ],
+ "body": {
+ "type": "BlockStatement",
+ "body": [
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1408,
+ 1411
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 12
+ },
+ "end": {
+ "line": 42,
+ "column": 15
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1420,
+ 1428
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 32
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "err",
+ "range": [
+ 1429,
+ 1432
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 33
+ },
+ "end": {
+ "line": 42,
+ "column": 36
+ }
+ }
+ }
+ ],
+ "range": [
+ 1420,
+ 1433
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 24
+ },
+ "end": {
+ "line": 42,
+ "column": 37
+ }
+ }
+ },
+ "range": [
+ 1413,
+ 1434
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 17
+ },
+ "end": {
+ "line": 42,
+ "column": 38
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1404,
+ 1434
+ ],
+ "loc": {
+ "start": {
+ "line": 42,
+ "column": 8
+ },
+ "end": {
+ "line": 42,
+ "column": 38
+ }
+ }
+ },
+ {
+ "type": "IfStatement",
+ "test": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "test",
+ "range": [
+ 1447,
+ 1451
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 12
+ },
+ "end": {
+ "line": 43,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1452,
+ 1457
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 17
+ },
+ "end": {
+ "line": 43,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1447,
+ 1457
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 12
+ },
+ "end": {
+ "line": 43,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "ThisExpression",
+ "range": [
+ 1458,
+ 1462
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 23
+ },
+ "end": {
+ "line": 43,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1464,
+ 1468
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 29
+ },
+ "end": {
+ "line": 43,
+ "column": 33
+ }
+ }
+ }
+ ],
+ "range": [
+ 1447,
+ 1469
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 12
+ },
+ "end": {
+ "line": 43,
+ "column": 34
+ }
+ }
+ },
+ "consequent": {
+ "type": "ReturnStatement",
+ "argument": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1478,
+ 1486
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 43
+ },
+ "end": {
+ "line": 43,
+ "column": 51
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1487,
+ 1491
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 52
+ },
+ "end": {
+ "line": 43,
+ "column": 56
+ }
+ }
+ }
+ ],
+ "range": [
+ 1478,
+ 1492
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 43
+ },
+ "end": {
+ "line": 43,
+ "column": 57
+ }
+ }
+ },
+ "range": [
+ 1471,
+ 1493
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 36
+ },
+ "end": {
+ "line": 43,
+ "column": 58
+ }
+ }
+ },
+ "alternate": null,
+ "range": [
+ 1443,
+ 1493
+ ],
+ "loc": {
+ "start": {
+ "line": 43,
+ "column": 8
+ },
+ "end": {
+ "line": 43,
+ "column": 58
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "Identifier",
+ "name": "callback",
+ "range": [
+ 1502,
+ 1510
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 16
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "apply",
+ "range": [
+ 1511,
+ 1516
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 17
+ },
+ "end": {
+ "line": 44,
+ "column": 22
+ }
+ }
+ },
+ "range": [
+ 1502,
+ 1516
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 22
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1517,
+ 1521
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 23
+ },
+ "end": {
+ "line": 44,
+ "column": 27
+ }
+ }
+ },
+ {
+ "type": "CallExpression",
+ "callee": {
+ "type": "MemberExpression",
+ "computed": false,
+ "object": {
+ "type": "ArrayExpression",
+ "elements": [
+ {
+ "type": "Literal",
+ "value": null,
+ "raw": "null",
+ "range": [
+ 1524,
+ 1528
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 30
+ },
+ "end": {
+ "line": 44,
+ "column": 34
+ }
+ }
+ }
+ ],
+ "range": [
+ 1523,
+ 1529
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 29
+ },
+ "end": {
+ "line": 44,
+ "column": 35
+ }
+ }
+ },
+ "property": {
+ "type": "Identifier",
+ "name": "concat",
+ "range": [
+ 1530,
+ 1536
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 36
+ },
+ "end": {
+ "line": 44,
+ "column": 42
+ }
+ }
+ },
+ "range": [
+ 1523,
+ 1536
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 29
+ },
+ "end": {
+ "line": 44,
+ "column": 42
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "args",
+ "range": [
+ 1537,
+ 1541
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 43
+ },
+ "end": {
+ "line": 44,
+ "column": 47
+ }
+ }
+ }
+ ],
+ "range": [
+ 1523,
+ 1542
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 29
+ },
+ "end": {
+ "line": 44,
+ "column": 48
+ }
+ }
+ }
+ ],
+ "range": [
+ 1502,
+ 1543
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 49
+ }
+ }
+ },
+ "range": [
+ 1502,
+ 1544
+ ],
+ "loc": {
+ "start": {
+ "line": 44,
+ "column": 8
+ },
+ "end": {
+ "line": 44,
+ "column": 50
+ }
+ }
+ }
+ ],
+ "range": [
+ 1394,
+ 1550
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 40
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1374,
+ 1550
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 20
+ },
+ "end": {
+ "line": 45,
+ "column": 5
+ }
+ }
+ }
+ ],
+ "range": [
+ 1369,
+ 1551
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 15
+ },
+ "end": {
+ "line": 45,
+ "column": 6
+ }
+ }
+ },
+ "range": [
+ 1362,
+ 1551
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 8
+ },
+ "end": {
+ "line": 45,
+ "column": 6
+ }
+ }
+ }
+ ],
+ "kind": "var",
+ "range": [
+ 1358,
+ 1552
+ ],
+ "loc": {
+ "start": {
+ "line": 41,
+ "column": 4
+ },
+ "end": {
+ "line": 45,
+ "column": 7
+ }
+ }
+ },
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "CallExpression",
+ "callee": {
+ "type": "Identifier",
+ "name": "iteratee",
+ "range": [
+ 1557,
+ 1565
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 12
+ }
+ }
+ },
+ "arguments": [
+ {
+ "type": "Identifier",
+ "name": "next",
+ "range": [
+ 1566,
+ 1570
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 13
+ },
+ "end": {
+ "line": 46,
+ "column": 17
+ }
+ }
+ }
+ ],
+ "range": [
+ 1557,
+ 1571
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 18
+ }
+ }
+ },
+ "range": [
+ 1557,
+ 1572
+ ],
+ "loc": {
+ "start": {
+ "line": 46,
+ "column": 4
+ },
+ "end": {
+ "line": 46,
+ "column": 19
+ }
+ }
+ }
+ ],
+ "range": [
+ 1279,
+ 1574
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 57
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ }
+ },
+ "generator": false,
+ "expression": false,
+ "range": [
+ 1237,
+ 1574
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 15
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} iteratee - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 37,
+ "column": 3
+ }
+ }
+ }
+ ],
+ "trailingComments": []
+ },
+ "range": [
+ 1222,
+ 1574
+ ],
+ "loc": {
+ "start": {
+ "line": 38,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "leadingComments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} iteratee - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 37,
+ "column": 3
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "sourceType": "module",
+ "range": [
+ 0,
+ 1574
+ ],
+ "loc": {
+ "start": {
+ "line": 1,
+ "column": 0
+ },
+ "end": {
+ "line": 47,
+ "column": 1
+ }
+ },
+ "comments": [
+ {
+ "type": "Block",
+ "value": "*\n * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} iteratee - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n ",
+ "range": [
+ 65,
+ 1221
+ ],
+ "loc": {
+ "start": {
+ "line": 4,
+ "column": 0
+ },
+ "end": {
+ "line": 37,
+ "column": 3
+ }
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/docs/badge.svg b/docs/badge.svg
new file mode 100644
index 0000000..aece31b
--- /dev/null
+++ b/docs/badge.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="102" height="20">
+ <script/>
+ <linearGradient id="a" x2="0" y2="100%">
+ <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
+ <stop offset="1" stop-opacity=".1"/>
+ </linearGradient>
+ <rect rx="3" width="102" height="20" fill="#555"/>
+ <rect rx="3" x="64" width="38" height="20" fill="#dab226"/>
+ <path fill="#dab226" d="M64 0h4v20h-4z"/>
+ <rect rx="3" width="102" height="20" fill="url(#a)"/>
+ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
+ <text x="32" y="15" fill="#010101" fill-opacity=".3">document</text>
+ <text x="32" y="14">document</text>
+ <text x="82.5" y="15" fill="#010101" fill-opacity=".3">64%</text>
+ <text x="82.5" y="14">64%</text>
+ </g>
+</svg>
diff --git a/docs/coverage.json b/docs/coverage.json
new file mode 100644
index 0000000..73a9205
--- /dev/null
+++ b/docs/coverage.json
@@ -0,0 +1,297 @@
+{
+ "coverage": "64.81%",
+ "expectCount": 54,
+ "actualCount": 35,
+ "files": {
+ "lib/internal/applyEach.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 4
+ ]
+ },
+ "lib/asyncify.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/auto.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/autoInject.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/cargo.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/compose.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/concat.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 1
+ ]
+ },
+ "lib/internal/consoleFunc.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 4
+ ]
+ },
+ "lib/doDuring.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/doLimit.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 1
+ ]
+ },
+ "lib/internal/doParallel.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/internal/doParallelLimit.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/internal/doSeries.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/doUntil.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/doWhilst.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/during.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/eachLimit.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/eachOfLimit.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/ensureAsync.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/setImmediate.js": {
+ "expectCount": 4,
+ "actualCount": 0,
+ "undocumentLines": [
+ 8,
+ 6,
+ 5,
+ 12
+ ]
+ },
+ "lib/forever.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/getIterator.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/internal/initialParams.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/internal/iterator.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 5
+ ]
+ },
+ "lib/iterator.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/mapValuesLimit.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/memoize.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/notId.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 1
+ ]
+ },
+ "lib/internal/once.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 1
+ ]
+ },
+ "lib/internal/onlyOnce.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 1
+ ]
+ },
+ "lib/parallelLimit.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/priorityQueue.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/queue.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/queue.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 10
+ ]
+ },
+ "lib/race.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/reduce.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/reduceRight.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/reflect.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/reflectAll.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/internal/reject.js": {
+ "expectCount": 1,
+ "actualCount": 0,
+ "undocumentLines": [
+ 3
+ ]
+ },
+ "lib/retry.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/retryable.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/series.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/sortBy.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/timesLimit.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/timeout.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/transform.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/unmemoize.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/until.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/waterfall.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ },
+ "lib/whilst.js": {
+ "expectCount": 1,
+ "actualCount": 1,
+ "undocumentLines": []
+ }
+ }
+} \ No newline at end of file
diff --git a/docs/css/prettify-tomorrow.css b/docs/css/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/docs/css/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+ color: #4d4d4c; }
+
+@media screen {
+ /* string content */
+ .str {
+ color: #718c00; }
+
+ /* a keyword */
+ .kwd {
+ color: #8959a8; }
+
+ /* a comment */
+ .com {
+ color: #8e908c; }
+
+ /* a type name */
+ .typ {
+ color: #4271ae; }
+
+ /* a literal value */
+ .lit {
+ color: #f5871f; }
+
+ /* punctuation */
+ .pun {
+ color: #4d4d4c; }
+
+ /* lisp open bracket */
+ .opn {
+ color: #4d4d4c; }
+
+ /* lisp close bracket */
+ .clo {
+ color: #4d4d4c; }
+
+ /* a markup tag name */
+ .tag {
+ color: #c82829; }
+
+ /* a markup attribute name */
+ .atn {
+ color: #f5871f; }
+
+ /* a markup attribute value */
+ .atv {
+ color: #3e999f; }
+
+ /* a declaration */
+ .dec {
+ color: #f5871f; }
+
+ /* a variable name */
+ .var {
+ color: #c82829; }
+
+ /* a function name */
+ .fun {
+ color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+ .str {
+ color: #060; }
+
+ .kwd {
+ color: #006;
+ font-weight: bold; }
+
+ .com {
+ color: #600;
+ font-style: italic; }
+
+ .typ {
+ color: #404;
+ font-weight: bold; }
+
+ .lit {
+ color: #044; }
+
+ .pun, .opn, .clo {
+ color: #440; }
+
+ .tag {
+ color: #006;
+ font-weight: bold; }
+
+ .atn {
+ color: #404; }
+
+ .atv {
+ color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+ background: white;
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ font-size: 12px;
+ line-height: 1.5;
+ border: 1px solid #ccc;
+ padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+ margin-top: 0;
+ margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+ /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+ /* */ }
diff --git a/docs/css/style.css b/docs/css/style.css
new file mode 100644
index 0000000..baf349f
--- /dev/null
+++ b/docs/css/style.css
@@ -0,0 +1,944 @@
+@import url(https://fonts.googleapis.com/css?family=Roboto:400,300,700);
+
+* {
+ margin: 0;
+ padding: 0;
+ text-decoration: none;
+}
+
+html
+{
+ font-family: 'Roboto', sans-serif;
+ overflow: auto;
+ font-size: 14px;
+ /*color: #4d4e53;*/
+ color: rgba(0, 0, 0, .68);
+ background-color: #fff;
+}
+
+a {
+ /*color: #0095dd;*/
+ /*color:rgb(37, 138, 175);*/
+ color: #039BE5;
+}
+
+code a:hover {
+ text-decoration: underline;
+}
+
+ul, ol {
+ padding-left: 20px;
+}
+
+ul li {
+ list-style: disc;
+ margin: 4px 0;
+}
+
+ol li {
+ margin: 4px 0;
+}
+
+h1 {
+ margin-bottom: 10px;
+ font-size: 34px;
+ font-weight: 300;
+ border-bottom: solid 1px #ddd;
+}
+
+h2 {
+ margin-top: 24px;
+ margin-bottom: 10px;
+ font-size: 20px;
+ border-bottom: solid 1px #ddd;
+ font-weight: 300;
+}
+
+h3 {
+ position: relative;
+ font-size: 16px;
+ margin-bottom: 12px;
+ background-color: #E2E2E2;
+ padding: 4px;
+ font-weight: 300;
+}
+
+del {
+ text-decoration: line-through;
+}
+
+p {
+ margin-bottom: 15px;
+ line-height: 1.5;
+}
+
+p > code {
+ background-color: #f5f5f5;
+ border-radius: 3px;
+}
+
+pre > code {
+ display: block;
+}
+
+pre.prettyprint, pre > code {
+ padding: 4px;
+ margin: 1em 0;
+ background-color: #f5f5f5;
+ border-radius: 3px;
+}
+
+pre.prettyprint > code {
+ margin: 0;
+}
+
+p > code,
+li > code {
+ padding: 0 4px;
+ border-radius: 3px;
+}
+
+.import-path pre.prettyprint,
+.import-path pre.prettyprint code {
+ margin: 0;
+ padding: 0;
+ border: none;
+ background: white;
+}
+
+.layout-container {
+ /*display: flex;*/
+ /*flex-direction: row;*/
+ /*justify-content: flex-start;*/
+ /*align-items: stretch;*/
+}
+
+.layout-container > header {
+ height: 40px;
+ line-height: 40px;
+ font-size: 16px;
+ padding: 0 10px;
+ margin: 0;
+ position: fixed;
+ width: 100%;
+ z-index: 1;
+ background-color: white;
+ top: 0;
+ border-bottom: solid 1px #E02130;
+}
+.layout-container > header > a{
+ margin: 0 5px;
+}
+
+.layout-container > header > a.repo-url-github {
+ font-size: 0;
+ display: inline-block;
+ width: 20px;
+ height: 38px;
+ background: url("../image/github.png") no-repeat center;
+ background-size: 20px;
+ vertical-align: top;
+}
+
+.navigation {
+ position: fixed;
+ top: 0;
+ left: 0;
+ box-sizing: border-box;
+ width: 250px;
+ height: 100%;
+ padding-top: 40px;
+ padding-left: 15px;
+ padding-bottom: 2em;
+ margin-top:1em;
+ overflow-x: scroll;
+ box-shadow: rgba(255, 255, 255, 1) -1px 0 0 inset;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.navigation ul {
+ padding: 0;
+}
+
+.navigation li {
+ list-style: none;
+ margin: 4px 0;
+ white-space: nowrap;
+}
+
+.navigation .nav-dir-path {
+ margin-top: 0.7em;
+ margin-bottom: 0.25em;
+ font-size: 0.8em;
+ color: #aaa;
+}
+
+.kind-class,
+.kind-interface,
+.kind-function,
+.kind-typedef,
+.kind-variable,
+.kind-external {
+ margin-left: 0.75em;
+ width: 1.2em;
+ height: 1.2em;
+ display: inline-block;
+ text-align: center;
+ border-radius: 0.2em;
+ margin-right: 0.2em;
+ font-weight: bold;
+}
+
+.kind-class {
+ color: #009800;
+ background-color: #bfe5bf;
+}
+
+.kind-interface {
+ color: #fbca04;
+ background-color: #fef2c0;
+}
+
+.kind-function {
+ color: #6b0090;
+ background-color: #d6bdde;
+}
+
+.kind-variable {
+ color: #eb6420;
+ background-color: #fad8c7;
+}
+
+.kind-typedef {
+ color: #db001e;
+ background-color: #edbec3;
+}
+
+.kind-external {
+ color: #0738c3;
+ background-color: #bbcbea;
+}
+
+h1 .version,
+h1 .url a {
+ font-size: 14px;
+ color: #aaa;
+}
+
+.content {
+ margin-top: 40px;
+ margin-left: 250px;
+ padding: 10px 50px 10px 20px;
+}
+
+.header-notice {
+ font-size: 14px;
+ color: #aaa;
+ margin: 0;
+}
+
+.expression-extends .prettyprint {
+ margin-left: 10px;
+ background: white;
+}
+
+.extends-chain {
+ border-bottom: 1px solid#ddd;
+ padding-bottom: 10px;
+ margin-bottom: 10px;
+}
+
+.extends-chain span:nth-of-type(1) {
+ padding-left: 10px;
+}
+
+.extends-chain > div {
+ margin: 5px 0;
+}
+
+.description table {
+ font-size: 14px;
+ border-spacing: 0;
+ border: 0;
+ border-collapse: collapse;
+}
+
+.description thead {
+ background: #999;
+ color: white;
+}
+
+.description table td,
+.description table th {
+ border: solid 1px #ddd;
+ padding: 4px;
+ font-weight: normal;
+}
+
+.flat-list ul {
+ padding-left: 0;
+}
+
+.flat-list li {
+ display: inline;
+ list-style: none;
+}
+
+table.summary {
+ width: 100%;
+ margin: 10px 0;
+ border-spacing: 0;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.summary thead {
+ background: #999;
+ color: white;
+}
+
+table.summary td {
+ border: solid 1px #ddd;
+ padding: 4px 10px;
+}
+
+table.summary tbody td:nth-child(1) {
+ text-align: right;
+ white-space: nowrap;
+ min-width: 64px;
+ vertical-align: top;
+}
+
+table.summary tbody td:nth-child(2) {
+ width: 100%;
+ border-right: none;
+}
+
+table.summary tbody td:nth-child(3) {
+ white-space: nowrap;
+ border-left: none;
+ vertical-align: top;
+}
+
+table.summary td > div:nth-of-type(2) {
+ padding-top: 4px;
+ padding-left: 15px;
+}
+
+table.summary td p {
+ margin-bottom: 0;
+}
+
+.inherited-summary thead td {
+ padding-left: 2px;
+}
+
+.inherited-summary thead a {
+ color: white;
+}
+
+.inherited-summary .summary tbody {
+ display: none;
+}
+
+.inherited-summary .summary .toggle {
+ padding: 0 4px;
+ font-size: 12px;
+ cursor: pointer;
+}
+.inherited-summary .summary .toggle.closed:before {
+ content: "▶";
+}
+.inherited-summary .summary .toggle.opened:before {
+ content: "▼";
+}
+
+.member, .method {
+ margin-bottom: 24px;
+}
+
+table.params {
+ width: 100%;
+ margin: 10px 0;
+ border-spacing: 0;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.params thead {
+ background: #eee;
+ color: #aaa;
+}
+
+table.params td {
+ padding: 4px;
+ border: solid 1px #ddd;
+}
+
+table.params td p {
+ margin: 0;
+}
+
+.content .detail > * {
+ margin: 15px 0;
+}
+
+.content .detail > h3 {
+ color: black;
+}
+
+.content .detail > div {
+ margin-left: 10px;
+}
+
+.content .detail > .import-path {
+ margin-top: -8px;
+}
+
+.content .detail + .detail {
+ margin-top: 30px;
+}
+
+.content .detail .throw td:first-child {
+ padding-right: 10px;
+}
+
+.content .detail h4 + :not(pre) {
+ padding-left: 0;
+ margin-left: 10px;
+}
+
+.content .detail h4 + ul li {
+ list-style: none;
+}
+
+.return-param * {
+ display: inline;
+}
+
+.argument-params {
+ margin-bottom: 20px;
+}
+
+.return-type {
+ padding-right: 10px;
+ font-weight: normal;
+}
+
+.return-desc {
+ margin-left: 10px;
+ margin-top: 4px;
+}
+
+.return-desc p {
+ margin: 0;
+}
+
+.deprecated, .experimental, .instance-docs {
+ border-left: solid 5px orange;
+ padding-left: 4px;
+ margin: 4px 0;
+}
+
+tr.listen p,
+tr.throw p,
+tr.emit p{
+ margin-bottom: 10px;
+}
+
+.version, .since {
+ color: #aaa;
+}
+
+h3 .right-info {
+ position: absolute;
+ right: 4px;
+ font-size: 14px;
+}
+
+.version + .since:before {
+ content: '| ';
+}
+
+.see {
+ margin-top: 10px;
+}
+
+.see h4 {
+ margin: 4px 0;
+}
+
+.content .detail h4 + .example-doc {
+ margin: 6px 0;
+}
+
+.example-caption {
+ position: relative;
+ bottom: -1px;
+ display: inline-block;
+ padding: 4px;
+ font-style: italic;
+ background-color: #f5f5f5;
+ font-weight: bold;
+ border-radius: 3px;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.example-caption + pre.source-code {
+ margin-top: 0;
+ border-top-left-radius: 0;
+}
+
+footer, .file-footer {
+ text-align: right;
+ font-style: italic;
+ font-weight: 100;
+ font-size: 13px;
+ margin-right: 50px;
+ margin-left: 270px;
+ border-top: 1px solid #ddd;
+ padding-top: 30px;
+ margin-top: 20px;
+ padding-bottom: 10px;
+}
+
+pre.source-code {
+ background: #f5f5f5;
+ padding: 4px;
+}
+
+pre.raw-source-code > code {
+ padding: 0;
+ margin: 0;
+}
+
+pre.source-code.line-number {
+ padding: 0;
+}
+
+pre.source-code ol {
+ background: #eee;
+ padding-left: 40px;
+}
+
+pre.source-code li {
+ background: white;
+ padding-left: 4px;
+ list-style: decimal;
+ margin: 0;
+}
+
+pre.source-code.line-number li.active {
+ background: rgb(255, 255, 150);
+}
+
+pre.source-code.line-number li.error-line {
+ background: #ffb8bf;
+}
+
+table.files-summary {
+ width: 100%;
+ margin: 10px 0;
+ border-spacing: 0;
+ border: 0;
+ border-collapse: collapse;
+ text-align: right;
+}
+
+table.files-summary tbody tr:hover {
+ background: #eee;
+}
+
+table.files-summary td:first-child,
+table.files-summary td:nth-of-type(2) {
+ text-align: left;
+}
+
+table.files-summary[data-use-coverage="false"] td.coverage {
+ display: none;
+}
+
+table.files-summary thead {
+ background: #999;
+ color: white;
+}
+
+table.files-summary td {
+ border: solid 1px #ddd;
+ padding: 4px 10px;
+ vertical-align: top;
+}
+
+table.files-summary td.identifiers > span {
+ display: block;
+ margin-top: 4px;
+}
+table.files-summary td.identifiers > span:first-child {
+ margin-top: 0;
+}
+
+table.files-summary .coverage-count {
+ font-size: 12px;
+ color: #aaa;
+ display: inline-block;
+ min-width: 40px;
+}
+
+.total-coverage-count {
+ position: relative;
+ bottom: 2px;
+ font-size: 12px;
+ color: #666;
+ font-weight: 500;
+ padding-left: 5px;
+}
+
+table.test-summary thead {
+ background: #999;
+ color: white;
+}
+
+table.test-summary thead .test-description {
+ width: 50%;
+}
+
+table.test-summary {
+ width: 100%;
+ margin: 10px 0;
+ border-spacing: 0;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.test-summary thead .test-count {
+ width: 3em;
+}
+
+table.test-summary tbody tr:hover {
+ background-color: #eee;
+}
+
+table.test-summary td {
+ border: solid 1px #ddd;
+ padding: 4px 10px;
+ vertical-align: top;
+}
+
+table.test-summary td p {
+ margin: 0;
+}
+
+table.test-summary tr.test-describe .toggle {
+ display: inline-block;
+ float: left;
+ margin-right: 4px;
+ cursor: pointer;
+}
+
+table.test-summary tr.test-describe .toggle.opened:before {
+ content: '▼';
+}
+
+table.test-summary tr.test-describe .toggle.closed:before {
+ content: '▶';
+}
+
+table.test-summary .test-target > span {
+ display: block;
+ margin-top: 4px;
+}
+table.test-summary .test-target > span:first-child {
+ margin-top: 0;
+}
+
+.inner-link-active {
+ background: rgb(255, 255, 150);
+}
+
+/* search box */
+.search-box {
+ position: absolute;
+ top: 10px;
+ right: 50px;
+ padding-right: 8px;
+ padding-bottom: 10px;
+ line-height: normal;
+ font-size: 12px;
+}
+
+.search-box img {
+ width: 20px;
+ vertical-align: top;
+}
+
+.search-input {
+ display: inline;
+ visibility: hidden;
+ width: 0;
+ padding: 2px;
+ height: 1.5em;
+ outline: none;
+ background: transparent;
+ border: 1px #0af;
+ border-style: none none solid none;
+ vertical-align: bottom;
+}
+
+.search-input-edge {
+ display: none;
+ width: 1px;
+ height: 5px;
+ background-color: #0af;
+ vertical-align: bottom;
+}
+
+.search-result {
+ position: absolute;
+ display: none;
+ height: 600px;
+ width: 100%;
+ padding: 0;
+ margin-top: 5px;
+ margin-left: 24px;
+ background: white;
+ box-shadow: 1px 1px 4px rgb(0,0,0);
+ white-space: nowrap;
+ overflow-y: scroll;
+}
+
+.search-result-import-path {
+ color: #aaa;
+ font-size: 12px;
+}
+
+.search-result li {
+ list-style: none;
+ padding: 2px 4px;
+}
+
+.search-result li a {
+ display: block;
+}
+
+.search-result li.selected {
+ background: #ddd;
+}
+
+.search-result li.search-separator {
+ background: rgb(37, 138, 175);
+ color: white;
+}
+
+.search-box.active .search-input {
+ visibility: visible;
+ transition: width 0.2s ease-out;
+ width: 300px;
+}
+
+.search-box.active .search-input-edge {
+ display: inline-block;
+}
+
+/* coverage badge */
+.esdoc-coverage {
+ display: inline-block;
+ height: 20px;
+ vertical-align: top;
+}
+
+h1 .esdoc-coverage {
+ position: relative;
+ top: -4px;
+}
+
+.esdoc-coverage-wrap {
+ color: white;
+ font-size: 12px;
+ font-weight: 500;
+}
+
+.esdoc-coverage-label {
+ padding: 3px 4px 3px 6px;
+ background: linear-gradient(to bottom, #5e5e5e 0%,#4c4c4c 100%);
+ border-radius: 4px 0 0 4px;
+ display: inline-block;
+ height: 20px;
+ box-sizing: border-box;
+ line-height: 14px;
+}
+
+.esdoc-coverage-ratio {
+ padding: 3px 6px 3px 4px;
+ border-radius: 0 4px 4px 0;
+ display: inline-block;
+ height: 20px;
+ box-sizing: border-box;
+ line-height: 14px;
+}
+
+.esdoc-coverage-low {
+ background: linear-gradient(to bottom, #db654f 0%,#c9533d 100%);
+}
+
+.esdoc-coverage-middle {
+ background: linear-gradient(to bottom, #dab226 0%,#c9a179 100%);
+}
+
+.esdoc-coverage-high {
+ background: linear-gradient(to bottom, #4fc921 0%,#3eb810 100%);
+}
+
+.github-markdown .manual-toc {
+ padding-left: 0;
+}
+
+/** manual */
+
+.manual-root .navigation {
+ padding-left: 0;
+}
+
+.navigation .manual-toc-title {
+ margin: 0;
+ padding: 0.5em 0 0.5em 1em;
+ border: none;
+ font-size: 1em;
+ font-weight: normal;
+}
+
+.navigation .manual-toc-title:first-child {
+ margin-top: 0;
+}
+
+.navigation .manual-toc {
+ display: none;
+ margin-left: 0.5em;
+ margin-top: -0.25em;
+}
+
+.github-markdown .manual-toc-title a {
+ color: inherit;
+}
+
+.manual-breadcrumb-list {
+ font-size: 0.8em;
+ margin-bottom: 1em;
+}
+
+.manual-toc-title a:hover {
+ color: #039BE5;
+}
+
+.manual-toc li {
+ margin: 0.75em 0;
+ list-style-type: none;
+}
+
+.manual-toc .indent-h1 {
+ margin-left: 0;
+}
+.manual-toc .indent-h2 {
+ margin-left: 1em;
+}
+.manual-toc .indent-h3 {
+ margin-left: 3em;
+}
+.manual-toc .indent-h4 {
+ margin-left: 4em;
+}
+.manual-toc .indent-h5 {
+ margin-left: 5em;
+}
+
+.manual-nav li {
+ margin: 0.75em 0;
+}
+
+.manual-dot {
+ margin-left: 0.75em;
+ width: 0.6em;
+ height: 0.6em;
+ display: inline-block;
+ border-radius: 0.3em;
+ margin-right: 0.3em;
+ background-color: #bfe5bf;
+}
+
+/* github markdown */
+.github-markdown {
+ font-size: 16px;
+}
+
+.github-markdown h1,
+.github-markdown h2,
+.github-markdown h3,
+.github-markdown h4,
+.github-markdown h5 {
+ margin-top: 1em;
+ margin-bottom: 16px;
+ font-weight: bold;
+ padding: 0;
+}
+
+.github-markdown h1:nth-of-type(1) {
+ margin-top: 0;
+}
+
+.github-markdown h1 {
+ font-size: 2em;
+ padding-bottom: 0.3em;
+}
+
+.github-markdown h2 {
+ font-size: 1.75em;
+ padding-bottom: 0.3em;
+}
+
+.github-markdown h3 {
+ font-size: 1.5em;
+ background-color: transparent;
+}
+
+.github-markdown h4 {
+ font-size: 1.25em;
+}
+
+.github-markdown h5 {
+ font-size: 1em;
+}
+
+.github-markdown ul, .github-markdown ol {
+ padding-left: 2em;
+}
+
+.github-markdown pre > code {
+ font-size: 0.85em;
+}
+
+.github-markdown table {
+ margin-bottom: 1em;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+.github-markdown table tr {
+ background-color: #fff;
+ border-top: 1px solid #ccc;
+}
+
+.github-markdown table th,
+.github-markdown table td {
+ padding: 6px 13px;
+ border: 1px solid #ddd;
+}
+
+.github-markdown table tr:nth-child(2n) {
+ background-color: #f8f8f8;
+}
+
+/** badge(.svg) does not have border */
+.github-markdown img:not([src*=".svg"]) {
+ max-width: 100%;
+ box-shadow: 1px 1px 1px rgba(0,0,0,0.5);
+}
diff --git a/docs/dump.json b/docs/dump.json
new file mode 100644
index 0000000..2155876
--- /dev/null
+++ b/docs/dump.json
@@ -0,0 +1,5805 @@
+[
+ {
+ "__docId__": 0,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/apply.js",
+ "memberof": null,
+ "longname": "lib/apply.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rest from 'lodash/rest';\n\n/**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\nexport default rest(function(fn, args) {\n return rest(function(callArgs) {\n return fn.apply(null, args.concat(callArgs));\n });\n});\n"
+ },
+ {
+ "__docId__": 1,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/applyEach.js",
+ "memberof": null,
+ "longname": "lib/applyEach.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import applyEach from './internal/applyEach';\nimport map from './map';\n\n/**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, then it will return a function which lets you pass in the\n * arguments as if it were a single function call.\n *\n * @name applyEach\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n */\nexport default applyEach(map);\n"
+ },
+ {
+ "__docId__": 2,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/applyEachSeries.js",
+ "memberof": null,
+ "longname": "lib/applyEachSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import applyEach from './internal/applyEach';\nimport mapSeries from './mapSeries';\n\n/**\n * The same as `applyEach` but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf async\n * @see async.applyEach\n * @category Control Flow\n * @param {Array|Object} fns - A collection of asynchronous functions to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n */\nexport default applyEach(mapSeries);\n"
+ },
+ {
+ "__docId__": 3,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/asyncify.js",
+ "memberof": null,
+ "longname": "lib/asyncify.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import isObject from 'lodash/isObject';\nimport initialParams from './internal/initialParams';\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2016 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf async\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function to convert to an\n * asynchronous function.\n * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with\n * (callback).\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es6 example\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nexport default function asyncify(func) {\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (isObject(result) && typeof result.then === 'function') {\n result.then(function(value) {\n callback(null, value);\n })['catch'](function(err) {\n callback(err.message ? err : new Error(err));\n });\n } else {\n callback(null, result);\n }\n });\n}\n"
+ },
+ {
+ "__docId__": 4,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "asyncify",
+ "memberof": "lib/asyncify.js",
+ "longname": "lib/asyncify.js~asyncify",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/asyncify.js",
+ "importStyle": "asyncify",
+ "description": "Take a sync function and make it async, passing its return value to a\ncallback. This is useful for plugging sync functions into a waterfall,\nseries, or other async functions. Any arguments passed to the generated\nfunction will be passed to the wrapped function (except for the final\ncallback argument). Errors thrown will be passed to the callback.\n\nIf the function passed to `asyncify` returns a Promise, that promises's\nresolved/rejected state will be used to call the callback, rather than simply\nthe synchronous return value.\n\nThis also means you can asyncify ES2016 `async` functions.",
+ "examples": [
+ "\n// passing a regular synchronous function\nasync.waterfall([\n async.apply(fs.readFile, filename, \"utf8\"),\n async.asyncify(JSON.parse),\n function (data, next) {\n // data is the result of parsing the text.\n // If there was a parsing error, it would have been caught.\n }\n], callback);\n\n// passing a function returning a promise\nasync.waterfall([\n async.apply(fs.readFile, filename, \"utf8\"),\n async.asyncify(function (contents) {\n return db.model.create(contents);\n }),\n function (model, next) {\n // `model` is the instantiated model object.\n // If there was an error, this function would be skipped.\n }\n], callback);\n\n// es6 example\nvar q = async.queue(async.asyncify(async function(file) {\n var intermediateStep = await processFile(file);\n return await somePromise(intermediateStep)\n}));\n\nq.push(files);"
+ ],
+ "lineNumber": 58,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "asyncify"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "wrapSync"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} An asynchronous wrapper of the `func`. To be invoked with\n(callback)."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "func",
+ "description": "The synchronous function to convert to an\nasynchronous function."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "An asynchronous wrapper of the `func`. To be invoked with\n(callback)."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 5,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/auto.js",
+ "memberof": null,
+ "longname": "lib/auto.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayEach from 'lodash/_arrayEach';\nimport forOwn from 'lodash/forOwn';\nimport indexOf from 'lodash/_baseIndexOf';\nimport isArray from 'lodash/isArray';\nimport okeys from 'lodash/keys';\nimport noop from 'lodash/noop';\nimport once from './internal/once';\nimport rest from 'lodash/rest';\n\nimport onlyOnce from './internal/onlyOnce';\n\n/**\n * Determines the best order for running the functions in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the functions pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * Functions also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the function itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n */\nexport default function (tasks, concurrency, callback) {\n if (typeof concurrency === 'function') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || noop);\n var keys = okeys(tasks);\n var numTasks = keys.length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var hasError = false;\n\n var listeners = {};\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n forOwn(tasks, function (task, key) {\n if (!isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n arrayEach(dependencies, function (dependencyName) {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, function () {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(function () {\n runTask(key, task);\n });\n }\n\n function processQueue() {\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n arrayEach(taskListeners, function (fn) {\n fn();\n });\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce(rest(function(err, args) {\n runningTasks--;\n if (args.length <= 1) {\n args = args[0];\n }\n if (err) {\n var safeResults = {};\n forOwn(results, function(val, rkey) {\n safeResults[rkey] = val;\n });\n safeResults[key] = args;\n hasError = true;\n listeners = [];\n\n callback(err, safeResults);\n } else {\n results[key] = args;\n taskComplete(key);\n }\n }));\n\n runningTasks++;\n var taskFn = task[task.length - 1];\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n arrayEach(getDependents(currentTask), function (dependent) {\n if (!(--uncheckedDependencies[dependent])) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n forOwn(tasks, function (task, key) {\n if (isArray(task) && indexOf(task, taskName, 0) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n}\n"
+ },
+ {
+ "__docId__": 6,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "auto",
+ "memberof": "lib/auto.js",
+ "longname": "lib/auto.js~auto",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/auto.js",
+ "importStyle": "auto",
+ "description": "Determines the best order for running the functions in `tasks`, based on\ntheir requirements. Each function can optionally depend on other functions\nbeing completed first, and each function is run as soon as its requirements\nare satisfied.\n\nIf any of the functions pass an error to their callback, the `auto` sequence\nwill stop. Further tasks will not execute (so any other functions depending\non it will not run), and the main `callback` is immediately called with the\nerror.\n\nFunctions also receive an object containing the results of functions which\nhave completed so far as the first argument, if they have dependencies. If a\ntask function has no dependencies, it will only be passed a callback.",
+ "examples": [
+ "\nasync.auto({\n // this function will just be passed a callback\n readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n showData: ['readData', function(results, cb) {\n // results.readData is the file's contents\n // ...\n }]\n}, callback);\n\nasync.auto({\n get_data: function(callback) {\n console.log('in get_data');\n // async code to get some data\n callback(null, 'data', 'converted to array');\n },\n make_folder: function(callback) {\n console.log('in make_folder');\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, 'folder');\n },\n write_file: ['get_data', 'make_folder', function(results, callback) {\n console.log('in write_file', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, 'filename');\n }],\n email_link: ['write_file', function(results, callback) {\n console.log('in email_link', JSON.stringify(results));\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n callback(null, {'file':results.write_file, 'email':'user@example.com'});\n }]\n}, function(err, results) {\n console.log('err = ', err);\n console.log('results = ', results);\n});"
+ ],
+ "lineNumber": 90,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "auto"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "undefined"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "An object. Each of its properties is either a\nfunction or an array of requirements, with the function itself the last item\nin the array. The object's key of a property serves as the name of the task\ndefined by that property, i.e. can be used when specifying requirements for\nother tasks. The function receives one or two arguments:\n* a `results` object, containing the results of the previously executed\n functions, only passed if the task has any dependencies,\n* a `callback(err, result)` function, which must be called when finished,\n passing an `error` (which can be `null`) and the result of the function's\n execution."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": true,
+ "defaultValue": "Infinity",
+ "defaultRaw": "Infinity",
+ "name": "concurrency",
+ "description": "An optional `integer` for\ndetermining the maximum number of tasks that can be run in parallel. By\ndefault, as many as possible."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback which is called when all\nthe tasks have been completed. It receives the `err` argument if any `tasks`\npass an error to their callback. Results are always returned; however, if an\nerror occurs, no further `tasks` will be performed, and the results object\nwill only contain partial results. Invoked with (err, results)."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "description": "undefined"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 7,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/autoInject.js",
+ "memberof": null,
+ "longname": "lib/autoInject.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import auto from './auto';\nimport forOwn from 'lodash/forOwn';\nimport arrayMap from 'lodash/_arrayMap';\nimport clone from 'lodash/_copyArray';\nimport isArray from 'lodash/isArray';\nimport trim from 'lodash/trim';\n\nvar argsRegex = /^(function[^\\(]*)?\\(?\\s*([^\\)=]*)/m;\n\nfunction parseParams(func) {\n return trim(func.toString().match(argsRegex)[2]).split(/\\s*\\,\\s*/);\n}\n\n/**\n * A dependency-injected version of the {@link async.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to {@link async.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf async\n * @see async.auto\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is a function of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. The remaining parameters are task names\n * whose results you are interested in. This callback will only be called when\n * all tasks have finished or an error has occurred, and so do not specify\n * dependencies in the same way as `tasks` do. If an error occurs, no further\n * `tasks` will be performed, and `results` will only be valid for those tasks\n * which managed to complete. Invoked with (err, [results...]).\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection. The final\n * // results callback can be provided as an array in the same way.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, ['email_link', function(err, email_link) {\n * console.log('err = ', err);\n * console.log('email_link = ', email_link);\n * }]);\n */\nexport default function autoInject(tasks, callback) {\n var newTasks = {};\n\n forOwn(tasks, function (taskFn, key) {\n var params;\n\n if (isArray(taskFn)) {\n params = clone(taskFn);\n taskFn = params.pop();\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (taskFn.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n } else if (taskFn.length === 1) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = arrayMap(params, function (name) {\n return results[name];\n });\n newArgs.push(taskCb);\n taskFn.apply(null, newArgs);\n }\n });\n\n auto(newTasks, callback);\n}\n"
+ },
+ {
+ "__docId__": 8,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "argsRegex",
+ "memberof": "lib/autoInject.js",
+ "longname": "lib/autoInject.js~argsRegex",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/autoInject.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 8,
+ "undocument": true,
+ "type": {
+ "types": [
+ "object"
+ ]
+ }
+ },
+ {
+ "__docId__": 9,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "parseParams",
+ "memberof": "lib/autoInject.js",
+ "longname": "lib/autoInject.js~parseParams",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/autoInject.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 10,
+ "undocument": true,
+ "params": [
+ {
+ "name": "func",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 10,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "autoInject",
+ "memberof": "lib/autoInject.js",
+ "longname": "lib/autoInject.js~autoInject",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/autoInject.js",
+ "importStyle": "autoInject",
+ "description": "A dependency-injected version of the {@link async.auto} function. Dependent\ntasks are specified as parameters to the function, after the usual callback\nparameter, with the parameter names matching the names of the tasks it\ndepends on. This can provide even more readable task graphs which can be\neasier to maintain.\n\nIf a final callback is specified, the task results are similarly injected,\nspecified as named parameters after the initial error parameter.\n\nThe autoInject function is purely syntactic sugar and its semantics are\notherwise equivalent to {@link async.auto}.",
+ "examples": [
+ "\n// The example from `auto` can be rewritten as follows:\nasync.autoInject({\n get_data: function(callback) {\n // async code to get some data\n callback(null, 'data', 'converted to array');\n },\n make_folder: function(callback) {\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n callback(null, 'folder');\n },\n write_file: function(get_data, make_folder, callback) {\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, 'filename');\n },\n email_link: function(write_file, callback) {\n // once the file is written let's email a link to it...\n // write_file contains the filename returned by write_file.\n callback(null, {'file':write_file, 'email':'user@example.com'});\n }\n}, function(err, email_link) {\n console.log('err = ', err);\n console.log('email_link = ', email_link);\n});\n\n// If you are using a JS minifier that mangles parameter names, `autoInject`\n// will not work with plain functions, since the parameter names will be\n// collapsed to a single letter identifier. To work around this, you can\n// explicitly specify the names of the parameters your task function needs\n// in an array, similar to Angular.js dependency injection. The final\n// results callback can be provided as an array in the same way.\n\n// This still has an advantage over plain `auto`, since the results a task\n// depends on are still spread into arguments.\nasync.autoInject({\n //...\n write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n callback(null, 'filename');\n }],\n email_link: ['write_file', function(write_file, callback) {\n callback(null, {'file':write_file, 'email':'user@example.com'});\n }]\n //...\n}, ['email_link', function(err, email_link) {\n console.log('err = ', err);\n console.log('email_link = ', email_link);\n}]);"
+ ],
+ "see": [
+ "async.auto"
+ ],
+ "lineNumber": 100,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "autoInject"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "An object, each of whose properties is a function of\nthe form 'func([dependencies...], callback). The object's key of a property\nserves as the name of the task defined by that property, i.e. can be used\nwhen specifying requirements for other tasks.\n* The `callback` parameter is a `callback(err, result)` which must be called\n when finished, passing an `error` (which can be `null`) and the result of\n the function's execution. The remaining parameters name other tasks on\n which the task is dependent, and the results from those tasks are the\n arguments of those parameters."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback which is called when all\nthe tasks have been completed. It receives the `err` argument if any `tasks`\npass an error to their callback. The remaining parameters are task names\nwhose results you are interested in. This callback will only be called when\nall tasks have finished or an error has occurred, and so do not specify\ndependencies in the same way as `tasks` do. If an error occurs, no further\n`tasks` will be performed, and `results` will only be valid for those tasks\nwhich managed to complete. Invoked with (err, [results...])."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 11,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/cargo.js",
+ "memberof": null,
+ "longname": "lib/cargo.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import queue from './internal/queue';\n\n/**\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as {@link async.queue}.\n * @typedef {Object} CargoObject\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke with (task, [callback]).\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n */\n\n/**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [queue](#queue) passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing an array\n * of queued tasks, which must call its `callback(err)` argument when finished,\n * with an optional `err` argument. Invoked with (tasks, callback).\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n */\nexport default function cargo(worker, payload) {\n return queue(worker, 1, payload);\n}\n"
+ },
+ {
+ "__docId__": 12,
+ "kind": "typedef",
+ "static": true,
+ "variation": null,
+ "name": "CargoObject",
+ "memberof": "lib/cargo.js",
+ "longname": "lib/cargo.js~CargoObject",
+ "access": null,
+ "description": "A cargo of tasks for the worker function to complete. Cargo inherits all of\nthe same methods and event callbacks as {@link async.queue}.",
+ "properties": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "length",
+ "description": "A function returning the number of items\nwaiting to be processed. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "payload",
+ "description": "An `integer` for determining how many tasks\nshould be process per round. This property can be changed after a `cargo` is\ncreated to alter the payload on-the-fly."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "push",
+ "description": "Adds `task` to the `queue`. The callback is\ncalled once the `worker` has finished processing the task. Instead of a\nsingle task, an array of `tasks` can be submitted. The respective callback is\nused for every task in the list. Invoke with (task, [callback])."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "saturated",
+ "description": "A callback that is called when the\n`queue.length()` hits the concurrency and further tasks will be queued."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "empty",
+ "description": "A callback that is called when the last item\nfrom the `queue` is given to a `worker`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "drain",
+ "description": "A callback that is called when the last item\nfrom the `queue` has returned from the `worker`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "idle",
+ "description": "a function returning false if there are items\nwaiting or being processed, or true if not. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "pause",
+ "description": "a function that pauses the processing of tasks\nuntil `resume()` is called. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "resume",
+ "description": "a function that resumes the processing of\nqueued tasks when the queue is paused. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "kill",
+ "description": "a function that removes the `drain` callback and\nempties remaining tasks from the queue forcing it to go idle. Invoke with ()."
+ }
+ ],
+ "type": {
+ "types": [
+ "Object"
+ ],
+ "optional": false,
+ "name": "CargoObject"
+ }
+ },
+ {
+ "__docId__": 13,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "cargo",
+ "memberof": "lib/cargo.js",
+ "longname": "lib/cargo.js~cargo",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/cargo.js",
+ "importStyle": "cargo",
+ "description": "Creates a `cargo` object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the `payload` limit). If the\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is\ncalled. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\nfor how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.",
+ "examples": [
+ "\n// create a cargo object with payload 2\nvar cargo = async.cargo(function(tasks, callback) {\n for (var i=0; i<tasks.length; i++) {\n console.log('hello ' + tasks[i].name);\n }\n callback();\n}, 2);\n\n// add some items\ncargo.push({name: 'foo'}, function(err) {\n console.log('finished processing foo');\n});\ncargo.push({name: 'bar'}, function(err) {\n console.log('finished processing bar');\n});\ncargo.push({name: 'baz'}, function(err) {\n console.log('finished processing baz');\n});"
+ ],
+ "see": [
+ "async.queue"
+ ],
+ "lineNumber": 79,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "cargo"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{CargoObject} A cargo object to manage the tasks. Callbacks can\nattached as certain properties to listen for specific events during the\nlifecycle of the cargo and inner queue."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "worker",
+ "description": "An asynchronous function for processing an array\nof queued tasks, which must call its `callback(err)` argument when finished,\nwith an optional `err` argument. Invoked with (tasks, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": true,
+ "defaultValue": "Infinity",
+ "defaultRaw": "Infinity",
+ "name": "payload",
+ "description": "An optional `integer` for determining\nhow many tasks should be processed per round; if omitted, the default is\nunlimited."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "CargoObject"
+ ],
+ "spread": false,
+ "description": "A cargo object to manage the tasks. Callbacks can\nattached as certain properties to listen for specific events during the\nlifecycle of the cargo and inner queue."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 14,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/compose.js",
+ "memberof": null,
+ "longname": "lib/compose.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import seq from './seq';\n\nvar reverse = Array.prototype.reverse;\n\n/**\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n */\nexport default function compose(/* functions... */) {\n return seq.apply(null, reverse.call(arguments));\n}\n"
+ },
+ {
+ "__docId__": 15,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "reverse",
+ "memberof": "lib/compose.js",
+ "longname": "lib/compose.js~reverse",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/compose.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "type": {
+ "types": [
+ "*"
+ ]
+ }
+ },
+ {
+ "__docId__": 16,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "compose",
+ "memberof": "lib/compose.js",
+ "longname": "lib/compose.js~compose",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/compose.js",
+ "importStyle": "compose",
+ "description": "Creates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions `f()`, `g()`, and `h()` would produce the result\nof `f(g(h()))`, only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.",
+ "examples": [
+ "\nfunction add1(n, callback) {\n setTimeout(function () {\n callback(null, n + 1);\n }, 10);\n}\n\nfunction mul3(n, callback) {\n setTimeout(function () {\n callback(null, n * 3);\n }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\nadd1mul3(4, function (err, result) {\n // result now equals 15\n});"
+ ],
+ "lineNumber": 39,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "compose"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} an asynchronous function that is the composed\nasynchronous `functions`"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "...Function"
+ ],
+ "spread": true,
+ "optional": false,
+ "name": "functions",
+ "description": "the asynchronous functions to compose"
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "an asynchronous function that is the composed\nasynchronous `functions`"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 17,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/concat.js",
+ "memberof": null,
+ "longname": "lib/concat.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import concat from './internal/concat';\nimport doParallel from './internal/doParallel';\n\n/**\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n */\nexport default doParallel(concat);\n"
+ },
+ {
+ "__docId__": 18,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/concatSeries.js",
+ "memberof": null,
+ "longname": "lib/concatSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import concat from './internal/concat';\nimport doSeries from './internal/doSeries';\n\n/**\n * The same as `concat` but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf async\n * @see async.concat\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, results)` which must be called once\n * it has completed with an error (which can be `null`) and an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n */\nexport default doSeries(concat);\n"
+ },
+ {
+ "__docId__": 19,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/constant.js",
+ "memberof": null,
+ "longname": "lib/constant.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rest from 'lodash/rest';\nimport initialParams from './internal/initialParams';\n\n/**\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a `waterfall`, or for plugging values in to\n * `auto`.\n *\n * @name constant\n * @static\n * @memberOf async\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {Function} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n */\nexport default rest(function(values) {\n var args = [null].concat(values);\n return initialParams(function (ignoredArgs, callback) {\n return callback.apply(this, args);\n });\n});\n"
+ },
+ {
+ "__docId__": 20,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/detect.js",
+ "memberof": null,
+ "longname": "lib/detect.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import identity from 'lodash/identity';\n\nimport createTester from './internal/createTester';\nimport eachOf from './eachOf';\nimport findGetResult from './internal/findGetResult';\n\n/**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * `detectSeries`.\n *\n * @name detect\n * @static\n * @memberOf async\n * @alias find\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n */\nexport default createTester(eachOf, identity, findGetResult);\n"
+ },
+ {
+ "__docId__": 21,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/detectLimit.js",
+ "memberof": null,
+ "longname": "lib/detectLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import identity from 'lodash/identity';\n\nimport createTester from './internal/createTester';\nimport eachOfLimit from './eachOfLimit';\nimport findGetResult from './internal/findGetResult';\n\n/**\n * The same as `detect` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nexport default createTester(eachOfLimit, identity, findGetResult);\n"
+ },
+ {
+ "__docId__": 22,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/detectSeries.js",
+ "memberof": null,
+ "longname": "lib/detectSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import identity from 'lodash/identity';\n\nimport createTester from './internal/createTester';\nimport eachOfSeries from './eachOfSeries';\nimport findGetResult from './internal/findGetResult';\n\n/**\n * The same as `detect` but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf async\n * @see async.detect\n * @alias findSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, truthValue)` which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nexport default createTester(eachOfSeries, identity, findGetResult);\n"
+ },
+ {
+ "__docId__": 23,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/dir.js",
+ "memberof": null,
+ "longname": "lib/dir.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import consoleFunc from './internal/consoleFunc';\n\n/**\n * Logs the result of an `async` function to the `console` using `console.dir`\n * to display the properties of the resulting object. Only works in Node.js or\n * in browsers that support `console.dir` and `console.error` (such as FF and\n * Chrome). If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\nexport default consoleFunc('dir');\n"
+ },
+ {
+ "__docId__": 24,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/doDuring.js",
+ "memberof": null,
+ "longname": "lib/doDuring.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import during from './during';\n\n/**\n * The post-check version of {@link async.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of {@link async.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf async\n * @see async.during\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n */\nexport default function doDuring(fn, test, callback) {\n var calls = 0;\n\n during(function(next) {\n if (calls++ < 1) return next(null, true);\n test.apply(this, arguments);\n }, fn, callback);\n}\n"
+ },
+ {
+ "__docId__": 25,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doDuring",
+ "memberof": "lib/doDuring.js",
+ "longname": "lib/doDuring.js~doDuring",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/doDuring.js",
+ "importStyle": "doDuring",
+ "description": "The post-check version of {@link async.during}. To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\nAlso a version of {@link async.doWhilst} with asynchronous `test` function.",
+ "see": [
+ "async.during"
+ ],
+ "lineNumber": 23,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "doDuring"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "A function which is called each time `test` passes.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "asynchronous truth test to perform before each\nexecution of `fn`. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has failed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 26,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/doUntil.js",
+ "memberof": null,
+ "longname": "lib/doUntil.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import doWhilst from './doWhilst';\n\n/**\n * Like {@link async.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf async\n * @see async.doWhilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with the non-error callback results of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n */\nexport default function doUntil(fn, test, callback) {\n doWhilst(fn, function() {\n return !test.apply(this, arguments);\n }, callback);\n}\n"
+ },
+ {
+ "__docId__": 27,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doUntil",
+ "memberof": "lib/doUntil.js",
+ "longname": "lib/doUntil.js~doUntil",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/doUntil.js",
+ "importStyle": "doUntil",
+ "description": "Like {@link async.doWhilst}, except the `test` is inverted. Note the\nargument ordering differs from `until`.",
+ "see": [
+ "async.doWhilst"
+ ],
+ "lineNumber": 22,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "doUntil"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "A function which is called each time `test` fails.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "synchronous truth test to perform after each\nexecution of `fn`. Invoked with the non-error callback results of `fn`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has passed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 28,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/doWhilst.js",
+ "memberof": null,
+ "longname": "lib/doWhilst.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import whilst from './whilst';\n\n/**\n * The post-check version of {@link async.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `fn`. Invoked with Invoked with the non-error callback results\n * of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n */\nexport default function doWhilst(fn, test, callback) {\n var calls = 0;\n whilst(function() {\n return ++calls <= 1 || test.apply(this, arguments);\n }, fn, callback);\n}\n"
+ },
+ {
+ "__docId__": 29,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doWhilst",
+ "memberof": "lib/doWhilst.js",
+ "longname": "lib/doWhilst.js~doWhilst",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/doWhilst.js",
+ "importStyle": "doWhilst",
+ "description": "The post-check version of {@link async.whilst}. To reflect the difference in\nthe order of operations, the arguments `test` and `fn` are switched.\n\n`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.",
+ "see": [
+ "async.whilst"
+ ],
+ "lineNumber": 25,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "doWhilst"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "A function which is called each time `test` passes.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "synchronous truth test to perform after each\nexecution of `fn`. Invoked with Invoked with the non-error callback results\nof `fn`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has failed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 30,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/during.js",
+ "memberof": null,
+ "longname": "lib/during.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport rest from 'lodash/rest';\n\n/**\n * Like {@link async.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {Function} fn - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n */\nexport default function during(test, fn, callback) {\n callback = callback || noop;\n\n var next = rest(function(err, args) {\n if (err) {\n callback(err);\n } else {\n args.push(check);\n test.apply(this, args);\n }\n });\n\n var check = function(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n fn(next);\n };\n\n test(check);\n}\n"
+ },
+ {
+ "__docId__": 31,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "during",
+ "memberof": "lib/during.js",
+ "longname": "lib/during.js~during",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/during.js",
+ "importStyle": "during",
+ "description": "Like {@link async.whilst}, except the `test` is an asynchronous function that\nis passed a callback in the form of `function (err, truth)`. If error is\npassed to `test` or `fn`, the main callback is immediately called with the\nvalue of the error.",
+ "examples": [
+ "\nvar count = 0;\n\nasync.during(\n function (callback) {\n return callback(null, count < 5);\n },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n);"
+ ],
+ "see": [
+ "async.whilst"
+ ],
+ "lineNumber": 41,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "during"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "asynchronous truth test to perform before each\nexecution of `fn`. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "A function which is called each time `test` passes.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has failed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 32,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/each.js",
+ "memberof": null,
+ "longname": "lib/each.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachLimit from './eachLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf async\n * @alias forEach\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item\n * in `coll`. The iteratee is passed a `callback(err)` which must be called once\n * it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is not\n * passed to the iteratee. Invoked with (item, callback). If you need the index,\n * use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n */\nexport default doLimit(eachLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 33,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/eachLimit.js",
+ "memberof": null,
+ "longname": "lib/eachLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './internal/eachOfLimit';\nimport withoutIndex from './internal/withoutIndex';\n\n/**\n * The same as `each` but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Object} coll - A colleciton to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * iteratee is passed a `callback(err)` which must be called once it has\n * completed. If no error has occurred, the `callback` should be run without\n * arguments or with an explicit `null` argument. The array index is not passed\n * to the iteratee. Invoked with (item, callback). If you need the index, use\n * `eachOfLimit`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nexport default function eachLimit(coll, limit, iteratee, callback) {\n eachOfLimit(limit)(coll, withoutIndex(iteratee), callback);\n}\n"
+ },
+ {
+ "__docId__": 34,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "eachLimit",
+ "memberof": "lib/eachLimit.js",
+ "longname": "lib/eachLimit.js~eachLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/eachLimit.js",
+ "importStyle": "eachLimit",
+ "description": "The same as `each` but runs a maximum of `limit` async operations at a time.",
+ "see": [
+ "async.each"
+ ],
+ "lineNumber": 24,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "eachLimit"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "forEachLimit"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A colleciton to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "limit",
+ "description": "The maximum number of async operations at a time."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function to apply to each item in `coll`. The\niteratee is passed a `callback(err)` which must be called once it has\ncompleted. If no error has occurred, the `callback` should be run without\narguments or with an explicit `null` argument. The array index is not passed\nto the iteratee. Invoked with (item, callback). If you need the index, use\n`eachOfLimit`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called when all\n`iteratee` functions have finished, or an error occurs. Invoked with (err)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 35,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/eachOf.js",
+ "memberof": null,
+ "longname": "lib/eachOf.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './eachOfLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Like `each`, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf async\n * @alias forEachOf\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nexport default doLimit(eachOfLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 36,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/eachOfLimit.js",
+ "memberof": null,
+ "longname": "lib/eachOfLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import _eachOfLimit from './internal/eachOfLimit';\n\n/**\n * The same as `eachOf` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array. The iteratee is passed a `callback(err)` which must be called once it\n * has completed. If no error has occurred, the callback should be run without\n * arguments or with an explicit `null` argument. Invoked with\n * (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nexport default function eachOfLimit(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, iteratee, callback);\n}\n"
+ },
+ {
+ "__docId__": 37,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "eachOfLimit",
+ "memberof": "lib/eachOfLimit.js",
+ "longname": "lib/eachOfLimit.js~eachOfLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/eachOfLimit.js",
+ "importStyle": "eachOfLimit",
+ "description": "The same as `eachOf` but runs a maximum of `limit` async operations at a\ntime.",
+ "see": [
+ "async.eachOf"
+ ],
+ "lineNumber": 24,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "eachOfLimit"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "forEachOfLimit"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "limit",
+ "description": "The maximum number of async operations at a time."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function to apply to each\nitem in `coll`. The `key` is the item's key, or index in the case of an\narray. The iteratee is passed a `callback(err)` which must be called once it\nhas completed. If no error has occurred, the callback should be run without\narguments or with an explicit `null` argument. Invoked with\n(item, key, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called when all\n`iteratee` functions have finished, or an error occurs. Invoked with (err)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 38,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/eachOfSeries.js",
+ "memberof": null,
+ "longname": "lib/eachOfSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './eachOfLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `eachOf` but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf async\n * @see async.eachOf\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`. The\n * `key` is the item's key, or index in the case of an array. The iteratee is\n * passed a `callback(err)` which must be called once it has completed. If no\n * error has occurred, the callback should be run without arguments or with an\n * explicit `null` argument. Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n */\nexport default doLimit(eachOfLimit, 1);\n"
+ },
+ {
+ "__docId__": 39,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/eachSeries.js",
+ "memberof": null,
+ "longname": "lib/eachSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachLimit from './eachLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `each` but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf async\n * @see async.each\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each\n * item in `coll`. The iteratee is passed a `callback(err)` which must be called\n * once it has completed. If no error has occurred, the `callback` should be run\n * without arguments or with an explicit `null` argument. The array index is\n * not passed to the iteratee. Invoked with (item, callback). If you need the\n * index, use `eachOfSeries`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nexport default doLimit(eachLimit, 1);\n"
+ },
+ {
+ "__docId__": 40,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/ensureAsync.js",
+ "memberof": null,
+ "longname": "lib/ensureAsync.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import setImmediate from './internal/setImmediate';\nimport initialParams from './internal/initialParams';\n\n/**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained.\n *\n * @name ensureAsync\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {Function} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\nexport default function ensureAsync(fn) {\n return initialParams(function (args, callback) {\n var sync = true;\n args.push(function () {\n var innerArgs = arguments;\n if (sync) {\n setImmediate(function () {\n callback.apply(null, innerArgs);\n });\n } else {\n callback.apply(null, innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n });\n}\n"
+ },
+ {
+ "__docId__": 41,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "ensureAsync",
+ "memberof": "lib/ensureAsync.js",
+ "longname": "lib/ensureAsync.js~ensureAsync",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/ensureAsync.js",
+ "importStyle": "ensureAsync",
+ "description": "Wrap an async function and ensure it calls its callback on a later tick of\nthe event loop. If the function already calls its callback on a next tick,\nno extra deferral is added. This is useful for preventing stack overflows\n(`RangeError: Maximum call stack size exceeded`) and generally keeping\n[Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\ncontained.",
+ "examples": [
+ "\nfunction sometimesAsync(arg, callback) {\n if (cache[arg]) {\n return callback(null, cache[arg]); // this would be synchronous!!\n } else {\n doSomeIO(arg, callback); // this IO would be asynchronous\n }\n}\n\n// this has a risk of stack overflows if many results are cached in a row\nasync.mapSeries(args, sometimesAsync, done);\n\n// this will defer sometimesAsync's callback if necessary,\n// preventing stack overflows\nasync.mapSeries(args, async.ensureAsync(sometimesAsync), done);"
+ ],
+ "lineNumber": 37,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "ensureAsync"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} Returns a wrapped function with the exact same call\nsignature as the function passed in."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "an async function, one that expects a node-style\ncallback as its last argument."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "Returns a wrapped function with the exact same call\nsignature as the function passed in."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 42,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/every.js",
+ "memberof": null,
+ "longname": "lib/every.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import everyLimit from './everyLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf async\n * @alias all\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n */\nexport default doLimit(everyLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 43,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/everyLimit.js",
+ "memberof": null,
+ "longname": "lib/everyLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import createTester from './internal/createTester';\nimport eachOfLimit from './eachOfLimit';\nimport notId from './internal/notId';\n\n/**\n * The same as `every` but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf async\n * @see async.every\n * @alias allLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nexport default createTester(eachOfLimit, notId, notId);\n"
+ },
+ {
+ "__docId__": 44,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/everySeries.js",
+ "memberof": null,
+ "longname": "lib/everySeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import everyLimit from './everyLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `every` but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf async\n * @see async.every\n * @alias allSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the\n * collection in parallel. The iteratee is passed a `callback(err, truthValue)`\n * which must be called with a boolean argument once it has completed. Invoked\n * with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nexport default doLimit(everyLimit, 1);\n"
+ },
+ {
+ "__docId__": 45,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/filter.js",
+ "memberof": null,
+ "longname": "lib/filter.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import filterLimit from './filterLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf async\n * @alias select\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n */\nexport default doLimit(filterLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 46,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/filterLimit.js",
+ "memberof": null,
+ "longname": "lib/filterLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import filter from './internal/filter';\nimport doParallelLimit from './internal/doParallelLimit';\n\n/**\n * The same as `filter` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nexport default doParallelLimit(filter);\n"
+ },
+ {
+ "__docId__": 47,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/filterSeries.js",
+ "memberof": null,
+ "longname": "lib/filterSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import filterLimit from './filterLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `filter` but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf async\n * @see async.filter\n * @alias selectSeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n */\nexport default doLimit(filterLimit, 1);\n"
+ },
+ {
+ "__docId__": 48,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/forever.js",
+ "memberof": null,
+ "longname": "lib/forever.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\n\nimport onlyOnce from './internal/onlyOnce';\nimport ensureAsync from './ensureAsync';\n\n/**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the\n * callback then `errback` is called with the error, and execution stops,\n * otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} fn - a function to call repeatedly. Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\nexport default function forever(fn, errback) {\n var done = onlyOnce(errback || noop);\n var task = ensureAsync(fn);\n\n function next(err) {\n if (err) return done(err);\n task(next);\n }\n next();\n}\n"
+ },
+ {
+ "__docId__": 49,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "forever",
+ "memberof": "lib/forever.js",
+ "longname": "lib/forever.js~forever",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/forever.js",
+ "importStyle": "forever",
+ "description": "Calls the asynchronous function `fn` with a callback parameter that allows it\nto call itself again, in series, indefinitely.\n\nIf an error is passed to the\ncallback then `errback` is called with the error, and execution stops,\notherwise it will never be called.",
+ "examples": [
+ "\nasync.forever(\n function(next) {\n // next is suitable for passing to things that need a callback(err [, whatever]);\n // it will result in this function being called again.\n },\n function(err) {\n // if next is called with a value in its first parameter, it will appear\n // in here as 'err', and execution will stop.\n }\n);"
+ ],
+ "lineNumber": 34,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "forever"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "a function to call repeatedly. Invoked with (next)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "errback",
+ "description": "when `fn` passes an error to it's callback,\nthis function will be called, and execution stops. Invoked with (err)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 50,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/index.js",
+ "memberof": null,
+ "longname": "lib/index.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 8,
+ "content": "/**\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @namespace async\n */\nimport applyEach from './applyEach';\nimport applyEachSeries from './applyEachSeries';\nimport apply from './apply';\nimport asyncify from './asyncify';\nimport auto from './auto';\nimport autoInject from './autoInject';\nimport cargo from './cargo';\nimport compose from './compose';\nimport concat from './concat';\nimport concatSeries from './concatSeries';\nimport constant from './constant';\nimport detect from './detect';\nimport detectLimit from './detectLimit';\nimport detectSeries from './detectSeries';\nimport dir from './dir';\nimport doDuring from './doDuring';\nimport doUntil from './doUntil';\nimport doWhilst from './doWhilst';\nimport during from './during';\nimport each from './each';\nimport eachLimit from './eachLimit';\nimport eachOf from './eachOf';\nimport eachOfLimit from './eachOfLimit';\nimport eachOfSeries from './eachOfSeries';\nimport eachSeries from './eachSeries';\nimport ensureAsync from './ensureAsync';\nimport every from './every';\nimport everyLimit from './everyLimit';\nimport everySeries from './everySeries';\nimport filter from './filter';\nimport filterLimit from './filterLimit';\nimport filterSeries from './filterSeries';\nimport forever from './forever';\nimport iterator from './iterator';\nimport log from './log';\nimport map from './map';\nimport mapLimit from './mapLimit';\nimport mapSeries from './mapSeries';\nimport mapValues from './mapValues';\nimport mapValuesLimit from './mapValuesLimit';\nimport mapValuesSeries from './mapValuesSeries';\nimport memoize from './memoize';\nimport nextTick from './nextTick';\nimport parallel from './parallel';\nimport parallelLimit from './parallelLimit';\nimport priorityQueue from './priorityQueue';\nimport queue from './queue';\nimport race from './race';\nimport reduce from './reduce';\nimport reduceRight from './reduceRight';\nimport reflect from './reflect';\nimport reject from './reject';\nimport reflectAll from './reflectAll';\nimport rejectLimit from './rejectLimit';\nimport rejectSeries from './rejectSeries';\nimport retry from './retry';\nimport retryable from './retryable';\nimport seq from './seq';\nimport series from './series';\nimport setImmediate from './setImmediate';\nimport some from './some';\nimport someLimit from './someLimit';\nimport someSeries from './someSeries';\nimport sortBy from './sortBy';\nimport timeout from './timeout';\nimport times from './times';\nimport timesLimit from './timesLimit';\nimport timesSeries from './timesSeries';\nimport transform from './transform';\nimport unmemoize from './unmemoize';\nimport until from './until';\nimport waterfall from './waterfall';\nimport whilst from './whilst';\n\nexport default {\n applyEach: applyEach,\n applyEachSeries: applyEachSeries,\n apply: apply,\n asyncify: asyncify,\n auto: auto,\n autoInject: autoInject,\n cargo: cargo,\n compose: compose,\n concat: concat,\n concatSeries: concatSeries,\n constant: constant,\n detect: detect,\n detectLimit: detectLimit,\n detectSeries: detectSeries,\n dir: dir,\n doDuring: doDuring,\n doUntil: doUntil,\n doWhilst: doWhilst,\n during: during,\n each: each,\n eachLimit: eachLimit,\n eachOf: eachOf,\n eachOfLimit: eachOfLimit,\n eachOfSeries: eachOfSeries,\n eachSeries: eachSeries,\n ensureAsync: ensureAsync,\n every: every,\n everyLimit: everyLimit,\n everySeries: everySeries,\n filter: filter,\n filterLimit: filterLimit,\n filterSeries: filterSeries,\n forever: forever,\n iterator: iterator,\n log: log,\n map: map,\n mapLimit: mapLimit,\n mapSeries: mapSeries,\n mapValues: mapValues,\n mapValuesLimit: mapValuesLimit,\n mapValuesSeries: mapValuesSeries,\n memoize: memoize,\n nextTick: nextTick,\n parallel: parallel,\n parallelLimit: parallelLimit,\n priorityQueue: priorityQueue,\n queue: queue,\n race: race,\n reduce: reduce,\n reduceRight: reduceRight,\n reflect: reflect,\n reflectAll: reflectAll,\n reject: reject,\n rejectLimit: rejectLimit,\n rejectSeries: rejectSeries,\n retry: retry,\n retryable: retryable,\n seq: seq,\n series: series,\n setImmediate: setImmediate,\n some: some,\n someLimit: someLimit,\n someSeries: someSeries,\n sortBy: sortBy,\n timeout: timeout,\n times: times,\n timesLimit: timesLimit,\n timesSeries: timesSeries,\n transform: transform,\n unmemoize: unmemoize,\n until: until,\n waterfall: waterfall,\n whilst: whilst,\n\n // aliases\n all: every,\n any: some,\n forEach: each,\n forEachSeries: eachSeries,\n forEachLimit: eachLimit,\n forEachOf: eachOf,\n forEachOfSeries: eachOfSeries,\n forEachOfLimit: eachOfLimit,\n inject: reduce,\n foldl: reduce,\n foldr: reduceRight,\n select: filter,\n selectLimit: filterLimit,\n selectSeries: filterSeries,\n wrapSync: asyncify\n};\n\nexport {\n applyEach as applyEach,\n applyEachSeries as applyEachSeries,\n apply as apply,\n asyncify as asyncify,\n auto as auto,\n autoInject as autoInject,\n cargo as cargo,\n compose as compose,\n concat as concat,\n concatSeries as concatSeries,\n constant as constant,\n detect as detect,\n detectLimit as detectLimit,\n detectSeries as detectSeries,\n dir as dir,\n doDuring as doDuring,\n doUntil as doUntil,\n doWhilst as doWhilst,\n during as during,\n each as each,\n eachLimit as eachLimit,\n eachOf as eachOf,\n eachOfLimit as eachOfLimit,\n eachOfSeries as eachOfSeries,\n eachSeries as eachSeries,\n ensureAsync as ensureAsync,\n every as every,\n everyLimit as everyLimit,\n everySeries as everySeries,\n filter as filter,\n filterLimit as filterLimit,\n filterSeries as filterSeries,\n forever as forever,\n iterator as iterator,\n log as log,\n map as map,\n mapLimit as mapLimit,\n mapSeries as mapSeries,\n mapValues as mapValues,\n mapValuesLimit as mapValuesLimit,\n mapValuesSeries as mapValuesSeries,\n memoize as memoize,\n nextTick as nextTick,\n parallel as parallel,\n parallelLimit as parallelLimit,\n priorityQueue as priorityQueue,\n queue as queue,\n race as race,\n reduce as reduce,\n reduceRight as reduceRight,\n reflect as reflect,\n reflectAll as reflectAll,\n reject as reject,\n rejectLimit as rejectLimit,\n rejectSeries as rejectSeries,\n retry as retry,\n retryable as retryable,\n seq as seq,\n series as series,\n setImmediate as setImmediate,\n some as some,\n someLimit as someLimit,\n someSeries as someSeries,\n sortBy as sortBy,\n timeout as timeout,\n times as times,\n timesLimit as timesLimit,\n timesSeries as timesSeries,\n transform as transform,\n unmemoize as unmemoize,\n until as until,\n waterfall as waterfall,\n whilst as whilst,\n\n // Aliases\n every as all,\n everyLimit as allLimit,\n everySeries as allSeries,\n some as any,\n someLimit as anyLimit,\n someSeries as anySeries,\n detect as find,\n detectLimit as findLimit,\n detectSeries as findSeries,\n each as forEach,\n eachSeries as forEachSeries,\n eachLimit as forEachLimit,\n eachOf as forEachOf,\n eachOfSeries as forEachOfSeries,\n eachOfLimit as forEachOfLimit,\n reduce as inject,\n reduce as foldl,\n reduceRight as foldr,\n filter as select,\n filterLimit as selectLimit,\n filterSeries as selectSeries,\n asyncify as wrapSync\n};\n"
+ },
+ {
+ "__docId__": 51,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/applyEach.js",
+ "memberof": null,
+ "longname": "lib/internal/applyEach.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rest from 'lodash/rest';\nimport initialParams from './initialParams';\n\nexport default function applyEach(eachfn) {\n return rest(function(fns, args) {\n var go = initialParams(function(args, callback) {\n var that = this;\n return eachfn(fns, function (fn, cb) {\n fn.apply(that, args.concat([cb]));\n }, callback);\n });\n if (args.length) {\n return go.apply(this, args);\n }\n else {\n return go;\n }\n });\n}\n"
+ },
+ {
+ "__docId__": 52,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "applyEach",
+ "memberof": "lib/internal/applyEach.js",
+ "longname": "lib/internal/applyEach.js~applyEach",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/applyEach.js",
+ "importStyle": "applyEach",
+ "description": null,
+ "lineNumber": 4,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 53,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/concat.js",
+ "memberof": null,
+ "longname": "lib/internal/concat.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function concat(eachfn, arr, fn, callback) {\n var result = [];\n eachfn(arr, function (x, index, cb) {\n fn(x, function (err, y) {\n result = result.concat(y || []);\n cb(err);\n });\n }, function (err) {\n callback(err, result);\n });\n}\n"
+ },
+ {
+ "__docId__": 54,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "concat",
+ "memberof": "lib/internal/concat.js",
+ "longname": "lib/internal/concat.js~concat",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/concat.js",
+ "importStyle": "concat",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "arr",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "callback",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 55,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/consoleFunc.js",
+ "memberof": null,
+ "longname": "lib/internal/consoleFunc.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayEach from 'lodash/_arrayEach';\nimport rest from 'lodash/rest';\n\nexport default function consoleFunc(name) {\n return rest(function (fn, args) {\n fn.apply(null, args.concat([rest(function (err, args) {\n if (typeof console === 'object') {\n if (err) {\n if (console.error) {\n console.error(err);\n }\n }\n else if (console[name]) {\n arrayEach(args, function (x) {\n console[name](x);\n });\n }\n }\n })]));\n });\n}\n"
+ },
+ {
+ "__docId__": 56,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "consoleFunc",
+ "memberof": "lib/internal/consoleFunc.js",
+ "longname": "lib/internal/consoleFunc.js~consoleFunc",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/consoleFunc.js",
+ "importStyle": "consoleFunc",
+ "description": null,
+ "lineNumber": 4,
+ "undocument": true,
+ "params": [
+ {
+ "name": "name",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 57,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/createTester.js",
+ "memberof": null,
+ "longname": "lib/internal/createTester.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "'use strict';\nimport noop from 'lodash/noop';\n\nexport default function _createTester(eachfn, check, getResult) {\n return function(arr, limit, iteratee, cb) {\n function done(err) {\n if (cb) {\n if (err) {\n cb(err);\n } else {\n cb(null, getResult(false));\n }\n }\n }\n function wrappedIteratee(x, _, callback) {\n if (!cb) return callback();\n iteratee(x, function (err, v) {\n if (cb) {\n if (err) {\n cb(err);\n cb = iteratee = false;\n } else if (check(v)) {\n cb(null, getResult(true, x));\n cb = iteratee = false;\n }\n }\n callback();\n });\n }\n if (arguments.length > 3) {\n cb = cb || noop;\n eachfn(arr, limit, wrappedIteratee, done);\n } else {\n cb = iteratee;\n cb = cb || noop;\n iteratee = limit;\n eachfn(arr, wrappedIteratee, done);\n }\n };\n}\n"
+ },
+ {
+ "__docId__": 58,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_createTester",
+ "memberof": "lib/internal/createTester.js",
+ "longname": "lib/internal/createTester.js~_createTester",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/createTester.js",
+ "importStyle": "_createTester",
+ "description": null,
+ "lineNumber": 4,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "check",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "getResult",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 59,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/doLimit.js",
+ "memberof": null,
+ "longname": "lib/internal/doLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\n"
+ },
+ {
+ "__docId__": 60,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doLimit",
+ "memberof": "lib/internal/doLimit.js",
+ "longname": "lib/internal/doLimit.js~doLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/doLimit.js",
+ "importStyle": "doLimit",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "limit",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 61,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/doParallel.js",
+ "memberof": null,
+ "longname": "lib/internal/doParallel.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOf from '../eachOf';\n\nexport default function doParallel(fn) {\n return function (obj, iteratee, callback) {\n return fn(eachOf, obj, iteratee, callback);\n };\n}\n"
+ },
+ {
+ "__docId__": 62,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doParallel",
+ "memberof": "lib/internal/doParallel.js",
+ "longname": "lib/internal/doParallel.js~doParallel",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/doParallel.js",
+ "importStyle": "doParallel",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 63,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/doParallelLimit.js",
+ "memberof": null,
+ "longname": "lib/internal/doParallelLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './eachOfLimit';\n\nexport default function doParallelLimit(fn) {\n return function (obj, limit, iteratee, callback) {\n return fn(eachOfLimit(limit), obj, iteratee, callback);\n };\n}\n"
+ },
+ {
+ "__docId__": 64,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doParallelLimit",
+ "memberof": "lib/internal/doParallelLimit.js",
+ "longname": "lib/internal/doParallelLimit.js~doParallelLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/doParallelLimit.js",
+ "importStyle": "doParallelLimit",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 65,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/doSeries.js",
+ "memberof": null,
+ "longname": "lib/internal/doSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfSeries from '../eachOfSeries';\n\nexport default function doSeries(fn) {\n return function (obj, iteratee, callback) {\n return fn(eachOfSeries, obj, iteratee, callback);\n };\n}\n"
+ },
+ {
+ "__docId__": 66,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "doSeries",
+ "memberof": "lib/internal/doSeries.js",
+ "longname": "lib/internal/doSeries.js~doSeries",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/doSeries.js",
+ "importStyle": "doSeries",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 67,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/eachOfLimit.js",
+ "memberof": null,
+ "longname": "lib/internal/eachOfLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport once from './once';\n\nimport iterator from './iterator';\nimport onlyOnce from './onlyOnce';\n\nexport default function _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = once(callback || noop);\n obj = obj || [];\n var nextElem = iterator(obj);\n if (limit <= 0) {\n return callback(null);\n }\n var done = false;\n var running = 0;\n var errored = false;\n\n (function replenish () {\n if (done && running <= 0) {\n return callback(null);\n }\n\n while (running < limit && !errored) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n /* eslint {no-loop-func: 0} */\n iteratee(elem.value, elem.key, onlyOnce(function (err) {\n running -= 1;\n if (err) {\n callback(err);\n errored = true;\n }\n else {\n replenish();\n }\n }));\n }\n })();\n };\n}\n"
+ },
+ {
+ "__docId__": 68,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_eachOfLimit",
+ "memberof": "lib/internal/eachOfLimit.js",
+ "longname": "lib/internal/eachOfLimit.js~_eachOfLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/eachOfLimit.js",
+ "importStyle": "_eachOfLimit",
+ "description": null,
+ "lineNumber": 7,
+ "undocument": true,
+ "params": [
+ {
+ "name": "limit",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 69,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/filter.js",
+ "memberof": null,
+ "longname": "lib/internal/filter.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayMap from 'lodash/_arrayMap';\nimport property from 'lodash/_baseProperty';\n\nexport default function _filter(eachfn, arr, iteratee, callback) {\n var results = [];\n eachfn(arr, function (x, index, callback) {\n iteratee(x, function (err, v) {\n if (err) {\n callback(err);\n }\n else {\n if (v) {\n results.push({index: index, value: x});\n }\n callback();\n }\n });\n }, function (err) {\n if (err) {\n callback(err);\n }\n else {\n callback(null, arrayMap(results.sort(function (a, b) {\n return a.index - b.index;\n }), property('value')));\n }\n });\n}\n"
+ },
+ {
+ "__docId__": 70,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_filter",
+ "memberof": "lib/internal/filter.js",
+ "longname": "lib/internal/filter.js~_filter",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/filter.js",
+ "importStyle": "_filter",
+ "description": null,
+ "lineNumber": 4,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "arr",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "iteratee",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "callback",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 71,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/findGetResult.js",
+ "memberof": null,
+ "longname": "lib/internal/findGetResult.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function _findGetResult(v, x) {\n return x;\n}\n"
+ },
+ {
+ "__docId__": 72,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_findGetResult",
+ "memberof": "lib/internal/findGetResult.js",
+ "longname": "lib/internal/findGetResult.js~_findGetResult",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/findGetResult.js",
+ "importStyle": "_findGetResult",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "v",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "x",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 73,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/getIterator.js",
+ "memberof": null,
+ "longname": "lib/internal/getIterator.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "var iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\nexport default function (coll) {\n return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n}\n"
+ },
+ {
+ "__docId__": 74,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "iteratorSymbol",
+ "memberof": "lib/internal/getIterator.js",
+ "longname": "lib/internal/getIterator.js~iteratorSymbol",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/internal/getIterator.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "type": {
+ "types": [
+ "*"
+ ]
+ }
+ },
+ {
+ "__docId__": 75,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "getIterator",
+ "memberof": "lib/internal/getIterator.js",
+ "longname": "lib/internal/getIterator.js~getIterator",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/getIterator.js",
+ "importStyle": "getIterator",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "coll",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 76,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/initialParams.js",
+ "memberof": null,
+ "longname": "lib/internal/initialParams.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rest from 'lodash/rest';\n\nexport default function (fn) {\n return rest(function (args/*..., callback*/) {\n var callback = args.pop();\n fn.call(this, args, callback);\n });\n}\n"
+ },
+ {
+ "__docId__": 77,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "initialParams",
+ "memberof": "lib/internal/initialParams.js",
+ "longname": "lib/internal/initialParams.js~initialParams",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/initialParams.js",
+ "importStyle": "initialParams",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 78,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/iterator.js",
+ "memberof": null,
+ "longname": "lib/internal/iterator.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import isArrayLike from 'lodash/isArrayLike';\nimport getIterator from './getIterator';\nimport keys from 'lodash/keys';\n\nexport default function iterator(coll) {\n var i = -1;\n var len;\n if (isArrayLike(coll)) {\n len = coll.length;\n return function next() {\n i++;\n return i < len ? {value: coll[i], key: i} : null;\n };\n }\n\n var iterate = getIterator(coll);\n if (iterate) {\n return function next() {\n var item = iterate.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n };\n }\n\n var okeys = keys(coll);\n len = okeys.length;\n return function next() {\n i++;\n var key = okeys[i];\n return i < len ? {value: coll[key], key: key} : null;\n };\n}\n"
+ },
+ {
+ "__docId__": 79,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "iterator",
+ "memberof": "lib/internal/iterator.js",
+ "longname": "lib/internal/iterator.js~iterator",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/iterator.js",
+ "importStyle": "iterator",
+ "description": null,
+ "lineNumber": 5,
+ "undocument": true,
+ "params": [
+ {
+ "name": "coll",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 80,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/map.js",
+ "memberof": null,
+ "longname": "lib/internal/map.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport once from './once';\n\nexport default function _asyncMap(eachfn, arr, iteratee, callback) {\n callback = once(callback || noop);\n arr = arr || [];\n var results = [];\n var counter = 0;\n\n eachfn(arr, function (value, _, callback) {\n var index = counter++;\n iteratee(value, function (err, v) {\n results[index] = v;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n"
+ },
+ {
+ "__docId__": 81,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_asyncMap",
+ "memberof": "lib/internal/map.js",
+ "longname": "lib/internal/map.js~_asyncMap",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/map.js",
+ "importStyle": "_asyncMap",
+ "description": null,
+ "lineNumber": 4,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "arr",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "iteratee",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "callback",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 82,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/notId.js",
+ "memberof": null,
+ "longname": "lib/internal/notId.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function notId(v) {\n return !v;\n}\n"
+ },
+ {
+ "__docId__": 83,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "notId",
+ "memberof": "lib/internal/notId.js",
+ "longname": "lib/internal/notId.js~notId",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/notId.js",
+ "importStyle": "notId",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "v",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 84,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/once.js",
+ "memberof": null,
+ "longname": "lib/internal/once.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function once(fn) {\n return function () {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n"
+ },
+ {
+ "__docId__": 85,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "once",
+ "memberof": "lib/internal/once.js",
+ "longname": "lib/internal/once.js~once",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/once.js",
+ "importStyle": "once",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 86,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/onlyOnce.js",
+ "memberof": null,
+ "longname": "lib/internal/onlyOnce.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function onlyOnce(fn) {\n return function() {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n"
+ },
+ {
+ "__docId__": 87,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "onlyOnce",
+ "memberof": "lib/internal/onlyOnce.js",
+ "longname": "lib/internal/onlyOnce.js~onlyOnce",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/onlyOnce.js",
+ "importStyle": "onlyOnce",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 88,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/parallel.js",
+ "memberof": null,
+ "longname": "lib/internal/parallel.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport isArrayLike from 'lodash/isArrayLike';\nimport rest from 'lodash/rest';\n\nexport default function _parallel(eachfn, tasks, callback) {\n callback = callback || noop;\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, function (task, key, callback) {\n task(rest(function (err, args) {\n if (args.length <= 1) {\n args = args[0];\n }\n results[key] = args;\n callback(err);\n }));\n }, function (err) {\n callback(err, results);\n });\n}\n"
+ },
+ {
+ "__docId__": 89,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_parallel",
+ "memberof": "lib/internal/parallel.js",
+ "longname": "lib/internal/parallel.js~_parallel",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/parallel.js",
+ "importStyle": "_parallel",
+ "description": null,
+ "lineNumber": 5,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "tasks",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "callback",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 90,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/queue.js",
+ "memberof": null,
+ "longname": "lib/internal/queue.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayEach from 'lodash/_arrayEach';\nimport arrayMap from 'lodash/_arrayMap';\nimport isArray from 'lodash/isArray';\nimport noop from 'lodash/noop';\nimport property from 'lodash/_baseProperty';\n\nimport onlyOnce from './onlyOnce';\nimport setImmediate from './setImmediate';\n\nexport default function queue(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new Error('Concurrency must not be zero');\n }\n function _insert(q, data, pos, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if(data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n return setImmediate(function() {\n q.drain();\n });\n }\n arrayEach(data, function(task) {\n var item = {\n data: task,\n callback: callback || noop\n };\n\n if (pos) {\n q.tasks.unshift(item);\n } else {\n q.tasks.push(item);\n }\n\n });\n setImmediate(q.process);\n }\n function _next(q, tasks) {\n return function(){\n workers -= 1;\n\n\n var removed = false;\n var args = arguments;\n arrayEach(tasks, function (task) {\n arrayEach(workersList, function (worker, index) {\n if (worker === task && !removed) {\n workersList.splice(index, 1);\n removed = true;\n }\n });\n\n task.callback.apply(task, args);\n\n if (args[0] != null) {\n q.error(args[0], task.data);\n }\n });\n\n if (workers <= (q.concurrency - q.buffer) ) {\n q.unsaturated();\n }\n\n if (q.tasks.length + workers === 0) {\n q.drain();\n }\n q.process();\n };\n }\n\n var workers = 0;\n var workersList = [];\n var q = {\n tasks: [],\n concurrency: concurrency,\n payload: payload,\n saturated: noop,\n unsaturated:noop,\n buffer: concurrency / 4,\n empty: noop,\n drain: noop,\n error: noop,\n started: false,\n paused: false,\n push: function (data, callback) {\n _insert(q, data, false, callback);\n },\n kill: function () {\n q.drain = noop;\n q.tasks = [];\n },\n unshift: function (data, callback) {\n _insert(q, data, true, callback);\n },\n process: function () {\n while(!q.paused && workers < q.concurrency && q.tasks.length){\n\n var tasks = q.payload ?\n q.tasks.splice(0, q.payload) :\n q.tasks.splice(0, q.tasks.length);\n\n var data = arrayMap(tasks, property('data'));\n\n if (q.tasks.length === 0) {\n q.empty();\n }\n workers += 1;\n workersList.push(tasks[0]);\n\n if (workers === q.concurrency) {\n q.saturated();\n }\n\n var cb = onlyOnce(_next(q, tasks));\n worker(data, cb);\n\n\n }\n },\n length: function () {\n return q.tasks.length;\n },\n running: function () {\n return workers;\n },\n workersList: function () {\n return workersList;\n },\n idle: function() {\n return q.tasks.length + workers === 0;\n },\n pause: function () {\n q.paused = true;\n },\n resume: function () {\n if (q.paused === false) { return; }\n q.paused = false;\n var resumeCount = Math.min(q.concurrency, q.tasks.length);\n // Need to call q.process once per concurrent\n // worker to preserve full concurrency after pause\n for (var w = 1; w <= resumeCount; w++) {\n setImmediate(q.process);\n }\n }\n };\n return q;\n}\n"
+ },
+ {
+ "__docId__": 91,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "queue",
+ "memberof": "lib/internal/queue.js",
+ "longname": "lib/internal/queue.js~queue",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/queue.js",
+ "importStyle": "queue",
+ "description": null,
+ "lineNumber": 10,
+ "undocument": true,
+ "params": [
+ {
+ "name": "worker",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "concurrency",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "payload",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 92,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/reject.js",
+ "memberof": null,
+ "longname": "lib/internal/reject.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import filter from './filter';\n\nexport default function reject(eachfn, arr, iteratee, callback) {\n filter(eachfn, arr, function(value, cb) {\n iteratee(value, function(err, v) {\n if (err) {\n cb(err);\n } else {\n cb(null, !v);\n }\n });\n }, callback);\n}\n"
+ },
+ {
+ "__docId__": 93,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "reject",
+ "memberof": "lib/internal/reject.js",
+ "longname": "lib/internal/reject.js~reject",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/reject.js",
+ "importStyle": "reject",
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "params": [
+ {
+ "name": "eachfn",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "arr",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "iteratee",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "callback",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 94,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/setImmediate.js",
+ "memberof": null,
+ "longname": "lib/internal/setImmediate.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "'use strict';\n\nimport rest from 'lodash/rest';\n\nexport var hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nexport var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nexport function fallback(fn) {\n setTimeout(fn, 0);\n}\n\nexport function wrap(defer) {\n return rest(function (fn, args) {\n defer(function () {\n fn.apply(null, args);\n });\n });\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexport default wrap(_defer);\n"
+ },
+ {
+ "__docId__": 95,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "hasSetImmediate",
+ "memberof": "lib/internal/setImmediate.js",
+ "longname": "lib/internal/setImmediate.js~hasSetImmediate",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/setImmediate.js",
+ "importStyle": "{hasSetImmediate}",
+ "description": null,
+ "lineNumber": 5,
+ "undocument": true,
+ "type": {
+ "types": [
+ "*"
+ ]
+ }
+ },
+ {
+ "__docId__": 96,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "hasNextTick",
+ "memberof": "lib/internal/setImmediate.js",
+ "longname": "lib/internal/setImmediate.js~hasNextTick",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/setImmediate.js",
+ "importStyle": "{hasNextTick}",
+ "description": null,
+ "lineNumber": 6,
+ "undocument": true,
+ "type": {
+ "types": [
+ "*"
+ ]
+ }
+ },
+ {
+ "__docId__": 97,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "fallback",
+ "memberof": "lib/internal/setImmediate.js",
+ "longname": "lib/internal/setImmediate.js~fallback",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/setImmediate.js",
+ "importStyle": "{fallback}",
+ "description": null,
+ "lineNumber": 8,
+ "undocument": true,
+ "params": [
+ {
+ "name": "fn",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 98,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "wrap",
+ "memberof": "lib/internal/setImmediate.js",
+ "longname": "lib/internal/setImmediate.js~wrap",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/setImmediate.js",
+ "importStyle": "{wrap}",
+ "description": null,
+ "lineNumber": 12,
+ "undocument": true,
+ "params": [
+ {
+ "name": "defer",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 99,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/internal/withoutIndex.js",
+ "memberof": null,
+ "longname": "lib/internal/withoutIndex.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "export default function _withoutIndex(iteratee) {\n return function (value, index, callback) {\n return iteratee(value, callback);\n };\n}\n"
+ },
+ {
+ "__docId__": 100,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "_withoutIndex",
+ "memberof": "lib/internal/withoutIndex.js",
+ "longname": "lib/internal/withoutIndex.js~_withoutIndex",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/internal/withoutIndex.js",
+ "importStyle": "_withoutIndex",
+ "description": null,
+ "lineNumber": 1,
+ "undocument": true,
+ "params": [
+ {
+ "name": "iteratee",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 101,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/iterator.js",
+ "memberof": null,
+ "longname": "lib/iterator.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 33,
+ "content": "/**\n * Creates an iterator function which calls the next function in the `tasks`\n * array, returning a continuation to call the next one after that. It's also\n * possible to “peek” at the next iterator with `iterator.next()`.\n *\n * This function is used internally by the `async` module, but can be useful\n * when you want to manually control the flow of functions in series.\n *\n * @name iterator\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run.\n * @returns The next function to run in the series.\n * @example\n *\n * var iterator = async.iterator([\n * function() { sys.p('one'); },\n * function() { sys.p('two'); },\n * function() { sys.p('three'); }\n * ]);\n *\n * node> var iterator2 = iterator();\n * 'one'\n * node> var iterator3 = iterator2();\n * 'two'\n * node> iterator3();\n * 'three'\n * node> var nextfn = iterator2.next();\n * node> nextfn();\n * 'three'\n */\nexport default function(tasks) {\n function makeCallback(index) {\n function fn() {\n if (tasks.length) {\n tasks[index].apply(null, arguments);\n }\n return fn.next();\n }\n fn.next = function() {\n return (index < tasks.length - 1) ? makeCallback(index + 1) : null;\n };\n return fn;\n }\n return makeCallback(0);\n}\n"
+ },
+ {
+ "__docId__": 102,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "iterator",
+ "memberof": "lib/iterator.js",
+ "longname": "lib/iterator.js~iterator",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/iterator.js",
+ "importStyle": "iterator",
+ "description": "Creates an iterator function which calls the next function in the `tasks`\narray, returning a continuation to call the next one after that. It's also\npossible to “peek” at the next iterator with `iterator.next()`.\n\nThis function is used internally by the `async` module, but can be useful\nwhen you want to manually control the flow of functions in series.",
+ "examples": [
+ "\nvar iterator = async.iterator([\n function() { sys.p('one'); },\n function() { sys.p('two'); },\n function() { sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'"
+ ],
+ "lineNumber": 33,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "iterator"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "The next function to run in the series."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "An array of functions to run."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "description": "The next function to run in the series."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 103,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/log.js",
+ "memberof": null,
+ "longname": "lib/log.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import consoleFunc from './internal/consoleFunc';\n\n/**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} function - The function you want to eventually apply all\n * arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\nexport default consoleFunc('log');\n"
+ },
+ {
+ "__docId__": 104,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/map.js",
+ "memberof": null,
+ "longname": "lib/map.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import mapLimit from './mapLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines)\n *\n * @name map\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n */\nexport default doLimit(mapLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 105,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/mapLimit.js",
+ "memberof": null,
+ "longname": "lib/mapLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import doParallelLimit from './internal/doParallelLimit';\nimport map from './internal/map';\n\n/**\n * The same as `map` but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a transformed\n * item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nexport default doParallelLimit(map);\n"
+ },
+ {
+ "__docId__": 106,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/mapSeries.js",
+ "memberof": null,
+ "longname": "lib/mapSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import mapLimit from './mapLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `map` but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf async\n * @see async.map\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed item. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nexport default doLimit(mapLimit, 1);\n"
+ },
+ {
+ "__docId__": 107,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/mapValues.js",
+ "memberof": null,
+ "longname": "lib/mapValues.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import mapValuesLimit from './mapValuesLimit';\nimport doLimit from './internal/doLimit';\n\n\n/**\n * A relative of `map`, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf async\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value and key in\n * `coll`. The iteratee is passed a `callback(err, transformed)` which must be\n * called once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `obj`. Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, fs.stat, function(err, result) {\n * // results is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n */\n\nexport default doLimit(mapValuesLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 108,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/mapValuesLimit.js",
+ "memberof": null,
+ "longname": "lib/mapValuesLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './eachOfLimit';\n\n/**\n * The same as `mapValues` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n */\nexport default function mapValuesLimit(obj, limit, iteratee, callback) {\n var newObj = {};\n eachOfLimit(obj, limit, function(val, key, next) {\n iteratee(val, key, function (err, result) {\n if (err) return next(err);\n newObj[key] = result;\n next();\n });\n }, function (err) {\n callback(err, newObj);\n });\n}\n"
+ },
+ {
+ "__docId__": 109,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "mapValuesLimit",
+ "memberof": "lib/mapValuesLimit.js",
+ "longname": "lib/mapValuesLimit.js~mapValuesLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/mapValuesLimit.js",
+ "importStyle": "mapValuesLimit",
+ "description": "The same as `mapValues` but runs a maximum of `limit` async operations at a\ntime.",
+ "see": [
+ "async.mapValues"
+ ],
+ "lineNumber": 22,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "mapValuesLimit"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "obj",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "limit",
+ "description": "The maximum number of async operations at a time."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function to apply to each value in `obj`.\nThe iteratee is passed a `callback(err, transformed)` which must be called\nonce it has completed with an error (which can be `null`) and a\ntransformed value. Invoked with (value, key, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called when all `iteratee`\nfunctions have finished, or an error occurs. Result is an object of the\ntransformed values from the `obj`. Invoked with (err, result)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 110,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/mapValuesSeries.js",
+ "memberof": null,
+ "longname": "lib/mapValuesSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import mapValuesLimit from './mapValuesLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `mapValues` but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf async\n * @see async.mapValues\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each value in `obj`.\n * The iteratee is passed a `callback(err, transformed)` which must be called\n * once it has completed with an error (which can be `null`) and a\n * transformed value. Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an object of the\n * transformed values from the `obj`. Invoked with (err, result).\n */\nexport default doLimit(mapValuesLimit, 1);\n"
+ },
+ {
+ "__docId__": 111,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/memoize.js",
+ "memberof": null,
+ "longname": "lib/memoize.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import identity from 'lodash/identity';\nimport rest from 'lodash/rest';\n\nimport setImmediate from './internal/setImmediate';\nimport initialParams from './internal/initialParams';\n\nfunction has(obj, key) {\n return key in obj;\n}\n\n/**\n * Caches the results of an `async` function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {Function} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\nexport default function memoize(fn, hasher) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n hasher = hasher || identity;\n var memoized = initialParams(function memoized(args, callback) {\n var key = hasher.apply(null, args);\n if (has(memo, key)) {\n setImmediate(function() {\n callback.apply(null, memo[key]);\n });\n } else if (has(queues, key)) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n fn.apply(null, args.concat([rest(function(args) {\n memo[key] = args;\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i].apply(null, args);\n }\n })]));\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n}\n"
+ },
+ {
+ "__docId__": 112,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "has",
+ "memberof": "lib/memoize.js",
+ "longname": "lib/memoize.js~has",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/memoize.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 7,
+ "undocument": true,
+ "params": [
+ {
+ "name": "obj",
+ "types": [
+ "*"
+ ]
+ },
+ {
+ "name": "key",
+ "types": [
+ "*"
+ ]
+ }
+ ],
+ "return": {
+ "types": [
+ "*"
+ ]
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 113,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "memoize",
+ "memberof": "lib/memoize.js",
+ "longname": "lib/memoize.js~memoize",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/memoize.js",
+ "importStyle": "memoize",
+ "description": "Caches the results of an `async` function. When creating a hash to store\nfunction results against, the callback is omitted from the hash and an\noptional hash function can be used.\n\nIf no hash function is specified, the first argument is used as a hash key,\nwhich may work reasonably if it is a string or a data type that converts to a\ndistinct string. Note that objects and arrays will not behave reasonably.\nNeither will cases where the other arguments are significant. In such cases,\nspecify your own hash function.\n\nThe cache of results is exposed as the `memo` property of the function\nreturned by `memoize`.",
+ "examples": [
+ "\nvar slow_fn = function(name, callback) {\n // do something\n callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function() {\n // callback\n});"
+ ],
+ "lineNumber": 47,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "memoize"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} a memoized version of `fn`"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "The function to proxy and cache results from."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "hasher",
+ "description": "An optional function for generating a custom hash\nfor storing results. It has all the arguments applied to it apart from the\ncallback, and must be synchronous."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "a memoized version of `fn`"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 114,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/nextTick.js",
+ "memberof": null,
+ "longname": "lib/nextTick.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "'use strict';\n\nimport { hasNextTick, hasSetImmediate, fallback, wrap } from './internal/setImmediate';\n\n/**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf async\n * @alias setImmediate\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\nvar _defer;\n\nif (hasNextTick) {\n _defer = process.nextTick;\n} else if (hasSetImmediate) {\n _defer = setImmediate;\n} else {\n _defer = fallback;\n}\n\nexport default wrap(_defer);\n"
+ },
+ {
+ "__docId__": 115,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/parallel.js",
+ "memberof": null,
+ "longname": "lib/parallel.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import parallelLimit from './parallelLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n */\nexport default doLimit(parallelLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 116,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/parallelLimit.js",
+ "memberof": null,
+ "longname": "lib/parallelLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfLimit from './internal/eachOfLimit';\nimport parallel from './internal/parallel';\n\n/**\n * The same as `parallel` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallel\n * @static\n * @memberOf async\n * @see async.parallel\n * @category Control Flow\n * @param {Array|Collection} tasks - A collection containing functions to run.\n * Each function is passed a `callback(err, result)` which it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n */\nexport default function parallelLimit(tasks, limit, callback) {\n parallel(eachOfLimit(limit), tasks, callback);\n}\n"
+ },
+ {
+ "__docId__": 117,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "parallelLimit",
+ "memberof": "lib/parallelLimit.js",
+ "longname": "lib/parallelLimit.js~parallelLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/parallelLimit.js",
+ "importStyle": "parallelLimit",
+ "description": "The same as `parallel` but runs a maximum of `limit` async operations at a\ntime.",
+ "see": [
+ "async.parallel"
+ ],
+ "lineNumber": 23,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "parallel"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Collection"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "A collection containing functions to run.\nEach function is passed a `callback(err, result)` which it must call on\ncompletion with an error `err` (which can be `null`) and an optional `result`\nvalue."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "limit",
+ "description": "The maximum number of async operations at a time."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback to run once all the\nfunctions have completed successfully. This function gets a results array\n(or object) containing all the result arguments passed to the task callbacks.\nInvoked with (err, results)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 118,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/priorityQueue.js",
+ "memberof": null,
+ "longname": "lib/priorityQueue.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayEach from 'lodash/_arrayEach';\nimport isArray from 'lodash/isArray';\nimport noop from 'lodash/noop';\n\nimport setImmediate from './setImmediate';\n\nimport queue from './queue';\n\n/**\n * The same as {@link async.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf async\n * @see async.queue\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {queue} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n */\nexport default function(worker, concurrency) {\n function _compareTasks(a, b) {\n return a.priority - b.priority;\n }\n\n function _binarySearch(sequence, item, compare) {\n var beg = -1,\n end = sequence.length - 1;\n while (beg < end) {\n var mid = beg + ((end - beg + 1) >>> 1);\n if (compare(item, sequence[mid]) >= 0) {\n beg = mid;\n } else {\n end = mid - 1;\n }\n }\n return beg;\n }\n\n function _insert(q, data, priority, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0) {\n // call drain immediately if there are no tasks\n return setImmediate(function() {\n q.drain();\n });\n }\n arrayEach(data, function(task) {\n var item = {\n data: task,\n priority: priority,\n callback: typeof callback === 'function' ? callback : noop\n };\n\n q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);\n\n setImmediate(q.process);\n });\n }\n\n // Start with a normal queue\n var q = queue(worker, concurrency);\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority, callback) {\n _insert(q, data, priority, callback);\n };\n\n // Remove unshift function\n delete q.unshift;\n\n return q;\n}\n"
+ },
+ {
+ "__docId__": 119,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "priorityQueue",
+ "memberof": "lib/priorityQueue.js",
+ "longname": "lib/priorityQueue.js~priorityQueue",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/priorityQueue.js",
+ "importStyle": "priorityQueue",
+ "description": "The same as {@link async.queue} only tasks are assigned a priority and\ncompleted in ascending priority order.",
+ "see": [
+ "async.queue"
+ ],
+ "lineNumber": 32,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "priorityQueue"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{queue} A priorityQueue object to manage the tasks. There are two\ndifferences between `queue` and `priorityQueue` objects:\n* `push(task, priority, [callback])` - `priority` should be a number. If an\n array of `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "worker",
+ "description": "An asynchronous function for processing a queued\ntask, which must call its `callback(err)` argument when finished, with an\noptional `error` as an argument. If you want to handle errors from an\nindividual task, pass a callback to `q.push()`. Invoked with\n(task, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "concurrency",
+ "description": "An `integer` for determining how many `worker`\nfunctions should be run in parallel. If omitted, the concurrency defaults to\n`1`. If the concurrency is `0`, an error is thrown."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "queue"
+ ],
+ "spread": false,
+ "description": "A priorityQueue object to manage the tasks. There are two\ndifferences between `queue` and `priorityQueue` objects:\n* `push(task, priority, [callback])` - `priority` should be a number. If an\n array of `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 120,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/queue.js",
+ "memberof": null,
+ "longname": "lib/queue.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import queue from './internal/queue';\n\n/**\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with ().\n * @property {Function} started - a function returning whether or not any\n * items have been pushed and processed by the queue. Invoke with ().\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with ().\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with ().\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with ().\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with (task, [callback]),\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with (task, [callback]).\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with ().\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with ().\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke with ().\n */\n\n/**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} worker - An asynchronous function for processing a queued\n * task, which must call its `callback(err)` argument when finished, with an\n * optional `error` as an argument. If you want to handle errors from an\n * individual task, pass a callback to `q.push()`. Invoked with\n * (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\nexport default function (worker, concurrency) {\n return queue(function (items, cb) {\n worker(items[0], cb);\n }, concurrency, 1);\n}\n"
+ },
+ {
+ "__docId__": 121,
+ "kind": "typedef",
+ "static": true,
+ "variation": null,
+ "name": "QueueObject",
+ "memberof": "lib/queue.js",
+ "longname": "lib/queue.js~QueueObject",
+ "access": null,
+ "description": "A queue of tasks for the worker function to complete.",
+ "properties": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "length",
+ "description": "a function returning the number of items\nwaiting to be processed. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "started",
+ "description": "a function returning whether or not any\nitems have been pushed and processed by the queue. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "running",
+ "description": "a function returning the number of items\ncurrently being processed. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "workersList",
+ "description": "a function returning the array of items\ncurrently being processed. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "idle",
+ "description": "a function returning false if there are items\nwaiting or being processed, or true if not. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "concurrency",
+ "description": "an integer for determining how many `worker`\nfunctions should be run in parallel. This property can be changed after a\n`queue` is created to alter the concurrency on-the-fly."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "push",
+ "description": "add a new task to the `queue`. Calls `callback`\nonce the `worker` has finished processing the task. Instead of a single task,\na `tasks` array can be submitted. The respective callback is used for every\ntask in the list. Invoke with (task, [callback]),"
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "unshift",
+ "description": "add a new task to the front of the `queue`.\nInvoke with (task, [callback])."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "saturated",
+ "description": "a callback that is called when the number of\nrunning workers hits the `concurrency` limit, and further tasks will be\nqueued."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "unsaturated",
+ "description": "a callback that is called when the number\nof running workers is less than the `concurrency` & `buffer` limits, and\nfurther tasks will not be queued."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "buffer",
+ "description": "A minimum threshold buffer in order to say that\nthe `queue` is `unsaturated`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "empty",
+ "description": "a callback that is called when the last item\nfrom the `queue` is given to a `worker`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "drain",
+ "description": "a callback that is called when the last item\nfrom the `queue` has returned from the `worker`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "error",
+ "description": "a callback that is called when a task errors.\nHas the signature `function(error, task)`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "boolean"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "paused",
+ "description": "a boolean for determining whether the queue is\nin a paused state."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "pause",
+ "description": "a function that pauses the processing of tasks\nuntil `resume()` is called. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "resume",
+ "description": "a function that resumes the processing of\nqueued tasks when the queue is paused. Invoke with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "kill",
+ "description": "a function that removes the `drain` callback and\nempties remaining tasks from the queue forcing it to go idle. Invoke with ()."
+ }
+ ],
+ "type": {
+ "types": [
+ "Object"
+ ],
+ "optional": false,
+ "name": "QueueObject"
+ }
+ },
+ {
+ "__docId__": 122,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "queue",
+ "memberof": "lib/queue.js",
+ "longname": "lib/queue.js~queue",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/queue.js",
+ "importStyle": "queue",
+ "description": "Creates a `queue` object with the specified `concurrency`. Tasks added to the\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available.\nOnce a `worker` completes a `task`, that `task`'s callback is called.",
+ "examples": [
+ "\n// create a queue object with concurrency 2\nvar q = async.queue(function(task, callback) {\n console.log('hello ' + task.name);\n callback();\n}, 2);\n\n// assign a callback\nq.drain = function() {\n console.log('all items have been processed');\n};\n\n// add some items to the queue\nq.push({name: 'foo'}, function(err) {\n console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n console.log('finished processing item');\n});\n\n// add some items to the front of the queue\nq.unshift({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n});"
+ ],
+ "lineNumber": 101,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "queue"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{QueueObject} A queue object to manage the tasks. Callbacks can\nattached as certain properties to listen for specific events during the\nlifecycle of the queue."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "worker",
+ "description": "An asynchronous function for processing a queued\ntask, which must call its `callback(err)` argument when finished, with an\noptional `error` as an argument. If you want to handle errors from an\nindividual task, pass a callback to `q.push()`. Invoked with\n(task, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": true,
+ "defaultValue": "1",
+ "defaultRaw": 1,
+ "name": "concurrency",
+ "description": "An `integer` for determining how many\n`worker` functions should be run in parallel. If omitted, the concurrency\ndefaults to `1`. If the concurrency is `0`, an error is thrown."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "QueueObject"
+ ],
+ "spread": false,
+ "description": "A queue object to manage the tasks. Callbacks can\nattached as certain properties to listen for specific events during the\nlifecycle of the queue."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 123,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/race.js",
+ "memberof": null,
+ "longname": "lib/race.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import isArray from 'lodash/isArray';\nimport each from 'lodash/each';\nimport noop from 'lodash/noop';\nimport once from './internal/once';\n\n/**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any the `tasks` completed or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array containing functions to run. Each function\n * is passed a `callback(err, result)` which it must call on completion with an\n * error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\nexport default function race(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n each(tasks, function (task) {\n task(callback);\n });\n}\n"
+ },
+ {
+ "__docId__": 124,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "race",
+ "memberof": "lib/race.js",
+ "longname": "lib/race.js~race",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/race.js",
+ "importStyle": "race",
+ "description": "Runs the `tasks` array of functions in parallel, without waiting until the\nprevious function has completed. Once any the `tasks` completed or pass an\nerror to its callback, the main `callback` is immediately called. It's\nequivalent to `Promise.race()`.",
+ "examples": [
+ "\nasync.race([\n function(callback) {\n setTimeout(function() {\n callback(null, 'one');\n }, 200);\n },\n function(callback) {\n setTimeout(function() {\n callback(null, 'two');\n }, 100);\n }\n],\n// main callback\nfunction(err, result) {\n // the result will be equal to 'two' as it finishes earlier\n});"
+ ],
+ "lineNumber": 42,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "race"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "undefined"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "An array containing functions to run. Each function\nis passed a `callback(err, result)` which it must call on completion with an\nerror `err` (which can be `null`) and an optional `result` value."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "callback",
+ "description": "A callback to run once any of the functions have\ncompleted. This function gets an error or result from the first function that\ncompleted. Invoked with (err, result)."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "description": "undefined"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 125,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/reduce.js",
+ "memberof": null,
+ "longname": "lib/reduce.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import eachOfSeries from './eachOfSeries';\n\n/**\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf async\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n */\nexport default function reduce(coll, memo, iteratee, callback) {\n eachOfSeries(coll, function(x, i, callback) {\n iteratee(memo, x, function(err, v) {\n memo = v;\n callback(err);\n });\n }, function(err) {\n callback(err, memo);\n });\n}\n"
+ },
+ {
+ "__docId__": 126,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "reduce",
+ "memberof": "lib/reduce.js",
+ "longname": "lib/reduce.js~reduce",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/reduce.js",
+ "importStyle": "reduce",
+ "description": "Reduces `coll` into a single value using an async `iteratee` to return each\nsuccessive step. `memo` is the initial state of the reduction. This function\nonly operates in series.\n\nFor performance reasons, it may make sense to split a call to this function\ninto a parallel map, and then use the normal `Array.prototype.reduce` on the\nresults. This function is for situations where each step in the reduction\nneeds to be async; if you can get the data before reducing it, then it's\nprobably a good idea to do so.",
+ "examples": [
+ "\nasync.reduce([1,2,3], 0, function(memo, item, callback) {\n // pointless async:\n process.nextTick(function() {\n callback(null, memo + item)\n });\n}, function(err, result) {\n // result is now equal to the last value of memo, which is 6\n});"
+ ],
+ "lineNumber": 42,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "reduce"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "inject"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "foldl"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "memo",
+ "description": "The initial state of the reduction."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function applied to each item in the\narray to produce the next step in the reduction. The `iteratee` is passed a\n`callback(err, reduction)` which accepts an optional error as its first\nargument, and the state of the reduction as the second. If an error is\npassed to the callback, the reduction is stopped and the main `callback` is\nimmediately called with the error. Invoked with (memo, item, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after all the\n`iteratee` functions have finished. Result is the reduced value. Invoked with\n(err, result)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 127,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/reduceRight.js",
+ "memberof": null,
+ "longname": "lib/reduceRight.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import reduce from './reduce';\n\nvar slice = Array.prototype.slice;\n\n/**\n * Same as `reduce`, only operates on `coll` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf async\n * @see async.reduce\n * @alias foldr\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {Function} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction. The `iteratee` is passed a\n * `callback(err, reduction)` which accepts an optional error as its first\n * argument, and the state of the reduction as the second. If an error is\n * passed to the callback, the reduction is stopped and the main `callback` is\n * immediately called with the error. Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n */\nexport default function reduceRight (coll, memo, iteratee, callback) {\n var reversed = slice.call(coll).reverse();\n reduce(reversed, memo, iteratee, callback);\n}\n"
+ },
+ {
+ "__docId__": 128,
+ "kind": "variable",
+ "static": true,
+ "variation": null,
+ "name": "slice",
+ "memberof": "lib/reduceRight.js",
+ "longname": "lib/reduceRight.js~slice",
+ "access": null,
+ "export": false,
+ "importPath": "async/lib/reduceRight.js",
+ "importStyle": null,
+ "description": null,
+ "lineNumber": 3,
+ "undocument": true,
+ "type": {
+ "types": [
+ "*"
+ ]
+ }
+ },
+ {
+ "__docId__": 129,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "reduceRight",
+ "memberof": "lib/reduceRight.js",
+ "longname": "lib/reduceRight.js~reduceRight",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/reduceRight.js",
+ "importStyle": "reduceRight",
+ "description": "Same as `reduce`, only operates on `coll` in reverse order.",
+ "see": [
+ "async.reduce"
+ ],
+ "lineNumber": 26,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "reduceRight"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@alias",
+ "tagValue": "foldr"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "memo",
+ "description": "The initial state of the reduction."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function applied to each item in the\narray to produce the next step in the reduction. The `iteratee` is passed a\n`callback(err, reduction)` which accepts an optional error as its first\nargument, and the state of the reduction as the second. If an error is\npassed to the callback, the reduction is stopped and the main `callback` is\nimmediately called with the error. Invoked with (memo, item, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after all the\n`iteratee` functions have finished. Result is the reduced value. Invoked with\n(err, result)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 130,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/reflect.js",
+ "memberof": null,
+ "longname": "lib/reflect.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import initialParams from './internal/initialParams';\nimport rest from 'lodash/rest';\n\n/**\n * Wraps the function in another function that always returns data even when it\n * errors.\n *\n * The object returned has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} fn - The function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\nexport default function reflect(fn) {\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push(rest(function callback(err, cbArgs) {\n if (err) {\n reflectCallback(null, {\n error: err\n });\n } else {\n var value = null;\n if (cbArgs.length === 1) {\n value = cbArgs[0];\n } else if (cbArgs.length > 1) {\n value = cbArgs;\n }\n reflectCallback(null, {\n value: value\n });\n }\n }));\n\n return fn.apply(this, args);\n });\n}\n"
+ },
+ {
+ "__docId__": 131,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "reflect",
+ "memberof": "lib/reflect.js",
+ "longname": "lib/reflect.js~reflect",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/reflect.js",
+ "importStyle": "reflect",
+ "description": "Wraps the function in another function that always returns data even when it\nerrors.\n\nThe object returned has either the property `error` or `value`.",
+ "examples": [
+ "\nasync.parallel([\n async.reflect(function(callback) {\n // do some stuff ...\n callback(null, 'one');\n }),\n async.reflect(function(callback) {\n // do some more stuff but error ...\n callback('bad stuff happened');\n }),\n async.reflect(function(callback) {\n // do some more stuff ...\n callback(null, 'two');\n })\n],\n// optional callback\nfunction(err, results) {\n // values\n // results[0].value = 'one'\n // results[1].error = 'bad stuff happened'\n // results[2].value = 'two'\n});"
+ ],
+ "lineNumber": 42,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "reflect"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} - A function that always passes null to it's callback as\nthe error. The second argument to the callback will be an `object` with\neither an `error` or a `value` property."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "The function you want to wrap"
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "A function that always passes null to it's callback as\nthe error. The second argument to the callback will be an `object` with\neither an `error` or a `value` property."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 132,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/reflectAll.js",
+ "memberof": null,
+ "longname": "lib/reflectAll.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import reflect from './reflect';\n\n/**\n * A helper function that wraps an array of functions with reflect.\n *\n * @name reflectAll\n * @static\n * @memberOf async\n * @see async.reflect\n * @category Util\n * @param {Array} tasks - The array of functions to wrap in `async.reflect`.\n * @returns {Array} Returns an array of functions, each function wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n */\nexport default function reflectAll(tasks) {\n return tasks.map(reflect);\n}\n"
+ },
+ {
+ "__docId__": 133,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "reflectAll",
+ "memberof": "lib/reflectAll.js",
+ "longname": "lib/reflectAll.js~reflectAll",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/reflectAll.js",
+ "importStyle": "reflectAll",
+ "description": "A helper function that wraps an array of functions with reflect.",
+ "examples": [
+ "\nlet tasks = [\n function(callback) {\n setTimeout(function() {\n callback(null, 'one');\n }, 200);\n },\n function(callback) {\n // do some more stuff but error ...\n callback(new Error('bad stuff happened'));\n },\n function(callback) {\n setTimeout(function() {\n callback(null, 'two');\n }, 100);\n }\n];\n\nasync.parallel(async.reflectAll(tasks),\n// optional callback\nfunction(err, results) {\n // values\n // results[0].value = 'one'\n // results[1].error = Error('bad stuff happened')\n // results[2].value = 'two'\n});"
+ ],
+ "see": [
+ "async.reflect"
+ ],
+ "lineNumber": 42,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "reflectAll"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Array} Returns an array of functions, each function wrapped in\n`async.reflect`"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "The array of functions to wrap in `async.reflect`."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Array"
+ ],
+ "spread": false,
+ "description": "Returns an array of functions, each function wrapped in\n`async.reflect`"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 134,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/reject.js",
+ "memberof": null,
+ "longname": "lib/reject.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rejectLimit from './rejectLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The opposite of `filter`. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf async\n * @see async.filter\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n */\nexport default doLimit(rejectLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 135,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/rejectLimit.js",
+ "memberof": null,
+ "longname": "lib/rejectLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import reject from './internal/reject';\nimport doParallelLimit from './internal/doParallelLimit';\n\n/**\n * The same as `reject` but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nexport default doParallelLimit(reject);\n"
+ },
+ {
+ "__docId__": 136,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/rejectSeries.js",
+ "memberof": null,
+ "longname": "lib/rejectSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import rejectLimit from './rejectLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `reject` but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf async\n * @see async.reject\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nexport default doLimit(rejectLimit, 1);\n"
+ },
+ {
+ "__docId__": 137,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/retry.js",
+ "memberof": null,
+ "longname": "lib/retry.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import series from './series';\nimport noop from 'lodash/noop';\nimport constant from 'lodash/constant';\n\n/**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {Function} task - A function which receives two arguments: (1) a\n * `callback(err, result)` which must be called when finished, passing `err`\n * (which can be `null`) and the `result` of the function's execution, and (2)\n * a `results` object, containing the results of the previously executed\n * functions (if nested inside another control flow). Invoked with\n * (callback, results).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // It can also be embedded within other control flow functions to retry\n * // individual methods that are not as reliable, like this:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retry(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n */\nexport default function retry(opts, task, callback) {\n var DEFAULT_TIMES = 5;\n var DEFAULT_INTERVAL = 0;\n\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant(DEFAULT_INTERVAL)\n };\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant(+t.interval || DEFAULT_INTERVAL);\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || noop;\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || noop;\n }\n\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var attempts = [];\n for (var i = 1; i < options.times + 1; i++) {\n var isFinalAttempt = (i == options.times);\n attempts.push(retryAttempt(isFinalAttempt));\n var interval = options.intervalFunc(i);\n if (!isFinalAttempt && interval > 0) {\n attempts.push(retryInterval(interval));\n }\n }\n\n series(attempts, function(done, data) {\n data = data[data.length - 1];\n callback(data.err, data.result);\n });\n\n\n function retryAttempt(isFinalAttempt) {\n return function(seriesCallback) {\n task(function(err, result) {\n seriesCallback(!err || isFinalAttempt, {\n err: err,\n result: result\n });\n });\n };\n }\n\n function retryInterval(interval) {\n return function(seriesCallback) {\n setTimeout(function() {\n seriesCallback(null);\n }, interval);\n };\n }\n}\n"
+ },
+ {
+ "__docId__": 138,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "retry",
+ "memberof": "lib/retry.js",
+ "longname": "lib/retry.js~retry",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/retry.js",
+ "importStyle": "retry",
+ "description": "Attempts to get a successful response from `task` no more than `times` times\nbefore returning an error. If the task is successful, the `callback` will be\npassed the result of the successful task. If all attempts fail, the callback\nwill be passed the error and result (if any) of the final attempt.",
+ "examples": [
+ "\n// The `retry` function can be used as a stand-alone control flow by passing\n// a callback, as shown below:\n\n// try calling apiMethod 3 times\nasync.retry(3, apiMethod, function(err, result) {\n // do something with the result\n});\n\n// try calling apiMethod 3 times, waiting 200 ms between each retry\nasync.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n // do something with the result\n});\n\n// try calling apiMethod 10 times with exponential backoff\n// (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\nasync.retry({\n times: 10,\n interval: function(retryCount) {\n return 50 * Math.pow(2, retryCount);\n }\n}, apiMethod, function(err, result) {\n // do something with the result\n});\n\n// try calling apiMethod the default 5 times no delay between each retry\nasync.retry(apiMethod, function(err, result) {\n // do something with the result\n});\n\n// It can also be embedded within other control flow functions to retry\n// individual methods that are not as reliable, like this:\nasync.auto({\n users: api.getUsers.bind(api),\n payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n // do something with the results\n});"
+ ],
+ "lineNumber": 74,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "retry"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Object",
+ "number"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "opts",
+ "description": "= {times: 5, interval: 0}| 5] - Can be either an\nobject with `times` and `interval` or a number.\n* `times` - The number of attempts to make before giving up. The default\n is `5`.\n* `interval` - The time to wait between retries, in milliseconds. The\n default is `0`. The interval may also be specified as a function of the\n retry count (see example).\n* If `opts` is a number, the number specifies the number of times to retry,\n with the default interval of `0`."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "task",
+ "description": "A function which receives two arguments: (1) a\n`callback(err, result)` which must be called when finished, passing `err`\n(which can be `null`) and the `result` of the function's execution, and (2)\na `results` object, containing the results of the previously executed\nfunctions (if nested inside another control flow). Invoked with\n(callback, results)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback which is called when the\ntask has succeeded, or after the final failed attempt. It receives the `err`\nand `result` arguments of the last attempt at completing the `task`. Invoked\nwith (err, results)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 139,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/retryable.js",
+ "memberof": null,
+ "longname": "lib/retryable.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import retry from './retry';\nimport initialParams from './internal/initialParams';\n\n/**\n * A close relative of `retry`. This method wraps a task and makes it\n * retryable, rather than immediately calling it with retries.\n *\n * @name retryable\n * @static\n * @memberOf async\n * @see async.retry\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {Function} task - the asynchronous function to wrap\n * @returns {Functions} The wrapped function, which when invoked, will retry on\n * an error, based on the parameters specified in `opts`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\nexport default function (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n return initialParams(function (args, callback) {\n function taskFn(cb) {\n task.apply(null, args.concat([cb]));\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n });\n}\n"
+ },
+ {
+ "__docId__": 140,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "retryable",
+ "memberof": "lib/retryable.js",
+ "longname": "lib/retryable.js~retryable",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/retryable.js",
+ "importStyle": "retryable",
+ "description": "A close relative of `retry`. This method wraps a task and makes it\nretryable, rather than immediately calling it with retries.",
+ "examples": [
+ "\nasync.auto({\n dep1: async.retryable(3, getFromFlakyService),\n process: [\"dep1\", async.retryable(3, function (results, cb) {\n maybeProcessData(results.dep1, cb);\n })]\n}, callback);"
+ ],
+ "see": [
+ "async.retry"
+ ],
+ "lineNumber": 27,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "retryable"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Functions} The wrapped function, which when invoked, will retry on\nan error, based on the parameters specified in `opts`."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Object",
+ "number"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "opts",
+ "description": "= {times: 5, interval: 0}| 5] - optional\noptions, exactly the same as from `retry`"
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "task",
+ "description": "the asynchronous function to wrap"
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Functions"
+ ],
+ "spread": false,
+ "description": "The wrapped function, which when invoked, will retry on\nan error, based on the parameters specified in `opts`."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 141,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/seq.js",
+ "memberof": null,
+ "longname": "lib/seq.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport rest from 'lodash/rest';\nimport reduce from './reduce';\n\n/**\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * {@link async.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf async\n * @see async.compose\n * @category Control Flow\n * @param {...Function} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n */\nexport default rest(function seq(functions) {\n return rest(function(args) {\n var that = this;\n\n var cb = args[args.length - 1];\n if (typeof cb == 'function') {\n args.pop();\n } else {\n cb = noop;\n }\n\n reduce(functions, args, function(newargs, fn, cb) {\n fn.apply(that, newargs.concat([rest(function(err, nextargs) {\n cb(err, nextargs);\n })]));\n },\n function(err, results) {\n cb.apply(that, [err].concat(results));\n });\n });\n})\n"
+ },
+ {
+ "__docId__": 142,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/series.js",
+ "memberof": null,
+ "longname": "lib/series.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import parallel from './internal/parallel';\nimport eachOfSeries from './eachOfSeries';\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array|Object} tasks - A collection containing functions to run, each\n * function is passed a `callback(err, result)` it must call on completion with\n * an error `err` (which can be `null`) and an optional `result` value.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n */\nexport default function series(tasks, callback) {\n parallel(eachOfSeries, tasks, callback);\n}\n"
+ },
+ {
+ "__docId__": 143,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "series",
+ "memberof": "lib/series.js",
+ "longname": "lib/series.js~series",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/series.js",
+ "importStyle": "series",
+ "description": "Run the functions in the `tasks` collection in series, each one running once\nthe previous function has completed. If any functions in the series pass an\nerror to its callback, no more functions are run, and `callback` is\nimmediately called with the value of the error. Otherwise, `callback`\nreceives an array of results when `tasks` have completed.\n\nIt is also possible to use an object instead of an array. Each property will\nbe run as a function, and the results will be passed to the final `callback`\nas an object instead of an array. This can be a more readable way of handling\n results from {@link async.series}.\n\n**Note** that while many implementations preserve the order of object\nproperties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed,\nand want this to work on all platforms, consider using an array.",
+ "examples": [
+ "async.series([\n function(callback) {\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback) {\n // do some more stuff ...\n callback(null, 'two');\n }\n],\n// optional callback\nfunction(err, results) {\n // results is now equal to ['one', 'two']\n});\n\nasync.series({\n one: function(callback) {\n setTimeout(function() {\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function() {\n callback(null, 2);\n }, 100);\n }\n}, function(err, results) {\n // results is now equal to: {one: 1, two: 2}\n});"
+ ],
+ "lineNumber": 67,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "series"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "A collection containing functions to run, each\nfunction is passed a `callback(err, result)` it must call on completion with\nan error `err` (which can be `null`) and an optional `result` value."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback to run once all the\nfunctions have completed. This function gets a results array (or object)\ncontaining all the result arguments passed to the `task` callbacks. Invoked\nwith (err, result)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 144,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/setImmediate.js",
+ "memberof": null,
+ "longname": "lib/setImmediate.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import setImmediate from './internal/setImmediate';\n\n/**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `setImmediate`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name setImmediate\n * @static\n * @memberOf async\n * @alias nextTick\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\nexport default setImmediate;\n"
+ },
+ {
+ "__docId__": 145,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/some.js",
+ "memberof": null,
+ "longname": "lib/some.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import someLimit from './someLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf async\n * @alias any\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n */\nexport default doLimit(someLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 146,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/someLimit.js",
+ "memberof": null,
+ "longname": "lib/someLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import createTester from './internal/createTester';\nimport eachOfLimit from './eachOfLimit';\nimport identity from 'lodash/identity';\n\n/**\n * The same as `some` but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf async\n * @see async.some\n * @alias anyLimit\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nexport default createTester(eachOfLimit, Boolean, identity);\n"
+ },
+ {
+ "__docId__": 147,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/someSeries.js",
+ "memberof": null,
+ "longname": "lib/someSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import someLimit from './someLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as `some` but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf async\n * @see async.some\n * @alias anySeries\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in the array\n * in parallel. The iteratee is passed a `callback(err, truthValue)` which must\n * be called with a boolean argument once it has completed. Invoked with\n * (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nexport default doLimit(someLimit, 1);\n"
+ },
+ {
+ "__docId__": 148,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/sortBy.js",
+ "memberof": null,
+ "longname": "lib/sortBy.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import arrayMap from 'lodash/_arrayMap';\nimport property from 'lodash/_baseProperty';\n\nimport map from './map';\n\n/**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A function to apply to each item in `coll`.\n * The iteratee is passed a `callback(err, sortValue)` which must be called once\n * it has completed with an error (which can be `null`) and a value to use as\n * the sort criteria. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n */\nexport default function sortBy (coll, iteratee, callback) {\n map(coll, function (x, callback) {\n iteratee(x, function (err, criteria) {\n if (err) return callback(err);\n callback(null, {value: x, criteria: criteria});\n });\n }, function (err, results) {\n if (err) return callback(err);\n callback(null, arrayMap(results.sort(comparator), property('value')));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n}\n"
+ },
+ {
+ "__docId__": 149,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "sortBy",
+ "memberof": "lib/sortBy.js",
+ "longname": "lib/sortBy.js~sortBy",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/sortBy.js",
+ "importStyle": "sortBy",
+ "description": "Sorts a list by the results of running each `coll` value through an async\n`iteratee`.",
+ "examples": [
+ "\nasync.sortBy(['file1','file2','file3'], function(file, callback) {\n fs.stat(file, function(err, stats) {\n callback(err, stats.mtime);\n });\n}, function(err, results) {\n // results is now the original array of files sorted by\n // modified date\n});\n\n// By modifying the callback parameter the\n// sorting order can be influenced:\n\n// ascending order\nasync.sortBy([1,9,3,5], function(x, callback) {\n callback(null, x);\n}, function(err,result) {\n // result callback\n});\n\n// descending order\nasync.sortBy([1,9,3,5], function(x, callback) {\n callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n}, function(err,result) {\n // result callback\n});"
+ ],
+ "lineNumber": 51,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "sortBy"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function to apply to each item in `coll`.\nThe iteratee is passed a `callback(err, sortValue)` which must be called once\nit has completed with an error (which can be `null`) and a value to use as\nthe sort criteria. Invoked with (item, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after all the\n`iteratee` functions have finished, or an error occurs. Results is the items\nfrom the original `coll` sorted by the values returned by the `iteratee`\ncalls. Invoked with (err, results)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 150,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/timeout.js",
+ "memberof": null,
+ "longname": "lib/timeout.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import initialParams from './internal/initialParams';\n\n/**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf async\n * @category Util\n * @param {Function} asyncFn - The asynchronous function you want to set the\n * time limit.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {Function} Returns a wrapped function that can be used with any of\n * the control flow functions.\n * @example\n *\n * async.timeout(function(callback) {\n * doAsyncTask(callback);\n * }, 1000);\n */\nexport default function timeout(asyncFn, milliseconds, info) {\n var originalCallback, timer;\n var timedOut = false;\n\n function injectedCallback() {\n if (!timedOut) {\n originalCallback.apply(null, arguments);\n clearTimeout(timer);\n }\n }\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n originalCallback(error);\n }\n\n return initialParams(function (args, origCallback) {\n originalCallback = origCallback;\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n asyncFn.apply(null, args.concat(injectedCallback));\n });\n}\n"
+ },
+ {
+ "__docId__": 151,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "timeout",
+ "memberof": "lib/timeout.js",
+ "longname": "lib/timeout.js~timeout",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/timeout.js",
+ "importStyle": "timeout",
+ "description": "Sets a time limit on an asynchronous function. If the function does not call\nits callback within the specified milliseconds, it will be called with a\ntimeout error. The code property for the error object will be `'ETIMEDOUT'`.",
+ "examples": [
+ "\nasync.timeout(function(callback) {\n doAsyncTask(callback);\n}, 1000);"
+ ],
+ "lineNumber": 25,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "timeout"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} Returns a wrapped function that can be used with any of\nthe control flow functions."
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "asyncFn",
+ "description": "The asynchronous function you want to set the\ntime limit."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "milliseconds",
+ "description": "The specified time limit."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "info",
+ "description": "Any variable you want attached (`string`, `object`, etc)\nto timeout Error for more information.."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "Returns a wrapped function that can be used with any of\nthe control flow functions."
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 152,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/times.js",
+ "memberof": null,
+ "longname": "lib/times.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import timesLimit from './timesLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with {@link async.map}.\n *\n * @name times\n * @static\n * @memberOf async\n * @see async.map\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\nexport default doLimit(timesLimit, Infinity);\n"
+ },
+ {
+ "__docId__": 153,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/timesLimit.js",
+ "memberof": null,
+ "longname": "lib/timesLimit.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import mapLimit from './mapLimit';\nimport range from 'lodash/_baseRange';\n\n/**\n* The same as {@link times} but runs a maximum of `limit` async operations at a\n* time.\n *\n * @name timesLimit\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n */\nexport default function timeLimit(count, limit, iteratee, callback) {\n mapLimit(range(0, count, 1), limit, iteratee, callback);\n}\n"
+ },
+ {
+ "__docId__": 154,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "timeLimit",
+ "memberof": "lib/timesLimit.js",
+ "longname": "lib/timesLimit.js~timeLimit",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/timesLimit.js",
+ "importStyle": "timeLimit",
+ "description": "The same as {@link times} but runs a maximum of `limit` async operations at a\ntime.",
+ "see": [
+ "async.times"
+ ],
+ "lineNumber": 19,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "timesLimit"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "count",
+ "description": "The number of times to run the function."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "number"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "limit",
+ "description": "The maximum number of async operations at a time."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "The function to call `n` times. Invoked with the\niteration index and a callback (n, next)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "callback",
+ "description": "see {@link async.map}."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 155,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/timesSeries.js",
+ "memberof": null,
+ "longname": "lib/timesSeries.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import timesLimit from './timesLimit';\nimport doLimit from './internal/doLimit';\n\n/**\n * The same as {@link async.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf async\n * @see async.times\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {Function} iteratee - The function to call `n` times. Invoked with the\n * iteration index and a callback (n, next).\n * @param {Function} callback - see {@link async.map}.\n */\nexport default doLimit(timesLimit, 1);\n"
+ },
+ {
+ "__docId__": 156,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/transform.js",
+ "memberof": null,
+ "longname": "lib/transform.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import isArray from 'lodash/isArray';\n\nimport eachOf from './eachOf';\n\n/**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf async\n * @category Collection\n * @param {Array|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {Function} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator. The `iteratee` is\n * passed a `callback(err)` which accepts an optional error as its first\n * argument. If an error is passed to the callback, the transform is stopped\n * and the main `callback` is immediately called with the error.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n */\nexport default function transform (coll, accumulator, iteratee, callback) {\n if (arguments.length === 3) {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = isArray(coll) ? [] : {};\n }\n\n eachOf(coll, function(v, k, cb) {\n iteratee(accumulator, v, k, cb);\n }, function(err) {\n callback(err, accumulator);\n });\n}\n"
+ },
+ {
+ "__docId__": 157,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "transform",
+ "memberof": "lib/transform.js",
+ "longname": "lib/transform.js~transform",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/transform.js",
+ "importStyle": "transform",
+ "description": "A relative of `reduce`. Takes an Object or Array, and iterates over each\nelement in series, each step potentially mutating an `accumulator` value.\nThe type of the accumulator defaults to the type of collection passed in.",
+ "examples": [
+ "\nasync.transform([1,2,3], function(acc, item, index, callback) {\n // pointless async:\n process.nextTick(function() {\n acc.push(item * 2)\n callback(null)\n });\n}, function(err, result) {\n // result is now equal to [2, 4, 6]\n});",
+ "\nasync.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n setImmediate(function () {\n obj[key] = val * 2;\n callback();\n })\n}, function (err, result) {\n // result is equal to {a: 2, b: 4, c: 6}\n})"
+ ],
+ "lineNumber": 49,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "transform"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Collection"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array",
+ "Object"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "coll",
+ "description": "A collection to iterate over."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "accumulator",
+ "description": "The initial state of the transform. If omitted,\nit will default to an empty Object or Array, depending on the type of `coll`"
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function applied to each item in the\ncollection that potentially modifies the accumulator. The `iteratee` is\npassed a `callback(err)` which accepts an optional error as its first\nargument. If an error is passed to the callback, the transform is stopped\nand the main `callback` is immediately called with the error.\nInvoked with (accumulator, item, key, callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after all the\n`iteratee` functions have finished. Result is the transformed accumulator.\nInvoked with (err, result)."
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 158,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/unmemoize.js",
+ "memberof": null,
+ "longname": "lib/unmemoize.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 13,
+ "content": "/**\n * Undoes a {@link async.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf async\n * @see async.memoize\n * @category Util\n * @param {Function} fn - the memoized function\n * @returns {Function} a function that calls the original unmemoized function\n */\nexport default function unmemoize(fn) {\n return function () {\n return (fn.unmemoized || fn).apply(null, arguments);\n };\n}\n"
+ },
+ {
+ "__docId__": 159,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "unmemoize",
+ "memberof": "lib/unmemoize.js",
+ "longname": "lib/unmemoize.js~unmemoize",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/unmemoize.js",
+ "importStyle": "unmemoize",
+ "description": "Undoes a {@link async.memoize}d function, reverting it to the original,\nunmemoized form. Handy for testing.",
+ "see": [
+ "async.memoize"
+ ],
+ "lineNumber": 13,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "unmemoize"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Util"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "{Function} a function that calls the original unmemoized function"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "the memoized function"
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "description": "a function that calls the original unmemoized function"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 160,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/until.js",
+ "memberof": null,
+ "longname": "lib/until.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import whilst from './whilst';\n\n/**\n * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `fn`'s callback.\n *\n * The inverse of {@link async.whilst}.\n *\n * @name until\n * @static\n * @memberOf async\n * @see async.whilst\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} fn - A function which is called each time `test` fails.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n */\nexport default function until(test, fn, callback) {\n whilst(function() {\n return !test.apply(this, arguments);\n }, fn, callback);\n}\n"
+ },
+ {
+ "__docId__": 161,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "until",
+ "memberof": "lib/until.js",
+ "longname": "lib/until.js~until",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/until.js",
+ "importStyle": "until",
+ "description": "Repeatedly call `fn` until `test` returns `true`. Calls `callback` when\nstopped, or an error occurs. `callback` will be passed an error and any\narguments passed to the final `fn`'s callback.\n\nThe inverse of {@link async.whilst}.",
+ "see": [
+ "async.whilst"
+ ],
+ "lineNumber": 25,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "until"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "synchronous truth test to perform before each\nexecution of `fn`. Invoked with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "fn",
+ "description": "A function which is called each time `test` fails.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has passed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "generator": false
+ },
+ {
+ "__docId__": 162,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/waterfall.js",
+ "memberof": null,
+ "longname": "lib/waterfall.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import isArray from 'lodash/isArray';\nimport noop from 'lodash/noop';\nimport once from './internal/once';\nimport rest from 'lodash/rest';\n\nimport onlyOnce from './internal/onlyOnce';\n\n/**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Array} tasks - An array of functions to run, each function is passed\n * a `callback(err, result1, result2, ...)` it must call on completion. The\n * first argument is an error (which can be `null`) and any further arguments\n * will be passed as arguments in order to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\nexport default function(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n if (taskIndex === tasks.length) {\n return callback.apply(null, [null].concat(args));\n }\n\n var taskCallback = onlyOnce(rest(function(err, args) {\n if (err) {\n return callback.apply(null, [err].concat(args));\n }\n nextTask(args);\n }));\n\n args.push(taskCallback);\n\n var task = tasks[taskIndex++];\n task.apply(null, args);\n }\n\n nextTask([]);\n}\n"
+ },
+ {
+ "__docId__": 163,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "waterfall",
+ "memberof": "lib/waterfall.js",
+ "longname": "lib/waterfall.js~waterfall",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/waterfall.js",
+ "importStyle": "waterfall",
+ "description": "Runs the `tasks` array of functions in series, each passing their results to\nthe next in the array. However, if any of the `tasks` pass an error to their\nown callback, the next function is not executed, and the main `callback` is\nimmediately called with the error.",
+ "examples": [
+ "\nasync.waterfall([\n function(callback) {\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback) {\n // arg1 now equals 'one' and arg2 now equals 'two'\n callback(null, 'three');\n },\n function(arg1, callback) {\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n], function (err, result) {\n // result now equals 'done'\n});\n\n// Or, with named functions:\nasync.waterfall([\n myFirstFunction,\n mySecondFunction,\n myLastFunction,\n], function (err, result) {\n // result now equals 'done'\n});\nfunction myFirstFunction(callback) {\n callback(null, 'one', 'two');\n}\nfunction mySecondFunction(arg1, arg2, callback) {\n // arg1 now equals 'one' and arg2 now equals 'two'\n callback(null, 'three');\n}\nfunction myLastFunction(arg1, callback) {\n // arg1 now equals 'three'\n callback(null, 'done');\n}"
+ ],
+ "lineNumber": 64,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "waterfall"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "undefined"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Array"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "tasks",
+ "description": "An array of functions to run, each function is passed\na `callback(err, result1, result2, ...)` it must call on completion. The\nfirst argument is an error (which can be `null`) and any further arguments\nwill be passed as arguments in order to the next task."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "An optional callback to run once all the\nfunctions have completed. This will be passed the results of the last task's\ncallback. Invoked with (err, [results])."
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "description": "undefined"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 164,
+ "kind": "file",
+ "static": true,
+ "variation": null,
+ "name": "lib/whilst.js",
+ "memberof": null,
+ "longname": "lib/whilst.js",
+ "access": null,
+ "description": null,
+ "lineNumber": 1,
+ "content": "import noop from 'lodash/noop';\nimport rest from 'lodash/rest';\n\n/**\n * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf async\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `fn`. Invoked with ().\n * @param {Function} iteratee - A function which is called each time `test` passes.\n * The function is passed a `callback(err)`, which must be called once it has\n * completed with an optional `err` argument. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `fn`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\nexport default function whilst(test, iteratee, callback) {\n callback = callback || noop;\n if (!test()) return callback(null);\n var next = rest(function(err, args) {\n if (err) return callback(err);\n if (test.apply(this, args)) return iteratee(next);\n callback.apply(null, [null].concat(args));\n });\n iteratee(next);\n}\n"
+ },
+ {
+ "__docId__": 165,
+ "kind": "function",
+ "static": true,
+ "variation": null,
+ "name": "whilst",
+ "memberof": "lib/whilst.js",
+ "longname": "lib/whilst.js~whilst",
+ "access": null,
+ "export": true,
+ "importPath": "async/lib/whilst.js",
+ "importStyle": "whilst",
+ "description": "Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when\nstopped, or an error occurs.",
+ "examples": [
+ "\nvar count = 0;\nasync.whilst(\n function() { return count < 5; },\n function(callback) {\n count++;\n setTimeout(function() {\n callback(null, count);\n }, 1000);\n },\n function (err, n) {\n // 5 seconds have passed, n = 5\n }\n);"
+ ],
+ "lineNumber": 38,
+ "unknown": [
+ {
+ "tagName": "@name",
+ "tagValue": "whilst"
+ },
+ {
+ "tagName": "@static",
+ "tagValue": ""
+ },
+ {
+ "tagName": "@memberOf",
+ "tagValue": "async"
+ },
+ {
+ "tagName": "@category",
+ "tagValue": "Control Flow"
+ },
+ {
+ "tagName": "@returns",
+ "tagValue": "undefined"
+ }
+ ],
+ "params": [
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "test",
+ "description": "synchronous truth test to perform before each\nexecution of `fn`. Invoked with ()."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": false,
+ "name": "iteratee",
+ "description": "A function which is called each time `test` passes.\nThe function is passed a `callback(err)`, which must be called once it has\ncompleted with an optional `err` argument. Invoked with (callback)."
+ },
+ {
+ "nullable": null,
+ "types": [
+ "Function"
+ ],
+ "spread": false,
+ "optional": true,
+ "name": "callback",
+ "description": "A callback which is called after the test\nfunction has failed and repeated execution of `fn` has stopped. `callback`\nwill be passed an error and any arguments passed to the final `fn`'s\ncallback. Invoked with (err, [results]);"
+ }
+ ],
+ "return": {
+ "nullable": null,
+ "types": [
+ "*"
+ ],
+ "spread": false,
+ "description": "undefined"
+ },
+ "generator": false
+ },
+ {
+ "__docId__": 167,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Infinity",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Infinity",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 168,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "NaN",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~NaN",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 169,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "undefined",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~undefined",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 170,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "null",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~null",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 171,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Object",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Object",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 172,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "object",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~object",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 173,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Function",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Function",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 174,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "function",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~function",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 175,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Boolean",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Boolean",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 176,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "boolean",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~boolean",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 177,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Symbol",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Symbol",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 178,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Error",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Error",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 179,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "EvalError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~EvalError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 180,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "InternalError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~InternalError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 181,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "RangeError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~RangeError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 182,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "ReferenceError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 183,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "SyntaxError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 184,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "TypeError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~TypeError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 185,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "URIError",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~URIError",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 186,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Number",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Number",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 187,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "number",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~number",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 188,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Date",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Date",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 189,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "String",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~String",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 190,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "string",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~string",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 191,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "RegExp",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~RegExp",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 192,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 193,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Int8Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 194,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Uint8Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 195,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Uint8ClampedArray",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 196,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Int16Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 197,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Uint16Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 198,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Int32Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 199,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Uint32Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 200,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Float32Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 201,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Float64Array",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 202,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Map",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Map",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 203,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Set",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Set",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 204,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "WeakMap",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 205,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "WeakSet",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 206,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "ArrayBuffer",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 207,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "DataView",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~DataView",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 208,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "JSON",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~JSON",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 209,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Promise",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Promise",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 210,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Generator",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Generator",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 211,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "GeneratorFunction",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 212,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Reflect",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Reflect",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 213,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Proxy",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
+ "memberof": "BuiltinExternal/ECMAScriptExternal.js",
+ "longname": "BuiltinExternal/ECMAScriptExternal.js~Proxy",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 215,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "CanvasRenderingContext2D",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 216,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "DocumentFragment",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 217,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Element",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Element",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~Element",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 218,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Event",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Event",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~Event",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 219,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "Node",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Node",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~Node",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 220,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "NodeList",
+ "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/NodeList",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~NodeList",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 221,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "XMLHttpRequest",
+ "externalLink": "https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ },
+ {
+ "__docId__": 222,
+ "kind": "external",
+ "static": true,
+ "variation": null,
+ "name": "AudioContext",
+ "externalLink": "https://developer.mozilla.org/en/docs/Web/API/AudioContext",
+ "memberof": "BuiltinExternal/WebAPIExternal.js",
+ "longname": "BuiltinExternal/WebAPIExternal.js~AudioContext",
+ "access": null,
+ "description": "",
+ "builtinExternal": true
+ }
+] \ No newline at end of file
diff --git a/docs/file/lib/apply.js.html b/docs/file/lib/apply.js.html
new file mode 100644
index 0000000..0e9b76c
--- /dev/null
+++ b/docs/file/lib/apply.js.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/apply.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/apply.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rest from &apos;lodash/rest&apos;;
+
+/**
+ * Creates a continuation function with some arguments already applied.
+ *
+ * Useful as a shorthand when combined with other control flow functions. Any
+ * arguments passed to the returned function are added to the arguments
+ * originally passed to apply.
+ *
+ * @name apply
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} function - The function you want to eventually apply all
+ * arguments to. Invokes with (arguments...).
+ * @param {...*} arguments... - Any number of arguments to automatically apply
+ * when the continuation is called.
+ * @example
+ *
+ * // using apply
+ * async.parallel([
+ * async.apply(fs.writeFile, &apos;testfile1&apos;, &apos;test1&apos;),
+ * async.apply(fs.writeFile, &apos;testfile2&apos;, &apos;test2&apos;)
+ * ]);
+ *
+ *
+ * // the same process without using apply
+ * async.parallel([
+ * function(callback) {
+ * fs.writeFile(&apos;testfile1&apos;, &apos;test1&apos;, callback);
+ * },
+ * function(callback) {
+ * fs.writeFile(&apos;testfile2&apos;, &apos;test2&apos;, callback);
+ * }
+ * ]);
+ *
+ * // It&apos;s possible to pass any number of additional arguments when calling the
+ * // continuation:
+ *
+ * node&gt; var fn = async.apply(sys.puts, &apos;one&apos;);
+ * node&gt; fn(&apos;two&apos;, &apos;three&apos;);
+ * one
+ * two
+ * three
+ */
+export default rest(function(fn, args) {
+ return rest(function(callArgs) {
+ return fn.apply(null, args.concat(callArgs));
+ });
+});
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/applyEach.js.html b/docs/file/lib/applyEach.js.html
new file mode 100644
index 0000000..d45f092
--- /dev/null
+++ b/docs/file/lib/applyEach.js.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/applyEach.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/applyEach.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import applyEach from &apos;./internal/applyEach&apos;;
+import map from &apos;./map&apos;;
+
+/**
+ * Applies the provided arguments to each function in the array, calling
+ * `callback` after all functions have completed. If you only provide the first
+ * argument, then it will return a function which lets you pass in the
+ * arguments as if it were a single function call.
+ *
+ * @name applyEach
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array|Object} fns - A collection of asynchronous functions to all
+ * call with the same arguments
+ * @param {...*} [args] - any number of separate arguments to pass to the
+ * function.
+ * @param {Function} [callback] - the final argument should be the callback,
+ * called when all functions have completed processing.
+ * @returns {Function} - If only the first argument is provided, it will return
+ * a function which lets you pass in the arguments as if it were a single
+ * function call.
+ * @example
+ *
+ * async.applyEach([enableSearch, updateSchema], &apos;bucket&apos;, callback);
+ *
+ * // partial application example:
+ * async.each(
+ * buckets,
+ * async.applyEach([enableSearch, updateSchema]),
+ * callback
+ * );
+ */
+export default applyEach(map);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/applyEachSeries.js.html b/docs/file/lib/applyEachSeries.js.html
new file mode 100644
index 0000000..9d36551
--- /dev/null
+++ b/docs/file/lib/applyEachSeries.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/applyEachSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/applyEachSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import applyEach from &apos;./internal/applyEach&apos;;
+import mapSeries from &apos;./mapSeries&apos;;
+
+/**
+ * The same as `applyEach` but runs only a single async operation at a time.
+ *
+ * @name applyEachSeries
+ * @static
+ * @memberOf async
+ * @see async.applyEach
+ * @category Control Flow
+ * @param {Array|Object} fns - A collection of asynchronous functions to all
+ * call with the same arguments
+ * @param {...*} [args] - any number of separate arguments to pass to the
+ * function.
+ * @param {Function} [callback] - the final argument should be the callback,
+ * called when all functions have completed processing.
+ * @returns {Function} - If only the first argument is provided, it will return
+ * a function which lets you pass in the arguments as if it were a single
+ * function call.
+ */
+export default applyEach(mapSeries);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/asyncify.js.html b/docs/file/lib/asyncify.js.html
new file mode 100644
index 0000000..8fb438e
--- /dev/null
+++ b/docs/file/lib/asyncify.js.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/asyncify.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/asyncify.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import isObject from &apos;lodash/isObject&apos;;
+import initialParams from &apos;./internal/initialParams&apos;;
+
+/**
+ * Take a sync function and make it async, passing its return value to a
+ * callback. This is useful for plugging sync functions into a waterfall,
+ * series, or other async functions. Any arguments passed to the generated
+ * function will be passed to the wrapped function (except for the final
+ * callback argument). Errors thrown will be passed to the callback.
+ *
+ * If the function passed to `asyncify` returns a Promise, that promises&apos;s
+ * resolved/rejected state will be used to call the callback, rather than simply
+ * the synchronous return value.
+ *
+ * This also means you can asyncify ES2016 `async` functions.
+ *
+ * @name asyncify
+ * @static
+ * @memberOf async
+ * @alias wrapSync
+ * @category Util
+ * @param {Function} func - The synchronous function to convert to an
+ * asynchronous function.
+ * @returns {Function} An asynchronous wrapper of the `func`. To be invoked with
+ * (callback).
+ * @example
+ *
+ * // passing a regular synchronous function
+ * async.waterfall([
+ * async.apply(fs.readFile, filename, &quot;utf8&quot;),
+ * async.asyncify(JSON.parse),
+ * function (data, next) {
+ * // data is the result of parsing the text.
+ * // If there was a parsing error, it would have been caught.
+ * }
+ * ], callback);
+ *
+ * // passing a function returning a promise
+ * async.waterfall([
+ * async.apply(fs.readFile, filename, &quot;utf8&quot;),
+ * async.asyncify(function (contents) {
+ * return db.model.create(contents);
+ * }),
+ * function (model, next) {
+ * // `model` is the instantiated model object.
+ * // If there was an error, this function would be skipped.
+ * }
+ * ], callback);
+ *
+ * // es6 example
+ * var q = async.queue(async.asyncify(async function(file) {
+ * var intermediateStep = await processFile(file);
+ * return await somePromise(intermediateStep)
+ * }));
+ *
+ * q.push(files);
+ */
+export default function asyncify(func) {
+ return initialParams(function (args, callback) {
+ var result;
+ try {
+ result = func.apply(this, args);
+ } catch (e) {
+ return callback(e);
+ }
+ // if result is Promise object
+ if (isObject(result) &amp;&amp; typeof result.then === &apos;function&apos;) {
+ result.then(function(value) {
+ callback(null, value);
+ })[&apos;catch&apos;](function(err) {
+ callback(err.message ? err : new Error(err));
+ });
+ } else {
+ callback(null, result);
+ }
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/auto.js.html b/docs/file/lib/auto.js.html
new file mode 100644
index 0000000..28a3dae
--- /dev/null
+++ b/docs/file/lib/auto.js.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/auto.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/auto.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayEach from &apos;lodash/_arrayEach&apos;;
+import forOwn from &apos;lodash/forOwn&apos;;
+import indexOf from &apos;lodash/_baseIndexOf&apos;;
+import isArray from &apos;lodash/isArray&apos;;
+import okeys from &apos;lodash/keys&apos;;
+import noop from &apos;lodash/noop&apos;;
+import once from &apos;./internal/once&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+import onlyOnce from &apos;./internal/onlyOnce&apos;;
+
+/**
+ * Determines the best order for running the functions in `tasks`, based on
+ * their requirements. Each function can optionally depend on other functions
+ * being completed first, and each function is run as soon as its requirements
+ * are satisfied.
+ *
+ * If any of the functions pass an error to their callback, the `auto` sequence
+ * will stop. Further tasks will not execute (so any other functions depending
+ * on it will not run), and the main `callback` is immediately called with the
+ * error.
+ *
+ * Functions also receive an object containing the results of functions which
+ * have completed so far as the first argument, if they have dependencies. If a
+ * task function has no dependencies, it will only be passed a callback.
+ *
+ * @name auto
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Object} tasks - An object. Each of its properties is either a
+ * function or an array of requirements, with the function itself the last item
+ * in the array. The object&apos;s key of a property serves as the name of the task
+ * defined by that property, i.e. can be used when specifying requirements for
+ * other tasks. The function receives one or two arguments:
+ * * a `results` object, containing the results of the previously executed
+ * functions, only passed if the task has any dependencies,
+ * * a `callback(err, result)` function, which must be called when finished,
+ * passing an `error` (which can be `null`) and the result of the function&apos;s
+ * execution.
+ * @param {number} [concurrency=Infinity] - An optional `integer` for
+ * determining the maximum number of tasks that can be run in parallel. By
+ * default, as many as possible.
+ * @param {Function} [callback] - An optional callback which is called when all
+ * the tasks have been completed. It receives the `err` argument if any `tasks`
+ * pass an error to their callback. Results are always returned; however, if an
+ * error occurs, no further `tasks` will be performed, and the results object
+ * will only contain partial results. Invoked with (err, results).
+ * @returns undefined
+ * @example
+ *
+ * async.auto({
+ * // this function will just be passed a callback
+ * readData: async.apply(fs.readFile, &apos;data.txt&apos;, &apos;utf-8&apos;),
+ * showData: [&apos;readData&apos;, function(results, cb) {
+ * // results.readData is the file&apos;s contents
+ * // ...
+ * }]
+ * }, callback);
+ *
+ * async.auto({
+ * get_data: function(callback) {
+ * console.log(&apos;in get_data&apos;);
+ * // async code to get some data
+ * callback(null, &apos;data&apos;, &apos;converted to array&apos;);
+ * },
+ * make_folder: function(callback) {
+ * console.log(&apos;in make_folder&apos;);
+ * // async code to create a directory to store a file in
+ * // this is run at the same time as getting the data
+ * callback(null, &apos;folder&apos;);
+ * },
+ * write_file: [&apos;get_data&apos;, &apos;make_folder&apos;, function(results, callback) {
+ * console.log(&apos;in write_file&apos;, JSON.stringify(results));
+ * // once there is some data and the directory exists,
+ * // write the data to a file in the directory
+ * callback(null, &apos;filename&apos;);
+ * }],
+ * email_link: [&apos;write_file&apos;, function(results, callback) {
+ * console.log(&apos;in email_link&apos;, JSON.stringify(results));
+ * // once the file is written let&apos;s email a link to it...
+ * // results.write_file contains the filename returned by write_file.
+ * callback(null, {&apos;file&apos;:results.write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ * }]
+ * }, function(err, results) {
+ * console.log(&apos;err = &apos;, err);
+ * console.log(&apos;results = &apos;, results);
+ * });
+ */
+export default function (tasks, concurrency, callback) {
+ if (typeof concurrency === &apos;function&apos;) {
+ // concurrency is optional, shift the args.
+ callback = concurrency;
+ concurrency = null;
+ }
+ callback = once(callback || noop);
+ var keys = okeys(tasks);
+ var numTasks = keys.length;
+ if (!numTasks) {
+ return callback(null);
+ }
+ if (!concurrency) {
+ concurrency = numTasks;
+ }
+
+ var results = {};
+ var runningTasks = 0;
+ var hasError = false;
+
+ var listeners = {};
+
+ var readyTasks = [];
+
+ // for cycle detection:
+ var readyToCheck = []; // tasks that have been identified as reachable
+ // without the possibility of returning to an ancestor task
+ var uncheckedDependencies = {};
+
+ forOwn(tasks, function (task, key) {
+ if (!isArray(task)) {
+ // no dependencies
+ enqueueTask(key, [task]);
+ readyToCheck.push(key);
+ return;
+ }
+
+ var dependencies = task.slice(0, task.length - 1);
+ var remainingDependencies = dependencies.length;
+ if (remainingDependencies === 0) {
+ enqueueTask(key, task);
+ readyToCheck.push(key);
+ return;
+ }
+ uncheckedDependencies[key] = remainingDependencies;
+
+ arrayEach(dependencies, function (dependencyName) {
+ if (!tasks[dependencyName]) {
+ throw new Error(&apos;async.auto task `&apos; + key +
+ &apos;` has a non-existent dependency in &apos; +
+ dependencies.join(&apos;, &apos;));
+ }
+ addListener(dependencyName, function () {
+ remainingDependencies--;
+ if (remainingDependencies === 0) {
+ enqueueTask(key, task);
+ }
+ });
+ });
+ });
+
+ checkForDeadlocks();
+ processQueue();
+
+ function enqueueTask(key, task) {
+ readyTasks.push(function () {
+ runTask(key, task);
+ });
+ }
+
+ function processQueue() {
+ if (readyTasks.length === 0 &amp;&amp; runningTasks === 0) {
+ return callback(null, results);
+ }
+ while(readyTasks.length &amp;&amp; runningTasks &lt; concurrency) {
+ var run = readyTasks.shift();
+ run();
+ }
+
+ }
+
+ function addListener(taskName, fn) {
+ var taskListeners = listeners[taskName];
+ if (!taskListeners) {
+ taskListeners = listeners[taskName] = [];
+ }
+
+ taskListeners.push(fn);
+ }
+
+ function taskComplete(taskName) {
+ var taskListeners = listeners[taskName] || [];
+ arrayEach(taskListeners, function (fn) {
+ fn();
+ });
+ processQueue();
+ }
+
+
+ function runTask(key, task) {
+ if (hasError) return;
+
+ var taskCallback = onlyOnce(rest(function(err, args) {
+ runningTasks--;
+ if (args.length &lt;= 1) {
+ args = args[0];
+ }
+ if (err) {
+ var safeResults = {};
+ forOwn(results, function(val, rkey) {
+ safeResults[rkey] = val;
+ });
+ safeResults[key] = args;
+ hasError = true;
+ listeners = [];
+
+ callback(err, safeResults);
+ } else {
+ results[key] = args;
+ taskComplete(key);
+ }
+ }));
+
+ runningTasks++;
+ var taskFn = task[task.length - 1];
+ if (task.length &gt; 1) {
+ taskFn(results, taskCallback);
+ } else {
+ taskFn(taskCallback);
+ }
+ }
+
+ function checkForDeadlocks() {
+ // Kahn&apos;s algorithm
+ // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm
+ // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html
+ var currentTask;
+ var counter = 0;
+ while (readyToCheck.length) {
+ currentTask = readyToCheck.pop();
+ counter++;
+ arrayEach(getDependents(currentTask), function (dependent) {
+ if (!(--uncheckedDependencies[dependent])) {
+ readyToCheck.push(dependent);
+ }
+ });
+ }
+
+ if (counter !== numTasks) {
+ throw new Error(
+ &apos;async.auto cannot execute tasks due to a recursive dependency&apos;
+ );
+ }
+ }
+
+ function getDependents(taskName) {
+ var result = [];
+ forOwn(tasks, function (task, key) {
+ if (isArray(task) &amp;&amp; indexOf(task, taskName, 0) &gt;= 0) {
+ result.push(key);
+ }
+ });
+ return result;
+ }
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/autoInject.js.html b/docs/file/lib/autoInject.js.html
new file mode 100644
index 0000000..7c9bdfb
--- /dev/null
+++ b/docs/file/lib/autoInject.js.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/autoInject.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/autoInject.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import auto from &apos;./auto&apos;;
+import forOwn from &apos;lodash/forOwn&apos;;
+import arrayMap from &apos;lodash/_arrayMap&apos;;
+import clone from &apos;lodash/_copyArray&apos;;
+import isArray from &apos;lodash/isArray&apos;;
+import trim from &apos;lodash/trim&apos;;
+
+var argsRegex = /^(function[^\(]*)?\(?\s*([^\)=]*)/m;
+
+function parseParams(func) {
+ return trim(func.toString().match(argsRegex)[2]).split(/\s*\,\s*/);
+}
+
+/**
+ * A dependency-injected version of the {@link async.auto} function. Dependent
+ * tasks are specified as parameters to the function, after the usual callback
+ * parameter, with the parameter names matching the names of the tasks it
+ * depends on. This can provide even more readable task graphs which can be
+ * easier to maintain.
+ *
+ * If a final callback is specified, the task results are similarly injected,
+ * specified as named parameters after the initial error parameter.
+ *
+ * The autoInject function is purely syntactic sugar and its semantics are
+ * otherwise equivalent to {@link async.auto}.
+ *
+ * @name autoInject
+ * @static
+ * @memberOf async
+ * @see async.auto
+ * @category Control Flow
+ * @param {Object} tasks - An object, each of whose properties is a function of
+ * the form &apos;func([dependencies...], callback). The object&apos;s key of a property
+ * serves as the name of the task defined by that property, i.e. can be used
+ * when specifying requirements for other tasks.
+ * * The `callback` parameter is a `callback(err, result)` which must be called
+ * when finished, passing an `error` (which can be `null`) and the result of
+ * the function&apos;s execution. The remaining parameters name other tasks on
+ * which the task is dependent, and the results from those tasks are the
+ * arguments of those parameters.
+ * @param {Function} [callback] - An optional callback which is called when all
+ * the tasks have been completed. It receives the `err` argument if any `tasks`
+ * pass an error to their callback. The remaining parameters are task names
+ * whose results you are interested in. This callback will only be called when
+ * all tasks have finished or an error has occurred, and so do not specify
+ * dependencies in the same way as `tasks` do. If an error occurs, no further
+ * `tasks` will be performed, and `results` will only be valid for those tasks
+ * which managed to complete. Invoked with (err, [results...]).
+ * @example
+ *
+ * // The example from `auto` can be rewritten as follows:
+ * async.autoInject({
+ * get_data: function(callback) {
+ * // async code to get some data
+ * callback(null, &apos;data&apos;, &apos;converted to array&apos;);
+ * },
+ * make_folder: function(callback) {
+ * // async code to create a directory to store a file in
+ * // this is run at the same time as getting the data
+ * callback(null, &apos;folder&apos;);
+ * },
+ * write_file: function(get_data, make_folder, callback) {
+ * // once there is some data and the directory exists,
+ * // write the data to a file in the directory
+ * callback(null, &apos;filename&apos;);
+ * },
+ * email_link: function(write_file, callback) {
+ * // once the file is written let&apos;s email a link to it...
+ * // write_file contains the filename returned by write_file.
+ * callback(null, {&apos;file&apos;:write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ * }
+ * }, function(err, email_link) {
+ * console.log(&apos;err = &apos;, err);
+ * console.log(&apos;email_link = &apos;, email_link);
+ * });
+ *
+ * // If you are using a JS minifier that mangles parameter names, `autoInject`
+ * // will not work with plain functions, since the parameter names will be
+ * // collapsed to a single letter identifier. To work around this, you can
+ * // explicitly specify the names of the parameters your task function needs
+ * // in an array, similar to Angular.js dependency injection. The final
+ * // results callback can be provided as an array in the same way.
+ *
+ * // This still has an advantage over plain `auto`, since the results a task
+ * // depends on are still spread into arguments.
+ * async.autoInject({
+ * //...
+ * write_file: [&apos;get_data&apos;, &apos;make_folder&apos;, function(get_data, make_folder, callback) {
+ * callback(null, &apos;filename&apos;);
+ * }],
+ * email_link: [&apos;write_file&apos;, function(write_file, callback) {
+ * callback(null, {&apos;file&apos;:write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ * }]
+ * //...
+ * }, [&apos;email_link&apos;, function(err, email_link) {
+ * console.log(&apos;err = &apos;, err);
+ * console.log(&apos;email_link = &apos;, email_link);
+ * }]);
+ */
+export default function autoInject(tasks, callback) {
+ var newTasks = {};
+
+ forOwn(tasks, function (taskFn, key) {
+ var params;
+
+ if (isArray(taskFn)) {
+ params = clone(taskFn);
+ taskFn = params.pop();
+
+ newTasks[key] = params.concat(params.length &gt; 0 ? newTask : taskFn);
+ } else if (taskFn.length === 0) {
+ throw new Error(&quot;autoInject task functions require explicit parameters.&quot;);
+ } else if (taskFn.length === 1) {
+ // no dependencies, use the function as-is
+ newTasks[key] = taskFn;
+ } else {
+ params = parseParams(taskFn);
+ params.pop();
+
+ newTasks[key] = params.concat(newTask);
+ }
+
+ function newTask(results, taskCb) {
+ var newArgs = arrayMap(params, function (name) {
+ return results[name];
+ });
+ newArgs.push(taskCb);
+ taskFn.apply(null, newArgs);
+ }
+ });
+
+ auto(newTasks, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/cargo.js.html b/docs/file/lib/cargo.js.html
new file mode 100644
index 0000000..f618048
--- /dev/null
+++ b/docs/file/lib/cargo.js.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/cargo.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/cargo.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import queue from &apos;./internal/queue&apos;;
+
+/**
+ * A cargo of tasks for the worker function to complete. Cargo inherits all of
+ * the same methods and event callbacks as {@link async.queue}.
+ * @typedef {Object} CargoObject
+ * @property {Function} length - A function returning the number of items
+ * waiting to be processed. Invoke with ().
+ * @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 with (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 with ().
+ * @property {Function} pause - a function that pauses the processing of tasks
+ * until `resume()` is called. Invoke with ().
+ * @property {Function} resume - a function that resumes the processing of
+ * queued tasks when the queue is paused. Invoke with ().
+ * @property {Function} kill - a function that removes the `drain` callback and
+ * empties remaining tasks from the queue forcing it to go idle. Invoke with ().
+ */
+
+/**
+ * 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
+ * the `worker` has completed some tasks, each callback of those tasks is
+ * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)
+ * for how `cargo` and `queue` work.
+ *
+ * While [queue](#queue) passes only one task to one of a group of workers
+ * at a time, cargo passes an array of tasks to a single worker, repeating
+ * when the worker is finished.
+ *
+ * @name cargo
+ * @static
+ * @memberOf async
+ * @see async.queue
+ * @category Control Flow
+ * @param {Function} worker - An asynchronous function for processing an array
+ * of queued tasks, which must call its `callback(err)` argument when finished,
+ * with an optional `err` argument. Invoked with (tasks, callback).
+ * @param {number} [payload=Infinity] - An optional `integer` for determining
+ * how many tasks should be processed per round; if omitted, the default is
+ * unlimited.
+ * @returns {CargoObject} 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
+ *
+ * // create a cargo object with payload 2
+ * var cargo = async.cargo(function(tasks, callback) {
+ * for (var i=0; i&lt;tasks.length; i++) {
+ * console.log(&apos;hello &apos; + tasks[i].name);
+ * }
+ * callback();
+ * }, 2);
+ *
+ * // add some items
+ * cargo.push({name: &apos;foo&apos;}, function(err) {
+ * console.log(&apos;finished processing foo&apos;);
+ * });
+ * cargo.push({name: &apos;bar&apos;}, function(err) {
+ * console.log(&apos;finished processing bar&apos;);
+ * });
+ * cargo.push({name: &apos;baz&apos;}, function(err) {
+ * console.log(&apos;finished processing baz&apos;);
+ * });
+ */
+export default function cargo(worker, payload) {
+ return queue(worker, 1, payload);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/compose.js.html b/docs/file/lib/compose.js.html
new file mode 100644
index 0000000..2c3f778
--- /dev/null
+++ b/docs/file/lib/compose.js.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/compose.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/compose.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import seq from &apos;./seq&apos;;
+
+var reverse = Array.prototype.reverse;
+
+/**
+ * Creates a function which is a composition of the passed asynchronous
+ * functions. Each function consumes the return value of the function that
+ * follows. Composing functions `f()`, `g()`, and `h()` would produce the result
+ * of `f(g(h()))`, only this version uses callbacks to obtain the return values.
+ *
+ * Each function is executed with the `this` binding of the composed function.
+ *
+ * @name compose
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {...Function} functions - the asynchronous functions to compose
+ * @returns {Function} an asynchronous function that is the composed
+ * asynchronous `functions`
+ * @example
+ *
+ * function add1(n, callback) {
+ * setTimeout(function () {
+ * callback(null, n + 1);
+ * }, 10);
+ * }
+ *
+ * function mul3(n, callback) {
+ * setTimeout(function () {
+ * callback(null, n * 3);
+ * }, 10);
+ * }
+ *
+ * var add1mul3 = async.compose(mul3, add1);
+ * add1mul3(4, function (err, result) {
+ * // result now equals 15
+ * });
+ */
+export default function compose(/* functions... */) {
+ return seq.apply(null, reverse.call(arguments));
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/concat.js.html b/docs/file/lib/concat.js.html
new file mode 100644
index 0000000..b06327f
--- /dev/null
+++ b/docs/file/lib/concat.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/concat.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/concat.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import concat from &apos;./internal/concat&apos;;
+import doParallel from &apos;./internal/doParallel&apos;;
+
+/**
+ * Applies `iteratee` to each item in `coll`, concatenating the results. Returns
+ * the concatenated list. The `iteratee`s are called in parallel, and the
+ * results are concatenated as they return. There is no guarantee that the
+ * results array will be returned in the original order of `coll` passed to the
+ * `iteratee` function.
+ *
+ * @name concat
+ * @static
+ * @memberOf async
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, results)` which must be called once
+ * it has completed with an error (which can be `null`) and an array of results.
+ * Invoked with (item, callback).
+ * @param {Function} [callback(err)] - A callback which is called after all the
+ * `iteratee` functions have finished, or an error occurs. Results is an array
+ * containing the concatenated results of the `iteratee` function. Invoked with
+ * (err, results).
+ * @example
+ *
+ * async.concat([&apos;dir1&apos;,&apos;dir2&apos;,&apos;dir3&apos;], fs.readdir, function(err, files) {
+ * // files is now a list of filenames that exist in the 3 directories
+ * });
+ */
+export default doParallel(concat);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/concatSeries.js.html b/docs/file/lib/concatSeries.js.html
new file mode 100644
index 0000000..1223114
--- /dev/null
+++ b/docs/file/lib/concatSeries.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/concatSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/concatSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import concat from &apos;./internal/concat&apos;;
+import doSeries from &apos;./internal/doSeries&apos;;
+
+/**
+ * The same as `concat` but runs only a single async operation at a time.
+ *
+ * @name concatSeries
+ * @static
+ * @memberOf async
+ * @see async.concat
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, results)` which must be called once
+ * it has completed with an error (which can be `null`) and an array of results.
+ * Invoked with (item, callback).
+ * @param {Function} [callback(err)] - A callback which is called after all the
+ * `iteratee` functions have finished, or an error occurs. Results is an array
+ * containing the concatenated results of the `iteratee` function. Invoked with
+ * (err, results).
+ */
+export default doSeries(concat);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/constant.js.html b/docs/file/lib/constant.js.html
new file mode 100644
index 0000000..e065989
--- /dev/null
+++ b/docs/file/lib/constant.js.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/constant.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/constant.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rest from &apos;lodash/rest&apos;;
+import initialParams from &apos;./internal/initialParams&apos;;
+
+/**
+ * Returns a function that when called, calls-back with the values provided.
+ * Useful as the first function in a `waterfall`, or for plugging values in to
+ * `auto`.
+ *
+ * @name constant
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {...*} arguments... - Any number of arguments to automatically invoke
+ * callback with.
+ * @returns {Function} Returns a function that when invoked, automatically
+ * invokes the callback with the previous given arguments.
+ * @example
+ *
+ * async.waterfall([
+ * async.constant(42),
+ * function (value, next) {
+ * // value === 42
+ * },
+ * //...
+ * ], callback);
+ *
+ * async.waterfall([
+ * async.constant(filename, &quot;utf8&quot;),
+ * fs.readFile,
+ * function (fileData, next) {
+ * //...
+ * }
+ * //...
+ * ], callback);
+ *
+ * async.auto({
+ * hostname: async.constant(&quot;https://server.net/&quot;),
+ * port: findFreePort,
+ * launchServer: [&quot;hostname&quot;, &quot;port&quot;, function (options, cb) {
+ * startServer(options, cb);
+ * }],
+ * //...
+ * }, callback);
+ */
+export default rest(function(values) {
+ var args = [null].concat(values);
+ return initialParams(function (ignoredArgs, callback) {
+ return callback.apply(this, args);
+ });
+});
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/detect.js.html b/docs/file/lib/detect.js.html
new file mode 100644
index 0000000..2c035f3
--- /dev/null
+++ b/docs/file/lib/detect.js.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/detect.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/detect.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import identity from &apos;lodash/identity&apos;;
+
+import createTester from &apos;./internal/createTester&apos;;
+import eachOf from &apos;./eachOf&apos;;
+import findGetResult from &apos;./internal/findGetResult&apos;;
+
+/**
+ * Returns the first value in `coll` that passes an async truth test. The
+ * `iteratee` is applied in parallel, meaning the first iteratee to return
+ * `true` will fire the detect `callback` with that result. That means the
+ * result might not be the first item in the original `coll` (in terms of order)
+ * that passes the test.
+
+ * If order within the original `coll` is important, then look at
+ * `detectSeries`.
+ *
+ * @name detect
+ * @static
+ * @memberOf async
+ * @alias find
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, truthValue)` which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the `iteratee` functions have finished.
+ * Result will be the first item in the array that passes the truth test
+ * (iteratee) or the value `undefined` if none passed. Invoked with
+ * (err, result).
+ * @example
+ *
+ * async.detect([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ * fs.access(filePath, function(err) {
+ * callback(null, !err)
+ * });
+ * }, function(err, result) {
+ * // result now equals the first file in the list that exists
+ * });
+ */
+export default createTester(eachOf, identity, findGetResult);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/detectLimit.js.html b/docs/file/lib/detectLimit.js.html
new file mode 100644
index 0000000..2bbfda8
--- /dev/null
+++ b/docs/file/lib/detectLimit.js.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/detectLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/detectLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import identity from &apos;lodash/identity&apos;;
+
+import createTester from &apos;./internal/createTester&apos;;
+import eachOfLimit from &apos;./eachOfLimit&apos;;
+import findGetResult from &apos;./internal/findGetResult&apos;;
+
+/**
+ * The same as `detect` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name detectLimit
+ * @static
+ * @memberOf async
+ * @see async.detect
+ * @alias findLimit
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, truthValue)` which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the `iteratee` functions have finished.
+ * Result will be the first item in the array that passes the truth test
+ * (iteratee) or the value `undefined` if none passed. Invoked with
+ * (err, result).
+ */
+export default createTester(eachOfLimit, identity, findGetResult);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/detectSeries.js.html b/docs/file/lib/detectSeries.js.html
new file mode 100644
index 0000000..865a80e
--- /dev/null
+++ b/docs/file/lib/detectSeries.js.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/detectSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/detectSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import identity from &apos;lodash/identity&apos;;
+
+import createTester from &apos;./internal/createTester&apos;;
+import eachOfSeries from &apos;./eachOfSeries&apos;;
+import findGetResult from &apos;./internal/findGetResult&apos;;
+
+/**
+ * The same as `detect` but runs only a single async operation at a time.
+ *
+ * @name detectSeries
+ * @static
+ * @memberOf async
+ * @see async.detect
+ * @alias findSeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, truthValue)` which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the `iteratee` functions have finished.
+ * Result will be the first item in the array that passes the truth test
+ * (iteratee) or the value `undefined` if none passed. Invoked with
+ * (err, result).
+ */
+export default createTester(eachOfSeries, identity, findGetResult);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/dir.js.html b/docs/file/lib/dir.js.html
new file mode 100644
index 0000000..9e65967
--- /dev/null
+++ b/docs/file/lib/dir.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/dir.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/dir.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import consoleFunc from &apos;./internal/consoleFunc&apos;;
+
+/**
+ * Logs the result of an `async` function to the `console` using `console.dir`
+ * to display the properties of the resulting object. Only works in Node.js or
+ * in browsers that support `console.dir` and `console.error` (such as FF and
+ * Chrome). If multiple arguments are returned from the async function,
+ * `console.dir` is called on each argument in order.
+ *
+ * @name log
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} function - The function you want to eventually apply all
+ * arguments to.
+ * @param {...*} arguments... - Any number of arguments to apply to the function.
+ * @example
+ *
+ * // in a module
+ * var hello = function(name, callback) {
+ * setTimeout(function() {
+ * callback(null, {hello: name});
+ * }, 1000);
+ * };
+ *
+ * // in the node repl
+ * node&gt; async.dir(hello, &apos;world&apos;);
+ * {hello: &apos;world&apos;}
+ */
+export default consoleFunc(&apos;dir&apos;);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/doDuring.js.html b/docs/file/lib/doDuring.js.html
new file mode 100644
index 0000000..d7fa727
--- /dev/null
+++ b/docs/file/lib/doDuring.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/doDuring.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/doDuring.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import during from &apos;./during&apos;;
+
+/**
+ * The post-check version of {@link async.during}. To reflect the difference in
+ * the order of operations, the arguments `test` and `fn` are switched.
+ *
+ * Also a version of {@link async.doWhilst} with asynchronous `test` function.
+ * @name doDuring
+ * @static
+ * @memberOf async
+ * @see async.during
+ * @category Control Flow
+ * @param {Function} fn - A function which is called each time `test` passes.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} test - asynchronous truth test to perform before each
+ * execution of `fn`. Invoked with (callback).
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has failed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ */
+export default function doDuring(fn, test, callback) {
+ var calls = 0;
+
+ during(function(next) {
+ if (calls++ &lt; 1) return next(null, true);
+ test.apply(this, arguments);
+ }, fn, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/doUntil.js.html b/docs/file/lib/doUntil.js.html
new file mode 100644
index 0000000..31924ee
--- /dev/null
+++ b/docs/file/lib/doUntil.js.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/doUntil.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/doUntil.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import doWhilst from &apos;./doWhilst&apos;;
+
+/**
+ * Like {@link async.doWhilst}, except the `test` is inverted. Note the
+ * argument ordering differs from `until`.
+ *
+ * @name doUntil
+ * @static
+ * @memberOf async
+ * @see async.doWhilst
+ * @category Control Flow
+ * @param {Function} fn - A function which is called each time `test` fails.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} test - synchronous truth test to perform after each
+ * execution of `fn`. Invoked with the non-error callback results of `fn`.
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has passed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ */
+export default function doUntil(fn, test, callback) {
+ doWhilst(fn, function() {
+ return !test.apply(this, arguments);
+ }, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/doWhilst.js.html b/docs/file/lib/doWhilst.js.html
new file mode 100644
index 0000000..eed47d5
--- /dev/null
+++ b/docs/file/lib/doWhilst.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/doWhilst.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/doWhilst.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import whilst from &apos;./whilst&apos;;
+
+/**
+ * The post-check version of {@link async.whilst}. To reflect the difference in
+ * the order of operations, the arguments `test` and `fn` are switched.
+ *
+ * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.
+ *
+ * @name doWhilst
+ * @static
+ * @memberOf async
+ * @see async.whilst
+ * @category Control Flow
+ * @param {Function} fn - A function which is called each time `test` passes.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} test - synchronous truth test to perform after each
+ * execution of `fn`. Invoked with Invoked with the non-error callback results
+ * of `fn`.
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has failed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ */
+export default function doWhilst(fn, test, callback) {
+ var calls = 0;
+ whilst(function() {
+ return ++calls &lt;= 1 || test.apply(this, arguments);
+ }, fn, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/during.js.html b/docs/file/lib/during.js.html
new file mode 100644
index 0000000..9d0e597
--- /dev/null
+++ b/docs/file/lib/during.js.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/during.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/during.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+/**
+ * Like {@link async.whilst}, except the `test` is an asynchronous function that
+ * is passed a callback in the form of `function (err, truth)`. If error is
+ * passed to `test` or `fn`, the main callback is immediately called with the
+ * value of the error.
+ *
+ * @name during
+ * @static
+ * @memberOf async
+ * @see async.whilst
+ * @category Control Flow
+ * @param {Function} test - asynchronous truth test to perform before each
+ * execution of `fn`. Invoked with (callback).
+ * @param {Function} fn - A function which is called each time `test` passes.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has failed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ * @example
+ *
+ * var count = 0;
+ *
+ * async.during(
+ * function (callback) {
+ * return callback(null, count &lt; 5);
+ * },
+ * function (callback) {
+ * count++;
+ * setTimeout(callback, 1000);
+ * },
+ * function (err) {
+ * // 5 seconds have passed
+ * }
+ * );
+ */
+export default function during(test, fn, callback) {
+ callback = callback || noop;
+
+ var next = rest(function(err, args) {
+ if (err) {
+ callback(err);
+ } else {
+ args.push(check);
+ test.apply(this, args);
+ }
+ });
+
+ var check = function(err, truth) {
+ if (err) return callback(err);
+ if (!truth) return callback(null);
+ fn(next);
+ };
+
+ test(check);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/each.js.html b/docs/file/lib/each.js.html
new file mode 100644
index 0000000..6710b34
--- /dev/null
+++ b/docs/file/lib/each.js.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/each.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/each.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachLimit from &apos;./eachLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Applies the function `iteratee` to each item in `coll`, in parallel.
+ * The `iteratee` is called with an item from the list, and a callback for when
+ * it has finished. If the `iteratee` passes an error to its `callback`, the
+ * main `callback` (for the `each` function) is immediately called with the
+ * error.
+ *
+ * Note, that since this function applies `iteratee` to each item in parallel,
+ * there is no guarantee that the iteratee functions will complete in order.
+ *
+ * @name each
+ * @static
+ * @memberOf async
+ * @alias forEach
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item
+ * in `coll`. The iteratee is passed a `callback(err)` which must be called once
+ * it has completed. If no error has occurred, the `callback` should be run
+ * without arguments or with an explicit `null` argument. The array index is not
+ * passed to the iteratee. Invoked with (item, callback). If you need the index,
+ * use `eachOf`.
+ * @param {Function} [callback] - A callback which is called when all
+ * `iteratee` functions have finished, or an error occurs. Invoked with (err).
+ * @example
+ *
+ * // assuming openFiles is an array of file names and saveFile is a function
+ * // to save the modified contents of that file:
+ *
+ * async.each(openFiles, saveFile, function(err){
+ * // if any of the saves produced an error, err would equal that error
+ * });
+ *
+ * // assuming openFiles is an array of file names
+ * async.each(openFiles, function(file, callback) {
+ *
+ * // Perform operation on file here.
+ * console.log(&apos;Processing file &apos; + file);
+ *
+ * if( file.length &gt; 32 ) {
+ * console.log(&apos;This file name is too long&apos;);
+ * callback(&apos;File name too long&apos;);
+ * } else {
+ * // Do work to process file here
+ * console.log(&apos;File processed&apos;);
+ * callback();
+ * }
+ * }, function(err) {
+ * // if any of the file processing produced an error, err would equal that error
+ * if( err ) {
+ * // One of the iterations produced an error.
+ * // All processing will now stop.
+ * console.log(&apos;A file failed to process&apos;);
+ * } else {
+ * console.log(&apos;All files have been processed successfully&apos;);
+ * }
+ * });
+ */
+export default doLimit(eachLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/eachLimit.js.html b/docs/file/lib/eachLimit.js.html
new file mode 100644
index 0000000..d94e065
--- /dev/null
+++ b/docs/file/lib/eachLimit.js.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/eachLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/eachLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./internal/eachOfLimit&apos;;
+import withoutIndex from &apos;./internal/withoutIndex&apos;;
+
+/**
+ * The same as `each` but runs a maximum of `limit` async operations at a time.
+ *
+ * @name eachLimit
+ * @static
+ * @memberOf async
+ * @see async.each
+ * @alias forEachLimit
+ * @category Collection
+ * @param {Array|Object} coll - A colleciton to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A function to apply to each item in `coll`. The
+ * iteratee is passed a `callback(err)` which must be called once it has
+ * completed. If no error has occurred, the `callback` should be run without
+ * arguments or with an explicit `null` argument. The array index is not passed
+ * to the iteratee. Invoked with (item, callback). If you need the index, use
+ * `eachOfLimit`.
+ * @param {Function} [callback] - A callback which is called when all
+ * `iteratee` functions have finished, or an error occurs. Invoked with (err).
+ */
+export default function eachLimit(coll, limit, iteratee, callback) {
+ eachOfLimit(limit)(coll, withoutIndex(iteratee), callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/eachOf.js.html b/docs/file/lib/eachOf.js.html
new file mode 100644
index 0000000..50506bc
--- /dev/null
+++ b/docs/file/lib/eachOf.js.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/eachOf.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/eachOf.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./eachOfLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Like `each`, except that it passes the key (or index) as the second argument
+ * to the iteratee.
+ *
+ * @name eachOf
+ * @static
+ * @memberOf async
+ * @alias forEachOf
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each
+ * item in `coll`. The `key` is the item&apos;s key, or index in the case of an
+ * array. The iteratee is passed a `callback(err)` which must be called once it
+ * has completed. If no error has occurred, the callback should be run without
+ * arguments or with an explicit `null` argument. Invoked with
+ * (item, key, callback).
+ * @param {Function} [callback] - A callback which is called when all
+ * `iteratee` functions have finished, or an error occurs. Invoked with (err).
+ * @example
+ *
+ * var obj = {dev: &quot;/dev.json&quot;, test: &quot;/test.json&quot;, prod: &quot;/prod.json&quot;};
+ * var configs = {};
+ *
+ * async.forEachOf(obj, function (value, key, callback) {
+ * fs.readFile(__dirname + value, &quot;utf8&quot;, function (err, data) {
+ * if (err) return callback(err);
+ * try {
+ * configs[key] = JSON.parse(data);
+ * } catch (e) {
+ * return callback(e);
+ * }
+ * callback();
+ * });
+ * }, function (err) {
+ * if (err) console.error(err.message);
+ * // configs is now a map of JSON data
+ * doSomethingWith(configs);
+ * });
+ */
+export default doLimit(eachOfLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/eachOfLimit.js.html b/docs/file/lib/eachOfLimit.js.html
new file mode 100644
index 0000000..32062e7
--- /dev/null
+++ b/docs/file/lib/eachOfLimit.js.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/eachOfLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/eachOfLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import _eachOfLimit from &apos;./internal/eachOfLimit&apos;;
+
+/**
+ * The same as `eachOf` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name eachOfLimit
+ * @static
+ * @memberOf async
+ * @see async.eachOf
+ * @alias forEachOfLimit
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A function to apply to each
+ * item in `coll`. The `key` is the item&apos;s key, or index in the case of an
+ * array. The iteratee is passed a `callback(err)` which must be called once it
+ * has completed. If no error has occurred, the callback should be run without
+ * arguments or with an explicit `null` argument. Invoked with
+ * (item, key, callback).
+ * @param {Function} [callback] - A callback which is called when all
+ * `iteratee` functions have finished, or an error occurs. Invoked with (err).
+ */
+export default function eachOfLimit(coll, limit, iteratee, callback) {
+ _eachOfLimit(limit)(coll, iteratee, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/eachOfSeries.js.html b/docs/file/lib/eachOfSeries.js.html
new file mode 100644
index 0000000..f467caf
--- /dev/null
+++ b/docs/file/lib/eachOfSeries.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/eachOfSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/eachOfSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./eachOfLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `eachOf` but runs only a single async operation at a time.
+ *
+ * @name eachOfSeries
+ * @static
+ * @memberOf async
+ * @see async.eachOf
+ * @alias forEachOfSeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`. The
+ * `key` is the item&apos;s key, or index in the case of an array. The iteratee is
+ * passed a `callback(err)` which must be called once it has completed. If no
+ * error has occurred, the callback should be run without arguments or with an
+ * explicit `null` argument. Invoked with (item, key, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Invoked with (err).
+ */
+export default doLimit(eachOfLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/eachSeries.js.html b/docs/file/lib/eachSeries.js.html
new file mode 100644
index 0000000..4db2df5
--- /dev/null
+++ b/docs/file/lib/eachSeries.js.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/eachSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/eachSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachLimit from &apos;./eachLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `each` but runs only a single async operation at a time.
+ *
+ * @name eachSeries
+ * @static
+ * @memberOf async
+ * @see async.each
+ * @alias forEachSeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each
+ * item in `coll`. The iteratee is passed a `callback(err)` which must be called
+ * once it has completed. If no error has occurred, the `callback` should be run
+ * without arguments or with an explicit `null` argument. The array index is
+ * not passed to the iteratee. Invoked with (item, callback). If you need the
+ * index, use `eachOfSeries`.
+ * @param {Function} [callback] - A callback which is called when all
+ * `iteratee` functions have finished, or an error occurs. Invoked with (err).
+ */
+export default doLimit(eachLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/ensureAsync.js.html b/docs/file/lib/ensureAsync.js.html
new file mode 100644
index 0000000..7344f45
--- /dev/null
+++ b/docs/file/lib/ensureAsync.js.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/ensureAsync.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/ensureAsync.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import setImmediate from &apos;./internal/setImmediate&apos;;
+import initialParams from &apos;./internal/initialParams&apos;;
+
+/**
+ * Wrap an async function and ensure it calls its callback on a later tick of
+ * the event loop. If the function already calls its callback on a next tick,
+ * no extra deferral is added. This is useful for preventing stack overflows
+ * (`RangeError: Maximum call stack size exceeded`) and generally keeping
+ * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)
+ * contained.
+ *
+ * @name ensureAsync
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} fn - an async function, one that expects a node-style
+ * callback as its last argument.
+ * @returns {Function} Returns a wrapped function with the exact same call
+ * signature as the function passed in.
+ * @example
+ *
+ * function sometimesAsync(arg, callback) {
+ * if (cache[arg]) {
+ * return callback(null, cache[arg]); // this would be synchronous!!
+ * } else {
+ * doSomeIO(arg, callback); // this IO would be asynchronous
+ * }
+ * }
+ *
+ * // this has a risk of stack overflows if many results are cached in a row
+ * async.mapSeries(args, sometimesAsync, done);
+ *
+ * // this will defer sometimesAsync&apos;s callback if necessary,
+ * // preventing stack overflows
+ * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);
+ */
+export default function ensureAsync(fn) {
+ return initialParams(function (args, callback) {
+ var sync = true;
+ args.push(function () {
+ var innerArgs = arguments;
+ if (sync) {
+ setImmediate(function () {
+ callback.apply(null, innerArgs);
+ });
+ } else {
+ callback.apply(null, innerArgs);
+ }
+ });
+ fn.apply(this, args);
+ sync = false;
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/every.js.html b/docs/file/lib/every.js.html
new file mode 100644
index 0000000..c6022f9
--- /dev/null
+++ b/docs/file/lib/every.js.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/every.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/every.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import everyLimit from &apos;./everyLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Returns `true` if every element in `coll` satisfies an async test. If any
+ * iteratee call returns `false`, the main `callback` is immediately called.
+ *
+ * @name every
+ * @static
+ * @memberOf async
+ * @alias all
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in the
+ * collection in parallel. The iteratee is passed a `callback(err, truthValue)`
+ * which must be called with a boolean argument once it has completed. Invoked
+ * with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result will be either `true` or `false`
+ * depending on the values of the async tests. Invoked with (err, result).
+ * @example
+ *
+ * async.every([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ * fs.access(filePath, function(err) {
+ * callback(null, !err)
+ * });
+ * }, function(err, result) {
+ * // if result is true then every file exists
+ * });
+ */
+export default doLimit(everyLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/everyLimit.js.html b/docs/file/lib/everyLimit.js.html
new file mode 100644
index 0000000..dfbbfc3
--- /dev/null
+++ b/docs/file/lib/everyLimit.js.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/everyLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/everyLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import createTester from &apos;./internal/createTester&apos;;
+import eachOfLimit from &apos;./eachOfLimit&apos;;
+import notId from &apos;./internal/notId&apos;;
+
+/**
+ * The same as `every` but runs a maximum of `limit` async operations at a time.
+ *
+ * @name everyLimit
+ * @static
+ * @memberOf async
+ * @see async.every
+ * @alias allLimit
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A truth test to apply to each item in the
+ * collection in parallel. The iteratee is passed a `callback(err, truthValue)`
+ * which must be called with a boolean argument once it has completed. Invoked
+ * with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result will be either `true` or `false`
+ * depending on the values of the async tests. Invoked with (err, result).
+ */
+export default createTester(eachOfLimit, notId, notId);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/everySeries.js.html b/docs/file/lib/everySeries.js.html
new file mode 100644
index 0000000..4fee8e8
--- /dev/null
+++ b/docs/file/lib/everySeries.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/everySeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/everySeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import everyLimit from &apos;./everyLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `every` but runs only a single async operation at a time.
+ *
+ * @name everySeries
+ * @static
+ * @memberOf async
+ * @see async.every
+ * @alias allSeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in the
+ * collection in parallel. The iteratee is passed a `callback(err, truthValue)`
+ * which must be called with a boolean argument once it has completed. Invoked
+ * with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result will be either `true` or `false`
+ * depending on the values of the async tests. Invoked with (err, result).
+ */
+export default doLimit(everyLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/filter.js.html b/docs/file/lib/filter.js.html
new file mode 100644
index 0000000..49b9af3
--- /dev/null
+++ b/docs/file/lib/filter.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/filter.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/filter.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import filterLimit from &apos;./filterLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Returns a new array of all the values in `coll` which pass an async truth
+ * test. This operation is performed in parallel, but the results array will be
+ * in the same order as the original.
+ *
+ * @name filter
+ * @static
+ * @memberOf async
+ * @alias select
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results).
+ * @example
+ *
+ * async.filter([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ * fs.access(filePath, function(err) {
+ * callback(null, !err)
+ * });
+ * }, function(err, results) {
+ * // results now equals an array of the existing files
+ * });
+ */
+export default doLimit(filterLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/filterLimit.js.html b/docs/file/lib/filterLimit.js.html
new file mode 100644
index 0000000..b8a6015
--- /dev/null
+++ b/docs/file/lib/filterLimit.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/filterLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/filterLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import filter from &apos;./internal/filter&apos;;
+import doParallelLimit from &apos;./internal/doParallelLimit&apos;;
+
+/**
+ * The same as `filter` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name filterLimit
+ * @static
+ * @memberOf async
+ * @see async.filter
+ * @alias selectLimit
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results).
+ */
+export default doParallelLimit(filter);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/filterSeries.js.html b/docs/file/lib/filterSeries.js.html
new file mode 100644
index 0000000..3bc984c
--- /dev/null
+++ b/docs/file/lib/filterSeries.js.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/filterSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/filterSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import filterLimit from &apos;./filterLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `filter` but runs only a single async operation at a time.
+ *
+ * @name filterSeries
+ * @static
+ * @memberOf async
+ * @see async.filter
+ * @alias selectSeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results)
+ */
+export default doLimit(filterLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/forever.js.html b/docs/file/lib/forever.js.html
new file mode 100644
index 0000000..5fc3ac0
--- /dev/null
+++ b/docs/file/lib/forever.js.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/forever.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/forever.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+
+import onlyOnce from &apos;./internal/onlyOnce&apos;;
+import ensureAsync from &apos;./ensureAsync&apos;;
+
+/**
+ * Calls the asynchronous function `fn` with a callback parameter that allows it
+ * to call itself again, in series, indefinitely.
+
+ * If an error is passed to the
+ * callback then `errback` is called with the error, and execution stops,
+ * otherwise it will never be called.
+ *
+ * @name forever
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Function} fn - a function to call repeatedly. Invoked with (next).
+ * @param {Function} [errback] - when `fn` passes an error to it&apos;s callback,
+ * this function will be called, and execution stops. Invoked with (err).
+ * @example
+ *
+ * async.forever(
+ * function(next) {
+ * // next is suitable for passing to things that need a callback(err [, whatever]);
+ * // it will result in this function being called again.
+ * },
+ * function(err) {
+ * // if next is called with a value in its first parameter, it will appear
+ * // in here as &apos;err&apos;, and execution will stop.
+ * }
+ * );
+ */
+export default function forever(fn, errback) {
+ var done = onlyOnce(errback || noop);
+ var task = ensureAsync(fn);
+
+ function next(err) {
+ if (err) return done(err);
+ task(next);
+ }
+ next();
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/index.js.html b/docs/file/lib/index.js.html
new file mode 100644
index 0000000..0a949f9
--- /dev/null
+++ b/docs/file/lib/index.js.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/index.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/index.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">/**
+ * Async is a utility module which provides straight-forward, powerful functions
+ * for working with asynchronous JavaScript. Although originally designed for
+ * use with [Node.js](http://nodejs.org) and installable via
+ * `npm install --save async`, it can also be used directly in the browser.
+ * @namespace async
+ */
+import applyEach from &apos;./applyEach&apos;;
+import applyEachSeries from &apos;./applyEachSeries&apos;;
+import apply from &apos;./apply&apos;;
+import asyncify from &apos;./asyncify&apos;;
+import auto from &apos;./auto&apos;;
+import autoInject from &apos;./autoInject&apos;;
+import cargo from &apos;./cargo&apos;;
+import compose from &apos;./compose&apos;;
+import concat from &apos;./concat&apos;;
+import concatSeries from &apos;./concatSeries&apos;;
+import constant from &apos;./constant&apos;;
+import detect from &apos;./detect&apos;;
+import detectLimit from &apos;./detectLimit&apos;;
+import detectSeries from &apos;./detectSeries&apos;;
+import dir from &apos;./dir&apos;;
+import doDuring from &apos;./doDuring&apos;;
+import doUntil from &apos;./doUntil&apos;;
+import doWhilst from &apos;./doWhilst&apos;;
+import during from &apos;./during&apos;;
+import each from &apos;./each&apos;;
+import eachLimit from &apos;./eachLimit&apos;;
+import eachOf from &apos;./eachOf&apos;;
+import eachOfLimit from &apos;./eachOfLimit&apos;;
+import eachOfSeries from &apos;./eachOfSeries&apos;;
+import eachSeries from &apos;./eachSeries&apos;;
+import ensureAsync from &apos;./ensureAsync&apos;;
+import every from &apos;./every&apos;;
+import everyLimit from &apos;./everyLimit&apos;;
+import everySeries from &apos;./everySeries&apos;;
+import filter from &apos;./filter&apos;;
+import filterLimit from &apos;./filterLimit&apos;;
+import filterSeries from &apos;./filterSeries&apos;;
+import forever from &apos;./forever&apos;;
+import iterator from &apos;./iterator&apos;;
+import log from &apos;./log&apos;;
+import map from &apos;./map&apos;;
+import mapLimit from &apos;./mapLimit&apos;;
+import mapSeries from &apos;./mapSeries&apos;;
+import mapValues from &apos;./mapValues&apos;;
+import mapValuesLimit from &apos;./mapValuesLimit&apos;;
+import mapValuesSeries from &apos;./mapValuesSeries&apos;;
+import memoize from &apos;./memoize&apos;;
+import nextTick from &apos;./nextTick&apos;;
+import parallel from &apos;./parallel&apos;;
+import parallelLimit from &apos;./parallelLimit&apos;;
+import priorityQueue from &apos;./priorityQueue&apos;;
+import queue from &apos;./queue&apos;;
+import race from &apos;./race&apos;;
+import reduce from &apos;./reduce&apos;;
+import reduceRight from &apos;./reduceRight&apos;;
+import reflect from &apos;./reflect&apos;;
+import reject from &apos;./reject&apos;;
+import reflectAll from &apos;./reflectAll&apos;;
+import rejectLimit from &apos;./rejectLimit&apos;;
+import rejectSeries from &apos;./rejectSeries&apos;;
+import retry from &apos;./retry&apos;;
+import retryable from &apos;./retryable&apos;;
+import seq from &apos;./seq&apos;;
+import series from &apos;./series&apos;;
+import setImmediate from &apos;./setImmediate&apos;;
+import some from &apos;./some&apos;;
+import someLimit from &apos;./someLimit&apos;;
+import someSeries from &apos;./someSeries&apos;;
+import sortBy from &apos;./sortBy&apos;;
+import timeout from &apos;./timeout&apos;;
+import times from &apos;./times&apos;;
+import timesLimit from &apos;./timesLimit&apos;;
+import timesSeries from &apos;./timesSeries&apos;;
+import transform from &apos;./transform&apos;;
+import unmemoize from &apos;./unmemoize&apos;;
+import until from &apos;./until&apos;;
+import waterfall from &apos;./waterfall&apos;;
+import whilst from &apos;./whilst&apos;;
+
+export default {
+ applyEach: applyEach,
+ applyEachSeries: applyEachSeries,
+ apply: apply,
+ asyncify: asyncify,
+ auto: auto,
+ autoInject: autoInject,
+ cargo: cargo,
+ compose: compose,
+ concat: concat,
+ concatSeries: concatSeries,
+ constant: constant,
+ detect: detect,
+ detectLimit: detectLimit,
+ detectSeries: detectSeries,
+ dir: dir,
+ doDuring: doDuring,
+ doUntil: doUntil,
+ doWhilst: doWhilst,
+ during: during,
+ each: each,
+ eachLimit: eachLimit,
+ eachOf: eachOf,
+ eachOfLimit: eachOfLimit,
+ eachOfSeries: eachOfSeries,
+ eachSeries: eachSeries,
+ ensureAsync: ensureAsync,
+ every: every,
+ everyLimit: everyLimit,
+ everySeries: everySeries,
+ filter: filter,
+ filterLimit: filterLimit,
+ filterSeries: filterSeries,
+ forever: forever,
+ iterator: iterator,
+ log: log,
+ map: map,
+ mapLimit: mapLimit,
+ mapSeries: mapSeries,
+ mapValues: mapValues,
+ mapValuesLimit: mapValuesLimit,
+ mapValuesSeries: mapValuesSeries,
+ memoize: memoize,
+ nextTick: nextTick,
+ parallel: parallel,
+ parallelLimit: parallelLimit,
+ priorityQueue: priorityQueue,
+ queue: queue,
+ race: race,
+ reduce: reduce,
+ reduceRight: reduceRight,
+ reflect: reflect,
+ reflectAll: reflectAll,
+ reject: reject,
+ rejectLimit: rejectLimit,
+ rejectSeries: rejectSeries,
+ retry: retry,
+ retryable: retryable,
+ seq: seq,
+ series: series,
+ setImmediate: setImmediate,
+ some: some,
+ someLimit: someLimit,
+ someSeries: someSeries,
+ sortBy: sortBy,
+ timeout: timeout,
+ times: times,
+ timesLimit: timesLimit,
+ timesSeries: timesSeries,
+ transform: transform,
+ unmemoize: unmemoize,
+ until: until,
+ waterfall: waterfall,
+ whilst: whilst,
+
+ // aliases
+ all: every,
+ any: some,
+ forEach: each,
+ forEachSeries: eachSeries,
+ forEachLimit: eachLimit,
+ forEachOf: eachOf,
+ forEachOfSeries: eachOfSeries,
+ forEachOfLimit: eachOfLimit,
+ inject: reduce,
+ foldl: reduce,
+ foldr: reduceRight,
+ select: filter,
+ selectLimit: filterLimit,
+ selectSeries: filterSeries,
+ wrapSync: asyncify
+};
+
+export {
+ applyEach as applyEach,
+ applyEachSeries as applyEachSeries,
+ apply as apply,
+ asyncify as asyncify,
+ auto as auto,
+ autoInject as autoInject,
+ cargo as cargo,
+ compose as compose,
+ concat as concat,
+ concatSeries as concatSeries,
+ constant as constant,
+ detect as detect,
+ detectLimit as detectLimit,
+ detectSeries as detectSeries,
+ dir as dir,
+ doDuring as doDuring,
+ doUntil as doUntil,
+ doWhilst as doWhilst,
+ during as during,
+ each as each,
+ eachLimit as eachLimit,
+ eachOf as eachOf,
+ eachOfLimit as eachOfLimit,
+ eachOfSeries as eachOfSeries,
+ eachSeries as eachSeries,
+ ensureAsync as ensureAsync,
+ every as every,
+ everyLimit as everyLimit,
+ everySeries as everySeries,
+ filter as filter,
+ filterLimit as filterLimit,
+ filterSeries as filterSeries,
+ forever as forever,
+ iterator as iterator,
+ log as log,
+ map as map,
+ mapLimit as mapLimit,
+ mapSeries as mapSeries,
+ mapValues as mapValues,
+ mapValuesLimit as mapValuesLimit,
+ mapValuesSeries as mapValuesSeries,
+ memoize as memoize,
+ nextTick as nextTick,
+ parallel as parallel,
+ parallelLimit as parallelLimit,
+ priorityQueue as priorityQueue,
+ queue as queue,
+ race as race,
+ reduce as reduce,
+ reduceRight as reduceRight,
+ reflect as reflect,
+ reflectAll as reflectAll,
+ reject as reject,
+ rejectLimit as rejectLimit,
+ rejectSeries as rejectSeries,
+ retry as retry,
+ retryable as retryable,
+ seq as seq,
+ series as series,
+ setImmediate as setImmediate,
+ some as some,
+ someLimit as someLimit,
+ someSeries as someSeries,
+ sortBy as sortBy,
+ timeout as timeout,
+ times as times,
+ timesLimit as timesLimit,
+ timesSeries as timesSeries,
+ transform as transform,
+ unmemoize as unmemoize,
+ until as until,
+ waterfall as waterfall,
+ whilst as whilst,
+
+ // Aliases
+ every as all,
+ everyLimit as allLimit,
+ everySeries as allSeries,
+ some as any,
+ someLimit as anyLimit,
+ someSeries as anySeries,
+ detect as find,
+ detectLimit as findLimit,
+ detectSeries as findSeries,
+ each as forEach,
+ eachSeries as forEachSeries,
+ eachLimit as forEachLimit,
+ eachOf as forEachOf,
+ eachOfSeries as forEachOfSeries,
+ eachOfLimit as forEachOfLimit,
+ reduce as inject,
+ reduce as foldl,
+ reduceRight as foldr,
+ filter as select,
+ filterLimit as selectLimit,
+ filterSeries as selectSeries,
+ asyncify as wrapSync
+};
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/applyEach.js.html b/docs/file/lib/internal/applyEach.js.html
new file mode 100644
index 0000000..2be8898
--- /dev/null
+++ b/docs/file/lib/internal/applyEach.js.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/applyEach.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/applyEach.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rest from &apos;lodash/rest&apos;;
+import initialParams from &apos;./initialParams&apos;;
+
+export default function applyEach(eachfn) {
+ return rest(function(fns, args) {
+ var go = initialParams(function(args, callback) {
+ var that = this;
+ return eachfn(fns, function (fn, cb) {
+ fn.apply(that, args.concat([cb]));
+ }, callback);
+ });
+ if (args.length) {
+ return go.apply(this, args);
+ }
+ else {
+ return go;
+ }
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/concat.js.html b/docs/file/lib/internal/concat.js.html
new file mode 100644
index 0000000..ceeb654
--- /dev/null
+++ b/docs/file/lib/internal/concat.js.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/concat.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/concat.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function concat(eachfn, arr, fn, callback) {
+ var result = [];
+ eachfn(arr, function (x, index, cb) {
+ fn(x, function (err, y) {
+ result = result.concat(y || []);
+ cb(err);
+ });
+ }, function (err) {
+ callback(err, result);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/consoleFunc.js.html b/docs/file/lib/internal/consoleFunc.js.html
new file mode 100644
index 0000000..90b090f
--- /dev/null
+++ b/docs/file/lib/internal/consoleFunc.js.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/consoleFunc.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/consoleFunc.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayEach from &apos;lodash/_arrayEach&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+export default function consoleFunc(name) {
+ return rest(function (fn, args) {
+ fn.apply(null, args.concat([rest(function (err, args) {
+ if (typeof console === &apos;object&apos;) {
+ if (err) {
+ if (console.error) {
+ console.error(err);
+ }
+ }
+ else if (console[name]) {
+ arrayEach(args, function (x) {
+ console[name](x);
+ });
+ }
+ }
+ })]));
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/createTester.js.html b/docs/file/lib/internal/createTester.js.html
new file mode 100644
index 0000000..b82ee05
--- /dev/null
+++ b/docs/file/lib/internal/createTester.js.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/createTester.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/createTester.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">&apos;use strict&apos;;
+import noop from &apos;lodash/noop&apos;;
+
+export default function _createTester(eachfn, check, getResult) {
+ return function(arr, limit, iteratee, cb) {
+ function done(err) {
+ if (cb) {
+ if (err) {
+ cb(err);
+ } else {
+ cb(null, getResult(false));
+ }
+ }
+ }
+ function wrappedIteratee(x, _, callback) {
+ if (!cb) return callback();
+ iteratee(x, function (err, v) {
+ if (cb) {
+ if (err) {
+ cb(err);
+ cb = iteratee = false;
+ } else if (check(v)) {
+ cb(null, getResult(true, x));
+ cb = iteratee = false;
+ }
+ }
+ callback();
+ });
+ }
+ if (arguments.length &gt; 3) {
+ cb = cb || noop;
+ eachfn(arr, limit, wrappedIteratee, done);
+ } else {
+ cb = iteratee;
+ cb = cb || noop;
+ iteratee = limit;
+ eachfn(arr, wrappedIteratee, done);
+ }
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/doLimit.js.html b/docs/file/lib/internal/doLimit.js.html
new file mode 100644
index 0000000..985fb65
--- /dev/null
+++ b/docs/file/lib/internal/doLimit.js.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/doLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/doLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function doLimit(fn, limit) {
+ return function (iterable, iteratee, callback) {
+ return fn(iterable, limit, iteratee, callback);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/doParallel.js.html b/docs/file/lib/internal/doParallel.js.html
new file mode 100644
index 0000000..1147298
--- /dev/null
+++ b/docs/file/lib/internal/doParallel.js.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/doParallel.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/doParallel.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOf from &apos;../eachOf&apos;;
+
+export default function doParallel(fn) {
+ return function (obj, iteratee, callback) {
+ return fn(eachOf, obj, iteratee, callback);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/doParallelLimit.js.html b/docs/file/lib/internal/doParallelLimit.js.html
new file mode 100644
index 0000000..b125ff3
--- /dev/null
+++ b/docs/file/lib/internal/doParallelLimit.js.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/doParallelLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/doParallelLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./eachOfLimit&apos;;
+
+export default function doParallelLimit(fn) {
+ return function (obj, limit, iteratee, callback) {
+ return fn(eachOfLimit(limit), obj, iteratee, callback);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/doSeries.js.html b/docs/file/lib/internal/doSeries.js.html
new file mode 100644
index 0000000..3de044d
--- /dev/null
+++ b/docs/file/lib/internal/doSeries.js.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/doSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/doSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfSeries from &apos;../eachOfSeries&apos;;
+
+export default function doSeries(fn) {
+ return function (obj, iteratee, callback) {
+ return fn(eachOfSeries, obj, iteratee, callback);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/eachOfLimit.js.html b/docs/file/lib/internal/eachOfLimit.js.html
new file mode 100644
index 0000000..e1b8124
--- /dev/null
+++ b/docs/file/lib/internal/eachOfLimit.js.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/eachOfLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/eachOfLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import once from &apos;./once&apos;;
+
+import iterator from &apos;./iterator&apos;;
+import onlyOnce from &apos;./onlyOnce&apos;;
+
+export default function _eachOfLimit(limit) {
+ return function (obj, iteratee, callback) {
+ callback = once(callback || noop);
+ obj = obj || [];
+ var nextElem = iterator(obj);
+ if (limit &lt;= 0) {
+ return callback(null);
+ }
+ var done = false;
+ var running = 0;
+ var errored = false;
+
+ (function replenish () {
+ if (done &amp;&amp; running &lt;= 0) {
+ return callback(null);
+ }
+
+ while (running &lt; limit &amp;&amp; !errored) {
+ var elem = nextElem();
+ if (elem === null) {
+ done = true;
+ if (running &lt;= 0) {
+ callback(null);
+ }
+ return;
+ }
+ running += 1;
+ /* eslint {no-loop-func: 0} */
+ iteratee(elem.value, elem.key, onlyOnce(function (err) {
+ running -= 1;
+ if (err) {
+ callback(err);
+ errored = true;
+ }
+ else {
+ replenish();
+ }
+ }));
+ }
+ })();
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/filter.js.html b/docs/file/lib/internal/filter.js.html
new file mode 100644
index 0000000..f891536
--- /dev/null
+++ b/docs/file/lib/internal/filter.js.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/filter.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/filter.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayMap from &apos;lodash/_arrayMap&apos;;
+import property from &apos;lodash/_baseProperty&apos;;
+
+export default function _filter(eachfn, arr, iteratee, callback) {
+ var results = [];
+ eachfn(arr, function (x, index, callback) {
+ iteratee(x, function (err, v) {
+ if (err) {
+ callback(err);
+ }
+ else {
+ if (v) {
+ results.push({index: index, value: x});
+ }
+ callback();
+ }
+ });
+ }, function (err) {
+ if (err) {
+ callback(err);
+ }
+ else {
+ callback(null, arrayMap(results.sort(function (a, b) {
+ return a.index - b.index;
+ }), property(&apos;value&apos;)));
+ }
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/findGetResult.js.html b/docs/file/lib/internal/findGetResult.js.html
new file mode 100644
index 0000000..f548421
--- /dev/null
+++ b/docs/file/lib/internal/findGetResult.js.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/findGetResult.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/findGetResult.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function _findGetResult(v, x) {
+ return x;
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/getIterator.js.html b/docs/file/lib/internal/getIterator.js.html
new file mode 100644
index 0000000..39f5e7d
--- /dev/null
+++ b/docs/file/lib/internal/getIterator.js.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/getIterator.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/getIterator.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">var iteratorSymbol = typeof Symbol === &apos;function&apos; &amp;&amp; Symbol.iterator;
+
+export default function (coll) {
+ return iteratorSymbol &amp;&amp; coll[iteratorSymbol] &amp;&amp; coll[iteratorSymbol]();
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/initialParams.js.html b/docs/file/lib/internal/initialParams.js.html
new file mode 100644
index 0000000..a2bdffd
--- /dev/null
+++ b/docs/file/lib/internal/initialParams.js.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/initialParams.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/initialParams.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rest from &apos;lodash/rest&apos;;
+
+export default function (fn) {
+ return rest(function (args/*..., callback*/) {
+ var callback = args.pop();
+ fn.call(this, args, callback);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/iterator.js.html b/docs/file/lib/internal/iterator.js.html
new file mode 100644
index 0000000..b582d8f
--- /dev/null
+++ b/docs/file/lib/internal/iterator.js.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/iterator.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/iterator.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import isArrayLike from &apos;lodash/isArrayLike&apos;;
+import getIterator from &apos;./getIterator&apos;;
+import keys from &apos;lodash/keys&apos;;
+
+export default function iterator(coll) {
+ var i = -1;
+ var len;
+ if (isArrayLike(coll)) {
+ len = coll.length;
+ return function next() {
+ i++;
+ return i &lt; len ? {value: coll[i], key: i} : null;
+ };
+ }
+
+ var iterate = getIterator(coll);
+ if (iterate) {
+ return function next() {
+ var item = iterate.next();
+ if (item.done)
+ return null;
+ i++;
+ return {value: item.value, key: i};
+ };
+ }
+
+ var okeys = keys(coll);
+ len = okeys.length;
+ return function next() {
+ i++;
+ var key = okeys[i];
+ return i &lt; len ? {value: coll[key], key: key} : null;
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/map.js.html b/docs/file/lib/internal/map.js.html
new file mode 100644
index 0000000..22fe569
--- /dev/null
+++ b/docs/file/lib/internal/map.js.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/map.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/map.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import once from &apos;./once&apos;;
+
+export default function _asyncMap(eachfn, arr, iteratee, callback) {
+ callback = once(callback || noop);
+ arr = arr || [];
+ var results = [];
+ var counter = 0;
+
+ eachfn(arr, function (value, _, callback) {
+ var index = counter++;
+ iteratee(value, function (err, v) {
+ results[index] = v;
+ callback(err);
+ });
+ }, function (err) {
+ callback(err, results);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/notId.js.html b/docs/file/lib/internal/notId.js.html
new file mode 100644
index 0000000..052f270
--- /dev/null
+++ b/docs/file/lib/internal/notId.js.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/notId.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/notId.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function notId(v) {
+ return !v;
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/once.js.html b/docs/file/lib/internal/once.js.html
new file mode 100644
index 0000000..62a40dd
--- /dev/null
+++ b/docs/file/lib/internal/once.js.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/once.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/once.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function once(fn) {
+ return function () {
+ if (fn === null) return;
+ var callFn = fn;
+ fn = null;
+ callFn.apply(this, arguments);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/onlyOnce.js.html b/docs/file/lib/internal/onlyOnce.js.html
new file mode 100644
index 0000000..65f1325
--- /dev/null
+++ b/docs/file/lib/internal/onlyOnce.js.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/onlyOnce.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/onlyOnce.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function onlyOnce(fn) {
+ return function() {
+ if (fn === null) throw new Error(&quot;Callback was already called.&quot;);
+ var callFn = fn;
+ fn = null;
+ callFn.apply(this, arguments);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/parallel.js.html b/docs/file/lib/internal/parallel.js.html
new file mode 100644
index 0000000..64f4e3e
--- /dev/null
+++ b/docs/file/lib/internal/parallel.js.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/parallel.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/parallel.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import isArrayLike from &apos;lodash/isArrayLike&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+export default function _parallel(eachfn, tasks, callback) {
+ callback = callback || noop;
+ var results = isArrayLike(tasks) ? [] : {};
+
+ eachfn(tasks, function (task, key, callback) {
+ task(rest(function (err, args) {
+ if (args.length &lt;= 1) {
+ args = args[0];
+ }
+ results[key] = args;
+ callback(err);
+ }));
+ }, function (err) {
+ callback(err, results);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/queue.js.html b/docs/file/lib/internal/queue.js.html
new file mode 100644
index 0000000..72703e8
--- /dev/null
+++ b/docs/file/lib/internal/queue.js.html
@@ -0,0 +1,267 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/queue.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/queue.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayEach from &apos;lodash/_arrayEach&apos;;
+import arrayMap from &apos;lodash/_arrayMap&apos;;
+import isArray from &apos;lodash/isArray&apos;;
+import noop from &apos;lodash/noop&apos;;
+import property from &apos;lodash/_baseProperty&apos;;
+
+import onlyOnce from &apos;./onlyOnce&apos;;
+import setImmediate from &apos;./setImmediate&apos;;
+
+export default function queue(worker, concurrency, payload) {
+ if (concurrency == null) {
+ concurrency = 1;
+ }
+ else if(concurrency === 0) {
+ throw new Error(&apos;Concurrency must not be zero&apos;);
+ }
+ function _insert(q, data, pos, callback) {
+ if (callback != null &amp;&amp; typeof callback !== &apos;function&apos;) {
+ throw new Error(&apos;task callback must be a function&apos;);
+ }
+ q.started = true;
+ if (!isArray(data)) {
+ data = [data];
+ }
+ if(data.length === 0 &amp;&amp; q.idle()) {
+ // call drain immediately if there are no tasks
+ return setImmediate(function() {
+ q.drain();
+ });
+ }
+ arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ callback: callback || noop
+ };
+
+ if (pos) {
+ q.tasks.unshift(item);
+ } else {
+ q.tasks.push(item);
+ }
+
+ });
+ setImmediate(q.process);
+ }
+ function _next(q, tasks) {
+ return function(){
+ workers -= 1;
+
+
+ var removed = false;
+ var args = arguments;
+ arrayEach(tasks, function (task) {
+ arrayEach(workersList, function (worker, index) {
+ if (worker === task &amp;&amp; !removed) {
+ workersList.splice(index, 1);
+ removed = true;
+ }
+ });
+
+ task.callback.apply(task, args);
+
+ if (args[0] != null) {
+ q.error(args[0], task.data);
+ }
+ });
+
+ if (workers &lt;= (q.concurrency - q.buffer) ) {
+ q.unsaturated();
+ }
+
+ if (q.tasks.length + workers === 0) {
+ q.drain();
+ }
+ q.process();
+ };
+ }
+
+ var workers = 0;
+ var workersList = [];
+ var q = {
+ tasks: [],
+ concurrency: concurrency,
+ payload: payload,
+ saturated: noop,
+ unsaturated:noop,
+ buffer: concurrency / 4,
+ empty: noop,
+ drain: noop,
+ error: noop,
+ started: false,
+ paused: false,
+ push: function (data, callback) {
+ _insert(q, data, false, callback);
+ },
+ kill: function () {
+ q.drain = noop;
+ q.tasks = [];
+ },
+ unshift: function (data, callback) {
+ _insert(q, data, true, callback);
+ },
+ process: function () {
+ while(!q.paused &amp;&amp; workers &lt; q.concurrency &amp;&amp; q.tasks.length){
+
+ var tasks = q.payload ?
+ q.tasks.splice(0, q.payload) :
+ q.tasks.splice(0, q.tasks.length);
+
+ var data = arrayMap(tasks, property(&apos;data&apos;));
+
+ if (q.tasks.length === 0) {
+ q.empty();
+ }
+ workers += 1;
+ workersList.push(tasks[0]);
+
+ if (workers === q.concurrency) {
+ q.saturated();
+ }
+
+ var cb = onlyOnce(_next(q, tasks));
+ worker(data, cb);
+
+
+ }
+ },
+ length: function () {
+ return q.tasks.length;
+ },
+ running: function () {
+ return workers;
+ },
+ workersList: function () {
+ return workersList;
+ },
+ idle: function() {
+ return q.tasks.length + workers === 0;
+ },
+ pause: function () {
+ q.paused = true;
+ },
+ resume: function () {
+ if (q.paused === false) { return; }
+ q.paused = false;
+ var resumeCount = Math.min(q.concurrency, q.tasks.length);
+ // Need to call q.process once per concurrent
+ // worker to preserve full concurrency after pause
+ for (var w = 1; w &lt;= resumeCount; w++) {
+ setImmediate(q.process);
+ }
+ }
+ };
+ return q;
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/reject.js.html b/docs/file/lib/internal/reject.js.html
new file mode 100644
index 0000000..1065ee8
--- /dev/null
+++ b/docs/file/lib/internal/reject.js.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/reject.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/reject.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import filter from &apos;./filter&apos;;
+
+export default function reject(eachfn, arr, iteratee, callback) {
+ filter(eachfn, arr, function(value, cb) {
+ iteratee(value, function(err, v) {
+ if (err) {
+ cb(err);
+ } else {
+ cb(null, !v);
+ }
+ });
+ }, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/setImmediate.js.html b/docs/file/lib/internal/setImmediate.js.html
new file mode 100644
index 0000000..aca6083
--- /dev/null
+++ b/docs/file/lib/internal/setImmediate.js.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/setImmediate.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/setImmediate.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">&apos;use strict&apos;;
+
+import rest from &apos;lodash/rest&apos;;
+
+export var hasSetImmediate = typeof setImmediate === &apos;function&apos; &amp;&amp; setImmediate;
+export var hasNextTick = typeof process === &apos;object&apos; &amp;&amp; typeof process.nextTick === &apos;function&apos;;
+
+export function fallback(fn) {
+ setTimeout(fn, 0);
+}
+
+export function wrap(defer) {
+ return rest(function (fn, args) {
+ defer(function () {
+ fn.apply(null, args);
+ });
+ });
+}
+
+var _defer;
+
+if (hasSetImmediate) {
+ _defer = setImmediate;
+} else if (hasNextTick) {
+ _defer = process.nextTick;
+} else {
+ _defer = fallback;
+}
+
+export default wrap(_defer);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/internal/withoutIndex.js.html b/docs/file/lib/internal/withoutIndex.js.html
new file mode 100644
index 0000000..84789bf
--- /dev/null
+++ b/docs/file/lib/internal/withoutIndex.js.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../../">
+ <title data-ice="title">lib/internal/withoutIndex.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/internal/withoutIndex.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">export default function _withoutIndex(iteratee) {
+ return function (value, index, callback) {
+ return iteratee(value, callback);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/iterator.js.html b/docs/file/lib/iterator.js.html
new file mode 100644
index 0000000..4bf8461
--- /dev/null
+++ b/docs/file/lib/iterator.js.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/iterator.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/iterator.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">/**
+ * Creates an iterator function which calls the next function in the `tasks`
+ * array, returning a continuation to call the next one after that. It&apos;s also
+ * possible to &#x201C;peek&#x201D; at the next iterator with `iterator.next()`.
+ *
+ * This function is used internally by the `async` module, but can be useful
+ * when you want to manually control the flow of functions in series.
+ *
+ * @name iterator
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array} tasks - An array of functions to run.
+ * @returns The next function to run in the series.
+ * @example
+ *
+ * var iterator = async.iterator([
+ * function() { sys.p(&apos;one&apos;); },
+ * function() { sys.p(&apos;two&apos;); },
+ * function() { sys.p(&apos;three&apos;); }
+ * ]);
+ *
+ * node&gt; var iterator2 = iterator();
+ * &apos;one&apos;
+ * node&gt; var iterator3 = iterator2();
+ * &apos;two&apos;
+ * node&gt; iterator3();
+ * &apos;three&apos;
+ * node&gt; var nextfn = iterator2.next();
+ * node&gt; nextfn();
+ * &apos;three&apos;
+ */
+export default function(tasks) {
+ function makeCallback(index) {
+ function fn() {
+ if (tasks.length) {
+ tasks[index].apply(null, arguments);
+ }
+ return fn.next();
+ }
+ fn.next = function() {
+ return (index &lt; tasks.length - 1) ? makeCallback(index + 1) : null;
+ };
+ return fn;
+ }
+ return makeCallback(0);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/log.js.html b/docs/file/lib/log.js.html
new file mode 100644
index 0000000..2f19f20
--- /dev/null
+++ b/docs/file/lib/log.js.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/log.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/log.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import consoleFunc from &apos;./internal/consoleFunc&apos;;
+
+/**
+ * Logs the result of an `async` function to the `console`. Only works in
+ * Node.js or in browsers that support `console.log` and `console.error` (such
+ * as FF and Chrome). If multiple arguments are returned from the async
+ * function, `console.log` is called on each argument in order.
+ *
+ * @name log
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} function - The function you want to eventually apply all
+ * arguments to.
+ * @param {...*} arguments... - Any number of arguments to apply to the function.
+ * @example
+ *
+ * // in a module
+ * var hello = function(name, callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;hello &apos; + name);
+ * }, 1000);
+ * };
+ *
+ * // in the node repl
+ * node&gt; async.log(hello, &apos;world&apos;);
+ * &apos;hello world&apos;
+ */
+export default consoleFunc(&apos;log&apos;);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/map.js.html b/docs/file/lib/map.js.html
new file mode 100644
index 0000000..e56b4e0
--- /dev/null
+++ b/docs/file/lib/map.js.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/map.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/map.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import mapLimit from &apos;./mapLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Produces a new collection of values by mapping each value in `coll` through
+ * the `iteratee` function. The `iteratee` is called with an item from `coll`
+ * and a callback for when it has finished processing. Each of these callback
+ * takes 2 arguments: an `error`, and the transformed item from `coll`. If
+ * `iteratee` passes an error to its callback, the main `callback` (for the
+ * `map` function) is immediately called with the error.
+ *
+ * Note, that since this function applies the `iteratee` to each item in
+ * parallel, there is no guarantee that the `iteratee` functions will complete
+ * in order. However, the results array will be in the same order as the
+ * original `coll`.
+ *
+ * If `map` is passed an Object, the results will be an Array. The results
+ * will roughly be in the order of the original Objects&apos; keys (but this can
+ * vary across JavaScript engines)
+ *
+ * @name map
+ * @static
+ * @memberOf async
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, transformed)` which must be called
+ * once it has completed with an error (which can be `null`) and a
+ * transformed item. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Results is an Array of the
+ * transformed items from the `coll`. Invoked with (err, results).
+ * @example
+ *
+ * async.map([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], fs.stat, function(err, results) {
+ * // results is now an array of stats for each file
+ * });
+ */
+export default doLimit(mapLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/mapLimit.js.html b/docs/file/lib/mapLimit.js.html
new file mode 100644
index 0000000..a6ea137
--- /dev/null
+++ b/docs/file/lib/mapLimit.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/mapLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/mapLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import doParallelLimit from &apos;./internal/doParallelLimit&apos;;
+import map from &apos;./internal/map&apos;;
+
+/**
+ * The same as `map` but runs a maximum of `limit` async operations at a time.
+ *
+ * @name mapLimit
+ * @static
+ * @memberOf async
+ * @see async.map
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, transformed)` which must be called
+ * once it has completed with an error (which can be `null`) and a transformed
+ * item. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Results is an array of the
+ * transformed items from the `coll`. Invoked with (err, results).
+ */
+export default doParallelLimit(map);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/mapSeries.js.html b/docs/file/lib/mapSeries.js.html
new file mode 100644
index 0000000..8c0c93f
--- /dev/null
+++ b/docs/file/lib/mapSeries.js.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/mapSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/mapSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import mapLimit from &apos;./mapLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `map` but runs only a single async operation at a time.
+ *
+ * @name mapSeries
+ * @static
+ * @memberOf async
+ * @see async.map
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, transformed)` which must be called
+ * once it has completed with an error (which can be `null`) and a
+ * transformed item. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Results is an array of the
+ * transformed items from the `coll`. Invoked with (err, results).
+ */
+export default doLimit(mapLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/mapValues.js.html b/docs/file/lib/mapValues.js.html
new file mode 100644
index 0000000..8d2fe9d
--- /dev/null
+++ b/docs/file/lib/mapValues.js.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/mapValues.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/mapValues.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import mapValuesLimit from &apos;./mapValuesLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+
+/**
+ * A relative of `map`, designed for use with objects.
+ *
+ * Produces a new Object by mapping each value of `obj` through the `iteratee`
+ * function. The `iteratee` is called each `value` and `key` from `obj` and a
+ * callback for when it has finished processing. Each of these callbacks takes
+ * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`
+ * passes an error to its callback, the main `callback` (for the `mapValues`
+ * function) is immediately called with the error.
+ *
+ * Note, the order of the keys in the result is not guaranteed. The keys will
+ * be roughly in the order they complete, (but this is very engine-specific)
+ *
+ * @name mapValues
+ * @static
+ * @memberOf async
+ * @category Collection
+ * @param {Object} obj - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each value and key in
+ * `coll`. The iteratee is passed a `callback(err, transformed)` which must be
+ * called once it has completed with an error (which can be `null`) and a
+ * transformed value. Invoked with (value, key, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Results is an array of the
+ * transformed items from the `obj`. Invoked with (err, result).
+ * @example
+ *
+ * async.mapValues({
+ * f1: &apos;file1&apos;,
+ * f2: &apos;file2&apos;,
+ * f3: &apos;file3&apos;
+ * }, fs.stat, function(err, result) {
+ * // results is now a map of stats for each file, e.g.
+ * // {
+ * // f1: [stats for file1],
+ * // f2: [stats for file2],
+ * // f3: [stats for file3]
+ * // }
+ * });
+ */
+
+export default doLimit(mapValuesLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/mapValuesLimit.js.html b/docs/file/lib/mapValuesLimit.js.html
new file mode 100644
index 0000000..9819583
--- /dev/null
+++ b/docs/file/lib/mapValuesLimit.js.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/mapValuesLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/mapValuesLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./eachOfLimit&apos;;
+
+/**
+ * The same as `mapValues` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name mapValuesLimit
+ * @static
+ * @memberOf async
+ * @see async.mapValues
+ * @category Collection
+ * @param {Object} obj - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A function to apply to each value in `obj`.
+ * The iteratee is passed a `callback(err, transformed)` which must be called
+ * once it has completed with an error (which can be `null`) and a
+ * transformed value. Invoked with (value, key, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Result is an object of the
+ * transformed values from the `obj`. Invoked with (err, result).
+ */
+export default function mapValuesLimit(obj, limit, iteratee, callback) {
+ var newObj = {};
+ eachOfLimit(obj, limit, function(val, key, next) {
+ iteratee(val, key, function (err, result) {
+ if (err) return next(err);
+ newObj[key] = result;
+ next();
+ });
+ }, function (err) {
+ callback(err, newObj);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/mapValuesSeries.js.html b/docs/file/lib/mapValuesSeries.js.html
new file mode 100644
index 0000000..4feb188
--- /dev/null
+++ b/docs/file/lib/mapValuesSeries.js.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/mapValuesSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/mapValuesSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import mapValuesLimit from &apos;./mapValuesLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `mapValues` but runs only a single async operation at a time.
+ *
+ * @name mapValuesSeries
+ * @static
+ * @memberOf async
+ * @see async.mapValues
+ * @category Collection
+ * @param {Object} obj - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each value in `obj`.
+ * The iteratee is passed a `callback(err, transformed)` which must be called
+ * once it has completed with an error (which can be `null`) and a
+ * transformed value. Invoked with (value, key, callback).
+ * @param {Function} [callback] - A callback which is called when all `iteratee`
+ * functions have finished, or an error occurs. Result is an object of the
+ * transformed values from the `obj`. Invoked with (err, result).
+ */
+export default doLimit(mapValuesLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/memoize.js.html b/docs/file/lib/memoize.js.html
new file mode 100644
index 0000000..6804a9e
--- /dev/null
+++ b/docs/file/lib/memoize.js.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/memoize.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/memoize.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import identity from &apos;lodash/identity&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+import setImmediate from &apos;./internal/setImmediate&apos;;
+import initialParams from &apos;./internal/initialParams&apos;;
+
+function has(obj, key) {
+ return key in obj;
+}
+
+/**
+ * Caches the results of an `async` function. When creating a hash to store
+ * function results against, the callback is omitted from the hash and an
+ * optional hash function can be used.
+ *
+ * If no hash function is specified, the first argument is used as a hash key,
+ * which may work reasonably if it is a string or a data type that converts to a
+ * distinct string. Note that objects and arrays will not behave reasonably.
+ * Neither will cases where the other arguments are significant. In such cases,
+ * specify your own hash function.
+ *
+ * The cache of results is exposed as the `memo` property of the function
+ * returned by `memoize`.
+ *
+ * @name memoize
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} fn - The function to proxy and cache results from.
+ * @param {Function} hasher - An optional function for generating a custom hash
+ * for storing results. It has all the arguments applied to it apart from the
+ * callback, and must be synchronous.
+ * @returns {Function} a memoized version of `fn`
+ * @example
+ *
+ * var slow_fn = function(name, callback) {
+ * // do something
+ * callback(null, result);
+ * };
+ * var fn = async.memoize(slow_fn);
+ *
+ * // fn can now be used as if it were slow_fn
+ * fn(&apos;some name&apos;, function() {
+ * // callback
+ * });
+ */
+export default function memoize(fn, hasher) {
+ var memo = Object.create(null);
+ var queues = Object.create(null);
+ hasher = hasher || identity;
+ var memoized = initialParams(function memoized(args, callback) {
+ var key = hasher.apply(null, args);
+ if (has(memo, key)) {
+ setImmediate(function() {
+ callback.apply(null, memo[key]);
+ });
+ } else if (has(queues, key)) {
+ queues[key].push(callback);
+ } else {
+ queues[key] = [callback];
+ fn.apply(null, args.concat([rest(function(args) {
+ memo[key] = args;
+ var q = queues[key];
+ delete queues[key];
+ for (var i = 0, l = q.length; i &lt; l; i++) {
+ q[i].apply(null, args);
+ }
+ })]));
+ }
+ });
+ memoized.memo = memo;
+ memoized.unmemoized = fn;
+ return memoized;
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/nextTick.js.html b/docs/file/lib/nextTick.js.html
new file mode 100644
index 0000000..375f092
--- /dev/null
+++ b/docs/file/lib/nextTick.js.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/nextTick.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/nextTick.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">&apos;use strict&apos;;
+
+import { hasNextTick, hasSetImmediate, fallback, wrap } from &apos;./internal/setImmediate&apos;;
+
+/**
+ * Calls `callback` on a later loop around the event loop. In Node.js this just
+ * calls `setImmediate`. In the browser it will use `setImmediate` if
+ * available, otherwise `setTimeout(callback, 0)`, which means other higher
+ * priority events may precede the execution of `callback`.
+ *
+ * This is used internally for browser-compatibility purposes.
+ *
+ * @name nextTick
+ * @static
+ * @memberOf async
+ * @alias setImmediate
+ * @category Util
+ * @param {Function} callback - The function to call on a later loop around
+ * the event loop. Invoked with (args...).
+ * @param {...*} args... - any number of additional arguments to pass to the
+ * callback on the next tick.
+ * @example
+ *
+ * var call_order = [];
+ * async.nextTick(function() {
+ * call_order.push(&apos;two&apos;);
+ * // call_order now equals [&apos;one&apos;,&apos;two&apos;]
+ * });
+ * call_order.push(&apos;one&apos;);
+ *
+ * async.setImmediate(function (a, b, c) {
+ * // a, b, and c equal 1, 2, and 3
+ * }, 1, 2, 3);
+ */
+var _defer;
+
+if (hasNextTick) {
+ _defer = process.nextTick;
+} else if (hasSetImmediate) {
+ _defer = setImmediate;
+} else {
+ _defer = fallback;
+}
+
+export default wrap(_defer);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/parallel.js.html b/docs/file/lib/parallel.js.html
new file mode 100644
index 0000000..497a441
--- /dev/null
+++ b/docs/file/lib/parallel.js.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/parallel.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/parallel.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import parallelLimit from &apos;./parallelLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Run the `tasks` collection of functions in parallel, without waiting until
+ * the previous function has completed. If any of the functions pass an error to
+ * its callback, the main `callback` is immediately called with the value of the
+ * error. Once the `tasks` have completed, the results are passed to the final
+ * `callback` as an array.
+ *
+ * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about
+ * parallel execution of code. If your tasks do not use any timers or perform
+ * any I/O, they will actually be executed in series. Any synchronous setup
+ * sections for each task will happen one after the other. JavaScript remains
+ * single-threaded.
+ *
+ * It is also possible to use an object instead of an array. Each property will
+ * be run as a function and the results will be passed to the final `callback`
+ * as an object instead of an array. This can be a more readable way of handling
+ * results from {@link async.parallel}.
+ *
+ * @name parallel
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array|Object} tasks - A collection containing functions to run.
+ * Each function is passed a `callback(err, result)` which it must call on
+ * completion with an error `err` (which can be `null`) and an optional `result`
+ * value.
+ * @param {Function} [callback] - An optional callback to run once all the
+ * functions have completed successfully. This function gets a results array
+ * (or object) containing all the result arguments passed to the task callbacks.
+ * Invoked with (err, results).
+ * @example
+ * async.parallel([
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;one&apos;);
+ * }, 200);
+ * },
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;two&apos;);
+ * }, 100);
+ * }
+ * ],
+ * // optional callback
+ * function(err, results) {
+ * // the results array will equal [&apos;one&apos;,&apos;two&apos;] even though
+ * // the second function had a shorter timeout.
+ * });
+ *
+ * // an example using an object instead of an array
+ * async.parallel({
+ * one: function(callback) {
+ * setTimeout(function() {
+ * callback(null, 1);
+ * }, 200);
+ * },
+ * two: function(callback) {
+ * setTimeout(function() {
+ * callback(null, 2);
+ * }, 100);
+ * }
+ * }, function(err, results) {
+ * // results is now equals to: {one: 1, two: 2}
+ * });
+ */
+export default doLimit(parallelLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/parallelLimit.js.html b/docs/file/lib/parallelLimit.js.html
new file mode 100644
index 0000000..3cf448b
--- /dev/null
+++ b/docs/file/lib/parallelLimit.js.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/parallelLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/parallelLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfLimit from &apos;./internal/eachOfLimit&apos;;
+import parallel from &apos;./internal/parallel&apos;;
+
+/**
+ * The same as `parallel` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name parallel
+ * @static
+ * @memberOf async
+ * @see async.parallel
+ * @category Control Flow
+ * @param {Array|Collection} tasks - A collection containing functions to run.
+ * Each function is passed a `callback(err, result)` which it must call on
+ * completion with an error `err` (which can be `null`) and an optional `result`
+ * value.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} [callback] - An optional callback to run once all the
+ * functions have completed successfully. This function gets a results array
+ * (or object) containing all the result arguments passed to the task callbacks.
+ * Invoked with (err, results).
+ */
+export default function parallelLimit(tasks, limit, callback) {
+ parallel(eachOfLimit(limit), tasks, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/priorityQueue.js.html b/docs/file/lib/priorityQueue.js.html
new file mode 100644
index 0000000..48592ec
--- /dev/null
+++ b/docs/file/lib/priorityQueue.js.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/priorityQueue.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/priorityQueue.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayEach from &apos;lodash/_arrayEach&apos;;
+import isArray from &apos;lodash/isArray&apos;;
+import noop from &apos;lodash/noop&apos;;
+
+import setImmediate from &apos;./setImmediate&apos;;
+
+import queue from &apos;./queue&apos;;
+
+/**
+ * The same as {@link async.queue} only tasks are assigned a priority and
+ * completed in ascending priority order.
+ *
+ * @name priorityQueue
+ * @static
+ * @memberOf async
+ * @see async.queue
+ * @category Control Flow
+ * @param {Function} worker - An asynchronous function for processing a queued
+ * task, which must call its `callback(err)` argument when finished, with an
+ * optional `error` as an argument. If you want to handle errors from an
+ * individual task, pass a callback to `q.push()`. Invoked with
+ * (task, callback).
+ * @param {number} concurrency - An `integer` for determining how many `worker`
+ * functions should be run in parallel. If omitted, the concurrency defaults to
+ * `1`. If the concurrency is `0`, an error is thrown.
+ * @returns {queue} A priorityQueue object to manage the tasks. There are two
+ * differences between `queue` and `priorityQueue` objects:
+ * * `push(task, priority, [callback])` - `priority` should be a number. If an
+ * array of `tasks` is given, all tasks will be assigned the same priority.
+ * * The `unshift` method was removed.
+ */
+export default function(worker, concurrency) {
+ function _compareTasks(a, b) {
+ return a.priority - b.priority;
+ }
+
+ function _binarySearch(sequence, item, compare) {
+ var beg = -1,
+ end = sequence.length - 1;
+ while (beg &lt; end) {
+ var mid = beg + ((end - beg + 1) &gt;&gt;&gt; 1);
+ if (compare(item, sequence[mid]) &gt;= 0) {
+ beg = mid;
+ } else {
+ end = mid - 1;
+ }
+ }
+ return beg;
+ }
+
+ function _insert(q, data, priority, callback) {
+ if (callback != null &amp;&amp; typeof callback !== &apos;function&apos;) {
+ throw new Error(&apos;task callback must be a function&apos;);
+ }
+ q.started = true;
+ if (!isArray(data)) {
+ data = [data];
+ }
+ if (data.length === 0) {
+ // call drain immediately if there are no tasks
+ return setImmediate(function() {
+ q.drain();
+ });
+ }
+ arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ priority: priority,
+ callback: typeof callback === &apos;function&apos; ? callback : noop
+ };
+
+ q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
+
+ setImmediate(q.process);
+ });
+ }
+
+ // Start with a normal queue
+ var q = queue(worker, concurrency);
+
+ // Override push to accept second parameter representing priority
+ q.push = function(data, priority, callback) {
+ _insert(q, data, priority, callback);
+ };
+
+ // Remove unshift function
+ delete q.unshift;
+
+ return q;
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/queue.js.html b/docs/file/lib/queue.js.html
new file mode 100644
index 0000000..55fa432
--- /dev/null
+++ b/docs/file/lib/queue.js.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/queue.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/queue.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import queue from &apos;./internal/queue&apos;;
+
+/**
+ * A queue of tasks for the worker function to complete.
+ * @typedef {Object} QueueObject
+ * @property {Function} length - a function returning the number of items
+ * waiting to be processed. Invoke with ().
+ * @property {Function} started - a function returning whether or not any
+ * items have been pushed and processed by the queue. Invoke with ().
+ * @property {Function} running - a function returning the number of items
+ * currently being processed. Invoke with ().
+ * @property {Function} workersList - a function returning the array of items
+ * currently being processed. Invoke with ().
+ * @property {Function} idle - a function returning false if there are items
+ * waiting or being processed, or true if not. Invoke with ().
+ * @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 {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
+ * task in the list. Invoke with (task, [callback]),
+ * @property {Function} unshift - add a new task to the front of the `queue`.
+ * Invoke with (task, [callback]).
+ * @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` &amp; `buffer` limits, and
+ * further tasks will not be queued.
+ * @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 {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
+ * until `resume()` is called. Invoke with ().
+ * @property {Function} resume - a function that resumes the processing of
+ * queued tasks when the queue is paused. Invoke with ().
+ * @property {Function} kill - a function that removes the `drain` callback and
+ * empties remaining tasks from the queue forcing it to go idle. Invoke with ().
+ */
+
+/**
+ * Creates a `queue` object with the specified `concurrency`. Tasks added to the
+ * `queue` are processed in parallel (up to the `concurrency` limit). If all
+ * `worker`s are in progress, the task is queued until one becomes available.
+ * Once a `worker` completes a `task`, that `task`&apos;s callback is called.
+ *
+ * @name queue
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Function} worker - An asynchronous function for processing a queued
+ * task, which must call its `callback(err)` argument when finished, with an
+ * optional `error` as an argument. If you want to handle errors from an
+ * individual task, pass a callback to `q.push()`. Invoked with
+ * (task, callback).
+ * @param {number} [concurrency=1] - An `integer` for determining how many
+ * `worker` functions should be run in parallel. If omitted, the concurrency
+ * defaults to `1`. If the concurrency is `0`, an error is thrown.
+ * @returns {QueueObject} A queue object to manage the tasks. Callbacks can
+ * attached as certain properties to listen for specific events during the
+ * lifecycle of the queue.
+ * @example
+ *
+ * // create a queue object with concurrency 2
+ * var q = async.queue(function(task, callback) {
+ * console.log(&apos;hello &apos; + task.name);
+ * callback();
+ * }, 2);
+ *
+ * // assign a callback
+ * q.drain = function() {
+ * console.log(&apos;all items have been processed&apos;);
+ * };
+ *
+ * // add some items to the queue
+ * q.push({name: &apos;foo&apos;}, function(err) {
+ * console.log(&apos;finished processing foo&apos;);
+ * });
+ * q.push({name: &apos;bar&apos;}, function (err) {
+ * console.log(&apos;finished processing bar&apos;);
+ * });
+ *
+ * // add some items to the queue (batch-wise)
+ * q.push([{name: &apos;baz&apos;},{name: &apos;bay&apos;},{name: &apos;bax&apos;}], function(err) {
+ * console.log(&apos;finished processing item&apos;);
+ * });
+ *
+ * // add some items to the front of the queue
+ * q.unshift({name: &apos;bar&apos;}, function (err) {
+ * console.log(&apos;finished processing bar&apos;);
+ * });
+ */
+export default function (worker, concurrency) {
+ return queue(function (items, cb) {
+ worker(items[0], cb);
+ }, concurrency, 1);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/race.js.html b/docs/file/lib/race.js.html
new file mode 100644
index 0000000..fa5e5ba
--- /dev/null
+++ b/docs/file/lib/race.js.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/race.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/race.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import isArray from &apos;lodash/isArray&apos;;
+import each from &apos;lodash/each&apos;;
+import noop from &apos;lodash/noop&apos;;
+import once from &apos;./internal/once&apos;;
+
+/**
+ * Runs the `tasks` array of functions in parallel, without waiting until the
+ * previous function has completed. Once any the `tasks` completed or pass an
+ * error to its callback, the main `callback` is immediately called. It&apos;s
+ * equivalent to `Promise.race()`.
+ *
+ * @name race
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array} tasks - An array containing functions to run. Each function
+ * is passed a `callback(err, result)` which it must call on completion with an
+ * error `err` (which can be `null`) and an optional `result` value.
+ * @param {Function} callback - A callback to run once any of the functions have
+ * completed. This function gets an error or result from the first function that
+ * completed. Invoked with (err, result).
+ * @returns undefined
+ * @example
+ *
+ * async.race([
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;one&apos;);
+ * }, 200);
+ * },
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;two&apos;);
+ * }, 100);
+ * }
+ * ],
+ * // main callback
+ * function(err, result) {
+ * // the result will be equal to &apos;two&apos; as it finishes earlier
+ * });
+ */
+export default function race(tasks, callback) {
+ callback = once(callback || noop);
+ if (!isArray(tasks)) return callback(new TypeError(&apos;First argument to race must be an array of functions&apos;));
+ if (!tasks.length) return callback();
+ each(tasks, function (task) {
+ task(callback);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/reduce.js.html b/docs/file/lib/reduce.js.html
new file mode 100644
index 0000000..bfbea2a
--- /dev/null
+++ b/docs/file/lib/reduce.js.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/reduce.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/reduce.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import eachOfSeries from &apos;./eachOfSeries&apos;;
+
+/**
+ * Reduces `coll` into a single value using an async `iteratee` to return each
+ * successive step. `memo` is the initial state of the reduction. This function
+ * only operates in series.
+ *
+ * For performance reasons, it may make sense to split a call to this function
+ * into a parallel map, and then use the normal `Array.prototype.reduce` on the
+ * results. This function is for situations where each step in the reduction
+ * needs to be async; if you can get the data before reducing it, then it&apos;s
+ * probably a good idea to do so.
+ *
+ * @name reduce
+ * @static
+ * @memberOf async
+ * @alias inject
+ * @alias foldl
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {*} memo - The initial state of the reduction.
+ * @param {Function} iteratee - A function applied to each item in the
+ * array to produce the next step in the reduction. The `iteratee` is passed a
+ * `callback(err, reduction)` which accepts an optional error as its first
+ * argument, and the state of the reduction as the second. If an error is
+ * passed to the callback, the reduction is stopped and the main `callback` is
+ * immediately called with the error. Invoked with (memo, item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result is the reduced value. Invoked with
+ * (err, result).
+ * @example
+ *
+ * async.reduce([1,2,3], 0, function(memo, item, callback) {
+ * // pointless async:
+ * process.nextTick(function() {
+ * callback(null, memo + item)
+ * });
+ * }, function(err, result) {
+ * // result is now equal to the last value of memo, which is 6
+ * });
+ */
+export default function reduce(coll, memo, iteratee, callback) {
+ eachOfSeries(coll, function(x, i, callback) {
+ iteratee(memo, x, function(err, v) {
+ memo = v;
+ callback(err);
+ });
+ }, function(err) {
+ callback(err, memo);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/reduceRight.js.html b/docs/file/lib/reduceRight.js.html
new file mode 100644
index 0000000..83507ca
--- /dev/null
+++ b/docs/file/lib/reduceRight.js.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/reduceRight.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/reduceRight.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import reduce from &apos;./reduce&apos;;
+
+var slice = Array.prototype.slice;
+
+/**
+ * Same as `reduce`, only operates on `coll` in reverse order.
+ *
+ * @name reduceRight
+ * @static
+ * @memberOf async
+ * @see async.reduce
+ * @alias foldr
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {*} memo - The initial state of the reduction.
+ * @param {Function} iteratee - A function applied to each item in the
+ * array to produce the next step in the reduction. The `iteratee` is passed a
+ * `callback(err, reduction)` which accepts an optional error as its first
+ * argument, and the state of the reduction as the second. If an error is
+ * passed to the callback, the reduction is stopped and the main `callback` is
+ * immediately called with the error. Invoked with (memo, item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result is the reduced value. Invoked with
+ * (err, result).
+ */
+export default function reduceRight (coll, memo, iteratee, callback) {
+ var reversed = slice.call(coll).reverse();
+ reduce(reversed, memo, iteratee, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/reflect.js.html b/docs/file/lib/reflect.js.html
new file mode 100644
index 0000000..49e4179
--- /dev/null
+++ b/docs/file/lib/reflect.js.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/reflect.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/reflect.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import initialParams from &apos;./internal/initialParams&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+/**
+ * Wraps the function in another function that always returns data even when it
+ * errors.
+ *
+ * The object returned has either the property `error` or `value`.
+ *
+ * @name reflect
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} fn - The function you want to wrap
+ * @returns {Function} - A function that always passes null to it&apos;s callback as
+ * the error. The second argument to the callback will be an `object` with
+ * either an `error` or a `value` property.
+ * @example
+ *
+ * async.parallel([
+ * async.reflect(function(callback) {
+ * // do some stuff ...
+ * callback(null, &apos;one&apos;);
+ * }),
+ * async.reflect(function(callback) {
+ * // do some more stuff but error ...
+ * callback(&apos;bad stuff happened&apos;);
+ * }),
+ * async.reflect(function(callback) {
+ * // do some more stuff ...
+ * callback(null, &apos;two&apos;);
+ * })
+ * ],
+ * // optional callback
+ * function(err, results) {
+ * // values
+ * // results[0].value = &apos;one&apos;
+ * // results[1].error = &apos;bad stuff happened&apos;
+ * // results[2].value = &apos;two&apos;
+ * });
+ */
+export default function reflect(fn) {
+ return initialParams(function reflectOn(args, reflectCallback) {
+ args.push(rest(function callback(err, cbArgs) {
+ if (err) {
+ reflectCallback(null, {
+ error: err
+ });
+ } else {
+ var value = null;
+ if (cbArgs.length === 1) {
+ value = cbArgs[0];
+ } else if (cbArgs.length &gt; 1) {
+ value = cbArgs;
+ }
+ reflectCallback(null, {
+ value: value
+ });
+ }
+ }));
+
+ return fn.apply(this, args);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/reflectAll.js.html b/docs/file/lib/reflectAll.js.html
new file mode 100644
index 0000000..52522eb
--- /dev/null
+++ b/docs/file/lib/reflectAll.js.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/reflectAll.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/reflectAll.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import reflect from &apos;./reflect&apos;;
+
+/**
+ * A helper function that wraps an array of functions with reflect.
+ *
+ * @name reflectAll
+ * @static
+ * @memberOf async
+ * @see async.reflect
+ * @category Util
+ * @param {Array} tasks - The array of functions to wrap in `async.reflect`.
+ * @returns {Array} Returns an array of functions, each function wrapped in
+ * `async.reflect`
+ * @example
+ *
+ * let tasks = [
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;one&apos;);
+ * }, 200);
+ * },
+ * function(callback) {
+ * // do some more stuff but error ...
+ * callback(new Error(&apos;bad stuff happened&apos;));
+ * },
+ * function(callback) {
+ * setTimeout(function() {
+ * callback(null, &apos;two&apos;);
+ * }, 100);
+ * }
+ * ];
+ *
+ * async.parallel(async.reflectAll(tasks),
+ * // optional callback
+ * function(err, results) {
+ * // values
+ * // results[0].value = &apos;one&apos;
+ * // results[1].error = Error(&apos;bad stuff happened&apos;)
+ * // results[2].value = &apos;two&apos;
+ * });
+ */
+export default function reflectAll(tasks) {
+ return tasks.map(reflect);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/reject.js.html b/docs/file/lib/reject.js.html
new file mode 100644
index 0000000..c86673c
--- /dev/null
+++ b/docs/file/lib/reject.js.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/reject.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/reject.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rejectLimit from &apos;./rejectLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The opposite of `filter`. Removes values that pass an `async` truth test.
+ *
+ * @name reject
+ * @static
+ * @memberOf async
+ * @see async.filter
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results).
+ * @example
+ *
+ * async.reject([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ * fs.access(filePath, function(err) {
+ * callback(null, !err)
+ * });
+ * }, function(err, results) {
+ * // results now equals an array of missing files
+ * createFiles(results);
+ * });
+ */
+export default doLimit(rejectLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/rejectLimit.js.html b/docs/file/lib/rejectLimit.js.html
new file mode 100644
index 0000000..91c55a4
--- /dev/null
+++ b/docs/file/lib/rejectLimit.js.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/rejectLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/rejectLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import reject from &apos;./internal/reject&apos;;
+import doParallelLimit from &apos;./internal/doParallelLimit&apos;;
+
+/**
+ * The same as `reject` but runs a maximum of `limit` async operations at a
+ * time.
+ *
+ * @name rejectLimit
+ * @static
+ * @memberOf async
+ * @see async.reject
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results).
+ */
+export default doParallelLimit(reject);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/rejectSeries.js.html b/docs/file/lib/rejectSeries.js.html
new file mode 100644
index 0000000..02e9a0c
--- /dev/null
+++ b/docs/file/lib/rejectSeries.js.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/rejectSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/rejectSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import rejectLimit from &apos;./rejectLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `reject` but runs only a single async operation at a time.
+ *
+ * @name rejectSeries
+ * @static
+ * @memberOf async
+ * @see async.reject
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in `coll`.
+ * The `iteratee` is passed a `callback(err, truthValue)`, which must be called
+ * with a boolean argument once it has completed. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Invoked with (err, results).
+ */
+export default doLimit(rejectLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/retry.js.html b/docs/file/lib/retry.js.html
new file mode 100644
index 0000000..855a80e
--- /dev/null
+++ b/docs/file/lib/retry.js.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/retry.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/retry.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import series from &apos;./series&apos;;
+import noop from &apos;lodash/noop&apos;;
+import constant from &apos;lodash/constant&apos;;
+
+/**
+ * Attempts to get a successful response from `task` no more than `times` times
+ * before returning an error. If the task is successful, the `callback` will be
+ * passed the result of the successful task. If all attempts fail, the callback
+ * will be passed the error and result (if any) of the final attempt.
+ *
+ * @name retry
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an
+ * object with `times` and `interval` or a number.
+ * * `times` - The number of attempts to make before giving up. The default
+ * is `5`.
+ * * `interval` - The time to wait between retries, in milliseconds. The
+ * default is `0`. The interval may also be specified as a function of the
+ * retry count (see example).
+ * * If `opts` is a number, the number specifies the number of times to retry,
+ * with the default interval of `0`.
+ * @param {Function} task - A function which receives two arguments: (1) a
+ * `callback(err, result)` which must be called when finished, passing `err`
+ * (which can be `null`) and the `result` of the function&apos;s execution, and (2)
+ * a `results` object, containing the results of the previously executed
+ * functions (if nested inside another control flow). Invoked with
+ * (callback, results).
+ * @param {Function} [callback] - An optional callback which is called when the
+ * task has succeeded, or after the final failed attempt. It receives the `err`
+ * and `result` arguments of the last attempt at completing the `task`. Invoked
+ * with (err, results).
+ * @example
+ *
+ * // The `retry` function can be used as a stand-alone control flow by passing
+ * // a callback, as shown below:
+ *
+ * // try calling apiMethod 3 times
+ * async.retry(3, apiMethod, function(err, result) {
+ * // do something with the result
+ * });
+ *
+ * // try calling apiMethod 3 times, waiting 200 ms between each retry
+ * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {
+ * // do something with the result
+ * });
+ *
+ * // try calling apiMethod 10 times with exponential backoff
+ * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)
+ * async.retry({
+ * times: 10,
+ * interval: function(retryCount) {
+ * return 50 * Math.pow(2, retryCount);
+ * }
+ * }, apiMethod, function(err, result) {
+ * // do something with the result
+ * });
+ *
+ * // try calling apiMethod the default 5 times no delay between each retry
+ * async.retry(apiMethod, function(err, result) {
+ * // do something with the result
+ * });
+ *
+ * // It can also be embedded within other control flow functions to retry
+ * // individual methods that are not as reliable, like this:
+ * async.auto({
+ * users: api.getUsers.bind(api),
+ * payments: async.retry(3, api.getPayments.bind(api))
+ * }, function(err, results) {
+ * // do something with the results
+ * });
+ */
+export default function retry(opts, task, callback) {
+ var DEFAULT_TIMES = 5;
+ var DEFAULT_INTERVAL = 0;
+
+ var options = {
+ times: DEFAULT_TIMES,
+ intervalFunc: constant(DEFAULT_INTERVAL)
+ };
+
+ function parseTimes(acc, t) {
+ if (typeof t === &apos;object&apos;) {
+ acc.times = +t.times || DEFAULT_TIMES;
+
+ acc.intervalFunc = typeof t.interval === &apos;function&apos; ?
+ t.interval :
+ constant(+t.interval || DEFAULT_INTERVAL);
+ } else if (typeof t === &apos;number&apos; || typeof t === &apos;string&apos;) {
+ acc.times = +t || DEFAULT_TIMES;
+ } else {
+ throw new Error(&quot;Invalid arguments for async.retry&quot;);
+ }
+ }
+
+
+ if (arguments.length &lt; 3 &amp;&amp; typeof opts === &apos;function&apos;) {
+ callback = task || noop;
+ task = opts;
+ } else {
+ parseTimes(options, opts);
+ callback = callback || noop;
+ }
+
+
+ if (typeof task !== &apos;function&apos;) {
+ throw new Error(&quot;Invalid arguments for async.retry&quot;);
+ }
+
+ var attempts = [];
+ for (var i = 1; i &lt; options.times + 1; i++) {
+ var isFinalAttempt = (i == options.times);
+ attempts.push(retryAttempt(isFinalAttempt));
+ var interval = options.intervalFunc(i);
+ if (!isFinalAttempt &amp;&amp; interval &gt; 0) {
+ attempts.push(retryInterval(interval));
+ }
+ }
+
+ series(attempts, function(done, data) {
+ data = data[data.length - 1];
+ callback(data.err, data.result);
+ });
+
+
+ function retryAttempt(isFinalAttempt) {
+ return function(seriesCallback) {
+ task(function(err, result) {
+ seriesCallback(!err || isFinalAttempt, {
+ err: err,
+ result: result
+ });
+ });
+ };
+ }
+
+ function retryInterval(interval) {
+ return function(seriesCallback) {
+ setTimeout(function() {
+ seriesCallback(null);
+ }, interval);
+ };
+ }
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/retryable.js.html b/docs/file/lib/retryable.js.html
new file mode 100644
index 0000000..40e2337
--- /dev/null
+++ b/docs/file/lib/retryable.js.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/retryable.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/retryable.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import retry from &apos;./retry&apos;;
+import initialParams from &apos;./internal/initialParams&apos;;
+
+/**
+ * A close relative of `retry`. This method wraps a task and makes it
+ * retryable, rather than immediately calling it with retries.
+ *
+ * @name retryable
+ * @static
+ * @memberOf async
+ * @see async.retry
+ * @category Control Flow
+ * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional
+ * options, exactly the same as from `retry`
+ * @param {Function} task - the asynchronous function to wrap
+ * @returns {Functions} The wrapped function, which when invoked, will retry on
+ * an error, based on the parameters specified in `opts`.
+ * @example
+ *
+ * async.auto({
+ * dep1: async.retryable(3, getFromFlakyService),
+ * process: [&quot;dep1&quot;, async.retryable(3, function (results, cb) {
+ * maybeProcessData(results.dep1, cb);
+ * })]
+ * }, callback);
+ */
+export default function (opts, task) {
+ if (!task) {
+ task = opts;
+ opts = null;
+ }
+ return initialParams(function (args, callback) {
+ function taskFn(cb) {
+ task.apply(null, args.concat([cb]));
+ }
+
+ if (opts) retry(opts, taskFn, callback);
+ else retry(taskFn, callback);
+
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/seq.js.html b/docs/file/lib/seq.js.html
new file mode 100644
index 0000000..4608e49
--- /dev/null
+++ b/docs/file/lib/seq.js.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/seq.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/seq.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import rest from &apos;lodash/rest&apos;;
+import reduce from &apos;./reduce&apos;;
+
+/**
+ * Version of the compose function that is more natural to read. Each function
+ * consumes the return value of the previous function. It is the equivalent of
+ * {@link async.compose} with the arguments reversed.
+ *
+ * Each function is executed with the `this` binding of the composed function.
+ *
+ * @name seq
+ * @static
+ * @memberOf async
+ * @see async.compose
+ * @category Control Flow
+ * @param {...Function} functions - the asynchronous functions to compose
+ * @returns {Function} a function that composes the `functions` in order
+ * @example
+ *
+ * // Requires lodash (or underscore), express3 and dresende&apos;s orm2.
+ * // Part of an app, that fetches cats of the logged user.
+ * // This example uses `seq` function to avoid overnesting and error
+ * // handling clutter.
+ * app.get(&apos;/cats&apos;, function(request, response) {
+ * var User = request.models.User;
+ * async.seq(
+ * _.bind(User.get, User), // &apos;User.get&apos; has signature (id, callback(err, data))
+ * function(user, fn) {
+ * user.getCats(fn); // &apos;getCats&apos; has signature (callback(err, data))
+ * }
+ * )(req.session.user_id, function (err, cats) {
+ * if (err) {
+ * console.error(err);
+ * response.json({ status: &apos;error&apos;, message: err.message });
+ * } else {
+ * response.json({ status: &apos;ok&apos;, message: &apos;Cats found&apos;, data: cats });
+ * }
+ * });
+ * });
+ */
+export default rest(function seq(functions) {
+ return rest(function(args) {
+ var that = this;
+
+ var cb = args[args.length - 1];
+ if (typeof cb == &apos;function&apos;) {
+ args.pop();
+ } else {
+ cb = noop;
+ }
+
+ reduce(functions, args, function(newargs, fn, cb) {
+ fn.apply(that, newargs.concat([rest(function(err, nextargs) {
+ cb(err, nextargs);
+ })]));
+ },
+ function(err, results) {
+ cb.apply(that, [err].concat(results));
+ });
+ });
+})
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/series.js.html b/docs/file/lib/series.js.html
new file mode 100644
index 0000000..8079ba2
--- /dev/null
+++ b/docs/file/lib/series.js.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/series.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/series.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import parallel from &apos;./internal/parallel&apos;;
+import eachOfSeries from &apos;./eachOfSeries&apos;;
+
+/**
+ * Run the functions in the `tasks` collection in series, each one running once
+ * the previous function has completed. If any functions in the series pass an
+ * error to its callback, no more functions are run, and `callback` is
+ * immediately called with the value of the error. Otherwise, `callback`
+ * receives an array of results when `tasks` have completed.
+ *
+ * It is also possible to use an object instead of an array. Each property will
+ * be run as a function, and the results will be passed to the final `callback`
+ * as an object instead of an array. This can be a more readable way of handling
+ * results from {@link async.series}.
+ *
+ * **Note** that while many implementations preserve the order of object
+ * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)
+ * explicitly states that
+ *
+ * &gt; The mechanics and order of enumerating the properties is not specified.
+ *
+ * So if you rely on the order in which your series of functions are executed,
+ * and want this to work on all platforms, consider using an array.
+ *
+ * @name series
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array|Object} tasks - A collection containing functions to run, each
+ * function is passed a `callback(err, result)` it must call on completion with
+ * an error `err` (which can be `null`) and an optional `result` value.
+ * @param {Function} [callback] - An optional callback to run once all the
+ * functions have completed. This function gets a results array (or object)
+ * containing all the result arguments passed to the `task` callbacks. Invoked
+ * with (err, result).
+ * @example
+ * async.series([
+ * function(callback) {
+ * // do some stuff ...
+ * callback(null, &apos;one&apos;);
+ * },
+ * function(callback) {
+ * // do some more stuff ...
+ * callback(null, &apos;two&apos;);
+ * }
+ * ],
+ * // optional callback
+ * function(err, results) {
+ * // results is now equal to [&apos;one&apos;, &apos;two&apos;]
+ * });
+ *
+ * async.series({
+ * one: function(callback) {
+ * setTimeout(function() {
+ * callback(null, 1);
+ * }, 200);
+ * },
+ * two: function(callback){
+ * setTimeout(function() {
+ * callback(null, 2);
+ * }, 100);
+ * }
+ * }, function(err, results) {
+ * // results is now equal to: {one: 1, two: 2}
+ * });
+ */
+export default function series(tasks, callback) {
+ parallel(eachOfSeries, tasks, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/setImmediate.js.html b/docs/file/lib/setImmediate.js.html
new file mode 100644
index 0000000..2404087
--- /dev/null
+++ b/docs/file/lib/setImmediate.js.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/setImmediate.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/setImmediate.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import setImmediate from &apos;./internal/setImmediate&apos;;
+
+/**
+ * Calls `callback` on a later loop around the event loop. In Node.js this just
+ * calls `setImmediate`. In the browser it will use `setImmediate` if
+ * available, otherwise `setTimeout(callback, 0)`, which means other higher
+ * priority events may precede the execution of `callback`.
+ *
+ * This is used internally for browser-compatibility purposes.
+ *
+ * @name setImmediate
+ * @static
+ * @memberOf async
+ * @alias nextTick
+ * @category Util
+ * @param {Function} callback - The function to call on a later loop around
+ * the event loop. Invoked with (args...).
+ * @param {...*} args... - any number of additional arguments to pass to the
+ * callback on the next tick.
+ * @example
+ *
+ * var call_order = [];
+ * async.nextTick(function() {
+ * call_order.push(&apos;two&apos;);
+ * // call_order now equals [&apos;one&apos;,&apos;two&apos;]
+ * });
+ * call_order.push(&apos;one&apos;);
+ *
+ * async.setImmediate(function (a, b, c) {
+ * // a, b, and c equal 1, 2, and 3
+ * }, 1, 2, 3);
+ */
+export default setImmediate;
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/some.js.html b/docs/file/lib/some.js.html
new file mode 100644
index 0000000..eec23bc
--- /dev/null
+++ b/docs/file/lib/some.js.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/some.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/some.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import someLimit from &apos;./someLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Returns `true` if at least one element in the `coll` satisfies an async test.
+ * If any iteratee call returns `true`, the main `callback` is immediately
+ * called.
+ *
+ * @name some
+ * @static
+ * @memberOf async
+ * @alias any
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in the array
+ * in parallel. The iteratee is passed a `callback(err, truthValue)` which must
+ * be called with a boolean argument once it has completed. Invoked with
+ * (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the iteratee functions have finished.
+ * Result will be either `true` or `false` depending on the values of the async
+ * tests. Invoked with (err, result).
+ * @example
+ *
+ * async.some([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ * fs.access(filePath, function(err) {
+ * callback(null, !err)
+ * });
+ * }, function(err, result) {
+ * // if result is true then at least one of the files exists
+ * });
+ */
+export default doLimit(someLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/someLimit.js.html b/docs/file/lib/someLimit.js.html
new file mode 100644
index 0000000..6d83b31
--- /dev/null
+++ b/docs/file/lib/someLimit.js.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/someLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/someLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import createTester from &apos;./internal/createTester&apos;;
+import eachOfLimit from &apos;./eachOfLimit&apos;;
+import identity from &apos;lodash/identity&apos;;
+
+/**
+ * The same as `some` but runs a maximum of `limit` async operations at a time.
+ *
+ * @name someLimit
+ * @static
+ * @memberOf async
+ * @see async.some
+ * @alias anyLimit
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - A truth test to apply to each item in the array
+ * in parallel. The iteratee is passed a `callback(err, truthValue)` which must
+ * be called with a boolean argument once it has completed. Invoked with
+ * (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the iteratee functions have finished.
+ * Result will be either `true` or `false` depending on the values of the async
+ * tests. Invoked with (err, result).
+ */
+export default createTester(eachOfLimit, Boolean, identity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/someSeries.js.html b/docs/file/lib/someSeries.js.html
new file mode 100644
index 0000000..b655f83
--- /dev/null
+++ b/docs/file/lib/someSeries.js.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/someSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/someSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import someLimit from &apos;./someLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as `some` but runs only a single async operation at a time.
+ *
+ * @name someSeries
+ * @static
+ * @memberOf async
+ * @see async.some
+ * @alias anySeries
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A truth test to apply to each item in the array
+ * in parallel. The iteratee is passed a `callback(err, truthValue)` which must
+ * be called with a boolean argument once it has completed. Invoked with
+ * (item, callback).
+ * @param {Function} [callback] - A callback which is called as soon as any
+ * iteratee returns `true`, or after all the iteratee functions have finished.
+ * Result will be either `true` or `false` depending on the values of the async
+ * tests. Invoked with (err, result).
+ */
+export default doLimit(someLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/sortBy.js.html b/docs/file/lib/sortBy.js.html
new file mode 100644
index 0000000..4fe484f
--- /dev/null
+++ b/docs/file/lib/sortBy.js.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/sortBy.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/sortBy.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import arrayMap from &apos;lodash/_arrayMap&apos;;
+import property from &apos;lodash/_baseProperty&apos;;
+
+import map from &apos;./map&apos;;
+
+/**
+ * Sorts a list by the results of running each `coll` value through an async
+ * `iteratee`.
+ *
+ * @name sortBy
+ * @static
+ * @memberOf async
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {Function} iteratee - A function to apply to each item in `coll`.
+ * The iteratee is passed a `callback(err, sortValue)` which must be called once
+ * it has completed with an error (which can be `null`) and a value to use as
+ * the sort criteria. Invoked with (item, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished, or an error occurs. Results is the items
+ * from the original `coll` sorted by the values returned by the `iteratee`
+ * calls. Invoked with (err, results).
+ * @example
+ *
+ * async.sortBy([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(file, callback) {
+ * fs.stat(file, function(err, stats) {
+ * callback(err, stats.mtime);
+ * });
+ * }, function(err, results) {
+ * // results is now the original array of files sorted by
+ * // modified date
+ * });
+ *
+ * // By modifying the callback parameter the
+ * // sorting order can be influenced:
+ *
+ * // ascending order
+ * async.sortBy([1,9,3,5], function(x, callback) {
+ * callback(null, x);
+ * }, function(err,result) {
+ * // result callback
+ * });
+ *
+ * // descending order
+ * async.sortBy([1,9,3,5], function(x, callback) {
+ * callback(null, x*-1); //&lt;- x*-1 instead of x, turns the order around
+ * }, function(err,result) {
+ * // result callback
+ * });
+ */
+export default function sortBy (coll, iteratee, callback) {
+ map(coll, function (x, callback) {
+ iteratee(x, function (err, criteria) {
+ if (err) return callback(err);
+ callback(null, {value: x, criteria: criteria});
+ });
+ }, function (err, results) {
+ if (err) return callback(err);
+ callback(null, arrayMap(results.sort(comparator), property(&apos;value&apos;)));
+ });
+
+ function comparator(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a &lt; b ? -1 : a &gt; b ? 1 : 0;
+ }
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/timeout.js.html b/docs/file/lib/timeout.js.html
new file mode 100644
index 0000000..70e9e83
--- /dev/null
+++ b/docs/file/lib/timeout.js.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/timeout.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/timeout.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import initialParams from &apos;./internal/initialParams&apos;;
+
+/**
+ * Sets a time limit on an asynchronous function. If the function does not call
+ * its callback within the specified milliseconds, it will be called with a
+ * timeout error. The code property for the error object will be `&apos;ETIMEDOUT&apos;`.
+ *
+ * @name timeout
+ * @static
+ * @memberOf async
+ * @category Util
+ * @param {Function} asyncFn - The asynchronous function you want to set the
+ * time limit.
+ * @param {number} milliseconds - The specified time limit.
+ * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)
+ * to timeout Error for more information..
+ * @returns {Function} Returns a wrapped function that can be used with any of
+ * the control flow functions.
+ * @example
+ *
+ * async.timeout(function(callback) {
+ * doAsyncTask(callback);
+ * }, 1000);
+ */
+export default function timeout(asyncFn, milliseconds, info) {
+ var originalCallback, timer;
+ var timedOut = false;
+
+ function injectedCallback() {
+ if (!timedOut) {
+ originalCallback.apply(null, arguments);
+ clearTimeout(timer);
+ }
+ }
+
+ function timeoutCallback() {
+ var name = asyncFn.name || &apos;anonymous&apos;;
+ var error = new Error(&apos;Callback function &quot;&apos; + name + &apos;&quot; timed out.&apos;);
+ error.code = &apos;ETIMEDOUT&apos;;
+ if (info) {
+ error.info = info;
+ }
+ timedOut = true;
+ originalCallback(error);
+ }
+
+ return initialParams(function (args, origCallback) {
+ originalCallback = origCallback;
+ // setup timer and call original function
+ timer = setTimeout(timeoutCallback, milliseconds);
+ asyncFn.apply(null, args.concat(injectedCallback));
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/times.js.html b/docs/file/lib/times.js.html
new file mode 100644
index 0000000..8df30d6
--- /dev/null
+++ b/docs/file/lib/times.js.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/times.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/times.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import timesLimit from &apos;./timesLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * Calls the `iteratee` function `n` times, and accumulates results in the same
+ * manner you would use with {@link async.map}.
+ *
+ * @name times
+ * @static
+ * @memberOf async
+ * @see async.map
+ * @category Control Flow
+ * @param {number} n - The number of times to run the function.
+ * @param {Function} iteratee - The function to call `n` times. Invoked with the
+ * iteration index and a callback (n, next).
+ * @param {Function} callback - see {@link async.map}.
+ * @example
+ *
+ * // Pretend this is some complicated async factory
+ * var createUser = function(id, callback) {
+ * callback(null, {
+ * id: &apos;user&apos; + id
+ * });
+ * };
+ *
+ * // generate 5 users
+ * async.times(5, function(n, next) {
+ * createUser(n, function(err, user) {
+ * next(err, user);
+ * });
+ * }, function(err, users) {
+ * // we should now have 5 users
+ * });
+ */
+export default doLimit(timesLimit, Infinity);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/timesLimit.js.html b/docs/file/lib/timesLimit.js.html
new file mode 100644
index 0000000..f34e896
--- /dev/null
+++ b/docs/file/lib/timesLimit.js.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/timesLimit.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/timesLimit.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import mapLimit from &apos;./mapLimit&apos;;
+import range from &apos;lodash/_baseRange&apos;;
+
+/**
+* The same as {@link times} but runs a maximum of `limit` async operations at a
+* time.
+ *
+ * @name timesLimit
+ * @static
+ * @memberOf async
+ * @see async.times
+ * @category Control Flow
+ * @param {number} count - The number of times to run the function.
+ * @param {number} limit - The maximum number of async operations at a time.
+ * @param {Function} iteratee - The function to call `n` times. Invoked with the
+ * iteration index and a callback (n, next).
+ * @param {Function} callback - see {@link async.map}.
+ */
+export default function timeLimit(count, limit, iteratee, callback) {
+ mapLimit(range(0, count, 1), limit, iteratee, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/timesSeries.js.html b/docs/file/lib/timesSeries.js.html
new file mode 100644
index 0000000..3eec208
--- /dev/null
+++ b/docs/file/lib/timesSeries.js.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/timesSeries.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/timesSeries.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import timesLimit from &apos;./timesLimit&apos;;
+import doLimit from &apos;./internal/doLimit&apos;;
+
+/**
+ * The same as {@link async.times} but runs only a single async operation at a time.
+ *
+ * @name timesSeries
+ * @static
+ * @memberOf async
+ * @see async.times
+ * @category Control Flow
+ * @param {number} n - The number of times to run the function.
+ * @param {Function} iteratee - The function to call `n` times. Invoked with the
+ * iteration index and a callback (n, next).
+ * @param {Function} callback - see {@link async.map}.
+ */
+export default doLimit(timesLimit, 1);
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/transform.js.html b/docs/file/lib/transform.js.html
new file mode 100644
index 0000000..d190894
--- /dev/null
+++ b/docs/file/lib/transform.js.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/transform.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/transform.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import isArray from &apos;lodash/isArray&apos;;
+
+import eachOf from &apos;./eachOf&apos;;
+
+/**
+ * A relative of `reduce`. Takes an Object or Array, and iterates over each
+ * element in series, each step potentially mutating an `accumulator` value.
+ * The type of the accumulator defaults to the type of collection passed in.
+ *
+ * @name transform
+ * @static
+ * @memberOf async
+ * @category Collection
+ * @param {Array|Object} coll - A collection to iterate over.
+ * @param {*} [accumulator] - The initial state of the transform. If omitted,
+ * it will default to an empty Object or Array, depending on the type of `coll`
+ * @param {Function} iteratee - A function applied to each item in the
+ * collection that potentially modifies the accumulator. The `iteratee` is
+ * passed a `callback(err)` which accepts an optional error as its first
+ * argument. If an error is passed to the callback, the transform is stopped
+ * and the main `callback` is immediately called with the error.
+ * Invoked with (accumulator, item, key, callback).
+ * @param {Function} [callback] - A callback which is called after all the
+ * `iteratee` functions have finished. Result is the transformed accumulator.
+ * Invoked with (err, result).
+ * @example
+ *
+ * async.transform([1,2,3], function(acc, item, index, callback) {
+ * // pointless async:
+ * process.nextTick(function() {
+ * acc.push(item * 2)
+ * callback(null)
+ * });
+ * }, function(err, result) {
+ * // result is now equal to [2, 4, 6]
+ * });
+ *
+ * @example
+ *
+ * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {
+ * setImmediate(function () {
+ * obj[key] = val * 2;
+ * callback();
+ * })
+ * }, function (err, result) {
+ * // result is equal to {a: 2, b: 4, c: 6}
+ * })
+ */
+export default function transform (coll, accumulator, iteratee, callback) {
+ if (arguments.length === 3) {
+ callback = iteratee;
+ iteratee = accumulator;
+ accumulator = isArray(coll) ? [] : {};
+ }
+
+ eachOf(coll, function(v, k, cb) {
+ iteratee(accumulator, v, k, cb);
+ }, function(err) {
+ callback(err, accumulator);
+ });
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/unmemoize.js.html b/docs/file/lib/unmemoize.js.html
new file mode 100644
index 0000000..6411f8a
--- /dev/null
+++ b/docs/file/lib/unmemoize.js.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/unmemoize.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/unmemoize.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">/**
+ * Undoes a {@link async.memoize}d function, reverting it to the original,
+ * unmemoized form. Handy for testing.
+ *
+ * @name unmemoize
+ * @static
+ * @memberOf async
+ * @see async.memoize
+ * @category Util
+ * @param {Function} fn - the memoized function
+ * @returns {Function} a function that calls the original unmemoized function
+ */
+export default function unmemoize(fn) {
+ return function () {
+ return (fn.unmemoized || fn).apply(null, arguments);
+ };
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/until.js.html b/docs/file/lib/until.js.html
new file mode 100644
index 0000000..9a69c29
--- /dev/null
+++ b/docs/file/lib/until.js.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/until.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/until.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import whilst from &apos;./whilst&apos;;
+
+/**
+ * Repeatedly call `fn` until `test` returns `true`. Calls `callback` when
+ * stopped, or an error occurs. `callback` will be passed an error and any
+ * arguments passed to the final `fn`&apos;s callback.
+ *
+ * The inverse of {@link async.whilst}.
+ *
+ * @name until
+ * @static
+ * @memberOf async
+ * @see async.whilst
+ * @category Control Flow
+ * @param {Function} test - synchronous truth test to perform before each
+ * execution of `fn`. Invoked with ().
+ * @param {Function} fn - A function which is called each time `test` fails.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has passed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ */
+export default function until(test, fn, callback) {
+ whilst(function() {
+ return !test.apply(this, arguments);
+ }, fn, callback);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/waterfall.js.html b/docs/file/lib/waterfall.js.html
new file mode 100644
index 0000000..c573c5a
--- /dev/null
+++ b/docs/file/lib/waterfall.js.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/waterfall.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/waterfall.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import isArray from &apos;lodash/isArray&apos;;
+import noop from &apos;lodash/noop&apos;;
+import once from &apos;./internal/once&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+import onlyOnce from &apos;./internal/onlyOnce&apos;;
+
+/**
+ * Runs the `tasks` array of functions in series, each passing their results to
+ * the next in the array. However, if any of the `tasks` pass an error to their
+ * own callback, the next function is not executed, and the main `callback` is
+ * immediately called with the error.
+ *
+ * @name waterfall
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Array} tasks - An array of functions to run, each function is passed
+ * a `callback(err, result1, result2, ...)` it must call on completion. The
+ * first argument is an error (which can be `null`) and any further arguments
+ * will be passed as arguments in order to the next task.
+ * @param {Function} [callback] - An optional callback to run once all the
+ * functions have completed. This will be passed the results of the last task&apos;s
+ * callback. Invoked with (err, [results]).
+ * @returns undefined
+ * @example
+ *
+ * async.waterfall([
+ * function(callback) {
+ * callback(null, &apos;one&apos;, &apos;two&apos;);
+ * },
+ * function(arg1, arg2, callback) {
+ * // arg1 now equals &apos;one&apos; and arg2 now equals &apos;two&apos;
+ * callback(null, &apos;three&apos;);
+ * },
+ * function(arg1, callback) {
+ * // arg1 now equals &apos;three&apos;
+ * callback(null, &apos;done&apos;);
+ * }
+ * ], function (err, result) {
+ * // result now equals &apos;done&apos;
+ * });
+ *
+ * // Or, with named functions:
+ * async.waterfall([
+ * myFirstFunction,
+ * mySecondFunction,
+ * myLastFunction,
+ * ], function (err, result) {
+ * // result now equals &apos;done&apos;
+ * });
+ * function myFirstFunction(callback) {
+ * callback(null, &apos;one&apos;, &apos;two&apos;);
+ * }
+ * function mySecondFunction(arg1, arg2, callback) {
+ * // arg1 now equals &apos;one&apos; and arg2 now equals &apos;two&apos;
+ * callback(null, &apos;three&apos;);
+ * }
+ * function myLastFunction(arg1, callback) {
+ * // arg1 now equals &apos;three&apos;
+ * callback(null, &apos;done&apos;);
+ * }
+ */
+export default function(tasks, callback) {
+ callback = once(callback || noop);
+ if (!isArray(tasks)) return callback(new Error(&apos;First argument to waterfall must be an array of functions&apos;));
+ if (!tasks.length) return callback();
+ var taskIndex = 0;
+
+ function nextTask(args) {
+ if (taskIndex === tasks.length) {
+ return callback.apply(null, [null].concat(args));
+ }
+
+ var taskCallback = onlyOnce(rest(function(err, args) {
+ if (err) {
+ return callback.apply(null, [err].concat(args));
+ }
+ nextTask(args);
+ }));
+
+ args.push(taskCallback);
+
+ var task = tasks[taskIndex++];
+ task.apply(null, args);
+ }
+
+ nextTask([]);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/file/lib/whilst.js.html b/docs/file/lib/whilst.js.html
new file mode 100644
index 0000000..60e0533
--- /dev/null
+++ b/docs/file/lib/whilst.js.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../../">
+ <title data-ice="title">lib/whilst.js | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">lib/whilst.js</h1>
+<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import noop from &apos;lodash/noop&apos;;
+import rest from &apos;lodash/rest&apos;;
+
+/**
+ * Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when
+ * stopped, or an error occurs.
+ *
+ * @name whilst
+ * @static
+ * @memberOf async
+ * @category Control Flow
+ * @param {Function} test - synchronous truth test to perform before each
+ * execution of `fn`. Invoked with ().
+ * @param {Function} iteratee - A function which is called each time `test` passes.
+ * The function is passed a `callback(err)`, which must be called once it has
+ * completed with an optional `err` argument. Invoked with (callback).
+ * @param {Function} [callback] - A callback which is called after the test
+ * function has failed and repeated execution of `fn` has stopped. `callback`
+ * will be passed an error and any arguments passed to the final `fn`&apos;s
+ * callback. Invoked with (err, [results]);
+ * @returns undefined
+ * @example
+ *
+ * var count = 0;
+ * async.whilst(
+ * function() { return count &lt; 5; },
+ * function(callback) {
+ * count++;
+ * setTimeout(function() {
+ * callback(null, count);
+ * }, 1000);
+ * },
+ * function (err, n) {
+ * // 5 seconds have passed, n = 5
+ * }
+ * );
+ */
+export default function whilst(test, iteratee, callback) {
+ callback = callback || noop;
+ if (!test()) return callback(null);
+ var next = rest(function(err, args) {
+ if (err) return callback(err);
+ if (test.apply(this, args)) return iteratee(next);
+ callback.apply(null, [null].concat(args));
+ });
+ iteratee(next);
+}
+</code></pre>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/function/index.html b/docs/function/index.html
new file mode 100644
index 0000000..1df60c9
--- /dev/null
+++ b/docs/function/index.html
@@ -0,0 +1,6168 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../">
+ <title data-ice="title">Function | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">Function</h1>
+<div data-ice="summaries"><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span><span data-ice="signature">(eachfn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span><span data-ice="signature">(func: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Take a sync function and make it async, passing its return value to a
+callback.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Determines the best order for running the functions in <code>tasks</code>, based on
+their requirements.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A dependency-injected version of the <span>async.auto</span> function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, payload: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a <code>cargo</code> object with the specified payload.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span><span data-ice="signature">(functions: ...<span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a function which is a composition of the passed asynchronous
+functions.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, fn: <span>*</span>, callback: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span><span data-ice="signature">(name: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.during</span>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span><span data-ice="signature">(fn: <span>*</span>, limit: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Like <span>async.doWhilst</span>, except the <code>test</code> is inverted.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.whilst</span>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Like <span>async.whilst</span>, except the <code>test</code> is an asynchronous function that
+is passed a callback in the form of <code>function (err, truth)</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>each</code> but runs a maximum of <code>limit</code> async operations at a time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>eachOf</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Wrap an async function and ensure it calls its callback on a later tick of
+the event loop.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span><span data-ice="signature">(fn: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, errback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Calls the asynchronous function <code>fn</code> with a callback parameter that allows it
+to call itself again, in series, indefinitely.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates an iterator function which calls the next function in the <code>tasks</code>
+array, returning a continuation to call the next one after that.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span><span data-ice="signature">(obj: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>mapValues</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, hasher: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Caches the results of an <code>async</code> function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span><span data-ice="signature">(v: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span>Collection</span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>parallel</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="function/index.html#static-function-queue">queue</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <span>async.queue</span> only tasks are assigned a priority and
+completed in ascending priority order.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span><span data-ice="signature">(worker: <span>*</span>, concurrency: <span>*</span>, payload: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a <code>queue</code> object with the specified <code>concurrency</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in parallel, without waiting until the
+previous function has completed.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Reduces <code>coll</code> into a single value using an async <code>iteratee</code> to return each
+successive step.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Same as <code>reduce</code>, only operates on <code>coll</code> in reverse order.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Wraps the function in another function that always returns data even when it
+errors.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A helper function that wraps an array of functions with reflect.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, iteratee: <span>*</span>, callback: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Attempts to get a successful response from <code>task</code> no more than <code>times</code> times
+before returning an error.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>Functions</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A close relative of <code>retry</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Run the functions in the <code>tasks</code> collection in series, each one running once
+the previous function has completed.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Sorts a list by the results of running each <code>coll</code> value through an async
+<code>iteratee</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span><span data-ice="signature">(count: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <span>times</span> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span><span data-ice="signature">(asyncFn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, milliseconds: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, info: <span>*</span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Sets a time limit on an asynchronous function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, accumulator: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A relative of <code>reduce</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Undoes a <span>async.memoize</span>d function, reverting it to the original,
+unmemoized form.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code> until <code>test</code> returns <code>true</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in series, each passing their results to
+the next in the array.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code>, while <code>test</code> returns <code>true</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span><span data-ice="signature">(defer: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div data-ice="details"><h2 data-ice="title">Static Public </h2>
+
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-applyEach">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">applyEach</span><span data-ice="signature">(eachfn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/applyEach.js.html#lineNumber4">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import applyEach from &apos;<span><a href="file/lib/internal/applyEach.js.html#lineNumber4">async/lib/internal/applyEach.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">eachfn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-asyncify">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">asyncify</span><span data-ice="signature">(func: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/asyncify.js.html#lineNumber58">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import asyncify from &apos;<span><a href="file/lib/asyncify.js.html#lineNumber58">async/lib/asyncify.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Take a sync function and make it async, passing its return value to a
+callback. This is useful for plugging sync functions into a waterfall,
+series, or other async functions. Any arguments passed to the generated
+function will be passed to the wrapped function (except for the final
+callback argument). Errors thrown will be passed to the callback.</p>
+<p>If the function passed to <code>asyncify</code> returns a Promise, that promises&apos;s
+resolved/rejected state will be used to call the callback, rather than simply
+the synchronous return value.</p>
+<p>This also means you can asyncify ES2016 <code>async</code> functions.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">func</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The synchronous function to convert to an
+asynchronous function.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>An asynchronous wrapper of the <code>func</code>. To be invoked with
+(callback).</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+// passing a regular synchronous function
+async.waterfall([
+ async.apply(fs.readFile, filename, &quot;utf8&quot;),
+ async.asyncify(JSON.parse),
+ function (data, next) {
+ // data is the result of parsing the text.
+ // If there was a parsing error, it would have been caught.
+ }
+], callback);
+
+// passing a function returning a promise
+async.waterfall([
+ async.apply(fs.readFile, filename, &quot;utf8&quot;),
+ async.asyncify(function (contents) {
+ return db.model.create(contents);
+ }),
+ function (model, next) {
+ // `model` is the instantiated model object.
+ // If there was an error, this function would be skipped.
+ }
+], callback);
+
+// es6 example
+var q = async.queue(async.asyncify(async function(file) {
+ var intermediateStep = await processFile(file);
+ return await somePromise(intermediateStep)
+}));
+
+q.push(files);</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-auto">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">auto</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/auto.js.html#lineNumber90">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import auto from &apos;<span><a href="file/lib/auto.js.html#lineNumber90">async/lib/auto.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Determines the best order for running the functions in <code>tasks</code>, based on
+their requirements. Each function can optionally depend on other functions
+being completed first, and each function is run as soon as its requirements
+are satisfied.</p>
+<p>If any of the functions pass an error to their callback, the <code>auto</code> sequence
+will stop. Further tasks will not execute (so any other functions depending
+on it will not run), and the main <code>callback</code> is immediately called with the
+error.</p>
+<p>Functions also receive an object containing the results of functions which
+have completed so far as the first argument, if they have dependencies. If a
+task function has no dependencies, it will only be passed a callback.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An object. Each of its properties is either a
+function or an array of requirements, with the function itself the last item
+in the array. The object&apos;s key of a property serves as the name of the task
+defined by that property, i.e. can be used when specifying requirements for
+other tasks. The function receives one or two arguments:</p>
+<ul>
+<li>a <code>results</code> object, containing the results of the previously executed
+functions, only passed if the task has any dependencies,</li>
+<li>a <code>callback(err, result)</code> function, which must be called when finished,
+passing an <code>error</code> (which can be <code>null</code>) and the result of the function&apos;s
+execution.</li>
+</ul>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">concurrency</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li>
+<li>default: Infinity</li></ul></td>
+ <td data-ice="description"><p>An optional <code>integer</code> for
+determining the maximum number of tasks that can be run in parallel. By
+default, as many as possible.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback which is called when all
+the tasks have been completed. It receives the <code>err</code> argument if any <code>tasks</code>
+pass an error to their callback. Results are always returned; however, if an
+error occurs, no further <code>tasks</code> will be performed, and the results object
+will only contain partial results. Invoked with (err, results).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>undefined</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.auto({
+ // this function will just be passed a callback
+ readData: async.apply(fs.readFile, &apos;data.txt&apos;, &apos;utf-8&apos;),
+ showData: [&apos;readData&apos;, function(results, cb) {
+ // results.readData is the file&apos;s contents
+ // ...
+ }]
+}, callback);
+
+async.auto({
+ get_data: function(callback) {
+ console.log(&apos;in get_data&apos;);
+ // async code to get some data
+ callback(null, &apos;data&apos;, &apos;converted to array&apos;);
+ },
+ make_folder: function(callback) {
+ console.log(&apos;in make_folder&apos;);
+ // async code to create a directory to store a file in
+ // this is run at the same time as getting the data
+ callback(null, &apos;folder&apos;);
+ },
+ write_file: [&apos;get_data&apos;, &apos;make_folder&apos;, function(results, callback) {
+ console.log(&apos;in write_file&apos;, JSON.stringify(results));
+ // once there is some data and the directory exists,
+ // write the data to a file in the directory
+ callback(null, &apos;filename&apos;);
+ }],
+ email_link: [&apos;write_file&apos;, function(results, callback) {
+ console.log(&apos;in email_link&apos;, JSON.stringify(results));
+ // once the file is written let&apos;s email a link to it...
+ // results.write_file contains the filename returned by write_file.
+ callback(null, {&apos;file&apos;:results.write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ }]
+}, function(err, results) {
+ console.log(&apos;err = &apos;, err);
+ console.log(&apos;results = &apos;, results);
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-autoInject">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">autoInject</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/autoInject.js.html#lineNumber100">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import autoInject from &apos;<span><a href="file/lib/autoInject.js.html#lineNumber100">async/lib/autoInject.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>A dependency-injected version of the <span>async.auto</span> function. Dependent
+tasks are specified as parameters to the function, after the usual callback
+parameter, with the parameter names matching the names of the tasks it
+depends on. This can provide even more readable task graphs which can be
+easier to maintain.</p>
+<p>If a final callback is specified, the task results are similarly injected,
+specified as named parameters after the initial error parameter.</p>
+<p>The autoInject function is purely syntactic sugar and its semantics are
+otherwise equivalent to <span>async.auto</span>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An object, each of whose properties is a function of
+the form &apos;func([dependencies...], callback). The object&apos;s key of a property
+serves as the name of the task defined by that property, i.e. can be used
+when specifying requirements for other tasks.</p>
+<ul>
+<li>The <code>callback</code> parameter is a <code>callback(err, result)</code> which must be called
+when finished, passing an <code>error</code> (which can be <code>null</code>) and the result of
+the function&apos;s execution. The remaining parameters name other tasks on
+which the task is dependent, and the results from those tasks are the
+arguments of those parameters.</li>
+</ul>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback which is called when all
+the tasks have been completed. It receives the <code>err</code> argument if any <code>tasks</code>
+pass an error to their callback. The remaining parameters are task names
+whose results you are interested in. This callback will only be called when
+all tasks have finished or an error has occurred, and so do not specify
+dependencies in the same way as <code>tasks</code> do. If an error occurs, no further
+<code>tasks</code> will be performed, and <code>results</code> will only be valid for those tasks
+which managed to complete. Invoked with (err, [results...]).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+// The example from `auto` can be rewritten as follows:
+async.autoInject({
+ get_data: function(callback) {
+ // async code to get some data
+ callback(null, &apos;data&apos;, &apos;converted to array&apos;);
+ },
+ make_folder: function(callback) {
+ // async code to create a directory to store a file in
+ // this is run at the same time as getting the data
+ callback(null, &apos;folder&apos;);
+ },
+ write_file: function(get_data, make_folder, callback) {
+ // once there is some data and the directory exists,
+ // write the data to a file in the directory
+ callback(null, &apos;filename&apos;);
+ },
+ email_link: function(write_file, callback) {
+ // once the file is written let&apos;s email a link to it...
+ // write_file contains the filename returned by write_file.
+ callback(null, {&apos;file&apos;:write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ }
+}, function(err, email_link) {
+ console.log(&apos;err = &apos;, err);
+ console.log(&apos;email_link = &apos;, email_link);
+});
+
+// If you are using a JS minifier that mangles parameter names, `autoInject`
+// will not work with plain functions, since the parameter names will be
+// collapsed to a single letter identifier. To work around this, you can
+// explicitly specify the names of the parameters your task function needs
+// in an array, similar to Angular.js dependency injection. The final
+// results callback can be provided as an array in the same way.
+
+// This still has an advantage over plain `auto`, since the results a task
+// depends on are still spread into arguments.
+async.autoInject({
+ //...
+ write_file: [&apos;get_data&apos;, &apos;make_folder&apos;, function(get_data, make_folder, callback) {
+ callback(null, &apos;filename&apos;);
+ }],
+ email_link: [&apos;write_file&apos;, function(write_file, callback) {
+ callback(null, {&apos;file&apos;:write_file, &apos;email&apos;:&apos;user@example.com&apos;});
+ }]
+ //...
+}, [&apos;email_link&apos;, function(err, email_link) {
+ console.log(&apos;err = &apos;, err);
+ console.log(&apos;email_link = &apos;, email_link);
+}]);</code></pre>
+ </div>
+</div>
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.auto">async.auto</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-cargo">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">cargo</span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, payload: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/cargo.js.html#lineNumber79">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import cargo from &apos;<span><a href="file/lib/cargo.js.html#lineNumber79">async/lib/cargo.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Creates a <code>cargo</code> object with the specified payload. Tasks added to the
+cargo will be processed altogether (up to the <code>payload</code> limit). If the
+<code>worker</code> is in progress, the task is queued until it becomes available. Once
+the <code>worker</code> has completed some tasks, each callback of those tasks is
+called. Check out <a href="https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966">these</a> <a href="https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966">animations</a>
+for how <code>cargo</code> and <code>queue</code> work.</p>
+<p>While <a href="#queue">queue</a> passes only one task to one of a group of workers
+at a time, cargo passes an array of tasks to a single worker, repeating
+when the worker is finished.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">worker</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An asynchronous function for processing an array
+of queued tasks, which must call its <code>callback(err)</code> argument when finished,
+with an optional <code>err</code> argument. Invoked with (tasks, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">payload</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li>
+<li>default: Infinity</li></ul></td>
+ <td data-ice="description"><p>An optional <code>integer</code> for determining
+how many tasks should be processed per round; if omitted, the default is
+unlimited.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>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.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+// create a cargo object with payload 2
+var cargo = async.cargo(function(tasks, callback) {
+ for (var i=0; i&lt;tasks.length; i++) {
+ console.log(&apos;hello &apos; + tasks[i].name);
+ }
+ callback();
+}, 2);
+
+// add some items
+cargo.push({name: &apos;foo&apos;}, function(err) {
+ console.log(&apos;finished processing foo&apos;);
+});
+cargo.push({name: &apos;bar&apos;}, function(err) {
+ console.log(&apos;finished processing bar&apos;);
+});
+cargo.push({name: &apos;baz&apos;}, function(err) {
+ console.log(&apos;finished processing baz&apos;);
+});</code></pre>
+ </div>
+</div>
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.queue">async.queue</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-compose">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">compose</span><span data-ice="signature">(functions: ...<span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/compose.js.html#lineNumber39">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import compose from &apos;<span><a href="file/lib/compose.js.html#lineNumber39">async/lib/compose.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Creates a function which is a composition of the passed asynchronous
+functions. Each function consumes the return value of the function that
+follows. Composing functions <code>f()</code>, <code>g()</code>, and <code>h()</code> would produce the result
+of <code>f(g(h()))</code>, only this version uses callbacks to obtain the return values.</p>
+<p>Each function is executed with the <code>this</code> binding of the composed function.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">functions</td>
+ <td data-ice="type">...<span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>the asynchronous functions to compose</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>an asynchronous function that is the composed
+asynchronous <code>functions</code></p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+function add1(n, callback) {
+ setTimeout(function () {
+ callback(null, n + 1);
+ }, 10);
+}
+
+function mul3(n, callback) {
+ setTimeout(function () {
+ callback(null, n * 3);
+ }, 10);
+}
+
+var add1mul3 = async.compose(mul3, add1);
+add1mul3(4, function (err, result) {
+ // result now equals 15
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-concat">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">concat</span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, fn: <span>*</span>, callback: <span>*</span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/concat.js.html#lineNumber1">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import concat from &apos;<span><a href="file/lib/internal/concat.js.html#lineNumber1">async/lib/internal/concat.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">eachfn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">arr</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-consoleFunc">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">consoleFunc</span><span data-ice="signature">(name: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/consoleFunc.js.html#lineNumber4">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import consoleFunc from &apos;<span><a href="file/lib/internal/consoleFunc.js.html#lineNumber4">async/lib/internal/consoleFunc.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">name</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doDuring">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doDuring</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/doDuring.js.html#lineNumber23">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doDuring from &apos;<span><a href="file/lib/doDuring.js.html#lineNumber23">async/lib/doDuring.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.during</span>. To reflect the difference in
+the order of operations, the arguments <code>test</code> and <code>fn</code> are switched.</p>
+<p>Also a version of <span>async.doWhilst</span> with asynchronous <code>test</code> function.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> passes.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>asynchronous truth test to perform before each
+execution of <code>fn</code>. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has failed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.during">async.during</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doLimit</span><span data-ice="signature">(fn: <span>*</span>, limit: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/doLimit.js.html#lineNumber1">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doLimit from &apos;<span><a href="file/lib/internal/doLimit.js.html#lineNumber1">async/lib/internal/doLimit.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doParallel">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doParallel</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/doParallel.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doParallel from &apos;<span><a href="file/lib/internal/doParallel.js.html#lineNumber3">async/lib/internal/doParallel.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doParallelLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doParallelLimit</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/doParallelLimit.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doParallelLimit from &apos;<span><a href="file/lib/internal/doParallelLimit.js.html#lineNumber3">async/lib/internal/doParallelLimit.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doSeries">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doSeries</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/doSeries.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doSeries from &apos;<span><a href="file/lib/internal/doSeries.js.html#lineNumber3">async/lib/internal/doSeries.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doUntil">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doUntil</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/doUntil.js.html#lineNumber22">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doUntil from &apos;<span><a href="file/lib/doUntil.js.html#lineNumber22">async/lib/doUntil.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Like <span>async.doWhilst</span>, except the <code>test</code> is inverted. Note the
+argument ordering differs from <code>until</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> fails.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>synchronous truth test to perform after each
+execution of <code>fn</code>. Invoked with the non-error callback results of <code>fn</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has passed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.doWhilst">async.doWhilst</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-doWhilst">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">doWhilst</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/doWhilst.js.html#lineNumber25">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import doWhilst from &apos;<span><a href="file/lib/doWhilst.js.html#lineNumber25">async/lib/doWhilst.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.whilst</span>. To reflect the difference in
+the order of operations, the arguments <code>test</code> and <code>fn</code> are switched.</p>
+<p><code>doWhilst</code> is to <code>whilst</code> as <code>do while</code> is to <code>while</code> in plain JavaScript.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> passes.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>synchronous truth test to perform after each
+execution of <code>fn</code>. Invoked with Invoked with the non-error callback results
+of <code>fn</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has failed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.whilst">async.whilst</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-during">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">during</span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/during.js.html#lineNumber41">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import during from &apos;<span><a href="file/lib/during.js.html#lineNumber41">async/lib/during.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Like <span>async.whilst</span>, except the <code>test</code> is an asynchronous function that
+is passed a callback in the form of <code>function (err, truth)</code>. If error is
+passed to <code>test</code> or <code>fn</code>, the main callback is immediately called with the
+value of the error.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>asynchronous truth test to perform before each
+execution of <code>fn</code>. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> passes.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has failed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+var count = 0;
+
+async.during(
+ function (callback) {
+ return callback(null, count &lt; 5);
+ },
+ function (callback) {
+ count++;
+ setTimeout(callback, 1000);
+ },
+ function (err) {
+ // 5 seconds have passed
+ }
+);</code></pre>
+ </div>
+</div>
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.whilst">async.whilst</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-eachLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">eachLimit</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/eachLimit.js.html#lineNumber24">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import eachLimit from &apos;<span><a href="file/lib/eachLimit.js.html#lineNumber24">async/lib/eachLimit.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <code>each</code> but runs a maximum of <code>limit</code> async operations at a time.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A colleciton to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The maximum number of async operations at a time.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function to apply to each item in <code>coll</code>. The
+iteratee is passed a <code>callback(err)</code> which must be called once it has
+completed. If no error has occurred, the <code>callback</code> should be run without
+arguments or with an explicit <code>null</code> argument. The array index is not passed
+to the iteratee. Invoked with (item, callback). If you need the index, use
+<code>eachOfLimit</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called when all
+<code>iteratee</code> functions have finished, or an error occurs. Invoked with (err).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.each">async.each</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-eachOfLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">eachOfLimit</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/eachOfLimit.js.html#lineNumber24">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import eachOfLimit from &apos;<span><a href="file/lib/eachOfLimit.js.html#lineNumber24">async/lib/eachOfLimit.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <code>eachOf</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The maximum number of async operations at a time.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function to apply to each
+item in <code>coll</code>. The <code>key</code> is the item&apos;s key, or index in the case of an
+array. The iteratee is passed a <code>callback(err)</code> which must be called once it
+has completed. If no error has occurred, the callback should be run without
+arguments or with an explicit <code>null</code> argument. Invoked with
+(item, key, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called when all
+<code>iteratee</code> functions have finished, or an error occurs. Invoked with (err).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.eachOf">async.eachOf</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-ensureAsync">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">ensureAsync</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/ensureAsync.js.html#lineNumber37">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import ensureAsync from &apos;<span><a href="file/lib/ensureAsync.js.html#lineNumber37">async/lib/ensureAsync.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Wrap an async function and ensure it calls its callback on a later tick of
+the event loop. If the function already calls its callback on a next tick,
+no extra deferral is added. This is useful for preventing stack overflows
+(<code>RangeError: Maximum call stack size exceeded</code>) and generally keeping
+<a href="http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony">Zalgo</a>
+contained.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>an async function, one that expects a node-style
+callback as its last argument.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>Returns a wrapped function with the exact same call
+signature as the function passed in.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+function sometimesAsync(arg, callback) {
+ if (cache[arg]) {
+ return callback(null, cache[arg]); // this would be synchronous!!
+ } else {
+ doSomeIO(arg, callback); // this IO would be asynchronous
+ }
+}
+
+// this has a risk of stack overflows if many results are cached in a row
+async.mapSeries(args, sometimesAsync, done);
+
+// this will defer sometimesAsync&apos;s callback if necessary,
+// preventing stack overflows
+async.mapSeries(args, async.ensureAsync(sometimesAsync), done);</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-fallback">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">fallback</span><span data-ice="signature">(fn: <span>*</span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/setImmediate.js.html#lineNumber8">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import {fallback} from &apos;<span><a href="file/lib/internal/setImmediate.js.html#lineNumber8">async/lib/internal/setImmediate.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-forever">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">forever</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, errback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/forever.js.html#lineNumber34">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import forever from &apos;<span><a href="file/lib/forever.js.html#lineNumber34">async/lib/forever.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Calls the asynchronous function <code>fn</code> with a callback parameter that allows it
+to call itself again, in series, indefinitely.</p>
+<p>If an error is passed to the
+callback then <code>errback</code> is called with the error, and execution stops,
+otherwise it will never be called.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function to call repeatedly. Invoked with (next).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">errback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>when <code>fn</code> passes an error to it&apos;s callback,
+this function will be called, and execution stops. Invoked with (err).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.forever(
+ function(next) {
+ // next is suitable for passing to things that need a callback(err [, whatever]);
+ // it will result in this function being called again.
+ },
+ function(err) {
+ // if next is called with a value in its first parameter, it will appear
+ // in here as &apos;err&apos;, and execution will stop.
+ }
+);</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-getIterator">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">getIterator</span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/getIterator.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import getIterator from &apos;<span><a href="file/lib/internal/getIterator.js.html#lineNumber3">async/lib/internal/getIterator.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-initialParams">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">initialParams</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/initialParams.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import initialParams from &apos;<span><a href="file/lib/internal/initialParams.js.html#lineNumber3">async/lib/internal/initialParams.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-iterator">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">iterator</span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/iterator.js.html#lineNumber5">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import iterator from &apos;<span><a href="file/lib/internal/iterator.js.html#lineNumber5">async/lib/internal/iterator.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-iterator">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">iterator</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/iterator.js.html#lineNumber33">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import iterator from &apos;<span><a href="file/lib/iterator.js.html#lineNumber33">async/lib/iterator.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Creates an iterator function which calls the next function in the <code>tasks</code>
+array, returning a continuation to call the next one after that. It&apos;s also
+possible to &#x201C;peek&#x201D; at the next iterator with <code>iterator.next()</code>.</p>
+<p>This function is used internally by the <code>async</code> module, but can be useful
+when you want to manually control the flow of functions in series.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An array of functions to run.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>The next function to run in the series.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+var iterator = async.iterator([
+ function() { sys.p(&apos;one&apos;); },
+ function() { sys.p(&apos;two&apos;); },
+ function() { sys.p(&apos;three&apos;); }
+]);
+
+node&gt; var iterator2 = iterator();
+&apos;one&apos;
+node&gt; var iterator3 = iterator2();
+&apos;two&apos;
+node&gt; iterator3();
+&apos;three&apos;
+node&gt; var nextfn = iterator2.next();
+node&gt; nextfn();
+&apos;three&apos;</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-mapValuesLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">mapValuesLimit</span><span data-ice="signature">(obj: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/mapValuesLimit.js.html#lineNumber22">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import mapValuesLimit from &apos;<span><a href="file/lib/mapValuesLimit.js.html#lineNumber22">async/lib/mapValuesLimit.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <code>mapValues</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">obj</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The maximum number of async operations at a time.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function to apply to each value in <code>obj</code>.
+The iteratee is passed a <code>callback(err, transformed)</code> which must be called
+once it has completed with an error (which can be <code>null</code>) and a
+transformed value. Invoked with (value, key, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called when all <code>iteratee</code>
+functions have finished, or an error occurs. Result is an object of the
+transformed values from the <code>obj</code>. Invoked with (err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.mapValues">async.mapValues</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-memoize">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">memoize</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, hasher: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/memoize.js.html#lineNumber47">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import memoize from &apos;<span><a href="file/lib/memoize.js.html#lineNumber47">async/lib/memoize.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Caches the results of an <code>async</code> function. When creating a hash to store
+function results against, the callback is omitted from the hash and an
+optional hash function can be used.</p>
+<p>If no hash function is specified, the first argument is used as a hash key,
+which may work reasonably if it is a string or a data type that converts to a
+distinct string. Note that objects and arrays will not behave reasonably.
+Neither will cases where the other arguments are significant. In such cases,
+specify your own hash function.</p>
+<p>The cache of results is exposed as the <code>memo</code> property of the function
+returned by <code>memoize</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The function to proxy and cache results from.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">hasher</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An optional function for generating a custom hash
+for storing results. It has all the arguments applied to it apart from the
+callback, and must be synchronous.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>a memoized version of <code>fn</code></p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+var slow_fn = function(name, callback) {
+ // do something
+ callback(null, result);
+};
+var fn = async.memoize(slow_fn);
+
+// fn can now be used as if it were slow_fn
+fn(&apos;some name&apos;, function() {
+ // callback
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-notId">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">notId</span><span data-ice="signature">(v: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/notId.js.html#lineNumber1">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import notId from &apos;<span><a href="file/lib/internal/notId.js.html#lineNumber1">async/lib/internal/notId.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">v</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-once">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">once</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/once.js.html#lineNumber1">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import once from &apos;<span><a href="file/lib/internal/once.js.html#lineNumber1">async/lib/internal/once.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-onlyOnce">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">onlyOnce</span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/onlyOnce.js.html#lineNumber1">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import onlyOnce from &apos;<span><a href="file/lib/internal/onlyOnce.js.html#lineNumber1">async/lib/internal/onlyOnce.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-parallelLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">parallelLimit</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span>Collection</span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/parallelLimit.js.html#lineNumber23">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import parallelLimit from &apos;<span><a href="file/lib/parallelLimit.js.html#lineNumber23">async/lib/parallelLimit.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <code>parallel</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span>Collection</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection containing functions to run.
+Each function is passed a <code>callback(err, result)</code> which it must call on
+completion with an error <code>err</code> (which can be <code>null</code>) and an optional <code>result</code>
+value.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The maximum number of async operations at a time.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback to run once all the
+functions have completed successfully. This function gets a results array
+(or object) containing all the result arguments passed to the task callbacks.
+Invoked with (err, results).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.parallel">async.parallel</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-priorityQueue">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">priorityQueue</span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="function/index.html#static-function-queue">queue</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/priorityQueue.js.html#lineNumber32">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import priorityQueue from &apos;<span><a href="file/lib/priorityQueue.js.html#lineNumber32">async/lib/priorityQueue.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <span>async.queue</span> only tasks are assigned a priority and
+completed in ascending priority order.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">worker</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An asynchronous function for processing a queued
+task, which must call its <code>callback(err)</code> argument when finished, with an
+optional <code>error</code> as an argument. If you want to handle errors from an
+individual task, pass a callback to <code>q.push()</code>. Invoked with
+(task, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">concurrency</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An <code>integer</code> for determining how many <code>worker</code>
+functions should be run in parallel. If omitted, the concurrency defaults to
+<code>1</code>. If the concurrency is <code>0</code>, an error is thrown.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="function/index.html#static-function-queue">queue</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>A priorityQueue object to manage the tasks. There are two
+differences between <code>queue</code> and <code>priorityQueue</code> objects:</p>
+<ul>
+<li><code>push(task, priority, [callback])</code> - <code>priority</code> should be a number. If an
+array of <code>tasks</code> is given, all tasks will be assigned the same priority.</li>
+<li>The <code>unshift</code> method was removed.</li>
+</ul>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.queue">async.queue</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-queue">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">queue</span><span data-ice="signature">(worker: <span>*</span>, concurrency: <span>*</span>, payload: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/queue.js.html#lineNumber10">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import queue from &apos;<span><a href="file/lib/internal/queue.js.html#lineNumber10">async/lib/internal/queue.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">worker</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">concurrency</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">payload</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-queue">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">queue</span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/queue.js.html#lineNumber101">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import queue from &apos;<span><a href="file/lib/queue.js.html#lineNumber101">async/lib/queue.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Creates a <code>queue</code> object with the specified <code>concurrency</code>. Tasks added to the
+<code>queue</code> are processed in parallel (up to the <code>concurrency</code> limit). If all
+<code>worker</code>s are in progress, the task is queued until one becomes available.
+Once a <code>worker</code> completes a <code>task</code>, that <code>task</code>&apos;s callback is called.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">worker</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An asynchronous function for processing a queued
+task, which must call its <code>callback(err)</code> argument when finished, with an
+optional <code>error</code> as an argument. If you want to handle errors from an
+individual task, pass a callback to <code>q.push()</code>. Invoked with
+(task, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">concurrency</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li>
+<li>default: 1</li></ul></td>
+ <td data-ice="description"><p>An <code>integer</code> for determining how many
+<code>worker</code> functions should be run in parallel. If omitted, the concurrency
+defaults to <code>1</code>. If the concurrency is <code>0</code>, an error is thrown.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>A queue object to manage the tasks. Callbacks can
+attached as certain properties to listen for specific events during the
+lifecycle of the queue.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+// create a queue object with concurrency 2
+var q = async.queue(function(task, callback) {
+ console.log(&apos;hello &apos; + task.name);
+ callback();
+}, 2);
+
+// assign a callback
+q.drain = function() {
+ console.log(&apos;all items have been processed&apos;);
+};
+
+// add some items to the queue
+q.push({name: &apos;foo&apos;}, function(err) {
+ console.log(&apos;finished processing foo&apos;);
+});
+q.push({name: &apos;bar&apos;}, function (err) {
+ console.log(&apos;finished processing bar&apos;);
+});
+
+// add some items to the queue (batch-wise)
+q.push([{name: &apos;baz&apos;},{name: &apos;bay&apos;},{name: &apos;bax&apos;}], function(err) {
+ console.log(&apos;finished processing item&apos;);
+});
+
+// add some items to the front of the queue
+q.unshift({name: &apos;bar&apos;}, function (err) {
+ console.log(&apos;finished processing bar&apos;);
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-race">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">race</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/race.js.html#lineNumber42">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import race from &apos;<span><a href="file/lib/race.js.html#lineNumber42">async/lib/race.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in parallel, without waiting until the
+previous function has completed. Once any the <code>tasks</code> completed or pass an
+error to its callback, the main <code>callback</code> is immediately called. It&apos;s
+equivalent to <code>Promise.race()</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An array containing functions to run. Each function
+is passed a <code>callback(err, result)</code> which it must call on completion with an
+error <code>err</code> (which can be <code>null</code>) and an optional <code>result</code> value.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A callback to run once any of the functions have
+completed. This function gets an error or result from the first function that
+completed. Invoked with (err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>undefined</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.race([
+ function(callback) {
+ setTimeout(function() {
+ callback(null, &apos;one&apos;);
+ }, 200);
+ },
+ function(callback) {
+ setTimeout(function() {
+ callback(null, &apos;two&apos;);
+ }, 100);
+ }
+],
+// main callback
+function(err, result) {
+ // the result will be equal to &apos;two&apos; as it finishes earlier
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-reduce">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">reduce</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/reduce.js.html#lineNumber42">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import reduce from &apos;<span><a href="file/lib/reduce.js.html#lineNumber42">async/lib/reduce.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Reduces <code>coll</code> into a single value using an async <code>iteratee</code> to return each
+successive step. <code>memo</code> is the initial state of the reduction. This function
+only operates in series.</p>
+<p>For performance reasons, it may make sense to split a call to this function
+into a parallel map, and then use the normal <code>Array.prototype.reduce</code> on the
+results. This function is for situations where each step in the reduction
+needs to be async; if you can get the data before reducing it, then it&apos;s
+probably a good idea to do so.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">memo</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The initial state of the reduction.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function applied to each item in the
+array to produce the next step in the reduction. The <code>iteratee</code> is passed a
+<code>callback(err, reduction)</code> which accepts an optional error as its first
+argument, and the state of the reduction as the second. If an error is
+passed to the callback, the reduction is stopped and the main <code>callback</code> is
+immediately called with the error. Invoked with (memo, item, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after all the
+<code>iteratee</code> functions have finished. Result is the reduced value. Invoked with
+(err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.reduce([1,2,3], 0, function(memo, item, callback) {
+ // pointless async:
+ process.nextTick(function() {
+ callback(null, memo + item)
+ });
+}, function(err, result) {
+ // result is now equal to the last value of memo, which is 6
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-reduceRight">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">reduceRight</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/reduceRight.js.html#lineNumber26">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import reduceRight from &apos;<span><a href="file/lib/reduceRight.js.html#lineNumber26">async/lib/reduceRight.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Same as <code>reduce</code>, only operates on <code>coll</code> in reverse order.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">memo</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The initial state of the reduction.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function applied to each item in the
+array to produce the next step in the reduction. The <code>iteratee</code> is passed a
+<code>callback(err, reduction)</code> which accepts an optional error as its first
+argument, and the state of the reduction as the second. If an error is
+passed to the callback, the reduction is stopped and the main <code>callback</code> is
+immediately called with the error. Invoked with (memo, item, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after all the
+<code>iteratee</code> functions have finished. Result is the reduced value. Invoked with
+(err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.reduce">async.reduce</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-reflect">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">reflect</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/reflect.js.html#lineNumber42">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import reflect from &apos;<span><a href="file/lib/reflect.js.html#lineNumber42">async/lib/reflect.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Wraps the function in another function that always returns data even when it
+errors.</p>
+<p>The object returned has either the property <code>error</code> or <code>value</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The function you want to wrap</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>A function that always passes null to it&apos;s callback as
+the error. The second argument to the callback will be an <code>object</code> with
+either an <code>error</code> or a <code>value</code> property.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.parallel([
+ async.reflect(function(callback) {
+ // do some stuff ...
+ callback(null, &apos;one&apos;);
+ }),
+ async.reflect(function(callback) {
+ // do some more stuff but error ...
+ callback(&apos;bad stuff happened&apos;);
+ }),
+ async.reflect(function(callback) {
+ // do some more stuff ...
+ callback(null, &apos;two&apos;);
+ })
+],
+// optional callback
+function(err, results) {
+ // values
+ // results[0].value = &apos;one&apos;
+ // results[1].error = &apos;bad stuff happened&apos;
+ // results[2].value = &apos;two&apos;
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-reflectAll">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">reflectAll</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/reflectAll.js.html#lineNumber42">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import reflectAll from &apos;<span><a href="file/lib/reflectAll.js.html#lineNumber42">async/lib/reflectAll.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>A helper function that wraps an array of functions with reflect.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The array of functions to wrap in <code>async.reflect</code>.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>Returns an array of functions, each function wrapped in
+<code>async.reflect</code></p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+let tasks = [
+ function(callback) {
+ setTimeout(function() {
+ callback(null, &apos;one&apos;);
+ }, 200);
+ },
+ function(callback) {
+ // do some more stuff but error ...
+ callback(new Error(&apos;bad stuff happened&apos;));
+ },
+ function(callback) {
+ setTimeout(function() {
+ callback(null, &apos;two&apos;);
+ }, 100);
+ }
+];
+
+async.parallel(async.reflectAll(tasks),
+// optional callback
+function(err, results) {
+ // values
+ // results[0].value = &apos;one&apos;
+ // results[1].error = Error(&apos;bad stuff happened&apos;)
+ // results[2].value = &apos;two&apos;
+});</code></pre>
+ </div>
+</div>
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.reflect">async.reflect</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-reject">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">reject</span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, iteratee: <span>*</span>, callback: <span>*</span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/reject.js.html#lineNumber3">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import reject from &apos;<span><a href="file/lib/internal/reject.js.html#lineNumber3">async/lib/internal/reject.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">eachfn</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">arr</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-retry">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">retry</span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/retry.js.html#lineNumber74">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import retry from &apos;<span><a href="file/lib/retry.js.html#lineNumber74">async/lib/retry.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Attempts to get a successful response from <code>task</code> no more than <code>times</code> times
+before returning an error. If the task is successful, the <code>callback</code> will be
+passed the result of the successful task. If all attempts fail, the callback
+will be passed the error and result (if any) of the final attempt.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">opts</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>= {times: 5, interval: 0}| 5] - Can be either an
+object with <code>times</code> and <code>interval</code> or a number.</p>
+<ul>
+<li><code>times</code> - The number of attempts to make before giving up. The default
+is <code>5</code>.</li>
+<li><code>interval</code> - The time to wait between retries, in milliseconds. The
+default is <code>0</code>. The interval may also be specified as a function of the
+retry count (see example).</li>
+<li>If <code>opts</code> is a number, the number specifies the number of times to retry,
+with the default interval of <code>0</code>.</li>
+</ul>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">task</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which receives two arguments: (1) a
+<code>callback(err, result)</code> which must be called when finished, passing <code>err</code>
+(which can be <code>null</code>) and the <code>result</code> of the function&apos;s execution, and (2)
+a <code>results</code> object, containing the results of the previously executed
+functions (if nested inside another control flow). Invoked with
+(callback, results).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback which is called when the
+task has succeeded, or after the final failed attempt. It receives the <code>err</code>
+and <code>result</code> arguments of the last attempt at completing the <code>task</code>. Invoked
+with (err, results).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+// The `retry` function can be used as a stand-alone control flow by passing
+// a callback, as shown below:
+
+// try calling apiMethod 3 times
+async.retry(3, apiMethod, function(err, result) {
+ // do something with the result
+});
+
+// try calling apiMethod 3 times, waiting 200 ms between each retry
+async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {
+ // do something with the result
+});
+
+// try calling apiMethod 10 times with exponential backoff
+// (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)
+async.retry({
+ times: 10,
+ interval: function(retryCount) {
+ return 50 * Math.pow(2, retryCount);
+ }
+}, apiMethod, function(err, result) {
+ // do something with the result
+});
+
+// try calling apiMethod the default 5 times no delay between each retry
+async.retry(apiMethod, function(err, result) {
+ // do something with the result
+});
+
+// It can also be embedded within other control flow functions to retry
+// individual methods that are not as reliable, like this:
+async.auto({
+ users: api.getUsers.bind(api),
+ payments: async.retry(3, api.getPayments.bind(api))
+}, function(err, results) {
+ // do something with the results
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-retryable">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">retryable</span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>Functions</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/retryable.js.html#lineNumber27">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import retryable from &apos;<span><a href="file/lib/retryable.js.html#lineNumber27">async/lib/retryable.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>A close relative of <code>retry</code>. This method wraps a task and makes it
+retryable, rather than immediately calling it with retries.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">opts</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>= {times: 5, interval: 0}| 5] - optional
+options, exactly the same as from <code>retry</code></p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">task</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>the asynchronous function to wrap</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>Functions</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>The wrapped function, which when invoked, will retry on
+an error, based on the parameters specified in <code>opts</code>.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.auto({
+ dep1: async.retryable(3, getFromFlakyService),
+ process: [&quot;dep1&quot;, async.retryable(3, function (results, cb) {
+ maybeProcessData(results.dep1, cb);
+ })]
+}, callback);</code></pre>
+ </div>
+</div>
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.retry">async.retry</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-series">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">series</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/series.js.html#lineNumber67">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import series from &apos;<span><a href="file/lib/series.js.html#lineNumber67">async/lib/series.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Run the functions in the <code>tasks</code> collection in series, each one running once
+the previous function has completed. If any functions in the series pass an
+error to its callback, no more functions are run, and <code>callback</code> is
+immediately called with the value of the error. Otherwise, <code>callback</code>
+receives an array of results when <code>tasks</code> have completed.</p>
+<p>It is also possible to use an object instead of an array. Each property will
+be run as a function, and the results will be passed to the final <code>callback</code>
+as an object instead of an array. This can be a more readable way of handling
+ results from <span>async.series</span>.</p>
+<p><strong>Note</strong> that while many implementations preserve the order of object
+properties, the <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-8.6">ECMAScript Language Specification</a>
+explicitly states that</p>
+<blockquote>
+<p>The mechanics and order of enumerating the properties is not specified.</p>
+</blockquote>
+<p>So if you rely on the order in which your series of functions are executed,
+and want this to work on all platforms, consider using an array.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection containing functions to run, each
+function is passed a <code>callback(err, result)</code> it must call on completion with
+an error <code>err</code> (which can be <code>null</code>) and an optional <code>result</code> value.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback to run once all the
+functions have completed. This function gets a results array (or object)
+containing all the result arguments passed to the <code>task</code> callbacks. Invoked
+with (err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">async.series([
+ function(callback) {
+ // do some stuff ...
+ callback(null, &apos;one&apos;);
+ },
+ function(callback) {
+ // do some more stuff ...
+ callback(null, &apos;two&apos;);
+ }
+],
+// optional callback
+function(err, results) {
+ // results is now equal to [&apos;one&apos;, &apos;two&apos;]
+});
+
+async.series({
+ one: function(callback) {
+ setTimeout(function() {
+ callback(null, 1);
+ }, 200);
+ },
+ two: function(callback){
+ setTimeout(function() {
+ callback(null, 2);
+ }, 100);
+ }
+}, function(err, results) {
+ // results is now equal to: {one: 1, two: 2}
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-sortBy">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">sortBy</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/sortBy.js.html#lineNumber51">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import sortBy from &apos;<span><a href="file/lib/sortBy.js.html#lineNumber51">async/lib/sortBy.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Sorts a list by the results of running each <code>coll</code> value through an async
+<code>iteratee</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function to apply to each item in <code>coll</code>.
+The iteratee is passed a <code>callback(err, sortValue)</code> which must be called once
+it has completed with an error (which can be <code>null</code>) and a value to use as
+the sort criteria. Invoked with (item, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after all the
+<code>iteratee</code> functions have finished, or an error occurs. Results is the items
+from the original <code>coll</code> sorted by the values returned by the <code>iteratee</code>
+calls. Invoked with (err, results).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.sortBy([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(file, callback) {
+ fs.stat(file, function(err, stats) {
+ callback(err, stats.mtime);
+ });
+}, function(err, results) {
+ // results is now the original array of files sorted by
+ // modified date
+});
+
+// By modifying the callback parameter the
+// sorting order can be influenced:
+
+// ascending order
+async.sortBy([1,9,3,5], function(x, callback) {
+ callback(null, x);
+}, function(err,result) {
+ // result callback
+});
+
+// descending order
+async.sortBy([1,9,3,5], function(x, callback) {
+ callback(null, x*-1); //&lt;- x*-1 instead of x, turns the order around
+}, function(err,result) {
+ // result callback
+});</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-timeLimit">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">timeLimit</span><span data-ice="signature">(count: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/timesLimit.js.html#lineNumber19">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import timeLimit from &apos;<span><a href="file/lib/timesLimit.js.html#lineNumber19">async/lib/timesLimit.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>The same as <span>times</span> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">count</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The number of times to run the function.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">limit</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The maximum number of async operations at a time.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The function to call <code>n</code> times. Invoked with the
+iteration index and a callback (n, next).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>see <span>async.map</span>.</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.times">async.times</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-timeout">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">timeout</span><span data-ice="signature">(asyncFn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, milliseconds: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, info: <span>*</span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/timeout.js.html#lineNumber25">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import timeout from &apos;<span><a href="file/lib/timeout.js.html#lineNumber25">async/lib/timeout.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Sets a time limit on an asynchronous function. If the function does not call
+its callback within the specified milliseconds, it will be called with a
+timeout error. The code property for the error object will be <code>&apos;ETIMEDOUT&apos;</code>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">asyncFn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The asynchronous function you want to set the
+time limit.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">milliseconds</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>The specified time limit.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">info</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>Any variable you want attached (<code>string</code>, <code>object</code>, etc)
+to timeout Error for more information..</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>Returns a wrapped function that can be used with any of
+the control flow functions.</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.timeout(function(callback) {
+ doAsyncTask(callback);
+}, 1000);</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-transform">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">transform</span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, accumulator: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/transform.js.html#lineNumber49">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import transform from &apos;<span><a href="file/lib/transform.js.html#lineNumber49">async/lib/transform.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>A relative of <code>reduce</code>. Takes an Object or Array, and iterates over each
+element in series, each step potentially mutating an <code>accumulator</code> value.
+The type of the accumulator defaults to the type of collection passed in.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">coll</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A collection to iterate over.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">accumulator</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>The initial state of the transform. If omitted,
+it will default to an empty Object or Array, depending on the type of <code>coll</code></p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function applied to each item in the
+collection that potentially modifies the accumulator. The <code>iteratee</code> is
+passed a <code>callback(err)</code> which accepts an optional error as its first
+argument. If an error is passed to the callback, the transform is stopped
+and the main <code>callback</code> is immediately called with the error.
+Invoked with (accumulator, item, key, callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after all the
+<code>iteratee</code> functions have finished. Result is the transformed accumulator.
+Invoked with (err, result).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.transform([1,2,3], function(acc, item, index, callback) {
+ // pointless async:
+ process.nextTick(function() {
+ acc.push(item * 2)
+ callback(null)
+ });
+}, function(err, result) {
+ // result is now equal to [2, 4, 6]
+});</code></pre>
+ </div>
+<div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {
+ setImmediate(function () {
+ obj[key] = val * 2;
+ callback();
+ })
+}, function (err, result) {
+ // result is equal to {a: 2, b: 4, c: 6}
+})</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-unmemoize">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">unmemoize</span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/unmemoize.js.html#lineNumber13">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import unmemoize from &apos;<span><a href="file/lib/unmemoize.js.html#lineNumber13">async/lib/unmemoize.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Undoes a <span>async.memoize</span>d function, reverting it to the original,
+unmemoized form. Handy for testing.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>the memoized function</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>a function that calls the original unmemoized function</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.memoize">async.memoize</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-until">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">until</span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/until.js.html#lineNumber25">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import until from &apos;<span><a href="file/lib/until.js.html#lineNumber25">async/lib/until.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code> until <code>test</code> returns <code>true</code>. Calls <code>callback</code> when
+stopped, or an error occurs. <code>callback</code> will be passed an error and any
+arguments passed to the final <code>fn</code>&apos;s callback.</p>
+<p>The inverse of <span>async.whilst</span>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>synchronous truth test to perform before each
+execution of <code>fn</code>. Invoked with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">fn</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> fails.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has passed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div data-ice="see"><h4>See:</h4><ul><li><span><a href="async.whilst">async.whilst</a></span></li></ul></div>
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-waterfall">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">waterfall</span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/waterfall.js.html#lineNumber64">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import waterfall from &apos;<span><a href="file/lib/waterfall.js.html#lineNumber64">async/lib/waterfall.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in series, each passing their results to
+the next in the array. However, if any of the <code>tasks</code> pass an error to their
+own callback, the next function is not executed, and the main <code>callback</code> is
+immediately called with the error.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">tasks</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An array of functions to run, each function is passed
+a <code>callback(err, result1, result2, ...)</code> it must call on completion. The
+first argument is an error (which can be <code>null</code>) and any further arguments
+will be passed as arguments in order to the next task.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>An optional callback to run once all the
+functions have completed. This will be passed the results of the last task&apos;s
+callback. Invoked with (err, [results]).</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>undefined</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+async.waterfall([
+ function(callback) {
+ callback(null, &apos;one&apos;, &apos;two&apos;);
+ },
+ function(arg1, arg2, callback) {
+ // arg1 now equals &apos;one&apos; and arg2 now equals &apos;two&apos;
+ callback(null, &apos;three&apos;);
+ },
+ function(arg1, callback) {
+ // arg1 now equals &apos;three&apos;
+ callback(null, &apos;done&apos;);
+ }
+], function (err, result) {
+ // result now equals &apos;done&apos;
+});
+
+// Or, with named functions:
+async.waterfall([
+ myFirstFunction,
+ mySecondFunction,
+ myLastFunction,
+], function (err, result) {
+ // result now equals &apos;done&apos;
+});
+function myFirstFunction(callback) {
+ callback(null, &apos;one&apos;, &apos;two&apos;);
+}
+function mySecondFunction(arg1, arg2, callback) {
+ // arg1 now equals &apos;one&apos; and arg2 now equals &apos;two&apos;
+ callback(null, &apos;three&apos;);
+}
+function myLastFunction(arg1, callback) {
+ // arg1 now equals &apos;three&apos;
+ callback(null, &apos;done&apos;);
+}</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-whilst">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">whilst</span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/whilst.js.html#lineNumber38">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import whilst from &apos;<span><a href="file/lib/whilst.js.html#lineNumber38">async/lib/whilst.js</a></span>&apos;</code></pre></div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code>, while <code>test</code> returns <code>true</code>. Calls <code>callback</code> when
+stopped, or an error occurs.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">test</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>synchronous truth test to perform before each
+execution of <code>fn</code>. Invoked with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">iteratee</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function which is called each time <code>test</code> passes.
+The function is passed a <code>callback(err)</code>, which must be called once it has
+completed with an optional <code>err</code> argument. Invoked with (callback).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">callback</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"><ul><li>optional</li></ul></td>
+ <td data-ice="description"><p>A callback which is called after the test
+function has failed and repeated execution of <code>fn</code> has stopped. <code>callback</code>
+will be passed an error and any arguments passed to the final <code>fn</code>&apos;s
+callback. Invoked with (err, [results]);</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+ <td class="return-desc" data-ice="returnDescription"><p>undefined</p>
+</td>
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+ <div data-ice="example">
+ <h4>Example:</h4>
+
+ <div class="example-doc" data-ice="exampleDoc">
+
+ <pre class="prettyprint source-code"><code data-ice="exampleCode">
+var count = 0;
+async.whilst(
+ function() { return count &lt; 5; },
+ function(callback) {
+ count++;
+ setTimeout(function() {
+ callback(null, count);
+ }, 1000);
+ },
+ function (err, n) {
+ // 5 seconds have passed, n = 5
+ }
+);</code></pre>
+ </div>
+</div>
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-function-wrap">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">wrap</span><span data-ice="signature">(defer: <span>*</span>): <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/setImmediate.js.html#lineNumber12">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import {wrap} from &apos;<span><a href="file/lib/internal/setImmediate.js.html#lineNumber12">async/lib/internal/setImmediate.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Params:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">defer</td>
+ <td data-ice="type"><span>*</span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"></td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+ <div class="return-params" data-ice="returnParams">
+ <h4>Return:</h4>
+ <table>
+ <tr>
+ <td class="return-type" data-ice="returnType"><span>*</span></td>
+
+ </tr>
+ </table>
+ <div data-ice="returnProperties">
+</div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+</div>
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/identifiers.html b/docs/identifiers.html
new file mode 100644
index 0000000..037d98e
--- /dev/null
+++ b/docs/identifiers.html
@@ -0,0 +1,1591 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl">
+ <title data-ice="title">Index | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1>References</h1>
+
+
+<div data-ice="functionSummary"><h2 id="function">Function Summary</h2><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Function Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span><span data-ice="signature">(eachfn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span><span data-ice="signature">(func: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Take a sync function and make it async, passing its return value to a
+callback.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Determines the best order for running the functions in <code>tasks</code>, based on
+their requirements.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A dependency-injected version of the <span>async.auto</span> function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, payload: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a <code>cargo</code> object with the specified payload.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span><span data-ice="signature">(functions: ...<span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a function which is a composition of the passed asynchronous
+functions.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, fn: <span>*</span>, callback: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span><span data-ice="signature">(name: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.during</span>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span><span data-ice="signature">(fn: <span>*</span>, limit: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Like <span>async.doWhilst</span>, except the <code>test</code> is inverted.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The post-check version of <span>async.whilst</span>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Like <span>async.whilst</span>, except the <code>test</code> is an asynchronous function that
+is passed a callback in the form of <code>function (err, truth)</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>each</code> but runs a maximum of <code>limit</code> async operations at a time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>eachOf</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Wrap an async function and ensure it calls its callback on a later tick of
+the event loop.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span><span data-ice="signature">(fn: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, errback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Calls the asynchronous function <code>fn</code> with a callback parameter that allows it
+to call itself again, in series, indefinitely.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span><span data-ice="signature">(coll: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates an iterator function which calls the next function in the <code>tasks</code>
+array, returning a continuation to call the next one after that.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span><span data-ice="signature">(obj: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>mapValues</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, hasher: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Caches the results of an <code>async</code> function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span><span data-ice="signature">(v: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span><span data-ice="signature">(fn: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span>Collection</span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <code>parallel</code> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="function/index.html#static-function-queue">queue</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <span>async.queue</span> only tasks are assigned a priority and
+completed in ascending priority order.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span><span data-ice="signature">(worker: <span>*</span>, concurrency: <span>*</span>, payload: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span><span data-ice="signature">(worker: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, concurrency: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>): <span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Creates a <code>queue</code> object with the specified <code>concurrency</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in parallel, without waiting until the
+previous function has completed.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Reduces <code>coll</code> into a single value using an async <code>iteratee</code> to return each
+successive step.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, memo: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Same as <code>reduce</code>, only operates on <code>coll</code> in reverse order.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Wraps the function in another function that always returns data even when it
+errors.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A helper function that wraps an array of functions with reflect.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span><span data-ice="signature">(eachfn: <span>*</span>, arr: <span>*</span>, iteratee: <span>*</span>, callback: <span>*</span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Attempts to get a successful response from <code>task</code> no more than <code>times</code> times
+before returning an error.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span><span data-ice="signature">(opts: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, task: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>Functions</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A close relative of <code>retry</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Run the functions in the <code>tasks</code> collection in series, each one running once
+the previous function has completed.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Sorts a list by the results of running each <code>coll</code> value through an async
+<code>iteratee</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span><span data-ice="signature">(count: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, limit: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>The same as <span>times</span> but runs a maximum of <code>limit</code> async operations at a
+time.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span><span data-ice="signature">(asyncFn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, milliseconds: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span>, info: <span>*</span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Sets a time limit on an asynchronous function.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span><span data-ice="signature">(coll: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span>, accumulator: <span>*</span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A relative of <code>reduce</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span><span data-ice="signature">(fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Undoes a <span>async.memoize</span>d function, reverting it to the original,
+unmemoized form.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, fn: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>)</span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code> until <code>test</code> returns <code>true</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span><span data-ice="signature">(tasks: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Runs the <code>tasks</code> array of functions in series, each passing their results to
+the next in the array.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span><span data-ice="signature">(test: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, iteratee: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>, callback: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>Repeatedly call <code>fn</code>, while <code>test</code> returns <code>true</code>.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span><span data-ice="signature">(defer: <span>*</span>): <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div data-ice="variableSummary"><h2 id="variable">Variable Summary</h2><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Variable Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span><span data-ice="signature">: <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span><span data-ice="signature">: <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div data-ice="typedefSummary"><h2 id="typedef">Typedef Summary</h2><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Typedef Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A cargo of tasks for the worker function to complete.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A queue of tasks for the worker function to complete.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/image/badge.svg b/docs/image/badge.svg
new file mode 100644
index 0000000..324db4c
--- /dev/null
+++ b/docs/image/badge.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="102" height="20">
+ <script/>
+ <linearGradient id="a" x2="0" y2="100%">
+ <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
+ <stop offset="1" stop-opacity=".1"/>
+ </linearGradient>
+ <rect rx="3" width="102" height="20" fill="#555"/>
+ <rect rx="3" x="64" width="38" height="20" fill="@color@"/>
+ <path fill="@color@" d="M64 0h4v20h-4z"/>
+ <rect rx="3" width="102" height="20" fill="url(#a)"/>
+ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
+ <text x="32" y="15" fill="#010101" fill-opacity=".3">document</text>
+ <text x="32" y="14">document</text>
+ <text x="82.5" y="15" fill="#010101" fill-opacity=".3">@ratio@</text>
+ <text x="82.5" y="14">@ratio@</text>
+ </g>
+</svg>
diff --git a/docs/image/github.png b/docs/image/github.png
new file mode 100644
index 0000000..ea6ff54
--- /dev/null
+++ b/docs/image/github.png
Binary files differ
diff --git a/docs/image/search.png b/docs/image/search.png
new file mode 100644
index 0000000..f5d84b6
--- /dev/null
+++ b/docs/image/search.png
Binary files differ
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..daa0c75
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl">
+ <title data-ice="title">API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><div data-ice="index" class="github-markdown"><h1 id="async-js">Async.js</h1>
+<p><a href="https://travis-ci.org/caolan/async"><img src="https://travis-ci.org/caolan/async.svg?branch=master" alt="Build Status via Travis CI"></a>
+<a href="https://www.npmjs.com/package/async"><img src="https://img.shields.io/npm/v/async.svg" alt="NPM version"></a>
+<a href="https://coveralls.io/r/caolan/async?branch=master"><img src="https://coveralls.io/repos/caolan/async/badge.svg?branch=master" alt="Coverage Status"></a>
+<a href="https://gitter.im/caolan/async?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge&amp;utm_content=badge"><img src="https://badges.gitter.im/Join%20Chat.svg" alt="Join the chat at https://gitter.im/caolan/async"></a></p>
+<p><em>For Async v1.5.x documentation, go <a href="https://github.com/caolan/async/blob/v1.5.2/README.md">HERE</a></em></p>
+<p>Async is a utility module which provides straight-forward, powerful functions
+for working with asynchronous JavaScript. Although originally designed for
+use with <a href="https://nodejs.org/">Node.js</a> and installable via <code>npm install --save async</code>,
+it can also be used directly in the browser.</p>
+<p>Async is also installable via:</p>
+<ul>
+<li><a href="http://bower.io/">bower</a>: <code>bower install async</code></li>
+<li><a href="https://github.com/componentjs/component">component</a>: <code>component install caolan/async</code></li>
+<li><a href="http://jamjs.org/">jam</a>: <code>jam install async</code></li>
+</ul>
+<p>Async provides around 70 functions that include the usual &apos;functional&apos;
+suspects (<code>map</code>, <code>reduce</code>, <code>filter</code>, <code>each</code>&#x2026;) as well as some common patterns
+for asynchronous control flow (<code>parallel</code>, <code>series</code>, <code>waterfall</code>&#x2026;). All these
+functions assume you follow the Node.js convention of providing a single
+callback as the last argument of your asynchronous function -- a callback which expects an Error as its first argument -- and calling the callback once.</p>
+<h2 id="quick-examples">Quick Examples</h2>
+<pre><code class="lang-js"><code class="source-code prettyprint">async.map([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], fs.stat, function(err, results){
+ // results is now an array of stats for each file
+});
+
+async.filter([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ fs.access(filePath, function(err) {
+ callback(null, !err)
+ });
+}, function(err, results){
+ // results now equals an array of the existing files
+});
+
+async.parallel([
+ function(callback){ ... },
+ function(callback){ ... }
+], function(err, results) {
+ // optional callback
+};
+
+async.series([
+ function(callback){ ... },
+ function(callback){ ... }
+]);</code>
+</code></pre>
+<p>There are many more functions available so take a look at the docs below for a
+full list. This module aims to be comprehensive, so if you feel anything is
+missing please create a GitHub issue for it.</p>
+<h2 id="common-pitfalls-stackoverflow-http-stackoverflow-com-questions-tagged-async-js-">Common Pitfalls <a href="http://stackoverflow.com/questions/tagged/async.js">(StackOverflow)</a></h2>
+<h3 id="synchronous-iteration-functions">Synchronous iteration functions</h3>
+<p>If you get an error like <code>RangeError: Maximum call stack size exceeded.</code> or other stack overflow issues when using async, you are likely using a synchronous iteratee. By <em>synchronous</em> we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with <code>async.setImmediate</code> to start a new call stack on the next tick of the event loop.</p>
+<p>This can also arise by accident if you callback early in certain cases:</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">async.eachSeries(hugeArray, function iteratee(item, callback) {
+ if (inCache(item)) {
+ callback(null, cache[item]); // if many items are cached, you&apos;ll overflow
+ } else {
+ doSomeIO(item, callback);
+ }
+}, function done() {
+ //...
+});</code>
+</code></pre>
+<p>Just change it to:</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">async.eachSeries(hugeArray, function iteratee(item, callback) {
+ if (inCache(item)) {
+ async.setImmediate(function () {
+ callback(null, cache[item]);
+ });
+ } else {
+ doSomeIO(item, callback);
+ //...
+ }
+});</code>
+</code></pre>
+<p>Async does not guard against synchronous iteratees for performance reasons. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with <a href="#ensureAsync"><code>async.ensureAsync</code></a> Functions that are asynchronous by their nature do not have this problem and don&apos;t need the extra callback deferral.</p>
+<p>If JavaScript&apos;s event loop is still a bit nebulous, check out <a href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">this article</a> or <a href="http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html">this talk</a> for more detailed information about how it works.</p>
+<h3 id="multiple-callbacks">Multiple callbacks</h3>
+<p>Make sure to always <code>return</code> when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases.</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">async.waterfall([
+ function (callback) {
+ getSomething(options, function (err, result) {
+ if (err) {
+ callback(new Error(&quot;failed getting something:&quot; + err.message));
+ // we should return here
+ }
+ // since we did not return, this callback still will be called and
+ // `processData` will be called twice
+ callback(null, result);
+ });
+ },
+ processData
+], done)</code>
+</code></pre>
+<p>It is always good practice to <code>return callback(err, result)</code> whenever a callback call is not the last statement of a function.</p>
+<h3 id="binding-a-context-to-an-iteratee">Binding a context to an iteratee</h3>
+<p>This section is really about <code>bind</code>, not about <code>async</code>. If you are wondering how to
+make <code>async</code> execute your iteratees in a given context, or are confused as to why
+a method of another library isn&apos;t working as an iteratee, study this example:</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">// Here is a simple object with an (unnecessarily roundabout) squaring method
+var AsyncSquaringLibrary = {
+ squareExponent: 2,
+ square: function(number, callback){
+ var result = Math.pow(number, this.squareExponent);
+ setTimeout(function(){
+ callback(null, result);
+ }, 200);
+ }
+};
+
+async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){
+ // result is [NaN, NaN, NaN]
+ // This fails because the `this.squareExponent` expression in the square
+ // function is not evaluated in the context of AsyncSquaringLibrary, and is
+ // therefore undefined.
+});
+
+async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){
+ // result is [1, 4, 9]
+ // With the help of bind we can attach a context to the iteratee before
+ // passing it to async. Now the square function will be executed in its
+ // &apos;home&apos; AsyncSquaringLibrary context and the value of `this.squareExponent`
+ // will be as expected.
+});</code>
+</code></pre>
+<h2 id="download">Download</h2>
+<p>The source is available for download from
+<a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.min.js">GitHub</a>.
+Alternatively, you can install using npm:</p>
+<pre><code><code class="source-code prettyprint">npm install --save async</code>
+</code></pre><p>As well as using Bower:</p>
+<pre><code><code class="source-code prettyprint">bower install async</code>
+</code></pre><p>You can then <code>require()</code> async as normal:</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">var async = require(&quot;async&quot;);</code>
+</code></pre>
+<p>Or require individual methods:</p>
+<pre><code class="lang-js"><code class="source-code prettyprint">var waterfall = require(&quot;async/waterfall&quot;);
+var map = require(&quot;async/map&quot;);</code>
+</code></pre>
+<p><strong>Development:</strong> <a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.js">async.js</a> - 29.6kb Uncompressed</p>
+<h3 id="in-the-browser">In the Browser</h3>
+<p>Async should work in any ES5 environment (IE9 and above).</p>
+<p>Usage:</p>
+<pre><code class="lang-html"><code class="source-code prettyprint">&lt;script type=&quot;text/javascript&quot; src=&quot;async.js&quot;&gt;&lt;/script&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+ async.map(data, asyncProcess, function(err, results){
+ alert(results);
+ });
+
+&lt;/script&gt;</code>
+</code></pre>
+<h3 id="es-modules">ES Modules</h3>
+<p>We also provide async as a collection of ES2015 modules, in an alternative <code>async-es</code> package on npm.</p>
+<pre><code><code class="source-code prettyprint">npm i -S async-es</code>
+</code></pre><pre><code class="lang-js"><code class="source-code prettyprint">import waterfall from &apos;async-es/waterfall&apos;;
+import async from &apos;async-es&apos;;</code>
+</code></pre>
+</div>
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/package.json b/docs/package.json
new file mode 100644
index 0000000..1e14cfe
--- /dev/null
+++ b/docs/package.json
@@ -0,0 +1,69 @@
+{
+ "name": "async",
+ "description": "Higher-order functions and common patterns for asynchronous code",
+ "version": "2.0.0-rc.6",
+ "main": "dist/async.js",
+ "author": "Caolan McMahon",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "bugs": {
+ "url": "https://github.com/caolan/async/issues"
+ },
+ "keywords": [
+ "async",
+ "callback",
+ "module",
+ "utility"
+ ],
+ "dependencies": {
+ "lodash": "^4.8.0",
+ "lodash-es": "^4.8.0"
+ },
+ "devDependencies": {
+ "babel-cli": "^6.3.17",
+ "babel-core": "^6.3.26",
+ "babel-plugin-add-module-exports": "~0.1.2",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16",
+ "babel-preset-es2015": "^6.3.13",
+ "babelify": "^7.2.0",
+ "benchmark": "bestiejs/benchmark.js",
+ "bluebird": "^2.9.32",
+ "chai": "^3.1.0",
+ "coveralls": "^2.11.2",
+ "es6-promise": "^2.3.0",
+ "esdoc": "^0.4.7",
+ "eslint": "^2.11.1",
+ "fs-extra": "^0.26.7",
+ "karma": "^0.13.2",
+ "karma-browserify": "^4.2.1",
+ "karma-firefox-launcher": "^0.1.6",
+ "karma-mocha": "^0.2.0",
+ "karma-mocha-reporter": "^1.0.2",
+ "minami": "^1.1.1",
+ "mocha": "^2.2.5",
+ "native-promise-only": "^0.8.0-a",
+ "nyc": "^2.1.0",
+ "recursive-readdir": "^1.3.0",
+ "rimraf": "^2.5.0",
+ "rollup": "^0.25.0",
+ "rollup-plugin-node-resolve": "^1.5.0",
+ "rollup-plugin-npm": "~1.3.0",
+ "rsvp": "^3.0.18",
+ "semver": "^4.3.6",
+ "uglify-js": "~2.4.0",
+ "yargs": "~3.9.1"
+ },
+ "scripts": {
+ "coverage": "nyc npm test && nyc report",
+ "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
+ "doc": "esdoc -c ./support/esdoc.json",
+ "lint": "eslint lib/ mocha_test/ perf/memory.js perf/suites.js perf/benchmark.js support/ karma.conf.js",
+ "mocha-browser-test": "karma start",
+ "mocha-node-test": "mocha mocha_test/ --compilers js:babel-core/register",
+ "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
+ "test": "npm run-script lint && npm run mocha-node-test"
+ },
+ "license": "MIT"
+}
diff --git a/docs/script/inherited-summary.js b/docs/script/inherited-summary.js
new file mode 100644
index 0000000..0a35b6d
--- /dev/null
+++ b/docs/script/inherited-summary.js
@@ -0,0 +1,28 @@
+(function(){
+ function toggle(ev) {
+ var button = ev.target;
+ var parent = ev.target.parentElement;
+ while(parent) {
+ if (parent.tagName === 'TABLE' && parent.classList.contains('summary')) break;
+ parent = parent.parentElement;
+ }
+
+ if (!parent) return;
+
+ var tbody = parent.querySelector('tbody');
+ if (button.classList.contains('opened')) {
+ button.classList.remove('opened');
+ button.classList.add('closed');
+ tbody.style.display = 'none';
+ } else {
+ button.classList.remove('closed');
+ button.classList.add('opened');
+ tbody.style.display = 'block';
+ }
+ }
+
+ var buttons = document.querySelectorAll('.inherited-summary thead .toggle');
+ for (var i = 0; i < buttons.length; i++) {
+ buttons[i].addEventListener('click', toggle);
+ }
+})();
diff --git a/docs/script/inner-link.js b/docs/script/inner-link.js
new file mode 100644
index 0000000..69a7477
--- /dev/null
+++ b/docs/script/inner-link.js
@@ -0,0 +1,31 @@
+// inner link(#foo) can not correctly scroll, because page has fixed header,
+// so, I manually scroll.
+(function(){
+ var matched = location.hash.match(/errorLines=([\d,]+)/);
+ if (matched) return;
+
+ function adjust() {
+ window.scrollBy(0, -55);
+ var el = document.querySelector('.inner-link-active');
+ if (el) el.classList.remove('inner-link-active');
+
+ // ``[ ] . ' " @`` are not valid in DOM id. so must escape these.
+ var id = location.hash.replace(/([\[\].'"@$])/g, '\\$1');
+ var el = document.querySelector(id);
+ if (el) el.classList.add('inner-link-active');
+ }
+
+ window.addEventListener('hashchange', adjust);
+
+ if (location.hash) {
+ setTimeout(adjust, 0);
+ }
+})();
+
+(function(){
+ var els = document.querySelectorAll('[href^="#"]');
+ for (var i = 0; i < els.length; i++) {
+ var el = els[i];
+ el.href = location.href + el.getAttribute('href'); // because el.href is absolute path
+ }
+})();
diff --git a/docs/script/manual.js b/docs/script/manual.js
new file mode 100644
index 0000000..125049d
--- /dev/null
+++ b/docs/script/manual.js
@@ -0,0 +1,13 @@
+(function(){
+ var matched = location.pathname.match(/([^/]*)\.html$/);
+ if (!matched) return;
+
+ var currentName = matched[1];
+ var cssClass = '.navigation [data-toc-name="' + currentName + '"]';
+ var styleText = cssClass + ' .manual-toc { display: block; }\n';
+ styleText += cssClass + ' .manual-toc-title { background-color: #039BE5; }\n';
+ styleText += cssClass + ' .manual-toc-title a { color: white; }\n';
+ var style = document.createElement('style');
+ style.textContent = styleText;
+ document.querySelector('head').appendChild(style);
+})();
diff --git a/docs/script/patch-for-local.js b/docs/script/patch-for-local.js
new file mode 100644
index 0000000..5756d13
--- /dev/null
+++ b/docs/script/patch-for-local.js
@@ -0,0 +1,8 @@
+(function(){
+ if (location.protocol === 'file:') {
+ var elms = document.querySelectorAll('a[href="./"]');
+ for (var i = 0; i < elms.length; i++) {
+ elms[i].href = './index.html';
+ }
+ }
+})();
diff --git a/docs/script/prettify/Apache-License-2.0.txt b/docs/script/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/docs/script/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/docs/script/prettify/prettify.js b/docs/script/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/docs/script/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/docs/script/pretty-print.js b/docs/script/pretty-print.js
new file mode 100644
index 0000000..65e5e16
--- /dev/null
+++ b/docs/script/pretty-print.js
@@ -0,0 +1,25 @@
+(function(){
+ prettyPrint();
+ var lines = document.querySelectorAll('.prettyprint.linenums li[class^="L"]');
+ for (var i = 0; i < lines.length; i++) {
+ lines[i].id = 'lineNumber' + (i + 1);
+ }
+
+ var matched = location.hash.match(/errorLines=([\d,]+)/);
+ if (matched) {
+ var lines = matched[1].split(',');
+ for (var i = 0; i < lines.length; i++) {
+ var id = '#lineNumber' + lines[i];
+ var el = document.querySelector(id);
+ el.classList.add('error-line');
+ }
+ return;
+ }
+
+ if (location.hash) {
+ // ``[ ] . ' " @`` are not valid in DOM id. so must escape these.
+ var id = location.hash.replace(/([\[\].'"@$])/g, '\\$1');
+ var line = document.querySelector(id);
+ if (line) line.classList.add('active');
+ }
+})();
diff --git a/docs/script/search.js b/docs/script/search.js
new file mode 100644
index 0000000..b5ded2e
--- /dev/null
+++ b/docs/script/search.js
@@ -0,0 +1,117 @@
+(function(){
+ var searchIndex = window.esdocSearchIndex;
+ var searchBox = document.querySelector('.search-box');
+ var input = document.querySelector('.search-input');
+ var result = document.querySelector('.search-result');
+ var selectedIndex = -1;
+ var prevText;
+
+ // active search box and focus when mouse enter on search box.
+ searchBox.addEventListener('mouseenter', function(){
+ searchBox.classList.add('active');
+ input.focus();
+ });
+
+ // search with text when key is upped.
+ input.addEventListener('keyup', function(ev){
+ var text = ev.target.value.toLowerCase();
+ if (!text) {
+ result.style.display = 'none';
+ result.innerHTML = '';
+ return;
+ }
+
+ if (text === prevText) return;
+ prevText = text;
+
+ var html = {class: [], method: [], member: [], function: [], variable: [], typedef: [], external: [], file: [], test: [], testFile: []};
+ var len = searchIndex.length;
+ var kind;
+ for (var i = 0; i < len; i++) {
+ var pair = searchIndex[i];
+ if (pair[0].indexOf(text) !== -1) {
+ kind = pair[3];
+ html[kind].push('<li><a href="' + pair[1] + '">' + pair[2] + '</a></li>');
+ }
+ }
+
+ var innerHTML = '';
+ for (kind in html) {
+ var list = html[kind];
+ if (!list.length) continue;
+ innerHTML += '<li class="search-separator">' + kind + '</li>\n' + list.join('\n');
+ }
+ result.innerHTML = innerHTML;
+ if (innerHTML) result.style.display = 'block';
+ selectedIndex = -1;
+ });
+
+ // down, up and enter key are pressed, select search result.
+ input.addEventListener('keydown', function(ev){
+ if (ev.keyCode === 40) {
+ // arrow down
+ var current = result.children[selectedIndex];
+ var selected = result.children[selectedIndex + 1];
+ if (selected && selected.classList.contains('search-separator')) {
+ var selected = result.children[selectedIndex + 2];
+ selectedIndex++;
+ }
+
+ if (selected) {
+ if (current) current.classList.remove('selected');
+ selectedIndex++;
+ selected.classList.add('selected');
+ }
+ } else if (ev.keyCode === 38) {
+ // arrow up
+ var current = result.children[selectedIndex];
+ var selected = result.children[selectedIndex - 1];
+ if (selected && selected.classList.contains('search-separator')) {
+ var selected = result.children[selectedIndex - 2];
+ selectedIndex--;
+ }
+
+ if (selected) {
+ if (current) current.classList.remove('selected');
+ selectedIndex--;
+ selected.classList.add('selected');
+ }
+ } else if (ev.keyCode === 13) {
+ // enter
+ var current = result.children[selectedIndex];
+ if (current) {
+ var link = current.querySelector('a');
+ if (link) location.href = link.href;
+ }
+ } else {
+ return;
+ }
+
+ ev.preventDefault();
+ });
+
+ // select search result when search result is mouse over.
+ result.addEventListener('mousemove', function(ev){
+ var current = result.children[selectedIndex];
+ if (current) current.classList.remove('selected');
+
+ var li = ev.target;
+ while (li) {
+ if (li.nodeName === 'LI') break;
+ li = li.parentElement;
+ }
+
+ if (li) {
+ selectedIndex = Array.prototype.indexOf.call(result.children, li);
+ li.classList.add('selected');
+ }
+ });
+
+ // clear search result when body is clicked.
+ document.body.addEventListener('click', function(ev){
+ selectedIndex = -1;
+ result.style.display = 'none';
+ result.innerHTML = '';
+ });
+
+})();
diff --git a/docs/script/search_index.js b/docs/script/search_index.js
new file mode 100644
index 0000000..891a663
--- /dev/null
+++ b/docs/script/search_index.js
@@ -0,0 +1,1250 @@
+window.esdocSearchIndex = [
+ [
+ "async/lib/internal/applyeach.js~applyeach",
+ "function/index.html#static-function-applyEach",
+ "<span>applyEach</span> <span class=\"search-result-import-path\">async/lib/internal/applyEach.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/asyncify.js~asyncify",
+ "function/index.html#static-function-asyncify",
+ "<span>asyncify</span> <span class=\"search-result-import-path\">async/lib/asyncify.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/auto.js~auto",
+ "function/index.html#static-function-auto",
+ "<span>auto</span> <span class=\"search-result-import-path\">async/lib/auto.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/autoinject.js~autoinject",
+ "function/index.html#static-function-autoInject",
+ "<span>autoInject</span> <span class=\"search-result-import-path\">async/lib/autoInject.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/cargo.js~cargo",
+ "function/index.html#static-function-cargo",
+ "<span>cargo</span> <span class=\"search-result-import-path\">async/lib/cargo.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/compose.js~compose",
+ "function/index.html#static-function-compose",
+ "<span>compose</span> <span class=\"search-result-import-path\">async/lib/compose.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/concat.js~concat",
+ "function/index.html#static-function-concat",
+ "<span>concat</span> <span class=\"search-result-import-path\">async/lib/internal/concat.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/consolefunc.js~consolefunc",
+ "function/index.html#static-function-consoleFunc",
+ "<span>consoleFunc</span> <span class=\"search-result-import-path\">async/lib/internal/consoleFunc.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/doduring.js~doduring",
+ "function/index.html#static-function-doDuring",
+ "<span>doDuring</span> <span class=\"search-result-import-path\">async/lib/doDuring.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/dolimit.js~dolimit",
+ "function/index.html#static-function-doLimit",
+ "<span>doLimit</span> <span class=\"search-result-import-path\">async/lib/internal/doLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/doparallel.js~doparallel",
+ "function/index.html#static-function-doParallel",
+ "<span>doParallel</span> <span class=\"search-result-import-path\">async/lib/internal/doParallel.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/doparallellimit.js~doparallellimit",
+ "function/index.html#static-function-doParallelLimit",
+ "<span>doParallelLimit</span> <span class=\"search-result-import-path\">async/lib/internal/doParallelLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/doseries.js~doseries",
+ "function/index.html#static-function-doSeries",
+ "<span>doSeries</span> <span class=\"search-result-import-path\">async/lib/internal/doSeries.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/dountil.js~dountil",
+ "function/index.html#static-function-doUntil",
+ "<span>doUntil</span> <span class=\"search-result-import-path\">async/lib/doUntil.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/dowhilst.js~dowhilst",
+ "function/index.html#static-function-doWhilst",
+ "<span>doWhilst</span> <span class=\"search-result-import-path\">async/lib/doWhilst.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/during.js~during",
+ "function/index.html#static-function-during",
+ "<span>during</span> <span class=\"search-result-import-path\">async/lib/during.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/eachlimit.js~eachlimit",
+ "function/index.html#static-function-eachLimit",
+ "<span>eachLimit</span> <span class=\"search-result-import-path\">async/lib/eachLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/eachoflimit.js~eachoflimit",
+ "function/index.html#static-function-eachOfLimit",
+ "<span>eachOfLimit</span> <span class=\"search-result-import-path\">async/lib/eachOfLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/ensureasync.js~ensureasync",
+ "function/index.html#static-function-ensureAsync",
+ "<span>ensureAsync</span> <span class=\"search-result-import-path\">async/lib/ensureAsync.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/setimmediate.js~fallback",
+ "function/index.html#static-function-fallback",
+ "<span>fallback</span> <span class=\"search-result-import-path\">async/lib/internal/setImmediate.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/forever.js~forever",
+ "function/index.html#static-function-forever",
+ "<span>forever</span> <span class=\"search-result-import-path\">async/lib/forever.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/getiterator.js~getiterator",
+ "function/index.html#static-function-getIterator",
+ "<span>getIterator</span> <span class=\"search-result-import-path\">async/lib/internal/getIterator.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/setimmediate.js~hasnexttick",
+ "variable/index.html#static-variable-hasNextTick",
+ "<span>hasNextTick</span> <span class=\"search-result-import-path\">async/lib/internal/setImmediate.js</span>",
+ "variable"
+ ],
+ [
+ "async/lib/internal/setimmediate.js~hassetimmediate",
+ "variable/index.html#static-variable-hasSetImmediate",
+ "<span>hasSetImmediate</span> <span class=\"search-result-import-path\">async/lib/internal/setImmediate.js</span>",
+ "variable"
+ ],
+ [
+ "async/lib/internal/initialparams.js~initialparams",
+ "function/index.html#static-function-initialParams",
+ "<span>initialParams</span> <span class=\"search-result-import-path\">async/lib/internal/initialParams.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/iterator.js~iterator",
+ "function/index.html#static-function-iterator",
+ "<span>iterator</span> <span class=\"search-result-import-path\">async/lib/internal/iterator.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/iterator.js~iterator",
+ "function/index.html#static-function-iterator",
+ "<span>iterator</span> <span class=\"search-result-import-path\">async/lib/iterator.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/mapvalueslimit.js~mapvalueslimit",
+ "function/index.html#static-function-mapValuesLimit",
+ "<span>mapValuesLimit</span> <span class=\"search-result-import-path\">async/lib/mapValuesLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/memoize.js~memoize",
+ "function/index.html#static-function-memoize",
+ "<span>memoize</span> <span class=\"search-result-import-path\">async/lib/memoize.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/notid.js~notid",
+ "function/index.html#static-function-notId",
+ "<span>notId</span> <span class=\"search-result-import-path\">async/lib/internal/notId.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/once.js~once",
+ "function/index.html#static-function-once",
+ "<span>once</span> <span class=\"search-result-import-path\">async/lib/internal/once.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/onlyonce.js~onlyonce",
+ "function/index.html#static-function-onlyOnce",
+ "<span>onlyOnce</span> <span class=\"search-result-import-path\">async/lib/internal/onlyOnce.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/parallellimit.js~parallellimit",
+ "function/index.html#static-function-parallelLimit",
+ "<span>parallelLimit</span> <span class=\"search-result-import-path\">async/lib/parallelLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/priorityqueue.js~priorityqueue",
+ "function/index.html#static-function-priorityQueue",
+ "<span>priorityQueue</span> <span class=\"search-result-import-path\">async/lib/priorityQueue.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/queue.js~queue",
+ "function/index.html#static-function-queue",
+ "<span>queue</span> <span class=\"search-result-import-path\">async/lib/internal/queue.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/queue.js~queue",
+ "function/index.html#static-function-queue",
+ "<span>queue</span> <span class=\"search-result-import-path\">async/lib/queue.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/race.js~race",
+ "function/index.html#static-function-race",
+ "<span>race</span> <span class=\"search-result-import-path\">async/lib/race.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/reduce.js~reduce",
+ "function/index.html#static-function-reduce",
+ "<span>reduce</span> <span class=\"search-result-import-path\">async/lib/reduce.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/reduceright.js~reduceright",
+ "function/index.html#static-function-reduceRight",
+ "<span>reduceRight</span> <span class=\"search-result-import-path\">async/lib/reduceRight.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/reflect.js~reflect",
+ "function/index.html#static-function-reflect",
+ "<span>reflect</span> <span class=\"search-result-import-path\">async/lib/reflect.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/reflectall.js~reflectall",
+ "function/index.html#static-function-reflectAll",
+ "<span>reflectAll</span> <span class=\"search-result-import-path\">async/lib/reflectAll.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/reject.js~reject",
+ "function/index.html#static-function-reject",
+ "<span>reject</span> <span class=\"search-result-import-path\">async/lib/internal/reject.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/retry.js~retry",
+ "function/index.html#static-function-retry",
+ "<span>retry</span> <span class=\"search-result-import-path\">async/lib/retry.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/retryable.js~retryable",
+ "function/index.html#static-function-retryable",
+ "<span>retryable</span> <span class=\"search-result-import-path\">async/lib/retryable.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/series.js~series",
+ "function/index.html#static-function-series",
+ "<span>series</span> <span class=\"search-result-import-path\">async/lib/series.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/sortby.js~sortby",
+ "function/index.html#static-function-sortBy",
+ "<span>sortBy</span> <span class=\"search-result-import-path\">async/lib/sortBy.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/timeslimit.js~timelimit",
+ "function/index.html#static-function-timeLimit",
+ "<span>timeLimit</span> <span class=\"search-result-import-path\">async/lib/timesLimit.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/timeout.js~timeout",
+ "function/index.html#static-function-timeout",
+ "<span>timeout</span> <span class=\"search-result-import-path\">async/lib/timeout.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/transform.js~transform",
+ "function/index.html#static-function-transform",
+ "<span>transform</span> <span class=\"search-result-import-path\">async/lib/transform.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/unmemoize.js~unmemoize",
+ "function/index.html#static-function-unmemoize",
+ "<span>unmemoize</span> <span class=\"search-result-import-path\">async/lib/unmemoize.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/until.js~until",
+ "function/index.html#static-function-until",
+ "<span>until</span> <span class=\"search-result-import-path\">async/lib/until.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/waterfall.js~waterfall",
+ "function/index.html#static-function-waterfall",
+ "<span>waterfall</span> <span class=\"search-result-import-path\">async/lib/waterfall.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/whilst.js~whilst",
+ "function/index.html#static-function-whilst",
+ "<span>whilst</span> <span class=\"search-result-import-path\">async/lib/whilst.js</span>",
+ "function"
+ ],
+ [
+ "async/lib/internal/setimmediate.js~wrap",
+ "function/index.html#static-function-wrap",
+ "<span>wrap</span> <span class=\"search-result-import-path\">async/lib/internal/setImmediate.js</span>",
+ "function"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~arraybuffer",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~boolean",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Boolean",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~dataview",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~DataView",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~date",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Date",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~error",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Error",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~evalerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~EvalError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~float32array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~float64array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~function",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Function",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~generator",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Generator",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~generatorfunction",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~infinity",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Infinity",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~int16array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~int32array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~int8array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~internalerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~InternalError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~json",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~JSON",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~map",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Map",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~nan",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~NaN",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~number",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Number",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~object",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Object",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~promise",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Promise",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~proxy",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Proxy",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~rangeerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~RangeError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~referenceerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~reflect",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Reflect",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~regexp",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~RegExp",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~set",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Set",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~string",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~String",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~symbol",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Symbol",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~syntaxerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~typeerror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~TypeError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~urierror",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~URIError",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~uint16array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~uint32array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~uint8array",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~uint8clampedarray",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~weakmap",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~weakset",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~boolean",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~boolean",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~function",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~function",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~null",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~null",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~number",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~number",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~object",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~object",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~string",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~string",
+ "external"
+ ],
+ [
+ "builtinexternal/ecmascriptexternal.js~undefined",
+ "external/index.html",
+ "BuiltinExternal/ECMAScriptExternal.js~undefined",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~audiocontext",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~AudioContext",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~canvasrenderingcontext2d",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~documentfragment",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~element",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~Element",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~event",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~Event",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~node",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~Node",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~nodelist",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~NodeList",
+ "external"
+ ],
+ [
+ "builtinexternal/webapiexternal.js~xmlhttprequest",
+ "external/index.html",
+ "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
+ "external"
+ ],
+ [
+ "lib/apply.js",
+ "file/lib/apply.js.html",
+ "lib/apply.js",
+ "file"
+ ],
+ [
+ "lib/applyeach.js",
+ "file/lib/applyEach.js.html",
+ "lib/applyEach.js",
+ "file"
+ ],
+ [
+ "lib/applyeachseries.js",
+ "file/lib/applyEachSeries.js.html",
+ "lib/applyEachSeries.js",
+ "file"
+ ],
+ [
+ "lib/asyncify.js",
+ "file/lib/asyncify.js.html",
+ "lib/asyncify.js",
+ "file"
+ ],
+ [
+ "lib/auto.js",
+ "file/lib/auto.js.html",
+ "lib/auto.js",
+ "file"
+ ],
+ [
+ "lib/autoinject.js",
+ "file/lib/autoInject.js.html",
+ "lib/autoInject.js",
+ "file"
+ ],
+ [
+ "lib/cargo.js",
+ "file/lib/cargo.js.html",
+ "lib/cargo.js",
+ "file"
+ ],
+ [
+ "lib/cargo.js~cargoobject",
+ "typedef/index.html#static-typedef-CargoObject",
+ "lib/cargo.js~CargoObject",
+ "typedef"
+ ],
+ [
+ "lib/compose.js",
+ "file/lib/compose.js.html",
+ "lib/compose.js",
+ "file"
+ ],
+ [
+ "lib/concat.js",
+ "file/lib/concat.js.html",
+ "lib/concat.js",
+ "file"
+ ],
+ [
+ "lib/concatseries.js",
+ "file/lib/concatSeries.js.html",
+ "lib/concatSeries.js",
+ "file"
+ ],
+ [
+ "lib/constant.js",
+ "file/lib/constant.js.html",
+ "lib/constant.js",
+ "file"
+ ],
+ [
+ "lib/detect.js",
+ "file/lib/detect.js.html",
+ "lib/detect.js",
+ "file"
+ ],
+ [
+ "lib/detectlimit.js",
+ "file/lib/detectLimit.js.html",
+ "lib/detectLimit.js",
+ "file"
+ ],
+ [
+ "lib/detectseries.js",
+ "file/lib/detectSeries.js.html",
+ "lib/detectSeries.js",
+ "file"
+ ],
+ [
+ "lib/dir.js",
+ "file/lib/dir.js.html",
+ "lib/dir.js",
+ "file"
+ ],
+ [
+ "lib/doduring.js",
+ "file/lib/doDuring.js.html",
+ "lib/doDuring.js",
+ "file"
+ ],
+ [
+ "lib/dountil.js",
+ "file/lib/doUntil.js.html",
+ "lib/doUntil.js",
+ "file"
+ ],
+ [
+ "lib/dowhilst.js",
+ "file/lib/doWhilst.js.html",
+ "lib/doWhilst.js",
+ "file"
+ ],
+ [
+ "lib/during.js",
+ "file/lib/during.js.html",
+ "lib/during.js",
+ "file"
+ ],
+ [
+ "lib/each.js",
+ "file/lib/each.js.html",
+ "lib/each.js",
+ "file"
+ ],
+ [
+ "lib/eachlimit.js",
+ "file/lib/eachLimit.js.html",
+ "lib/eachLimit.js",
+ "file"
+ ],
+ [
+ "lib/eachof.js",
+ "file/lib/eachOf.js.html",
+ "lib/eachOf.js",
+ "file"
+ ],
+ [
+ "lib/eachoflimit.js",
+ "file/lib/eachOfLimit.js.html",
+ "lib/eachOfLimit.js",
+ "file"
+ ],
+ [
+ "lib/eachofseries.js",
+ "file/lib/eachOfSeries.js.html",
+ "lib/eachOfSeries.js",
+ "file"
+ ],
+ [
+ "lib/eachseries.js",
+ "file/lib/eachSeries.js.html",
+ "lib/eachSeries.js",
+ "file"
+ ],
+ [
+ "lib/ensureasync.js",
+ "file/lib/ensureAsync.js.html",
+ "lib/ensureAsync.js",
+ "file"
+ ],
+ [
+ "lib/every.js",
+ "file/lib/every.js.html",
+ "lib/every.js",
+ "file"
+ ],
+ [
+ "lib/everylimit.js",
+ "file/lib/everyLimit.js.html",
+ "lib/everyLimit.js",
+ "file"
+ ],
+ [
+ "lib/everyseries.js",
+ "file/lib/everySeries.js.html",
+ "lib/everySeries.js",
+ "file"
+ ],
+ [
+ "lib/filter.js",
+ "file/lib/filter.js.html",
+ "lib/filter.js",
+ "file"
+ ],
+ [
+ "lib/filterlimit.js",
+ "file/lib/filterLimit.js.html",
+ "lib/filterLimit.js",
+ "file"
+ ],
+ [
+ "lib/filterseries.js",
+ "file/lib/filterSeries.js.html",
+ "lib/filterSeries.js",
+ "file"
+ ],
+ [
+ "lib/forever.js",
+ "file/lib/forever.js.html",
+ "lib/forever.js",
+ "file"
+ ],
+ [
+ "lib/index.js",
+ "file/lib/index.js.html",
+ "lib/index.js",
+ "file"
+ ],
+ [
+ "lib/internal/applyeach.js",
+ "file/lib/internal/applyEach.js.html",
+ "lib/internal/applyEach.js",
+ "file"
+ ],
+ [
+ "lib/internal/concat.js",
+ "file/lib/internal/concat.js.html",
+ "lib/internal/concat.js",
+ "file"
+ ],
+ [
+ "lib/internal/consolefunc.js",
+ "file/lib/internal/consoleFunc.js.html",
+ "lib/internal/consoleFunc.js",
+ "file"
+ ],
+ [
+ "lib/internal/createtester.js",
+ "file/lib/internal/createTester.js.html",
+ "lib/internal/createTester.js",
+ "file"
+ ],
+ [
+ "lib/internal/dolimit.js",
+ "file/lib/internal/doLimit.js.html",
+ "lib/internal/doLimit.js",
+ "file"
+ ],
+ [
+ "lib/internal/doparallel.js",
+ "file/lib/internal/doParallel.js.html",
+ "lib/internal/doParallel.js",
+ "file"
+ ],
+ [
+ "lib/internal/doparallellimit.js",
+ "file/lib/internal/doParallelLimit.js.html",
+ "lib/internal/doParallelLimit.js",
+ "file"
+ ],
+ [
+ "lib/internal/doseries.js",
+ "file/lib/internal/doSeries.js.html",
+ "lib/internal/doSeries.js",
+ "file"
+ ],
+ [
+ "lib/internal/eachoflimit.js",
+ "file/lib/internal/eachOfLimit.js.html",
+ "lib/internal/eachOfLimit.js",
+ "file"
+ ],
+ [
+ "lib/internal/filter.js",
+ "file/lib/internal/filter.js.html",
+ "lib/internal/filter.js",
+ "file"
+ ],
+ [
+ "lib/internal/findgetresult.js",
+ "file/lib/internal/findGetResult.js.html",
+ "lib/internal/findGetResult.js",
+ "file"
+ ],
+ [
+ "lib/internal/getiterator.js",
+ "file/lib/internal/getIterator.js.html",
+ "lib/internal/getIterator.js",
+ "file"
+ ],
+ [
+ "lib/internal/initialparams.js",
+ "file/lib/internal/initialParams.js.html",
+ "lib/internal/initialParams.js",
+ "file"
+ ],
+ [
+ "lib/internal/iterator.js",
+ "file/lib/internal/iterator.js.html",
+ "lib/internal/iterator.js",
+ "file"
+ ],
+ [
+ "lib/internal/map.js",
+ "file/lib/internal/map.js.html",
+ "lib/internal/map.js",
+ "file"
+ ],
+ [
+ "lib/internal/notid.js",
+ "file/lib/internal/notId.js.html",
+ "lib/internal/notId.js",
+ "file"
+ ],
+ [
+ "lib/internal/once.js",
+ "file/lib/internal/once.js.html",
+ "lib/internal/once.js",
+ "file"
+ ],
+ [
+ "lib/internal/onlyonce.js",
+ "file/lib/internal/onlyOnce.js.html",
+ "lib/internal/onlyOnce.js",
+ "file"
+ ],
+ [
+ "lib/internal/parallel.js",
+ "file/lib/internal/parallel.js.html",
+ "lib/internal/parallel.js",
+ "file"
+ ],
+ [
+ "lib/internal/queue.js",
+ "file/lib/internal/queue.js.html",
+ "lib/internal/queue.js",
+ "file"
+ ],
+ [
+ "lib/internal/reject.js",
+ "file/lib/internal/reject.js.html",
+ "lib/internal/reject.js",
+ "file"
+ ],
+ [
+ "lib/internal/setimmediate.js",
+ "file/lib/internal/setImmediate.js.html",
+ "lib/internal/setImmediate.js",
+ "file"
+ ],
+ [
+ "lib/internal/withoutindex.js",
+ "file/lib/internal/withoutIndex.js.html",
+ "lib/internal/withoutIndex.js",
+ "file"
+ ],
+ [
+ "lib/iterator.js",
+ "file/lib/iterator.js.html",
+ "lib/iterator.js",
+ "file"
+ ],
+ [
+ "lib/log.js",
+ "file/lib/log.js.html",
+ "lib/log.js",
+ "file"
+ ],
+ [
+ "lib/map.js",
+ "file/lib/map.js.html",
+ "lib/map.js",
+ "file"
+ ],
+ [
+ "lib/maplimit.js",
+ "file/lib/mapLimit.js.html",
+ "lib/mapLimit.js",
+ "file"
+ ],
+ [
+ "lib/mapseries.js",
+ "file/lib/mapSeries.js.html",
+ "lib/mapSeries.js",
+ "file"
+ ],
+ [
+ "lib/mapvalues.js",
+ "file/lib/mapValues.js.html",
+ "lib/mapValues.js",
+ "file"
+ ],
+ [
+ "lib/mapvalueslimit.js",
+ "file/lib/mapValuesLimit.js.html",
+ "lib/mapValuesLimit.js",
+ "file"
+ ],
+ [
+ "lib/mapvaluesseries.js",
+ "file/lib/mapValuesSeries.js.html",
+ "lib/mapValuesSeries.js",
+ "file"
+ ],
+ [
+ "lib/memoize.js",
+ "file/lib/memoize.js.html",
+ "lib/memoize.js",
+ "file"
+ ],
+ [
+ "lib/nexttick.js",
+ "file/lib/nextTick.js.html",
+ "lib/nextTick.js",
+ "file"
+ ],
+ [
+ "lib/parallel.js",
+ "file/lib/parallel.js.html",
+ "lib/parallel.js",
+ "file"
+ ],
+ [
+ "lib/parallellimit.js",
+ "file/lib/parallelLimit.js.html",
+ "lib/parallelLimit.js",
+ "file"
+ ],
+ [
+ "lib/priorityqueue.js",
+ "file/lib/priorityQueue.js.html",
+ "lib/priorityQueue.js",
+ "file"
+ ],
+ [
+ "lib/queue.js",
+ "file/lib/queue.js.html",
+ "lib/queue.js",
+ "file"
+ ],
+ [
+ "lib/queue.js~queueobject",
+ "typedef/index.html#static-typedef-QueueObject",
+ "lib/queue.js~QueueObject",
+ "typedef"
+ ],
+ [
+ "lib/race.js",
+ "file/lib/race.js.html",
+ "lib/race.js",
+ "file"
+ ],
+ [
+ "lib/reduce.js",
+ "file/lib/reduce.js.html",
+ "lib/reduce.js",
+ "file"
+ ],
+ [
+ "lib/reduceright.js",
+ "file/lib/reduceRight.js.html",
+ "lib/reduceRight.js",
+ "file"
+ ],
+ [
+ "lib/reflect.js",
+ "file/lib/reflect.js.html",
+ "lib/reflect.js",
+ "file"
+ ],
+ [
+ "lib/reflectall.js",
+ "file/lib/reflectAll.js.html",
+ "lib/reflectAll.js",
+ "file"
+ ],
+ [
+ "lib/reject.js",
+ "file/lib/reject.js.html",
+ "lib/reject.js",
+ "file"
+ ],
+ [
+ "lib/rejectlimit.js",
+ "file/lib/rejectLimit.js.html",
+ "lib/rejectLimit.js",
+ "file"
+ ],
+ [
+ "lib/rejectseries.js",
+ "file/lib/rejectSeries.js.html",
+ "lib/rejectSeries.js",
+ "file"
+ ],
+ [
+ "lib/retry.js",
+ "file/lib/retry.js.html",
+ "lib/retry.js",
+ "file"
+ ],
+ [
+ "lib/retryable.js",
+ "file/lib/retryable.js.html",
+ "lib/retryable.js",
+ "file"
+ ],
+ [
+ "lib/seq.js",
+ "file/lib/seq.js.html",
+ "lib/seq.js",
+ "file"
+ ],
+ [
+ "lib/series.js",
+ "file/lib/series.js.html",
+ "lib/series.js",
+ "file"
+ ],
+ [
+ "lib/setimmediate.js",
+ "file/lib/setImmediate.js.html",
+ "lib/setImmediate.js",
+ "file"
+ ],
+ [
+ "lib/some.js",
+ "file/lib/some.js.html",
+ "lib/some.js",
+ "file"
+ ],
+ [
+ "lib/somelimit.js",
+ "file/lib/someLimit.js.html",
+ "lib/someLimit.js",
+ "file"
+ ],
+ [
+ "lib/someseries.js",
+ "file/lib/someSeries.js.html",
+ "lib/someSeries.js",
+ "file"
+ ],
+ [
+ "lib/sortby.js",
+ "file/lib/sortBy.js.html",
+ "lib/sortBy.js",
+ "file"
+ ],
+ [
+ "lib/timeout.js",
+ "file/lib/timeout.js.html",
+ "lib/timeout.js",
+ "file"
+ ],
+ [
+ "lib/times.js",
+ "file/lib/times.js.html",
+ "lib/times.js",
+ "file"
+ ],
+ [
+ "lib/timeslimit.js",
+ "file/lib/timesLimit.js.html",
+ "lib/timesLimit.js",
+ "file"
+ ],
+ [
+ "lib/timesseries.js",
+ "file/lib/timesSeries.js.html",
+ "lib/timesSeries.js",
+ "file"
+ ],
+ [
+ "lib/transform.js",
+ "file/lib/transform.js.html",
+ "lib/transform.js",
+ "file"
+ ],
+ [
+ "lib/unmemoize.js",
+ "file/lib/unmemoize.js.html",
+ "lib/unmemoize.js",
+ "file"
+ ],
+ [
+ "lib/until.js",
+ "file/lib/until.js.html",
+ "lib/until.js",
+ "file"
+ ],
+ [
+ "lib/waterfall.js",
+ "file/lib/waterfall.js.html",
+ "lib/waterfall.js",
+ "file"
+ ],
+ [
+ "lib/whilst.js",
+ "file/lib/whilst.js.html",
+ "lib/whilst.js",
+ "file"
+ ]
+] \ No newline at end of file
diff --git a/docs/script/test-summary.js b/docs/script/test-summary.js
new file mode 100644
index 0000000..2f32cb0
--- /dev/null
+++ b/docs/script/test-summary.js
@@ -0,0 +1,54 @@
+(function(){
+ function toggle(ev) {
+ var button = ev.target;
+ var parent = ev.target.parentElement;
+ while(parent) {
+ if (parent.tagName === 'TR' && parent.classList.contains('test-describe')) break;
+ parent = parent.parentElement;
+ }
+
+ if (!parent) return;
+
+ var direction;
+ if (button.classList.contains('opened')) {
+ button.classList.remove('opened');
+ button.classList.add('closed');
+ direction = 'closed';
+ } else {
+ button.classList.remove('closed');
+ button.classList.add('opened');
+ direction = 'opened';
+ }
+
+ var targetDepth = parseInt(parent.dataset.testDepth, 10) + 1;
+ var nextElement = parent.nextElementSibling;
+ while (nextElement) {
+ var depth = parseInt(nextElement.dataset.testDepth, 10);
+ if (depth >= targetDepth) {
+ if (direction === 'opened') {
+ if (depth === targetDepth) nextElement.style.display = '';
+ } else if (direction === 'closed') {
+ nextElement.style.display = 'none';
+ var innerButton = nextElement.querySelector('.toggle');
+ if (innerButton && innerButton.classList.contains('opened')) {
+ innerButton.classList.remove('opened');
+ innerButton.classList.add('closed');
+ }
+ }
+ } else {
+ break;
+ }
+ nextElement = nextElement.nextElementSibling;
+ }
+ }
+
+ var buttons = document.querySelectorAll('.test-summary tr.test-describe .toggle');
+ for (var i = 0; i < buttons.length; i++) {
+ buttons[i].addEventListener('click', toggle);
+ }
+
+ var topDescribes = document.querySelectorAll('.test-summary tr[data-test-depth="0"]');
+ for (var i = 0; i < topDescribes.length; i++) {
+ topDescribes[i].style.display = '';
+ }
+})();
diff --git a/docs/source.html b/docs/source.html
new file mode 100644
index 0000000..667cd24
--- /dev/null
+++ b/docs/source.html
@@ -0,0 +1,905 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="">
+ <title data-ice="title">Source | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1>Source <img data-ice="coverageBadge" src="./badge.svg"><span data-ice="totalCoverageCount" class="total-coverage-count">35/54</span></h1>
+
+<table class="files-summary" data-ice="files" data-use-coverage="true">
+ <thead>
+ <tr>
+ <td>File</td>
+ <td>Identifier</td>
+ <td class="coverage">Document</td>
+ <td style="display: none;">Size</td>
+ <td style="display: none;">Lines</td>
+ <td style="display: none;">Updated</td>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/apply.js.html">lib/apply.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1388 byte</td>
+ <td style="display: none;" data-ice="lines">50</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/applyEach.js.html">lib/applyEach.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1195 byte</td>
+ <td style="display: none;" data-ice="lines">34</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/applyEachSeries.js.html">lib/applyEachSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">815 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/asyncify.js.html">lib/asyncify.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2589 byte</td>
+ <td style="display: none;" data-ice="lines">77</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/auto.js.html">lib/auto.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-auto">auto</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">8665 byte</td>
+ <td style="display: none;" data-ice="lines">254</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/autoInject.js.html">lib/autoInject.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">5511 byte</td>
+ <td style="display: none;" data-ice="lines">133</td>
+ <td style="display: none;" data-ice="updated">2016-05-02 20:09:56 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/cargo.js.html">lib/cargo.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-cargo">cargo</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">4218 byte</td>
+ <td style="display: none;" data-ice="lines">81</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:31:20 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/compose.js.html">lib/compose.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-compose">compose</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1201 byte</td>
+ <td style="display: none;" data-ice="lines">41</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/concat.js.html">lib/concat.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1301 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/concatSeries.js.html">lib/concatSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">890 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/constant.js.html">lib/constant.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1340 byte</td>
+ <td style="display: none;" data-ice="lines">50</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/detect.js.html">lib/detect.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1646 byte</td>
+ <td style="display: none;" data-ice="lines">41</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/detectLimit.js.html">lib/detectLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1159 byte</td>
+ <td style="display: none;" data-ice="lines">28</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/detectSeries.js.html">lib/detectSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1076 byte</td>
+ <td style="display: none;" data-ice="lines">26</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/dir.js.html">lib/dir.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">950 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/doDuring.js.html">lib/doDuring.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1202 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/doUntil.js.html">lib/doUntil.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1051 byte</td>
+ <td style="display: none;" data-ice="lines">26</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/doWhilst.js.html">lib/doWhilst.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1214 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/during.js.html">lib/during.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-during">during</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1799 byte</td>
+ <td style="display: none;" data-ice="lines">60</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/each.js.html">lib/each.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">2410 byte</td>
+ <td style="display: none;" data-ice="lines">62</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/eachLimit.js.html">lib/eachLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1138 byte</td>
+ <td style="display: none;" data-ice="lines">26</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/eachOf.js.html">lib/eachOf.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1530 byte</td>
+ <td style="display: none;" data-ice="lines">43</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/eachOfLimit.js.html">lib/eachOfLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1064 byte</td>
+ <td style="display: none;" data-ice="lines">26</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/eachOfSeries.js.html">lib/eachOfSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">923 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/eachSeries.js.html">lib/eachSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">936 byte</td>
+ <td style="display: none;" data-ice="lines">23</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/ensureAsync.js.html">lib/ensureAsync.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1853 byte</td>
+ <td style="display: none;" data-ice="lines">53</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/every.js.html">lib/every.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1189 byte</td>
+ <td style="display: none;" data-ice="lines">31</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/everyLimit.js.html">lib/everyLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1021 byte</td>
+ <td style="display: none;" data-ice="lines">24</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/everySeries.js.html">lib/everySeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">871 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/filter.js.html">lib/filter.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1141 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/filterLimit.js.html">lib/filterLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">874 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/filterSeries.js.html">lib/filterSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">772 byte</td>
+ <td style="display: none;" data-ice="lines">20</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/forever.js.html">lib/forever.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-forever">forever</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1335 byte</td>
+ <td style="display: none;" data-ice="lines">43</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/index.js.html">lib/index.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">7655 byte</td>
+ <td style="display: none;" data-ice="lines">273</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/applyEach.js.html#errorLines=4">lib/internal/applyEach.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">523 byte</td>
+ <td style="display: none;" data-ice="lines">19</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/concat.js.html#errorLines=1">lib/internal/concat.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-concat">concat</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">300 byte</td>
+ <td style="display: none;" data-ice="lines">11</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/consoleFunc.js.html#errorLines=4">lib/internal/consoleFunc.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">637 byte</td>
+ <td style="display: none;" data-ice="lines">21</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/createTester.js.html">lib/internal/createTester.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1183 byte</td>
+ <td style="display: none;" data-ice="lines">40</td>
+ <td style="display: none;" data-ice="updated">2016-05-07 17:15:18 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/doLimit.js.html#errorLines=1">lib/internal/doLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">163 byte</td>
+ <td style="display: none;" data-ice="lines">5</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/doParallel.js.html#errorLines=3">lib/internal/doParallel.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">183 byte</td>
+ <td style="display: none;" data-ice="lines">7</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/doParallelLimit.js.html#errorLines=3">lib/internal/doParallelLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">216 byte</td>
+ <td style="display: none;" data-ice="lines">7</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/doSeries.js.html#errorLines=3">lib/internal/doSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">199 byte</td>
+ <td style="display: none;" data-ice="lines">7</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/eachOfLimit.js.html">lib/internal/eachOfLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1377 byte</td>
+ <td style="display: none;" data-ice="lines">48</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/filter.js.html">lib/internal/filter.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">769 byte</td>
+ <td style="display: none;" data-ice="lines">28</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/findGetResult.js.html">lib/internal/findGetResult.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">63 byte</td>
+ <td style="display: none;" data-ice="lines">3</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/getIterator.js.html#errorLines=3">lib/internal/getIterator.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">183 byte</td>
+ <td style="display: none;" data-ice="lines">5</td>
+ <td style="display: none;" data-ice="updated">2016-05-07 17:15:18 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/initialParams.js.html#errorLines=3">lib/internal/initialParams.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">199 byte</td>
+ <td style="display: none;" data-ice="lines">8</td>
+ <td style="display: none;" data-ice="updated">2016-05-07 17:15:18 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/iterator.js.html#errorLines=5">lib/internal/iterator.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-iterator">iterator</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">836 byte</td>
+ <td style="display: none;" data-ice="lines">34</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/map.js.html">lib/internal/map.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">493 byte</td>
+ <td style="display: none;" data-ice="lines">19</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/notId.js.html#errorLines=1">lib/internal/notId.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-notId">notId</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">52 byte</td>
+ <td style="display: none;" data-ice="lines">3</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/once.js.html#errorLines=1">lib/internal/once.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-once">once</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">185 byte</td>
+ <td style="display: none;" data-ice="lines">8</td>
+ <td style="display: none;" data-ice="updated">2016-05-07 17:15:18 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/onlyOnce.js.html#errorLines=1">lib/internal/onlyOnce.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">229 byte</td>
+ <td style="display: none;" data-ice="lines">8</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/parallel.js.html">lib/internal/parallel.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">567 byte</td>
+ <td style="display: none;" data-ice="lines">20</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/queue.js.html#errorLines=10">lib/internal/queue.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-queue">queue</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">4344 byte</td>
+ <td style="display: none;" data-ice="lines">155</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/reject.js.html#errorLines=3">lib/internal/reject.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-reject">reject</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/1</span></td>
+ <td style="display: none;" data-ice="size">332 byte</td>
+ <td style="display: none;" data-ice="lines">13</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/setImmediate.js.html#errorLines=12,5,6,8">lib/internal/setImmediate.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-fallback">fallback</a></span>
+<span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span>
+<span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span>
+<span><a href="function/index.html#static-function-wrap">wrap</a></span></td>
+ <td class="coverage"><span data-ice="coverage">0 %</span><span data-ice="coverageCount" class="coverage-count">0/4</span></td>
+ <td style="display: none;" data-ice="size">620 byte</td>
+ <td style="display: none;" data-ice="lines">30</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/internal/withoutIndex.js.html">lib/internal/withoutIndex.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">148 byte</td>
+ <td style="display: none;" data-ice="lines">5</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/iterator.js.html">lib/iterator.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-iterator">iterator</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1345 byte</td>
+ <td style="display: none;" data-ice="lines">47</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/log.js.html">lib/log.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">876 byte</td>
+ <td style="display: none;" data-ice="lines">29</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/map.js.html">lib/map.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1792 byte</td>
+ <td style="display: none;" data-ice="lines">39</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/mapLimit.js.html">lib/mapLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">945 byte</td>
+ <td style="display: none;" data-ice="lines">22</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/mapSeries.js.html">lib/mapSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">846 byte</td>
+ <td style="display: none;" data-ice="lines">21</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/mapValues.js.html">lib/mapValues.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1788 byte</td>
+ <td style="display: none;" data-ice="lines">46</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/mapValuesLimit.js.html">lib/mapValuesLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1248 byte</td>
+ <td style="display: none;" data-ice="lines">33</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/mapValuesSeries.js.html">lib/mapValuesSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">881 byte</td>
+ <td style="display: none;" data-ice="lines">21</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/memoize.js.html">lib/memoize.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-memoize">memoize</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2475 byte</td>
+ <td style="display: none;" data-ice="lines">74</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/nextTick.js.html">lib/nextTick.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1251 byte</td>
+ <td style="display: none;" data-ice="lines">45</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/parallel.js.html">lib/parallel.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">2599 byte</td>
+ <td style="display: none;" data-ice="lines">69</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/parallelLimit.js.html">lib/parallelLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">994 byte</td>
+ <td style="display: none;" data-ice="lines">25</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/priorityQueue.js.html">lib/priorityQueue.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2947 byte</td>
+ <td style="display: none;" data-ice="lines">90</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/queue.js.html">lib/queue.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-queue">queue</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">4871 byte</td>
+ <td style="display: none;" data-ice="lines">105</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:32:44 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/race.js.html">lib/race.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-race">race</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1667 byte</td>
+ <td style="display: none;" data-ice="lines">49</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/reduce.js.html">lib/reduce.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-reduce">reduce</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2018 byte</td>
+ <td style="display: none;" data-ice="lines">51</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/reduceRight.js.html">lib/reduceRight.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1168 byte</td>
+ <td style="display: none;" data-ice="lines">29</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/reflect.js.html">lib/reflect.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-reflect">reflect</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1885 byte</td>
+ <td style="display: none;" data-ice="lines">64</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/reflectAll.js.html">lib/reflectAll.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1139 byte</td>
+ <td style="display: none;" data-ice="lines">44</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/reject.js.html">lib/reject.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1051 byte</td>
+ <td style="display: none;" data-ice="lines">29</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/rejectLimit.js.html">lib/rejectLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">852 byte</td>
+ <td style="display: none;" data-ice="lines">21</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/rejectSeries.js.html">lib/rejectSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">750 byte</td>
+ <td style="display: none;" data-ice="lines">19</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/retry.js.html">lib/retry.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-retry">retry</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">4995 byte</td>
+ <td style="display: none;" data-ice="lines">145</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/retryable.js.html">lib/retryable.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-retryable">retryable</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1216 byte</td>
+ <td style="display: none;" data-ice="lines">41</td>
+ <td style="display: none;" data-ice="updated">2016-05-07 17:15:18 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/seq.js.html">lib/seq.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">2088 byte</td>
+ <td style="display: none;" data-ice="lines">62</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/series.js.html">lib/series.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-series">series</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2573 byte</td>
+ <td style="display: none;" data-ice="lines">69</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/setImmediate.js.html">lib/setImmediate.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1044 byte</td>
+ <td style="display: none;" data-ice="lines">33</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/some.js.html">lib/some.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1250 byte</td>
+ <td style="display: none;" data-ice="lines">33</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/someLimit.js.html">lib/someLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1063 byte</td>
+ <td style="display: none;" data-ice="lines">25</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/someSeries.js.html">lib/someSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">903 byte</td>
+ <td style="display: none;" data-ice="lines">23</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/sortBy.js.html">lib/sortBy.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2242 byte</td>
+ <td style="display: none;" data-ice="lines">66</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/timeout.js.html">lib/timeout.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-timeout">timeout</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1730 byte</td>
+ <td style="display: none;" data-ice="lines">53</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/times.js.html">lib/times.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">1001 byte</td>
+ <td style="display: none;" data-ice="lines">35</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/timesLimit.js.html">lib/timesLimit.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">729 byte</td>
+ <td style="display: none;" data-ice="lines">21</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/timesSeries.js.html">lib/timesSeries.js</a></span></td>
+ <td data-ice="identifier" class="identifiers">-</td>
+ <td class="coverage"><span data-ice="coverage">-</span></td>
+ <td style="display: none;" data-ice="size">559 byte</td>
+ <td style="display: none;" data-ice="lines">17</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/transform.js.html">lib/transform.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-transform">transform</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2147 byte</td>
+ <td style="display: none;" data-ice="lines">61</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/unmemoize.js.html">lib/unmemoize.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">476 byte</td>
+ <td style="display: none;" data-ice="lines">17</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/until.js.html">lib/until.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-until">until</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1132 byte</td>
+ <td style="display: none;" data-ice="lines">29</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/waterfall.js.html">lib/waterfall.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">2805 byte</td>
+ <td style="display: none;" data-ice="lines">89</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+<tr data-ice="file">
+ <td data-ice="filePath"><span><a href="file/lib/whilst.js.html">lib/whilst.js</a></span></td>
+ <td data-ice="identifier" class="identifiers"><span><a href="function/index.html#static-function-whilst">whilst</a></span></td>
+ <td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">1/1</span></td>
+ <td style="display: none;" data-ice="size">1575 byte</td>
+ <td style="display: none;" data-ice="lines">47</td>
+ <td style="display: none;" data-ice="updated">2016-06-01 17:08:25 (UTC)</td>
+ </tr>
+</tbody>
+</table>
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/typedef/index.html b/docs/typedef/index.html
new file mode 100644
index 0000000..8c9fa0d
--- /dev/null
+++ b/docs/typedef/index.html
@@ -0,0 +1,507 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../">
+ <title data-ice="title">Typedef | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">Typedef</h1>
+<div data-ice="summaries"><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A cargo of tasks for the worker function to complete.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ </p>
+ </div>
+ <div>
+
+
+ <div data-ice="description"><p>A queue of tasks for the worker function to complete.</p>
+</div>
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div data-ice="details"><h2 data-ice="title">Static Public </h2>
+
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-typedef-CargoObject">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">CargoObject</span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/cargo.js.html#lineNumberundefined">source</a></span></span>
+ </span>
+ </h3>
+
+
+
+
+ <div data-ice="description"><p>A cargo of tasks for the worker function to complete. Cargo inherits all of
+the same methods and event callbacks as <span>async.queue</span>.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Properties:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">length</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A function returning the number of items
+waiting to be processed. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">payload</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>An <code>integer</code> for determining how many tasks
+should be process per round. This property can be changed after a <code>cargo</code> is
+created to alter the payload on-the-fly.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">push</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>Adds <code>task</code> to the <code>queue</code>. The callback is
+called once the <code>worker</code> has finished processing the task. Instead of a
+single task, an array of <code>tasks</code> can be submitted. The respective callback is
+used for every task in the list. Invoke with (task, [callback]).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">saturated</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A callback that is called when the
+<code>queue.length()</code> hits the concurrency and further tasks will be queued.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">empty</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A callback that is called when the last item
+from the <code>queue</code> is given to a <code>worker</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">drain</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A callback that is called when the last item
+from the <code>queue</code> has returned from the <code>worker</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">idle</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning false if there are items
+waiting or being processed, or true if not. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">pause</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that pauses the processing of tasks
+until <code>resume()</code> is called. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">resume</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that resumes the processing of
+queued tasks when the queue is paused. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">kill</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that removes the <code>drain</code> callback and
+empties remaining tasks from the queue forcing it to go idle. Invoke with ().</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-typedef-QueueObject">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">QueueObject</span><span data-ice="signature">: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/queue.js.html#lineNumberundefined">source</a></span></span>
+ </span>
+ </h3>
+
+
+
+
+ <div data-ice="description"><p>A queue of tasks for the worker function to complete.</p>
+</div>
+
+
+
+ <div data-ice="properties"><div data-ice="properties">
+ <h4 data-ice="title">Properties:</h4>
+ <table class="params">
+ <thead>
+ <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
+ </thead>
+ <tbody>
+
+ <tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">length</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning the number of items
+waiting to be processed. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">started</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning whether or not any
+items have been pushed and processed by the queue. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">running</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning the number of items
+currently being processed. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">workersList</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning the array of items
+currently being processed. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">idle</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function returning false if there are items
+waiting or being processed, or true if not. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">concurrency</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>an integer for determining how many <code>worker</code>
+functions should be run in parallel. This property can be changed after a
+<code>queue</code> is created to alter the concurrency on-the-fly.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">push</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>add a new task to the <code>queue</code>. Calls <code>callback</code>
+once the <code>worker</code> has finished processing the task. Instead of a single task,
+a <code>tasks</code> array can be submitted. The respective callback is used for every
+task in the list. Invoke with (task, [callback]),</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">unshift</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>add a new task to the front of the <code>queue</code>.
+Invoke with (task, [callback]).</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">saturated</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a callback that is called when the number of
+running workers hits the <code>concurrency</code> limit, and further tasks will be
+queued.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">unsaturated</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a callback that is called when the number
+of running workers is less than the <code>concurrency</code> &amp; <code>buffer</code> limits, and
+further tasks will not be queued.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">buffer</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>A minimum threshold buffer in order to say that
+the <code>queue</code> is <code>unsaturated</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">empty</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a callback that is called when the last item
+from the <code>queue</code> is given to a <code>worker</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">drain</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a callback that is called when the last item
+from the <code>queue</code> has returned from the <code>worker</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">error</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a callback that is called when a task errors.
+Has the signature <code>function(error, task)</code>.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">paused</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a boolean for determining whether the queue is
+in a paused state.</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">pause</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that pauses the processing of tasks
+until <code>resume()</code> is called. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">resume</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that resumes the processing of
+queued tasks when the queue is paused. Invoke with ().</p>
+</td>
+ </tr>
+<tr data-ice="property" data-depth="0">
+ <td data-ice="name" data-depth="0">kill</td>
+ <td data-ice="type"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span></td>
+ <td data-ice="appendix"></td>
+ <td data-ice="description"><p>a function that removes the <code>drain</code> callback and
+empties remaining tasks from the queue forcing it to go idle. Invoke with ().</p>
+</td>
+ </tr>
+</tbody>
+ </table>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+</div>
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>
diff --git a/docs/variable/index.html b/docs/variable/index.html
new file mode 100644
index 0000000..66d16f3
--- /dev/null
+++ b/docs/variable/index.html
@@ -0,0 +1,250 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <base data-ice="baseUrl" href="../">
+ <title data-ice="title">Variable | API Document</title>
+ <link type="text/css" rel="stylesheet" href="css/style.css">
+ <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
+ <script src="script/prettify/prettify.js"></script>
+
+
+ <script src="script/manual.js"></script>
+</head>
+<body class="layout-container" data-ice="rootContainer">
+
+<header>
+ <a href="./">Home</a>
+
+ <a href="identifiers.html">Reference</a>
+ <a href="source.html">Source</a>
+
+ <a data-ice="repoURL" href="https://github.com/caolan/async.git" class="repo-url-github">Repository</a>
+ <div class="search-box">
+ <span>
+ <img src="./image/search.png">
+ <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
+ </span>
+ <ul class="search-result"></ul>
+ </div>
+</header>
+
+<nav class="navigation" data-ice="nav"><div>
+ <ul>
+
+ <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-asyncify">asyncify</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-auto">auto</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-autoInject">autoInject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-cargo">cargo</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-compose">compose</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doDuring">doDuring</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doUntil">doUntil</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doWhilst">doWhilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-during">during</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachLimit">eachLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-eachOfLimit">eachOfLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-ensureAsync">ensureAsync</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-forever">forever</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-mapValuesLimit">mapValuesLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-memoize">memoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-parallelLimit">parallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-priorityQueue">priorityQueue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-race">race</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduce">reduce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reduceRight">reduceRight</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflect">reflect</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reflectAll">reflectAll</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retry">retry</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-retryable">retryable</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-series">series</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-sortBy">sortBy</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeout">timeout</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-timeLimit">timeLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-transform">transform</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-unmemoize">unmemoize</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-until">until</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-waterfall">waterfall</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-whilst">whilst</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-CargoObject">CargoObject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-QueueObject">QueueObject</a></span></span></li>
+<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">internal</div><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-applyEach">applyEach</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-concat">concat</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-consoleFunc">consoleFunc</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doLimit">doLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallel">doParallel</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doParallelLimit">doParallelLimit</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-doSeries">doSeries</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getIterator">getIterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-initialParams">initialParams</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-iterator">iterator</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-notId">notId</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-once">once</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-onlyOnce">onlyOnce</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-queue">queue</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-reject">reject</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-fallback">fallback</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-wrap">wrap</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span></li>
+<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span></li>
+</ul>
+</div>
+</nav>
+
+<div class="content" data-ice="content"><h1 data-ice="title">Variable</h1>
+<div data-ice="summaries"><table class="summary" data-ice="summary">
+ <thead><tr><td data-ice="title" colspan="3">Static Public Summary</td></tr></thead>
+ <tbody>
+
+ <tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="variable/index.html#static-variable-hasNextTick">hasNextTick</a></span></span><span data-ice="signature">: <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+<tr data-ice="target">
+ <td>
+ <span class="access" data-ice="access">public</span>
+
+
+
+ <span class="override" data-ice="override"></span>
+ </td>
+ <td>
+ <div>
+ <p>
+ <span data-ice="name"><span><a href="variable/index.html#static-variable-hasSetImmediate">hasSetImmediate</a></span></span><span data-ice="signature">: <span>*</span></span>
+ </p>
+ </div>
+ <div>
+
+
+
+ </div>
+ </td>
+ <td>
+
+
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div data-ice="details"><h2 data-ice="title">Static Public </h2>
+
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-variable-hasNextTick">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">hasNextTick</span><span data-ice="signature">: <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/setImmediate.js.html#lineNumber6">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import {hasNextTick} from &apos;<span><a href="file/lib/internal/setImmediate.js.html#lineNumber6">async/lib/internal/setImmediate.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties">
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+<div class="detail" data-ice="detail">
+ <h3 data-ice="anchor" id="static-variable-hasSetImmediate">
+ <span class="access" data-ice="access">public</span>
+
+
+
+
+ <span data-ice="name">hasSetImmediate</span><span data-ice="signature">: <span>*</span></span>
+ <span class="right-info">
+
+
+ <span data-ice="source"><span><a href="file/lib/internal/setImmediate.js.html#lineNumber5">source</a></span></span>
+ </span>
+ </h3>
+
+ <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import {hasSetImmediate} from &apos;<span><a href="file/lib/internal/setImmediate.js.html#lineNumber5">async/lib/internal/setImmediate.js</a></span>&apos;</code></pre></div>
+
+
+
+
+
+
+ <div data-ice="properties">
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div>
+</div>
+</div>
+
+<footer class="footer">
+ Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.4.7)</span></a>
+</footer>
+
+<script src="script/search_index.js"></script>
+<script src="script/search.js"></script>
+<script src="script/pretty-print.js"></script>
+<script src="script/inherited-summary.js"></script>
+<script src="script/test-summary.js"></script>
+<script src="script/inner-link.js"></script>
+<script src="script/patch-for-local.js"></script>
+</body>
+</html>