{"_id":"starsky","_rev":"42-8cbfb10cb8b3d7021313bdc61ce03565","name":"starsky","dist-tags":{"latest":"0.3.1"},"versions":{"0.0.0":{"name":"starsky","version":"0.0.0","author":{"name":"Garrett Johnson"},"license":"MIT","_id":"starsky@0.0.0","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"}],"homepage":"https://github.com/gjohnson/starsky","bugs":{"url":"https://github.com/gjohnson/starsky/issues"},"dist":{"shasum":"5d567b5c644ffdf1f3429973aaf4d3f022fadd88","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.0.0.tgz","integrity":"sha512-KinyESnb5TBgMKK7LsA4MTvHiBlmKzUrnk2gb96BC3LuW8/Kui1+h8f7+QusdP80XMJ48SIdYdKWujSNC6Vopw==","signatures":[{"sig":"MEUCIQD/a/D94y0Ig2qSNVerWI0UtgZYPu/ykzDwk8FGM5QTsQIgYKqNN7UHU55ONunw03vUfqmxWcPgnkOREfrQB6jLcOQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com:gjohnson/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"nothing to see here","directories":{}},"0.1.0":{"name":"starsky","version":"0.1.0","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.1.0","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"1f578bd2bfd7fa224c2a040491982b8ecef4c0c3","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.1.0.tgz","integrity":"sha512-mpnfpK7+wb2OHf6DKWQxXS0Wz7QL86AfWAB0cHsJp0P75LDZX3nF+2m/OtF3w3O0A+gr64YzTjaggi4xsTl/dA==","signatures":[{"sig":"MEYCIQDgRlsRquQrRR5yiyEJyrCK7Z+SHdQ2FMCVOxlQZC141gIhANnEjw1FTOX6VEauhpiMmpazD5VVyDRQ5S0YIENFojhS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.1.1":{"name":"starsky","version":"0.1.1","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.1.1","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"eb5171c5d31168a6245c75512596bbccc808101d","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.1.1.tgz","integrity":"sha512-rd3RWzox/JFXvxazGmMHTi8c9nqERlUW2r2I5SzO8nfIEMBhdMmubsOtCu36fRaduMtryklnee5YfS3TIkTUBg==","signatures":[{"sig":"MEYCIQCSjzAdq+T15J0WLkI0ExdYv7FWLTHzgn+w0WYyqpJ0UwIhAO4fL8B5sBddtJxQOCjOX0Z9a92B1wXuV6NQJv4UCQdU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.1.2":{"name":"starsky","version":"0.1.2","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.1.2","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"a5ffa526e046409adbe98ed71000529a877fe755","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.1.2.tgz","integrity":"sha512-YCsdbXegQOZnC7MD5s6eKeHo0HW/SiWYjTFqBmGQpcDEZ/xurmWCIMzbBUrLhhVj8lDQUp35FYtW5tGKVOHofg==","signatures":[{"sig":"MEUCIAPKQoR3a3npN4yRdmCPA6vejVvp7yoWp97fqCV0jouKAiEAuClFsrW2JnsxMDU+R2GFdjD6OKGLb1USnHgyYDkY+Ek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.1.3":{"name":"starsky","version":"0.1.3","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.1.3","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"d73cbba192e3fd09f411b1ba5f0ff1c8c2d11882","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.1.3.tgz","integrity":"sha512-jSil79KEU2GESHij8hhF2UvFM8raXstfJ/7Bdo+mqp7W8jWUF4YjEqUuJKAU7Y/UPwk/7zuIUHQDgyXiLzl5jA==","signatures":[{"sig":"MEUCIQC6ms47K47wjyOC4YvtgLfrZB2jwqfUguk+dJH+K107cgIgGxmroSXZhVk7XvdOOwZgYYHHa7YI3ei8sCnAiWp/jd0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.0":{"name":"starsky","version":"0.2.0","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.0","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"cefb3cd6cb2c51fdb532970ef8738e2455b16468","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.0.tgz","integrity":"sha512-0iv+9xprgAK3622eMWO/vNhQtPBXujPmIm/HCVpuDn1zzXdekczxtxgL8TTF4mnyz/gGXomzwbFApbIChfS5Jg==","signatures":[{"sig":"MEUCIQDT3HHbWZgDdHg29YCgLCJ9ztLuxrKbAhc+V6TYwauK7AIgYPi6l6ykTUTz/ZWBdndjoa0wxkuGWGU9AWx9se4MjrQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.1":{"name":"starsky","version":"0.2.1","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.1","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"503a60c6e5a1d9c2ac3a148bf5b65cb8dc2e6edc","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.1.tgz","integrity":"sha512-2Ob8h4IDXzLU2OdCkYLOrKX7wZqp+CvmPai0hj9ic0icHIDC7bLULl4YjfXVxrG2cmLPDJFdYMTnErmiX+oTSw==","signatures":[{"sig":"MEQCIFIm2J6WwrHjFLFZ1ovyiGAnK8fMP3krVfI572RMC6RiAiBqI7d3s0044pZpOy42RakN6TH9YiDG3djWIKDakIexHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.3","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.2":{"name":"starsky","version":"0.2.2","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.2","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"dcf9163686f224727bd6239b14ec5e8051eec9fe","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.2.tgz","integrity":"sha512-ULQkEwvcZIHcB6RuWWvQmFPlP7EKBIQ2G9a2zdhAPJewTUdtAFPx4aNIUFl/6ty2Oqkuzu8Rns4EDCPdiDt1YQ==","signatures":[{"sig":"MEQCIGUi+coq1fseENZPkYlxG7jFuVcHQQSOrVIwM6W9PziWAiBiiAiHEIYBr02gVsWgifoNxny1wTvzulOCeP5aArdU3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.3.14","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.1.8","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","once-upon":"0.0.2","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.3":{"name":"starsky","version":"0.2.3","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.3","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"fc13bd9856b6b1db2158e1316e13bcbda4206e94","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.3.tgz","integrity":"sha512-ikLgzzipNMQaXJkv5fCoEpVqUgZWqzOutWsu18AdRxhfVe04WmkRhZEZsFQZJ8vcA9GYd13XbdR7kttj8FrJog==","signatures":[{"sig":"MEQCIEkdUIOc5xduDrk3dhe3tMdxiFZh5enquJp5FiAMvuwqAiBLI9/n+jfT8iaXKy2rBirZdDv8poSkS6LTeMCD6hDMMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.6","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.2.0","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","once-upon":"0.0.2","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.4":{"name":"starsky","version":"0.2.4","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.4","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"a9443dd026a151adea912d94368511bf5f47d4f7","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.4.tgz","integrity":"sha512-igIiisnao68QT3jO9rc7MeDkcI+Shpkaa1yeExyNlkV0v9rI8h1jwvaTYZhV6/l7Ar5oQ3EBRj0vjFPGlVF4PQ==","signatures":[{"sig":"MEQCIDPEhzQt/Ikwnmugjj8Y6KvhJmLRV3YnAGtg7WyLEY1PAiBRErcNHTWYO4Tcq4a+uF8v7OyBmbE2HoiE0EtxpCQLwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.6","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.2.0","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","once-upon":"0.0.2","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.2.5":{"name":"starsky","version":"0.2.5","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.2.5","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"bin":{"starsky":"bin/starsky"},"dist":{"shasum":"a3f231d246e5c769191d92f9b139b71cb4888155","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.2.5.tgz","integrity":"sha512-qETn4p45PJoQd6U2cCTeCp2mmYu5BhDSsredWe/61GFosePSk/KMhHLuTusbqJZfL8gGcT0EZZX2s1daKPBtdw==","signatures":[{"sig":"MEQCIBBGsoj5H91sdyjQ8FKFzWaf/sY8h5w79Nl5CE1u1ZbLAiB1+tNeZqzWKQs2u8doRjG/5E9/Xt0Nw1slPhrW8GZv2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.6","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.2.0","debug":"0.7.4","js-yaml":"3.0.1","commander":"2.1.0","node-uuid":"1.4.1","once-upon":"0.0.2","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.3.0":{"name":"starsky","version":"0.3.0","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.3.0","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"dist":{"shasum":"7839320a671420971bc6ca0df64406d8ce9c1ed7","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.3.0.tgz","integrity":"sha512-vOQgLjeTAzC9coBF2MTj7CZC8tUByH5UtsiliDis1qKh3NHzZxM1gIQfGv5hL0wmGRRBFvsPq1w4PhJEtd8Cow==","signatures":[{"sig":"MEYCIQDdlYR3T9mAM3xhd7B7Ppv/kiE9JRNoZb9JjoGrCm3hcgIhAKKSQcHlzcwkhJQVs6Lm2M4gzkfTy70VD/le4voZ9M5h","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.6","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.2.0","debug":"0.7.4","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}},"0.3.1":{"name":"starsky","version":"0.3.1","keywords":["rabbitmq","node-amqp"],"author":{"name":"Recurly"},"license":"MIT","_id":"starsky@0.3.1","maintainers":[{"name":"gjohnson","email":"gjohnson@recurly.com"},{"name":"aaron","email":"aaron.heckmann+github@gmail.com"}],"homepage":"https://github.com/recurly/starsky","bugs":{"url":"https://github.com/recurly/starsky/issues"},"dist":{"shasum":"b496fd88c46e1d75dafb6da100b6c7d5cd5c5eff","tarball":"https://registry.npmjs.org/starsky/-/starsky-0.3.1.tgz","integrity":"sha512-wQ+isadCQRY57H/nohQq1oYYgkQQ03nuH6BfDTEGI/xJLvD2J4qHNEF0BIoroMR6H3hkNzFq70n7Cwne2S4Iew==","signatures":[{"sig":"MEQCIGOOieLIUjK4yZc8QuxR56881cvWw4TFenL1ccs5jbADAiAH35i2Nu2IF8XgvjP90wyM0VJh/W6KnFWLfipRyKA46Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b496fd88c46e1d75dafb6da100b6c7d5cd5c5eff","scripts":{"test":"make test"},"_npmUser":{"name":"gjohnson","email":"gjohnson@recurly.com"},"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"_npmVersion":"1.4.9","description":"A higher level and opinionated library on top of node-amqp.","dependencies":{"amqp":"0.2.0","debug":"0.7.4","commander":"2.1.0","node-uuid":"1.4.1","to-snake-case":"0.1.2","to-space-case":"0.1.3","component-type":"1.0.0"},"devDependencies":{"mocha":"1.16.1","sinon":"1.7.3","jshint":"2.3.0","should":"2.1.1","jshint-stylish":"0.1.4"},"directories":{}}},"time":{"created":"2014-01-15T15:50:56.566Z","modified":"2026-05-11T18:57:43.798Z","0.0.0":"2014-01-15T15:50:57.451Z","0.1.0":"2014-01-31T15:58:15.884Z","0.1.1":"2014-01-31T16:53:37.881Z","0.1.2":"2014-02-17T21:36:57.163Z","0.1.3":"2014-02-17T21:57:12.978Z","0.2.0":"2014-03-14T12:08:06.736Z","0.2.1":"2014-03-14T12:37:10.679Z","0.2.2":"2014-03-19T15:57:56.966Z","0.2.3":"2014-04-02T00:04:29.315Z","0.2.4":"2014-04-02T01:20:14.734Z","0.2.5":"2014-04-03T01:03:06.763Z","0.3.0":"2014-05-02T22:52:36.913Z","0.3.1":"2014-05-23T01:36:09.344Z"},"bugs":{"url":"https://github.com/recurly/starsky/issues"},"author":{"name":"Recurly"},"license":"MIT","homepage":"https://github.com/recurly/starsky","keywords":["rabbitmq","node-amqp"],"repository":{"url":"git://github.com/recurly/starsky.git","type":"git"},"description":"A higher level and opinionated library on top of node-amqp.","maintainers":[{"email":"gjj391@gmail.com","name":"gjohnson"}],"readme":"\n# Starsky\n\nStarsky is a high-level, opinionated node module for writing services that consume messages from [RabbitMQ](https://www.rabbitmq.com/). It's modeled directly after the elegant approach taken by the Ruby library, [Hutch](https://github.com/gocardless/hutch). The opinions baked into the module are the same as Hutch's:\n\n  - topic exchanges\n  - durable queues & exchanges\n  - persistant messages\n  - publisher confirms\n\n## Install\n\nWith npm:\n\n```sh\n$ npm install starsky\n```\n\n## Usage\n\n### Connections\n\nTo connect, invoke `starsky.connect`. The callback will be invoked once the connection to RabbitMQ has been established and the underlying exchange as been created and/or opened.\n\n```js\nvar starsky = require('starsky');\n\nstarsky.connect(callback);\n```\n\nTo disconnect, invoke `starsky.disconnect`. The callback will be called once any in-flight messages have been processed and/or published.\n\n```js\nvar starsky = require('starsky');\n\nstarsky.disconnect(callback);\n```\n\n### Configuring\n\nTo configure programatically, invoke `starsky.set` with the configuration option name and value:\n\n```js\nvar starsky = require('starsky');\n\nstarsky.set('mq host', 'localhost');\nstarsky.set('mq port', 5672);\nstarsky.set('exchange', 'demo');\n```\n\nIf configuration objects are more your style, just pass them all in at once.\n\n```js\nvar starsky = require('starsky');\n\nstarsky.set({\n  'mq host': 'localhost',\n  'mq port': 5672,\n  'exchange': 'demo'\n});\n```\n\nThe configuration options:\n\n  - `mq exchange` -- The topic exchange name to be created. Defaults to `starsky`\n  - `mq host` -- The rabbitmq host. Defaults to `localhost`\n  - `mq port` -- The rabbitmq port. Defaults to `5672`\n  - `mq vhost` -- The rabbitmq vhost. Defaults to `/`\n  - `mq username` -- The rabbitmq username. Defaults to `guest`\n  - `mq password` -- The rabbitmq password. Defaults to `guest`\n  - `mq tls` -- Whether rabbitmq requires a secure connection. Defaults to `false`.\n  - `mq tls cert` -- The rabbitmq tls cert file path, if `tls` is set to true.\n  - `mq tls key` -- The rabbitmq tls key file path, if `tls` is set to true.\n  - `namespace` -- A prefix to prepend to queue names. Defaults to `undefined`\n\n### Publishing\n\nTo publish a message, invoke `starsky.publish` with a topic, message and callback. The callback will be used for the message confirmation. If the underlying connection has not been established when publishing a message, an error will bubble up to the callback.\n\n```js\nvar starsky = require('starsky');\n\nstarsky.set('mq host', 'localhost');\nstarsky.set('mq port', 5672);\nstarsky.set('exchange', 'demo');\n\nsetInterval(function () {\n  starsky.publish('log.info', {\n    hello: 'world'\n  }, confirm);\n}, 1000);\n\nfunction confirm (err) {\n  if (err) console.error(err.message);\n}\n\nstarsky.connect();\n```\n\n### Consuming\n\nTo create a consumer, invoke `starsky.consumer`. The name should be whatever you want the name of the queue to be inside RabbitMQ. Note that if you have a prefix option set, that will be prefixed to the name when the queue is created.\n\n```js\nvar starsky = require('starsky');\n\nvar consumer = starsky.consumer('log');\n\nstarsky.set('mq host', 'localhost');\nstarsky.set('mq port', 5672);\nstarsky.set('exchange', 'demo');\n\nstarsky.once('connect', function () {\n  consumer.subscribe('log.info');\n  consumer.process(function (msg, done) {\n    console.log('id: %s', msg.id);\n    console.log('body: %j', msg.body);\n    console.log('timestamp: %s', msg.timestamp);\n    console.log('topic: %s', msg.topic);\n    done();\n  });\n});\n\nstarsky.connect();\n```\n\nTo subscribe to a topic, invoke `consumer.subscribe`. This will setup the necessary queue bindings with RabbitMQ. You must setup all your subscriptions prior to processing messages.\n\n```js\nconsumer.subscribe('log.info');\nconsumer.subscribe('log.#');\nconsumer.subscribe('log.*');\n```\n\nTo start processing message, invoke `consumer.process`. This will invoke the function for each message routed to the queue. There are two arguments passed to the function: `msg` and `done`. The `msg` is an object with the following properties:\n\n  - `id`: A unique identifer for the message.\n  - `body`: The actual message published.\n  - `timestamp`: The time when the message was published.\n  - `topic`: The topic the message was published with.\n\n```js\nconsumer.process(function (msg, done) {\n  console.log('id: %s', msg.id);\n  console.log('body: %j', msg.body);\n  console.log('timestamp: %s', msg.timestamp);\n  console.log('topic: %s', msg.topic);\n  done();\n});\n```\n\nThe `done` function is a callback that should be invoked when all the work that needs to be accomplished is finished. If an error occurs that requires the message to be re-tried, pass the error as the first argument. This will direct the message to be rejected.\n\nTo control the amount of messages the consumer can accept, invoke `consumer.prefetch` method. By default it only accepts 1 message at a time. If you want to turn on the \"firehose\", meaning accept all the messages as they are published, use `0`.\n\n```js\nconsumer.prefetch(10);\n```\n\n## Development\n\nInstalling\n\n```sh\n$ make\n```\n\nRunning tests\n\n```sh\n$ make test\n```\n\nCode Coverage *(requires jscoverage)*\n\n```sh\n$ make lib-cov\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","users":{"sberryman":true}}