{"_id":"after","_rev":"51442","name":"after","description":"after - tiny flow control","dist-tags":{"latest":"0.8.2"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"time":{"modified":"2021-06-03T10:15:42.000Z","created":"2011-11-10T15:31:29.230Z","0.8.2":"2016-08-16T00:50:39.441Z","0.8.1":"2013-06-30T06:09:40.954Z","0.7.0":"2013-02-26T22:21:25.548Z","0.6.0":"2012-07-15T06:05:34.045Z","0.5.0":"2012-05-30T15:58:26.661Z","0.4.1":"2012-05-08T19:20:57.272Z","0.4.0":"2012-04-23T10:50:58.605Z","0.3.4":"2012-04-11T23:44:38.170Z","0.3.3":"2012-03-04T20:38:46.024Z","0.3.2":"2012-02-28T11:38:51.930Z","0.3.1":"2012-01-30T01:04:13.451Z","0.1.0":"2011-12-08T01:56:13.312Z","0.1.4":"2011-12-08T01:56:13.312Z","0.1.5":"2011-12-08T01:56:13.312Z","0.1.6":"2011-12-08T01:56:13.312Z","0.2.0":"2011-12-08T01:56:13.312Z","0.1.3":"2011-12-08T01:56:13.312Z","0.1.8":"2011-12-02T18:29:43.571Z","0.1.7":"2011-11-10T15:31:29.230Z"},"users":{"luk":true,"shtylman":true,"hij1nx":true,"meggesje":true,"pid":true,"kesla":true,"daviddias":true,"trycatch9264":true,"rsalesc":true,"syzer":true,"pnevares":true,"aesinv":true,"trotyl":true,"pengzhisun":true,"gyaresu":true,"mjurincic":true,"alanshaw":true,"defunctzombie":true,"etsit":true,"tzookb":true,"fridurmus":true,"2dxgujun":true,"monjer":true,"artskydj":true,"deubaka":true,"vinchik":true,"izumisy":true,"dyohns":true,"xrush":true,"intelinc":true,"mickeyzhou":true,"dmckirnan":true},"author":{"name":"Raynos","email":"raynos2@gmail.com"},"repository":{"type":"git","url":"git://github.com/Raynos/after.git"},"versions":{"0.8.2":{"name":"after","description":"after - tiny flow control","version":"0.8.2","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"mocha --ui tdd --reporter spec test/*.js"},"devDependencies":{"mocha":"~1.8.1"},"keywords":["flowcontrol","after","flow","control","arch"],"license":"MIT","repository":{"type":"git","url":"git://github.com/Raynos/after.git"},"gitHead":"e8c26046f36962b90e68dc5df33a9672a54b25f5","bugs":{"url":"https://github.com/Raynos/after/issues"},"homepage":"https://github.com/Raynos/after#readme","_id":"after@0.8.2","_shasum":"fedb394f9f0e02aa9768e702bda23b505fae7e1f","_from":".","_npmVersion":"2.15.9","_nodeVersion":"0.10.32","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"dist":{"shasum":"fedb394f9f0e02aa9768e702bda23b505fae7e1f","size":2995,"noattachment":false,"key":"/after/-/after-0.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.8.2.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/after-0.8.2.tgz_1471308639186_0.9132961586583406"},"directories":{},"publish_time":1471308639441,"_cnpm_publish_time":1471308639441,"_hasShrinkwrap":false},"0.8.1":{"name":"after","description":"after - tiny flow control","version":"0.8.1","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"mocha --ui tdd --reporter spec test/*.js"},"devDependencies":{"mocha":"~1.8.1"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.git"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/Raynos/after/issues"},"_id":"after@0.8.1","dist":{"shasum":"ab5d4fb883f596816d3515f8f791c0af486dd627","size":2697,"noattachment":false,"key":"/after/-/after-0.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.8.1.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1372572580954,"_hasShrinkwrap":false,"_cnpm_publish_time":1372572580954},"0.7.0":{"name":"after","description":"after - tiny flow control","version":"0.7.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"mocha --ui tdd --reporter spec test/*.js"},"devDependencies":{"mocha":"~1.8.1"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.git"},"main":"lib/after","readmeFilename":"README.md","_id":"after@0.7.0","dist":{"shasum":"b074e121f64391ba7265cd2bbdc6a8504380946a","size":2708,"noattachment":false,"key":"/after/-/after-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.7.0.tgz"},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"shtylman","email":"shtylman@gmail.com"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1361917285548,"_hasShrinkwrap":false,"_cnpm_publish_time":1361917285548},"0.6.0":{"name":"after","description":"after - tiny flow control","version":"0.6.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","_id":"after@0.6.0","dist":{"shasum":"0e7a62d35ffe2eedb4eb4081d3905d4081e6fc20","size":2574,"noattachment":false,"key":"/after/-/after-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.6.0.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1342332334045,"_hasShrinkwrap":false,"_cnpm_publish_time":1342332334045},"0.5.0":{"name":"after","description":"after - tiny flow control","version":"0.5.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.5.0","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"a6123f193524197bb8345c9ec19d225c0c0623aa","size":6743,"noattachment":false,"key":"/after/-/after-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.5.0.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1338393506661,"_hasShrinkwrap":false,"_cnpm_publish_time":1338393506661},"0.4.1":{"name":"after","description":"after - tiny flow control","version":"0.4.1","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.4.1","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.9","_nodeVersion":"v0.6.13","_defaultsLoaded":true,"dist":{"shasum":"a5ebed013473d4665363412e565951c196095dba","size":6912,"noattachment":false,"key":"/after/-/after-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.4.1.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1336504857272,"_hasShrinkwrap":false,"_cnpm_publish_time":1336504857272},"0.4.0":{"name":"after","description":"after - tiny flow control","version":"0.4.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.4.0","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.9","_nodeVersion":"v0.6.13","_defaultsLoaded":true,"dist":{"shasum":"0a8fbc64aae49748e5abaae9f8bd5752170a159f","size":6677,"noattachment":false,"key":"/after/-/after-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.4.0.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1335178258605,"_hasShrinkwrap":false,"_cnpm_publish_time":1335178258605},"0.3.4":{"name":"after","description":"after - tiny flow control","version":"0.3.4","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.3.4","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"ecf9b46406744027fbc29e6c8c140a237938964c","size":6452,"noattachment":false,"key":"/after/-/after-0.3.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.3.4.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1334187878170,"_hasShrinkwrap":false,"_cnpm_publish_time":1334187878170},"0.3.3":{"name":"after","description":"after - tiny flow control","version":"0.3.3","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","engines":{"node":"0.6"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.3.3","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"63e3c61be2049f8d752e87cbeff70f2c90eca474","size":6092,"noattachment":false,"key":"/after/-/after-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.3.3.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1330893526024,"_hasShrinkwrap":false,"_cnpm_publish_time":1330893526024},"0.3.2":{"name":"after","description":"after - tiny flow control","version":"0.3.2","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","engines":{"node":"0.6"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.3.2","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"9a26de3cf3650d6cdd395a2997531de3bd687c60","size":6087,"noattachment":false,"key":"/after/-/after-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.3.2.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1330429131930,"_hasShrinkwrap":false,"_cnpm_publish_time":1330429131930},"0.3.1":{"name":"after","description":"after - tiny flow control","version":"0.3.1","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"make test"},"devDependencies":{"mocha":"0.10.2"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"lib/after","engines":{"node":"0.6"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.3.1","dependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"e8a1065f37c01d394d6922fc4f9c1e61a66ad46b","size":6058,"noattachment":false,"key":"/after/-/after-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.3.1.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1327885453451,"_hasShrinkwrap":false,"_cnpm_publish_time":1327885453451},"0.1.0":{"name":"after","description":"after - tiny flow control","version":"0.1.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"vows":"0.5.9"},"keywords":["flowcontrol","after","flow"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"after","scripts":{},"engines":{"node":"0.4.x"},"_npmJsonOpts":{"file":"/home/raynos/.npm/after/0.1.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"after@0.1.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.23","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"0bf9a392e78dbf23e7f3fafa9177ddc714dc54fe","size":1415,"noattachment":false,"key":"/after/-/after-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.0.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.1.4":{"name":"after","description":"after - tiny flow control","version":"0.1.4","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"vows-fluent":"0.1.9"},"keywords":["flowcontrol","after","flow"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"after","scripts":{},"engines":{"node":"0.4.x"},"_npmJsonOpts":{"file":"/home/raynos/.npm/after/0.1.4/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"after@0.1.4","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.23","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"b40f2b9d172eadda53769b00dcb6369bbb1dfc03","size":2000,"noattachment":false,"key":"/after/-/after-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.4.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.1.5":{"name":"after","description":"after - tiny flow control","version":"0.1.5","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"vows-fluent":"0.1.9"},"keywords":["flowcontrol","after","flow"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"after","scripts":{},"engines":{"node":"0.4.x"},"_npmJsonOpts":{"file":"/home/raynos/.npm/after/0.1.5/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"after@0.1.5","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.23","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"bea01692f875c192a16cc26c17826a783912c469","size":2054,"noattachment":false,"key":"/after/-/after-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.5.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.1.6":{"name":"after","description":"after - tiny flow control","version":"0.1.6","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"tester":"0.0.1"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"src/after","engines":{"node":"0.5.x"},"_npmJsonOpts":{"file":"/home/raynos/.npm/after/0.1.6/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"after@0.1.6","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.30","_nodeVersion":"v0.5.5","_defaultsLoaded":true,"dist":{"shasum":"9d344114fcb1f1616d583a42ba54e8ecaedcb873","size":1750,"noattachment":false,"key":"/after/-/after-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.6.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.2.0":{"name":"after","description":"after - tiny flow control","version":"0.2.0","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"scripts":{"test":"node test/main-test.js"},"devDependencies":{"tester":"0.0.4"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"src/after","engines":{"node":"0.6 || 0.4"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.2.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-alpha-6","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"bfdba338dbb670d6ca3f73cad6d7ff2db4acb71a","size":3959,"noattachment":false,"key":"/after/-/after-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.2.0.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.1.3":{"name":"after","description":"after - tiny flow control","version":"0.1.3","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"vows-fluent":"0.1.1"},"keywords":["flowcontrol","after","flow"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"after","scripts":{},"engines":{"node":"0.4.x"},"_npmJsonOpts":{"file":"/home/raynos/.npm/after/0.1.3/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"after@0.1.3","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.23","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"ab3d83f0513dbaac19b82434aa7bfda5813a9196","size":1969,"noattachment":false,"key":"/after/-/after-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.3.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"directories":{},"publish_time":1323309373312,"_hasShrinkwrap":false,"_cnpm_publish_time":1323309373312},"0.1.8":{"name":"after","description":"after - tiny flow control","version":"0.1.8","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"tester":"0.0.4"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"src/after","engines":{"node":"0.6.x"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.1.8","dependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-alpha-6","_nodeVersion":"v0.6.4","_defaultsLoaded":true,"dist":{"shasum":"27b9750e2103047b99128f306dceb16b7f0a1d81","size":1914,"noattachment":false,"key":"/after/-/after-0.1.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.8.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1322850583571,"_hasShrinkwrap":false,"_cnpm_publish_time":1322850583571},"0.1.7":{"name":"after","description":"after - tiny flow control","version":"0.1.7","author":{"name":"Raynos","email":"raynos2@gmail.com"},"contributors":[{"name":"Raynos","email":"raynos2@gmail.com","url":"http://raynos.org"}],"devDependencies":{"tester":"0.0.3"},"keywords":["flowcontrol","after","flow","control","arch"],"repository":{"type":"git","url":"git://github.com/Raynos/after.js.git"},"main":"src/after","engines":{"node":"0.6.x"},"_npmUser":{"name":"raynos","email":"raynos2@gmail.com"},"_id":"after@0.1.7","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.105","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"e392d8756630c005e36d0554ed4bea463da7c210","size":1742,"noattachment":false,"key":"/after/-/after-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/after/download/after-0.1.7.tgz"},"maintainers":[{"name":"defunctzombie","email":""},{"name":"raynos","email":""}],"directories":{},"publish_time":1320939089230,"_hasShrinkwrap":false,"_cnpm_publish_time":1320939089230}},"readme":"# After [![Build Status][1]][2]\n\nInvoke callback after n calls\n\n## Status: production ready\n\n## Example\n\n```js\nvar after = require(\"after\")\nvar db = require(\"./db\") // some db.\n\nvar updateUser = function (req, res) {\n  // use after to run two tasks in parallel,\n  // namely get request body and get session\n  // then run updateUser with the results\n  var next = after(2, updateUser)\n  var results = {}\n  \n  getJSONBody(req, res, function (err, body) {\n    if (err) return next(err)\n    \n    results.body = body\n    next(null, results)\n  })\n  \n  getSessionUser(req, res, function (err, user) {\n    if (err) return next(err)\n    \n    results.user = user\n    next(null, results)\n  })\n  \n  // now do the thing!\n  function updateUser(err, result) {\n    if (err) {\n      res.statusCode = 500\n      return res.end(\"Unexpected Error\")\n    }\n    \n    if (!result.user || result.user.role !== \"admin\") {\n      res.statusCode = 403\n      return res.end(\"Permission Denied\")\n    }\n    \n    db.put(\"users:\" + req.params.userId, result.body, function (err) {\n      if (err) {\n        res.statusCode = 500\n        return res.end(\"Unexpected Error\")\n      }\n      \n      res.statusCode = 200\n      res.end(\"Ok\")  \n    })   \n  }\n}\n```\n\n## Naive Example\n\n```js\nvar after = require(\"after\")\n    , next = after(3, logItWorks)\n\nnext()\nnext()\nnext() // it works\n\nfunction logItWorks() {\n    console.log(\"it works!\")\n}\n```\n\n## Example with error handling\n\n```js\nvar after = require(\"after\")\n    , next = after(3, logError)\n\nnext()\nnext(new Error(\"oops\")) // logs oops\nnext() // does nothing\n\n// This callback is only called once.\n// If there is an error the callback gets called immediately\n// this avoids the situation where errors get lost.\nfunction logError(err) {\n    console.log(err)\n}\n```\n\n## Installation\n\n`npm install after`\n\n## Tests\n\n`npm test`\n\n## Contributors\n\n - Raynos\n - defunctzombie\n\n## MIT Licenced\n\n  [1]: https://secure.travis-ci.org/Raynos/after.png\n  [2]: http://travis-ci.org/Raynos/after\n  [3]: http://raynos.org/blog/2/Flow-control-in-node.js\n  [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307\n  [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031\n  [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419\n  [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091\n  [8]: http://github.com/Raynos/iterators\n  [9]: http://github.com/Raynos/composite\n","_attachments":{},"homepage":"https://github.com/Raynos/after#readme","bugs":{"url":"https://github.com/Raynos/after/issues"},"license":"MIT"}