{"_id":"contra","_rev":"5800","name":"contra","description":"Asynchronous flow control with a functional taste to it","dist-tags":{"latest":"1.9.4"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"time":{"modified":"2021-06-03T09:56:46.000Z","created":"2014-01-17T20:17:21.490Z","1.9.4":"2016-05-20T17:01:34.540Z","1.9.3":"2016-05-20T17:00:17.360Z","1.9.1":"2015-07-03T03:09:19.864Z","1.9.0":"2015-07-02T16:30:10.477Z","1.8.1":"2015-05-04T21:28:02.975Z","1.8.0":"2015-01-13T14:38:55.653Z","1.7.0":"2014-11-19T13:36:24.132Z","1.6.10":"2014-08-17T18:25:23.001Z","1.6.9":"2014-08-17T18:18:25.499Z","1.6.8":"2014-07-22T15:04:58.619Z","1.6.7":"2014-07-18T22:18:10.803Z","1.6.6":"2014-07-09T20:54:24.759Z","1.6.4":"2014-07-07T22:01:52.734Z","1.6.3":"2014-05-19T17:58:39.382Z","1.6.2":"2014-05-19T10:17:22.403Z","1.6.1":"2014-05-15T23:15:33.661Z","1.6.0":"2014-05-15T23:11:52.759Z","1.5.6":"2014-05-07T14:07:56.758Z","1.5.5":"2014-05-07T14:01:04.604Z","1.5.4":"2014-04-02T20:13:04.624Z","1.5.2":"2014-04-01T14:11:38.741Z","1.5.1":"2014-03-02T08:32:21.255Z","1.5.0":"2014-02-21T13:57:30.441Z","1.4.8":"2014-02-21T13:56:41.101Z","1.4.5":"2014-02-21T13:52:22.268Z","1.4.4":"2014-02-21T13:41:28.089Z","1.4.3":"2014-02-13T18:30:27.015Z","1.4.1":"2014-02-11T01:10:29.191Z","1.4.0":"2014-02-05T14:58:35.851Z","1.3.2":"2014-02-05T14:58:20.329Z","1.3.1":"2014-02-05T12:59:56.838Z","1.3.0":"2014-02-05T12:32:19.665Z","1.2.2":"2014-01-31T22:03:56.586Z","1.2.1":"2014-01-31T21:55:26.046Z","1.2.0":"2014-01-31T19:17:22.680Z","1.1.2":"2014-01-31T17:38:59.834Z","1.1.1":"2014-01-27T11:32:18.700Z","1.1.0":"2014-01-24T11:06:02.849Z","1.0.31":"2014-01-23T14:15:29.976Z","1.0.30":"2014-01-22T11:25:51.558Z","1.0.29":"2014-01-20T05:11:32.032Z","1.0.28":"2014-01-20T03:37:06.453Z","1.0.27":"2014-01-20T03:20:26.389Z","1.0.26":"2014-01-20T03:18:30.487Z","1.0.25":"2014-01-20T03:10:40.179Z","1.0.24":"2014-01-20T03:06:13.489Z","1.0.23":"2014-01-20T02:53:29.486Z","1.0.22":"2014-01-20T02:45:45.670Z","1.0.21":"2014-01-19T22:17:26.619Z","1.0.20":"2014-01-19T22:15:45.277Z","1.0.19":"2014-01-19T21:27:42.225Z","1.0.18":"2014-01-19T21:13:49.635Z","1.0.17":"2014-01-19T19:14:36.584Z","1.0.16":"2014-01-19T19:08:47.822Z","1.0.15":"2014-01-19T19:04:36.013Z","1.0.14":"2014-01-19T18:52:38.045Z","1.0.13":"2014-01-19T18:15:15.198Z","1.0.12":"2014-01-18T19:10:39.265Z","1.0.11":"2014-01-18T19:08:38.335Z","1.0.10":"2014-01-18T16:08:35.443Z","1.0.9":"2014-01-18T00:33:55.964Z","1.0.2":"2014-01-17T20:17:21.490Z"},"users":{"stdarg":true,"nescalante":true,"smallhelm":true,"dannote":true,"farskipper":true,"p54l0m5h1k":true,"r37r0m0d3l":true,"leomdg":true,"xfloops":true},"author":{"name":"Nicolas Bevacqua","email":"hello@bevacqua.io","url":"http://bevacqua.io"},"repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"versions":{"1.9.4":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.9.4","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"hello@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["a","async","asynchronous","control","flow","generator","promises","q"],"main":"contra.js","scripts":{"build":"browserify -s contra -do dist/contra.js contra.js && uglifyjs -m -c -o dist/contra.min.js dist/contra.js","build-shim":"browserify -do dist/contra.shim.js contra.shim.js && uglifyjs -m -c -o dist/contra.shim.min.js dist/contra.shim.js","deploy":"npm run build && npm run build-shim && npm run test && npm run deployment","deployment":"git add dist && npm version ${BUMP:-\"patch\"} --no-git-tag-version && git add package.json && git commit -am \"Autogenerated pre-deployment commit\" && bower version ${BUMP:-\"patch\"} && git reset HEAD~2 && git add . && git commit -am \"Release $(cat package.json | jq -r .version)\" && git push --tags && npm publish && git push","test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"browsers":{"android-browser":[4.2],"chrome":[15,20,25,30,5,"canary"],"firefox":[10,15,20,25,3.6,"nightly"],"ie":[10,6,7,8,9],"ipad":[6],"iphone":[6],"opera":[15,16,17,"next"],"safari":[4,5.1,6]},"files":["contra.js","contra.shim.js","test/*.js"],"harness":"mocha"},"devDependencies":{"assert":"~1.1.0","browserify":"10.2.4","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","uglify-js":"2.4.23"},"dependencies":{"atoa":"1.0.0","ticky":"1.0.1"},"gitHead":"661cc16335ea6cf91f16965bea4c8930c09b2f2a","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.9.4","_shasum":"f53bde42d7e5b5985cae4d99a8d610526de8f28d","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"f53bde42d7e5b5985cae4d99a8d610526de8f28d","size":23618,"noattachment":false,"key":"/contra/-/contra-1.9.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.9.4.tgz"},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/contra-1.9.4.tgz_1463763692360_0.3540788374375552"},"directories":{},"publish_time":1463763694540,"_cnpm_publish_time":1463763694540,"_hasShrinkwrap":false},"1.9.3":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.9.3","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"hello@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["a","async","asynchronous","control","flow","generator","promises","q"],"main":"contra.js","scripts":{"build":"browserify -s contra -do dist/contra.js contra.js && uglifyjs -m -c -o dist/contra.min.js dist/contra.js","build-shim":"browserify -do dist/contra.shim.js contra.shim.js && uglifyjs -m -c -o dist/contra.shim.min.js dist/contra.shim.js","deploy":"npm run build && npm run build-shim && npm run test && npm run deployment","deployment":"git add dist && npm version ${BUMP:-\"patch\"} --no-git-tag-version && git add package.json && git commit -am \"Autogenerated pre-deployment commit\" && bower version ${BUMP:-\"patch\"} && git reset HEAD~2 && git add . && git commit -am \"Release $(cat package.json | jq -r .version)\" && git push --tags && npm publish && git push","test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"browsers":{"android-browser":[4.2],"chrome":[15,20,25,30,5,"canary"],"firefox":[10,15,20,25,3.6,"nightly"],"ie":[10,6,7,8,9],"ipad":[6],"iphone":[6],"opera":[15,16,17,"next"],"safari":[4,5.1,6]},"files":["contra.js","contra.shim.js","test/*.js"],"harness":"mocha"},"devDependencies":{"assert":"~1.1.0","browserify":"10.2.4","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","uglify-js":"2.4.23"},"dependencies":{"atoa":"1.0.0","ticky":"1.0.1"},"gitHead":"37f761c4d0546c9080399d4f9ca46c3f715b3f20","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.9.3","_shasum":"7dccaf5fb1978c6dae547d6b14e97abb21a37018","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"7dccaf5fb1978c6dae547d6b14e97abb21a37018","size":23621,"noattachment":false,"key":"/contra/-/contra-1.9.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.9.3.tgz"},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/contra-1.9.3.tgz_1463763616462_0.2457225415855646"},"directories":{},"publish_time":1463763617360,"_cnpm_publish_time":1463763617360,"_hasShrinkwrap":false},"1.9.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.9.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"hello@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["a","async","asynchronous","control","flow","generator","promises","q"],"main":"contra.js","scripts":{"build":"browserify -s contra -do dist/contra.js contra.js && uglifyjs -m -c -o dist/contra.min.js dist/contra.js","build-shim":"browserify -do dist/contra.shim.js contra.shim.js && uglifyjs -m -c -o dist/contra.shim.min.js dist/contra.shim.js","deploy":"npm run build && npm run build-shim && npm run test && npm run deployment","deployment":"git add dist && npm version ${BUMP:-\"patch\"} --no-git-tag-version && git add package.json && git commit -am \"Autogenerated pre-deployment commit\" && bower version ${BUMP:-\"patch\"} && git reset HEAD~2 && git add . && git commit -am \"Release $(cat package.json | jq -r .version)\" && git push --tags && npm publish && git push","test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"browsers":{"android-browser":[4.2],"chrome":[15,20,25,30,5,"canary"],"firefox":[10,15,20,25,3.6,"nightly"],"ie":[10,6,7,8,9],"ipad":[6],"iphone":[6],"opera":[15,16,17,"next"],"safari":[4,5.1,6]},"files":["contra.js","contra.shim.js","test/*.js"],"harness":"mocha"},"devDependencies":{"assert":"~1.1.0","browserify":"10.2.4","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","uglify-js":"2.4.23"},"dependencies":{"atoa":"1.0.0","ticky":"1.0.0"},"gitHead":"a0b7f0f19881ed33ab92df119f98862a136f1537","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.9.1","_shasum":"60e498274b3d2d332896d60f82900aefa2ecac8c","_from":".","_npmVersion":"3.0.0","_nodeVersion":"2.2.1","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"60e498274b3d2d332896d60f82900aefa2ecac8c","size":23586,"noattachment":false,"key":"/contra/-/contra-1.9.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.9.1.tgz"},"directories":{},"publish_time":1435892959864,"_cnpm_publish_time":1435892959864,"_hasShrinkwrap":false},"1.9.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.9.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"hello@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["a","async","asynchronous","control","flow","generator","promises","q"],"scripts":{"build":"browserify -s contra -do dist/contra.js src/contra.js && uglifyjs -m -c -o dist/contra.min.js dist/contra.js","build-shim":"browserify -do dist/contra.shim.js src/contra.shim.js && uglifyjs -m -c -o dist/contra.shim.min.js dist/contra.shim.js","deploy":"npm run build && npm run build-shim && npm run test && npm run deployment","deployment":"git add dist && npm version ${BUMP:-\"patch\"} --no-git-tag-version && git add package.json && git commit -am \"Autogenerated pre-deployment commit\" && bower version ${BUMP:-\"patch\"} && git reset HEAD~2 && git add . && git commit -am \"Release $(cat package.json | jq -r .version)\" && git push --tags && npm publish && git push","test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"browsers":{"android-browser":[4.2],"chrome":[15,20,25,30,5,"canary"],"firefox":[10,15,20,25,3.6,"nightly"],"ie":[10,6,7,8,9],"ipad":[6],"iphone":[6],"opera":[15,16,17,"next"],"safari":[4,5.1,6]},"files":["src/contra.js","src/contra.shim.js","test/*.js"],"harness":"mocha"},"devDependencies":{"assert":"~1.1.0","browserify":"10.2.4","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","uglify-js":"2.4.23"},"dependencies":{"atoa":"1.0.0","ticky":"1.0.0"},"gitHead":"7e232eef953a4fb69be1031985201616aaac120c","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.9.0","_shasum":"360738a3316217cab507440ee56142da8825ae76","_from":".","_npmVersion":"3.0.0","_nodeVersion":"2.2.1","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"360738a3316217cab507440ee56142da8825ae76","size":24052,"noattachment":false,"key":"/contra/-/contra-1.9.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.9.0.tgz"},"directories":{},"publish_time":1435854610477,"_cnpm_publish_time":1435854610477,"_hasShrinkwrap":false},"1.8.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.8.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"0fc49206a98885add71ca1020c218ae418e4edfc","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.8.1","_shasum":"ad85e9dcb681b81ca619659318386ad0030ff25b","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"ad85e9dcb681b81ca619659318386ad0030ff25b","size":14858,"noattachment":false,"key":"/contra/-/contra-1.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.8.1.tgz"},"directories":{},"publish_time":1430774882975,"_cnpm_publish_time":1430774882975,"_hasShrinkwrap":false},"1.8.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.8.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"64fcb5d1768f04bc8c277ce25f72a480623a1213","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.8.0","_shasum":"4ad91f0ff5031f030f7a4689d9c5565f3853698a","_from":".","_npmVersion":"2.1.10","_nodeVersion":"0.10.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"4ad91f0ff5031f030f7a4689d9c5565f3853698a","size":14796,"noattachment":false,"key":"/contra/-/contra-1.8.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.8.0.tgz"},"directories":{},"publish_time":1421159935653,"_cnpm_publish_time":1421159935653,"_hasShrinkwrap":false},"1.7.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.7.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"caf77613216054603a0124a253e0831dfba87dc9","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.7.0","_shasum":"8ae86b885175796b73dec6ce750fcc0df33d25d1","_from":".","_npmVersion":"1.4.26","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"8ae86b885175796b73dec6ce750fcc0df33d25d1","size":14433,"noattachment":false,"key":"/contra/-/contra-1.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.7.0.tgz"},"directories":{},"publish_time":1416404184132,"_cnpm_publish_time":1416404184132,"_hasShrinkwrap":false},"1.6.10":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.10","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"f92d53d2c1665247fe50f2f434d815cb9b2ce1f3","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.10","_shasum":"480d89f1d65351936dd98298bdb188ebcac81186","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"480d89f1d65351936dd98298bdb188ebcac81186","size":14583,"noattachment":false,"key":"/contra/-/contra-1.6.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.10.tgz"},"directories":{},"publish_time":1408299923001,"_cnpm_publish_time":1408299923001,"_hasShrinkwrap":false},"1.6.9":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.9","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"e0fad63988f181a483762884f378f7983ca1c21d","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.9","_shasum":"ed4a35bf5001cde565fb457d63fa9d78915b76af","_from":".","_npmVersion":"2.0.0-alpha-5","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"ed4a35bf5001cde565fb457d63fa9d78915b76af","size":14581,"noattachment":false,"key":"/contra/-/contra-1.6.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.9.tgz"},"directories":{},"publish_time":1408299505499,"_cnpm_publish_time":1408299505499,"_hasShrinkwrap":false},"1.6.8":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.8","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"b8e47113995b944b0ba5ed1936490eae48ad1bfa","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.8","_shasum":"c7b95def0628c75c6df01ad59281901ce966babf","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"c7b95def0628c75c6df01ad59281901ce966babf","size":14534,"noattachment":false,"key":"/contra/-/contra-1.6.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.8.tgz"},"directories":{},"publish_time":1406041498619,"_cnpm_publish_time":1406041498619,"_hasShrinkwrap":false},"1.6.7":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.7","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"66acafe55c138c7549c4eeca05fe84d165a64d22","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.7","_shasum":"cef636284a0f8d3e4f242a6d219a7d9719aa6f83","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"cef636284a0f8d3e4f242a6d219a7d9719aa6f83","size":14479,"noattachment":false,"key":"/contra/-/contra-1.6.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.7.tgz"},"directories":{},"publish_time":1405721890803,"_cnpm_publish_time":1405721890803,"_hasShrinkwrap":false},"1.6.6":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.6","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"gitHead":"a7438b2b270dfa1238b45baa3a06e4b2bbbbb0e3","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.6","_shasum":"b60878784a9f27b811b0a05d841bd1952a1ec82a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"b60878784a9f27b811b0a05d841bd1952a1ec82a","size":14374,"noattachment":false,"key":"/contra/-/contra-1.6.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.6.tgz"},"directories":{},"publish_time":1404939264759,"_cnpm_publish_time":1404939264759,"_hasShrinkwrap":false},"1.6.4":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.4","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.4","_shasum":"023727a2f1798a230f590da33f3a6bb1e53ff069","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"dist":{"shasum":"023727a2f1798a230f590da33f3a6bb1e53ff069","size":14228,"noattachment":false,"key":"/contra/-/contra-1.6.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.4.tgz"},"directories":{},"publish_time":1404770512734,"_cnpm_publish_time":1404770512734,"_hasShrinkwrap":false},"1.6.3":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.3","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.3","dist":{"shasum":"ebcf552b5d4cf0c848de04d3b6005fe6f359e558","size":13999,"noattachment":false,"key":"/contra/-/contra-1.6.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.3.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1400522319382,"_cnpm_publish_time":1400522319382,"_hasShrinkwrap":false},"1.6.2":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.2","dist":{"shasum":"a9598855bc5f7a524675bead5198bfc0a4182daa","size":13989,"noattachment":false,"key":"/contra/-/contra-1.6.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.2.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1400494642403,"_cnpm_publish_time":1400494642403,"_hasShrinkwrap":false},"1.6.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.1","dist":{"shasum":"314f3225238e656058eae6df5d8c79d48276eba5","size":13967,"noattachment":false,"key":"/contra/-/contra-1.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.1.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1400195733661,"_cnpm_publish_time":1400195733661,"_hasShrinkwrap":false},"1.6.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.6.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.6.0","dist":{"shasum":"f0a1de37be53b3b666cfbee52889f4b01f84a403","size":13963,"noattachment":false,"key":"/contra/-/contra-1.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.6.0.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1400195512759,"_cnpm_publish_time":1400195512759,"_hasShrinkwrap":false},"1.5.6":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.6","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.6","dist":{"shasum":"6278ba3b645cfde1404ebe51251a49956f7848e7","size":13771,"noattachment":false,"key":"/contra/-/contra-1.5.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.6.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1399471676758,"_cnpm_publish_time":1399471676758,"_hasShrinkwrap":false},"1.5.5":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.5","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp":"^3.6.2","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.5","dist":{"shasum":"e8605bc7c10071c1e2e0d1d13be2069e72558b6c","size":13742,"noattachment":false,"key":"/contra/-/contra-1.5.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.5.tgz"},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1399471264604,"_cnpm_publish_time":1399471264604,"_hasShrinkwrap":false},"1.5.4":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.4","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","gulp":"~3.5.5"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.4","dist":{"shasum":"49cd365ccd83da9d4eb148cff37e410c35a0457d","size":13894,"noattachment":false,"key":"/contra/-/contra-1.5.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.4.tgz"},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1396469584624,"_cnpm_publish_time":1396469584624,"_hasShrinkwrap":false},"1.5.2":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"devDependencies":{"assert":"~1.1.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-header":"^1.0.2","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","gulp":"~3.5.5"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.2","dist":{"shasum":"2df67dab3064aeaa272a7ad1a7c28a421de4ff42","size":57242,"noattachment":false,"key":"/contra/-/contra-1.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.2.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1396361498741,"_cnpm_publish_time":1396361498741,"_hasShrinkwrap":false},"1.5.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{"gulp-header":"^1.0.2"},"devDependencies":{"assert":"~1.1.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0","gulp":"~3.5.5"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.1","dist":{"shasum":"ce7c6a2a7a8905b23228c441c1dbe4547ff44b03","size":13677,"noattachment":false,"key":"/contra/-/contra-1.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.1.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1393749141255,"_cnpm_publish_time":1393749141255,"_hasShrinkwrap":false},"1.5.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.5.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{"gulp-header":"^1.0.2"},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.5.0","dist":{"shasum":"5f01d76ebeb29d574a3918ff2c20c7591a9bf7a7","size":57149,"noattachment":false,"key":"/contra/-/contra-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.5.0.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392991050441,"_cnpm_publish_time":1392991050441,"_hasShrinkwrap":false},"1.4.8":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.8","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{"gulp-header":"^1.0.2"},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.8","dist":{"shasum":"ac07ecc515d0ad7c11548782f71c491dd671366b","size":57149,"noattachment":false,"key":"/contra/-/contra-1.4.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.8.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392991001101,"_cnpm_publish_time":1392991001101,"_hasShrinkwrap":false},"1.4.5":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.5","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{"gulp-header":"^1.0.2"},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.5","dist":{"shasum":"c0a4a6dd8da6c73ebe5ac2d50043bc1356a53bfa","size":57151,"noattachment":false,"key":"/contra/-/contra-1.4.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.5.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392990742268,"_cnpm_publish_time":1392990742268,"_hasShrinkwrap":false},"1.4.4":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.4","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{"gulp-header":"^1.0.2"},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.4","dist":{"shasum":"94e05caf4712fe964d5afae7a97a164c3d4c5a47","size":57151,"noattachment":false,"key":"/contra/-/contra-1.4.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.4.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392990088089,"_cnpm_publish_time":1392990088089,"_hasShrinkwrap":false},"1.4.3":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.3","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.3","dist":{"shasum":"0398c2b63d0b905d2f620f4c51b62176f9f0544d","size":56869,"noattachment":false,"key":"/contra/-/contra-1.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.3.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392316227015,"_cnpm_publish_time":1392316227015,"_hasShrinkwrap":false},"1.4.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*.js"},"testling":{"harness":"mocha","files":["src/contra.js","src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.1","dist":{"shasum":"bfffbc898cbb75cd61be20ef102b12bad9441461","size":56841,"noattachment":false,"key":"/contra/-/contra-1.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.1.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1392081029191,"_cnpm_publish_time":1392081029191,"_hasShrinkwrap":false},"1.4.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.4.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.4.0","dist":{"shasum":"77f17a9b644fcbd268f5e9ee55f5978d38503987","size":12955,"noattachment":false,"key":"/contra/-/contra-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.4.0.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391612315851,"_cnpm_publish_time":1391612315851,"_hasShrinkwrap":false},"1.3.2":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.3.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js test/*"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.3.2","dist":{"shasum":"4c57d27cfe14b9ba7444486c0eb41a269af9efbc","size":12956,"noattachment":false,"key":"/contra/-/contra-1.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.3.2.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391612300329,"_cnpm_publish_time":1391612300329,"_hasShrinkwrap":false},"1.3.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.3.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.3.1","dist":{"shasum":"f314e0ec7ad7df165559a36a8e381607c6c551e5","size":12745,"noattachment":false,"key":"/contra/-/contra-1.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.3.1.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391605196838,"_cnpm_publish_time":1391605196838,"_hasShrinkwrap":false},"1.3.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.3.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.3.0","dist":{"shasum":"02966adfb8ae064096c2a729538cf953ba381a51","size":12579,"noattachment":false,"key":"/contra/-/contra-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.3.0.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391603539665,"_cnpm_publish_time":1391603539665,"_hasShrinkwrap":false},"1.2.2":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.2.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.2.2","dist":{"shasum":"bb77aecef126e12e5e5a15b826f3c2872fe645b6","size":12376,"noattachment":false,"key":"/contra/-/contra-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.2.2.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391205836586,"_cnpm_publish_time":1391205836586,"_hasShrinkwrap":false},"1.2.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.2.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.2.1","dist":{"shasum":"e58c68313a22c770d1e533190e2bcd0bf60ef224","size":12121,"noattachment":false,"key":"/contra/-/contra-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.2.1.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391205326046,"_cnpm_publish_time":1391205326046,"_hasShrinkwrap":false},"1.2.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.2.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.2.0","dist":{"shasum":"87326af4edc819f0a445f9cf970405d64a8012a2","size":12003,"noattachment":false,"key":"/contra/-/contra-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.2.0.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391195842680,"_cnpm_publish_time":1391195842680,"_hasShrinkwrap":false},"1.1.2":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.1.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.1.2","dist":{"shasum":"91ffcd93a32054ee85995d9c394932f876fac029","size":11603,"noattachment":false,"key":"/contra/-/contra-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.1.2.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1391189939834,"_cnpm_publish_time":1391189939834,"_hasShrinkwrap":false},"1.1.1":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.1.1","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.1.1","dist":{"shasum":"f5ac3ae1713e08c188cdd96f5f3274e133b64c1b","size":11542,"noattachment":false,"key":"/contra/-/contra-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.1.1.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390822338700,"_cnpm_publish_time":1390822338700,"_hasShrinkwrap":false},"1.1.0":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.1.0","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.1.0","dist":{"shasum":"7126f3595695c10c92f3b492b5140e5ae86d81fc","size":11370,"noattachment":false,"key":"/contra/-/contra-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.1.0.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390561562849,"_cnpm_publish_time":1390561562849,"_hasShrinkwrap":false},"1.0.31":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.0.31","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.31","dist":{"shasum":"8ae4e3f8496f47ff4d19d9ba2807e59bf4552aae","size":11261,"noattachment":false,"key":"/contra/-/contra-1.0.31.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.31.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390486529976,"_cnpm_publish_time":1390486529976,"_hasShrinkwrap":false},"1.0.30":{"name":"contra","description":"Asynchronous flow control with a functional taste to it","version":"1.0.30","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.30","dist":{"shasum":"ba60ad2d5343077ce048f948a64ea0808720d1fe","size":11259,"noattachment":false,"key":"/contra/-/contra-1.0.30.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.30.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390389951558,"_cnpm_publish_time":1390389951558,"_hasShrinkwrap":false},"1.0.29":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.29","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.29","dist":{"shasum":"135dfec0d50793521b20a924e2067b969a34d8e9","size":11069,"noattachment":false,"key":"/contra/-/contra-1.0.29.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.29.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390194692032,"_cnpm_publish_time":1390194692032,"_hasShrinkwrap":false},"1.0.28":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.28","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.28","dist":{"shasum":"1bb0abf33e1b6a75483f6aeb71b3e312ac550bd8","size":11040,"noattachment":false,"key":"/contra/-/contra-1.0.28.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.28.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390189026453,"_cnpm_publish_time":1390189026453,"_hasShrinkwrap":false},"1.0.27":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.27","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.27","dist":{"shasum":"0f1c63158a82598414a921ef573f7760c5a450f1","size":10920,"noattachment":false,"key":"/contra/-/contra-1.0.27.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.27.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390188026389,"_cnpm_publish_time":1390188026389,"_hasShrinkwrap":false},"1.0.26":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.26","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.26","dist":{"shasum":"153edec65f96efdde1b97323cd147ab9223de66d","size":10919,"noattachment":false,"key":"/contra/-/contra-1.0.26.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.26.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390187910487,"_cnpm_publish_time":1390187910487,"_hasShrinkwrap":false},"1.0.25":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.25","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.25","dist":{"shasum":"ab374c9b3ef03ab4b815dd339f9f0ef806cf0576","size":10803,"noattachment":false,"key":"/contra/-/contra-1.0.25.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.25.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390187440179,"_cnpm_publish_time":1390187440179,"_hasShrinkwrap":false},"1.0.24":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.24","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[5,15,20,25,30,"canary"],"firefox":[3.6,10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.24","dist":{"shasum":"49a4430d1009c1b9c1a3a5698a5ccce0e0862e77","size":10795,"noattachment":false,"key":"/contra/-/contra-1.0.24.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.24.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390187173489,"_cnpm_publish_time":1390187173489,"_hasShrinkwrap":false},"1.0.23":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.23","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.23","dist":{"shasum":"5ecb41ecef483428a8a10a2220dc718c64f3ab4a","size":10758,"noattachment":false,"key":"/contra/-/contra-1.0.23.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.23.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390186409486,"_cnpm_publish_time":1390186409486,"_hasShrinkwrap":false},"1.0.22":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.22","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.22","dist":{"shasum":"1d3f9dbeb0dec5687db80fc4cd29aee844970c2f","size":10757,"noattachment":false,"key":"/contra/-/contra-1.0.22.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.22.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390185945670,"_cnpm_publish_time":1390185945670,"_hasShrinkwrap":false},"1.0.21":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.21","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.21","dist":{"shasum":"8e17924ccb77099ba529d94cbbf5082c3eaddce0","size":10690,"noattachment":false,"key":"/contra/-/contra-1.0.21.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.21.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390169846619,"_cnpm_publish_time":1390169846619,"_hasShrinkwrap":false},"1.0.20":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.20","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.20","dist":{"shasum":"806998d526a2efc16bac1232ea435685e928e6ca","size":10689,"noattachment":false,"key":"/contra/-/contra-1.0.20.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.20.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390169745277,"_cnpm_publish_time":1390169745277,"_hasShrinkwrap":false},"1.0.19":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.19","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.19","dist":{"shasum":"5e41b4ec8538bd68ba8b8eec91fcdf772de1f3d3","size":10690,"noattachment":false,"key":"/contra/-/contra-1.0.19.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.19.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390166862225,"_cnpm_publish_time":1390166862225,"_hasShrinkwrap":false},"1.0.18":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.18","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[15,16,17,"next"],"safari":[5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"assert":"~1.1.0","gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-clean":"~0.2.3","gulp-concat":"~2.1.7","gulp-git":"~0.2.0","gulp-jshint":"~1.3.4","gulp-mocha":"~0.3.0","gulp-rename":"~0.2.2","gulp-size":"~0.1.1","gulp-uglify":"~0.1.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","jshint-tap":"0.0.1","mocha":"~1.17.0"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.18","dist":{"shasum":"5bebd9de15e741f37e9776343dbb299b47512bb3","size":10689,"noattachment":false,"key":"/contra/-/contra-1.0.18.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.18.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390166029635,"_cnpm_publish_time":1390166029635,"_hasShrinkwrap":false},"1.0.17":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.17","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.17","dist":{"shasum":"c87d54b62255e281532f87d1e6648a07b79e02c5","size":10672,"noattachment":false,"key":"/contra/-/contra-1.0.17.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.17.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390158876584,"_cnpm_publish_time":1390158876584,"_hasShrinkwrap":false},"1.0.16":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.16","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.16","dist":{"shasum":"2de69e15a3cadd8a409d0c7245458573eb5406b5","size":10673,"noattachment":false,"key":"/contra/-/contra-1.0.16.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.16.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390158527822,"_cnpm_publish_time":1390158527822,"_hasShrinkwrap":false},"1.0.15":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.15","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.15","dist":{"shasum":"0011ff15753f5957e638009b95cbe0b77fa4c5a0","size":10699,"noattachment":false,"key":"/contra/-/contra-1.0.15.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.15.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390158276013,"_cnpm_publish_time":1390158276013,"_hasShrinkwrap":false},"1.0.14":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.14","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.14","dist":{"shasum":"7d529e36832294633b5aaa199884b252894d57a1","size":10620,"noattachment":false,"key":"/contra/-/contra-1.0.14.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.14.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390157558045,"_cnpm_publish_time":1390157558045,"_hasShrinkwrap":false},"1.0.13":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.13","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.13","dist":{"shasum":"2fbf65e7326bcd437849478cbfb0aace5ba7cf3b","size":10034,"noattachment":false,"key":"/contra/-/contra-1.0.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.13.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390155315198,"_cnpm_publish_time":1390155315198,"_hasShrinkwrap":false},"1.0.12":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.12","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.12","dist":{"shasum":"da6a31ea2c956e3e8f2e735a24744c1933ff6d27","size":9870,"noattachment":false,"key":"/contra/-/contra-1.0.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.12.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390072239265,"_cnpm_publish_time":1390072239265,"_hasShrinkwrap":false},"1.0.11":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.11","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha --reporter tap && jshint --reporter node_modules/jshint-tap/jshint-tap.js src"},"testling":{"harness":"mocha","files":["src/contra.shim.js","test/*.js"],"browsers":{"chrome":[15,20,25,30,"canary"],"firefox":[10,15,20,25,"nightly"],"opera":[14,15,16,17,"next"],"safari":[4,5.1,6],"ie":[6,7,8,9,10],"iphone":[6],"ipad":[6],"android-browser":[4.2]}},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1","jshint-tap":"0.0.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.11","dist":{"shasum":"c98e20e9205e7c0eb3ee63bd1d1f7d28e10e3d76","size":9890,"noattachment":false,"key":"/contra/-/contra-1.0.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.11.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390072118335,"_cnpm_publish_time":1390072118335,"_hasShrinkwrap":false},"1.0.10":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.10","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha && jshint test && jshint src"},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.10","dist":{"shasum":"8e6ec55c77edecc6b5ba601b112a7af0c91e65ea","size":8608,"noattachment":false,"key":"/contra/-/contra-1.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.10.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390061315443,"_cnpm_publish_time":1390061315443,"_hasShrinkwrap":false},"1.0.9":{"name":"contra","description":"Asynchronous flow control with a `_` taste to it","version":"1.0.9","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","flow","control","promises","q","generator"],"scripts":{"test":"mocha && jshint test && jshint src"},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3","gulp-size":"~0.1.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.9","dist":{"shasum":"e16e3ee109d2d9903f33fd2532f6e36153791717","size":8166,"noattachment":false,"key":"/contra/-/contra-1.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.9.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1390005235964,"_cnpm_publish_time":1390005235964,"_hasShrinkwrap":false},"1.0.2":{"name":"contra","description":"Asynchronous control flow with sane debugging capabilities","version":"1.0.2","homepage":"https://github.com/bevacqua/contra","author":{"name":"Nicolas Bevacqua","email":"ng@bevacqua.io","url":"http://bevacqua.io"},"license":"MIT","repository":{"type":"git","url":"git://github.com/bevacqua/contra.git"},"keywords":["async","a","asynchronous","control","flow","promises","q","generator"],"scripts":{"test":"mocha && jshint test && jshint src"},"dependencies":{},"devDependencies":{"gulp":"~3.4.0","gulp-bump":"~0.1.0","gulp-git":"~0.2.0","jshint":"~2.4.1","jshint-stylish":"~0.1.5","mocha":"~1.17.0","should":"~2.1.1","gulp-concat":"~2.1.7","gulp-uglify":"~0.1.0","gulp-jshint":"~1.3.4","gulp-rename":"~0.2.2","gulp-mocha":"~0.3.0","gulp-clean":"~0.2.3"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"_id":"contra@1.0.2","dist":{"shasum":"ece482d4b5d68e0366a697e6be3c9e7594298b10","size":6679,"noattachment":false,"key":"/contra/-/contra-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/contra/download/contra-1.0.2.tgz"},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"},"maintainers":[{"name":"bevacqua","email":"nicolasbevacqua@gmail.com"}],"directories":{},"publish_time":1389989841490,"_cnpm_publish_time":1389989841490,"_hasShrinkwrap":false}},"readme":"![contra.png][logo]\n\n[![badge](https://travis-ci.org/bevacqua/contra.png?branch=master)](https://travis-ci.org/bevacqua/contra) [![badge](https://badge.fury.io/js/contra.png)](http://badge.fury.io/js/contra) [![badge](https://badge.fury.io/bo/contra.png)](http://badge.fury.io/bo/contra) [![help me on gittip](http://gbindex.ssokolow.com/img/gittip-43x20.png)](https://www.gittip.com/bevacqua/) [![flattr.png](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=nzgb&url=https%3A%2F%2Fgithub.com%2Fbevacqua%2Fcontra)\n\n> Asynchronous flow control with a functional taste to it\n\n`λ` aims to stay small and simple, while powerful. Inspired by [async][1] and [lodash][2]. Methods are implemented individually and not as part of a whole. That design helps when considering to export functions individually. If you need all the methods in `async`, then stick with it. Otherwise, you might want to check `λ` out!\n\nFeature requests will be considered on a case-by-case basis.\n\n#### Quick Links\n\n- [CHANGELOG](CHANGELOG.md)\n- [Comparison with `async`](#comparison-with-async)\n- [Browser Support](#browser-support)\n- [License](#License)\n\n#### API\n\nFlow Control\n\n- [`λ.waterfall`](#%CE%BBwaterfalltasks-done)\n- [`λ.series`](#%CE%BBseriestasks-done)\n- [`λ.concurrent`](#%CE%BBconcurrenttasks-cap-done)\n\nFunctional\n\n- [`λ.each`](#%CE%BBeachitems-cap-iterator-done)\n- [`λ.each.series`](#%CE%BBeachseriesitems-iterator-done)\n- [`λ.map`](#%CE%BBmapitems-cap-iterator-done)\n- [`λ.map.series`](#%CE%BBmapseriesitems-iterator-done)\n- [`λ.filter`](#%CE%BBfilteritems-cap-iterator-done)\n- [`λ.filter.series`](#%CE%BBfilterseriesitems-iterator-done)\n\nUncategorized\n\n- [`λ.queue`](#%CE%BBqueueworker-cap1)\n- [`λ.emitter`](#%CE%BBemitterthing-options)\n- [`λ.curry`](#%CE%BBcurryfn-arguments)\n\n# Install\n\nInstall using `npm` or `bower`. Or get the [source code][3] and embed that in a `<script>` tag.\n\n```shell\nnpm i contra --save\n```\n\n```shell\nbower i contra --save\n```\n\nYou can use it as a Common.JS module, or embed it directly in your HTML.\n\n```js\nvar λ = require('contra');\n```\n\n```html\n<script src='contra.js'></script>\n<script>\nvar λ = contra;\n</script>\n```\n\n<sub>The only reason `contra` isn't published as `λ` directly is to make it easier for you to type.</sub>\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n# API\n\nThese are the asynchronous flow control methods provided by `λ`.\n\n## `λ.waterfall(tasks, done?)`\n\nExecutes tasks in series. Each step receives the arguments from the previous step.\n\n- `tasks` Array of functions with the `(...results, next)` signature\n- `done` Optional function with the `(err, ...results)` signature\n\n```js\nλ.waterfall([\n  function (next) {\n    next(null, 'params for', 'next', 'step');\n  },\n  function (a, b, c, next) {\n    console.log(b);\n    // <- 'next'\n    next(null, 'ok', 'done');\n  }\n], function (err, ok, result) {\n  console.log(result);\n  // <- 'done'\n});\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.concurrent(tasks, cap?, done?)`\n\nExecutes tasks concurrently. Results get passed as an array or hash to an optional `done` callback. Task order is preserved in results. You can set a concurrency cap, and it's uncapped by default.\n\n- `tasks` Collection of functions with the `(cb)` signature. Can be an array or an object\n- `cap` Optional concurrency level, used by the internal [queue](#%CE%BBqueueworker-cap1)\n- `done` Optional function with the `(err, results)` signature\n\n```js\nλ.concurrent([\n  function (cb) {\n    setTimeout(function () {\n      cb(null, 'boom');\n    }, 1000);\n  },\n  function (cb) {\n    cb(null, 'foo');\n  }\n], function (err, results) {\n  console.log(results);\n  // <- ['boom', 'foo']\n});\n```\n\nUsing objects\n\n```js\nλ.concurrent({\n  first: function (cb) {\n    setTimeout(function () {\n      cb(null, 'boom');\n    }, 1000);\n  },\n  second: function (cb) {\n    cb(null, 'foo');\n  }\n}, function (err, results) {\n  console.log(results);\n  // <- { first: 'boom', second: 'foo' }\n});\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.series(tasks, done?)`\n\n**Effectively an alias for `λ.concurrent(tasks, 1, done?)`.**\n\nExecutes tasks in series. `done` gets all the results. Results get passed as an array or hash to an optional `done` callback. Task order is preserved in results.\n\n- `tasks` Collection of functions with the `(next)` signature. Can be an array or an object\n- `done` Optional function with the `(err, results)` signature\n\n```js\nλ.series([\n  function (next) {\n    setTimeout(function () {\n      next(null, 'boom');\n    }, 1000);\n  },\n  function (next) {\n    next(null, 'foo');\n  }\n], function (err, results) {\n  console.log(results);\n  // <- ['boom', 'foo']\n});\n```\n\nUsing objects\n\n```js\nλ.series({\n  first: function (next) {\n    setTimeout(function () {\n      next(null, 'boom');\n    }, 1000);\n  },\n  second: function (next) {\n    next(null, 'foo');\n  }\n}, function (err, results) {\n  console.log(results);\n  // <- { first: 'boom', second: 'foo' }\n});\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.each(items, cap?, iterator, done?)`\n\nApplies an iterator to each element in the collection concurrently.\n\n- `items` Collection of items. Can be an array or an object\n- `cap` Optional concurrency level, used by the internal [queue](#%CE%BBqueueworker-cap1)\n- `iterator(item, key?, cb)` Function to execute on each item\n  - `item` The current item\n  - `key` Optional, array/object key of the current item\n  - `cb` Needs to be called when processing for current item is done\n- `done` Optional function with the `(err)` signature\n\n```js\nλ.each({ thing: 900, another: 23 }, function (item, cb) {\n  setTimeout(function () {\n    console.log(item);\n    cb();\n  }, item);\n});\n// <- 23\n// <- 900\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.each.series(items, iterator, done?)`\n\nEffectively an alias for `λ.each(items, 1, iterator, done?)`.\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.map(items, cap?, iterator, done?)`\n\nApplies an iterator to each element in the collection concurrently. Produces an object with the transformation results. Task order is preserved in the results.\n\n- `items` Collection of items. Can be an array or an object\n- `cap` Optional concurrency level, used by the internal [queue](#%CE%BBqueueworker-cap1)\n- `iterator(item, key?, cb)` Function to execute on each item\n  - `item` The current item\n  - `key` Optional, array/object key of the current item\n  - `cb` Needs to be called when processing for current item is done\n- `done` Optional function with the `(err, results)` signature\n\n```js\nλ.map({ thing: 900, another: 23 }, function (item, cb) {\n  setTimeout(function () {\n    cb(null, item * 2);\n  }, item);\n}, function (err, results) {\n  console.log(results);\n  <- { thing: 1800, another: 46 }\n});\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.map.series(items, iterator, done?)`\n\nEffectively an alias for `λ.map(items, 1, iterator, done?)`.\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.filter(items, cap?, iterator, done?)`\n\nApplies an iterator to each element in the collection concurrently. Produces an object with the filtered results. Task order is preserved in results.\n\n- `items` Collection of items. Can be an array or an object\n- `cap` Optional concurrency level, used by the internal [queue](#%CE%BBqueueworker-cap1)\n- `iterator(item, key?, cb)` Function to execute on each item\n  - `item` The current item\n  - `key` Optional, array/object key of the current item\n  - `cb` Needs to be called when processing for current item is done\n    - `err` An optional error which will short-circuit the filtering process, calling `done`\n    - `keep` Truthy will keep the item. Falsy will remove it in the results\n- `done` Optional function with the `(err, results)` signature\n\n```js\nλ.filter({ thing: 900, another: 23, foo: 69 }, function (item, cb) {\n  setTimeout(function () {\n    cb(null, item % 23 === 0);\n  }, item);\n}, function (err, results) {\n  console.log(results);\n  <- { another: 23, foo: 69 }\n});\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.filter.series(items, iterator, done?)`\n\nEffectively an alias for `λ.filter(items, 1, iterator, done?)`.\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.queue(worker, cap=1)`\n\nUsed to create a job queue.\n\n- `worker(job, done)` Function to process jobs in the queue\n  - `job` The current job\n  - `done` Needs to be called when processing for current job is done\n- `cap` Optional concurrency level, defaults to `1` (serial)\n\nReturns a queue you can `push` or `unshift` jobs to. You can pause and resume the queue by hand.\n\n- `push(job, done?)` Array of jobs or an individual job object. Enqueue those jobs, continue processing **(unless paused)**. Optional callback to run when each job is completed\n- `unshift(job, done?)` Array of jobs or an individual job object. Add jobs to the top of the queue, continue processing **(unless paused)**. Optional callback to run when each job is completed\n- `pending` Property. Jobs that haven't started processing yet\n- `length` Short-hand for `pending.length`, only works if getters can be defined\n- `pause()` Stop processing jobs. Those already being processed will run to completion\n- `resume()` Start processing jobs again, after a `pause()`\n- `on('drain', fn)` Execute `fn` whenever there's no more pending _(or running)_ jobs and processing is requested. Processing can be requested using `resume`, `push`, or `unshift`\n\n```js\nvar q = λ.queue(worker);\n\nfunction worker (job, done) {\n  console.log(job);\n  done(null);\n}\n\nq.push('job', function () {\n  console.log('this job is done!');\n});\n\nq.push(['some', 'more'], function () {\n  console.log('one of these jobs is done!');\n});\n\nq.on('drain', function () {\n  console.log('all done!');\n  // if you enqueue more tasks now, then drain\n  // will fire again when pending.length reaches 0\n});\n\n// <- 'this job is done!'\n// <- 'one of these jobs is done!'\n// <- 'one of these jobs is done!'\n// <- 'all done!'\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.emitter(thing={}, options={})`\n\nAugments `thing` with the event emitter methods listed below. If `thing` isn't provided, an event emitter is created for you. Emitter methods return the `thing` for chaining.\n\n- `thing` Optional. Writable JavaScript object\n- `emit(type, ...arguments)` Emits an event of type `type`, passing any `...arguments`\n- `emitterSnapshot(type)` Returns a function you can call, passing any `...arguments`\n- `on(type, fn)` Registers an event listener `fn` for `type` events\n- `once(type, fn)` Same as `on`, but the listener is discarded after one callback\n- `off(type, fn)` Unregisters an event listener `fn` from `type` events\n- `off(type)` Unregisters all event listeners from `type` events\n- `off()` Unregisters all event listeners\n\nThe `emitterSnapshot(type)` method lets you remove all event listeners before emitting an event that might add more event listeners which shouldn't be removed. In the example below, `thing` removes all events and then emits a `'destroy'` event, resulting in a `'create'` event handler being attached. If we just used `thing.off()` after emitting the destroy event, the `'create'` event handler would be wiped out too _(or the consumer would have to know implementation details as to avoid this issue)_.\n\n```js\nvar thing = λ.emitter();\n\nthing.on('foo', foo);\nthing.on('bar', bar);\nthing.on('destroy', function () {\n  thing.on('create', reinitialize);\n});\n\nvar destroy = thing.emitterSnapshot('destroy');\nthing.off();\ndestroy();\n```\n\nThe emitter can be configured with the following options, too.\n\n- `async` Debounce listeners asynchronously. By default they're executed in sequence.\n- `throws` Throw an exception if an `error` event is emitted and no listeners are defined. Defaults to `true`.\n\n```js\nvar thing = λ.emitter(); // also, λ.emitter({ foo: 'bar' })\n\nthing.once('something', function (level) {\n  console.log('something FIRST TROLL');\n});\n\nthing.on('something', function (level) {\n  console.log('something level ' + level);\n});\n\nthing.emit('something', 4);\nthing.emit('something', 5);\n// <- 'something FIRST TROLL'\n// <- 'something level 4'\n// <- 'something level 5'\n```\n\nReturns `thing`.\n\nEvents of type `error` have a special behavior. `λ.emitter` will throw if there are no `error` listeners when an error event is emitted. This behavior can be turned off setting `throws: false` in the options.\n\n```js\nvar thing = { foo: 'bar' };\n\nλ.emitter(thing);\n\nthing.emit('error', 'foo');\n<- throws 'foo'\n```\n\nIf an `'error'` listener is registered, then it'll work just like any other event type.\n\n```js\nvar thing = { foo: 'bar' };\n\nλ.emitter(thing);\n\nthing.on('error', function (err) {\n  console.log(err);\n});\n\nthing.emit('error', 'foo');\n<- 'foo'\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n## `λ.curry(fn, ...arguments)`\n\nReturns a function bound with some arguments and a `next` callback.\n\n```js\nλ.curry(fn, 1, 3, 5);\n// <- function (next) { fn(1, 3, 5, next); }\n```\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n# Comparison with `async`\n\n[`async`][1]|`λ`\n---|---\nAimed at Noders|Tailored for browsers\nArrays for [some][5], collections for [others][6]|Collections for **everyone**!\n`apply`|`curry`\n`parallel`|`concurrent`\n`parallelLimit`|`concurrent`\n`mapSeries`|`map.series`\nMore _comprehensive_|More _focused_\n`~29.6k (minified, uncompressed)`|`~2.7k (minified, uncompressed)`\n\n`λ` isn't meant to be a replacement for `async`. It aims to provide a more focused library, and a bit more consistency.\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n# Browser Support\n\n[![Browser Support](https://ci.testling.com/bevacqua/contra.png)](https://ci.testling.com/bevacqua/contra)\n\nIf you need support for one of the legacy browsers listed below, you'll need `contra.shim.js`.\n\n- IE < 10\n- Safari < 6\n- Opera < 16\n\n```js\nrequire('contra/shim');\nvar λ = require('contra');\n```\n\n```html\n<script src='contra.shim.js'></script>\n<script src='contra.js'></script>\n<script>\nvar λ = contra;\n</script>\n```\n\nThe shim currently clocks around `~1.2k` minified, uncompressed.\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n# License\n\nMIT\n\n<sub>[_Back to top_](#quick-links)</sub>\n\n  [logo]: https://raw.github.com/bevacqua/contra/master/resources/contra.png\n  [1]: https://github.com/caolan/async\n  [2]: https://github.com/lodash/lodash\n  [3]: https://github.com/bevacqua/contra/tree/master/src/contra.js\n  [4]: https://github.com/bevacqua\n  [5]: https://github.com/caolan/async#maparr-iterator-callback\n  [6]: https://github.com/caolan/async#paralleltasks-callback\n","_attachments":{},"homepage":"https://github.com/bevacqua/contra","bugs":{"url":"https://github.com/bevacqua/contra/issues"},"license":"MIT"}