summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiko Beats <josefrancisco.verdu@gmail.com>2015-12-15 12:36:20 +0100
committerGraeme Yeates <yeatesgraeme@gmail.com>2015-12-29 16:48:29 -0500
commit7127b67f94a22247c36bf40e4f2685912e0f80e9 (patch)
treee798a2e57444ea22d99cd96e0fdd15480a01356a
parentb9cc28973144a9e1a84184d9d0bf48749899bfd9 (diff)
downloadasync-7127b67f94a22247c36bf40e4f2685912e0f80e9.tar.gz
Initial work in progress - modularization
Add .DS_Store Extract util methods Fix createTester callback Fix notid exports Refactor settimediate and nexttick Fix dep path Create bundle using browserify Rename main file Rename main file Rename main file Use browserify standalone mode Modular interface for main methods 📦 Deleted unnecessary test Add script to generate modules package.json Delete noconflict module Improve how to generat browser bundle Update util modules references Add a way to generate module scaffold Fix version Remove unnecessary dependencies Require the dependency Add missing methods Add dependencies for each module Bumped 0.4.0 Add useful scripts Add .npmignore Updated Add npmignore files Refactor Fix little issues Fix library name Fix isarray module Update script Fix typo Fix template links Update deps Revert "Fix template links" This reverts commit 112a3822f5aeab04d3ebec2e286ade10639f4668. Bump 0.5.1 Fix mapseries reference Bump 0.5.2
-rw-r--r--.editorconfig10
-rw-r--r--.gitignore2
-rw-r--r--.npmignore4
-rw-r--r--Makefile6
-rw-r--r--gulpfile.js88
-rw-r--r--lib/apply/.editorconfig10
-rw-r--r--lib/apply/.gitignore8
-rw-r--r--lib/apply/.jscsrc3
-rw-r--r--lib/apply/.jshintrc29
-rw-r--r--lib/apply/README.md13
-rw-r--r--lib/apply/index.js9
-rw-r--r--lib/apply/package.json20
-rw-r--r--lib/applyeach/.editorconfig10
-rw-r--r--lib/applyeach/.gitignore8
-rw-r--r--lib/applyeach/.jscsrc3
-rw-r--r--lib/applyeach/.jshintrc29
-rw-r--r--lib/applyeach/README.md13
-rw-r--r--lib/applyeach/index.js6
-rw-r--r--lib/applyeach/package.json21
-rw-r--r--lib/applyeachseries/.editorconfig10
-rw-r--r--lib/applyeachseries/.gitignore8
-rw-r--r--lib/applyeachseries/.jscsrc3
-rw-r--r--lib/applyeachseries/.jshintrc29
-rw-r--r--lib/applyeachseries/README.md13
-rw-r--r--lib/applyeachseries/index.js6
-rw-r--r--lib/applyeachseries/package.json21
-rw-r--r--lib/async.js1259
-rw-r--r--lib/asyncify/.editorconfig10
-rw-r--r--lib/asyncify/.gitignore8
-rw-r--r--lib/asyncify/.jscsrc3
-rw-r--r--lib/asyncify/.jshintrc29
-rw-r--r--lib/asyncify/README.md13
-rw-r--r--lib/asyncify/index.js2
-rw-r--r--lib/asyncify/package.json20
-rw-r--r--lib/auto/.editorconfig10
-rw-r--r--lib/auto/.gitignore8
-rw-r--r--lib/auto/.jscsrc3
-rw-r--r--lib/auto/.jshintrc29
-rw-r--r--lib/auto/README.md13
-rw-r--r--lib/auto/index.js109
-rw-r--r--lib/auto/package.json29
-rw-r--r--lib/cargo/.editorconfig10
-rw-r--r--lib/cargo/.gitignore8
-rw-r--r--lib/cargo/.jscsrc3
-rw-r--r--lib/cargo/.jshintrc29
-rw-r--r--lib/cargo/README.md13
-rw-r--r--lib/cargo/index.js7
-rw-r--r--lib/cargo/package.json20
-rw-r--r--lib/compose/.editorconfig10
-rw-r--r--lib/compose/.gitignore8
-rw-r--r--lib/compose/.jscsrc3
-rw-r--r--lib/compose/.jshintrc29
-rw-r--r--lib/compose/README.md13
-rw-r--r--lib/compose/index.js7
-rw-r--r--lib/compose/package.json20
-rw-r--r--lib/concat/.editorconfig10
-rw-r--r--lib/concat/.gitignore8
-rw-r--r--lib/concat/.jscsrc3
-rw-r--r--lib/concat/.jshintrc29
-rw-r--r--lib/concat/README.md13
-rw-r--r--lib/concat/index.js6
-rw-r--r--lib/concat/package.json21
-rw-r--r--lib/concatseries/.editorconfig10
-rw-r--r--lib/concatseries/.gitignore8
-rw-r--r--lib/concatseries/.jscsrc3
-rw-r--r--lib/concatseries/.jshintrc29
-rw-r--r--lib/concatseries/README.md13
-rw-r--r--lib/concatseries/index.js6
-rw-r--r--lib/concatseries/package.json21
-rw-r--r--lib/constant/.editorconfig10
-rw-r--r--lib/constant/.gitignore8
-rw-r--r--lib/constant/.jscsrc3
-rw-r--r--lib/constant/.jshintrc29
-rw-r--r--lib/constant/README.md13
-rw-r--r--lib/constant/index.js10
-rw-r--r--lib/constant/package.json20
-rw-r--r--lib/detect/.editorconfig10
-rw-r--r--lib/detect/.gitignore8
-rw-r--r--lib/detect/.jscsrc3
-rw-r--r--lib/detect/.jshintrc29
-rw-r--r--lib/detect/README.md13
-rw-r--r--lib/detect/index.js8
-rw-r--r--lib/detect/package.json23
-rw-r--r--lib/detectlimit/.editorconfig10
-rw-r--r--lib/detectlimit/.gitignore8
-rw-r--r--lib/detectlimit/.jscsrc3
-rw-r--r--lib/detectlimit/.jshintrc29
-rw-r--r--lib/detectlimit/README.md13
-rw-r--r--lib/detectlimit/index.js8
-rw-r--r--lib/detectlimit/package.json23
-rw-r--r--lib/detectseries/.editorconfig10
-rw-r--r--lib/detectseries/.gitignore8
-rw-r--r--lib/detectseries/.jscsrc3
-rw-r--r--lib/detectseries/.jshintrc29
-rw-r--r--lib/detectseries/README.md13
-rw-r--r--lib/detectseries/index.js8
-rw-r--r--lib/detectseries/package.json23
-rw-r--r--lib/dir/.editorconfig10
-rw-r--r--lib/dir/.gitignore8
-rw-r--r--lib/dir/.jscsrc3
-rw-r--r--lib/dir/.jshintrc29
-rw-r--r--lib/dir/README.md13
-rw-r--r--lib/dir/index.js2
-rw-r--r--lib/dir/package.json20
-rw-r--r--lib/doduring/.editorconfig10
-rw-r--r--lib/doduring/.gitignore8
-rw-r--r--lib/doduring/.jscsrc3
-rw-r--r--lib/doduring/.jshintrc29
-rw-r--r--lib/doduring/README.md13
-rw-r--r--lib/doduring/index.js12
-rw-r--r--lib/doduring/package.json20
-rw-r--r--lib/dountil/.editorconfig10
-rw-r--r--lib/dountil/.gitignore8
-rw-r--r--lib/dountil/.jscsrc3
-rw-r--r--lib/dountil/.jshintrc29
-rw-r--r--lib/dountil/README.md13
-rw-r--r--lib/dountil/index.js9
-rw-r--r--lib/dountil/package.json20
-rw-r--r--lib/dowhilst/.editorconfig10
-rw-r--r--lib/dowhilst/.gitignore8
-rw-r--r--lib/dowhilst/.jscsrc3
-rw-r--r--lib/dowhilst/.jshintrc29
-rw-r--r--lib/dowhilst/README.md13
-rw-r--r--lib/dowhilst/index.js10
-rw-r--r--lib/dowhilst/package.json20
-rw-r--r--lib/during/.editorconfig10
-rw-r--r--lib/during/.gitignore8
-rw-r--r--lib/during/.jscsrc3
-rw-r--r--lib/during/.jshintrc29
-rw-r--r--lib/during/README.md13
-rw-r--r--lib/during/index.js25
-rw-r--r--lib/during/package.json21
-rw-r--r--lib/each/.editorconfig10
-rw-r--r--lib/each/.gitignore8
-rw-r--r--lib/each/.jscsrc3
-rw-r--r--lib/each/.jshintrc29
-rw-r--r--lib/each/README.md13
-rw-r--r--lib/each/index.js8
-rw-r--r--lib/each/package.json21
-rw-r--r--lib/eachlimit/.editorconfig10
-rw-r--r--lib/eachlimit/.gitignore8
-rw-r--r--lib/eachlimit/.jscsrc3
-rw-r--r--lib/eachlimit/.jshintrc29
-rw-r--r--lib/eachlimit/README.md13
-rw-r--r--lib/eachlimit/index.js8
-rw-r--r--lib/eachlimit/package.json21
-rw-r--r--lib/eachof/.editorconfig10
-rw-r--r--lib/eachof/.gitignore8
-rw-r--r--lib/eachof/.jscsrc3
-rw-r--r--lib/eachof/.jshintrc29
-rw-r--r--lib/eachof/README.md13
-rw-r--r--lib/eachof/index.js33
-rw-r--r--lib/eachof/package.json23
-rw-r--r--lib/eachoflimit/.editorconfig10
-rw-r--r--lib/eachoflimit/.gitignore8
-rw-r--r--lib/eachoflimit/.jscsrc3
-rw-r--r--lib/eachoflimit/.jshintrc29
-rw-r--r--lib/eachoflimit/README.md13
-rw-r--r--lib/eachoflimit/index.js7
-rw-r--r--lib/eachoflimit/package.json20
-rw-r--r--lib/eachofseries/.editorconfig10
-rw-r--r--lib/eachofseries/.gitignore8
-rw-r--r--lib/eachofseries/.jscsrc3
-rw-r--r--lib/eachofseries/.jshintrc29
-rw-r--r--lib/eachofseries/README.md13
-rw-r--r--lib/eachofseries/index.js39
-rw-r--r--lib/eachofseries/package.json24
-rw-r--r--lib/eachseries/.editorconfig10
-rw-r--r--lib/eachseries/.gitignore8
-rw-r--r--lib/eachseries/.jscsrc3
-rw-r--r--lib/eachseries/.jshintrc29
-rw-r--r--lib/eachseries/README.md13
-rw-r--r--lib/eachseries/index.js8
-rw-r--r--lib/eachseries/package.json21
-rw-r--r--lib/ensureasync/.editorconfig10
-rw-r--r--lib/ensureasync/.gitignore8
-rw-r--r--lib/ensureasync/.jscsrc3
-rw-r--r--lib/ensureasync/.jshintrc29
-rw-r--r--lib/ensureasync/README.md13
-rw-r--r--lib/ensureasync/index.js2
-rw-r--r--lib/ensureasync/package.json20
-rw-r--r--lib/every/.editorconfig10
-rw-r--r--lib/every/.gitignore8
-rw-r--r--lib/every/.jscsrc3
-rw-r--r--lib/every/.jshintrc29
-rw-r--r--lib/every/README.md13
-rw-r--r--lib/every/index.js7
-rw-r--r--lib/every/package.json22
-rw-r--r--lib/everylimit/.editorconfig10
-rw-r--r--lib/everylimit/.gitignore8
-rw-r--r--lib/everylimit/.jscsrc3
-rw-r--r--lib/everylimit/.jshintrc29
-rw-r--r--lib/everylimit/README.md13
-rw-r--r--lib/everylimit/index.js7
-rw-r--r--lib/everylimit/package.json22
-rw-r--r--lib/filter/.editorconfig10
-rw-r--r--lib/filter/.gitignore8
-rw-r--r--lib/filter/.jscsrc3
-rw-r--r--lib/filter/.jshintrc29
-rw-r--r--lib/filter/README.md13
-rw-r--r--lib/filter/index.js4
-rw-r--r--lib/filter/package.json21
-rw-r--r--lib/filterlimit/.editorconfig10
-rw-r--r--lib/filterlimit/.gitignore8
-rw-r--r--lib/filterlimit/.jscsrc3
-rw-r--r--lib/filterlimit/.jshintrc29
-rw-r--r--lib/filterlimit/README.md13
-rw-r--r--lib/filterlimit/index.js4
-rw-r--r--lib/filterlimit/package.json21
-rw-r--r--lib/filterseries/.editorconfig10
-rw-r--r--lib/filterseries/.gitignore8
-rw-r--r--lib/filterseries/.jscsrc3
-rw-r--r--lib/filterseries/.jshintrc29
-rw-r--r--lib/filterseries/README.md13
-rw-r--r--lib/filterseries/index.js6
-rw-r--r--lib/filterseries/package.json21
-rw-r--r--lib/forever/.editorconfig10
-rw-r--r--lib/forever/.gitignore8
-rw-r--r--lib/forever/.jscsrc3
-rw-r--r--lib/forever/.jshintrc29
-rw-r--r--lib/forever/README.md13
-rw-r--r--lib/forever/index.js14
-rw-r--r--lib/forever/package.json22
-rw-r--r--lib/index.js132
-rw-r--r--lib/iterator/.editorconfig10
-rw-r--r--lib/iterator/.gitignore8
-rw-r--r--lib/iterator/.jscsrc3
-rw-r--r--lib/iterator/.jshintrc29
-rw-r--r--lib/iterator/README.md13
-rw-r--r--lib/iterator/index.js17
-rw-r--r--lib/iterator/package.json17
-rw-r--r--lib/log/.editorconfig10
-rw-r--r--lib/log/.gitignore8
-rw-r--r--lib/log/.jscsrc3
-rw-r--r--lib/log/.jshintrc29
-rw-r--r--lib/log/README.md13
-rw-r--r--lib/log/index.js2
-rw-r--r--lib/log/package.json20
-rw-r--r--lib/map/.editorconfig10
-rw-r--r--lib/map/.gitignore8
-rw-r--r--lib/map/.jscsrc3
-rw-r--r--lib/map/.jshintrc29
-rw-r--r--lib/map/README.md13
-rw-r--r--lib/map/index.js4
-rw-r--r--lib/map/package.json21
-rw-r--r--lib/maplimit/.editorconfig10
-rw-r--r--lib/maplimit/.gitignore8
-rw-r--r--lib/maplimit/.jscsrc3
-rw-r--r--lib/maplimit/.jshintrc29
-rw-r--r--lib/maplimit/README.md13
-rw-r--r--lib/maplimit/index.js6
-rw-r--r--lib/maplimit/package.json21
-rw-r--r--lib/mapseries/.editorconfig10
-rw-r--r--lib/mapseries/.gitignore8
-rw-r--r--lib/mapseries/.jscsrc3
-rw-r--r--lib/mapseries/.jshintrc29
-rw-r--r--lib/mapseries/README.md13
-rw-r--r--lib/mapseries/index.js4
-rw-r--r--lib/mapseries/package.json21
-rw-r--r--lib/memoize/.editorconfig10
-rw-r--r--lib/memoize/.gitignore8
-rw-r--r--lib/memoize/.jscsrc3
-rw-r--r--lib/memoize/.jshintrc29
-rw-r--r--lib/memoize/README.md13
-rw-r--r--lib/memoize/index.js35
-rw-r--r--lib/memoize/package.json22
-rw-r--r--lib/nexttick/.editorconfig10
-rw-r--r--lib/nexttick/.gitignore8
-rw-r--r--lib/nexttick/.jscsrc3
-rw-r--r--lib/nexttick/.jshintrc29
-rw-r--r--lib/nexttick/README.md13
-rw-r--r--lib/nexttick/index.js2
-rw-r--r--lib/nexttick/package.json20
-rw-r--r--lib/parallel/.editorconfig10
-rw-r--r--lib/parallel/.gitignore8
-rw-r--r--lib/parallel/.jscsrc3
-rw-r--r--lib/parallel/.jshintrc29
-rw-r--r--lib/parallel/README.md13
-rw-r--r--lib/parallel/index.js8
-rw-r--r--lib/parallel/package.json21
-rw-r--r--lib/parallellimit/.editorconfig10
-rw-r--r--lib/parallellimit/.gitignore8
-rw-r--r--lib/parallellimit/.jscsrc3
-rw-r--r--lib/parallellimit/.jshintrc29
-rw-r--r--lib/parallellimit/README.md13
-rw-r--r--lib/parallellimit/index.js8
-rw-r--r--lib/parallellimit/package.json21
-rw-r--r--lib/priorityqueue/.editorconfig10
-rw-r--r--lib/priorityqueue/.gitignore8
-rw-r--r--lib/priorityqueue/.jscsrc3
-rw-r--r--lib/priorityqueue/.jshintrc29
-rw-r--r--lib/priorityqueue/README.md13
-rw-r--r--lib/priorityqueue/index.js71
-rw-r--r--lib/priorityqueue/package.json24
-rw-r--r--lib/queue/.editorconfig10
-rw-r--r--lib/queue/.gitignore8
-rw-r--r--lib/queue/.jscsrc3
-rw-r--r--lib/queue/.jshintrc29
-rw-r--r--lib/queue/README.md13
-rw-r--r--lib/queue/index.js9
-rw-r--r--lib/queue/package.json20
-rw-r--r--lib/reduce/.editorconfig10
-rw-r--r--lib/reduce/.gitignore8
-rw-r--r--lib/reduce/.jscsrc3
-rw-r--r--lib/reduce/.jshintrc29
-rw-r--r--lib/reduce/README.md13
-rw-r--r--lib/reduce/index.js14
-rw-r--r--lib/reduce/package.json20
-rw-r--r--lib/reduceright/.editorconfig10
-rw-r--r--lib/reduceright/.gitignore8
-rw-r--r--lib/reduceright/.jscsrc3
-rw-r--r--lib/reduceright/.jshintrc29
-rw-r--r--lib/reduceright/README.md13
-rw-r--r--lib/reduceright/index.js10
-rw-r--r--lib/reduceright/package.json22
-rw-r--r--lib/reject/.editorconfig10
-rw-r--r--lib/reject/.gitignore8
-rw-r--r--lib/reject/.jscsrc3
-rw-r--r--lib/reject/.jshintrc29
-rw-r--r--lib/reject/README.md13
-rw-r--r--lib/reject/index.js6
-rw-r--r--lib/reject/package.json21
-rw-r--r--lib/rejectlimit/.editorconfig10
-rw-r--r--lib/rejectlimit/.gitignore8
-rw-r--r--lib/rejectlimit/.jscsrc3
-rw-r--r--lib/rejectlimit/.jshintrc29
-rw-r--r--lib/rejectlimit/README.md13
-rw-r--r--lib/rejectlimit/index.js6
-rw-r--r--lib/rejectlimit/package.json21
-rw-r--r--lib/rejectseries/.editorconfig10
-rw-r--r--lib/rejectseries/.gitignore8
-rw-r--r--lib/rejectseries/.jscsrc3
-rw-r--r--lib/rejectseries/.jshintrc29
-rw-r--r--lib/rejectseries/README.md13
-rw-r--r--lib/rejectseries/index.js6
-rw-r--r--lib/rejectseries/package.json21
-rw-r--r--lib/retry/.editorconfig10
-rw-r--r--lib/retry/.gitignore8
-rw-r--r--lib/retry/.jscsrc3
-rw-r--r--lib/retry/.jshintrc29
-rw-r--r--lib/retry/README.md13
-rw-r--r--lib/retry/index.js77
-rw-r--r--lib/retry/package.json20
-rw-r--r--lib/seq/.editorconfig10
-rw-r--r--lib/seq/.gitignore8
-rw-r--r--lib/seq/.jscsrc3
-rw-r--r--lib/seq/.jshintrc29
-rw-r--r--lib/seq/README.md13
-rw-r--r--lib/seq/index.js26
-rw-r--r--lib/seq/package.json22
-rw-r--r--lib/series/.editorconfig10
-rw-r--r--lib/series/.gitignore8
-rw-r--r--lib/series/.jscsrc3
-rw-r--r--lib/series/.jshintrc29
-rw-r--r--lib/series/README.md13
-rw-r--r--lib/series/index.js8
-rw-r--r--lib/series/package.json21
-rw-r--r--lib/setimmediate/.editorconfig10
-rw-r--r--lib/setimmediate/.gitignore8
-rw-r--r--lib/setimmediate/.jscsrc3
-rw-r--r--lib/setimmediate/.jshintrc29
-rw-r--r--lib/setimmediate/README.md13
-rw-r--r--lib/setimmediate/index.js2
-rw-r--r--lib/setimmediate/package.json20
-rw-r--r--lib/some/.editorconfig10
-rw-r--r--lib/some/.gitignore8
-rw-r--r--lib/some/.jscsrc3
-rw-r--r--lib/some/.jshintrc29
-rw-r--r--lib/some/README.md13
-rw-r--r--lib/some/index.js8
-rw-r--r--lib/some/package.json23
-rw-r--r--lib/somelimit/.editorconfig10
-rw-r--r--lib/somelimit/.gitignore8
-rw-r--r--lib/somelimit/.jscsrc3
-rw-r--r--lib/somelimit/.jshintrc29
-rw-r--r--lib/somelimit/README.md13
-rw-r--r--lib/somelimit/index.js8
-rw-r--r--lib/somelimit/package.json23
-rw-r--r--lib/sortby/.editorconfig10
-rw-r--r--lib/sortby/.gitignore8
-rw-r--r--lib/sortby/.jscsrc3
-rw-r--r--lib/sortby/.jshintrc29
-rw-r--r--lib/sortby/README.md13
-rw-r--r--lib/sortby/index.js23
-rw-r--r--lib/sortby/package.json21
-rw-r--r--lib/times/.editorconfig10
-rw-r--r--lib/times/.gitignore8
-rw-r--r--lib/times/.jscsrc3
-rw-r--r--lib/times/.jshintrc29
-rw-r--r--lib/times/README.md13
-rw-r--r--lib/times/index.js6
-rw-r--r--lib/times/package.json21
-rw-r--r--lib/timeslimit/.editorconfig10
-rw-r--r--lib/timeslimit/.gitignore8
-rw-r--r--lib/timeslimit/.jscsrc3
-rw-r--r--lib/timeslimit/.jshintrc29
-rw-r--r--lib/timeslimit/README.md13
-rw-r--r--lib/timeslimit/index.js8
-rw-r--r--lib/timeslimit/package.json21
-rw-r--r--lib/timesseries/.editorconfig10
-rw-r--r--lib/timesseries/.gitignore8
-rw-r--r--lib/timesseries/.jscsrc3
-rw-r--r--lib/timesseries/.jshintrc29
-rw-r--r--lib/timesseries/README.md13
-rw-r--r--lib/timesseries/index.js6
-rw-r--r--lib/timesseries/package.json21
-rw-r--r--lib/transform/.editorconfig10
-rw-r--r--lib/transform/.gitignore8
-rw-r--r--lib/transform/.jscsrc3
-rw-r--r--lib/transform/.jshintrc29
-rw-r--r--lib/transform/README.md13
-rw-r--r--lib/transform/index.js18
-rw-r--r--lib/transform/package.json21
-rw-r--r--lib/unmemoize/.editorconfig10
-rw-r--r--lib/unmemoize/.gitignore8
-rw-r--r--lib/unmemoize/.jscsrc3
-rw-r--r--lib/unmemoize/.jshintrc29
-rw-r--r--lib/unmemoize/README.md13
-rw-r--r--lib/unmemoize/index.js7
-rw-r--r--lib/unmemoize/package.json17
-rw-r--r--lib/until/.editorconfig10
-rw-r--r--lib/until/.gitignore8
-rw-r--r--lib/until/.jscsrc3
-rw-r--r--lib/until/.jshintrc29
-rw-r--r--lib/until/README.md13
-rw-r--r--lib/until/index.js9
-rw-r--r--lib/until/package.json20
-rw-r--r--lib/waterfall/.editorconfig10
-rw-r--r--lib/waterfall/.gitignore8
-rw-r--r--lib/waterfall/.jscsrc3
-rw-r--r--lib/waterfall/.jshintrc29
-rw-r--r--lib/waterfall/README.md13
-rw-r--r--lib/waterfall/index.js31
-rw-r--r--lib/waterfall/package.json25
-rw-r--r--lib/whilst/.editorconfig10
-rw-r--r--lib/whilst/.gitignore8
-rw-r--r--lib/whilst/.jscsrc3
-rw-r--r--lib/whilst/.jshintrc29
-rw-r--r--lib/whilst/README.md13
-rw-r--r--lib/whilst/index.js15
-rw-r--r--lib/whilst/package.json21
-rw-r--r--mocha_test/compose.js2
-rw-r--r--mocha_test/forever.js2
-rw-r--r--package.json133
-rw-r--r--scripts/each-module.js27
-rw-r--r--scripts/gk.js4
-rw-r--r--scripts/init.js9
-rw-r--r--scripts/publish.js4
-rw-r--r--scripts/push.js8
-rw-r--r--support/dependencies.json262
-rw-r--r--support/module_template.md13
-rwxr-xr-xtest/test-async.js33
-rw-r--r--test/test.html2
453 files changed, 6747 insertions, 1328 deletions
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/.gitignore b/.gitignore
index 9134974..8feeb01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@ perf/versions
nyc_output
coverage
*.log
+.DS_Store
+npm-debug.log
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..4274f79
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,4 @@
+lib
+scripts
+support/dependencies.json
+support/module_template.md
diff --git a/Makefile b/Makefile
index 87279f4..4c90871 100644
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,18 @@
export PATH := ./node_modules/.bin/:$(PATH):./bin/
PACKAGE = asyncjs
+REQUIRE_NAME = async
XYZ = node_modules/.bin/xyz --repo git@github.com:caolan/async.git
+BROWSERIFY = node_modules/.bin/browserify
BUILDDIR = dist
-SRC = lib/async.js
+SRC = lib/index.js
all: lint test clean build
build: $(wildcard lib/*.js)
mkdir -p $(BUILDDIR)
- cp $(SRC) $(BUILDDIR)/async.js
+ browserify $(SRC) -o $(BUILDDIR)/async.js -s $(REQUIRE_NAME)
uglifyjs $(BUILDDIR)/async.js -mc \
--source-map $(BUILDDIR)/async.min.map \
-o $(BUILDDIR)/async.min.js
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..2655edf
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,88 @@
+'use strict';
+
+var gulp = require('gulp');
+var path = require('path');
+var fs = require('fs-extra');
+var pkg = require('./package.json');
+var jsonFuture = require('json-future');
+var template = require('lodash.template');
+
+var moduleDeps = JSON.parse(template(fs.readFileSync('./support/dependencies.json').toString())({
+ version: pkg.version}
+ ));
+
+var MODULES_PATH = './lib/';
+
+function getFolders(dir) {
+ return fs.readdirSync(dir)
+ .filter(function(file) {
+ return fs.statSync(path.join(dir, file)).isDirectory();
+ });
+}
+
+function generatePackage(name) {
+ function generateKeywords(name) {
+ var keywords = [
+ 'async',
+ 'async-modularized'
+ ];
+
+ keywords.push(name);
+ return keywords;
+ }
+
+ function generateDefaultFields(name) {
+ var ORIGINAL_FIELDS = [
+ 'author',
+ 'version',
+ 'repository',
+ 'license'
+ ];
+
+ var structure = {
+ name: 'async.' + name,
+ description: 'async ' + name + 'method as module.',
+ main: './index.js',
+ repository: "async-js/async." + name
+ };
+
+ ORIGINAL_FIELDS.forEach(function(field) {
+ structure[field] = pkg[field];
+ });
+
+ if (Object.keys(moduleDeps[name]).length > 0)
+ structure.dependencies = moduleDeps[name];
+
+ return structure;
+ }
+
+ var modulePackage = generateDefaultFields(name);
+ modulePackage.keywords = generateKeywords(name);
+ return modulePackage;
+}
+
+function generateReadme(name, dist) {
+ var filepath = path.resolve('support/module_template.md');
+ var tpl = fs.readFileSync(filepath).toString();
+ tpl = template(tpl)({name: name});
+ fs.writeFileSync(dist, tpl);
+}
+
+function copyMetaFiles(dist) {
+ var files = ['.editorconfig', '.jscsrc', '.jshintrc', '.gitignore'];
+
+ files.forEach(function(file) {
+ var metafile = path.resolve(file);
+ var distFile = path.resolve(dist, file);
+ fs.copySync(metafile, distFile);
+ });
+}
+
+gulp.task('package', function() {
+ return getFolders(MODULES_PATH).map(function(module) {
+ var dist = path.resolve(MODULES_PATH, module);
+ jsonFuture.save(path.resolve(dist, 'package.json'), generatePackage(module));
+ generateReadme(module, path.resolve(dist, 'README.md'));
+ copyMetaFiles(dist);
+ });
+});
diff --git a/lib/apply/.editorconfig b/lib/apply/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/apply/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/apply/.gitignore b/lib/apply/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/apply/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/apply/.jscsrc b/lib/apply/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/apply/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/apply/.jshintrc b/lib/apply/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/apply/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/apply/README.md b/lib/apply/README.md
new file mode 100644
index 0000000..3caa576
--- /dev/null
+++ b/lib/apply/README.md
@@ -0,0 +1,13 @@
+# async.apply
+
+![Last version](https://img.shields.io/github/tag/async-js/async.apply.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.apply.svg?style=flat-square)](https://david-dm.org/async-js/async.apply)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.apply.svg?style=flat-square)](https://david-dm.org/async-js/async.apply#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.apply.svg?style=flat-square)](https://www.npmjs.org/package/async.apply)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#apply](https://github.com/async-js/async#async.apply) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/apply/index.js b/lib/apply/index.js
new file mode 100644
index 0000000..e27ef80
--- /dev/null
+++ b/lib/apply/index.js
@@ -0,0 +1,9 @@
+'use strict';
+
+var restParam = require('async.util.restparam');
+
+module.exports = restParam(function(fn, args) {
+ return restParam(function(callArgs) {
+ return fn.apply(null, args.concat(callArgs));
+ });
+});
diff --git a/lib/apply/package.json b/lib/apply/package.json
new file mode 100644
index 0000000..6d8e5dc
--- /dev/null
+++ b/lib/apply/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.apply",
+ "description": "async applymethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "apply"
+ ]
+}
diff --git a/lib/applyeach/.editorconfig b/lib/applyeach/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/applyeach/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/applyeach/.gitignore b/lib/applyeach/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/applyeach/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/applyeach/.jscsrc b/lib/applyeach/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/applyeach/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/applyeach/.jshintrc b/lib/applyeach/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/applyeach/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/applyeach/README.md b/lib/applyeach/README.md
new file mode 100644
index 0000000..a8e68c3
--- /dev/null
+++ b/lib/applyeach/README.md
@@ -0,0 +1,13 @@
+# async.applyeach
+
+![Last version](https://img.shields.io/github/tag/async-js/async.applyeach.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.applyeach.svg?style=flat-square)](https://david-dm.org/async-js/async.applyeach)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.applyeach.svg?style=flat-square)](https://david-dm.org/async-js/async.applyeach#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.applyeach.svg?style=flat-square)](https://www.npmjs.org/package/async.applyeach)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#applyeach](https://github.com/async-js/async#async.applyeach) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/applyeach/index.js b/lib/applyeach/index.js
new file mode 100644
index 0000000..9519afd
--- /dev/null
+++ b/lib/applyeach/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var applyEach = require('async.util.applyeach');
+
+module.exports = applyEach(eachOf);
diff --git a/lib/applyeach/package.json b/lib/applyeach/package.json
new file mode 100644
index 0000000..996beca
--- /dev/null
+++ b/lib/applyeach/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.applyeach",
+ "description": "async applyeachmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.applyeach": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "applyeach"
+ ]
+}
diff --git a/lib/applyeachseries/.editorconfig b/lib/applyeachseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/applyeachseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/applyeachseries/.gitignore b/lib/applyeachseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/applyeachseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/applyeachseries/.jscsrc b/lib/applyeachseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/applyeachseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/applyeachseries/.jshintrc b/lib/applyeachseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/applyeachseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/applyeachseries/README.md b/lib/applyeachseries/README.md
new file mode 100644
index 0000000..bedaee7
--- /dev/null
+++ b/lib/applyeachseries/README.md
@@ -0,0 +1,13 @@
+# async.applyeachseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.applyeachseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.applyeachseries.svg?style=flat-square)](https://david-dm.org/async-js/async.applyeachseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.applyeachseries.svg?style=flat-square)](https://david-dm.org/async-js/async.applyeachseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.applyeachseries.svg?style=flat-square)](https://www.npmjs.org/package/async.applyeachseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#applyeachseries](https://github.com/async-js/async#async.applyeachseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/applyeachseries/index.js b/lib/applyeachseries/index.js
new file mode 100644
index 0000000..8d4d3cf
--- /dev/null
+++ b/lib/applyeachseries/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var eachOfSeries = require('async.eachofseries');
+var applyEach = require('async.util.applyeach');
+
+module.exports = applyEach(eachOfSeries);
diff --git a/lib/applyeachseries/package.json b/lib/applyeachseries/package.json
new file mode 100644
index 0000000..70ee71a
--- /dev/null
+++ b/lib/applyeachseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.applyeachseries",
+ "description": "async applyeachseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachofseries": "0.5.2",
+ "async.util.applyeach": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "applyeachseries"
+ ]
+}
diff --git a/lib/async.js b/lib/async.js
deleted file mode 100644
index 3748ac0..0000000
--- a/lib/async.js
+++ /dev/null
@@ -1,1259 +0,0 @@
-/*!
- * async
- * https://github.com/caolan/async
- *
- * Copyright 2010-2014 Caolan McMahon
- * Released under the MIT license
- */
-(function () {
-
- var async = {};
- function noop() {}
- function identity(v) {
- return v;
- }
- function toBool(v) {
- return !!v;
- }
- function notId(v) {
- return !v;
- }
-
- // global on the server, window in the browser
- var previous_async;
-
- // Establish the root object, `window` (`self`) in the browser, `global`
- // on the server, or `this` in some virtual machines. We use `self`
- // instead of `window` for `WebWorker` support.
- var root = typeof self === 'object' && self.self === self && self ||
- typeof global === 'object' && global.global === global && global ||
- this;
-
- if (root != null) {
- previous_async = root.async;
- }
-
- async.noConflict = function () {
- root.async = previous_async;
- return async;
- };
-
- function only_once(fn) {
- return function() {
- if (fn === null) throw new Error("Callback was already called.");
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- function _once(fn) {
- return function() {
- if (fn === null) return;
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- //// cross-browser compatiblity functions ////
-
- var _toString = Object.prototype.toString;
-
- var _isArray = Array.isArray || function (obj) {
- return _toString.call(obj) === '[object Array]';
- };
-
- // Ported from underscore.js isObject
- var _isObject = function(obj) {
- var type = typeof obj;
- return type === 'function' || type === 'object' && !!obj;
- };
-
- function _isArrayLike(arr) {
- return _isArray(arr) || (
- // has a positive integer length property
- typeof arr.length === "number" &&
- arr.length >= 0 &&
- arr.length % 1 === 0
- );
- }
-
- function _arrayEach(arr, iterator) {
- var index = -1,
- length = arr.length;
-
- while (++index < length) {
- iterator(arr[index], index, arr);
- }
- }
-
- function _map(arr, iterator) {
- var index = -1,
- length = arr.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iterator(arr[index], index, arr);
- }
- return result;
- }
-
- function _range(count) {
- return _map(Array(count), function (v, i) { return i; });
- }
-
- function _reduce(arr, iterator, memo) {
- _arrayEach(arr, function (x, i, a) {
- memo = iterator(memo, x, i, a);
- });
- return memo;
- }
-
- function _forEachOf(object, iterator) {
- _arrayEach(_keys(object), function (key) {
- iterator(object[key], key);
- });
- }
-
- function _indexOf(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === item) return i;
- }
- return -1;
- }
-
- var _keys = Object.keys || function (obj) {
- var keys = [];
- for (var k in obj) {
- if (obj.hasOwnProperty(k)) {
- keys.push(k);
- }
- }
- return keys;
- };
-
- function _keyIterator(coll) {
- var i = -1;
- var len;
- var keys;
- if (_isArrayLike(coll)) {
- len = coll.length;
- return function next() {
- i++;
- return i < len ? i : null;
- };
- } else {
- keys = _keys(coll);
- len = keys.length;
- return function next() {
- i++;
- return i < len ? keys[i] : null;
- };
- }
- }
-
- // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
- // This accumulates the arguments passed into an array, after a given index.
- // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
- function _restParam(func, startIndex) {
- startIndex = startIndex == null ? func.length - 1 : +startIndex;
- return function() {
- var length = Math.max(arguments.length - startIndex, 0);
- var rest = Array(length);
- for (var index = 0; index < length; index++) {
- rest[index] = arguments[index + startIndex];
- }
- switch (startIndex) {
- case 0: return func.call(this, rest);
- case 1: return func.call(this, arguments[0], rest);
- }
- // Currently unused but handle cases outside of the switch statement:
- // var args = Array(startIndex + 1);
- // for (index = 0; index < startIndex; index++) {
- // args[index] = arguments[index];
- // }
- // args[startIndex] = rest;
- // return func.apply(this, args);
- };
- }
-
- function _withoutIndex(iterator) {
- return function (value, index, callback) {
- return iterator(value, callback);
- };
- }
-
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
-
- // capture the global reference to guard against fakeTimer mocks
- var _setImmediate = typeof setImmediate === 'function' && setImmediate;
-
- var _delay = _setImmediate ? function(fn) {
- // not a direct alias for IE10 compatibility
- _setImmediate(fn);
- } : function(fn) {
- setTimeout(fn, 0);
- };
-
- if (typeof process === 'object' && typeof process.nextTick === 'function') {
- async.nextTick = process.nextTick;
- } else {
- async.nextTick = _delay;
- }
- async.setImmediate = _setImmediate ? _delay : async.nextTick;
-
-
- async.forEach =
- async.each = function (arr, iterator, callback) {
- return async.eachOf(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachSeries =
- async.eachSeries = function (arr, iterator, callback) {
- return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
- };
-
-
- async.forEachLimit =
- async.eachLimit = function (arr, limit, iterator, callback) {
- return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachOf =
- async.eachOf = function (object, iterator, callback) {
- callback = _once(callback || noop);
- object = object || [];
-
- var iter = _keyIterator(object);
- var key, completed = 0;
-
- while ((key = iter()) != null) {
- completed += 1;
- iterator(object[key], key, only_once(done));
- }
-
- if (completed === 0) callback(null);
-
- function done(err) {
- completed--;
- if (err) {
- callback(err);
- }
- // Check key is null in case iterator isn't exhausted
- // and done resolved synchronously.
- else if (key === null && completed <= 0) {
- callback(null);
- }
- }
- };
-
- async.forEachOfSeries =
- async.eachOfSeries = function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- var key = nextKey();
- function iterate() {
- var sync = true;
- if (key === null) {
- return callback(null);
- }
- iterator(obj[key], key, only_once(function (err) {
- if (err) {
- callback(err);
- }
- else {
- key = nextKey();
- if (key === null) {
- return callback(null);
- } else {
- if (sync) {
- async.setImmediate(iterate);
- } else {
- iterate();
- }
- }
- }
- }));
- sync = false;
- }
- iterate();
- };
-
-
-
- async.forEachOfLimit =
- async.eachOfLimit = function (obj, limit, iterator, callback) {
- _eachOfLimit(limit)(obj, iterator, callback);
- };
-
- function _eachOfLimit(limit) {
-
- return function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- if (limit <= 0) {
- return callback(null);
- }
- var done = false;
- var running = 0;
- var errored = false;
-
- (function replenish () {
- if (done && running <= 0) {
- return callback(null);
- }
-
- while (running < limit && !errored) {
- var key = nextKey();
- if (key === null) {
- done = true;
- if (running <= 0) {
- callback(null);
- }
- return;
- }
- running += 1;
- iterator(obj[key], key, only_once(function (err) {
- running -= 1;
- if (err) {
- callback(err);
- errored = true;
- }
- else {
- replenish();
- }
- }));
- }
- })();
- };
- }
-
-
- function doParallel(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOf, obj, iterator, callback);
- };
- }
- function doParallelLimit(fn) {
- return function (obj, limit, iterator, callback) {
- return fn(_eachOfLimit(limit), obj, iterator, callback);
- };
- }
- function doSeries(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOfSeries, obj, iterator, callback);
- };
- }
-
- function _asyncMap(eachfn, arr, iterator, callback) {
- callback = _once(callback || noop);
- arr = arr || [];
- var results = _isArrayLike(arr) ? [] : {};
- eachfn(arr, function (value, index, callback) {
- iterator(value, function (err, v) {
- results[index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.map = doParallel(_asyncMap);
- async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = doParallelLimit(_asyncMap);
-
- // reduce only has a series version, as doing reduce in parallel won't
- // work in many situations.
- async.inject =
- async.foldl =
- async.reduce = function (arr, memo, iterator, callback) {
- async.eachOfSeries(arr, function (x, i, callback) {
- iterator(memo, x, function (err, v) {
- memo = v;
- callback(err);
- });
- }, function (err) {
- callback(err, memo);
- });
- };
-
- async.foldr =
- async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, identity).reverse();
- async.reduce(reversed, memo, iterator, callback);
- };
-
- async.transform = function (arr, memo, iterator, callback) {
- if (arguments.length === 3) {
- callback = iterator;
- iterator = memo;
- memo = _isArray(arr) ? [] : {};
- }
-
- async.eachOf(arr, function(v, k, cb) {
- iterator(memo, v, k, cb);
- }, function(err) {
- callback(err, memo);
- });
- };
-
- function _filter(eachfn, arr, iterator, callback) {
- var results = [];
- eachfn(arr, function (x, index, callback) {
- iterator(x, function (v) {
- if (v) {
- results.push({index: index, value: x});
- }
- callback();
- });
- }, function () {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- }
-
- async.select =
- async.filter = doParallel(_filter);
-
- async.selectLimit =
- async.filterLimit = doParallelLimit(_filter);
-
- async.selectSeries =
- async.filterSeries = doSeries(_filter);
-
- function _reject(eachfn, arr, iterator, callback) {
- _filter(eachfn, arr, function(value, cb) {
- iterator(value, function(v) {
- cb(!v);
- });
- }, callback);
- }
- async.reject = doParallel(_reject);
- async.rejectLimit = doParallelLimit(_reject);
- async.rejectSeries = doSeries(_reject);
-
- function _createTester(eachfn, check, getResult) {
- return function(arr, limit, iterator, cb) {
- function done() {
- if (cb) cb(getResult(false, void 0));
- }
- function iteratee(x, _, callback) {
- if (!cb) return callback();
- iterator(x, function (v) {
- if (cb && check(v)) {
- cb(getResult(true, x));
- cb = iterator = false;
- }
- callback();
- });
- }
- if (arguments.length > 3) {
- eachfn(arr, limit, iteratee, done);
- } else {
- cb = iterator;
- iterator = limit;
- eachfn(arr, iteratee, done);
- }
- };
- }
-
- async.any =
- async.some = _createTester(async.eachOf, toBool, identity);
-
- async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
-
- async.all =
- async.every = _createTester(async.eachOf, notId, notId);
-
- async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
-
- function _findGetResult(v, x) {
- return x;
- }
- async.detect = _createTester(async.eachOf, identity, _findGetResult);
- async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
- async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
-
- async.sortBy = function (arr, iterator, callback) {
- async.map(arr, function (x, callback) {
- iterator(x, function (err, criteria) {
- if (err) {
- callback(err);
- }
- else {
- callback(null, {value: x, criteria: criteria});
- }
- });
- }, function (err, results) {
- if (err) {
- return callback(err);
- }
- else {
- callback(null, _map(results.sort(comparator), function (x) {
- return x.value;
- }));
- }
-
- });
-
- function comparator(left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- }
- };
-
- async.auto = function (tasks, concurrency, callback) {
- if (typeof arguments[1] === 'function') {
- // concurrency is optional, shift the args.
- callback = concurrency;
- concurrency = null;
- }
- callback = _once(callback || noop);
- var keys = _keys(tasks);
- var remainingTasks = keys.length;
- if (!remainingTasks) {
- return callback(null);
- }
- if (!concurrency) {
- concurrency = remainingTasks;
- }
-
- var results = {};
- var runningTasks = 0;
-
- var listeners = [];
- function addListener(fn) {
- listeners.unshift(fn);
- }
- function removeListener(fn) {
- var idx = _indexOf(listeners, fn);
- if (idx >= 0) listeners.splice(idx, 1);
- }
- function taskComplete() {
- remainingTasks--;
- _arrayEach(listeners.slice(0), function (fn) {
- fn();
- });
- }
-
- addListener(function () {
- if (!remainingTasks) {
- callback(null, results);
- }
- });
-
- _arrayEach(keys, function (k) {
- var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = _restParam(function(err, args) {
- runningTasks--;
- if (args.length <= 1) {
- args = args[0];
- }
- if (err) {
- var safeResults = {};
- _forEachOf(results, function(val, rkey) {
- safeResults[rkey] = val;
- });
- safeResults[k] = args;
- callback(err, safeResults);
- }
- else {
- results[k] = args;
- async.setImmediate(taskComplete);
- }
- });
- var requires = task.slice(0, task.length - 1);
- // prevent dead-locks
- var len = requires.length;
- var dep;
- while (len--) {
- if (!(dep = tasks[requires[len]])) {
- throw new Error('Has inexistant dependency');
- }
- if (_isArray(dep) && _indexOf(dep, k) >= 0) {
- throw new Error('Has cyclic dependencies');
- }
- }
- function ready() {
- return runningTasks < concurrency && _reduce(requires, function (a, x) {
- return (a && results.hasOwnProperty(x));
- }, true) && !results.hasOwnProperty(k);
- }
- if (ready()) {
- runningTasks++;
- task[task.length - 1](taskCallback, results);
- }
- else {
- addListener(listener);
- }
- function listener() {
- if (ready()) {
- runningTasks++;
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- }
- });
- };
-
-
-
- async.retry = function(times, task, callback) {
- var DEFAULT_TIMES = 5;
- var DEFAULT_INTERVAL = 0;
-
- var attempts = [];
-
- var opts = {
- times: DEFAULT_TIMES,
- interval: DEFAULT_INTERVAL
- };
-
- function parseTimes(acc, t){
- if(typeof t === 'number'){
- acc.times = parseInt(t, 10) || DEFAULT_TIMES;
- } else if(typeof t === 'object'){
- acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
- acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
- } else {
- throw new Error('Unsupported argument type for \'times\': ' + typeof t);
- }
- }
-
- var length = arguments.length;
- if (length < 1 || length > 3) {
- throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
- } else if (length <= 2 && typeof times === 'function') {
- callback = task;
- task = times;
- }
- if (typeof times !== 'function') {
- parseTimes(opts, times);
- }
- opts.callback = callback;
- opts.task = task;
-
- function wrappedTask(wrappedCallback, wrappedResults) {
- function retryAttempt(task, finalAttempt) {
- return function(seriesCallback) {
- task(function(err, result){
- seriesCallback(!err || finalAttempt, {err: err, result: result});
- }, wrappedResults);
- };
- }
-
- function retryInterval(interval){
- return function(seriesCallback){
- setTimeout(function(){
- seriesCallback(null);
- }, interval);
- };
- }
-
- while (opts.times) {
-
- var finalAttempt = !(opts.times-=1);
- attempts.push(retryAttempt(opts.task, finalAttempt));
- if(!finalAttempt && opts.interval > 0){
- attempts.push(retryInterval(opts.interval));
- }
- }
-
- async.series(attempts, function(done, data){
- data = data[data.length - 1];
- (wrappedCallback || opts.callback)(data.err, data.result);
- });
- }
-
- // If a callback is passed, run this as a controll flow
- return opts.callback ? wrappedTask() : wrappedTask;
- };
-
- async.waterfall = function (tasks, callback) {
- callback = _once(callback || noop);
- if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
- }
- if (!tasks.length) {
- return callback();
- }
- function wrapIterator(iterator) {
- return _restParam(function (err, args) {
- if (err) {
- callback.apply(null, [err].concat(args));
- }
- else {
- var next = iterator.next();
- if (next) {
- args.push(wrapIterator(next));
- }
- else {
- args.push(callback);
- }
- ensureAsync(iterator).apply(null, args);
- }
- });
- }
- wrapIterator(async.iterator(tasks))();
- };
-
- function _parallel(eachfn, tasks, callback) {
- callback = callback || noop;
- var results = _isArrayLike(tasks) ? [] : {};
-
- eachfn(tasks, function (task, key, callback) {
- task(_restParam(function (err, args) {
- if (args.length <= 1) {
- args = args[0];
- }
- results[key] = args;
- callback(err);
- }));
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.parallel = function (tasks, callback) {
- _parallel(async.eachOf, tasks, callback);
- };
-
- async.parallelLimit = function(tasks, limit, callback) {
- _parallel(_eachOfLimit(limit), tasks, callback);
- };
-
- async.series = function(tasks, callback) {
- _parallel(async.eachOfSeries, tasks, callback);
- };
-
- async.iterator = function (tasks) {
- function makeCallback(index) {
- function fn() {
- if (tasks.length) {
- tasks[index].apply(null, arguments);
- }
- return fn.next();
- }
- fn.next = function () {
- return (index < tasks.length - 1) ? makeCallback(index + 1): null;
- };
- return fn;
- }
- return makeCallback(0);
- };
-
- async.apply = _restParam(function (fn, args) {
- return _restParam(function (callArgs) {
- return fn.apply(
- null, args.concat(callArgs)
- );
- });
- });
-
- 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);
- });
- }
- async.concat = doParallel(_concat);
- async.concatSeries = doSeries(_concat);
-
- async.whilst = function (test, iterator, callback) {
- callback = callback || noop;
- if (test()) {
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else if (test.apply(this, args)) {
- iterator(next);
- } else {
- callback.apply(null, [null].concat(args));
- }
- });
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- async.doWhilst = function (iterator, test, callback) {
- var calls = 0;
- return async.whilst(function() {
- return ++calls <= 1 || test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.until = function (test, iterator, callback) {
- return async.whilst(function() {
- return !test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.doUntil = function (iterator, test, callback) {
- return async.doWhilst(iterator, function() {
- return !test.apply(this, arguments);
- }, callback);
- };
-
- async.during = function (test, iterator, callback) {
- callback = callback || noop;
-
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else {
- args.push(check);
- test.apply(this, args);
- }
- });
-
- var check = function(err, truth) {
- if (err) {
- callback(err);
- } else if (truth) {
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- test(check);
- };
-
- async.doDuring = function (iterator, test, callback) {
- var calls = 0;
- async.during(function(next) {
- if (calls++ < 1) {
- next(null, true);
- } else {
- test.apply(this, arguments);
- }
- }, iterator, callback);
- };
-
- function _queue(worker, concurrency, payload) {
- if (concurrency == null) {
- concurrency = 1;
- }
- else if(concurrency === 0) {
- throw new Error('Concurrency must not be zero');
- }
- function _insert(q, data, pos, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0 && q.idle()) {
- // call drain immediately if there are no tasks
- return async.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);
- }
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- });
- async.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 && !removed) {
- workersList.splice(index, 1);
- removed = true;
- }
- });
-
- task.callback.apply(task, args);
- });
- if (q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- }
-
- var workers = 0;
- var workersList = [];
- var q = {
- tasks: [],
- concurrency: concurrency,
- payload: payload,
- saturated: noop,
- empty: noop,
- drain: 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 && workers < q.concurrency && q.tasks.length){
-
- var tasks = q.payload ?
- q.tasks.splice(0, q.payload) :
- q.tasks.splice(0, q.tasks.length);
-
- var data = _map(tasks, function (task) {
- return task.data;
- });
-
- if (q.tasks.length === 0) {
- q.empty();
- }
- workers += 1;
- workersList.push(tasks[0]);
- var cb = only_once(_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 <= resumeCount; w++) {
- async.setImmediate(q.process);
- }
- }
- };
- return q;
- }
-
- async.queue = function (worker, concurrency) {
- var q = _queue(function (items, cb) {
- worker(items[0], cb);
- }, concurrency, 1);
-
- return q;
- };
-
- async.priorityQueue = 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 < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
- }
- }
- return beg;
- }
-
- function _insert(q, data, priority, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : noop
- };
-
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
- }
-
- // Start with a normal queue
- var q = async.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;
- };
-
- async.cargo = function (worker, payload) {
- return _queue(worker, 1, payload);
- };
-
- function _console_fn(name) {
- return _restParam(function (fn, args) {
- fn.apply(null, args.concat([_restParam(function (err, args) {
- if (typeof console === 'object') {
- if (err) {
- if (console.error) {
- console.error(err);
- }
- }
- else if (console[name]) {
- _arrayEach(args, function (x) {
- console[name](x);
- });
- }
- }
- })]));
- });
- }
- async.log = _console_fn('log');
- async.dir = _console_fn('dir');
- /*async.info = _console_fn('info');
- async.warn = _console_fn('warn');
- async.error = _console_fn('error');*/
-
- async.memoize = function (fn, hasher) {
- var memo = {};
- var queues = {};
- hasher = hasher || identity;
- var memoized = _restParam(function memoized(args) {
- var callback = args.pop();
- var key = hasher.apply(null, args);
- if (key in memo) {
- async.setImmediate(function () {
- callback.apply(null, memo[key]);
- });
- }
- else if (key in queues) {
- queues[key].push(callback);
- }
- else {
- queues[key] = [callback];
- fn.apply(null, args.concat([_restParam(function (args) {
- memo[key] = args;
- var q = queues[key];
- delete queues[key];
- for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, args);
- }
- })]));
- }
- });
- memoized.memo = memo;
- memoized.unmemoized = fn;
- return memoized;
- };
-
- async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
- };
-
- function _times(mapper) {
- return function (count, iterator, callback) {
- mapper(_range(count), iterator, callback);
- };
- }
-
- async.times = _times(async.map);
- async.timesSeries = _times(async.mapSeries);
- async.timesLimit = function (count, limit, iterator, callback) {
- return async.mapLimit(_range(count), limit, iterator, callback);
- };
-
- async.seq = function (/* functions... */) {
- var fns = arguments;
- return _restParam(function (args) {
- var that = this;
-
- var callback = args[args.length - 1];
- if (typeof callback == 'function') {
- args.pop();
- } else {
- callback = noop;
- }
-
- async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
- cb(err, nextargs);
- })]));
- },
- function (err, results) {
- callback.apply(that, [err].concat(results));
- });
- });
- };
-
- async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
- };
-
-
- function _applyEach(eachfn) {
- return _restParam(function(fns, args) {
- var go = _restParam(function(args) {
- var that = this;
- var callback = args.pop();
- return eachfn(fns, function (fn, _, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- });
- if (args.length) {
- return go.apply(this, args);
- }
- else {
- return go;
- }
- });
- }
-
- async.applyEach = _applyEach(async.eachOf);
- async.applyEachSeries = _applyEach(async.eachOfSeries);
-
-
- async.forever = function (fn, callback) {
- var done = only_once(callback || noop);
- var task = ensureAsync(fn);
- function next(err) {
- if (err) {
- return done(err);
- }
- task(next);
- }
- next();
- };
-
- function ensureAsync(fn) {
- return _restParam(function (args) {
- var callback = args.pop();
- args.push(function () {
- var innerArgs = arguments;
- if (sync) {
- async.setImmediate(function () {
- callback.apply(null, innerArgs);
- });
- } else {
- callback.apply(null, innerArgs);
- }
- });
- var sync = true;
- fn.apply(this, args);
- sync = false;
- });
- }
-
- async.ensureAsync = ensureAsync;
-
- async.constant = _restParam(function(values) {
- var args = [null].concat(values);
- return function (callback) {
- return callback.apply(this, args);
- };
- });
-
- async.wrapSync =
- async.asyncify = function asyncify(func) {
- return _restParam(function (args) {
- var callback = args.pop();
- var result;
- try {
- result = func.apply(this, args);
- } catch (e) {
- return callback(e);
- }
- // if result is Promise object
- if (_isObject(result) && typeof result.then === "function") {
- result.then(function(value) {
- callback(null, value);
- })["catch"](function(err) {
- callback(err.message ? err : new Error(err));
- });
- } else {
- callback(null, result);
- }
- });
- };
-
- // Node.js
- if (typeof module === 'object' && module.exports) {
- module.exports = async;
- }
- // AMD / RequireJS
- else if (typeof define === 'function' && define.amd) {
- define([], function () {
- return async;
- });
- }
- // included directly via <script> tag
- else {
- root.async = async;
- }
-
-}());
diff --git a/lib/asyncify/.editorconfig b/lib/asyncify/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/asyncify/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/asyncify/.gitignore b/lib/asyncify/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/asyncify/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/asyncify/.jscsrc b/lib/asyncify/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/asyncify/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/asyncify/.jshintrc b/lib/asyncify/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/asyncify/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/asyncify/README.md b/lib/asyncify/README.md
new file mode 100644
index 0000000..75f97bd
--- /dev/null
+++ b/lib/asyncify/README.md
@@ -0,0 +1,13 @@
+# async.asyncify
+
+![Last version](https://img.shields.io/github/tag/async-js/async.asyncify.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.asyncify.svg?style=flat-square)](https://david-dm.org/async-js/async.asyncify)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.asyncify.svg?style=flat-square)](https://david-dm.org/async-js/async.asyncify#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.asyncify.svg?style=flat-square)](https://www.npmjs.org/package/async.asyncify)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#asyncify](https://github.com/async-js/async#async.asyncify) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/asyncify/index.js b/lib/asyncify/index.js
new file mode 100644
index 0000000..063d221
--- /dev/null
+++ b/lib/asyncify/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.asyncify');
diff --git a/lib/asyncify/package.json b/lib/asyncify/package.json
new file mode 100644
index 0000000..4068529
--- /dev/null
+++ b/lib/asyncify/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.asyncify",
+ "description": "async asyncifymethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.asyncify": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "asyncify"
+ ]
+}
diff --git a/lib/auto/.editorconfig b/lib/auto/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/auto/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/auto/.gitignore b/lib/auto/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/auto/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/auto/.jscsrc b/lib/auto/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/auto/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/auto/.jshintrc b/lib/auto/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/auto/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/auto/README.md b/lib/auto/README.md
new file mode 100644
index 0000000..2028ee5
--- /dev/null
+++ b/lib/auto/README.md
@@ -0,0 +1,13 @@
+# async.auto
+
+![Last version](https://img.shields.io/github/tag/async-js/async.auto.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.auto.svg?style=flat-square)](https://david-dm.org/async-js/async.auto)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.auto.svg?style=flat-square)](https://david-dm.org/async-js/async.auto#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.auto.svg?style=flat-square)](https://www.npmjs.org/package/async.auto)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#auto](https://github.com/async-js/async#async.auto) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/auto/index.js b/lib/auto/index.js
new file mode 100644
index 0000000..ec564e9
--- /dev/null
+++ b/lib/auto/index.js
@@ -0,0 +1,109 @@
+'use strict';
+
+var once = require('async.util.once');
+var noop = require('async.util.noop');
+var _keys = require('async.util.keys');
+var reduce = require('async.util.reduce');
+var indexOf = require('async.util.indexof');
+var isArray = require('async.util.isarray');
+var arrayEach = require('async.util.arrayeach');
+var restParam = require('async.util.restparam');
+var forEachOf = require('async.util.foreachof');
+var setImmediate = require('async.util.setimmediate');
+
+module.exports = function auto(tasks, concurrency, cb) {
+ if (typeof arguments[1] === 'function') {
+ // concurrency is optional, shift the args.
+ cb = concurrency;
+ concurrency = null;
+ }
+ cb = once(cb || noop);
+ var keys = _keys(tasks);
+ var remainingTasks = keys.length;
+ if (!remainingTasks) {
+ return cb(null);
+ }
+ if (!concurrency) {
+ concurrency = remainingTasks;
+ }
+
+ var results = {};
+ var runningTasks = 0;
+
+ var listeners = [];
+
+ function addListener(fn) {
+ listeners.unshift(fn);
+ }
+
+ function removeListener(fn) {
+ var idx = indexOf(listeners, fn);
+ if (idx >= 0) listeners.splice(idx, 1);
+ }
+
+ function taskComplete() {
+ remainingTasks--;
+ arrayEach(listeners.slice(0), function(fn) {
+ fn();
+ });
+ }
+
+ addListener(function() {
+ if (!remainingTasks) {
+ cb(null, results);
+ }
+ });
+
+ arrayEach(keys, function(k) {
+ var task = isArray(tasks[k]) ? tasks[k] : [tasks[k]];
+ var taskCallback = restParam(function(err, args) {
+ runningTasks--;
+ if (args.length <= 1) {
+ args = args[0];
+ }
+ if (err) {
+ var safeResults = {};
+ forEachOf(results, function(val, rkey) {
+ safeResults[rkey] = val;
+ });
+ safeResults[k] = args;
+ cb(err, safeResults);
+ } else {
+ results[k] = args;
+ setImmediate(taskComplete);
+ }
+ });
+ var requires = task.slice(0, task.length - 1);
+ // prevent dead-locks
+ var len = requires.length;
+ var dep;
+ while (len--) {
+ if (!(dep = tasks[requires[len]])) {
+ throw new Error('Has inexistant dependency');
+ }
+ if (isArray(dep) && indexOf(dep, k) >= 0) {
+ throw new Error('Has cyclic dependencies');
+ }
+ }
+
+ function ready() {
+ return runningTasks < concurrency && reduce(requires, function(a, x) {
+ return (a && results.hasOwnProperty(x));
+ }, true) && !results.hasOwnProperty(k);
+ }
+ if (ready()) {
+ runningTasks++;
+ task[task.length - 1](taskCallback, results);
+ } else {
+ addListener(listener);
+ }
+
+ function listener() {
+ if (ready()) {
+ runningTasks++;
+ removeListener(listener);
+ task[task.length - 1](taskCallback, results);
+ }
+ }
+ });
+};
diff --git a/lib/auto/package.json b/lib/auto/package.json
new file mode 100644
index 0000000..6fc0097
--- /dev/null
+++ b/lib/auto/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "async.auto",
+ "description": "async automethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.arrayeach": "0.5.2",
+ "async.util.foreachof": "0.5.2",
+ "async.util.indexof": "0.5.2",
+ "async.util.isarray": "0.5.2",
+ "async.util.keys": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.once": "0.5.2",
+ "async.util.reduce": "0.5.2",
+ "async.util.restparam": "0.5.2",
+ "async.util.setimmediate": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "auto"
+ ]
+}
diff --git a/lib/cargo/.editorconfig b/lib/cargo/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/cargo/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/cargo/.gitignore b/lib/cargo/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/cargo/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/cargo/.jscsrc b/lib/cargo/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/cargo/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/cargo/.jshintrc b/lib/cargo/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/cargo/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/cargo/README.md b/lib/cargo/README.md
new file mode 100644
index 0000000..68835cc
--- /dev/null
+++ b/lib/cargo/README.md
@@ -0,0 +1,13 @@
+# async.cargo
+
+![Last version](https://img.shields.io/github/tag/async-js/async.cargo.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.cargo.svg?style=flat-square)](https://david-dm.org/async-js/async.cargo)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.cargo.svg?style=flat-square)](https://david-dm.org/async-js/async.cargo#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.cargo.svg?style=flat-square)](https://www.npmjs.org/package/async.cargo)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#cargo](https://github.com/async-js/async#async.cargo) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/cargo/index.js b/lib/cargo/index.js
new file mode 100644
index 0000000..fdaa80c
--- /dev/null
+++ b/lib/cargo/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var queue = require('async.util.queue');
+
+module.exports = function cargo(worker, payload) {
+ return queue(worker, 1, payload);
+};
diff --git a/lib/cargo/package.json b/lib/cargo/package.json
new file mode 100644
index 0000000..c2efd29
--- /dev/null
+++ b/lib/cargo/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.cargo",
+ "description": "async cargomethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.queue": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "cargo"
+ ]
+}
diff --git a/lib/compose/.editorconfig b/lib/compose/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/compose/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/compose/.gitignore b/lib/compose/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/compose/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/compose/.jscsrc b/lib/compose/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/compose/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/compose/.jshintrc b/lib/compose/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/compose/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/compose/README.md b/lib/compose/README.md
new file mode 100644
index 0000000..dfdaaed
--- /dev/null
+++ b/lib/compose/README.md
@@ -0,0 +1,13 @@
+# async.compose
+
+![Last version](https://img.shields.io/github/tag/async-js/async.compose.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.compose.svg?style=flat-square)](https://david-dm.org/async-js/async.compose)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.compose.svg?style=flat-square)](https://david-dm.org/async-js/async.compose#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.compose.svg?style=flat-square)](https://www.npmjs.org/package/async.compose)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#compose](https://github.com/async-js/async#async.compose) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/compose/index.js b/lib/compose/index.js
new file mode 100644
index 0000000..4f81825
--- /dev/null
+++ b/lib/compose/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var seq = require('async.seq');
+
+module.exports = function compose(/* functions... */) {
+ return seq.apply(null, Array.prototype.reverse.call(arguments));
+};
diff --git a/lib/compose/package.json b/lib/compose/package.json
new file mode 100644
index 0000000..bfa2ea8
--- /dev/null
+++ b/lib/compose/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.compose",
+ "description": "async composemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.seq": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "compose"
+ ]
+}
diff --git a/lib/concat/.editorconfig b/lib/concat/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/concat/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/concat/.gitignore b/lib/concat/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/concat/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/concat/.jscsrc b/lib/concat/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/concat/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/concat/.jshintrc b/lib/concat/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/concat/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/concat/README.md b/lib/concat/README.md
new file mode 100644
index 0000000..62c4b62
--- /dev/null
+++ b/lib/concat/README.md
@@ -0,0 +1,13 @@
+# async.concat
+
+![Last version](https://img.shields.io/github/tag/async-js/async.concat.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.concat.svg?style=flat-square)](https://david-dm.org/async-js/async.concat)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.concat.svg?style=flat-square)](https://david-dm.org/async-js/async.concat#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.concat.svg?style=flat-square)](https://www.npmjs.org/package/async.concat)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#concat](https://github.com/async-js/async#async.concat) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/concat/index.js b/lib/concat/index.js
new file mode 100644
index 0000000..3ff5e34
--- /dev/null
+++ b/lib/concat/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var concat = require('async.util.concat');
+var doParallel = require('async.util.doparallel');
+
+module.exports = doParallel(concat);
diff --git a/lib/concat/package.json b/lib/concat/package.json
new file mode 100644
index 0000000..091ff26
--- /dev/null
+++ b/lib/concat/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.concat",
+ "description": "async concatmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.concat": "0.5.2",
+ "async.util.doparallel": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "concat"
+ ]
+}
diff --git a/lib/concatseries/.editorconfig b/lib/concatseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/concatseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/concatseries/.gitignore b/lib/concatseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/concatseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/concatseries/.jscsrc b/lib/concatseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/concatseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/concatseries/.jshintrc b/lib/concatseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/concatseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/concatseries/README.md b/lib/concatseries/README.md
new file mode 100644
index 0000000..9264b89
--- /dev/null
+++ b/lib/concatseries/README.md
@@ -0,0 +1,13 @@
+# async.concatseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.concatseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.concatseries.svg?style=flat-square)](https://david-dm.org/async-js/async.concatseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.concatseries.svg?style=flat-square)](https://david-dm.org/async-js/async.concatseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.concatseries.svg?style=flat-square)](https://www.npmjs.org/package/async.concatseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#concatseries](https://github.com/async-js/async#async.concatseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/concatseries/index.js b/lib/concatseries/index.js
new file mode 100644
index 0000000..657246e
--- /dev/null
+++ b/lib/concatseries/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var concat = require('async.util.concat');
+var doSeries = require('async.util.doseries');
+
+module.exports = doSeries(concat);
diff --git a/lib/concatseries/package.json b/lib/concatseries/package.json
new file mode 100644
index 0000000..632b3cc
--- /dev/null
+++ b/lib/concatseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.concatseries",
+ "description": "async concatseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.concat": "0.5.2",
+ "async.util.doseries": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "concatseries"
+ ]
+}
diff --git a/lib/constant/.editorconfig b/lib/constant/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/constant/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/constant/.gitignore b/lib/constant/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/constant/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/constant/.jscsrc b/lib/constant/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/constant/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/constant/.jshintrc b/lib/constant/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/constant/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/constant/README.md b/lib/constant/README.md
new file mode 100644
index 0000000..18b7b65
--- /dev/null
+++ b/lib/constant/README.md
@@ -0,0 +1,13 @@
+# async.constant
+
+![Last version](https://img.shields.io/github/tag/async-js/async.constant.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.constant.svg?style=flat-square)](https://david-dm.org/async-js/async.constant)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.constant.svg?style=flat-square)](https://david-dm.org/async-js/async.constant#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.constant.svg?style=flat-square)](https://www.npmjs.org/package/async.constant)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#constant](https://github.com/async-js/async#async.constant) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/constant/index.js b/lib/constant/index.js
new file mode 100644
index 0000000..6b9d5bc
--- /dev/null
+++ b/lib/constant/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var restParam = require('async.util.restparam');
+
+module.exports = restParam(function(values) {
+ var args = [null].concat(values);
+ return function (cb) {
+ return cb.apply(this, args);
+ };
+});
diff --git a/lib/constant/package.json b/lib/constant/package.json
new file mode 100644
index 0000000..81d1349
--- /dev/null
+++ b/lib/constant/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.constant",
+ "description": "async constantmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "constant"
+ ]
+}
diff --git a/lib/detect/.editorconfig b/lib/detect/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/detect/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/detect/.gitignore b/lib/detect/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/detect/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/detect/.jscsrc b/lib/detect/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/detect/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/detect/.jshintrc b/lib/detect/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/detect/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/detect/README.md b/lib/detect/README.md
new file mode 100644
index 0000000..3d6cb65
--- /dev/null
+++ b/lib/detect/README.md
@@ -0,0 +1,13 @@
+# async.detect
+
+![Last version](https://img.shields.io/github/tag/async-js/async.detect.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.detect.svg?style=flat-square)](https://david-dm.org/async-js/async.detect)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.detect.svg?style=flat-square)](https://david-dm.org/async-js/async.detect#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.detect.svg?style=flat-square)](https://www.npmjs.org/package/async.detect)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#detect](https://github.com/async-js/async#async.detect) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/detect/index.js b/lib/detect/index.js
new file mode 100644
index 0000000..97383c0
--- /dev/null
+++ b/lib/detect/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var identity = require('async.util.identity');
+var createTester = require('async.util.createtester');
+var findGetResult = require('async.util.findgetresult');
+
+module.exports = createTester(eachOf, identity, findGetResult);
diff --git a/lib/detect/package.json b/lib/detect/package.json
new file mode 100644
index 0000000..81a36d2
--- /dev/null
+++ b/lib/detect/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.detect",
+ "description": "async detectmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.findgetresult": "0.5.2",
+ "async.util.identity": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "detect"
+ ]
+}
diff --git a/lib/detectlimit/.editorconfig b/lib/detectlimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/detectlimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/detectlimit/.gitignore b/lib/detectlimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/detectlimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/detectlimit/.jscsrc b/lib/detectlimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/detectlimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/detectlimit/.jshintrc b/lib/detectlimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/detectlimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/detectlimit/README.md b/lib/detectlimit/README.md
new file mode 100644
index 0000000..979a3bc
--- /dev/null
+++ b/lib/detectlimit/README.md
@@ -0,0 +1,13 @@
+# async.detectlimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.detectlimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.detectlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.detectlimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.detectlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.detectlimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.detectlimit.svg?style=flat-square)](https://www.npmjs.org/package/async.detectlimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#detectlimit](https://github.com/async-js/async#async.detectlimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/detectlimit/index.js b/lib/detectlimit/index.js
new file mode 100644
index 0000000..a5e21cf
--- /dev/null
+++ b/lib/detectlimit/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var identity = require('async.util.identity');
+var eachOfLimit = require('async.eachoflimit');
+var createTester = require('async.util.createtester');
+var findGetResult = require('async.util.findgetresult');
+
+module.exports = createTester(eachOfLimit, identity, findGetResult);
diff --git a/lib/detectlimit/package.json b/lib/detectlimit/package.json
new file mode 100644
index 0000000..72892ca
--- /dev/null
+++ b/lib/detectlimit/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.detectlimit",
+ "description": "async detectlimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachoflimit": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.findgetresult": "0.5.2",
+ "async.util.identity": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "detectlimit"
+ ]
+}
diff --git a/lib/detectseries/.editorconfig b/lib/detectseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/detectseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/detectseries/.gitignore b/lib/detectseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/detectseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/detectseries/.jscsrc b/lib/detectseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/detectseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/detectseries/.jshintrc b/lib/detectseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/detectseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/detectseries/README.md b/lib/detectseries/README.md
new file mode 100644
index 0000000..3cd78ab
--- /dev/null
+++ b/lib/detectseries/README.md
@@ -0,0 +1,13 @@
+# async.detectseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.detectseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.detectseries.svg?style=flat-square)](https://david-dm.org/async-js/async.detectseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.detectseries.svg?style=flat-square)](https://david-dm.org/async-js/async.detectseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.detectseries.svg?style=flat-square)](https://www.npmjs.org/package/async.detectseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#detectseries](https://github.com/async-js/async#async.detectseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/detectseries/index.js b/lib/detectseries/index.js
new file mode 100644
index 0000000..29ecab2
--- /dev/null
+++ b/lib/detectseries/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var identity = require('async.util.identity');
+var eachOfSeries = require('async.eachofseries');
+var createTester = require('async.util.createtester');
+var findGetResult = require('async.util.findgetresult');
+
+module.exports = createTester(eachOfSeries, identity, findGetResult);
diff --git a/lib/detectseries/package.json b/lib/detectseries/package.json
new file mode 100644
index 0000000..4b52f3b
--- /dev/null
+++ b/lib/detectseries/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.detectseries",
+ "description": "async detectseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachofseries": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.findgetresult": "0.5.2",
+ "async.util.identity": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "detectseries"
+ ]
+}
diff --git a/lib/dir/.editorconfig b/lib/dir/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/dir/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/dir/.gitignore b/lib/dir/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/dir/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/dir/.jscsrc b/lib/dir/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/dir/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/dir/.jshintrc b/lib/dir/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/dir/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/dir/README.md b/lib/dir/README.md
new file mode 100644
index 0000000..286d9cf
--- /dev/null
+++ b/lib/dir/README.md
@@ -0,0 +1,13 @@
+# async.dir
+
+![Last version](https://img.shields.io/github/tag/async-js/async.dir.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.dir.svg?style=flat-square)](https://david-dm.org/async-js/async.dir)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.dir.svg?style=flat-square)](https://david-dm.org/async-js/async.dir#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.dir.svg?style=flat-square)](https://www.npmjs.org/package/async.dir)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#dir](https://github.com/async-js/async#async.dir) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/dir/index.js b/lib/dir/index.js
new file mode 100644
index 0000000..14d004f
--- /dev/null
+++ b/lib/dir/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.consolefn')('dir');
diff --git a/lib/dir/package.json b/lib/dir/package.json
new file mode 100644
index 0000000..f2a9726
--- /dev/null
+++ b/lib/dir/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.dir",
+ "description": "async dirmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.consolefn": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "dir"
+ ]
+}
diff --git a/lib/doduring/.editorconfig b/lib/doduring/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/doduring/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/doduring/.gitignore b/lib/doduring/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/doduring/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/doduring/.jscsrc b/lib/doduring/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/doduring/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/doduring/.jshintrc b/lib/doduring/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/doduring/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/doduring/README.md b/lib/doduring/README.md
new file mode 100644
index 0000000..ac0e0d4
--- /dev/null
+++ b/lib/doduring/README.md
@@ -0,0 +1,13 @@
+# async.doduring
+
+![Last version](https://img.shields.io/github/tag/async-js/async.doduring.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.doduring.svg?style=flat-square)](https://david-dm.org/async-js/async.doduring)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.doduring.svg?style=flat-square)](https://david-dm.org/async-js/async.doduring#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.doduring.svg?style=flat-square)](https://www.npmjs.org/package/async.doduring)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#doduring](https://github.com/async-js/async#async.doduring) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/doduring/index.js b/lib/doduring/index.js
new file mode 100644
index 0000000..211103c
--- /dev/null
+++ b/lib/doduring/index.js
@@ -0,0 +1,12 @@
+'use strict';
+
+var during = require('async.during');
+
+module.exports = function doDuring(iterator, test, cb) {
+ var calls = 0;
+
+ during(function(next) {
+ if (calls++ < 1) return next(null, true);
+ test.apply(this, arguments);
+ }, iterator, cb);
+};
diff --git a/lib/doduring/package.json b/lib/doduring/package.json
new file mode 100644
index 0000000..a0c2a99
--- /dev/null
+++ b/lib/doduring/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.doduring",
+ "description": "async doduringmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.during": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "doduring"
+ ]
+}
diff --git a/lib/dountil/.editorconfig b/lib/dountil/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/dountil/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/dountil/.gitignore b/lib/dountil/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/dountil/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/dountil/.jscsrc b/lib/dountil/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/dountil/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/dountil/.jshintrc b/lib/dountil/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/dountil/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/dountil/README.md b/lib/dountil/README.md
new file mode 100644
index 0000000..ec915cf
--- /dev/null
+++ b/lib/dountil/README.md
@@ -0,0 +1,13 @@
+# async.dountil
+
+![Last version](https://img.shields.io/github/tag/async-js/async.dountil.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.dountil.svg?style=flat-square)](https://david-dm.org/async-js/async.dountil)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.dountil.svg?style=flat-square)](https://david-dm.org/async-js/async.dountil#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.dountil.svg?style=flat-square)](https://www.npmjs.org/package/async.dountil)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#dountil](https://github.com/async-js/async#async.dountil) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/dountil/index.js b/lib/dountil/index.js
new file mode 100644
index 0000000..7a9b0e8
--- /dev/null
+++ b/lib/dountil/index.js
@@ -0,0 +1,9 @@
+'use strict';
+
+var doWhilst = require('async.dowhilst');
+
+module.exports = function doUntil(iterator, test, cb) {
+ return doWhilst(iterator, function() {
+ return !test.apply(this, arguments);
+ }, cb);
+};
diff --git a/lib/dountil/package.json b/lib/dountil/package.json
new file mode 100644
index 0000000..3be22ff
--- /dev/null
+++ b/lib/dountil/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.dountil",
+ "description": "async dountilmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.dowhilst": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "dountil"
+ ]
+}
diff --git a/lib/dowhilst/.editorconfig b/lib/dowhilst/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/dowhilst/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/dowhilst/.gitignore b/lib/dowhilst/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/dowhilst/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/dowhilst/.jscsrc b/lib/dowhilst/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/dowhilst/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/dowhilst/.jshintrc b/lib/dowhilst/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/dowhilst/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/dowhilst/README.md b/lib/dowhilst/README.md
new file mode 100644
index 0000000..8b5c027
--- /dev/null
+++ b/lib/dowhilst/README.md
@@ -0,0 +1,13 @@
+# async.dowhilst
+
+![Last version](https://img.shields.io/github/tag/async-js/async.dowhilst.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.dowhilst.svg?style=flat-square)](https://david-dm.org/async-js/async.dowhilst)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.dowhilst.svg?style=flat-square)](https://david-dm.org/async-js/async.dowhilst#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.dowhilst.svg?style=flat-square)](https://www.npmjs.org/package/async.dowhilst)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#dowhilst](https://github.com/async-js/async#async.dowhilst) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/dowhilst/index.js b/lib/dowhilst/index.js
new file mode 100644
index 0000000..f28c0cc
--- /dev/null
+++ b/lib/dowhilst/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var whilst = require('async.whilst');
+
+module.exports = function doWhilst(iterator, test, cb) {
+ var calls = 0;
+ return whilst(function() {
+ return ++calls <= 1 || test.apply(this, arguments);
+ }, iterator, cb);
+};
diff --git a/lib/dowhilst/package.json b/lib/dowhilst/package.json
new file mode 100644
index 0000000..4717ae1
--- /dev/null
+++ b/lib/dowhilst/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.dowhilst",
+ "description": "async dowhilstmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.whilst": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "dowhilst"
+ ]
+}
diff --git a/lib/during/.editorconfig b/lib/during/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/during/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/during/.gitignore b/lib/during/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/during/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/during/.jscsrc b/lib/during/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/during/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/during/.jshintrc b/lib/during/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/during/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/during/README.md b/lib/during/README.md
new file mode 100644
index 0000000..81071dc
--- /dev/null
+++ b/lib/during/README.md
@@ -0,0 +1,13 @@
+# async.during
+
+![Last version](https://img.shields.io/github/tag/async-js/async.during.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.during.svg?style=flat-square)](https://david-dm.org/async-js/async.during)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.during.svg?style=flat-square)](https://david-dm.org/async-js/async.during#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.during.svg?style=flat-square)](https://www.npmjs.org/package/async.during)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#during](https://github.com/async-js/async#async.during) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/during/index.js b/lib/during/index.js
new file mode 100644
index 0000000..67b6e44
--- /dev/null
+++ b/lib/during/index.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var noop = require('async.util.noop');
+var restParam = require('async.util.restparam');
+
+module.exports = function during(test, iterator, cb) {
+ cb = cb || noop;
+
+ var next = restParam(function(err, args) {
+ if (err) {
+ cb(err);
+ } else {
+ args.push(check);
+ test.apply(this, args);
+ }
+ });
+
+ var check = function(err, truth) {
+ if (err) return cb(err);
+ if (!truth) return cb(null);
+ iterator(next);
+ };
+
+ test(check);
+};
diff --git a/lib/during/package.json b/lib/during/package.json
new file mode 100644
index 0000000..a2093ca
--- /dev/null
+++ b/lib/during/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.during",
+ "description": "async duringmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.noop": "0.5.2",
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "during"
+ ]
+}
diff --git a/lib/each/.editorconfig b/lib/each/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/each/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/each/.gitignore b/lib/each/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/each/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/each/.jscsrc b/lib/each/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/each/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/each/.jshintrc b/lib/each/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/each/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/each/README.md b/lib/each/README.md
new file mode 100644
index 0000000..07f3e36
--- /dev/null
+++ b/lib/each/README.md
@@ -0,0 +1,13 @@
+# async.each
+
+![Last version](https://img.shields.io/github/tag/async-js/async.each.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.each.svg?style=flat-square)](https://david-dm.org/async-js/async.each)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.each.svg?style=flat-square)](https://david-dm.org/async-js/async.each#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.each.svg?style=flat-square)](https://www.npmjs.org/package/async.each)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#each](https://github.com/async-js/async#async.each) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/each/index.js b/lib/each/index.js
new file mode 100644
index 0000000..39a10ff
--- /dev/null
+++ b/lib/each/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var withoutIndex = require('async.util.withoutindex');
+
+module.exports = function each(arr, iterator, cb) {
+ return eachOf(arr, withoutIndex(iterator), cb);
+};
diff --git a/lib/each/package.json b/lib/each/package.json
new file mode 100644
index 0000000..61bb1d2
--- /dev/null
+++ b/lib/each/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.each",
+ "description": "async eachmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.withoutindex": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "each"
+ ]
+}
diff --git a/lib/eachlimit/.editorconfig b/lib/eachlimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/eachlimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/eachlimit/.gitignore b/lib/eachlimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/eachlimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/eachlimit/.jscsrc b/lib/eachlimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/eachlimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/eachlimit/.jshintrc b/lib/eachlimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/eachlimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/eachlimit/README.md b/lib/eachlimit/README.md
new file mode 100644
index 0000000..a798125
--- /dev/null
+++ b/lib/eachlimit/README.md
@@ -0,0 +1,13 @@
+# async.eachlimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.eachlimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.eachlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.eachlimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.eachlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.eachlimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.eachlimit.svg?style=flat-square)](https://www.npmjs.org/package/async.eachlimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#eachlimit](https://github.com/async-js/async#async.eachlimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/eachlimit/index.js b/lib/eachlimit/index.js
new file mode 100644
index 0000000..5e11750
--- /dev/null
+++ b/lib/eachlimit/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOfLimit = require('async.util.eachoflimit');
+var withoutIndex = require('async.util.withoutindex');
+
+module.exports = function eachLimit(arr, limit, iterator, cb) {
+ return eachOfLimit(limit)(arr, withoutIndex(iterator), cb);
+};
diff --git a/lib/eachlimit/package.json b/lib/eachlimit/package.json
new file mode 100644
index 0000000..d800da7
--- /dev/null
+++ b/lib/eachlimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.eachlimit",
+ "description": "async eachlimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.eachoflimit": "0.5.2",
+ "async.util.withoutindex": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "eachlimit"
+ ]
+}
diff --git a/lib/eachof/.editorconfig b/lib/eachof/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/eachof/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/eachof/.gitignore b/lib/eachof/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/eachof/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/eachof/.jscsrc b/lib/eachof/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/eachof/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/eachof/.jshintrc b/lib/eachof/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/eachof/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/eachof/README.md b/lib/eachof/README.md
new file mode 100644
index 0000000..122cbdb
--- /dev/null
+++ b/lib/eachof/README.md
@@ -0,0 +1,13 @@
+# async.eachof
+
+![Last version](https://img.shields.io/github/tag/async-js/async.eachof.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.eachof.svg?style=flat-square)](https://david-dm.org/async-js/async.eachof)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.eachof.svg?style=flat-square)](https://david-dm.org/async-js/async.eachof#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.eachof.svg?style=flat-square)](https://www.npmjs.org/package/async.eachof)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#eachof](https://github.com/async-js/async#async.eachof) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/eachof/index.js b/lib/eachof/index.js
new file mode 100644
index 0000000..6374b22
--- /dev/null
+++ b/lib/eachof/index.js
@@ -0,0 +1,33 @@
+'use strict';
+
+var once = require('async.util.once');
+var noop = require('async.util.noop');
+var onlyOnce = require('async.util.onlyonce');
+var keyIterator = require('async.util.keyiterator');
+
+module.exports = function eachOf(object, iterator, callback) {
+ callback = once(callback || noop);
+ object = object || [];
+
+ var iter = keyIterator(object);
+ var key, completed = 0;
+
+ while ((key = iter()) != null) {
+ completed += 1;
+ iterator(object[key], key, onlyOnce(done));
+ }
+
+ if (completed === 0) callback(null);
+
+ function done(err) {
+ completed--;
+ if (err) {
+ callback(err);
+ }
+ // Check key is null in case iterator isn't exhausted
+ // and done resolved synchronously.
+ else if (key === null && completed <= 0) {
+ callback(null);
+ }
+ }
+};
diff --git a/lib/eachof/package.json b/lib/eachof/package.json
new file mode 100644
index 0000000..e697e4b
--- /dev/null
+++ b/lib/eachof/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.eachof",
+ "description": "async eachofmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.keyiterator": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.once": "0.5.2",
+ "async.util.onlyonce": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "eachof"
+ ]
+}
diff --git a/lib/eachoflimit/.editorconfig b/lib/eachoflimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/eachoflimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/eachoflimit/.gitignore b/lib/eachoflimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/eachoflimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/eachoflimit/.jscsrc b/lib/eachoflimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/eachoflimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/eachoflimit/.jshintrc b/lib/eachoflimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/eachoflimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/eachoflimit/README.md b/lib/eachoflimit/README.md
new file mode 100644
index 0000000..fadb907
--- /dev/null
+++ b/lib/eachoflimit/README.md
@@ -0,0 +1,13 @@
+# async.eachoflimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.eachoflimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.eachoflimit.svg?style=flat-square)](https://david-dm.org/async-js/async.eachoflimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.eachoflimit.svg?style=flat-square)](https://david-dm.org/async-js/async.eachoflimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.eachoflimit.svg?style=flat-square)](https://www.npmjs.org/package/async.eachoflimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#eachoflimit](https://github.com/async-js/async#async.eachoflimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/eachoflimit/index.js b/lib/eachoflimit/index.js
new file mode 100644
index 0000000..fe4574d
--- /dev/null
+++ b/lib/eachoflimit/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var _eachOfLimit = require('async.util.eachoflimit');
+
+module.exports = function eachOfLimit(obj, limit, iterator, cb) {
+ _eachOfLimit(limit)(obj, iterator, cb);
+};
diff --git a/lib/eachoflimit/package.json b/lib/eachoflimit/package.json
new file mode 100644
index 0000000..f13e974
--- /dev/null
+++ b/lib/eachoflimit/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.eachoflimit",
+ "description": "async eachoflimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.eachoflimit": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "eachoflimit"
+ ]
+}
diff --git a/lib/eachofseries/.editorconfig b/lib/eachofseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/eachofseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/eachofseries/.gitignore b/lib/eachofseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/eachofseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/eachofseries/.jscsrc b/lib/eachofseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/eachofseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/eachofseries/.jshintrc b/lib/eachofseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/eachofseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/eachofseries/README.md b/lib/eachofseries/README.md
new file mode 100644
index 0000000..848103c
--- /dev/null
+++ b/lib/eachofseries/README.md
@@ -0,0 +1,13 @@
+# async.eachofseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.eachofseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.eachofseries.svg?style=flat-square)](https://david-dm.org/async-js/async.eachofseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.eachofseries.svg?style=flat-square)](https://david-dm.org/async-js/async.eachofseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.eachofseries.svg?style=flat-square)](https://www.npmjs.org/package/async.eachofseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#eachofseries](https://github.com/async-js/async#async.eachofseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/eachofseries/index.js b/lib/eachofseries/index.js
new file mode 100644
index 0000000..f7e9450
--- /dev/null
+++ b/lib/eachofseries/index.js
@@ -0,0 +1,39 @@
+'use strict';
+
+var once = require('async.util.once');
+var noop = require('async.util.noop');
+var onlyOnce = require('async.util.onlyonce');
+var keyIterator = require('async.util.keyiterator');
+var setImmediate = require('async.util.setimmediate');
+
+module.exports = function eachOfSeries(obj, iterator, callback) {
+ callback = once(callback || noop);
+ obj = obj || [];
+ var nextKey = keyIterator(obj);
+ var key = nextKey();
+
+ function iterate() {
+ var sync = true;
+ if (key === null) {
+ return callback(null);
+ }
+ iterator(obj[key], key, onlyOnce(function(err) {
+ if (err) {
+ callback(err);
+ } else {
+ key = nextKey();
+ if (key === null) {
+ return callback(null);
+ } else {
+ if (sync) {
+ setImmediate(iterate);
+ } else {
+ iterate();
+ }
+ }
+ }
+ }));
+ sync = false;
+ }
+ iterate();
+};
diff --git a/lib/eachofseries/package.json b/lib/eachofseries/package.json
new file mode 100644
index 0000000..b648b7f
--- /dev/null
+++ b/lib/eachofseries/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "async.eachofseries",
+ "description": "async eachofseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.keyiterator": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.once": "0.5.2",
+ "async.util.onlyonce": "0.5.2",
+ "async.util.setimmediate": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "eachofseries"
+ ]
+}
diff --git a/lib/eachseries/.editorconfig b/lib/eachseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/eachseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/eachseries/.gitignore b/lib/eachseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/eachseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/eachseries/.jscsrc b/lib/eachseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/eachseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/eachseries/.jshintrc b/lib/eachseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/eachseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/eachseries/README.md b/lib/eachseries/README.md
new file mode 100644
index 0000000..47c1e1b
--- /dev/null
+++ b/lib/eachseries/README.md
@@ -0,0 +1,13 @@
+# async.eachseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.eachseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.eachseries.svg?style=flat-square)](https://david-dm.org/async-js/async.eachseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.eachseries.svg?style=flat-square)](https://david-dm.org/async-js/async.eachseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.eachseries.svg?style=flat-square)](https://www.npmjs.org/package/async.eachseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#eachseries](https://github.com/async-js/async#async.eachseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/eachseries/index.js b/lib/eachseries/index.js
new file mode 100644
index 0000000..6cbdb7f
--- /dev/null
+++ b/lib/eachseries/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOfSeries = require('async.eachofseries');
+var withoutIndex = require('async.util.withoutindex');
+
+module.exports = function eachSeries(arr, iterator, cb) {
+ return eachOfSeries(arr, withoutIndex(iterator), cb);
+};
diff --git a/lib/eachseries/package.json b/lib/eachseries/package.json
new file mode 100644
index 0000000..c7e9e64
--- /dev/null
+++ b/lib/eachseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.eachseries",
+ "description": "async eachseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachofseries": "0.5.2",
+ "async.util.withoutindex": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "eachseries"
+ ]
+}
diff --git a/lib/ensureasync/.editorconfig b/lib/ensureasync/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/ensureasync/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/ensureasync/.gitignore b/lib/ensureasync/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/ensureasync/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/ensureasync/.jscsrc b/lib/ensureasync/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/ensureasync/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/ensureasync/.jshintrc b/lib/ensureasync/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/ensureasync/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/ensureasync/README.md b/lib/ensureasync/README.md
new file mode 100644
index 0000000..a3ce8bf
--- /dev/null
+++ b/lib/ensureasync/README.md
@@ -0,0 +1,13 @@
+# async.ensureasync
+
+![Last version](https://img.shields.io/github/tag/async-js/async.ensureasync.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.ensureasync.svg?style=flat-square)](https://david-dm.org/async-js/async.ensureasync)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.ensureasync.svg?style=flat-square)](https://david-dm.org/async-js/async.ensureasync#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.ensureasync.svg?style=flat-square)](https://www.npmjs.org/package/async.ensureasync)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#ensureasync](https://github.com/async-js/async#async.ensureasync) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/ensureasync/index.js b/lib/ensureasync/index.js
new file mode 100644
index 0000000..0155da3
--- /dev/null
+++ b/lib/ensureasync/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.ensureasync');
diff --git a/lib/ensureasync/package.json b/lib/ensureasync/package.json
new file mode 100644
index 0000000..9e18b2e
--- /dev/null
+++ b/lib/ensureasync/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.ensureasync",
+ "description": "async ensureasyncmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.ensureasync": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "ensureasync"
+ ]
+}
diff --git a/lib/every/.editorconfig b/lib/every/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/every/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/every/.gitignore b/lib/every/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/every/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/every/.jscsrc b/lib/every/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/every/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/every/.jshintrc b/lib/every/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/every/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/every/README.md b/lib/every/README.md
new file mode 100644
index 0000000..ddbd59f
--- /dev/null
+++ b/lib/every/README.md
@@ -0,0 +1,13 @@
+# async.every
+
+![Last version](https://img.shields.io/github/tag/async-js/async.every.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.every.svg?style=flat-square)](https://david-dm.org/async-js/async.every)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.every.svg?style=flat-square)](https://david-dm.org/async-js/async.every#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.every.svg?style=flat-square)](https://www.npmjs.org/package/async.every)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#every](https://github.com/async-js/async#async.every) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/every/index.js b/lib/every/index.js
new file mode 100644
index 0000000..f348ddf
--- /dev/null
+++ b/lib/every/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var notId = require('async.util.notid');
+var createTester = require('async.util.createtester');
+
+module.exports = createTester(eachOf, notId, notId);
diff --git a/lib/every/package.json b/lib/every/package.json
new file mode 100644
index 0000000..512ec16
--- /dev/null
+++ b/lib/every/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.every",
+ "description": "async everymethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.notid": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "every"
+ ]
+}
diff --git a/lib/everylimit/.editorconfig b/lib/everylimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/everylimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/everylimit/.gitignore b/lib/everylimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/everylimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/everylimit/.jscsrc b/lib/everylimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/everylimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/everylimit/.jshintrc b/lib/everylimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/everylimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/everylimit/README.md b/lib/everylimit/README.md
new file mode 100644
index 0000000..69bfa8d
--- /dev/null
+++ b/lib/everylimit/README.md
@@ -0,0 +1,13 @@
+# async.everylimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.everylimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.everylimit.svg?style=flat-square)](https://david-dm.org/async-js/async.everylimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.everylimit.svg?style=flat-square)](https://david-dm.org/async-js/async.everylimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.everylimit.svg?style=flat-square)](https://www.npmjs.org/package/async.everylimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#everylimit](https://github.com/async-js/async#async.everylimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/everylimit/index.js b/lib/everylimit/index.js
new file mode 100644
index 0000000..728c75a
--- /dev/null
+++ b/lib/everylimit/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var eachOfLimit = require('async.eachoflimit');
+var notId = require('async.util.notid');
+var createTester = require('async.util.createtester');
+
+module.exports = createTester(eachOfLimit, notId, notId);
diff --git a/lib/everylimit/package.json b/lib/everylimit/package.json
new file mode 100644
index 0000000..475fab1
--- /dev/null
+++ b/lib/everylimit/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.everylimit",
+ "description": "async everylimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachoflimit": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.notid": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "everylimit"
+ ]
+}
diff --git a/lib/filter/.editorconfig b/lib/filter/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/filter/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/filter/.gitignore b/lib/filter/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/filter/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/filter/.jscsrc b/lib/filter/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/filter/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/filter/.jshintrc b/lib/filter/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/filter/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/filter/README.md b/lib/filter/README.md
new file mode 100644
index 0000000..541dd42
--- /dev/null
+++ b/lib/filter/README.md
@@ -0,0 +1,13 @@
+# async.filter
+
+![Last version](https://img.shields.io/github/tag/async-js/async.filter.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.filter.svg?style=flat-square)](https://david-dm.org/async-js/async.filter)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.filter.svg?style=flat-square)](https://david-dm.org/async-js/async.filter#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.filter.svg?style=flat-square)](https://www.npmjs.org/package/async.filter)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#filter](https://github.com/async-js/async#async.filter) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/filter/index.js b/lib/filter/index.js
new file mode 100644
index 0000000..d949d3d
--- /dev/null
+++ b/lib/filter/index.js
@@ -0,0 +1,4 @@
+'use strict';
+var filter = require('async.util.filter');
+var doParallel = require('async.util.doparallel');
+module.exports = doParallel(filter);
diff --git a/lib/filter/package.json b/lib/filter/package.json
new file mode 100644
index 0000000..bbbe460
--- /dev/null
+++ b/lib/filter/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.filter",
+ "description": "async filtermethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallel": "0.5.2",
+ "async.util.filter": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "filter"
+ ]
+}
diff --git a/lib/filterlimit/.editorconfig b/lib/filterlimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/filterlimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/filterlimit/.gitignore b/lib/filterlimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/filterlimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/filterlimit/.jscsrc b/lib/filterlimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/filterlimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/filterlimit/.jshintrc b/lib/filterlimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/filterlimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/filterlimit/README.md b/lib/filterlimit/README.md
new file mode 100644
index 0000000..cc9162c
--- /dev/null
+++ b/lib/filterlimit/README.md
@@ -0,0 +1,13 @@
+# async.filterlimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.filterlimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.filterlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.filterlimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.filterlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.filterlimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.filterlimit.svg?style=flat-square)](https://www.npmjs.org/package/async.filterlimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#filterlimit](https://github.com/async-js/async#async.filterlimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/filterlimit/index.js b/lib/filterlimit/index.js
new file mode 100644
index 0000000..7161d3f
--- /dev/null
+++ b/lib/filterlimit/index.js
@@ -0,0 +1,4 @@
+'use strict';
+var filter = require('async.util.filter');
+var doParallelLimit = require('async.util.doparallellimit');
+module.exports = doParallelLimit(filter);
diff --git a/lib/filterlimit/package.json b/lib/filterlimit/package.json
new file mode 100644
index 0000000..502b04d
--- /dev/null
+++ b/lib/filterlimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.filterlimit",
+ "description": "async filterlimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallellimit": "0.5.2",
+ "async.util.filter": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "filterlimit"
+ ]
+}
diff --git a/lib/filterseries/.editorconfig b/lib/filterseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/filterseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/filterseries/.gitignore b/lib/filterseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/filterseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/filterseries/.jscsrc b/lib/filterseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/filterseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/filterseries/.jshintrc b/lib/filterseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/filterseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/filterseries/README.md b/lib/filterseries/README.md
new file mode 100644
index 0000000..e6a6e06
--- /dev/null
+++ b/lib/filterseries/README.md
@@ -0,0 +1,13 @@
+# async.filterseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.filterseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.filterseries.svg?style=flat-square)](https://david-dm.org/async-js/async.filterseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.filterseries.svg?style=flat-square)](https://david-dm.org/async-js/async.filterseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.filterseries.svg?style=flat-square)](https://www.npmjs.org/package/async.filterseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#filterseries](https://github.com/async-js/async#async.filterseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/filterseries/index.js b/lib/filterseries/index.js
new file mode 100644
index 0000000..b092b80
--- /dev/null
+++ b/lib/filterseries/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var filter = require('async.util.filter');
+var doSeries = require('async.util.doseries');
+
+module.exports = doSeries(filter);
diff --git a/lib/filterseries/package.json b/lib/filterseries/package.json
new file mode 100644
index 0000000..955143c
--- /dev/null
+++ b/lib/filterseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.filterseries",
+ "description": "async filterseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doseries": "0.5.2",
+ "async.util.filter": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "filterseries"
+ ]
+}
diff --git a/lib/forever/.editorconfig b/lib/forever/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/forever/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/forever/.gitignore b/lib/forever/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/forever/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/forever/.jscsrc b/lib/forever/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/forever/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/forever/.jshintrc b/lib/forever/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/forever/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/forever/README.md b/lib/forever/README.md
new file mode 100644
index 0000000..0c69ae2
--- /dev/null
+++ b/lib/forever/README.md
@@ -0,0 +1,13 @@
+# async.forever
+
+![Last version](https://img.shields.io/github/tag/async-js/async.forever.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.forever.svg?style=flat-square)](https://david-dm.org/async-js/async.forever)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.forever.svg?style=flat-square)](https://david-dm.org/async-js/async.forever#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.forever.svg?style=flat-square)](https://www.npmjs.org/package/async.forever)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#forever](https://github.com/async-js/async#async.forever) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/forever/index.js b/lib/forever/index.js
new file mode 100644
index 0000000..25dd70b
--- /dev/null
+++ b/lib/forever/index.js
@@ -0,0 +1,14 @@
+var noop = require('async.util.noop');
+var onlyOnce = require('async.util.onlyonce');
+var ensureAsync = require('async.util.ensureasync');
+
+module.exports = function forever(fn, cb) {
+ var done = onlyOnce(cb || noop);
+ var task = ensureAsync(fn);
+
+ function next(err) {
+ if (err) return done(err);
+ task(next);
+ }
+ next();
+};
diff --git a/lib/forever/package.json b/lib/forever/package.json
new file mode 100644
index 0000000..32881c5
--- /dev/null
+++ b/lib/forever/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.forever",
+ "description": "async forevermethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.ensureasync": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.onlyonce": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "forever"
+ ]
+}
diff --git a/lib/index.js b/lib/index.js
new file mode 100644
index 0000000..2ed83a6
--- /dev/null
+++ b/lib/index.js
@@ -0,0 +1,132 @@
+'use strict';
+
+var async = {};
+
+async.nextTick = require('async.nexttick');
+async.setImmediate = require('async.setimmediate');
+
+async.forEach =
+async.each = require('async.each');
+
+async.forEachSeries =
+async.eachSeries = require('async.eachseries');
+
+async.forEachLimit =
+async.eachLimit = require('async.eachlimit');
+
+async.forEachOf =
+async.eachOf = require('async.eachof');
+
+async.forEachOfSeries =
+async.eachOfSeries = require('async.eachofseries');
+
+async.forEachOfLimit =
+async.eachOfLimit = require('async.eachoflimit');
+
+async.map = require('async.map');
+async.mapSeries = require('async.mapseries');
+async.mapLimit = require('async.maplimit');
+
+async.inject =
+async.foldl =
+async.reduce = require('async.reduce');
+
+async.foldr =
+async.reduceRight = require('async.reduceright');
+
+async.transform = require('async.transform');
+
+async.select =
+async.filter = require('async.filter');
+
+async.selectLimit =
+async.filterLimit = require('async.filterlimit');
+
+async.selectSeries =
+async.filterSeries = require('async.filterseries');
+
+async.reject = require('async.reject');
+async.rejectLimit = require('async.rejectlimit');
+async.rejectSeries = require('async.rejectseries');
+
+async.any =
+async.some = require('async.some');
+
+async.someLimit = require('async.somelimit');
+
+async.all =
+async.every = require('async.every');
+
+async.everyLimit = require('async.everylimit');
+
+async.detect = require('async.detect');
+async.detectSeries = require('async.detectseries');
+async.detectLimit = require('async.detectlimit');
+
+async.sortBy = require('async.sortby');
+
+async.auto = require('async.auto');
+
+async.retry = require('async.retry');
+
+async.waterfall = require('async.waterfall');
+
+async.parallel = require('async.parallel');
+
+async.parallelLimit = require('async.parallellimit');
+
+async.series = require('async.series');
+
+async.iterator = require('async.iterator');
+
+async.apply = require('async.apply');
+
+async.concat = require('async.concat');
+async.concatSeries = require('async.concatseries');
+
+async.whilst = require('async.whilst');
+
+async.doWhilst = require('async.dowhilst');
+
+async.until = require('async.until');
+
+async.doUntil = require('async.dountil');
+
+async.during = require('async.during');
+
+async.doDuring = require('async.doduring');
+
+async.queue = require('async.queue');
+
+async.priorityQueue = require('async.priorityqueue');
+
+async.cargo = require('async.cargo');
+
+async.log = require('async.log');
+async.dir = require('async.dir');
+
+async.memoize = require('async.memoize');
+
+async.unmemoize = require('async.unmemoize');
+
+async.times = require('async.times');
+async.timesSeries = require('async.timesseries');
+async.timesLimit = require('async.timeslimit');
+
+async.seq = require('async.seq');
+
+async.compose = require('async.compose');
+
+async.applyEach = require('async.applyeach');
+async.applyEachSeries = require('async.applyeachseries');
+
+async.forever = require('async.forever');
+
+async.ensureAsync = require('async.ensureasync');
+
+async.constant = require('async.constant');
+
+async.wrapSync =
+async.asyncify = require('async.asyncify');
+
+module.exports = async;
diff --git a/lib/iterator/.editorconfig b/lib/iterator/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/iterator/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/iterator/.gitignore b/lib/iterator/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/iterator/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/iterator/.jscsrc b/lib/iterator/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/iterator/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/iterator/.jshintrc b/lib/iterator/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/iterator/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/iterator/README.md b/lib/iterator/README.md
new file mode 100644
index 0000000..2f6b806
--- /dev/null
+++ b/lib/iterator/README.md
@@ -0,0 +1,13 @@
+# async.iterator
+
+![Last version](https://img.shields.io/github/tag/async-js/async.iterator.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.iterator.svg?style=flat-square)](https://david-dm.org/async-js/async.iterator)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.iterator.svg?style=flat-square)](https://david-dm.org/async-js/async.iterator#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.iterator.svg?style=flat-square)](https://www.npmjs.org/package/async.iterator)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#iterator](https://github.com/async-js/async#async.iterator) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/iterator/index.js b/lib/iterator/index.js
new file mode 100644
index 0000000..459ed84
--- /dev/null
+++ b/lib/iterator/index.js
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function(tasks) {
+ function makeCallback(index) {
+ function fn() {
+ if (tasks.length) {
+ tasks[index].apply(null, arguments);
+ }
+ return fn.next();
+ }
+ fn.next = function() {
+ return (index < tasks.length - 1) ? makeCallback(index + 1) : null;
+ };
+ return fn;
+ }
+ return makeCallback(0);
+};
diff --git a/lib/iterator/package.json b/lib/iterator/package.json
new file mode 100644
index 0000000..6960270
--- /dev/null
+++ b/lib/iterator/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "async.iterator",
+ "description": "async iteratormethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "keywords": [
+ "async",
+ "async-modularized",
+ "iterator"
+ ]
+}
diff --git a/lib/log/.editorconfig b/lib/log/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/log/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/log/.gitignore b/lib/log/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/log/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/log/.jscsrc b/lib/log/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/log/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/log/.jshintrc b/lib/log/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/log/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/log/README.md b/lib/log/README.md
new file mode 100644
index 0000000..a5f6b63
--- /dev/null
+++ b/lib/log/README.md
@@ -0,0 +1,13 @@
+# async.log
+
+![Last version](https://img.shields.io/github/tag/async-js/async.log.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.log.svg?style=flat-square)](https://david-dm.org/async-js/async.log)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.log.svg?style=flat-square)](https://david-dm.org/async-js/async.log#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.log.svg?style=flat-square)](https://www.npmjs.org/package/async.log)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#log](https://github.com/async-js/async#async.log) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/log/index.js b/lib/log/index.js
new file mode 100644
index 0000000..0cffb89
--- /dev/null
+++ b/lib/log/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.consolefn')('log');
diff --git a/lib/log/package.json b/lib/log/package.json
new file mode 100644
index 0000000..473cdbf
--- /dev/null
+++ b/lib/log/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.log",
+ "description": "async logmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.consolefn": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "log"
+ ]
+}
diff --git a/lib/map/.editorconfig b/lib/map/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/map/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/map/.gitignore b/lib/map/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/map/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/map/.jscsrc b/lib/map/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/map/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/map/.jshintrc b/lib/map/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/map/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/map/README.md b/lib/map/README.md
new file mode 100644
index 0000000..42f5159
--- /dev/null
+++ b/lib/map/README.md
@@ -0,0 +1,13 @@
+# async.map
+
+![Last version](https://img.shields.io/github/tag/async-js/async.map.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.map.svg?style=flat-square)](https://david-dm.org/async-js/async.map)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.map.svg?style=flat-square)](https://david-dm.org/async-js/async.map#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.map.svg?style=flat-square)](https://www.npmjs.org/package/async.map)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#map](https://github.com/async-js/async#async.map) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/map/index.js b/lib/map/index.js
new file mode 100644
index 0000000..2609ff8
--- /dev/null
+++ b/lib/map/index.js
@@ -0,0 +1,4 @@
+'use strict';
+var mapAsync = require('async.util.mapasync');
+var doParallel = require('async.util.doparallel');
+module.exports = doParallel(mapAsync);
diff --git a/lib/map/package.json b/lib/map/package.json
new file mode 100644
index 0000000..53a51ef
--- /dev/null
+++ b/lib/map/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.map",
+ "description": "async mapmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallel": "0.5.2",
+ "async.util.mapasync": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "map"
+ ]
+}
diff --git a/lib/maplimit/.editorconfig b/lib/maplimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/maplimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/maplimit/.gitignore b/lib/maplimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/maplimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/maplimit/.jscsrc b/lib/maplimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/maplimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/maplimit/.jshintrc b/lib/maplimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/maplimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/maplimit/README.md b/lib/maplimit/README.md
new file mode 100644
index 0000000..7bbec8f
--- /dev/null
+++ b/lib/maplimit/README.md
@@ -0,0 +1,13 @@
+# async.maplimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.maplimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.maplimit.svg?style=flat-square)](https://david-dm.org/async-js/async.maplimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.maplimit.svg?style=flat-square)](https://david-dm.org/async-js/async.maplimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.maplimit.svg?style=flat-square)](https://www.npmjs.org/package/async.maplimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#maplimit](https://github.com/async-js/async#async.maplimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/maplimit/index.js b/lib/maplimit/index.js
new file mode 100644
index 0000000..3c60802
--- /dev/null
+++ b/lib/maplimit/index.js
@@ -0,0 +1,6 @@
+'use strict';
+var mapAsync = require('async.util.mapasync');
+var doParallelLimit = require('async.util.doparallellimit');
+module.exports = doParallelLimit(mapAsync);
+
+
diff --git a/lib/maplimit/package.json b/lib/maplimit/package.json
new file mode 100644
index 0000000..62b3f99
--- /dev/null
+++ b/lib/maplimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.maplimit",
+ "description": "async maplimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallellimit": "0.5.2",
+ "async.util.mapasync": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "maplimit"
+ ]
+}
diff --git a/lib/mapseries/.editorconfig b/lib/mapseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/mapseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/mapseries/.gitignore b/lib/mapseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/mapseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/mapseries/.jscsrc b/lib/mapseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/mapseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/mapseries/.jshintrc b/lib/mapseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/mapseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/mapseries/README.md b/lib/mapseries/README.md
new file mode 100644
index 0000000..4188274
--- /dev/null
+++ b/lib/mapseries/README.md
@@ -0,0 +1,13 @@
+# async.mapseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.mapseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.mapseries.svg?style=flat-square)](https://david-dm.org/async-js/async.mapseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.mapseries.svg?style=flat-square)](https://david-dm.org/async-js/async.mapseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.mapseries.svg?style=flat-square)](https://www.npmjs.org/package/async.mapseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#mapseries](https://github.com/async-js/async#async.mapseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/mapseries/index.js b/lib/mapseries/index.js
new file mode 100644
index 0000000..a354302
--- /dev/null
+++ b/lib/mapseries/index.js
@@ -0,0 +1,4 @@
+'use strict';
+var mapAsync = require('async.util.mapasync');
+var doSeries = require('async.util.doseries');
+module.exports = doSeries(mapAsync);
diff --git a/lib/mapseries/package.json b/lib/mapseries/package.json
new file mode 100644
index 0000000..f292887
--- /dev/null
+++ b/lib/mapseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.mapseries",
+ "description": "async mapseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doseries": "0.5.2",
+ "async.util.mapasync": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "mapseries"
+ ]
+}
diff --git a/lib/memoize/.editorconfig b/lib/memoize/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/memoize/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/memoize/.gitignore b/lib/memoize/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/memoize/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/memoize/.jscsrc b/lib/memoize/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/memoize/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/memoize/.jshintrc b/lib/memoize/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/memoize/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/memoize/README.md b/lib/memoize/README.md
new file mode 100644
index 0000000..02d3be3
--- /dev/null
+++ b/lib/memoize/README.md
@@ -0,0 +1,13 @@
+# async.memoize
+
+![Last version](https://img.shields.io/github/tag/async-js/async.memoize.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.memoize.svg?style=flat-square)](https://david-dm.org/async-js/async.memoize)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.memoize.svg?style=flat-square)](https://david-dm.org/async-js/async.memoize#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.memoize.svg?style=flat-square)](https://www.npmjs.org/package/async.memoize)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#memoize](https://github.com/async-js/async#async.memoize) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/memoize/index.js b/lib/memoize/index.js
new file mode 100644
index 0000000..2a6f743
--- /dev/null
+++ b/lib/memoize/index.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var identity = require('async.util.identity');
+var restParam = require('async.util.restparam');
+var setImmediate = require('async.util.setimmediate');
+
+module.exports = function memoize(fn, hasher) {
+ var memo = {};
+ var queues = {};
+ hasher = hasher || identity;
+ var memoized = restParam(function memoized(args) {
+ var callback = args.pop();
+ var key = hasher.apply(null, args);
+ if (key in memo) {
+ setImmediate(function() {
+ callback.apply(null, memo[key]);
+ });
+ } else if (key in queues) {
+ queues[key].push(callback);
+ } else {
+ queues[key] = [callback];
+ fn.apply(null, args.concat([restParam(function(args) {
+ memo[key] = args;
+ var q = queues[key];
+ delete queues[key];
+ for (var i = 0, l = q.length; i < l; i++) {
+ q[i].apply(null, args);
+ }
+ })]));
+ }
+ });
+ memoized.memo = memo;
+ memoized.unmemoized = fn;
+ return memoized;
+};
diff --git a/lib/memoize/package.json b/lib/memoize/package.json
new file mode 100644
index 0000000..6802684
--- /dev/null
+++ b/lib/memoize/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.memoize",
+ "description": "async memoizemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.identity": "0.5.2",
+ "async.util.restparam": "0.5.2",
+ "async.util.setimmediate": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "memoize"
+ ]
+}
diff --git a/lib/nexttick/.editorconfig b/lib/nexttick/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/nexttick/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/nexttick/.gitignore b/lib/nexttick/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/nexttick/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/nexttick/.jscsrc b/lib/nexttick/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/nexttick/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/nexttick/.jshintrc b/lib/nexttick/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/nexttick/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/nexttick/README.md b/lib/nexttick/README.md
new file mode 100644
index 0000000..cd71056
--- /dev/null
+++ b/lib/nexttick/README.md
@@ -0,0 +1,13 @@
+# async.nexttick
+
+![Last version](https://img.shields.io/github/tag/async-js/async.nexttick.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.nexttick.svg?style=flat-square)](https://david-dm.org/async-js/async.nexttick)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.nexttick.svg?style=flat-square)](https://david-dm.org/async-js/async.nexttick#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.nexttick.svg?style=flat-square)](https://www.npmjs.org/package/async.nexttick)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#nexttick](https://github.com/async-js/async#async.nexttick) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/nexttick/index.js b/lib/nexttick/index.js
new file mode 100644
index 0000000..1c8039a
--- /dev/null
+++ b/lib/nexttick/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.nexttick');
diff --git a/lib/nexttick/package.json b/lib/nexttick/package.json
new file mode 100644
index 0000000..61c3483
--- /dev/null
+++ b/lib/nexttick/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.nexttick",
+ "description": "async nexttickmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.nexttick": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "nexttick"
+ ]
+}
diff --git a/lib/parallel/.editorconfig b/lib/parallel/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/parallel/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/parallel/.gitignore b/lib/parallel/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/parallel/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/parallel/.jscsrc b/lib/parallel/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/parallel/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/parallel/.jshintrc b/lib/parallel/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/parallel/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/parallel/README.md b/lib/parallel/README.md
new file mode 100644
index 0000000..03995dc
--- /dev/null
+++ b/lib/parallel/README.md
@@ -0,0 +1,13 @@
+# async.parallel
+
+![Last version](https://img.shields.io/github/tag/async-js/async.parallel.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.parallel.svg?style=flat-square)](https://david-dm.org/async-js/async.parallel)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.parallel.svg?style=flat-square)](https://david-dm.org/async-js/async.parallel#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.parallel.svg?style=flat-square)](https://www.npmjs.org/package/async.parallel)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#parallel](https://github.com/async-js/async#async.parallel) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/parallel/index.js b/lib/parallel/index.js
new file mode 100644
index 0000000..6284baf
--- /dev/null
+++ b/lib/parallel/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var _parallel = require('async.util.parallel');
+
+module.exports = function parallel(tasks, cb) {
+ return _parallel(eachOf, tasks, cb);
+};
diff --git a/lib/parallel/package.json b/lib/parallel/package.json
new file mode 100644
index 0000000..f11bb40
--- /dev/null
+++ b/lib/parallel/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.parallel",
+ "description": "async parallelmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.parallel": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "parallel"
+ ]
+}
diff --git a/lib/parallellimit/.editorconfig b/lib/parallellimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/parallellimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/parallellimit/.gitignore b/lib/parallellimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/parallellimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/parallellimit/.jscsrc b/lib/parallellimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/parallellimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/parallellimit/.jshintrc b/lib/parallellimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/parallellimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/parallellimit/README.md b/lib/parallellimit/README.md
new file mode 100644
index 0000000..b5d9c5c
--- /dev/null
+++ b/lib/parallellimit/README.md
@@ -0,0 +1,13 @@
+# async.parallellimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.parallellimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.parallellimit.svg?style=flat-square)](https://david-dm.org/async-js/async.parallellimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.parallellimit.svg?style=flat-square)](https://david-dm.org/async-js/async.parallellimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.parallellimit.svg?style=flat-square)](https://www.npmjs.org/package/async.parallellimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#parallellimit](https://github.com/async-js/async#async.parallellimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/parallellimit/index.js b/lib/parallellimit/index.js
new file mode 100644
index 0000000..c2c8e8b
--- /dev/null
+++ b/lib/parallellimit/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var parallel = require('async.util.parallel');
+var eachOfLimit = require('async.util.eachoflimit');
+
+module.exports = function parallelLimit(tasks, limit, cb) {
+ return parallel(eachOfLimit(limit), tasks, cb);
+};
diff --git a/lib/parallellimit/package.json b/lib/parallellimit/package.json
new file mode 100644
index 0000000..afdd020
--- /dev/null
+++ b/lib/parallellimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.parallellimit",
+ "description": "async parallellimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.eachoflimit": "0.5.2",
+ "async.util.parallel": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "parallellimit"
+ ]
+}
diff --git a/lib/priorityqueue/.editorconfig b/lib/priorityqueue/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/priorityqueue/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/priorityqueue/.gitignore b/lib/priorityqueue/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/priorityqueue/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/priorityqueue/.jscsrc b/lib/priorityqueue/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/priorityqueue/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/priorityqueue/.jshintrc b/lib/priorityqueue/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/priorityqueue/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/priorityqueue/README.md b/lib/priorityqueue/README.md
new file mode 100644
index 0000000..29a8277
--- /dev/null
+++ b/lib/priorityqueue/README.md
@@ -0,0 +1,13 @@
+# async.priorityqueue
+
+![Last version](https://img.shields.io/github/tag/async-js/async.priorityqueue.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.priorityqueue.svg?style=flat-square)](https://david-dm.org/async-js/async.priorityqueue)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.priorityqueue.svg?style=flat-square)](https://david-dm.org/async-js/async.priorityqueue#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.priorityqueue.svg?style=flat-square)](https://www.npmjs.org/package/async.priorityqueue)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#priorityqueue](https://github.com/async-js/async#async.priorityqueue) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/priorityqueue/index.js b/lib/priorityqueue/index.js
new file mode 100644
index 0000000..7561f9c
--- /dev/null
+++ b/lib/priorityqueue/index.js
@@ -0,0 +1,71 @@
+'use strict';
+
+var queue = require('async.queue');
+var noop = require('async.util.noop');
+var isArray = require('async.util.isarray');
+var arrayEach = require('async.util.arrayeach');
+var setImmediate = require('async.util.setimmediate');
+
+module.exports = 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 < end) {
+ var mid = beg + ((end - beg + 1) >>> 1);
+ if (compare(item, sequence[mid]) >= 0) {
+ beg = mid;
+ } else {
+ end = mid - 1;
+ }
+ }
+ return beg;
+ }
+
+ function _insert(q, data, priority, callback) {
+ if (callback != null && typeof callback !== "function") {
+ throw new Error("task callback must be a function");
+ }
+ 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 === 'function' ? callback : noop
+ };
+
+ q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
+
+ if (q.tasks.length === q.concurrency) {
+ q.saturated();
+ }
+ 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;
+};
diff --git a/lib/priorityqueue/package.json b/lib/priorityqueue/package.json
new file mode 100644
index 0000000..8256da7
--- /dev/null
+++ b/lib/priorityqueue/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "async.priorityqueue",
+ "description": "async priorityqueuemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.queue": "0.5.2",
+ "async.util.arrayeach": "0.5.2",
+ "async.util.isarray": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.setimmediate": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "priorityqueue"
+ ]
+}
diff --git a/lib/queue/.editorconfig b/lib/queue/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/queue/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/queue/.gitignore b/lib/queue/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/queue/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/queue/.jscsrc b/lib/queue/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/queue/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/queue/.jshintrc b/lib/queue/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/queue/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/queue/README.md b/lib/queue/README.md
new file mode 100644
index 0000000..9fab925
--- /dev/null
+++ b/lib/queue/README.md
@@ -0,0 +1,13 @@
+# async.queue
+
+![Last version](https://img.shields.io/github/tag/async-js/async.queue.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.queue.svg?style=flat-square)](https://david-dm.org/async-js/async.queue)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.queue.svg?style=flat-square)](https://david-dm.org/async-js/async.queue#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.queue.svg?style=flat-square)](https://www.npmjs.org/package/async.queue)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#queue](https://github.com/async-js/async#async.queue) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/queue/index.js b/lib/queue/index.js
new file mode 100644
index 0000000..9e1b185
--- /dev/null
+++ b/lib/queue/index.js
@@ -0,0 +1,9 @@
+'use strict';
+
+var queue = require('async.util.queue');
+
+module.exports = function (worker, concurrency) {
+ return queue(function (items, cb) {
+ worker(items[0], cb);
+ }, concurrency, 1);
+};
diff --git a/lib/queue/package.json b/lib/queue/package.json
new file mode 100644
index 0000000..93e6f5f
--- /dev/null
+++ b/lib/queue/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.queue",
+ "description": "async queuemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.queue": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "queue"
+ ]
+}
diff --git a/lib/reduce/.editorconfig b/lib/reduce/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/reduce/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/reduce/.gitignore b/lib/reduce/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/reduce/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/reduce/.jscsrc b/lib/reduce/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/reduce/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/reduce/.jshintrc b/lib/reduce/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/reduce/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/reduce/README.md b/lib/reduce/README.md
new file mode 100644
index 0000000..692debc
--- /dev/null
+++ b/lib/reduce/README.md
@@ -0,0 +1,13 @@
+# async.reduce
+
+![Last version](https://img.shields.io/github/tag/async-js/async.reduce.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.reduce.svg?style=flat-square)](https://david-dm.org/async-js/async.reduce)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.reduce.svg?style=flat-square)](https://david-dm.org/async-js/async.reduce#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.reduce.svg?style=flat-square)](https://www.npmjs.org/package/async.reduce)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#reduce](https://github.com/async-js/async#async.reduce) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/reduce/index.js b/lib/reduce/index.js
new file mode 100644
index 0000000..541becb
--- /dev/null
+++ b/lib/reduce/index.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var eachOfSeries = require('async.eachofseries');
+
+module.exports = function reduce(arr, memo, iterator, cb) {
+ eachOfSeries(arr, function(x, i, cb) {
+ iterator(memo, x, function(err, v) {
+ memo = v;
+ cb(err);
+ });
+ }, function(err) {
+ cb(err, memo);
+ });
+};
diff --git a/lib/reduce/package.json b/lib/reduce/package.json
new file mode 100644
index 0000000..a673557
--- /dev/null
+++ b/lib/reduce/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.reduce",
+ "description": "async reducemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachofseries": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "reduce"
+ ]
+}
diff --git a/lib/reduceright/.editorconfig b/lib/reduceright/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/reduceright/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/reduceright/.gitignore b/lib/reduceright/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/reduceright/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/reduceright/.jscsrc b/lib/reduceright/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/reduceright/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/reduceright/.jshintrc b/lib/reduceright/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/reduceright/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/reduceright/README.md b/lib/reduceright/README.md
new file mode 100644
index 0000000..95268b9
--- /dev/null
+++ b/lib/reduceright/README.md
@@ -0,0 +1,13 @@
+# async.reduceright
+
+![Last version](https://img.shields.io/github/tag/async-js/async.reduceright.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.reduceright.svg?style=flat-square)](https://david-dm.org/async-js/async.reduceright)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.reduceright.svg?style=flat-square)](https://david-dm.org/async-js/async.reduceright#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.reduceright.svg?style=flat-square)](https://www.npmjs.org/package/async.reduceright)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#reduceright](https://github.com/async-js/async#async.reduceright) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/reduceright/index.js b/lib/reduceright/index.js
new file mode 100644
index 0000000..2e86c1e
--- /dev/null
+++ b/lib/reduceright/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var map = require('async.util.map');
+var reduce = require('async.reduce');
+var identity = require('async.util.identity');
+
+module.exports = function reduceRight (arr, memo, iterator, cb) {
+ var reversed = map(arr, identity).reverse();
+ reduce(reversed, memo, iterator, cb);
+};
diff --git a/lib/reduceright/package.json b/lib/reduceright/package.json
new file mode 100644
index 0000000..ba61340
--- /dev/null
+++ b/lib/reduceright/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.reduceright",
+ "description": "async reducerightmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.reduce": "0.5.2",
+ "async.util.identity": "0.5.2",
+ "async.util.map": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "reduceright"
+ ]
+}
diff --git a/lib/reject/.editorconfig b/lib/reject/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/reject/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/reject/.gitignore b/lib/reject/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/reject/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/reject/.jscsrc b/lib/reject/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/reject/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/reject/.jshintrc b/lib/reject/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/reject/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/reject/README.md b/lib/reject/README.md
new file mode 100644
index 0000000..5343532
--- /dev/null
+++ b/lib/reject/README.md
@@ -0,0 +1,13 @@
+# async.reject
+
+![Last version](https://img.shields.io/github/tag/async-js/async.reject.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.reject.svg?style=flat-square)](https://david-dm.org/async-js/async.reject)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.reject.svg?style=flat-square)](https://david-dm.org/async-js/async.reject#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.reject.svg?style=flat-square)](https://www.npmjs.org/package/async.reject)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#reject](https://github.com/async-js/async#async.reject) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/reject/index.js b/lib/reject/index.js
new file mode 100644
index 0000000..b183176
--- /dev/null
+++ b/lib/reject/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var reject = require('async.util.reject');
+var doParallel = require('async.util.doparallel');
+
+module.exports = doParallel(reject);
diff --git a/lib/reject/package.json b/lib/reject/package.json
new file mode 100644
index 0000000..01e119b
--- /dev/null
+++ b/lib/reject/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.reject",
+ "description": "async rejectmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallel": "0.5.2",
+ "async.util.reject": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "reject"
+ ]
+}
diff --git a/lib/rejectlimit/.editorconfig b/lib/rejectlimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/rejectlimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/rejectlimit/.gitignore b/lib/rejectlimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/rejectlimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/rejectlimit/.jscsrc b/lib/rejectlimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/rejectlimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/rejectlimit/.jshintrc b/lib/rejectlimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/rejectlimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/rejectlimit/README.md b/lib/rejectlimit/README.md
new file mode 100644
index 0000000..7306b18
--- /dev/null
+++ b/lib/rejectlimit/README.md
@@ -0,0 +1,13 @@
+# async.rejectlimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.rejectlimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.rejectlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.rejectlimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.rejectlimit.svg?style=flat-square)](https://david-dm.org/async-js/async.rejectlimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.rejectlimit.svg?style=flat-square)](https://www.npmjs.org/package/async.rejectlimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#rejectlimit](https://github.com/async-js/async#async.rejectlimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/rejectlimit/index.js b/lib/rejectlimit/index.js
new file mode 100644
index 0000000..a758388
--- /dev/null
+++ b/lib/rejectlimit/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var reject = require('async.util.reject');
+var doParallelLimit = require('async.util.doparallellimit');
+
+module.exports = doParallelLimit(reject);
diff --git a/lib/rejectlimit/package.json b/lib/rejectlimit/package.json
new file mode 100644
index 0000000..ae0aec5
--- /dev/null
+++ b/lib/rejectlimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.rejectlimit",
+ "description": "async rejectlimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doparallellimit": "0.5.2",
+ "async.util.reject": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "rejectlimit"
+ ]
+}
diff --git a/lib/rejectseries/.editorconfig b/lib/rejectseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/rejectseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/rejectseries/.gitignore b/lib/rejectseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/rejectseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/rejectseries/.jscsrc b/lib/rejectseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/rejectseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/rejectseries/.jshintrc b/lib/rejectseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/rejectseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/rejectseries/README.md b/lib/rejectseries/README.md
new file mode 100644
index 0000000..4d84ce5
--- /dev/null
+++ b/lib/rejectseries/README.md
@@ -0,0 +1,13 @@
+# async.rejectseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.rejectseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.rejectseries.svg?style=flat-square)](https://david-dm.org/async-js/async.rejectseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.rejectseries.svg?style=flat-square)](https://david-dm.org/async-js/async.rejectseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.rejectseries.svg?style=flat-square)](https://www.npmjs.org/package/async.rejectseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#rejectseries](https://github.com/async-js/async#async.rejectseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/rejectseries/index.js b/lib/rejectseries/index.js
new file mode 100644
index 0000000..4d90ce5
--- /dev/null
+++ b/lib/rejectseries/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var reject = require('async.util.reject');
+var doSeries = require('async.util.doseries');
+
+module.exports = doSeries(reject);
diff --git a/lib/rejectseries/package.json b/lib/rejectseries/package.json
new file mode 100644
index 0000000..6be6413
--- /dev/null
+++ b/lib/rejectseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.rejectseries",
+ "description": "async rejectseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.doseries": "0.5.2",
+ "async.util.reject": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "rejectseries"
+ ]
+}
diff --git a/lib/retry/.editorconfig b/lib/retry/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/retry/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/retry/.gitignore b/lib/retry/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/retry/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/retry/.jscsrc b/lib/retry/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/retry/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/retry/.jshintrc b/lib/retry/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/retry/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/retry/README.md b/lib/retry/README.md
new file mode 100644
index 0000000..6e8afbc
--- /dev/null
+++ b/lib/retry/README.md
@@ -0,0 +1,13 @@
+# async.retry
+
+![Last version](https://img.shields.io/github/tag/async-js/async.retry.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.retry.svg?style=flat-square)](https://david-dm.org/async-js/async.retry)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.retry.svg?style=flat-square)](https://david-dm.org/async-js/async.retry#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.retry.svg?style=flat-square)](https://www.npmjs.org/package/async.retry)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#retry](https://github.com/async-js/async#async.retry) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/retry/index.js b/lib/retry/index.js
new file mode 100644
index 0000000..00f0c07
--- /dev/null
+++ b/lib/retry/index.js
@@ -0,0 +1,77 @@
+'use strict';
+
+var series = require('async.series');
+
+module.exports = function retry(times, task, cb) {
+ var DEFAULT_TIMES = 5;
+ var DEFAULT_INTERVAL = 0;
+
+ var attempts = [];
+
+ var opts = {
+ times: DEFAULT_TIMES,
+ interval: DEFAULT_INTERVAL
+ };
+
+ function parseTimes(acc, t) {
+ if (typeof t === 'number') {
+ acc.times = parseInt(t, 10) || DEFAULT_TIMES;
+ } else if (typeof t === 'object') {
+ acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
+ acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
+ } else {
+ throw new Error('Unsupported argument type for \'times\': ' + typeof t);
+ }
+ }
+
+ var length = arguments.length;
+ if (length < 1 || length > 3) {
+ throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
+ } else if (length <= 2 && typeof times === 'function') {
+ cb = task;
+ task = times;
+ }
+ if (typeof times !== 'function') {
+ parseTimes(opts, times);
+ }
+ opts.cb = cb;
+ opts.task = task;
+
+ function wrappedTask(wrappedCallback, wrappedResults) {
+ function retryAttempt(task, finalAttempt) {
+ return function(seriesCallback) {
+ task(function(err, result) {
+ seriesCallback(!err || finalAttempt, {
+ err: err,
+ result: result
+ });
+ }, wrappedResults);
+ };
+ }
+
+ function retryInterval(interval) {
+ return function(seriesCallback) {
+ setTimeout(function() {
+ seriesCallback(null);
+ }, interval);
+ };
+ }
+
+ while (opts.times) {
+
+ var finalAttempt = !(opts.times -= 1);
+ attempts.push(retryAttempt(opts.task, finalAttempt));
+ if (!finalAttempt && opts.interval > 0) {
+ attempts.push(retryInterval(opts.interval));
+ }
+ }
+
+ series(attempts, function(done, data) {
+ data = data[data.length - 1];
+ (wrappedCallback || opts.cb)(data.err, data.result);
+ });
+ }
+
+ // If a callback is passed, run this as a controll flow
+ return opts.cb ? wrappedTask() : wrappedTask;
+};
diff --git a/lib/retry/package.json b/lib/retry/package.json
new file mode 100644
index 0000000..d03cf75
--- /dev/null
+++ b/lib/retry/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.retry",
+ "description": "async retrymethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.series": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "retry"
+ ]
+}
diff --git a/lib/seq/.editorconfig b/lib/seq/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/seq/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/seq/.gitignore b/lib/seq/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/seq/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/seq/.jscsrc b/lib/seq/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/seq/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/seq/.jshintrc b/lib/seq/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/seq/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/seq/README.md b/lib/seq/README.md
new file mode 100644
index 0000000..fd2c880
--- /dev/null
+++ b/lib/seq/README.md
@@ -0,0 +1,13 @@
+# async.seq
+
+![Last version](https://img.shields.io/github/tag/async-js/async.seq.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.seq.svg?style=flat-square)](https://david-dm.org/async-js/async.seq)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.seq.svg?style=flat-square)](https://david-dm.org/async-js/async.seq#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.seq.svg?style=flat-square)](https://www.npmjs.org/package/async.seq)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#seq](https://github.com/async-js/async#async.seq) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/seq/index.js b/lib/seq/index.js
new file mode 100644
index 0000000..9246fe5
--- /dev/null
+++ b/lib/seq/index.js
@@ -0,0 +1,26 @@
+var noop = require('async.util.noop');
+var reduce = require('async.reduce');
+var restParam = require('async.util.restparam');
+
+module.exports = function seq( /* functions... */ ) {
+ var fns = arguments;
+ return restParam(function(args) {
+ var that = this;
+
+ var cb = args[args.length - 1];
+ if (typeof cb == 'function') {
+ args.pop();
+ } else {
+ cb = noop;
+ }
+
+ reduce(fns, args, function(newargs, fn, cb) {
+ fn.apply(that, newargs.concat([restParam(function(err, nextargs) {
+ cb(err, nextargs);
+ })]));
+ },
+ function(err, results) {
+ cb.apply(that, [err].concat(results));
+ });
+ });
+};
diff --git a/lib/seq/package.json b/lib/seq/package.json
new file mode 100644
index 0000000..13daa3c
--- /dev/null
+++ b/lib/seq/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "async.seq",
+ "description": "async seqmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.reduce": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "seq"
+ ]
+}
diff --git a/lib/series/.editorconfig b/lib/series/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/series/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/series/.gitignore b/lib/series/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/series/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/series/.jscsrc b/lib/series/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/series/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/series/.jshintrc b/lib/series/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/series/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/series/README.md b/lib/series/README.md
new file mode 100644
index 0000000..36a95e1
--- /dev/null
+++ b/lib/series/README.md
@@ -0,0 +1,13 @@
+# async.series
+
+![Last version](https://img.shields.io/github/tag/async-js/async.series.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.series.svg?style=flat-square)](https://david-dm.org/async-js/async.series)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.series.svg?style=flat-square)](https://david-dm.org/async-js/async.series#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.series.svg?style=flat-square)](https://www.npmjs.org/package/async.series)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#series](https://github.com/async-js/async#async.series) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/series/index.js b/lib/series/index.js
new file mode 100644
index 0000000..01828f2
--- /dev/null
+++ b/lib/series/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var parallel = require('async.util.parallel');
+var eachOfSeries = require('async.eachofseries');
+
+module.exports = function series(tasks, cb) {
+ return parallel(eachOfSeries, tasks, cb);
+};
diff --git a/lib/series/package.json b/lib/series/package.json
new file mode 100644
index 0000000..77bbe4f
--- /dev/null
+++ b/lib/series/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.series",
+ "description": "async seriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachofseries": "0.5.2",
+ "async.util.parallel": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "series"
+ ]
+}
diff --git a/lib/setimmediate/.editorconfig b/lib/setimmediate/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/setimmediate/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/setimmediate/.gitignore b/lib/setimmediate/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/setimmediate/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/setimmediate/.jscsrc b/lib/setimmediate/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/setimmediate/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/setimmediate/.jshintrc b/lib/setimmediate/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/setimmediate/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/setimmediate/README.md b/lib/setimmediate/README.md
new file mode 100644
index 0000000..58fef01
--- /dev/null
+++ b/lib/setimmediate/README.md
@@ -0,0 +1,13 @@
+# async.setimmediate
+
+![Last version](https://img.shields.io/github/tag/async-js/async.setimmediate.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.setimmediate.svg?style=flat-square)](https://david-dm.org/async-js/async.setimmediate)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.setimmediate.svg?style=flat-square)](https://david-dm.org/async-js/async.setimmediate#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.setimmediate.svg?style=flat-square)](https://www.npmjs.org/package/async.setimmediate)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#setimmediate](https://github.com/async-js/async#async.setimmediate) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/setimmediate/index.js b/lib/setimmediate/index.js
new file mode 100644
index 0000000..3437d46
--- /dev/null
+++ b/lib/setimmediate/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = require('async.util.setimmediate');
diff --git a/lib/setimmediate/package.json b/lib/setimmediate/package.json
new file mode 100644
index 0000000..6a66eff
--- /dev/null
+++ b/lib/setimmediate/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.setimmediate",
+ "description": "async setimmediatemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.setimmediate": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "setimmediate"
+ ]
+}
diff --git a/lib/some/.editorconfig b/lib/some/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/some/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/some/.gitignore b/lib/some/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/some/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/some/.jscsrc b/lib/some/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/some/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/some/.jshintrc b/lib/some/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/some/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/some/README.md b/lib/some/README.md
new file mode 100644
index 0000000..75ca4f2
--- /dev/null
+++ b/lib/some/README.md
@@ -0,0 +1,13 @@
+# async.some
+
+![Last version](https://img.shields.io/github/tag/async-js/async.some.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.some.svg?style=flat-square)](https://david-dm.org/async-js/async.some)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.some.svg?style=flat-square)](https://david-dm.org/async-js/async.some#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.some.svg?style=flat-square)](https://www.npmjs.org/package/async.some)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#some](https://github.com/async-js/async#async.some) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/some/index.js b/lib/some/index.js
new file mode 100644
index 0000000..a8f206c
--- /dev/null
+++ b/lib/some/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var toBool = require('async.util.tobool');
+var identity = require('async.util.identity');
+var createTester = require('async.util.createtester');
+
+module.exports = createTester(eachOf, toBool, identity);
diff --git a/lib/some/package.json b/lib/some/package.json
new file mode 100644
index 0000000..cb511f0
--- /dev/null
+++ b/lib/some/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.some",
+ "description": "async somemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.identity": "0.5.2",
+ "async.util.tobool": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "some"
+ ]
+}
diff --git a/lib/somelimit/.editorconfig b/lib/somelimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/somelimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/somelimit/.gitignore b/lib/somelimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/somelimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/somelimit/.jscsrc b/lib/somelimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/somelimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/somelimit/.jshintrc b/lib/somelimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/somelimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/somelimit/README.md b/lib/somelimit/README.md
new file mode 100644
index 0000000..03e548c
--- /dev/null
+++ b/lib/somelimit/README.md
@@ -0,0 +1,13 @@
+# async.somelimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.somelimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.somelimit.svg?style=flat-square)](https://david-dm.org/async-js/async.somelimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.somelimit.svg?style=flat-square)](https://david-dm.org/async-js/async.somelimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.somelimit.svg?style=flat-square)](https://www.npmjs.org/package/async.somelimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#somelimit](https://github.com/async-js/async#async.somelimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/somelimit/index.js b/lib/somelimit/index.js
new file mode 100644
index 0000000..ba7561d
--- /dev/null
+++ b/lib/somelimit/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var eachOfLimit = require('async.eachoflimit');
+var toBool = require('async.util.tobool');
+var identity = require('async.util.identity');
+var createTester = require('async.util.createtester');
+
+module.exports = createTester(eachOfLimit, toBool, identity);
diff --git a/lib/somelimit/package.json b/lib/somelimit/package.json
new file mode 100644
index 0000000..bbedb32
--- /dev/null
+++ b/lib/somelimit/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "async.somelimit",
+ "description": "async somelimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachoflimit": "0.5.2",
+ "async.util.createtester": "0.5.2",
+ "async.util.identity": "0.5.2",
+ "async.util.tobool": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "somelimit"
+ ]
+}
diff --git a/lib/sortby/.editorconfig b/lib/sortby/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/sortby/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/sortby/.gitignore b/lib/sortby/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/sortby/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/sortby/.jscsrc b/lib/sortby/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/sortby/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/sortby/.jshintrc b/lib/sortby/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/sortby/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/sortby/README.md b/lib/sortby/README.md
new file mode 100644
index 0000000..1b00189
--- /dev/null
+++ b/lib/sortby/README.md
@@ -0,0 +1,13 @@
+# async.sortby
+
+![Last version](https://img.shields.io/github/tag/async-js/async.sortby.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.sortby.svg?style=flat-square)](https://david-dm.org/async-js/async.sortby)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.sortby.svg?style=flat-square)](https://david-dm.org/async-js/async.sortby#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.sortby.svg?style=flat-square)](https://www.npmjs.org/package/async.sortby)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#sortby](https://github.com/async-js/async#async.sortby) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/sortby/index.js b/lib/sortby/index.js
new file mode 100644
index 0000000..3bf5953
--- /dev/null
+++ b/lib/sortby/index.js
@@ -0,0 +1,23 @@
+'use strict';
+
+var map = require('async.util.map');
+var mapAsync = require('async.map');
+
+module.exports = function sortBy (arr, iterator, cb) {
+ mapAsync(arr, function (x, cb) {
+ iterator(x, function (err, criteria) {
+ if (err) return cb(err);
+ cb(null, {value: x, criteria: criteria});
+ });
+ }, function (err, results) {
+ if (err) return cb(err);
+ cb(null, map(results.sort(comparator), function (x) {
+ return x.value;
+ }));
+ });
+
+ function comparator(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }
+};
diff --git a/lib/sortby/package.json b/lib/sortby/package.json
new file mode 100644
index 0000000..00494ac
--- /dev/null
+++ b/lib/sortby/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.sortby",
+ "description": "async sortbymethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.map": "0.5.2",
+ "async.util.map": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "sortby"
+ ]
+}
diff --git a/lib/times/.editorconfig b/lib/times/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/times/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/times/.gitignore b/lib/times/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/times/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/times/.jscsrc b/lib/times/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/times/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/times/.jshintrc b/lib/times/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/times/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/times/README.md b/lib/times/README.md
new file mode 100644
index 0000000..f0e13a8
--- /dev/null
+++ b/lib/times/README.md
@@ -0,0 +1,13 @@
+# async.times
+
+![Last version](https://img.shields.io/github/tag/async-js/async.times.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.times.svg?style=flat-square)](https://david-dm.org/async-js/async.times)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.times.svg?style=flat-square)](https://david-dm.org/async-js/async.times#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.times.svg?style=flat-square)](https://www.npmjs.org/package/async.times)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#times](https://github.com/async-js/async#async.times) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/times/index.js b/lib/times/index.js
new file mode 100644
index 0000000..94cae6f
--- /dev/null
+++ b/lib/times/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var map = require('async.map');
+var times = require('async.util.times');
+
+module.exports = times(map);
diff --git a/lib/times/package.json b/lib/times/package.json
new file mode 100644
index 0000000..a00c4d1
--- /dev/null
+++ b/lib/times/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.times",
+ "description": "async timesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.map": "0.5.2",
+ "async.util.times": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "times"
+ ]
+}
diff --git a/lib/timeslimit/.editorconfig b/lib/timeslimit/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/timeslimit/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/timeslimit/.gitignore b/lib/timeslimit/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/timeslimit/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/timeslimit/.jscsrc b/lib/timeslimit/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/timeslimit/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/timeslimit/.jshintrc b/lib/timeslimit/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/timeslimit/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/timeslimit/README.md b/lib/timeslimit/README.md
new file mode 100644
index 0000000..349f7a0
--- /dev/null
+++ b/lib/timeslimit/README.md
@@ -0,0 +1,13 @@
+# async.timeslimit
+
+![Last version](https://img.shields.io/github/tag/async-js/async.timeslimit.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.timeslimit.svg?style=flat-square)](https://david-dm.org/async-js/async.timeslimit)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.timeslimit.svg?style=flat-square)](https://david-dm.org/async-js/async.timeslimit#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.timeslimit.svg?style=flat-square)](https://www.npmjs.org/package/async.timeslimit)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#timeslimit](https://github.com/async-js/async#async.timeslimit) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/timeslimit/index.js b/lib/timeslimit/index.js
new file mode 100644
index 0000000..0247d94
--- /dev/null
+++ b/lib/timeslimit/index.js
@@ -0,0 +1,8 @@
+'use strict';
+
+var range = require('async.util.range');
+var mapLimit = require('async.maplimit');
+
+module.exports = function timeLimit(count, limit, iterator, cb) {
+ return mapLimit(range(count), limit, iterator, cb);
+};
diff --git a/lib/timeslimit/package.json b/lib/timeslimit/package.json
new file mode 100644
index 0000000..6aaa4fc
--- /dev/null
+++ b/lib/timeslimit/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.timeslimit",
+ "description": "async timeslimitmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.maplimit": "0.5.2",
+ "async.util.range": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "timeslimit"
+ ]
+}
diff --git a/lib/timesseries/.editorconfig b/lib/timesseries/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/timesseries/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/timesseries/.gitignore b/lib/timesseries/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/timesseries/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/timesseries/.jscsrc b/lib/timesseries/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/timesseries/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/timesseries/.jshintrc b/lib/timesseries/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/timesseries/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/timesseries/README.md b/lib/timesseries/README.md
new file mode 100644
index 0000000..b83b062
--- /dev/null
+++ b/lib/timesseries/README.md
@@ -0,0 +1,13 @@
+# async.timesseries
+
+![Last version](https://img.shields.io/github/tag/async-js/async.timesseries.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.timesseries.svg?style=flat-square)](https://david-dm.org/async-js/async.timesseries)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.timesseries.svg?style=flat-square)](https://david-dm.org/async-js/async.timesseries#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.timesseries.svg?style=flat-square)](https://www.npmjs.org/package/async.timesseries)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#timesseries](https://github.com/async-js/async#async.timesseries) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/timesseries/index.js b/lib/timesseries/index.js
new file mode 100644
index 0000000..e918a6c
--- /dev/null
+++ b/lib/timesseries/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var times = require('async.util.times');
+var mapSeries = require('async.mapseries');
+
+module.exports = times(mapSeries);
diff --git a/lib/timesseries/package.json b/lib/timesseries/package.json
new file mode 100644
index 0000000..57e4e07
--- /dev/null
+++ b/lib/timesseries/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.timesseries",
+ "description": "async timesseriesmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.mapseries": "0.5.2",
+ "async.util.times": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "timesseries"
+ ]
+}
diff --git a/lib/transform/.editorconfig b/lib/transform/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/transform/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/transform/.gitignore b/lib/transform/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/transform/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/transform/.jscsrc b/lib/transform/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/transform/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/transform/.jshintrc b/lib/transform/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/transform/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/transform/README.md b/lib/transform/README.md
new file mode 100644
index 0000000..f37a132
--- /dev/null
+++ b/lib/transform/README.md
@@ -0,0 +1,13 @@
+# async.transform
+
+![Last version](https://img.shields.io/github/tag/async-js/async.transform.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.transform.svg?style=flat-square)](https://david-dm.org/async-js/async.transform)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.transform.svg?style=flat-square)](https://david-dm.org/async-js/async.transform#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.transform.svg?style=flat-square)](https://www.npmjs.org/package/async.transform)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#transform](https://github.com/async-js/async#async.transform) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/transform/index.js b/lib/transform/index.js
new file mode 100644
index 0000000..8511c56
--- /dev/null
+++ b/lib/transform/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var eachOf = require('async.eachof');
+var isArray = require('async.util.isarray');
+
+module.exports = function transform (arr, memo, iterator, callback) {
+ if (arguments.length === 3) {
+ callback = iterator;
+ iterator = memo;
+ memo = isArray(arr) ? [] : {};
+ }
+
+ eachOf(arr, function(v, k, cb) {
+ iterator(memo, v, k, cb);
+ }, function(err) {
+ callback(err, memo);
+ });
+};
diff --git a/lib/transform/package.json b/lib/transform/package.json
new file mode 100644
index 0000000..6044bfc
--- /dev/null
+++ b/lib/transform/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.transform",
+ "description": "async transformmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.eachof": "0.5.2",
+ "async.util.isarray": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "transform"
+ ]
+}
diff --git a/lib/unmemoize/.editorconfig b/lib/unmemoize/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/unmemoize/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/unmemoize/.gitignore b/lib/unmemoize/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/unmemoize/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/unmemoize/.jscsrc b/lib/unmemoize/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/unmemoize/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/unmemoize/.jshintrc b/lib/unmemoize/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/unmemoize/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/unmemoize/README.md b/lib/unmemoize/README.md
new file mode 100644
index 0000000..70d8527
--- /dev/null
+++ b/lib/unmemoize/README.md
@@ -0,0 +1,13 @@
+# async.unmemoize
+
+![Last version](https://img.shields.io/github/tag/async-js/async.unmemoize.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.unmemoize.svg?style=flat-square)](https://david-dm.org/async-js/async.unmemoize)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.unmemoize.svg?style=flat-square)](https://david-dm.org/async-js/async.unmemoize#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.unmemoize.svg?style=flat-square)](https://www.npmjs.org/package/async.unmemoize)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#unmemoize](https://github.com/async-js/async#async.unmemoize) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/unmemoize/index.js b/lib/unmemoize/index.js
new file mode 100644
index 0000000..a69cc57
--- /dev/null
+++ b/lib/unmemoize/index.js
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function unmemoize(fn) {
+ return function () {
+ return (fn.unmemoized || fn).apply(null, arguments);
+ };
+};
diff --git a/lib/unmemoize/package.json b/lib/unmemoize/package.json
new file mode 100644
index 0000000..8804342
--- /dev/null
+++ b/lib/unmemoize/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "async.unmemoize",
+ "description": "async unmemoizemethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "keywords": [
+ "async",
+ "async-modularized",
+ "unmemoize"
+ ]
+}
diff --git a/lib/until/.editorconfig b/lib/until/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/until/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/until/.gitignore b/lib/until/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/until/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/until/.jscsrc b/lib/until/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/until/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/until/.jshintrc b/lib/until/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/until/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/until/README.md b/lib/until/README.md
new file mode 100644
index 0000000..c83cde2
--- /dev/null
+++ b/lib/until/README.md
@@ -0,0 +1,13 @@
+# async.until
+
+![Last version](https://img.shields.io/github/tag/async-js/async.until.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.until.svg?style=flat-square)](https://david-dm.org/async-js/async.until)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.until.svg?style=flat-square)](https://david-dm.org/async-js/async.until#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.until.svg?style=flat-square)](https://www.npmjs.org/package/async.until)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#until](https://github.com/async-js/async#async.until) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/until/index.js b/lib/until/index.js
new file mode 100644
index 0000000..704c38b
--- /dev/null
+++ b/lib/until/index.js
@@ -0,0 +1,9 @@
+'use strict';
+
+var whilst = require('async.whilst');
+
+module.exports = function until(test, iterator, cb) {
+ return whilst(function() {
+ return !test.apply(this, arguments);
+ }, iterator, cb);
+};
diff --git a/lib/until/package.json b/lib/until/package.json
new file mode 100644
index 0000000..bbd3af7
--- /dev/null
+++ b/lib/until/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "async.until",
+ "description": "async untilmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.whilst": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "until"
+ ]
+}
diff --git a/lib/waterfall/.editorconfig b/lib/waterfall/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/waterfall/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/waterfall/.gitignore b/lib/waterfall/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/waterfall/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/waterfall/.jscsrc b/lib/waterfall/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/waterfall/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/waterfall/.jshintrc b/lib/waterfall/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/waterfall/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/waterfall/README.md b/lib/waterfall/README.md
new file mode 100644
index 0000000..17f5481
--- /dev/null
+++ b/lib/waterfall/README.md
@@ -0,0 +1,13 @@
+# async.waterfall
+
+![Last version](https://img.shields.io/github/tag/async-js/async.waterfall.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.waterfall.svg?style=flat-square)](https://david-dm.org/async-js/async.waterfall)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.waterfall.svg?style=flat-square)](https://david-dm.org/async-js/async.waterfall#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.waterfall.svg?style=flat-square)](https://www.npmjs.org/package/async.waterfall)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#waterfall](https://github.com/async-js/async#async.waterfall) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/waterfall/index.js b/lib/waterfall/index.js
new file mode 100644
index 0000000..eaf6d78
--- /dev/null
+++ b/lib/waterfall/index.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var once = require('async.util.once');
+var noop = require('async.util.noop');
+var isArray = require('async.util.isarray');
+var restParam = require('async.util.restparam');
+var ensureAsync = require('async.util.ensureasync');
+var iterator = require('async.iterator');
+
+module.exports = function(tasks, cb) {
+ cb = once(cb || noop);
+ if (!isArray(tasks)) return cb(new Error('First argument to waterfall must be an array of functions'));
+ if (!tasks.length) return cb();
+
+ function wrapIterator(iterator) {
+ return restParam(function(err, args) {
+ if (err) {
+ cb.apply(null, [err].concat(args));
+ } else {
+ var next = iterator.next();
+ if (next) {
+ args.push(wrapIterator(next));
+ } else {
+ args.push(cb);
+ }
+ ensureAsync(iterator).apply(null, args);
+ }
+ });
+ }
+ wrapIterator(iterator(tasks))();
+};
diff --git a/lib/waterfall/package.json b/lib/waterfall/package.json
new file mode 100644
index 0000000..3a985cb
--- /dev/null
+++ b/lib/waterfall/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "async.waterfall",
+ "description": "async waterfallmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.iterator": "0.5.2",
+ "async.util.ensureasync": "0.5.2",
+ "async.util.isarray": "0.5.2",
+ "async.util.noop": "0.5.2",
+ "async.util.once": "0.5.2",
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "waterfall"
+ ]
+}
diff --git a/lib/whilst/.editorconfig b/lib/whilst/.editorconfig
new file mode 100644
index 0000000..7f502d4
--- /dev/null
+++ b/lib/whilst/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
diff --git a/lib/whilst/.gitignore b/lib/whilst/.gitignore
new file mode 100644
index 0000000..8feeb01
--- /dev/null
+++ b/lib/whilst/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+dist
+perf/versions
+nyc_output
+coverage
+*.log
+.DS_Store
+npm-debug.log
diff --git a/lib/whilst/.jscsrc b/lib/whilst/.jscsrc
new file mode 100644
index 0000000..b8cfa17
--- /dev/null
+++ b/lib/whilst/.jscsrc
@@ -0,0 +1,3 @@
+{
+ "validateIndentation": 4
+} \ No newline at end of file
diff --git a/lib/whilst/.jshintrc b/lib/whilst/.jshintrc
new file mode 100644
index 0000000..76be34a
--- /dev/null
+++ b/lib/whilst/.jshintrc
@@ -0,0 +1,29 @@
+{
+ // Enforcing options
+ "eqeqeq": false,
+ "forin": true,
+ "indent": 4,
+ "noarg": true,
+ "undef": true,
+ "unused": true,
+ "trailing": true,
+ "evil": true,
+ "laxcomma": true,
+
+ // Relaxing options
+ "onevar": false,
+ "asi": false,
+ "eqnull": true,
+ "expr": false,
+ "loopfunc": true,
+ "sub": true,
+ "browser": true,
+ "node": true,
+ "globals": {
+ "self": true,
+ "define": true,
+ "describe": true,
+ "context": true,
+ "it": true
+ }
+}
diff --git a/lib/whilst/README.md b/lib/whilst/README.md
new file mode 100644
index 0000000..6ba0e50
--- /dev/null
+++ b/lib/whilst/README.md
@@ -0,0 +1,13 @@
+# async.whilst
+
+![Last version](https://img.shields.io/github/tag/async-js/async.whilst.svg?style=flat-square)
+[![Dependency status](http://img.shields.io/david/async-js/async.whilst.svg?style=flat-square)](https://david-dm.org/async-js/async.whilst)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.whilst.svg?style=flat-square)](https://david-dm.org/async-js/async.whilst#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.whilst.svg?style=flat-square)](https://www.npmjs.org/package/async.whilst)
+[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats)
+
+> [async#whilst](https://github.com/async-js/async#async.whilst) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/lib/whilst/index.js b/lib/whilst/index.js
new file mode 100644
index 0000000..a7930a3
--- /dev/null
+++ b/lib/whilst/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var noop = require('async.util.noop');
+var restParam = require('async.util.restparam');
+
+module.exports = function whilst(test, iterator, cb) {
+ cb = cb || noop;
+ if (!test()) return cb(null);
+ var next = restParam(function(err, args) {
+ if (err) return cb(err);
+ if (test.apply(this, args)) return iterator(next);
+ cb.apply(null, [null].concat(args));
+ });
+ iterator(next);
+};
diff --git a/lib/whilst/package.json b/lib/whilst/package.json
new file mode 100644
index 0000000..d8e96da
--- /dev/null
+++ b/lib/whilst/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "async.whilst",
+ "description": "async whilstmethod as module.",
+ "main": "./index.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caolan/async.git"
+ },
+ "author": "Caolan McMahon",
+ "version": "0.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "async.util.noop": "0.5.2",
+ "async.util.restparam": "0.5.2"
+ },
+ "keywords": [
+ "async",
+ "async-modularized",
+ "whilst"
+ ]
+}
diff --git a/mocha_test/compose.js b/mocha_test/compose.js
index 85306a5..5be9192 100644
--- a/mocha_test/compose.js
+++ b/mocha_test/compose.js
@@ -1,4 +1,4 @@
-var async = require('../lib/async');
+var async = require('../lib');
var expect = require('chai').expect;
describe('compose', function(){
diff --git a/mocha_test/forever.js b/mocha_test/forever.js
index 970c422..ec21ed7 100644
--- a/mocha_test/forever.js
+++ b/mocha_test/forever.js
@@ -1,4 +1,4 @@
-var async = require('../lib/async');
+var async = require('../lib');
var expect = require('chai').expect;
var isBrowser = require('./support/is_browser');
diff --git a/package.json b/package.json
index 3e37868..03d8b23 100644
--- a/package.json
+++ b/package.json
@@ -1,20 +1,9 @@
{
"name": "async",
"description": "Higher-order functions and common patterns for asynchronous code",
+ "version": "0.5.2",
"main": "lib/async.js",
- "files": [
- "lib",
- "dist/async.js",
- "dist/async.min.js"
- ],
"author": "Caolan McMahon",
- "version": "1.5.0",
- "keywords": [
- "async",
- "callback",
- "utility",
- "module"
- ],
"repository": {
"type": "git",
"url": "https://github.com/caolan/async.git"
@@ -22,13 +11,84 @@
"bugs": {
"url": "https://github.com/caolan/async/issues"
},
- "license": "MIT",
+ "keywords": [
+ "async",
+ "callback",
+ "module",
+ "utility"
+ ],
+ "dependencies": {
+ "async.nexttick": "^0.5.1",
+ "async.setimmediate": "^0.5.1",
+ "async.each": "^0.5.1",
+ "async.eachseries": "^0.5.1",
+ "async.eachlimit": "^0.5.1",
+ "async.eachof": "^0.5.1",
+ "async.eachofseries": "^0.5.1",
+ "async.eachoflimit": "^0.5.1",
+ "async.map": "^0.5.1",
+ "async.mapseries": "^0.5.1",
+ "async.maplimit": "^0.5.1",
+ "async.reduce": "^0.5.1",
+ "async.reduceright": "^0.5.1",
+ "async.transform": "^0.5.1",
+ "async.filter": "^0.5.1",
+ "async.filterlimit": "^0.5.1",
+ "async.filterseries": "^0.5.1",
+ "async.reject": "^0.5.1",
+ "async.rejectlimit": "^0.5.1",
+ "async.rejectseries": "^0.5.1",
+ "async.some": "^0.5.1",
+ "async.somelimit": "^0.5.1",
+ "async.every": "^0.5.1",
+ "async.everylimit": "^0.5.1",
+ "async.detect": "^0.5.1",
+ "async.detectseries": "^0.5.1",
+ "async.detectlimit": "^0.5.1",
+ "async.sortby": "^0.5.1",
+ "async.auto": "git://github.com/async-js/async.auto.git",
+ "async.retry": "^0.5.1",
+ "async.waterfall": "^0.5.1",
+ "async.parallel": "^0.5.1",
+ "async.parallellimit": "^0.5.1",
+ "async.series": "^0.5.1",
+ "async.iterator": "^0.5.1",
+ "async.apply": "^0.5.1",
+ "async.concat": "^0.5.1",
+ "async.concatseries": "^0.5.1",
+ "async.whilst": "^0.5.1",
+ "async.dowhilst": "^0.5.1",
+ "async.until": "^0.5.1",
+ "async.dountil": "^0.5.1",
+ "async.during": "^0.5.1",
+ "async.doduring": "^0.5.1",
+ "async.queue": "^0.5.1",
+ "async.priorityqueue": "^0.5.1",
+ "async.cargo": "^0.5.1",
+ "async.log": "^0.5.1",
+ "async.dir": "^0.5.1",
+ "async.memoize": "^0.5.1",
+ "async.unmemoize": "^0.5.1",
+ "async.times": "^0.5.1",
+ "async.timesseries": "^0.5.1",
+ "async.timeslimit": "^0.5.1",
+ "async.seq": "^0.5.1",
+ "async.compose": "^0.5.1",
+ "async.applyeach": "^0.5.1",
+ "async.applyeachseries": "^0.5.1",
+ "async.forever": "^0.5.1",
+ "async.ensureasync": "^0.5.1",
+ "async.constant": "^0.5.1",
+ "async.asyncify": "^0.5.1"
+ },
"devDependencies": {
"benchmark": "bestiejs/benchmark.js",
"bluebird": "^2.9.32",
"chai": "^3.1.0",
"coveralls": "^2.11.2",
"es6-promise": "^2.3.0",
+ "fs-extra": "~0.26.3",
+ "gulp": "~3.9.0",
"jscs": "^1.13.1",
"jshint": "~2.8.0",
"karma": "^0.13.2",
@@ -37,6 +97,7 @@
"karma-mocha": "^0.2.0",
"karma-mocha-reporter": "^1.0.2",
"lodash": "^3.9.0",
+ "lodash.template": "~3.6.2",
"mkdirp": "~0.5.1",
"mocha": "^2.2.5",
"native-promise-only": "^0.8.0-a",
@@ -45,41 +106,49 @@
"rsvp": "^3.0.18",
"semver": "^4.3.6",
"uglify-js": "~2.4.0",
+ "vinyl-buffer": "~1.0.0",
+ "vinyl-source-stream": "~1.1.0",
"xyz": "^0.5.0",
"yargs": "~3.9.1"
},
- "jam": {
- "main": "lib/async.js",
- "include": [
- "lib/async.js",
- "README.md",
- "LICENSE"
- ],
- "categories": [
- "Utilities"
- ]
- },
+ "files": [
+ "dist/async.js",
+ "dist/async.min.js",
+ "lib"
+ ],
"scripts": {
- "mocha-node-test": "mocha mocha_test/",
+ "coverage": "nyc npm test && nyc report",
+ "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
+ "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
"mocha-browser-test": "karma start",
+ "mocha-node-test": "mocha mocha_test/",
"mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
"nodeunit-test": "nodeunit test/test-async.js",
- "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test",
- "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
- "coverage": "nyc npm test && nyc report",
- "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
+ "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test"
+ },
+ "license": "MIT",
+ "jam": {
+ "categories": [
+ "Utilities"
+ ],
+ "include": [
+ "LICENSE",
+ "README.md",
+ "lib/async.js"
+ ],
+ "main": "lib/async.js"
},
"spm": {
"main": "lib/async.js"
},
"volo": {
- "main": "lib/async.js",
"ignore": [
"**/.*",
- "node_modules",
"bower_components",
+ "node_modules",
"test",
"tests"
- ]
+ ],
+ "main": "lib/async.js"
}
}
diff --git a/scripts/each-module.js b/scripts/each-module.js
new file mode 100644
index 0000000..ec25142
--- /dev/null
+++ b/scripts/each-module.js
@@ -0,0 +1,27 @@
+'use strict';
+
+var fs = require('fs');
+var path = require('path');
+var term = require('oh-my-terminal');
+var template = require('lodash.template');
+
+var MODULES_PATH = './lib/';
+
+function getFolders(dir) {
+ return fs.readdirSync(dir)
+ .filter(function(file) {
+ return fs.statSync(path.join(dir, file)).isDirectory();
+ });
+}
+
+module.exports = function(cmd) {
+ getFolders(MODULES_PATH).forEach(function(module) {
+ var command = ['cd lib/<%= name %>'].concat(cmd).join(' &&');
+ var action = template(command)({name: module});
+ var done = term.exec(action);
+
+ console.log("\n :: status for " + module + "::\n");
+ console.log(done);
+ });
+
+};
diff --git a/scripts/gk.js b/scripts/gk.js
new file mode 100644
index 0000000..04ec81a
--- /dev/null
+++ b/scripts/gk.js
@@ -0,0 +1,4 @@
+'use strict';
+
+var eachModule = require('./each-module');
+eachModule(['gk enable']);
diff --git a/scripts/init.js b/scripts/init.js
new file mode 100644
index 0000000..8c55523
--- /dev/null
+++ b/scripts/init.js
@@ -0,0 +1,9 @@
+'use strict';
+
+var eachModule = require('./each-module');
+eachModule(['rm -rf .git ',
+ 'git init',
+ 'git remotes add origin git@github.com:async-js/async.<%= name %>.git',
+ 'git add .',
+ 'git commit -m "first commit"'
+ ]);
diff --git a/scripts/publish.js b/scripts/publish.js
new file mode 100644
index 0000000..32b2bcf
--- /dev/null
+++ b/scripts/publish.js
@@ -0,0 +1,4 @@
+'use strict';
+
+var eachModule = require('./each-module');
+eachModule(['npm publish']);
diff --git a/scripts/push.js b/scripts/push.js
new file mode 100644
index 0000000..1a9584c
--- /dev/null
+++ b/scripts/push.js
@@ -0,0 +1,8 @@
+'use strict';
+var eachModule = require('./each-module');
+eachModule(['git-up',
+ 'git add .',
+ 'git commit -m "bumped new version"',
+ 'git push origin master --force',
+ ]);
+eachModule(['npm publish']);
diff --git a/support/dependencies.json b/support/dependencies.json
new file mode 100644
index 0000000..2388eb4
--- /dev/null
+++ b/support/dependencies.json
@@ -0,0 +1,262 @@
+{
+ "apply": {
+ "async.util.restparam": "<%=version%>"
+ },
+ "applyeach": {
+ "async.eachof": "<%=version%>",
+ "async.util.applyeach": "<%=version%>"
+ },
+ "applyeachseries": {
+ "async.eachofseries": "<%=version%>",
+ "async.util.applyeach": "<%=version%>"
+ },
+ "asyncify": {
+ "async.util.asyncify": "<%=version%>"
+ },
+ "auto": {
+ "async.util.arrayeach": "<%=version%>",
+ "async.util.foreachof": "<%=version%>",
+ "async.util.indexof": "<%=version%>",
+ "async.util.isarray": "<%=version%>",
+ "async.util.keys": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.once": "<%=version%>",
+ "async.util.reduce": "<%=version%>",
+ "async.util.restparam": "<%=version%>",
+ "async.util.setimmediate": "<%=version%>"
+ },
+ "cargo": {
+ "async.util.queue": "<%=version%>"
+ },
+ "compose": {
+ "async.seq": "<%=version%>"
+ },
+ "concat": {
+ "async.util.concat": "<%=version%>",
+ "async.util.doparallel": "<%=version%>"
+ },
+ "concatseries": {
+ "async.util.concat": "<%=version%>",
+ "async.util.doseries": "<%=version%>"
+ },
+ "constant": {
+ "async.util.restparam": "<%=version%>"
+ },
+ "detect": {
+ "async.eachof": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.findgetresult": "<%=version%>",
+ "async.util.identity": "<%=version%>"
+ },
+ "detectlimit": {
+ "async.eachoflimit": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.findgetresult": "<%=version%>",
+ "async.util.identity": "<%=version%>"
+ },
+ "detectseries": {
+ "async.eachofseries": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.findgetresult": "<%=version%>",
+ "async.util.identity": "<%=version%>"
+ },
+ "dir": {
+ "async.util.consolefn": "<%=version%>"
+ },
+ "doduring": {
+ "async.during": "<%=version%>"
+ },
+ "dountil": {
+ "async.dowhilst": "<%=version%>"
+ },
+ "dowhilst": {
+ "async.whilst": "<%=version%>"
+ },
+ "during": {
+ "async.util.noop": "<%=version%>",
+ "async.util.restparam": "<%=version%>"
+ },
+ "each": {
+ "async.eachof": "<%=version%>",
+ "async.util.withoutindex": "<%=version%>"
+ },
+ "eachlimit": {
+ "async.util.eachoflimit": "<%=version%>",
+ "async.util.withoutindex": "<%=version%>"
+ },
+ "eachof": {
+ "async.util.keyiterator": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.once": "<%=version%>",
+ "async.util.onlyonce": "<%=version%>"
+ },
+ "eachoflimit": {
+ "async.util.eachoflimit": "<%=version%>"
+ },
+ "eachofseries": {
+ "async.util.keyiterator": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.once": "<%=version%>",
+ "async.util.onlyonce": "<%=version%>",
+ "async.util.setimmediate": "<%=version%>"
+ },
+ "eachseries": {
+ "async.eachofseries": "<%=version%>",
+ "async.util.withoutindex": "<%=version%>"
+ },
+ "ensureasync": {
+ "async.util.ensureasync": "<%=version%>"
+ },
+ "every": {
+ "async.eachof": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.notid": "<%=version%>"
+ },
+ "everylimit": {
+ "async.eachoflimit": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.notid": "<%=version%>"
+ },
+ "filter": {
+ "async.util.doparallel": "<%=version%>",
+ "async.util.filter": "<%=version%>"
+ },
+ "filterlimit": {
+ "async.util.doparallellimit": "<%=version%>",
+ "async.util.filter": "<%=version%>"
+ },
+ "filterseries": {
+ "async.util.doseries": "<%=version%>",
+ "async.util.filter": "<%=version%>"
+ },
+ "forever": {
+ "async.util.ensureasync": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.onlyonce": "<%=version%>"
+ },
+ "iterator": {},
+ "log": {
+ "async.util.consolefn": "<%=version%>"
+ },
+ "map": {
+ "async.util.doparallel": "<%=version%>",
+ "async.util.mapasync": "<%=version%>"
+ },
+ "maplimit": {
+ "async.util.doparallellimit": "<%=version%>",
+ "async.util.mapasync": "<%=version%>"
+ },
+ "mapseries": {
+ "async.util.doseries": "<%=version%>",
+ "async.util.mapasync": "<%=version%>"
+ },
+ "memoize": {
+ "async.util.identity": "<%=version%>",
+ "async.util.restparam": "<%=version%>",
+ "async.util.setimmediate": "<%=version%>"
+ },
+ "nexttick": {
+ "async.util.nexttick": "<%=version%>"
+ },
+ "parallel": {
+ "async.eachof": "<%=version%>",
+ "async.util.parallel": "<%=version%>"
+ },
+ "parallellimit": {
+ "async.util.eachoflimit": "<%=version%>",
+ "async.util.parallel": "<%=version%>"
+ },
+ "priorityqueue": {
+ "async.queue": "<%=version%>",
+ "async.util.arrayeach": "<%=version%>",
+ "async.util.isarray": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.setimmediate": "<%=version%>"
+ },
+ "queue": {
+ "async.util.queue": "<%=version%>"
+ },
+ "reduce": {
+ "async.eachofseries": "<%=version%>"
+ },
+ "reduceright": {
+ "async.reduce": "<%=version%>",
+ "async.util.identity": "<%=version%>",
+ "async.util.map": "<%=version%>"
+ },
+ "reject": {
+ "async.util.doparallel": "<%=version%>",
+ "async.util.reject": "<%=version%>"
+ },
+ "rejectlimit": {
+ "async.util.doparallellimit": "<%=version%>",
+ "async.util.reject": "<%=version%>"
+ },
+ "rejectseries": {
+ "async.util.doseries": "<%=version%>",
+ "async.util.reject": "<%=version%>"
+ },
+ "retry": {
+ "async.series": "<%=version%>"
+ },
+ "seq": {
+ "async.reduce": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.restparam": "<%=version%>"
+ },
+ "series": {
+ "async.eachofseries": "<%=version%>",
+ "async.util.parallel": "<%=version%>"
+ },
+ "setimmediate": {
+ "async.util.setimmediate": "<%=version%>"
+ },
+ "some": {
+ "async.eachof": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.identity": "<%=version%>",
+ "async.util.tobool": "<%=version%>"
+ },
+ "somelimit": {
+ "async.eachoflimit": "<%=version%>",
+ "async.util.createtester": "<%=version%>",
+ "async.util.identity": "<%=version%>",
+ "async.util.tobool": "<%=version%>"
+ },
+ "sortby": {
+ "async.map": "<%=version%>",
+ "async.util.map": "<%=version%>"
+ },
+ "times": {
+ "async.map": "<%=version%>",
+ "async.util.times": "<%=version%>"
+ },
+ "timeslimit": {
+ "async.maplimit": "<%=version%>",
+ "async.util.range": "<%=version%>"
+ },
+ "timesseries": {
+ "async.mapseries": "<%=version%>",
+ "async.util.times": "<%=version%>"
+ },
+ "transform": {
+ "async.eachof": "<%=version%>",
+ "async.util.isarray": "<%=version%>"
+ },
+ "unmemoize": {},
+ "until": {
+ "async.whilst": "<%=version%>"
+ },
+ "waterfall": {
+ "async.iterator": "<%=version%>",
+ "async.util.ensureasync": "<%=version%>",
+ "async.util.isarray": "<%=version%>",
+ "async.util.noop": "<%=version%>",
+ "async.util.once": "<%=version%>",
+ "async.util.restparam": "<%=version%>"
+ },
+ "whilst": {
+ "async.util.noop": "<%=version%>",
+ "async.util.restparam": "<%=version%>"
+ }
+}
diff --git a/support/module_template.md b/support/module_template.md
new file mode 100644
index 0000000..858f97a
--- /dev/null
+++ b/support/module_template.md
@@ -0,0 +1,13 @@
+# async.<%= name %>
+
+![Last version](https://img.shields.io/github/tag/async-js/async.<%= name %>.svg?style=flat-square)
+[![Build Status](http://img.shields.io/travis/async-js/async.<%= name %>/master.svg?style=flat-square)](https://travis-ci.org/async-js/async.<%= name %>)
+[![Dependency status](http://img.shields.io/david/async-js/async.<%= name %>.svg?style=flat-square)](https://david-dm.org/async-js/async.<%= name %>)
+[![Dev Dependencies Status](http://img.shields.io/david/dev/async-js/async.<%= name %>.svg?style=flat-square)](https://david-dm.org/async-js/async.<%= name %>#info=devDependencies)
+[![NPM Status](http://img.shields.io/npm/dm/async.<%= name %>.svg?style=flat-square)](https://www.npmjs.org/package/<%= name %>)
+
+> [async#<%= name %>](https://github.com/async-js/async#<%= name %>) method as module.
+
+## License
+
+MIT © [async-js](https://github.com/async-js)
diff --git a/test/test-async.js b/test/test-async.js
index ee0b950..a0be51b 100755
--- a/test/test-async.js
+++ b/test/test-async.js
@@ -3,7 +3,7 @@
* adding a new test, consider creating a new spec file in mocha_tests/
*/
-var async = require('../lib/async');
+var async = require('../lib');
if (!Function.prototype.bind) {
Function.prototype.bind = function (thisArg) {
@@ -2731,37 +2731,6 @@ exports['nextTick in the browser'] = function(test){
setTimeout(test.done, 100);
};
-exports['noConflict - node only'] = function(test){
- if (!isBrowser()) {
- // node only test
- test.expect(3);
- var fs = require('fs');
- var vm = require('vm');
- var filename = __dirname + '/../lib/async.js';
- fs.readFile(filename, function(err, content){
- if(err) return test.done();
-
- var s = vm.createScript(content, filename);
- var s2 = vm.createScript(
- content + 'this.async2 = this.async.noConflict();',
- filename
- );
-
- var sandbox1 = {async: 'oldvalue'};
- s.runInNewContext(sandbox1);
- test.ok(sandbox1.async);
-
- var sandbox2 = {async: 'oldvalue'};
- s2.runInNewContext(sandbox2);
- test.equals(sandbox2.async, 'oldvalue');
- test.ok(sandbox2.async2);
-
- test.done();
- });
- }
- else test.done();
-};
-
exports['concat'] = function(test){
test.expect(3);
var call_order = [];
diff --git a/test/test.html b/test/test.html
index 2450e2d..0047af4 100644
--- a/test/test.html
+++ b/test/test.html
@@ -6,7 +6,7 @@
the async lib internally and will overwrite the version we want to test
-->
<script src="../deps/nodeunit.js"></script>
- <script src="../lib/async.js"></script>
+ <script src="../dist/async.js"></script>
<link rel="stylesheet" href="../deps/nodeunit.css" type="text/css" media="screen" />
<script>
var _async = this.async;