{"_id":"socket.io-events","_rev":"47-7aad0cde085f0bbca8c5a7405a01922d","name":"socket.io-events","description":"Power your socket.io apps with express like event routing.","dist-tags":{"latest":"0.4.6"},"versions":{"0.0.1":{"name":"socket.io-events","version":"0.0.1","description":"event handling middleware for socket.io","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"_id":"socket.io-events@0.0.1","dist":{"shasum":"069fa603612f28c266cfcf7202b78c970dfbd2b0","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.0.1.tgz","integrity":"sha512-TjYAQC/pe14hYO12p/obH7nS2HWZm+d/rParl8t9IwASkTsl6YfHIQNpsoXejB19R4atbnCoac5T2RWQVZux7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvwwOj1AppcAYOJcEoDAIz7e2W1I5/JkTBoctcrHDfeAIgN3yMGeOV4RLxa9GEuaPLH/qPZ+Y/R2cbachh4ZFXwk0="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.1.0":{"name":"socket.io-events","version":"0.1.0","description":"event handling middleware for socket.io","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"_id":"socket.io-events@0.1.0","dist":{"shasum":"639b07d801d09761d727063b3e9e5b7d415b7865","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.1.0.tgz","integrity":"sha512-gEaN5priBnFAx6ddKSJ3AnzEG38E85PCB25gabzQAfPRvCMLEZPgX/QY9jx9rvtfZpVCoNvlMdJu3pHSgiNl7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRKNIznK9tFWoNauMuUu3q0zztfg8RbPmRCVdbonkXfgIhAM2XDWuSobhSLy05B+T8SLAb9aaROfHCeFNVRI/dHt8I"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.2.0":{"name":"socket.io-events","version":"0.2.0","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"_id":"socket.io-events@0.2.0","dist":{"shasum":"788f0a9b0d7376f329e2a32a8e093df0d63ae6e4","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.2.0.tgz","integrity":"sha512-tvpeYz9I4NErtoO4alGN3tOBewIkKoKCiYtfq7eOKVC+iQAPO4niy8d0OFoJ+SHKkiQA4SvkpJlIPFGKykBsbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBZqXUkuCgX2RMMR87LqKwEQ4nn9Q4SKhz5wvR5UadcAIhAI9NcHbrcx9neVeFXF+zyO/xBN2zQF+Cmh///Zt3bLTv"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.3.0":{"name":"socket.io-events","version":"0.3.0","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"_id":"socket.io-events@0.3.0","dist":{"shasum":"34ff06684b2446168b44e2ec0f54ce462138c9c9","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.3.0.tgz","integrity":"sha512-5Ccs38mT4KNnj4BN0PHjhdez54gJF7DfLrpQ5aGGDs2VehE0Q1KOY/AF9GJzI5hscwPzRDr5Hy0TC8mc47zx7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+88GwU3WsbmMYRSDtSSDo/xZfP2n9Os+HkK89uV1R/QIhAIrosZcswTQdWM5NII326kdH0x6eruTxHWrOt3PQDGbv"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.3.1":{"name":"socket.io-events","version":"0.3.1","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"gitHead":"57c33377b5661856b5c6b27f5a2c8048ba8f3bac","_id":"socket.io-events@0.3.1","_shasum":"c3f066b6546048142426113b392d84f70533cf60","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"c3f066b6546048142426113b392d84f70533cf60","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.3.1.tgz","integrity":"sha512-AZgVnF3InEeaVLNWWpDHWU0Ph80xiGXpq/4AFZeTj0DBlXG0qjsflAA30S+vu8dWpOyHFjlao6Mv7deAxBtMsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiXJ0eHnCWchBqf1wZeGK7N1Sg2nom9IfaG20CfySmRQIhAOgOJMF30uT1/XjoXFh3xSEu2EhUmliNKs6ALx2DN5SJ"}]}},"0.3.2":{"name":"socket.io-events","version":"0.3.2","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"gitHead":"e4df8ebbed8d59b573fc5833a252bda94077b136","_id":"socket.io-events@0.3.2","_shasum":"153c729baa213728de5dd391aa1c1b9993416a99","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"153c729baa213728de5dd391aa1c1b9993416a99","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.3.2.tgz","integrity":"sha512-Hrsxbc/Doyz9cliOtOjkcB8RT6lCG3xpRDENRbaTDmbAm/3mklmvhROJ1Hs9qLIjRD9L9QJzffBiK6GKeae8Wg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTJNvSAEljeSrKG1JNxudckDK3R3P8zUS4Ai9kElr1LAIgQzswGZGS6f0WaQd+3rvskRpnGjUsdMntxCt8MaxE1rs="}]}},"0.3.3":{"name":"socket.io-events","version":"0.3.3","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"_id":"socket.io-events@0.3.3","dist":{"shasum":"44943a9a80baf236c75b08e7fa2f03028b316a8e","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.3.3.tgz","integrity":"sha512-kEEx/NzCa6GNHdPFZ6WilTwirPVhcDwDHUHKSBwztzMUdDXywRQei86vvdRuAeC2LEOdK7AC9MF3qi/oP7yfWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICPab+FFLVpVCbb59MkGHHGz1wCZMjsT3Gyw5aP0zlimAiAhABRvElD85b1Bo1tha2o7OJpsiMjSPRfOnWvipgB/iA=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.3.4":{"name":"socket.io-events","version":"0.3.4","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"_id":"socket.io-events@0.3.4","dist":{"shasum":"9d73c4df1810ac6609b4ab397a87e6f563c67d8e","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.3.4.tgz","integrity":"sha512-zX2cl17xAcfyGGByomAyJ57WSoSGh1kdQhYKx2CpEj2t/iiHxoEt/slgmSidOUnq6U5vZOtJW/7hAdSpDV3pkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSRtGbvbRy2//BnTqed/Jm88bCakXfJOzag/fumj8zogIhAJWHtWAUNXM5H54thL4NHGViEyxlU+KXCYMo/CBgAsNc"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.4.0":{"name":"socket.io-events","version":"0.4.0","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"_id":"socket.io-events@0.4.0","dist":{"shasum":"33c242f8d83ba83843ad568bf44927ba139c66eb","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.0.tgz","integrity":"sha512-t8UY+ykiJzVmMWL5+2WbuzoaJ6o5Z2goWiLBezemuVt2xMne90kGSClL0TsxFrTqfgYdqZbV6ta9Ie+BrHk9nw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4EDwCD/yi7iIAfoVc6GtPPtLvkF/kUq0fYYSKEIUgEgIgc52MxOnOURNojHrbvsPoZsPAq1CKcEhv7cXji2hzzvY="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.4.1":{"name":"socket.io-events","version":"0.4.1","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^1.0.2"},"gitHead":"ad060d474b7446dd3a31dfd30771ae44e2105683","_id":"socket.io-events@0.4.1","_shasum":"6f04b234d48177eff1c7cd282652d3be7fcc96f3","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"6f04b234d48177eff1c7cd282652d3be7fcc96f3","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.1.tgz","integrity":"sha512-u8nDp3gmi8vMuhFdsGhRLkRMbSOC2eGnPUdvp4bo0p41Uh5SwDdrd5rWx45gf1xNP9OTsi6WYnBNPW9cO91tPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcIoWQCdt/iG6LycQQg5S4bg9uq2U9JjSe7nfIemolBAiEAlw+Jyl9kpQOpJLXBz7K8r7mMN00idOZSaS5PKjrb37Y="}]}},"0.4.2":{"name":"socket.io-events","version":"0.4.2","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^2"},"_id":"socket.io-events@0.4.2","dist":{"shasum":"6cb71671d6a06e5022d4d4796ddb3c9adedf4f30","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.2.tgz","integrity":"sha512-GpJ92MsPyE4APs9r5k6RB9LgCnXUW5Mn0XgQxjOCqshtDd+sqLcSQb5lKovZx6Ta/1uMAHiaTWMG+Z1o/dgbSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR+kNFLiKtKMEybCbssGi2WRPRFFpLhfvrdCbzSKiDewIhAL8qbM7cLY6xZVBXuZNIZzXR+PdjFSHCyWEBrQmzineG"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}]},"0.4.3":{"name":"socket.io-events","version":"0.4.3","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^2"},"gitHead":"28a65620b4ad8aa7a41754df9fbae5e6f9a6e3b0","_id":"socket.io-events@0.4.3","_shasum":"795e79225151a73198c1b24984ca0d5919485e11","_from":".","_npmVersion":"1.4.27","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"795e79225151a73198c1b24984ca0d5919485e11","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.3.tgz","integrity":"sha512-4/MN/S38biktdBuV2JTptGW2LnjrmDhXKUokYItKnFmbi6PyIwOi6X6kxMRe8Q1PLcO1QiNYpndKrr9rVfzkTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAKfFeMsleQIqThK4UrY57UKpPD9tx5wWZAlC5j9qXjAiEAoNhoaGlgjDcCU4PbU3m2eq/v0PVm5LcquJXFq/PQdwA="}]}},"0.4.4":{"name":"socket.io-events","version":"0.4.4","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^2"},"gitHead":"b4c993a926d9dc100d7abaab161b067e093a901d","_id":"socket.io-events@0.4.4","_shasum":"512429388ea6887459973940441fb70c5cce6a15","_from":".","_npmVersion":"1.4.27","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"512429388ea6887459973940441fb70c5cce6a15","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.4.tgz","integrity":"sha512-5MOyluTQd+MU9LfTH1CVBJwtvD5IcDK69cdCkZXjqlVUWA9SapPDpc3MutHHXQ1FUktboCpW49gexCE+QWh7ZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDxrUnC6UMHC9KaPoN5KXkQ8tQSPEbqgRvEmI30XE84gIgDRkwzLqUVMTXBoyRUqr9vtOALAKxVlIEmhaxmwX7hzQ="}]}},"0.4.5":{"name":"socket.io-events","version":"0.4.5","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^2"},"gitHead":"3b80f368abda4434249b786764c8fc7caf2ef6e2","_id":"socket.io-events@0.4.5","_shasum":"b985800452dd5115d688d1f4609d3b36c74099e2","_from":".","_npmVersion":"1.4.27","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"b985800452dd5115d688d1f4609d3b36c74099e2","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.5.tgz","integrity":"sha512-C1P9j+DH5kAN2U3dHjRmHakliLBek5olay8BTmWjjz9ZYzAxMSOGTpEtdcXs6ZtMoLvFy7sguyXE04MIxHqogg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbhYXRKXMZ7aREixpFEWRW2J9IKdplF03BapDfnrkFtQIgXFeRSjcPDnq6qqXSkkplFSLLmNjxQRNPwcAxR353Mlw="}]}},"0.4.6":{"name":"socket.io-events","version":"0.4.6","description":"Power your socket.io apps with express like event routing.","main":"index.js","scripts":{"test":"grunt"},"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"keywords":["socket.io","event","router","middleware"],"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"license":"MIT","bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"homepage":"https://github.com/turbonetix/socket.io-events","devDependencies":{"sandboxed-module":"~0.3.0","grunt-jasmine-bundle":"~0.2.0","coffee-script":"~1.7.1","grunt-cli":"~0.1.13","grunt":"~0.4.5","supertest":"~0.13.0","request":"~2.36.0","socket.io":"~1.0.4","socket.io-client":"~1.0.4"},"dependencies":{"debug":"^2"},"gitHead":"04350c182aff2dfc41c99d7eb0eb59ab2aef902f","_id":"socket.io-events@0.4.6","_shasum":"2e4235074d03c48d6a88959199c29be5dd718517","_from":".","_npmVersion":"1.4.27","_npmUser":{"name":"nromano","email":"nathan.g.romano@gmail.com"},"maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"dist":{"shasum":"2e4235074d03c48d6a88959199c29be5dd718517","tarball":"https://registry.npmjs.org/socket.io-events/-/socket.io-events-0.4.6.tgz","integrity":"sha512-+mg60LePlO+FxkFr7ECIZnXz4JSGjVq9vBIPoaNr7cfjrw4v7t6AuxCNRL5Qf+BekMFdMTkGWJwgdYm26mYAuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCnaCJV1kSeaWedldTuTL3hkr6dwNvWO/bgtB+9JQt7gIgYgYS4AW6XJ4mAI9yRlAqkVZ9TcTAkjgCM3pxPOxpzPY="}]}}},"readme":"[![Build Status](https://travis-ci.org/turbonetix/socket.io-events.svg?branch=master)](https://travis-ci.org/turbonetix/socket.io-events)\n[![NPM version](https://badge.fury.io/js/socket.io-events.svg)](http://badge.fury.io/js/socket.io-events)\n[![David DM](https://david-dm.org/turbonetix/socket.io-events.png)](https://david-dm.org/turbonetix/socket.io-events.png)\n\nPower your [socket.io](https://github.com/Automattic/socket.io \"socket.io\") apps with [express](https://github.com/visionmedia/express \"express\") like `event` routing.\n\n`$ npm install socket.io-events`\n\n```javascript\nvar io = require('socket.io')(3000);\nvar router = require('socket.io-events')();\nrouter.on('*', function (sock, args, next) {\n  var name = args.shift(), msg = args.shift();\n  sock.emit('received event', name, msg);\n});\nio.use(router);\n```\n\n# Features\n\n* Easy to use interface for manipulating socket.io events.\n* Express-like routing capabilties for socket.io events.\n* Gives you more control over how events are handled.\n* Attach `Router` instances to other `Router` instances.\n* Support for \"wildcard\" (*) and Regular Expression matching.\n* Event consumption and propagation.\n\n# Examples\n\nThe method `on` is an alias to `use`.\n\n```javascript\nvar assert = require('assert');\nvar router = require('socket.io-events')();\n\n// handles all events\nrouter.on(function (socket, args, next) {\n  next();\n});\n\n// handles all events too\nrouter.on('*', function (socket, args, next) {\n  next();\n});\n\n// handles events matching 'some*'\nrouter.on('some*', function (socket, args, next) {\n  next();\n});\n\n// handles events matching '*events'\nrouter.on('*event', function (socket, args, next) {\n  next();\n});\n\n// handle events matching /^\\w+/ \nrouter.on(/^\\w+/, function (socket, args, next) {\n  next();\n});\n\n// handles all events\nrouter.on(function (socket, args) {\n  //emits back to the client, and ends the chain.  \n  //Think `res.end()` for express.\n  //calling `emit()` consumes the event which means no other handlers\n  //get a chance to process it.\n  socket.emit(args.shift(), args);\n});\n\nrouter.on(function (socket, args) {\n  //this wont fire because socket.emit() \n  //has been called which is like `res.end()` in express.\n});\n\nvar io = require('socket.io')(3000);\nio.use(router);\n```\n\nHere is an example of *not* consuming the event and letting [socket.io](https://github.com/Automattic/socket.io \"socket.io\")\nhandle things *business as usual*.\n\n```javascript\n\nvar router = require('socket.io-events')();\nrouter.on(function (socket, args, next) {\n  //do something, but don't consume it.\n  next();\n});\n\nvar io = require('socket.io')(3000);\nio.use(router);\nio.on('connection', function (socket) {\n  socket.on('echo', function (data) {\n    socket.emit('echo', data);  \n  });\n});\n```\n\nHere is an example of calling `next()` with an `Error` object, and having an error handler capture it.\n\n```javascript\nvar router = require('socket.io-events')();\n\nrouter.on('some event', function (socket, args, next) {\n  next(new Error('something wrong');\n});\n\nrouter.on(function (err, socket, args, next) {\n  socket.emit('error', err);\n});\n```\n\nYou can recover from an error too.\n\n```javascript\nvar router = require('socket.io-events')();\n\nrouter.on('some event', function (socket, args, next) {\n  next(new Error('something wrong');\n});\n\nrouter.on(function (err, socket, args, next) {\n  //I handled the error so continue to the next middleware.\n  next();\n});\n\nrouter.on(function (socket, args, next) {\n  //I recovered from the error.\n  next();\n});\n\nio.use(router);\n```\n\nYou can even attach a `Router' intance to another `Router` intance.\n\n```javascript\nvar Router = require('socket.io-events')();\n\nvar a = Router();\na.use(function (sock, args, next) { next() });\n\nvar b = Router();\nb.use(function (sock, args, next) { next() });\n\na.use(b)\n\nvar io = require('socket.io')(3000);\nio.use(a);\n```\n\n# API\n\n## Router\n\nGet the `Router` class.\n\n```javascript\nvar Router = require('socket.io-events');\n```\n\nThe `use` and `on` methods are equivalent.  They also can be chained.\n\n```javascript\nvar router = Router()\n  .use(function (sock, args, next) { })\n  .use(function (sock, args, next) { })\n  .use(function (sock, args, next) { });\n```\n\n### Router#()\n\nMake a `Router` instance\n\n```javascript\nvar router = Router();\n```\n\n### Router#use(fn:Function, ...)\n\nAttach a `function` to the router.\n\n```javascript\nrouter.use(function (sock, args, next) {\n  //do something!\n  next();\n});\n```\n\nYou can pass in multiple `function`s.\n\n```javascript\nvar a = function (sock, args, next) { next() };\nvar b = function (sock, args, next) { next() };\nvar c = function (sock, args, next) { next() };\n\nrouter.use(a,b,c); \n```\n\nYou can pass in a function that accepts an `Error` object.\n\n```javascript\nrouter.use(function (err, sock, args, next) {\n  console.error(err);\n  \n  //calling next(err) will invoke the next error handler.\n  //to resume operation just call next()\n  next(err);\n});\n```\n\n### Router#use(event:String, fn:Function, ...)\n\nBind the `function` to the `event`.\n\n```javascript\nrouter.use('chat', function (sock, args, next) {\n  assert.equal(args[0], 'chat');\n  args[1] = args[1].length > 128 ? args[1].slice(0, 125) + '...' : args[1];\n  next();\n});\n```\n\nYou can also pass in multiple `function`s for handling the `event`.\n\n```javascript\nvar chop = function (sock, args, next) { next() };\nvar clean = function (sock, args, next) { next() };\nvar pretty = function (sock, args, next) { next() };\n\nrouter.use('chat', chop, clean, pretty);\n```\n\n### Router#use(event:RegExp, fn:Function, ...)\n\nBind the `function` using a `RegExp` pattern to match the `event`.\n\n```javascript\nrouter.use(/\\w+/, function (sock, args, next) {\n  assert.equal(args[0], 'chat');\n  args[1] = args[1].length > 128 ? args[1].slice(0, 125) + '...' : args[1];\n  next();\n});\n```\n\nYou can also pass in multiple `function`s for handling the `event`.\n\n```javascript\nvar chop = function (sock, args, next) { next() };\nvar clean = function (sock, args, next) { next() };\nvar pretty = function (sock, args, next) { next() };\n\nrouter.use(/\\w+/, chop, clean, pretty);\n```\n\n### Router#use(router:Router, ...)\n\nYou can attach another `Router` instance to your `Router` instance.\n\n```javascript\nvar another = Router();\nanother.use(function (sock, args, next) { next(); });\n\nrouter.use(another);\n```\n\nAttach multiple routers in a single call.\n\n```javascript\nvar foo = Router();\nfoo.use(function (sock, args, next) { next(); });\n\nvar bar = Router();\nbar.use(function (sock, args, next) { next(); });\n\nvar baz = Router();\nbaz.use(function (sock, args, next) { next(); });\n\nrouter.use(foo, bar, baz);\n```\n\n### Router#use(name:String, router:Router, ...)\n\nJust like attaching a `function` to the router given the `event`.  You can attach `Router`\ninstance as well to the `event`.\n\n```javascript\nvar foo = Router();\nfoo.use(function (sock, args, next) { next(); });\n\nrouter.use('some event', foo);\n```\n\nAttach multiple routers in a single call to the `event` too.\n\n```javascript\nvar foo = Router();\nfoo.use(function (sock, args, next) { next(); });\n\nvar bar = Router();\nbar.use(function (sock, args, next) { next(); });\n\nvar baz = Router();\nbaz.use(function (sock, args, next) { next(); });\n\nrouter.use('some event', foo, bar, baz);\n```\n\n### Router#use(fns:Array, ...)\n\nAttach an `Array` of `Fuction`'s or `Router` instances, or an `Array` or `Array`s .\n\n```javascript\nvar middleware = [\n  function (sock, args, next) { next(); },\n  [\n    function (sock, args, next) { next(); },\n    Router().use(function (sock, args, next) { next(); }),\n    function (sock, args, next) { next(); },\n  ],\n  Router().use(function (sock, args, next) { next(); })\n];\n\nvar errHandler = function (err, sock, args, next) { next(err); } \n\nrouter.use(middleware, errHandler);\n```\n\n### Router#use(name:String, fns:Array, ...)\n\nAttach everything to an event.\n\n```javascript\nvar middleware = [\n  function (sock, args, next) { next(); },\n  [\n    function (sock, args, next) { next(); },\n    Router().use(function (sock, args, next) { next(); }),\n    function (sock, args, next) { next(); },\n  ],\n  Router().use(function (sock, args, next) { next(); })\n];\n\nvar errHandler = function (err, sock, args, next) { next(err); } \n\nrouter.use('only this event', middleware, errHandler);\n```\n\n### Router#on(...)\n\nThis is an alias to to the `use` method.  It does the same thing.\n\n```javascript\nrouter.on(function (sock, args, next) { next() });\n```\n\n# Installation and Environment Setup\n\nInstall node.js (See download and install instructions here: http://nodejs.org/).\n\nClone this repository\n\n    > git clone git@github.com:turbonetix/socket.io-events.git\n\ncd into the directory and install the dependencies\n\n    > cd socket.io-eventst\n    > npm install && npm shrinkwrap --dev\n\n# Running Tests\n\nInstall coffee-script\n\n    > npm install coffee-script -g\n\nTests are run using grunt.  You must first globally install the grunt-cli with npm.\n\n    > sudo npm install -g grunt-cli\n\n## Unit Tests\n\nTo run the tests, just run grunt\n\n    > grunt spec\n","maintainers":[{"name":"nromano","email":"nathan.g.romano@gmail.com"}],"time":{"modified":"2022-06-26T21:55:02.376Z","created":"2014-06-11T05:56:21.834Z","0.0.1":"2014-06-11T05:56:24.506Z","0.1.0":"2014-06-18T07:44:26.983Z","0.2.0":"2014-06-25T23:13:07.788Z","0.3.0":"2014-06-27T22:20:25.671Z","0.3.1":"2014-06-28T00:03:23.923Z","0.3.2":"2014-06-28T00:07:48.536Z","0.3.3":"2014-06-28T05:39:15.914Z","0.3.4":"2014-06-28T07:30:56.683Z","0.4.0":"2014-06-28T08:35:16.628Z","0.4.1":"2014-06-29T17:30:38.987Z","0.4.2":"2014-09-11T15:17:52.519Z","0.4.3":"2014-10-27T14:37:24.051Z","0.4.4":"2014-10-28T14:12:24.827Z","0.4.5":"2014-10-29T14:49:29.701Z","0.4.6":"2014-11-14T16:46:24.752Z"},"readmeFilename":"README.md","homepage":"https://github.com/turbonetix/socket.io-events","keywords":["socket.io","event","router","middleware"],"repository":{"type":"git","url":"git@github.com:turbonetix/socket.io-events.git"},"author":{"name":"Nathan G. Romano","email":"nathan.g.romano"},"bugs":{"url":"https://github.com/turbonetix/socket.io-event/issues"},"license":"MIT","users":{"nromano":true,"bitsonic":true,"freeface":true,"semencov":true}}